1"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([["2041"],{92205(e,t,i){i.r(t),i.d(t,{metadata:()=>n,default:()=>K,frontMatter:()=>W,contentTitle:()=>H,toc:()=>q,assets:()=>Z});var n=JSON.parse('{"id":"plot","title":"OrbitView","description":"","source":"@site/src/examples/plot.mdx","sourceDirName":".","slug":"/plot","permalink":"/examples/plot","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"examplesSidebar","previous":{"title":"GlobeView","permalink":"/examples/globe-view"},"next":{"title":"OrthographicView","permalink":"/examples/orthographic-view"}}'),r=i(74848),o=i(28453),s=i(96540),a=i(62016),l=i(83311);i(5338);var c=i(19057),u=i(14663),d=i(13563),h=i(8070),p=i(12434),f=i(62837);function g(e,t){e.font="".concat(t,"px Helvetica,Arial,sans-serif"),e.fillStyle="#000",e.textBaseline="top",e.textAlign="center"}let v="uniform axesUniforms {\n float fontSize;\n vec3 gridCenter;\n vec3 gridDims;\n float gridOffset;\n float labelHeight;\n vec3 labelWidths;\n vec4 strokeColor;\n} axes;\n",m={name:"axes",vs:v,fs:v,uniformTypes:{fontSize:"f32",gridCenter:"vec3<f32>",gridDims:"vec3<f32>",gridOffset:"f32",labelHeight:"f32",labelWidths:"vec3<f32>",strokeColor:"vec4<f32>"}};function y(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function b(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){y(e,t,i[t])})}return e}function w(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}class _ extends d.A{initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:2,update:this.calculateInstancePositions,noAlloc:!0},instanceNormals:{size:3,update:this.calculateInstanceNormals,noAlloc:!0},instanceOffsets:{size:1,update:this.calculateInstanceOffsets,noAlloc:!0}}),this.setState(this._getModels())}updateState(e){let{oldProps:t,props:i}=e,n=this.getAttributeManager();if(t.xAxis!==i.xAxis||t.yAxis!==i.yAxis||t.zAxis!==i.zAxis){let{xAxis:e,yAxis:t,zAxis:r,tickFormat:o}=i,s=[...O(e,o),...O(t,o),...O(r,o)],a=P(e),l=P(t),c=P(r);this.setState({ticks:s,labelTexture:this.renderLabelTexture(s),gridDims:[a[1]-a[0],c[1]-c[0],l[1]-l[0]],gridCenter:[(a[0]+a[1])/2,(c[0]+c[1])/2,(l[0]+l[1])/2]}),n.invalidateAll()}}getShaders(){return super.getShaders({modules:[h.A,m]})}draw(e){if(!this.state.labelTexture)return;let{gridDims:t,gridCenter:i,models:n,ticks:r}=this.state,{fontSize:o,color:s,padding:a}=this.props,l=w(b({},this.state.labelTexture),{fontSize:o,gridDims:t,gridCenter:i,gridOffset:a,strokeColor:s});n.forEach(e=>{e.setInstanceCount(r.length),e.shaderInputs.setProps({axes:l})}),super.draw(e)}_getModels(){let e=[-1,-1,0,-1,1,0,-1,1,0,1,1,0,1,1,0,1,-1,0,1,-1,0,-1,-1,0],t=[-1,0,0,-1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,-1,0,0,-1,0],{device:i}=this.context,n=new p.K(i,w(b({},this.getShaders()),{id:"".concat(this.props.id,"-grids"),vs:"#version 300 es\n#define SHADER_NAME axes-layer-grid-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\nin vec2 instancePositions;\nin vec3 instanceNormals;\nin float instanceIsTitle;\n\nout vec4 vColor;\nout float shouldDiscard;\n\n// determines if the grid line is behind or in front of the center\nfloat frontFacing(vec3 v) {\n vec4 v_clipspace = project.viewProjectionMatrix * project.modelMatrix * vec4(v, 0.0);\n return step(v_clipspace.z, 0.0);\n}\n\nvoid main(void) {\n\n // rotated rectangle to align with slice:\n // for each x tick, draw rectangle on yz plane\n // for each y tick, draw rectangle on zx plane\n // for each z tick, draw re
1ctangle on xy plane\n\n // offset of each corner of the rectangle from tick on axis\n vec3 gridVertexOffset = mat3(\n vec3(positions.z, positions.xy),\n vec3(positions.yz, positions.x),\n positions\n ) * instanceNormals;\n\n // normal of each edge of the rectangle from tick on axis\n vec3 gridLineNormal = mat3(\n vec3(normals.z, normals.xy),\n vec3(normals.yz, normals.x),\n normals\n ) * instanceNormals;\n\n // do not draw grid line in front of the graph\n shouldDiscard = frontFacing(gridLineNormal) + instanceIsTitle;\n\n vec3 position_modelspace = vec3(instancePositions.x) *\n instanceNormals + gridVertexOffset * axes.gridDims / 2.0 + axes.gridCenter * abs(gridVertexOffset);\n\n // apply offsets\n position_modelspace += axes.gridOffset * gridLineNormal;\n\n vec3 position_commonspace = project_position(position_modelspace);\n gl_Position = project_common_position_to_clipspace(vec4(position_commonspace, 1.0));\n\n vColor = axes.strokeColor / 255.0;\n}\n",fs:"#version 300 es\n#define SHADER_NAME axes-layer-grid-fragment-shader\n\nprecision highp float;\n\nin vec4 vColor;\nin float shouldDiscard;\n\nout vec4 fragColor;\n\nvoid main(void) {\n if (shouldDiscard > 0.0) {\n discard;\n }\n fragColor = vColor;\n}\n",disableWarnings:!0,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new f.V({topology:"line-list",attributes:{positions:{value:new Float32Array(e),size:3},normals:{value:new Float32Array(t),size:3}},vertexCount:e.length/3})})),r=[],o=[],s=[],a=[];for(let i=0;i<8;i++){r=r.concat([0,0,0,1,1,0,1,1]),a=a.concat([4*i+0,4*i+1,4*i+2,4*i+2,4*i+1,4*i+3]);for(let n=0;n<4;n++)o=o.concat(e.slice(3*i,3*i+3)),s=s.concat(t.slice(3*i,3*i+3))}return{models:[n,new p.K(i,w(b({},this.getShaders()),{id:"".concat(this.props.id,"-labels"),vs:"#version 300 es\n#define SHADER_NAME axes-layer-label-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\nin vec2 texCoords;\nin vec2 instancePositions;\nin vec3 instanceNormals;\nin float instanceOffsets;\n\nuniform sampler2D labelTexture;\n\nout vec2 vTexCoords;\nout float shouldDiscard;\n\nfloat sum2(vec2 v) {\n return v.x + v.y;\n}\n\nfloat sum3(vec3 v) {\n return v.x + v.y + v.z;\n}\n\n// determines if the grid line is behind or in front of the center\nfloat frontFacing(vec3 v) {\n vec4 v_clipspace = project.viewProjectionMatrix * project.modelMatrix * vec4(v, 0.0);\n return step(v_clipspace.z, 0.0);\n}\n\nvoid main(void) {\n\n // rotated rectangle to align with slice:\n // for each x tick, draw rectangle on yz plane\n // for each y tick, draw rectangle on zx plane\n // for each z tick, draw rectangle on xy plane\n\n // offset of each corner of the rectangle from tick on axis\n vec3 gridVertexOffset = mat3(\n vec3(positions.z, positions.xy),\n vec3(positions.yz, positions.x),\n positions\n ) * instanceNormals;\n\n // normal of each edge of the rectangle from tick on axis\n vec3 gridLineNormal = mat3(\n vec3(normals.z, normals.xy),\n vec3(normals.yz, normals.x),\n normals\n ) * instanceNormals;\n\n // do not draw grid line in front of the graph\n // do not draw label behind the graph\n shouldDiscard = frontFacing(gridLineNormal) + (1.0 - frontFacing(gridVertexOffset));\n\n // get bounding box of texture in pixels\n // +----------+----------+----------+\n // | xlabel0 | ylabel0 | zlabel0 |\n // +----------+----------+----------+\n // | xlabel1 | ylabel1 | zlabel1 |\n // +----------+----------+----------+\n // | ... | ... | ... |\n vec2 textureOrigin = vec2(\n sum3(vec3(0.0, axes.labelWidths.x, sum2(axes.labelWidths.xy)) * instanceNormals),\n instancePositions.y * axes.labelHeight\n );\n vec2 labelSize = vec2(sum3(axes.labelWidths * instanceNormals), axes.labelHeight);\n vTexCoords = (textureOrigin + labelSize * texCoords) / vec2(textureSize(labelTexture, 0));\n\n vec3 position_modelspace = vec3(instancePositions.x) *\n instanceNormals + gridVertexOffset * axes.gridDims / 2.0 + axes.gridCenter * abs(gridVertexOffset);\n\n // apply offsets\n position_modelspace += axes.gridOffset * gridLineNormal;\n position_modelspace += project_pixel_size(axes.fontSize * instanceOffsets) * gridVertexOffset;\n\n vec3 position_commonspace = project_position(position_modelspace);\n vec4 position_clipspace = project_common_position_to_clipspace(vec4(position_commonspace, 1.0));\n\n vec2 labelVertexOffset = vec2(texCoords.x - 0.5, 0.5 - texCoords.y) * labelSize;\n // project to clipspace\n labelVertexOffset = project_pixel_size_to_clipspace(labelVertexOffset).xy;\n // scale label to be constant size in pixels\n labelVertexOffset *= axes.fontSize / axes.labelHeight * position_clipspace.w;\n\n gl_Position = position_clipspace + vec4(labelVertexOffset, 0.0, 0.0);\n\n}\n",fs:"#version 300 es\n#define SHADER_NAME axes-layer-label-fragment-shader\n\nprecision highp float;\n\nuniform sampler2D labelTexture;\n\nin vec2 vTexCoords;\nin float shouldDiscard;\n\nout vec4 fragColor;\n\nvoid main(void) {\n if (shouldDiscard > 0.0) {\n discard;\n }\n vec4 color = texture(labelTexture, vTexCoords);\n if (color.a == 0.0) {\n discard;\n }\n fragColor = color;\n}\n",bufferLayout:this.getAttributeManager().getBufferLayouts(),disableWarnings:!0,geometry:new f.V({topology:"triangle-list",attributes:{indices:new Uint16Array(a),positions:{value:new Float32Array(o),size:3},texCoords:{value:new Float32Array(r),size:2},normals:{value:new Float32Array(s),size:3}}})}
1))].filter(Boolean)}}calculateInstancePositions(e){let{ticks:t}=this.state;e.value=new Float32Array(t.flatMap(e=>e.position))}calculateInstanceNormals(e){let{ticks:t}=this.state;e.value=new Float32Array(t.flatMap(e=>{switch(e.axis){case"x":return[1,0,0];case"z":return[0,1,0];default:return[0,0,1]}}))}calculateInstanceOffsets(e){let{ticks:t}=this.state;e.value=new Float32Array(t.flatMap(e=>"title"===e.value?2:.5))}renderLabelTexture(e){this.state.labelTexture&&this.state.labelTexture.labelTexture.destroy();let t=[[],[],[]];for(let i of e)switch(i.axis){case"x":t[0].push(i.text);break;case"z":t[1].push(i.text);break;default:t[2].push(i.text)}let i=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:48,n=document.createElement("canvas"),r=n.getContext("2d");g(r,i);let o=t.map(e=>e.reduce((e,t)=>Math.max(e,Math.ceil(r.measureText(t).width)),0)),s=o.reduce((e,t)=>e+t,0),a=t.reduce((e,t)=>Math.max(e,Math.ceil(t.length*i)),0);if(0===s||0===a)return null;n.width=s,n.height=a,g(r,i);let l=0;return t.forEach((e,t)=>{l+=o[t]/2,e.forEach((e,t)=>{r.fillText(e,l,t*i)}),l+=o[t]/2}),{rowHeight:i,columnWidths:o,texture:e.createTexture({data:n,mipmaps:!0,sampler:{magFilter:"linear"}})}}(this.context.device,t);if(i){let{rowHeight:e,columnWidths:t,texture:n}=i;return{labelHeight:e,labelWidths:t,labelTexture:n}}return null}constructor(...e){super(...e),y(this,"state",void 0)}}function P(e){let{min:t,max:i,scale:n}=e;return n?[n(t),n(i)]:[t,i]}function O(e,t){var i,n,r;let{min:o,max:s}=e,a=null!=(i=e.ticks)?i:[o,s],l=null!=(n=e.scale)?n:e=>e;return[...a.map((i,n)=>({axis:e.name,value:String(i),position:[l(i),n],text:t(i,e)})),{axis:e.name,value:"title",position:[(l(o)+l(s))/2,a.length],text:null!=(r=e.title)?r:e.name}]}y(_,"layerName","AxesLayer"),y(_,"defaultProps",{fontSize:12,tickFormat:{type:"function",value:e=>e.toFixed(2)},padding:0,color:{type:"color",value:[0,0,0,255]}});var j=i(69798);let x="uniform surfaceUniforms {\n float lightStrength;\n} surface;\n",C={name:"surface",vs:x,fs:x,uniformTypes:{lightStrength:"f32"}};function S(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class k extends d.A{initializeState(){let e=this.getAttributeManager();e.remove(["instancePickingColors"]),e.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:!0},positions:{size:3,type:"float64",accessor:"getPosition",transform:this.getPosition},colors:{size:4,accessor:"getColor",type:"uint8",defaultValue:[0,0,0,255]},pickingColors:{size:4,type:"uint8",accessor:(e,t)=>{let{index:i}=t;return i},transform:this.getPickingColor}}),this.state.model=this.getModel()}updateState(e){super.updateState(e);let{oldProps:t,props:i,changeFlags:n}=e;if(n.propsChanged){let{uCount:e,vCount:n}=i;if(t.uCount!==e||t.vCount!==n){if(this.state.vertexCount=e*n,i.data.length<e*n)throw Error("SurfaceLayer: insufficient data");this.getAttributeManager().invalidate("indices")}}}getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME surface-layer-vertex-shader\n\nin vec3 positions;\nin vec3 positions64Low;\nin vec4 colors;\nin vec4 pickingColors;\n\nout vec4 vColor;\nout float shouldDiscard;\n\nvoid main(void) {\n vec3 position_commonspace = project_position(positions, positions64Low);\n gl_Position = project_common_position_to_clipspace(vec4(position_commonspace, 1.0));\n\n // cheap way to produce believable front-lit effect.\n // Note: clipsspace depth is nonlinear and deltaZ depends on the near and far values\n // when creating the perspective projection matrix.\n vec4 position_vector = project_common_position_to_clipspace(vec4(position_commonspace, 0.0));\n float fadeFactor = 1.0 - position_vector.z * surface.lightStrength;\n\n vColor = vec4(colors.rgb * fadeFactor, colors.a * layer.opacity) / 255.0;;\n\n picking_setPickingColor(pickingColors.xyz);\n\n shouldDiscard = pickingColors.a;\n}\n",fs:"#version 300 es\n#define SHADER_NAME surface-layer-fragment-shader\n\nprecision highp float;\n\nin vec4 vColor;\nin float shouldDiscard;\n\nout vec4 fragColor;\n\nvoid main(void) {\n if (shouldDiscard > 0.0) {\n discard;\n }\n fragColor = vColor;\n fragColor = picking_filterPickingColor(fragColor);\n}\n",modules:[h.A,j.Ay,C]})}getModel(){var e,t;return new p.K(this.context.device,(e=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){S(e,t,i[t])})}return e}({},this.getShaders()),t=t={id:"".concat(this.props.id,"-surface"),disableWarnings:!0,topology:"triangle-list",bufferLayout:this.getAttributeManager().getBufferLayouts(),vertexCount:0},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e))}draw(e){let{lightStrength:t}=this.props,{model:i}=this.state;i.shaderInputs.setProps({surface:{lightStrength:t}}),super.draw(e)}getPickingColor(e){let{data:t,uCount:i,vCount:n}=this.props,r=e%i,o=t[e];return[r/(i-1)*255,(e-r)/i/(n-1)*255,1,isFinite(o[0])&&isFinite(o[1])&&isFinite(o[2])?0:1]}decodePickingColor(e){let[t,i,n]=e;return 0===n?-1:t|i<<8}getPosition(e){var t,i,n,r,o,s;let[a,l,c]=e,{xAxis:u,yAxis:d,zAxis:h}=this.props;return[null!=(t=null==(r=u.scale)?void 0:r.call(u,a))?t:a,null!=(i=null==(o=h.scale)?void 0:o.call(h,c))?i:c,null!=(n=null==(s=d.scale)?void 0:s.call(d,l))?n:l]}getPickingInfo(e){let t=e.info;return t&&-1!==t.index&&(t.uv=[(255&t.index)/255,(t.index>>8)/255]),t}calculateIndices(e){let{uCount:t,vCount:i}=this.props,n=(t-1)*(i-1)*6,r=new Uint32Array(n),o=0;for(let e=0;e<t-1;e++)for(let n=0;n<i-1;n++){let i=n*t+e,s=i+1,a=i+t,l=a+1;r[o++]=i,r[o++]=a,r[o++]=s,r[o++]=s,r[o++]=a,r[o++]=l}e.value=r,this.state.model.setVertexCount(n)}constructor(...e){super(...e),S(this,"state",void 0)}}S(k,"defaultProps",{data:[],getColor:{type:"accessor",value:[128,128,128,255]},uCount:100,vCount:100,lightStrength:.1}),S(k,"layerName","SurfaceLayer");var M=i(12121);function A(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class E extends M.A{getPickingInfo(e){let t=e.info;return t.uv&&(t.sample=this.props.getPosition(t.uv)),t}updateState(e){let{props:t,oldProps:i,changeFlags:n}=e;(t.uCount!==i.uCount||t.vCount!==i.vCount||n.updateTriggersChanged&&n.updateTriggersChanged.getPosition)&&this.getSamples()}getSamples(){let{uCount:e,vCount:t,getPosition:i,onAxesChange:n}=this.props,r=Array(e*t),o=1/0,s=-1/0,a=1/0,l=-1/0,c=1/0,u=-1/0,d=0;for(let n=0;n<t;n++)for(let h=0;h<e;h++){let p=i([h/(e-1),n/(t-1)]);r[d++]=p;let[f,g,v]=p;isFinite(f)&&(o=Math.min(o,f),s=Math.max(s,f)),isFinite(g)&&(a=Math.min(a,g),l=Math.max(l,g)),isFinite(v)&&(c=Math.min(c,v),u=Math.max(u,v))}let h={x:{name:"x",min:o,max:s},y:{name:"y",min:a,max:l},z:{name:"z",min:c,max:u}};n(h),this.setState({axes:h,samples:r})}renderLayers(){let{axes:{x:e,y:t,z:i},samples:n}=this.state,{getColor:r,uCount:o,vCount:s,lightStrength:a,fontSize:l,tickFormat:c,axesPadding:u,axesColor:d,drawAxes:h,updateTriggers:p}=this.props;return[new k({data:n,getPosition:e=>e,getColor:r,uCount:o,vCount:s,xAxis:e,yAxis:t,zAxis:i,lightStrength:a}
1,this.getSubLayerProps({id:"surface",updateTriggers:p})),new _({xAxis:e,yAxis:t,zAxis:i,fontSize:l,tickFormat:c,padding:u,color:d},this.getSubLayerProps({id:"axes"}),{visible:h,pickable:!1})]}constructor(...e){super(...e),A(this,"state",void 0)}}A(E,"layerName","PlotLayer"),A(E,"defaultProps",{getPosition:{type:"function",value:e=>[0,0,0]},getColor:{type:"accessor",value:[128,128,128,255]},onAxesChange:{type:"function",value:e=>e},uCount:100,vCount:100,lightStrength:.1,drawAxes:!0,fontSize:12,tickFormat:{type:"function",value:e=>e.toFixed(2)},axesPadding:0,axesColor:{type:"color",value:[0,0,0,255]}});var T=i(4668);let I=(e,t)=>Math.sin(e*e+t*t)*e/Math.PI,D={target:[0,0,0],rotationX:30,rotationOrbit:-30,zoom:"u">typeof window?Math.log2(window.innerHeight/24)+1:1};function R(e){for(let t of Object.values(e)){let e=t.max-t.min,i=!1;if(e>24){let n=(t.min+t.max)/2;t.min=n-12,t.max=n+12,e=24,i=!0}let n=(0,T.A)().domain([t.min,t.max]).range([-e/2,e/2]).clamp(i).nice();t.min=n.domain()[0],t.max=n.domain()[1],t.scale=n,t.ticks=n.ticks(6)}}function L(e){let{sample:t}=e;return t&&t.map(e=>e.toFixed(3)).join(", ")}function z(e){let{device:t,resolution:i=200,showAxis:n=!0,equation:o=I}=e,s=[o&&i&&new E({getPosition:e=>{let[t,i]=e,n=(t-.5)*Math.PI*2,r=(i-.5)*Math.PI*2;return[n,r,o(n,r)]},getColor:e=>{let[t,i,n]=e;return[40,128*n+128,160]},onAxesChange:R,uCount:i,vCount:i,drawAxes:n,axesPadding:.25,axesColor:[0,0,0,128],pickable:!0,updateTriggers:{getPosition:o}})];return(0,r.jsx)(c.A,{device:t,layers:s,views:new u.A({orbitAxis:"Y"}),initialViewState:D,controller:!0,getTooltip:L})}var V=i(97252),F=i(19003);function N(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}let U=(0,V.A)(e=>{let{value:t}=e;try{let e=a.iX.parse(t);return{valid:!0,func:(t,i)=>e.evaluate({x:t,y:i}),text:e.toString()}}catch(e){return{valid:!1}}});class B extends s.Component{static renderInfo(e){return(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{children:"Surface plot from a mathematical equation"}),(0,r.jsx)("p",{children:"Hover on the plot to see the values"})]})}render(){let{params:{resolution:e,showAxis:t,equation:i}}=this.props,n=U(i);return(0,r.jsx)(z,{equation:n.valid?n.func:null,resolution:e.value,showAxis:t.value})}constructor(e){super(e),this.state={equation:{}}}}N(B,"title","3D Surface Explorer"),N(B,"code","".concat(l.lP,"/examples/website/plot")),N(B,"parameters",{equation:{displayName:"Z = f(x, y)",type:"text",value:"sin(x ^ 2 + y ^ 2) * x / 3.14"},resolution:{displayName:"Resolution",type:"range",value:200,step:10,min:10,max:1e3},showAxis:{displayName:"Grid",type:"checkbox",value:!0}});let G=(0,F.xv)(B),W={},H="OrbitView",Z={},q=[];function Y(e){let t={h1:"h1",header:"header",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"orbitview",children:"OrbitView"})}),"\n","\n",(0,r.jsx)(G,{})]})}function K(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(Y,{...e})}):Y(e)}},19003(e,t,i){let n;i.d(t,{xv:()=>Q,Ys:()=>es,ww:()=>ef});var r,o=i(74848),s=i(96540),a=i(44505);let l=e=>"@media screen and (max-width: 480px)",c=a.Ay.div.withConfig({displayName:"styled__PanelContainer",componentId:"sc-3786378-0"})(["font-size:14px;position:absolute;top:0;right:0;width:344px;background:var(--ifm-background-surface-color);box-shadow:var(--ifm-global-shadow-lw);margin:24px;padding:10px 24px;max-height:96%;overflow-x:hidden;overflow-y:auto;overflow-y:overlay;outline:none;z-index:1;","{width:auto;left:0;}"],l),u=a.Ay.div.withConfig({displayName:"styled__PanelExpander",componentId:"sc-3786378-1"})(["display:none;width:16px;height:16px;font-family:serif;font-size:0.8em;text-align:center;line-height:16px;border-radius:50%;background:",";color:",";","{display:block;}"],e=>e.$expanded?"none":"var(--ifm-color-gray-900)",e=>e.$expanded?"var(--ifm-color-black)":"var(--ifm-color-white)",l),d=a.Ay.div.withConfig({displayName:"styled__PanelTitle",componentId:"sc-3786378-2"})(["display:flex;align-items:center;justify-content:space-between;font:bold 1.25em var(--ifm-font-family-base);margin:8px 0;","{cursor:pointer;}"],l),h=a.Ay.div.withConfig({displayName:"styled__PanelContent",componentId:"sc-3786378-3"})(["div > *{vertical-align:middle;white-space:nowrap;}div > label{display:inline-block;width:40%;margin-right:10%;color:var(--ifm-color-content-secondary);margin-top:2px;margin-bottom:2px;}div > input,div > a,div > button,div > select{font:normal 11px/16px var(--ifm-font-family-base);line-height:20px;text-transform:none;text-overflow:ellipsis;overflow:hidden;display:inline-block;padding:0 4px;width:50%;height:20px;text-align:left;}div > button{color:initial;}div > button:disabled{color:var(--ifm-color-gray-300);
1cursor:default;background:var(--ifm-color-gray-300);}div > input{border:solid 1px var(--ifm-color-gray-300);&:disabled{background:var(--ifm-color-white);}&[type='checkbox']{height:auto;}}p{margin-bottom:12px;white-space:initial;}","{display:",";}"],l,e=>e.$expanded?"block":"none"),p=a.Ay.a.withConfig({displayName:"styled__SourceLink",componentId:"sc-3786378-4"})(["display:block;text-align:right;margin-top:8px;font:bold 12px/20px var(--ifm-font-family-base);color:var(--ifm-color-content-secondary);","{display:",";}"],l,e=>e.$expanded?"block":"none");function f(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let v=a.Ay.div.withConfig({displayName:"input__InputContainer",componentId:"sc-8cee6fb7-0"})(["position:relative;width:100%;&:last-child{margin-bottom:20px;}> *{vertical-align:middle;white-space:nowrap;}label{display:inline-block;width:40%;margin-right:10%;margin-top:2px;margin-bottom:2px;}input,a,button{background:var(--ifm-background-surface-color);font-size:0.9em;text-transform:none;text-overflow:ellipsis;overflow:hidden;display:inline-block;padding:0 4px;margin:0;width:50%;height:20px;line-height:1.833;text-align:left;}button{color:initial;}button:disabled{color:var(--ifm-color-gray-500);cursor:default;background:var(--ifm-color-gray-300);}input{border:solid 1px var(--ifm-color-gray-500);&:disabled{background:var(--ifm-color-gray-300);}&[type='checkbox']{height:auto;}}.tooltip{left:50%;top:24px;opacity:0;pointer-events:none;transition:opacity 200ms;}&:hover .tooltip{opacity:1;}"]);function m(e){let{name:t,min:i,max:n,step:r,displayName:a,displayValue:l,onChange:c,accentColor:u}=e,d=(0,s.useCallback)(e=>{let{value:r}=e.target,o=Number(r);void 0!==i&&(o=Math.max(i,o)),void 0!==n&&(o=Math.min(n,o)),c(t,o)},[i,n,c]);return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:a}),(0,o.jsxs)("div",{className:"tooltip",children:[a,": ",String(l)]}),(0,o.jsx)("input",{type:"range",min:i,max:n,value:l,step:r,onChange:d,style:u?{accentColor:u}:void 0})]})}function y(e){let{name:t,value:i,displayName:n,displayValue:r,onChange:a}=e,l=(0,s.useCallback)(e=>{a(t,e.target.checked)},[a]);return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:n}),(0,o.jsxs)("div",{className:"tooltip",children:[n,": ",String(r)]}),(0,o.jsx)("input",{type:"checkbox",checked:i,onChange:l})]})}function b(e){let{name:t,onChange:i,displayName:n,altValue:r,displayValue:a}=e,l=function(e,t){if(null==e)return{};var i,n,r,o={};if("u">typeof Reflect&&Reflect.ownKeys){for(r=0,i=Reflect.ownKeys(Object(e));r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}if(o=function(e,t){if(null==e)return{};var i,n,r={},o=Object.getOwnPropertyNames(e);for(n=0;n<o.length;n++)i=o[n],!(t.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i]);return r}(e,t),Object.getOwnPropertySymbols)for(r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,["name","onChange","displayName","altValue","displayValue"]),c=(0,s.useCallback)(e=>{i(t,e.target.value)},[i]),u=(0,s.useCallback)(()=>{i(t,r)},[r,i]);if("legend"===e.type){let t=e.value||[];Array.isArray(t)||(t=[]);let i=i=>{let n=t.map((e,t)=>t===i?g(f({},e),{selected:!e.selected}):e);e.onChange&&e.onChange(e.name,n)},r=t.filter((e,t)=>t%2==0),s=t.filter((e,t)=>
1t%2==1),a=Math.max(r.length,s.length);return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:n}),(0,o.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",marginTop:8},children:Array.from({length:a}).map((e,t)=>[r[t]&&(0,o.jsx)(w,{color:r[t].color,label:r[t].label,selected:r[t].selected,onClick:()=>i(2*t)},"left-".concat(t)),s[t]&&(0,o.jsx)(w,{color:s[t].color,label:s[t].label,right:!0,selected:s[t].selected,onClick:()=>i(2*t+1)},"right-".concat(t))])})]})}switch(e.type){case"link":return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:n}),(0,o.jsx)("a",{href:a,target:"_new",children:a})]});case"function":case"json":let d=!!r;return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:n}),(0,o.jsx)("button",{type:"text",disabled:!d,onClick:u,children:a})]});case"select":return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:n}),(0,o.jsx)("select",{onChange:c,value:a,children:e.options.map((e,t)=>(0,o.jsx)("option",{value:e,children:e},t))})]});case"checkbox":return(0,o.jsx)(y,f({},e));case"range":return(0,o.jsx)(m,f({},e));default:return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:n}),(0,o.jsxs)("div",{className:"tooltip",children:[n,": ",String(a)]}),(0,o.jsx)("input",g(f({},l),{value:a,onChange:c}))]})}}function w(e){let{color:t,label:i,right:n,selected:r,onClick:s}=e,a=Array.isArray(t)?"rgb(".concat(t.join(","),")"):t;return(0,o.jsxs)("div",{onClick:s,style:f({display:"flex",alignItems:"center",marginBottom:2,fontSize:12,flexDirection:n?"row-reverse":"row",justifyContent:n?"flex-end":"flex-start",textAlign:n?"right":"left",minWidth:0,overflow:"hidden",width:"100%",cursor:s?"pointer":"default",userSelect:"none",transition:"opacity 0.2s, filter 0.2s"},!1===r?{opacity:.6,filter:"grayscale(0.7)"}:{opacity:1,filter:"none"}),children:[(0,o.jsx)("div",{style:{width:14,height:14,background:a,marginLeft:n?6:2,marginRight:n?2:6,flexShrink:0,borderRadius:14,boxShadow:r?"0 0 0 1px ".concat(a):void 0,transition:"box-shadow 0.2s"}}),(0,o.jsx)("span",{style:{whiteSpace:"normal",wordBreak:"break-word",minWidth:0,overflow:"hidden",width:"100%"},children:i})]})}let _=a.Ay.div.withConfig({displayName:"spinner__SpinnerContainer",componentId:"sc-b90f5654-0"})(["height:18px;line-height:18px;font-size:10px;> div{white-space:nowrap;left:0;bottom:0;position:absolute;height:18px;padding-left:20px;transition:width 0.5s;}.spinner--fill{background:$primary;color:$white;overflow:hidden;}.spinner--text{color:$black-40;}&.done{height:0 !important;line-height:0;font-size:0;transition:height 0.5s 1s;> div{height:0 !important;transition:height 0.5s 1s;}}"]);function P(e){let{meta:t}=e;if(!Number.isFinite(t.progress)&&!Number.isFinite(t.progressAlt))return null;let i=(t.progress||0)+(t.progressAlt||0),n=Math.round(1e3*i)/10,r="Loading... ".concat(n,"%");return(0,o.jsxs)(_,{className:i>=1?"done":"",children:[(0,o.jsx)("div",{className:"spinner--text",children:r}),(0,o.jsx)("div",{className:"spinner--fill",style:{width:"".concat(n,"%")},children:r})]})}let O=a.Ay.div.withConfig({displayName:"info-panel__InfoPanelContent",componentId:"sc-e1cd0745-0"})(["hr{margin:12px -24px;}a{text-decoration:none;display:inline;color:var(--ifm-color-primary);}p{margin-bottom:16px;}.legend{display:inline-block;width:12px;height:12px;}.stat{text-transform:uppercase;font-size:0.833em;b{display:block;font-size:3em;font-weight:bold;line-height:1.833;}}hr{border:none;background:var(--ifm-color-gray-400);height:1px;}.layout{display:table;width:100%;> *{display:table-cell !important;}.col-1-3{width:33.33%;}.col-1-2{width:50%;}.text-right{text-align:right;}.text-center{text-align:center;}}"]);function j(e){let{title:t,children:i,sourceLink:n}
1=e,[r,a]=(0,s.useState)(!1);return(0,o.jsxs)(c,{children:[(0,o.jsxs)(d,{onClick:()=>a(!r),children:[(0,o.jsx)("div",{children:t}),(0,o.jsx)(u,{$expanded:r,children:r?"\u2715":"i"})]}),(0,o.jsx)(h,{$expanded:r,children:i}),(0,o.jsx)(p,{$expanded:r,href:n,target:"_new",children:"View Code \u2197"})]})}function x(e){let{title:t,sourceLink:i,params:n,meta:r,children:s,updateParam:a}=e;return(0,o.jsxs)(j,{title:t,sourceLink:i,children:[(0,o.jsxs)(O,{children:[s,Object.keys(n).length>0&&(0,o.jsx)("hr",{}),Object.keys(n).map((e,t)=>{var i,r;return(0,o.jsx)(b,(i=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({name:e},n[e]),r=r={onChange:a},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(r)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}),i),"".concat(t,"-").concat(e))})]}),(0,o.jsx)(P,{meta:r})]})}var C=i(83868),S=i(44662),k=i(83311),M=i(66497),A=i(9526);let E=a.Ay.div.withConfig({displayName:"tabs__Header",componentId:"sc-13f40ac0-0"})(["display:flex;flex-direction:row;& > * + *{margin-left:2px;}"]),T=a.Ay.div.withConfig({displayName:"tabs__HeaderItem",componentId:"sc-13f40ac0-1"})(e=>"\n cursor: pointer;\n padding: 10px 20px;\n font-weight: bold;\n &:hover {\n background-color: #eeefef;\n }\n ".concat(e.isSelected?"\n color: #276EF1;\n border-bottom: 4px solid #276EF1;\n ":"","\n")),I=a.Ay.div.withConfig({displayName:"tabs__Body",componentId:"sc-13f40ac0-2"})(["background-color:rgb(250,248,245);"]),D=e=>{var t,i;let{children:n}=e,r=s.Children.toArray(n),[a,l]=(0,s.useState)((null==(t=r[0])?void 0:t.props.tag)||(null==(i=r[0])?void 0:i.props.title)),c=void 0!==e.selectedItem?e.selectedItem:a,u=void 0!==e.setSelectedItem?e.setSelectedItem:l;return r.some(e=>(e.props.tag||e.props.title)===c)||(c=a),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(E,{children:r.map(e=>(0,o.jsx)(T,{isSelected:(e.props.tag||e.props.title)===c,onClick:()=>u(e.props.tag||e.props.title),children:e.props.title},e.props.title))}),(0,o.jsx)(I,{children:r.find(e=>(e.props.tag||e.props.title)===c)})]})},R=e=>{let{children:t}=e;return(0,o.jsx)(o.Fragment,{children:t})};var L=i(64651),z=i(60966),V=i(51598),F=i(48286);let N={},U="deck-device-type";async function B(e){return N[e]=N[e]||z.a.createDevice({adapters:[V.l,F.Ij],type:e,createCanvasContext:{container:document.createElement("div"),alphaMode:"premultiplied",useDevicePixels:!0,autoResize:!0,width:void 0,height:void 0}}).catch(t=>{throw delete N[e],t}),await N[e]}let G=(0,L.v)((r=function(e){if("u">typeof window)try{window.localStorage.setItem(U,e)}catch(e){}},n=0,e=>({deviceType:void 0,deviceError:void 0,device:void 0,setDeviceType:async t=>{let i,o,s=++n;e({deviceType:t,deviceError:void 0,device:void 0});try{o=await B(t)}catch(e){i=e.message}if(s===n)return r(t),e({deviceType:t,deviceError:i,device:o})}})));function W(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}"u">typeof window&&G.getState().setDeviceType(function(){if("u">typeof window)try{let e=window.localStorage.getItem(U);return"webgl"===e||"webgpu"===e?e:void 0}catch(e){return}}()||"webgl");let H={devices:["webgl2","webgpu"]},Z=e=>{e=W({},H,e);let t=G(e=>e.deviceType),i=G(e=>e.deviceError),n=G(e=>e.setDeviceType);return(0,o.jsxs)(D,{selectedItem:t,setSelectedItem:n,children:[e.devices.includes("webgl2")&&(0,o.jsx)(R,{title:"WebGL2",tag:"webgl",children:i},"WebGL2"),e.devices.includes("webgpu")&&(0,o.jsx)(R,{title:"WebGPU",tag:"webgpu",children:i},"WebGPU")]})},q=e=>(0,o.jsx)(A.A,{children:()=>(0,o.jsx)(Z,W({},e))});function Y(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function K(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let X=a.Ay.div.withConfig({displayName:"make-example__DemoContainer",componentId:"sc-924c9e21-0"})(["height:100%;position:relative;.tooltip,.deck-tooltip{position:absolute;padding:4px 12px;background:rgba(0,0,0,0.8);color:var(--ifm-color-white);overflow:hidden;overflow-wrap:break-word;max-width:300px;font-size:12px;z-index:9;pointer-events:none;}"]),J=a.Ay.div.withConfig({displayName:"make-example__MapTip",componentId:"sc-924c9e21-1"})(["position:absolute;right:12px;bottom:20px;color:var(--ifm-color-white);mix-blend-mode:difference;font-size:14px;@media screen and (max-width:480px){display:none;}"]),$=new WeakMap;function Q(e){let{isInteractive:t=!0,style:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{parameters:n={},mapStyle:r}=e,a=Object.keys(n).reduce((e,t)=>(e[t]=(0,S.H5)(n[t]),e),{}),l=Array.isArray(e.data)?e.data.map(e=>null):null;
1return function(){let[n,c]=(0,s.useState)(l),[u,d]=(0,s.useState)(a),[h,p]=(0,s.useState)({}),f=G(t=>e.hasDeviceTabs?t.device:void 0),g=(0,M.Ay)("/");(0,s.useEffect)(()=>{let e=null==f?void 0:f.getDefaultCanvasContext().canvas;if(!(e instanceof HTMLCanvasElement))return;$.has(e)||$.set(e,e.style.visibility),e.style.visibility="hidden";let t=requestAnimationFrame(()=>{var t;e.style.visibility=null!=(t=$.get(e))?t:""});return()=>{cancelAnimationFrame(t),e.style.visibility="hidden"}},[f]);let v=(0,s.useCallback)(e=>{let t=Object.keys(e).reduce((t,i)=>(t[i]=(0,S.H5)(e[i]),t),{});d(e=>Y({},e,t))},[]),m=(0,s.useCallback)(e=>{p(t=>Y({},t,e))},[]);return(0,s.useEffect)(()=>{let t=e.data;if(!t)return;let i=Array.isArray(t);i||(t=[t]);for(let e=0;e<t.length;e++){let{url:n,worker:r}=t[e];(0,C.Z)((0,C.u)(g,n),r&&(0,C.u)(g,r),(t,n)=>{i?c(i=>{let n=i.slice();return n[e]=t,n}):c(t),n&&p(e=>Y({},e,n))})}},[]),(0,o.jsxs)(o.Fragment,{children:[e.hasDeviceTabs&&(0,o.jsx)(q,{}),(0,o.jsxs)(X,{style:i,children:[(!e.hasDeviceTabs||f)&&(0,o.jsx)(e,{device:f,data:n,mapStyle:r||k.Vi.BLANK,params:u,useParam:v,onStateChange:m},null==f?void 0:f.id),t&&(0,o.jsx)(x,{title:e.title,params:u,meta:h,updateParam:(e,t)=>{let i=u[e];i&&d(K(Y({},u),{[e]:(0,S.H5)(K(Y({},i),{value:t}))}))},sourceLink:e.code,children:e.renderInfo(h)}),t&&r&&(0,o.jsx)(J,{children:"Hold down shift to rotate"})]})]})}}var ee=i(52473);let et=a.Ay.div.withConfig({displayName:"styled__ExampleHeader",componentId:"sc-62556978-0"})(["font:bold 20px/28px var(--ifm-font-family-base);color:var(--ifm-color-content-secondary);margin:0 20px;border-bottom:1px solid 20px;display:inline-block;padding:20px 20px 4px 0;"]),ei=a.Ay.main.withConfig({displayName:"styled__MainExamples",componentId:"sc-62556978-1"})(["padding:16px 0;"]),en=a.Ay.main.withConfig({displayName:"styled__ExamplesGroup",componentId:"sc-62556978-2"})(["display:flex;flex-wrap:wrap;padding:16px;"]),er=a.Ay.a.withConfig({displayName:"styled__ExampleCard",componentId:"sc-62556978-3"})(["cursor:pointer;text-decoration:none;width:50%;max-width:240px;line-height:0;outline:none;padding:4px;position:relative;img{transition-property:filter;transition-duration:var(--ifm-transition-slow);transition-timing-function:var(--ifm-transition-timing-default);}&:hover{box-shadow:var(--ifm-global-shadow-md);}&:hover img{filter:contrast(0.2);}","{width:33%;
1min-width:200px;}@media screen and (max-width:632px){width:50%;}"],l),eo=a.Ay.div.withConfig({displayName:"styled__ExampleTitle",componentId:"sc-62556978-4"})(["position:absolute;display:flex;justify-content:center;flex-direction:column;color:var(--ifm-color-white);font-size:1.5em;text-align:center;line-height:initial;width:90%;height:90%;top:5%;left:5%;border:solid 1px var(--ifm-color-white);opacity:0;transition-property:opacity;transition-duration:var(--ifm-transition-slow);transition-timing-function:var(--ifm-transition-timing-default);&:hover{opacity:1;}"]);function es(e){let{getThumbnail:t}=e,i=(0,ee.t)();return(0,o.jsx)(ei,{children:i.items.map(e=>"category"===e.type?function(e,t){let{label:i,items:n}=e;return[(0,o.jsx)(et,{children:i},"".concat(i,"-header")),(0,o.jsx)(en,{children:n.map(e=>(function(e,t){let i=(0,M.Ay)(t(e)),{label:n,href:r}=e;return(0,o.jsxs)(er,{href:r,children:[(0,o.jsx)("img",{width:"100%",src:i,alt:n}),(0,o.jsx)(eo,{children:(0,o.jsx)("span",{children:n})})]},n)})(e,t))},i)]}(e,t):null)})}var ea=i(10898);let el=a.Ay.section.withConfig({displayName:"styled__Banner",componentId:"sc-1fbd78ce-0"})(["position:relative;height:30rem;background:var(--ifm-color-gray-400);color:var(--ifm-color-gray-900);z-index:0;","{height:80vh;}"],l),ec=a.Ay.div.withConfig({displayName:"styled__Container",componentId:"sc-1fbd78ce-1"})(["position:relative;padding:2rem;max-width:80rem;width:100%;height:100%;margin:0;"]),eu=(0,a.Ay)(ec).withConfig({displayName:"styled__BannerContainer",componentId:"sc-1fbd78ce-2"})(["position:absolute;bottom:0;height:auto;padding-left:4rem;z-index:0;pointer-events:none;"]),ed=a.Ay.div.withConfig({displayName:"styled__HeroExampleContainer",componentId:"sc-1fbd78ce-3"})(["position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;"]);a.Ay.section.withConfig({displayName:"styled__Section",componentId:"sc-1fbd78ce-4"})(["&:nth-child(2n + 1){background:var(--ifm-color-gray-300);}"]);let eh=a.Ay.h1.withConfig({displayName:"styled__ProjectName",componentId:"sc-1fbd78ce-5"})(["font-size:5em;line-height:1;text-transform:uppercase;letter-spacing:4px;font-weight:700;margin:0;margin-bottom:16px;"]),ep=a.Ay.a.withConfig({displayName:"styled__GetStartedLink",componentId:"sc-1fbd78ce-6"})(["pointer-events:all;font-size:12px;line-height:44px;letter-spacing:2px;font-weight:bold;margin:24px 0;padding:0 4rem;pointer-events:all;display:inline-block;text-decoration:none;transition:background-color 250ms ease-in,color 250ms ease-in;border:solid 2px var(--ifm-color-primary);color:var(--ifm-color-gray-900);border-image:linear-gradient( to right,var(--ifm-color-gray-700) 0%,var(--ifm-color-gray-400) 100% );border-image-slice:2;&:visited{color:var(--ifm-color-gray-900);}&:active{color:var(--ifm-color-white);}&:hover{color:var(--ifm-color-white);background-color:var(--ifm-color-primary);}"]);function ef(e){let{HeroExample:t,children:i}=e,{siteConfig:n}=(0,ea.A)();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(el,{children:[(0,o.jsx)(ed,{children:t&&(0,o.jsx)(t,{})}),(0,o.jsxs)(eu,{children:[(0,o.jsx)(eh,{children:n.title}),(0,o.jsx)("p",{children:n.tagline}),(0,o.jsx)(ep,{href:"./docs/get-started/getting-started",children:"GET STARTED"})]})]}),i]})}},83311(e,t,i){i.d(t,{Ut:()=>r,Vi:()=>n,lP:()=>o});let n={LIGHT:"https://deck.gl/mapstyle/deck-light.json",LIGHT_LABEL:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",DARK:"https://deck.gl/mapstyle/deck-dark.json",DARK_LABEL:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",BLANK:{version:8,sources:{},layers:[]}},r="https://raw.githubusercontent.com/visgl/deck.gl-data/master/website",o="https://github.com/visgl/deck.gl/tree/9.4-release"},83868(e,t,i){i.d(t,{Z:()=>s,u:()=>a});var n=i(63120);let r={};function o(e,t){let i=0;r[e]&&r[e].terminate();let n=new Worker(e);r[e]=n;let o=[];n.onmessage=e=>{let{action:i,data:r,meta:s}=e.data;"end"===i?n.terminate():"add"===i&&r&&r.length&&t(o=o.concat(r),s)},this.onProgress=e=>{let{responseText:t}=e.target,r=t.lastIndexOf("\n")+1;n.postMessage({event:"progress",text:t.slice(i,r)}),i=r},this.onLoad=e=>{let{responseText:t}=e;n.postMessage({event:"load",text:t.slice(i)})}}function s(e,t,i){if(t){let r=(0,n.Em)(e),s=new o(t,(e,t)=>{i(e,t)});r.on("progress",s.onProgress).on("load",s.onLoad).get()}else/\.(json|geojson)$/.test(e)?(0,n.Pq)(e,(e,t)=>{e||i(t,{})}):(0,n.Qq)(e,(e,t)=>{e||i(t,{})})}function a(e,t){return t.match(/^\w+:\/\//)?t:"".concat(e.replace(/\/$/,""),"/").concat(t.replace(/^\//,""))}},44662(e,t,i){i.d(t,{H5:()=>s,jH:()=>a});var n=i(77041);function r(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function o(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let s=e=>{if("function"===e.type){let t=String(e.value);if(Array.isArray(e.value)&&(t="[".concat(t,"]")),"function"==typeof e.value)return t=(t=(t=t.replace(/^function (\w+)?\((\w*?)\)/,"$2 =>")).replace(/^function (\w+)?(\(.*?\))/,"$2 =>")).replace(/\{\s*return\s*(.*?);?\s*\}$/,"$1"),o(r({},e),{displayValue:t});if(!e.altType)return o(r({},e),{displayValue:t});e.type=e.altType}if("json"===e.type)return o(r({},e),{displayValue:JSON.stringify(e.value)});if("color"===e.type){let t=function(e){if(!e)return[255,255,255,0];if(Array.isArray(e))return e.slice(0,4);let t=(0,n.Qh)(e);return[t.r,t.g,t.b,255]}(e.value);return o(r({},e),{value:t,displayValue:t.slice(0,3).reduce((e,t)=>"".concat(e).concat(t<16?"0":"").concat(t.toString(16)),"#")})}return o(r({},e),{displayValue:String(e.value)})},a=e=>e?e<1e3?e.toString():(e/=1e3)<1e3?"".concat(e.toFixed(1),"K"):(e/=1e3,"".concat(e.toFixed(1),"M")):0},89293(e,t,i){i.d(t,{A:()=>C});var n=i(21758);function r(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let o=()=>{},s={mode:"preserve"},a={mode:"hard"},l=e=>e;class c{finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let t=!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:e,endProps:t}=this.transition.settings;n=r({},i,2===e?t:this.propsInTransition||i)}this._triggerTransition(n,e),t=!0}else this.transition.cancel();return t}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:t,transitionInterpolator:i}=e;return(t>0||"auto"===t)&&!!i}_isUpdateDueToCurrentTransition(e){return!!this.transition.inProgress&&!!this.propsInTransition&&this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition)}_shouldIgnoreViewportChange(e,t){return this.transition.inProgress?3===this.transition.settings.interruption||this._isUpdateDueToCurrentTransition(t):!this._isTransitionEnabled(t)||t.transitionInterpolator.arePropsEqual(e,t)}_triggerTransition(e,t){let i=this.getControllerState(e,s),n=this.getControllerState(t,a).shortestPathFrom(i),r=t.transitionInterpolator,o=r.getDuration?r.getDuration(e,t):t.transitionDuration;if(0===o)return;let c=r.initializeProps(e,n);this.propsInTransition={};let u={duration:o,easing:t.transitionEasing||l,interpolator:r,interruption:t.transitionInterruption||1,startProps:c.start,endProps:c.end,onStart:t.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(t.onTransitionInterrupt),onEnd:this._onTransitionEnd(t.onTransitionEnd)};this.transition.start(u),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(e){return t=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),null==e||e(t)}}constructor(e){this._onTransitionUpdate=e=>{let{time:t,settings:{interpolator:i,startProps:n,endProps:o,duration:a,easing:l}}=e,c=l(t/a),u=i.interpolateProps(n,o,c);this.propsInTransition=this.getControllerState(r({},this.props,u),s).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})},this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new n.A(e.timeline),this.onViewStateChange=e.onViewStateChange||o,this.onStateChange=e.onStateChange||o}}var u=i(43396),d=i(59377),h=i(86083);function p(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let g={transitionDuration:0},v=e=>1-(1-e)*(1-e),m=e=>1===e?1:1-Math.pow(2,-10*e),y=["wheel"],b=["panstart","panmove","panend"],w=["pinchstart","pinchmove","pinchend"],_=["multipanstart","multipanmove","multipanend"],P=["dblclick"],O=["dblclickdragstart","dblclickdragmove","dblclickdragend","dblclickdragcancel"],j=["keydown"],x={};class C{set events(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.props&&this.setProps(this.props)}finalize(){for(let t in this._events)if(this._events[t]){var e;null==(e=this.eventManager)||e.off(t,this.handleEvent)}this.transitionManager.finalize()}handleEvent(e){this._controllerState=void 0;let t=this._eventStartBlocked;switch(e.type){case"panstart":return!t&&this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return!t&&!!this._isTrackpadGestureAllowed(e)&&this._onPinchStart(e);case"pinchmove":return!!this._isTrackpadGestureAllowed(e)&&this._onPinch(e);case"pinchend":return!!this._isTrackpadGestureAllowed(e)&&this._onPinchEnd(e);case"multipanstart":return!t&&this._onMultiPanStart(e);case"multipanmove":return this._onMultiPan(e);case"multipanend":return this._onMultiPanEnd(e);case"dblclick":return this._onDoubleClick(e);case"dblclickdragstart":return!t&&this._onDoubleClickDragStart(e);case"dblclickdragmove":return this._onDoubleClickDrag(e);case"dblclickdragend":case"dblclickdragcancel":return this._onDoubleClickDragEnd(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(p({makeViewport:this.makeViewport},this.props,this.state)),this._controllerState}getCenter(e){let{x:t,y:i}=this.props,{offsetCenter:n}=e;return[n.x-t,n.y-i]}getZoomPosition(e){if("pointer"===this.zoomAround)return e;let t=this.makeViewport(this.controllerState.getViewportProps()),[i,n]=(0,h.VJ)(t.center,t.pixelProjectionMatrix);return[i,n]}isPointInBounds(e,t){let{width:i,height:n}=this.props;if(t&&t.handled)return!1;let r=e[0]>=0&&e[0]<=i&&e[1]>=0&&e[1]<=n;return r&&t&&t.stopPropagation(),r}isFunctionKeyPressed(e){let{srcEvent:t}=e;return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(e){let t=setTimeout(()=>{this._eventStartBlocked===t&&(this._eventStartBlocked=null)},e);this._eventStartBlocked=t}setProps(e){void 0===e.maxBoundsPadding&&(e.maxBoundsPadding=null),e.dragMode&&(this.dragMode=e.dragMode);let t=this.props;this.props=e,"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);let{inertia:i}=e;this.inertia=Number.isFinite(i)?i:300*(!0===i);let{scrollZoom:n=!0,dragPan:r=!0,dragRotate:o=!0,doubleClickZoom:s=!0,doubleClickDragZoom:a=!1,touchZoom:l=!0,touchRotate:c=!1,multiTouchDrag:u=c?"rotate":null,trackpadGesture:h=!1,zoomAround:g="pointer",keyboard:v=!0}=e,m=!!this.onViewStateChange;if(this.toggleEvents(y,m&&n),this.toggleEvents(b,m),this.toggleEvents(w,m&&(l||"rotate"===u)),this.toggleEvents(_,m&&!!u),this.toggleEvents(P,m&&s),this.toggleEvents(O,m&&a),this.toggleEvents(j,m&&v),this.scrollZoom=n,this.dragPan=r,this.dragRotate=o,this.doubleClickZoom=s,this.doubleClickDragZoom=a,this.touchZoom=l,this.touchRotate="rotate"===u,this.multiTouchDrag=u,this.trackpadGesture=h,this.zoomAround=g,this.keyboard=v,(!t||t.height!==e.height||t.width!==e.width||t.maxBounds!==e.maxBounds||t.maxBoundsPadding!==e.maxBoundsPadding)&&e.maxBounds){let t=new this.ControllerState(f(p({},e),{makeViewport:this.makeViewport})),i=t.getViewportProps();Object.keys(i).some(t=>!(0,d.b)(i[t],e[t],1))&&this.updateViewport(t)}}updateTransition(){this.transitionManager.updateTransition()}
1toggleEvents(e,t){this.eventManager&&e.forEach(e=>{this._events[e]!==t&&(this._events[e]=t,t?this.eventManager.on(e,this.handleEvent):this.eventManager.off(e,this.handleEvent))})}updateViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=p({},e.getViewportProps(),t),r=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(i),r){let e=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:n,interactionState:this._interactionState,oldViewState:e,viewId:this.props.id})}}_onTransition(e){this.onViewStateChange(f(p({},e),{interactionState:this._interactionState,viewId:this.props.id}))}_setInteractionState(e){Object.assign(this._interactionState,e),this.onStateChange(this._interactionState)}_getConstraintContext(e,t){return this.props.rubberBand?{mode:"update"===t?"elastic":"end"===t?"rebound":"hard"}:{mode:"hard"}}_getReboundTransition(e,t){if("rebound"!==e.mode)return null;let i=t.getViewportProps();return Object.keys(i).some(e=>!(0,d.b)(this.props[e],i[e],1))?f(p({},this._getTransitionProps()),{transitionDuration:300,transitionEasing:m}):null}_onPanStart(e){let t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;let i=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||"pan"===this.dragMode)&&(i=!i);let n=i?"pan":"rotate",r=this._getConstraintContext(n,"start"),o=i?this.controllerState.panStart({pos:t},r):this.controllerState.rotateStart({pos:t},r);return this._panMove=i,this.updateViewport(o,g,{isDragging:!0}),!0}_onPan(e){return!!this.isDragging()&&(this._panMove?this._onPanMove(e):this._onPanRotate(e))}_onPanEnd(e){return!!this.isDragging()&&(this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e))}_onPanMove(e){if(!this.dragPan)return!1;let t=this.getCenter(e),i=this.controllerState.pan({pos:t},this._getConstraintContext("pan","update"));return this.updateViewport(i,g,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:t}=this;if(this.dragPan&&t&&e.velocity){let i=this.getCenter(e),n=[i[0]+e.velocityX*t/2,i[1]+e.velocityY*t/2],r=this.controllerState.pan({pos:n}).panEnd();this.updateViewport(r,f(p({},this._getTransitionProps()),{transitionDuration:t,transitionEasing:v}),{isDragging:!1,isPanning:!0})}else{let e=this.controllerState,t=this._getConstraintContext("pan","end"),i=e.panEnd(t),n=this._getReboundTransition(t,i);this.updateViewport(i,n,{isDragging:!1,isPanning:!!n})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let t=this.getCenter(e),i=this.controllerState.rotate({pos:t},this._getConstraintContext("rotate","update"));return this.updateViewport(i,g,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:t}=this;if(this.dragRotate&&t&&e.velocity){let i=this.getCenter(e),n=[i[0]+e.velocityX*t/2,i[1]+e.velocityY*t/2],r=this.controllerState.rotate({pos:n}).rotateEnd();this.updateViewport(r,f(p({},this._getTransitionProps()),{transitionDuration:t,transitionEasing:v}),{isDragging:!1,isRotating:!0})}else{let e=this.controllerState,t=this._getConstraintContext("rotate","end"),i=e.rotateEnd(t),n=this._getReboundTransition(t,i);this.updateViewport(i,n,{isDragging:!1,isRotating:!!n})}return!0}_onWheel(e){if(!this.scrollZoom||this.trackpadGesture&&"mouse"!==e.device)return!1;let t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;e.srcEvent.preventDefault();let{speed:i=.01,smooth:n=!1}=!0===this.scrollZoom?{}:this.scrollZoom,{delta:r}=e,o=2/(1+Math.exp(-Math.abs(r*i)));r<0&&0!==o&&(o=1/o);let s=this.getZoomPosition(t),a=n?f(p({},this._getTransitionProps({around:s})),{transitionDuration:250}):g,l=this.controllerState.zoom({pos:s,scale:o});return this.updateViewport(l,a,{isZooming:!0,isPanning:!0}),n||this._setInteractionState({isZooming:!1,isPanning:!1}),!0}_onMultiPanStart(e){let{multiTouchDrag:t}=this;if(!t||!this._isMultiPanEventAllowed(e,t))return!1;let i=e.offsetCenter;if(!this.isPointInBounds(this.getCenter(e),e))return!1;let n="trackpad"===e.pointerType,r={x:i.x-(n?0:e.deltaX),y:i.y-(n?0:e.deltaY)},o=f(p({},e),{offsetCenter:r}),s=this.getCenter(o),a="pan"===t?this.controllerState.panStart({pos:s},this._getConstraintContext("pan","start")):this.controllerState.rotateStart({pos:s},this._getConstraintContext("rotate","start"));return this._multiPanMode=t,this._multiPanStartCenter=r,this.updateViewport(a,g,{isDragging:!0}),!0}_onMultiPan(e){let{mode:t,event:i}=this._getMultiPanEvent(e);return!!t&&!!i&&!!this.isDragging()&&("pan"===t?this._onPanMove(i):this._onPanRotate(i))}_onMultiPanEnd(e){let{mode:t,event:i}=this._getMultiPanEvent(e);
1if(!t||!i||!this.isDragging())return this._resetMultiPan(),!1;let n="pan"===t?this._onPanMoveEnd(i):this._onPanRotateEnd(i);return this._resetMultiPan(),n}_isTrackpadGestureAllowed(e){return"trackpad"!==e.pointerType||this.trackpadGesture}_isMultiPanEventAllowed(e,t){return"trackpad"===e.pointerType?this.trackpadGesture&&("pan"===t?this.dragPan:this.dragRotate):"touch"===e.pointerType&&("pan"===t?this.dragPan:this.dragRotate)}_getMultiPanEvent(e){let t=this._multiPanMode,i=this._multiPanStartCenter;return t&&i?{mode:t,event:f(p({},e),{offsetCenter:{x:i.x+e.deltaX,y:i.y+e.deltaY}})}:{mode:null,event:null}}_resetMultiPan(){this._multiPanMode=null,this._multiPanStartCenter=null}_onPinchStart(e){this._doubleClickDragAnchor=null;let t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;let i=this.controllerState.zoomStart({pos:this.getZoomPosition(t)},this._getConstraintContext("zoom","start")).rotateStart({pos:t},this._getConstraintContext("rotate","start"));return x._startPinchRotation=e.rotation,x._lastPinchEvent=e,this.updateViewport(i,g,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let t=this.controllerState;if(this.touchZoom){let{scale:i}=e,n=this.getCenter(e);t=t.zoom({pos:this.getZoomPosition(n),scale:i},this._getConstraintContext("zoom","update"))}if(this.touchRotate){let{rotation:i}=e;t=t.rotate({deltaAngleX:x._startPinchRotation-i},this._getConstraintContext("rotate","update"))}return this.updateViewport(t,g,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),x._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:t}=this,{_lastPinchEvent:i}=x;if(this.touchZoom&&t&&i&&e.scale!==i.scale){let n=this.getCenter(e),r=this.getZoomPosition(n),o=this.controllerState.rotateEnd(),s=Math.log2(e.scale),a=(s-Math.log2(i.scale))/(e.deltaTime-i.deltaTime),l=Math.pow(2,s+a*t/2);o=o.zoom({pos:r,scale:l}).zoomEnd(),this.updateViewport(o,f(p({},this._getTransitionProps({around:r})),{transitionDuration:t,transitionEasing:v}),{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(t)}else{let e=this.controllerState,t=this._getConstraintContext("zoom","end"),i=this._getConstraintContext("rotate","end"),n=e.zoomEnd(t).rotateEnd(i),r=this._getReboundTransition(this.touchZoom?t:i,n);this.updateViewport(n,r,{isDragging:!1,isPanning:!!r&&this.touchZoom,isZooming:!!r&&this.touchZoom,isRotating:!!r&&this.touchRotate})}return x._startPinchRotation=null,x._lastPinchEvent=null,!0}_onDoubleClick(e){if(!this.doubleClickZoom||Date.now()<this._suppressDoubleClickUntil)return!1;let t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;let i=this.isFunctionKeyPressed(e),n=this.getZoomPosition(t),r=this.controllerState.zoom({pos:n,scale:i?.5:2});return this.updateViewport(r,this._getTransitionProps({around:n}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onDoubleClickDragStart(e){if(!this.doubleClickDragZoom)return this._doubleClickDragAnchor=null,!1;let t=this.getCenter(e);if(!this.isPointInBounds(t,e))return this._doubleClickDragAnchor=null,!1;this._doubleClickDragAnchor=this.getZoomPosition(t);let i=this.controllerState.zoomStart({pos:this._doubleClickDragAnchor},this._getConstraintContext("zoom","start"));return 1!==e.scale&&(i=i.zoom({pos:this._doubleClickDragAnchor,scale:e.scale},this._getConstraintContext("zoom","update"))),this.updateViewport(i,g,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDrag(e){let t=this._doubleClickDragAnchor;if(!t)return!1;let i=this.controllerState.zoom({pos:t,scale:e.scale},this._getConstraintContext("zoom","update"));return this.updateViewport(i,g,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDragEnd(e){if(!this._doubleClickDragAnchor)return!1;this._doubleClickDragAnchor=null;let t=this.controllerState,i=this._getConstraintContext("zoom","end"),n=t.zoomEnd(i),r=this._getReboundTransition(i,n);return this.updateViewport(n,r,{isDragging:!1,isPanning:!!r,isZooming:!!r}),this._suppressDoubleClickUntil=Date.now()+100,this.blockEvents(100),!0}_onKeyDown(e){let t;if(!this.keyboard)return!1;let i=this.isFunctionKeyPressed(e),{zoomSpeed:n,moveSpeed:r,rotateSpeedX:o,rotateSpeedY:s}=!0===this.keyboard?{}:this.keyboard,{controllerState:a}=this,l={};switch(e.srcEvent.code){case"Minus":t=i?a.zoomOut(n).zoomOut(n):a.zoomOut(n),l.isZooming=!0;break;case"Equal":t=i?a.zoomIn(n).zoomIn(n):a.zoomIn(n),l.isZooming=!0;break;case"ArrowLeft":i?(t=a.rotateLeft(o),l.isRotating=!0):(t=a.moveLeft(r),l.isPanning=!0);break;case"ArrowRight":i?(t=a.rotateRight(o),l.isRotating=!0):(t=a.moveRight(r),l.isPanning=!0);break;case"ArrowUp":i?(t=a.rotateUp(s),l.isRotating=!0):(t=a.moveUp(r),l.isPanning=!0);break;case"ArrowDown":i?(t=a.rotateDown(s),l.isRotating=!0):(t=a.moveDown(r),l.isPanning=!0);break;default:return!1}return this.updateViewport(t,this._getTransitionProps(),l),!0}_getTransitionProps(e){let{transition:t}=this;return t&&t.transitionInterpolator?e?f(p({},t),{transitionInterpolator:new u.A(f(p({},e,t.transitionInterpolator.opts),{makeViewport:this.controllerState.makeViewport}))}):t:g}constructor(e){this.state={},this._events={},this._interactionState={isDragging:!1},this._customEvents=[],this._eventStartBlocked=null,this._panMove=!1,this._multiPanMode=null,this._multiPanStartCenter=null,this._doubleClickDragAnchor=null,this._suppressDoubleClickUntil=0,this.invertPan=!1,this.dragMode="rotate",this.inertia=0,this.scrollZoom=!0,this.dragPan=!0,this.dragRotate=!0,this.doubleClickZoom=!0,this.doubleClickDragZoom=!0,this.touchZoom=!0,this.touchRotate=!1,this.multiTouchDrag=null,this.trackpadGesture=!1,this.zoomAround="pointer",this.keyboard=!0,this.transitionManager=new c(f(p({},e),{getControllerState:(t,i)=>new this.ControllerState(f(p({},t),{constraintContext:i,makeViewport:e.makeViewport})),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,this.pickPosition=e.pickPosition}}},77991(e,t,i){i.d(t,{A:()=>v,y:()=>g});var n=i(26489),r=i(89293),o=i(97659),s=i(39333),a=i(86083),l=i(22708),c=i(79036),u=i(43396);function d(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let p=[[-1/0,-90],[1/0,90]];function f(e){let[t,i]=e;if(Math.abs(i)>90&&(i=90*Math.sign(i)),Number.isFinite(t)){let[e,r]=(0,a.Gw)([t,i]);return[e,(0,n.qE)(r,0,512)]}let[,r]=(0,a.Gw)([0,i]);return[t,(0,n.qE)(r,0,512)]}class g extends o.A{panStart(e,t){let{pos:i}=e;return this._getUpdatedState({startPanLngLat:this._unproject(i)},t)}pan(e,t){let{pos:i,startPos:n}=e,r=this.getState().startPanLngLat||this._unproject(n);if(!r)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(r,i);return this._getUpdatedState(o,t)}panEnd(e){return this._getUpdatedState({startPanLngLat:null},e)}rotateStart(e){var t;let{pos:i}=e,n=null==(t=this.getAltitude)?void 0:t.call(this,i);return this._getUpdatedState({startRotatePos:i,startRotateLngLat:void 0!==n?this._unproject3D(i,n):void 0,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate(e){let t,{pos:i,deltaAngleX:n=0,deltaAngleY:r=0}=e,{startRotatePos:o,startRotateLngLat:s,startBearing:a,startPitch:l}=this.getState();if(!o||void 0===a||void 0===l)return this;if(t=i?this._getNewRotation(i,o,l,a):{bearing:a+n,pitch:l+r},s){let e=this.makeViewport(d({},this.getViewportProps(),t)),i="panByPosition3D"in e?"panByPosition3D":"panByPosition";return this._getUpdatedState(d({},t,e[i](s,o)))}return this._getUpdatedState(t)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startRotateLngLat:null,startBearing:null,startPitch:null})}zoomStart(e,t){let{pos:i}=e;return this._getUpdatedState({startZoomLngLat:this._unproject(i),startZoom:this.getViewportProps().zoom},t)}zoom(e,t){let{pos:i,startPos:n,scale:r}=e,{startZoom:s,startZoomLngLat:a}=this.getState();return(a||(s=this.getViewportProps().zoom,a=this._unproject(n)||this._unproject(i)),a)?this._getUpdatedState({zoom:s+Math.log2(r),[o.y]:{position:a,screenPosition:i}},t):this}zoomEnd(e){return this._getUpdatedState({startZoomLngLat:null,startZoom:null},e)}zoomIn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,t=arguments.length>1?arguments[1]:void 0;return this._zoomFromCenter(e,t)}zoomOut(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,t=arguments.length>1?arguments[1]:void 0;return this._zoomFromCenter(1/e,t)}moveLeft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,t=arguments.length>1?arguments[1]:void 0;return this._panFromCenter([e,0],t)}moveRight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,t=arguments.length>1?arguments[1]:void 0;return this._panFromCenter([-e,0],t)}moveUp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,t=arguments.length>1?arguments[1]:void 0;return this._panFromCenter([0,e],t)}moveDown(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,t=arguments.length>1?arguments[1]:void 0;return this._panFromCenter([0,-e],t)}rotateLeft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}shortestPathFrom(e){let t=e.getViewportProps(),i=d({},this.getViewportProps()),{bearing:n,longitude:r}=i;return Math.abs(n-t.bearing)>180&&(i.bearing=n<0?n+360:n-360),Math.abs(r-t.longitude)>
1180&&(i.longitude=r<0?r+360:r-360),i}applyConstraints(e,t){let i=e[o.y];delete e[o.y];let{maxPitch:r,minPitch:l,pitch:u,bearing:p,normalize:g,maxBounds:v,rubberBand:m}=e;g&&(p<-180||p>180)&&(e.bearing=(0,c.zi)(p+180,360)-180),e.pitch=(0,n.qE)(u,l,r);let y=this._constrainZoom(e.zoom,e),b=m&&(null==t?void 0:t.mode)==="elastic";if(e.zoom=(null==t?void 0:t.mode)==="preserve"?e.zoom:b?(0,s.GT)(e.zoom,y,1):y,i){let t=this.makeViewport(e);Object.assign(e,t.panByPosition(i.position,i.screenPosition))}if(g&&(e.longitude<-180||e.longitude>180)&&(e.longitude=(0,c.zi)(e.longitude+180,360)-180),v){let i=(0,s.CI)(e.width,e.height,e.maxBoundsPadding),r=this.makeViewport(h(d({},e),{bearing:0,pitch:0})),o=(0,s.jo)(r,[e.longitude,e.latitude],i),l=f(v[0]),c=f(v[1]),u=2**e.zoom,p=[l[0]+o.left/u,l[1]+o.bottom/u],g=[c[0]-o.right/u,c[1]-o.top/u],m=f([e.longitude,e.latitude]),y=[(0,n.qE)(m[0],p[0],g[0]),(0,n.qE)(m[1],p[1],g[1])],w=m.slice();if(i.width>=0&&(w[0]=(null==t?void 0:t.mode)==="preserve"?m[0]:b?(0,s.GT)(m[0],y[0],i.width/2/u):y[0]),i.height>=0&&(w[1]=(null==t?void 0:t.mode)==="preserve"?m[1]:b?(0,s.GT)(m[1],y[1],i.height/2/u):y[1]),w[0]!==m[0]||w[1]!==m[1]){let[t,i]=(0,a.iV)(w);w[0]!==m[0]&&(e.longitude=t),w[1]!==m[1]&&(e.latitude=i)}}return e}_constrainZoom(e,t){t||(t=this.getViewportProps());let{maxZoom:i,maxBounds:r}=t,o=null!==r&&t.width>0&&t.height>0,{minZoom:a}=t;if(o){let e=(0,s.CI)(t.width,t.height,t.maxBoundsPadding),n=f(r[0]),o=f(r[1]),l=o[0]-n[0],c=o[1]-n[1];e.width>0&&Number.isFinite(l)&&l>0&&(a=Math.max(a,Math.log2(e.width/l))),e.height>0&&Number.isFinite(c)&&c>0&&(a=Math.max(a,Math.log2(e.height/c))),a>i&&(a=i)}return(0,n.qE)(e,a,i)}_zoomFromCenter(e,t){let{width:i,height:n}=this.getViewportProps();return this.zoom({pos:[i/2,n/2],scale:e},t)}_panFromCenter(e,t){let{width:i,height:n}=this.getViewportProps();return this.pan({startPos:[i/2,n/2],pos:[i/2+e[0],n/2+e[1]]},t)}_getUpdatedState(e,t){return new this.constructor(h(d({makeViewport:this.makeViewport}
1,this.getViewportProps(),this.getState(),e),{constraintContext:t}))}_unproject(e){let t=this.makeViewport(this.getViewportProps());return e&&t.unproject(e)}_unproject3D(e,t){return this.makeViewport(this.getViewportProps()).unproject(e,{targetZ:t})}_getNewRotation(e,t,i,r){let o=e[0]-t[0],s=e[1]-t[1],a=e[1],l=t[1],{width:c,height:u}=this.getViewportProps(),d=0;s>0?Math.abs(u-l)>5&&(d=s/(l-u)*1.2):s<0&&l>5&&(d=1-a/l),d=(0,n.qE)(d,-1,1);let{minPitch:h,maxPitch:p}=this.getViewportProps(),f=i;return d>0?f=i+d*(p-i):d<0&&(f=i-d*(h-i)),{pitch:f,bearing:r+o/c*180}}constructor(e){let{width:t,height:i,latitude:n,longitude:r,zoom:s,bearing:a=0,pitch:c=0,altitude:u=1.5,position:h=[0,0,0],maxZoom:f=20,minZoom:g=0,maxPitch:v=60,minPitch:m=0,startPanLngLat:y,startZoomLngLat:b,startRotatePos:w,startRotateLngLat:_,startBearing:P,startPitch:O,startZoom:j,normalize:x=!0,rubberBand:C=!1}=e,{[o.y]:S}=e;(0,l.A)(Number.isFinite(r)),(0,l.A)(Number.isFinite(n)),(0,l.A)(Number.isFinite(s));let k=e.maxBounds||(x?p:null);super(d({width:t,height:i,latitude:n,longitude:r,zoom:s,bearing:a,pitch:c,altitude:u,maxZoom:f,minZoom:g,maxPitch:v,minPitch:m,normalize:x,position:h,maxBounds:k,maxBoundsPadding:e.maxBoundsPadding||null,rubberBand:C},{[o.y]:S}),{startPanLngLat:y,startZoomLngLat:b,startRotatePos:w,startRotateLngLat:_,startBearing:P,startPitch:O,startZoom:j},e.makeViewport,e.constraintContext),this.getAltitude=e.getAltitude}}class v extends r.A{setProps(e){"rotationPivot"in e&&(this.rotationPivot=e.rotationPivot||"center"),e.getAltitude=this._getAltitude,e.position=e.position||[0,0,0],e.maxBounds=e.maxBounds||(!1===e.normalize?null:p),super.setProps(e)}updateViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=e.getState();i.isDragging&&n.startRotateLngLat?i=h(d({},i),{rotationPivotPosition:n.startRotateLngLat}):!1===i.isDragging&&(i=h(d({},i),{rotationPivotPosition:void 0})),super.updateViewport(e,t,i)}constructor(){super(...arguments),this.ControllerState=g,this.transition={transitionDuration:300,transitionInterpolator:new u.A({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})},this.dragMode="pan",this.rotationPivot="center",this._getAltitude=e=>{if("2d"===this.rotationPivot)return 0;if("3d"===this.rotationPivot&&this.pickPosition){let{x:t,y:i}=this.props,n=this.pickPosition(t+e[0],i+e[1]);if(n&&n.coordinate&&n.coordinate.length>=3)return n.coordinate[2]}}}}},39333(e,t,i){i.d(t,{CI:()=>o,GT:()=>r,jo:()=>s});var n=i(8340);function r(e,t,i){let n=e-t;return n&&Number.isFinite(n)?t+n*i/(i+Math.abs(n)):t}function o(e,t,i){var r,o,s,a;let l=(0,n.E9)((0,n.rk)(null!=(r=null==i?void 0:i.left)?r:0),e),c=(0,n.E9)((0,n.rk)(null!=(o=null==i?void 0:i.right)?o:0),e),u=(0,n.E9)((0,n.rk)(null!=(s=null==i?void 0:i.top)?s:0),t),d=(0,n.E9)((0,n.rk)(null!=(a=null==i?void 0:i.bottom)?a:0),t);return{x:l,y:u,width:e-l-c,height:t-u-d}}function s(e,t,i){let[n,r]=e.project(t);return n=Number.isFinite(n)?n:e.width/2,r=Number.isFinite(r)?r:e.height/2,{left:n-i.x,right:i.x+i.width-n,top:r-i.y,bottom:i.y+i.height-r}}},97659(e,t,i){i.d(t,{A:()=>r,y:()=>n});let n=Symbol("constraintAround");class r{getViewportProps(){return this._viewportProps}getState(){return this._state}constructor(e,t,i,n){this.makeViewport=i,this._viewportProps=this.applyConstraints(e,n),this._state=t}}},26758(e,t,i){i.d(t,{A:()=>s,k:()=>o});var n=i(1918);let r={};function o(e){r=e}function s(e,t,i,o){n.A.level>0&&r[e]&&r[e].call(null,t,i,o)}},25941(e,t,i){i.d(t,{$:()=>o});let n=[255,255,255],r=0;class o{constructor(e={}){this.type="ambient";let{color:t=n}=e,{intensity:i=1}=e;this.id=e.id||"ambient-".concat(r++),this.color=t,this.intensity=i}}},4569(e,t,i){i.d(t,{Z:()=>a});var n=i(35097);let r=[255,255,255],o=[0,0,-1],s=0;class a{getProjectedLight(e){return this}constructor(e={}){this.type="directional";let{color:t=r}=e,{intensity:i=1}=e,{direction:a=o}=e,{_shadow:l=!1}=e;this.id=e.id||"directional-".concat(s++),this.color=t,this.intensity=i,this.type="directional",this.direction=new n.P(a).normalize().toArray(),this.shadow=l}}},40190(e,t,i){i.d(t,{A:()=>S});
1var n=i(25941),r=i(4569),o=i(6706),s=i(35097),a=i(57618);function l(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}class u extends a.A{delete(){this.fbo&&(this.fbo.destroy(),this.fbo=null)}getShadowMap(){return this.fbo.colorAttachments[0].texture}render(e){let t=this.fbo,i=this.device.canvasContext.cssToDeviceRatio(),n=e.viewports[0],r=n.width*i,o=n.height*i;(r!==t.width||o!==t.height)&&t.resize({width:r,height:o}),super.render(c(l({},e),{clearColor:[1,1,1,1],target:t,pass:"shadow"}))}getLayerParameters(e,t,i){return c(l({},e.props.parameters),{blend:!1,depthWriteEnabled:!0,depthCompare:"less-equal"})}shouldDrawLayer(e){return!1!==e.props.shadowEnabled}getShaderModuleProps(e,t,i){return{shadow:{project:i.project,drawToShadowMap:!0}}}constructor(e,t){super(e,t);let i=e.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),n=e.createTexture({format:"depth16unorm",width:1,height:1});this.fbo=e.createFramebuffer({id:"shadowmap",width:1,height:1,colorAttachments:[i],depthStencilAttachment:n})}}var d=i(48895),h=i(36485),p=i(97252),f=i(86083),g=i(72823);let v="\nlayout(std140) uniform shadowUniforms {\n bool drawShadowMap;\n bool useShadowMap;\n vec4 color;\n highp int lightId;\n float lightCount;\n mat4 viewProjectionMatrix0;\n mat4 viewProjectionMatrix1;\n vec4 projectCenter0;\n vec4 projectCenter1;\n} shadow;\n",m="\n".concat(v,"\n").concat("\nconst int max_lights = 2;\n\nout vec3 shadow_vPosition[max_lights];\n\nvec4 shadow_setVertexPosition(vec4 position_commonspace) {\n mat4 viewProjectionMatrices[max_lights];\n viewProjectionMatrices[0] = shadow.viewProjectionMatrix0;\n viewProjectionMatrices[1] = shadow.viewProjectionMatrix1;\n vec4 projectCenters[max_lights];\n projectCenters[0] = shadow.projectCenter0;\n projectCenters[1] = shadow.projectCenter1;\n\n if (shadow.drawShadowMap) {\n return project_common_position_to_clipspace(position_commonspace, viewProjectionMatrices[shadow.lightId], projectCenters[shadow.lightId]);\n }\n if (shadow.useShadowMap) {\n for (int i = 0; i < max_lights; i++) {\n if(i < int(shadow.lightCount)) {\n vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, viewProjectionMatrices[i], projectCenters[i]);\n shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0;\n }\n }\n }\n return gl_Position;\n}\n","\n"),y="\n".concat(v,"\n").concat("\nconst int max_lights = 2;\nuniform sampler2D shadow_uShadowMap0;\nuniform sampler2D shadow_uShadowMap1;\n\nin vec3 shadow_vPosition[max_lights];\n\nconst vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0);\nconst vec4 bitUnpackShift = 1.0 / bitPackShift;\nconst vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n\nfloat shadow_getShadowWeight(vec3 position, sampler2D shadowMap) {\n vec4 rgbaDepth = texture(shadowMap, position.xy);\n\n float z = dot(rgbaDepth, bitUnpackShift);\n return smoothstep(0.001, 0.01, position.z - z);\n}\n\nvec4 shadow_filterShadowColor(vec4 color) {\n if (shadow.drawShadowMap) {\n vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift);\n rgbaDepth -= rgbaDepth.gbaa * bitMask;\n return rgbaDepth;\n }\n if (shadow.useShadowMap) {\n float shadowAlpha = 0.0;\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0);\n if(shadow.lightCount > 1.0) {\n shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1);\n }\n shadowAlpha *= shadow.color.a / shadow.lightCount;\n float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha);\n\n return vec4(\n mix(color.rgb, shadow.color.rgb, shadowAlpha / blendedAlpha),\n blendedAlpha\n );\n }\n return color;\n}\n","\n"),b=(0,p.A)(function(e){let{viewport:t,center:i}=e;return new o.k(t.viewProjectionMatrix).invert().transform(i)}),w=(0,p.A)(function(e){let{viewport:t,shadowMatrices:i}=e,n=[],r=t.pixelUnprojectionMatrix,a=t.isGeospatial?void 0:1,l=[[0,0,a],[t.width,0,a],[0,t.height,a],[t.width,t.height,a],[0,0,-1],[t.width,0,-1],[0,t.height,-1],[t.width,t.height,-1]].map(e=>(function(e,t){let[i,n,r]=e,o=(0,f.xJ)([i,n,r],t);return Number.isFinite(r)?o:[o[0],o[1],0]})(e,r));for(let e of i){let i=e.clone().translate(new s.P(t.center).negate()),r=l.map(e=>i.transform(e)),a=new o.k().ortho({left:Math.min(...r.map(e=>e[0])),right:Math.max(...r.map(e=>e[0])),bottom:Math.min(...r.map(e=>e[1])),top:Math.max(...r.map(e=>e[1])),near:Math.min(...r.map(e=>-e[2])),far:Math.max(...r.map(e=>-e[2]))});n.push(a.multiplyRight(e))}return n}),_=[0,0,0,1],P=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],O={name:"shadow",dependencies:[h.A],vs:m,fs:y,inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n position = shadow_setVertexPosition(geometry.position);\n ","fs:DECKGL_FILTER_COLOR":"\n color = shadow_filterShadowColor(color);\n "},getUniforms:function(e){let{shadowEnabled:t=!0,project:i}=e;if(!t||!i||!e.shadowMatrices||!e.shadowMatrices.length)return{drawShadowMap:!1,useShadowMap:!1,shadow_uShadowMap0:e.dummyShadowMap,shadow_uShadowMap1:e.dummyShadowMap};let n=h.A.getUniforms(i),r=b({viewport:i.viewport,center:n.center}),o=[],a=w({shadowMatrices:e.shadowMatrices,viewport:i.viewport}).slice();for(let t=0;t<e.shadowMatrices.length;t++){let e=a[t],l=e.clone().translate(new s.P(i.viewport.center).negate());n.coordinateSystem===(0,g.LB)("lnglat")&&n.projectionMode===d.Kx.WEB_MERCATOR?(a[t]=l,o[t]=r):(a[t]=e.clone().multiplyRight(P),o[t]=l.transform(r))}let l={drawShadowMap:!!e.drawToShadowMap,useShadowMap:!!e.shadowMaps&&e.shadowMaps.length>0,color:e.shadowColor||_,lightId:e.shadowLightId||0,lightCount:e.shadowMatrices.length,shadow_uShadowMap0:e.dummyShadowMap,shadow_uShadowMap1:e.dummyShadowMap};for(let e=0;e<a.length;
1e++)l["viewProjectionMatrix".concat(e)]=a[e],l["projectCenter".concat(e)]=o[e];for(let t=0;t<2;t++)l["shadow_uShadowMap".concat(t)]=e.shadowMaps&&e.shadowMaps[t]||e.dummyShadowMap;return l},uniformTypes:{drawShadowMap:"f32",useShadowMap:"f32",color:"vec4<f32>",lightId:"i32",lightCount:"f32",viewProjectionMatrix0:"mat4x4<f32>",viewProjectionMatrix1:"mat4x4<f32>",projectCenter0:"vec4<f32>",projectCenter1:"vec4<f32>"}},j={color:[255,255,255],intensity:1},x=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],C=[0,0,0,200/255];class S{setup(e){this.context=e;let{device:t,deck:i}=e;this.shadow&&!this.dummyShadowMap&&(this._createShadowPasses(t),i._addDefaultShaderModule(O),this.dummyShadowMap=t.createTexture({width:1,height:1}))}setProps(e){for(let t in this.ambientLight=void 0,this.directionalLights=[],this.pointLights=[],e){let i=e[t];switch(i.type){case"ambient":this.ambientLight=i;break;case"directional":this.directionalLights.push(i);break;case"point":this.pointLights.push(i)}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(e=>e.shadow),this.context&&this.setup(this.context),this.props=e}preRender(e){let{layers:t,layerFilter:i,viewports:n,onViewportActive:r,views:o}=e;if(this.shadow){this.shadowMatrices=this._calculateMatrices();for(let e=0;e<this.shadowPasses.length;e++)this.shadowPasses[e].render({layers:t,layerFilter:i,viewports:n,onViewportActive:r,views:o,shaderModuleProps:{shadow:{shadowLightId:e,dummyShadowMap:this.dummyShadowMap,shadowMatrices:this.shadowMatrices}}})}}getShaderModuleProps(e,t){let i=this.shadow?{project:t.project,shadowMaps:this.shadowPasses.map(e=>e.getShadowMap()),dummyShadowMap:this.dummyShadowMap,shadowColor:this.shadowColor,shadowMatrices:this.shadowMatrices}:{},n={enabled:!0,lights:this._getLights(e)},r=e.props.material;return{shadow:i,lighting:n,phongMaterial:r,gouraudMaterial:r}}cleanup(e){for(let e of this.shadowPasses)e.delete();this.shadowPasses.length=0,this.dummyShadowMap&&(this.dummyShadowMap.destroy(),this.dummyShadowMap=null,e.deck._removeDefaultShaderModule(O))}_calculateMatrices(){let e=[];for(let t of this.directionalLights){let i=new o.k().lookAt({eye:new s.P(t.direction).negate()});e.push(i)}return e}_createShadowPasses(e){for(let t=0;t<this.directionalLights.length;t++){let i=new u(e);this.shadowPasses[t]=i}}_applyDefaultLights(){let{ambientLight:e,pointLights:t,directionalLights:i}=this;e||0!==t.length||0!==i.length||(this.ambientLight=new n.$(j),this.directionalLights.push(new r.Z(x[0]),new r.Z(x[1])))}_getLights(e){let t=[];for(let i of(this.ambientLight&&t.push(this.ambientLight),this.pointLights))t.push(i.getProjectedLight({layer:e}));for(let i of this.directionalLights)t.push(i.getProjectedLight({layer:e}));return t}constructor(e={}){this.id="lighting-effect",this.shadowColor=C,this.shadow=!1,this.directionalLights=[],this.pointLights=[],this.shadowPasses=[],this.dummyShadowMap=null,this.setProps(e)}}},73144(e,t,i){i.d(t,{A:()=>X});var n=i(60691),r=i(36794),o=i(60633);let s=o.r.getDataType.bind(o.r);function a(e,t,i){if(t.size>4)return null;let n="webgpu"===i&&"uint8"===t.type?"unorm8":t.type,r=t.size,o=!!("webgpu"!==i&&3===r&&n&&["uint8","sint8","unorm8","snorm8","uint16","sint16","unorm16","snorm16"].includes(n));return{attribute:e,format:r>1?"".concat(n,"x").concat(r).concat(o?"-webgl":""):t.type,byteOffset:t.offset||0}}function l(e){return e.stride||e.size*e.bytesPerElement}var c=i(17390),u=i(79036),d=i(1918);function h(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t}
1)(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}function f(e,t){t.offset&&d.A.removed("shaderAttribute.offset","vertexOffset, elementOffset")();let i=l(e),n=(void 0!==t.vertexOffset?t.vertexOffset:e.vertexOffset||0)*i+(t.elementOffset||0)*e.bytesPerElement+(e.offset||0);return p(h({},t),{offset:n,stride:i})}class g{get isConstant(){return this.state.constant}get buffer(){return this._buffer}get byteOffset(){let e=this.getAccessor();return e.vertexOffset?e.vertexOffset*l(e):0}get numInstances(){return this.state.numInstances}set numInstances(e){this.state.numInstances=e}get isDoublePrecisionBuffer(){return this._shouldSplitDoublePrecisionValue(this.value)}delete(){this._buffer&&(this._buffer.delete(),this._buffer=null),c.A.release(this.state.allocatedValue),this.state.allocatedValue=null}getBuffer(){return this.state.constant&&"webgpu"!==this.device.type?null:this.state.externalBuffer||this._buffer}getValue(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.id,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i={};if(this.state.constant){let n=this.value;if("webgpu"===this.device.type&&this._buffer)i[e]=this._buffer;else if(t){let r=f(this.getAccessor(),t),o=r.offset/n.BYTES_PER_ELEMENT,s=r.size||this.size;i[e]=n.subarray(o,o+s)}else i[e]=n}else i[e]=this.getBuffer();return this.doublePrecision&&(this.isDoublePrecisionBuffer?i["".concat(e,"64Low")]=i[e]:i["".concat(e,"64Low")]=new Float32Array(this.size)),i}_getBufferLayout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.id,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.getAccessor(),n=[],r={name:this.id,byteStride:"webgpu"===this.device.type&&this.state.constant?0:l(i)};if(this.doublePrecision){let r,o={high:r=f(i,t||{}),low:p(h({},r),{offset:r.offset+4*i.size})};n.push(a(e,h({},i,o.high),this.device.type),a("".concat(e,"64Low"),h({},i,o.low),this.device.type))}else if(t){let r=f(i,t);n.push(a(e,h({},i,r),this.device.type))}else n.push(a(e,i,this.device.type));
1return r.attributes=n.filter(Boolean),r}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 t=Array.from(this.value);e=[t,t]}else{let{value:t,numInstances:i,size:n}=this,r=i*n;if(t&&r&&t.length>=r){let i=Array(n).fill(1/0),o=Array(n).fill(-1/0);for(let e=0;e<r;)for(let r=0;r<n;r++){let n=t[e++];n<i[r]&&(i[r]=n),n>o[r]&&(o[r]=n)}e=[i,o]}}return this.state.bounds=e,e}setData(e){let t,{state:i}=this;t=ArrayBuffer.isView(e)?{value:e}:e instanceof n.h?{buffer:e}:e;let r=h({},this.settings,t);if(ArrayBuffer.isView(t.value)){if(!t.type)if(this.doublePrecision&&t.value instanceof Float64Array)r.type="float32";else{let e=s(t.value);r.type=r.normalized?e.replace("int","norm"):e}r.bytesPerElement=t.value.BYTES_PER_ELEMENT,r.stride=l(r)}if(i.bounds=null,t.constant){let e=t.value;if(e=this._normalizeValue(e,[],0),this.settings.normalized&&(e=this.normalizeConstant(e)),!(!i.constant||!this._areValuesEqual(e,this.value)))return!1;i.externalBuffer=null,i.constant=!0,this.value=ArrayBuffer.isView(e)?e:new Float32Array(e)}else if(t.buffer)i.externalBuffer=t.buffer,i.constant=!1,this.value=t.value||null;else if(t.value){this._checkExternalBuffer(t);let e=t.value,n=e;i.externalBuffer=null,i.constant=!1,this.value=e,this._shouldSplitDoublePrecisionValue(n)&&(n=(0,u.cT)(n,r),e instanceof Float32Array&&(r.stride=2*r.size*Float32Array.BYTES_PER_ELEMENT));let{buffer:o}=this,s=l(r),a=(r.vertexOffset||0)*s;if(this.settings.isIndexed){let e=this.settings.defaultType;n.constructor!==e&&(n=new e(n))}let c=n.byteLength+a+2*s;(!o||o.byteLength<c)&&(o=this._createBuffer(c)),o.write(n,a)}return this.setAccessor(r),!0}updateSubBuffer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.state.bounds=null;let t=this.value,{startOffset:i=0,endOffset:n}=e,r=this._shouldSplitDoublePrecisionValue(t);this.buffer.write(r?(0,u.cT)(t,{size:this.size,startIndex:i,endIndex:n}):t.subarray(i,n),i*(r?8:t.BYTES_PER_ELEMENT)+this.byteOffset)}allocate(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],{state:i}=this,n=i.allocatedValue,r=c.A.allocate(n,e+1,{size:this.size,type:this.settings.defaultType,copy:t});this.value=r;let o=this._shouldSplitDoublePrecisionValue(r),s=o&&r instanceof Float32Array?p(h({},this.settings),{stride:2*this.size*Float32Array.BYTES_PER_ELEMENT}):this.settings;this.setAccessor(s);let{byteOffset:a}=this,{buffer:l}=this,d=r.byteLength*(o&&r instanceof Float32Array?2:1);return(!l||l.byteLength<d+a)&&(l=this._createBuffer(d+a),t&&n&&l.write(this._shouldSplitDoublePrecisionValue(n)?(0,u.cT)(n,this):n,a)),i.allocatedValue=r,i.constant=!1,i.externalBuffer=null,!0}_shouldSplitDoublePrecisionValue(e){return!!(this.doublePrecision&&(e instanceof Float64Array||"webgpu"===this.device.type&&e instanceof Float32Array))}_checkExternalBuffer(e){let{value:t}=e;if(!ArrayBuffer.isView(t))throw Error("Attribute ".concat(this.id," value is not TypedArray"));let i=this.settings.defaultType,n=!1;if(this.doublePrecision&&(n=t.BYTES_PER_ELEMENT<4),n)throw Error("Attribute ".concat(this.id," does not support ").concat(t.constructor.name));t instanceof i||!this.settings.normalized||"normalized"in e||d.A.warn("Attribute ".concat(this.id," is normalized"))()}normalizeConstant(e){switch(this.settings.type){case"snorm8":return new Float32Array(e).map(e=>(e+128)/255*2-1);case"snorm16":return new Float32Array(e).map(e=>(e+32768)/65535*2-1);case"unorm8":return new Float32Array(e).map(e=>e/255);case"unorm16":return new Float32Array(e).map(e=>e/65535);default:return e}}_normalizeValue(e,t,i){let{defaultValue:n,size:r}=this.settings;if(Number.isFinite(e))return t[i]=e,t;if(!e){let e=r;for(;--e>=0;)t[i+e]=n[e];return t}switch(r){case 4:t[i+3]=Number.isFinite(e[3])?e[3]:n[3];case 3:t[i+2]=Number.isFinite(e[2])?e[2]:n[2];case 2:t[i+1]=Number.isFinite(e[1])?e[1]:n[1];case 1:t[i+0]=Number.isFinite(e[0])?e[0]:n[0];break;default:let o=r;for(;--o>=0;)t[i+o]=Number.isFinite(e[o])?e[o]:n[o]}return t}_areValuesEqual(e,t){if(!e||!t)return!1;let{size:i}=this;for(let n=0;n<i;n++)if(e[n]!==t[n])return!1;return!0}_createBuffer(e){var t;this._buffer&&this._buffer.destroy();let{isIndexed:i,type:r}=this.settings,o="webgpu"!==this.device.type||i?(i?n.h.INDEX:n.h.VERTEX)|n.h.COPY_DST:n.h.VERTEX|n.h.STORAGE|n.h.COPY_DST|n.h.COPY_SRC;return this._buffer=this.device.createBuffer(p(h({},null==(t=this._buffer)?void 0:t.props),{id:this.id,usage:o,indexType:i?r:void 0,byteLength:e})),this._buffer}constructor(e,t,i){let n;this._buffer=null,this.device=e,this.id=t.id||"",this.size=t.size||1;let o=t.logicalType||t.type,s="float64"===o,{defaultValue:a}=t;a=Number.isFinite(a)?[a]:a||Array(this.size).fill(0),n=s?"float32":!o&&t.isIndexed?"uint32":o||"float32";let l=function(e){switch(e){case"float64":return Float64Array;case"uint8":case"unorm8":return Uint8ClampedArray;default:return(0,r.Ak)(e)}}(o||n);this.doublePrecision=s,s&&!1===t.fp64&&(l=Float32Array),this.value=null,this.settings=p(h({},t),{defaultType:l,defaultValue:a,logicalType:o,type:n,normalized:n.includes("norm"),size:this.size,bytesPerElement:l.BYTES_PER_ELEMENT}),this.state=p(h({},i),{externalBuffer:null,bufferAccessor:this.settings,allocatedValue:null,numInstances:0,bounds:null,constant:!1})}}var v=i(22708),m=i(70008),y=i(37142);let b=[],w=[[0,1/0]];var _=i(45566);class P extends g{get startIndices(){return this.state.startIndices}set startIndices(e){this.state.startIndices=e}needsUpdate(){return this.state.needsUpdate}needsRedraw(){let{clearChangedFlags:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.state.needsRedraw;return this.state.needsRedraw=t&&!e,t}layoutChanged(){return this.state.layoutChanged}setAccessor(e){var t,i;(t=this.state).layoutChanged||(i=this.getAccessor(),t.layoutChanged=e.type!==i.type||e.size!==i.size||l(e)!==l(i)||(e.offset||0)!==(i.offset||0)),super.setAccessor(e)}getUpdateTriggers(){let{accessor:e}=this.settings;return[this.id].concat("function"!=typeof e&&e||[])}supportsTransition(){return!!this.settings.transition}getTransitionSetting(e){if(!e||!this.supportsTransition())return null;let{accessor:t}=this.settings,i=this.settings.transition,n=Array.isArray(t)?e[t.find(t=>e[t])]:e[t];return(0,_.K)(n,i)}setNeedsUpdate(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.id,t=arguments.length>1?arguments[1]:void 0;if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),t){let{startRow:e=0,endRow:i=1/0}=t;this.state.updateRanges=function(e,t){if(e===w||(t[0]<0&&(t[0]=0),t[0]>=t[1]))return e;let i=[],n=e.length,r=0;for(let o=0;o<n;o++){let n=e[o];n[1]<t[0]?(i.push(n),r=o+1):n[0]>t[1]?i.push(n):t=[Math.min(n[0],t[0]),Math.max(n[1],t[1])]}return i.splice(r,0,t),i}(this.state.updateRanges,[e,i])}else this.state.updateRanges=w}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=b}setNeedsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.id;this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){let{state:t,settings:i}=this;if(i.noAlloc)return!1;if(i.update){let i=this.isConstant;return super.allocate(e,t.updateRanges!==w),t.layoutChanged||(t.layoutChanged=i&&"webgpu"===this.device.type),!0}return!1}updateBuffer(e){let{numInstances:t,data:i,props:n,context:r}=e;if(!this.needsUpdate())return!1;let{state:{updateRanges:o},settings:{update:s,noAlloc:a}}=this,l=!0;if(s){for(let[e,a]of o)s.call(r,this,{data:i,startRow:e,endRow:a,props:n,numInstances:t});if(this.value)if(this.constant||!this.buffer||this.buffer.byteLength<this.value.byteLength+this.byteOffset){if(this.constant){let e=this.value;this.value=null,this.setConstantValue(r,e)}else this.setData({value:this.value,constant:this.constant});this.constant=!1}else for(let[e,i]of o){let n=Number.isFinite(e)?this.getVertexOffset(e):0,r=Number.isFinite(i)?this.getVertexOffset(i):a||!Number.isFinite(t)?this.value.length:t*this.size;super.updateSubBuffer({startOffset:n,endOffset:r})}this._checkAttributeArray()}else l=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),l}setConstantValue(e,t){var i,n,r;if(void 0===t||"function"==typeof t)return!1;let o=this.isConstant,s=this.settings.transform&&e?this.settings.transform.call(e,t):t,a=this.settings.defaultType;this.state.constantValue=this._normalizeValue(s,new a(this.size),0);let l=this.setData({constant:!0,value:s});if("webgpu"===this.device.type){let e=this.state.constantValue;this.doublePrecision&&(e instanceof Float32Array||e instanceof Float64Array)&&(e=(0,u.cT)(e,{size:this.size}),this.setAccessor((n=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},this.getAccessor()),r=r={stride:2*this.size*Float32Array.BYTES_PER_ELEMENT},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n)));let t=this._buffer;(!t||t.byteLength<e.byteLength)&&(t=this._createBuffer(e.byteLength)),t.write(e),(i=this.state).layoutChanged||(i.layoutChanged=!o),this.constant=!1}return l&&this.setNeedsRedraw(),this.clearNeedsUpdate(),!0}getConstantValue(){return this.isConstant?this.state.constantValue:null}setExternalBuffer(e){let{state:t}=this;return e?(this.clearNeedsUpdate(),t.lastExternalBuffer===e||(t.lastExternalBuffer=e,this.setNeedsRedraw(),this.setData(e),!0)):(t.lastExternalBuffer=null,!1)}setBinaryValue(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,{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||t!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});let r=e;(0,v.A)(ArrayBuffer.isView(r.value),"invalid ".concat(n.accessor));let o=!!r.size&&r.size!==this.size;return i.binaryAccessor=(0,m.I)(r.value,{size:r.size||this.size,stride:r.stride,offset:r.offset,startIndices:t,nested:o}),!1}return this.clearNeedsUpdate(),this.setData(e),!0}getVertexOffset(e){let{startIndices:t}=this;return(t?e<t.length?t[e]:this.numInstances:e)*this.size}getValue(){let e=this.settings.shaderAttributes,t=super.getValue();if(!e)return t;for(let i in e)Object.assign(t,super.getValue(i,e[i]));return t}getBufferLayout(e){this.state.layoutChanged=!1;let t=this.settings.shaderAttributes,i=super._getBufferLayout(),{stepMode:n}=this.settings;if("dynamic"===n?i.stepMode=e?e.isInstanced?"instance":"vertex":"instance":i.stepMode=null!=n?n:"vertex",!t)return i;for(let e in t){let n=super._getBufferLayout(e,t[e]);i.attributes.push(...n.attributes)}return i}_autoUpdater(e,t){let{data:i,startRow:n,endRow:r,props:o,numInstances:s}=t,{settings:a,state:l,value:c,size:u,startIndices:d}=e,{accessor:h,transform:p}=a,f=l.binaryAccessor||("function"==typeof h?h:o[h]);(0,v.A)("function"==typeof f,'accessor "'.concat(h,'" is not a function'));let g=e.getVertexOffset(n),{iterable:b,objectInfo:w}=(0,m.X)(i,n,r);for(let t of b){w.index++;let i=f(t,w);if(p&&(i=p.call(this,i)),d){let t=(w.index<d.length-1?d[w.index+1]:s)-d[w.index];if(i&&Array.isArray(i[0])){let t=g;for(let n of i)e._normalizeValue(n,c,t),t+=u}else i&&i.length>u?c.set(i,g):(e._normalizeValue(i,w.target,0),(0,y.R)({target:c,source:w.target,start:g,count:t}));g+=t*u}else e._normalizeValue(i,c,g),g+=u}}_validateAttributeUpdaters(){let{settings:e}=this;if(!(e.noAlloc||"function"==typeof e.update))throw Error("Attribute ".concat(this.id," missing update or accessor"))}_checkAttributeArray(){let{value:e}=this,t=Math.min(4,this.size);if(e&&e.length>=t){let i=!0;switch(t){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 Error("Illegal attribute generated for ".concat(this.id))}}constructor(e,t){super(e,t,{startIndices:null,constantValue:null,lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,layoutChanged:!1,updateRanges:w}),this.constant=!1,this.settings.update=t.update||(t.accessor?this._autoUpdater:void 0),Object.seal(this.settings),Object.seal(this.state),this._validateAttributeUpdaters()}}var O=i(96430),j=i(97065),x=i(64238),C=i(48894),S=i(41568);class k{hasGroups(e){return"webgpu"===this.device.type&&Object.values(e).some(e=>!!e.settings.bufferGroup)}finalize(){for(let e of Object.values(this.packedBuffers))e.packed.destroy();this.packedBuffers={}}getBufferLayouts(e,t){let i=this._getPackedGroups(e,t,{requireValues:!1,excludeAttributes:{}});return this._getBufferLayouts(e,i,t)}getBindings(e,t,i,n){let r=this._getPackedGroups(e,i,{requireValues:!0,excludeAttributes:n}
1),o={},s=new Set;for(let e of r.values()){let i=!this.packedBuffers[e.id]||e.attributes.some(e=>!!t[e.id]);for(let t of(o[e.id]=this._getPackedBuffer(e,i),e.attributes))s.add(t.id)}return{bufferLayouts:this._getBufferLayouts(e,r,i).filter(t=>{var i;return!n[t.name]&&!(null==(i=e[t.name])?void 0:i.settings.isIndexed)}),buffers:o,groupedAttributeIds:s}}_getPackedGroups(e,t,i){let{requireValues:n,excludeAttributes:r}=i,o=new Map;for(let t of Object.values(e)){let e=t.settings.bufferGroup;if(!e)continue;let i=o.get(e)||[];i.push(t),o.set(e,i)}let s=new Map;for(let[e,i]of o){let o=this._getPackedGroup(e,i,t,n,r);o&&s.set(e,o)}return s}_getPackedGroup(e,t,i,n,r){if(t.length<2)return null;let o=t.map(e=>e.getBufferLayout(i)),s=o[0].stepMode,a=Math.max(1,t[0].numInstances),c=n&&t.every(e=>e.isConstant);for(let e=0;e<t.length;e++){let i=t[e],c=i.getAccessor(),u=c.size*c.bytesPerElement;if(r[i.id]||i.settings.isIndexed||i.settings.noAlloc||i.doublePrecision||this.isTransitionAttribute(i.id)||o[e].stepMode!==s||i.numInstances!==t[0].numInstances||0!==(c.offset||0)||0!==(c.vertexOffset||0)||l(c)!==u||n&&(i.isConstant?!i.getConstantValue()||i.getConstantValue().byteLength<u:!ArrayBuffer.isView(i.value)||i.value.byteLength<a*u))return null}let u={},d=[],h=0;for(let e=0;e<t.length;e++){let i=t[e];for(let t of(h=M(h),u[i.id]=h,o[e].attributes||[]))d.push(function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}(function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t),{byteOffset:h+(t.byteOffset||0)}));h+=l(i.getAccessor())}return{id:e,attributes:t,byteStride:h=M(h),byteOffsets:u,rowCount:a,layout:{name:e,byteStride:c?0:h,stepMode:s,attributes:d}}}_getBufferLayouts(e,t,i){let n=[],r=new Set,o=new Set;for(let e of t.values())for(let t of e.attributes)o.add(t.id);for(let s of Object.values(e)){let e=s.settings.bufferGroup,a=e&&t.get(e);a&&o.has(s.id)?r.has(a.id)||(n.push(a.layout),r.add(a.id)):n.push(s.getBufferLayout(i))}return n}_getPackedBuffer(e,t){let i=JSON.stringify({byteStride:e.layout.byteStride,attributes:e.layout.attributes}),n=this.packedBuffers[e.id];if(n&&n.layoutKey===i||(t=!0),t){n&&(n.packed.destroy(),delete this.packedBuffers[e.id]);let t=this._interleavePackedGroup(e);return this.packedBuffers[e.id]={packed:t,layoutKey:i},t.buffer}if(!n)throw Error("Attribute buffer group ".concat(e.id," has no packed buffer"));return n.packed.buffer}_interleavePackedGroup(e){let t=e.attributes.map(t=>this._getInterleaveInput(e,t)),i=(0,O.C)(...t);return(0,j.o)(this.device,i),i}_getInterleaveInput(e,t){let i=l(t.getAccessor()),n=e.byteOffsets[t.id];if(A("".concat(e.id,".").concat(t.id," rowByteLength"),i),A("".concat(e.id,".").concat(t.id," groupByteOffset"),n),t.isConstant){let n=t.getConstantValue();if(!n)throw Error("Attribute group ".concat(e.id," is missing constant value ").concat(t.id));return A("".concat(e.id,".").concat(t.id," constant byteOffset"),n.byteOffset),new x.GL({id:t.id,type:"uint32",size:i/4,isConstant:!0,value:new Uint32Array(n.buffer,n.byteOffset,i/Uint32Array.BYTES_PER_ELEMENT)})}let r=t.getBuffer(),o=t.byteOffset,s=t.getAccessor().stride||i;if(A("".concat(e.id,".").concat(t.id," byteOffset"),o),A("".concat(e.id,".").concat(t.id," stride"),s),!r)throw Error("Attribute group ".concat(e.id," cannot interleave missing buffer ").concat(t.id));return new x.GL({id:t.id,type:"uint32",size:i/4,offset:o,stride:s,length:e.rowCount,buffer:r})}constructor(e,{id:t,isTransitionAttribute:i}){this.packedBuffers={},this.device=e,this.id=t,this.isTransitionAttribute=i,"webgpu"===this.device.type&&C.G.add("webgpu",{interleave:S.C})}}function M(e){return 4*Math.ceil(e/4)}function A(e,t){if(t%4!=0)throw Error("Attribute buffer groups require 32-bit alignment: ".concat(e,"=").concat(t))}var E=i(97252),T=i(26758),I=i(9079),D=i(72274);function R(e){let{source:t,target:i,start:n=0,size:r,getData:o}=e,s=e.end||i.length,a=t.length,l=s-n;if(a>l)return void i.set(t.subarray(0,l),n);if(i.set(t,n),!o)return;let c=a;for(;c<l;){let e=o(c,t);for(let t=0;t<r;t++)i[n+c]=e[t]||0,c++}}function L(e){switch(e){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw Error('No defined attribute type for size "'.concat(e,'"'))}}function z(e){switch(e){case 1:return"float32";case 2:return"float32x2";case 3:return"float32x3";case 4:return"float32x4";default:throw Error("invalid type size")}}function V(e){e.push(e.shift())}function F(e){let{device:t,source:i,target:n}=e;return(!n||n.byteLength<i.byteLength)&&(null==n||n.destroy(),n=t.createBuffer({byteLength:i.byteLength,usage:i.usage})),n}function N(e){let{device:t,buffer:i,attribute:n,fromLength:r,toLength:o,fromStartIndices:s,getData:a=e=>e}=e,l=n.isDoublePrecisionBuffer?2:1,c=n.size*l,u=n.byteOffset,d=n.settings.bytesPerElement<4?u/n.settings.bytesPerElement*4:u,h=n.startIndices,p=s&&h,f=n.isConstant;if(!p&&i&&r>=o)return i;let g=n.value instanceof Float64Array?Float32Array:n.value.constructor,v=f?n.value:new g(n.getBuffer().readSyncWebG
1L(u,o*g.BYTES_PER_ELEMENT).buffer);if(n.settings.normalized&&!f){let e=a;a=(t,i)=>n.normalizeConstant(e(t,i))}let m=f?(e,t)=>a(v,t):(e,t)=>a(v.subarray(e+u,e+u+c),t),y=new Float32Array(i?i.readSyncWebGL(d,4*r).buffer:0),b=new Float32Array(o);return!function(e){let{source:t,target:i,size:n,getData:r,sourceStartIndices:o,targetStartIndices:s}=e;if(!o||!s)return R({source:t,target:i,size:n,getData:r});let a=0,l=0,c=r&&((e,t)=>r(e+l,t)),u=Math.min(o.length,s.length);for(let e=1;e<u;e++){let r=o[e]*n,u=s[e]*n;R({source:t.subarray(a,r),target:i,start:l,end:u,size:n,getData:c}),a=r,l=u}l<i.length&&R({source:[],target:i,start:l,size:n,getData:c})}({source:y,target:b,sourceStartIndices:s,targetStartIndices:h,size:c,getData:m}),(!i||i.byteLength<b.byteLength+d)&&(null==i||i.destroy(),i=t.createBuffer({byteLength:b.byteLength+d,usage:35050})),i.write(b,d),i}var U=i(21758);class B{get inProgress(){return this.transition.inProgress}start(e,t){var i,n;let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0;this.settings=e,this.currentStartIndices=this.attribute.startIndices,this.currentLength=function(e,t){let{settings:i,value:n,size:r}=e,o=e.isDoublePrecisionBuffer?2:1,s=0,{shaderAttributes:a}=e.settings;if(a)for(let e of Object.values(a)){var l;s=Math.max(s,null!=(l=e.vertexOffset)?l:0)}return(i.noAlloc?n.length:(t+s)*r)*o}(this.attribute,t),this.transition.start((i=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),n=n={duration:r},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(n)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(n,e))}),i))}update(){let e=this.transition.update();return e&&this.onUpdate(),e}setBuffer(e){let{stride:t}=this.attributeInTransition.getAccessor();this.attributeInTransition.setData({buffer:e,normalized:this.attribute.settings.normalized,value:this.attributeInTransition.value,stride:t})}cancel(){this.transition.cancel()}delete(){for(let e of(this.cancel(),this.buffers))e.destroy();this.buffers.length=0}constructor({device:e,attribute:t,timeline:i}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new U.A(i),this.attribute=t,this.attributeInTransition=function(e){let{device:t,settings:i,value:n}=e,r=new P(t,i);return r.setData({value:n instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:i.normalized}),r}(t),this.currentStartIndices=t.startIndices}}let G={name:"interpolation",vs:"layout(std140) uniform interpolationUniforms {\n float time;\n} interpolation;\n",uniformTypes:{time:"f32"}};function W(e){return e.isDoublePrecisionBuffer}let H={name:"spring",vs:"layout(std140) uniform springUniforms {\n float damping;\n float stiffness;\n} spring;\n",uniformTypes:{damping:"f32",stiffness:"f32"}},Z={interpolation:class extends B{start(e,t){let i=this.currentLength,n=this.currentStartIndices;if(super.start(e,t,e.duration),e.duration<=0)return void this.transition.cancel();let{buffers:r,attribute:o}=this;V(r),r[0]=N({device:this.device,buffer:r[0],attribute:o,fromLength:i,toLength:this.currentLength,fromStartIndices:n,getData:e.enter}),r[1]=F({device:this.device,source:r[0],target:r[1]}),this.setBuffer(r[1]);let{transform:s}=this,a=s.model,l=Math.floor(this.currentLength/o.size);W(o)&&(l/=2),a.setVertexCount(l),o.isConstant?(a.setAttributes({aFrom:r[0]}),a.setConstantAttributes({aTo:o.value})):a.setAttributes({aFrom:r[0],aTo:o.getBuffer()}),s.transformFeedback.setBuffers({vCurrent:r[1]})}onUpdate(){let{duration:e,easing:t}=this.settings,{time:i}=this.transition,n=i/e;t&&(n=t(n));let{model:r}=this.transform,o={time:n};r.shaderInputs.setProps({interpolation:o}),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}
1constructor({device:e,attribute:t,timeline:i}){var n,r;let o,s,a,l;super({device:e,attribute:t,timeline:i}),this.type="interpolation",this.transform=(n=e,s=L(o=(r=t).size),a=z(o),l=r.getBufferLayout(),W(r)?new I.p(n,{vs:"#version 300 es\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nin ATTRIBUTE_TYPE aFrom;\nin ATTRIBUTE_TYPE aFrom64Low;\nin ATTRIBUTE_TYPE aTo;\nin ATTRIBUTE_TYPE aTo64Low;\nout ATTRIBUTE_TYPE vCurrent;\nout ATTRIBUTE_TYPE vCurrent64Low;\n\nvec2 mix_fp64(vec2 a, vec2 b, float x) {\n vec2 range = sub_fp64(b, a);\n return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));\n}\n\nvoid main(void) {\n for (int i=0; i<ATTRIBUTE_SIZE; i++) {\n vec2 value = mix_fp64(vec2(aFrom[i], aFrom64Low[i]), vec2(aTo[i], aTo64Low[i]), interpolation.time);\n vCurrent[i] = value.x;\n vCurrent64Low[i] = value.y;\n }\n gl_Position = vec4(0.0);\n}\n",bufferLayout:[{name:"aFrom",byteStride:8*o,attributes:[{attribute:"aFrom",format:a,byteOffset:0},{attribute:"aFrom64Low",format:a,byteOffset:4*o}]},{name:"aTo",byteStride:8*o,attributes:[{attribute:"aTo",format:a,byteOffset:0},{attribute:"aTo64Low",format:a,byteOffset:4*o}]}],modules:[D.d,G],defines:{ATTRIBUTE_TYPE:s,ATTRIBUTE_SIZE:o},moduleSettings:{},varyings:["vCurrent","vCurrent64Low"],bufferMode:35980,disableWarnings:!0}):new I.p(n,{vs:"#version 300 es\n#define SHADER_NAME interpolation-transition-vertex-shader\n\nin ATTRIBUTE_TYPE aFrom;\nin ATTRIBUTE_TYPE aTo;\nout ATTRIBUTE_TYPE vCurrent;\n\nvoid main(void) {\n vCurrent = mix(aFrom, aTo, interpolation.time);\n gl_Position = vec4(0.0);\n}\n",bufferLayout:[{name:"aFrom",format:a},{name:"aTo",format:l.attributes[0].format}],modules:[G],defines:{ATTRIBUTE_TYPE:s},varyings:["vCurrent"],disableWarnings:!0}))}},spring:class extends B{start(e,t){let i=this.currentLength,n=this.currentStartIndices;super.start(e,t);let{buffers:r,attribute:o}=this;for(let t=0;t<2;t++)r[t]=N({device:this.device,buffer:r[t],attribute:o,fromLength:i,toLength:this.currentLength,fromStartIndices:n,getData:e.enter});r[2]=F({device:this.device,source:r[0],target:r[2]}),this.setBuffer(r[1]);let{model:s}=this.transform;s.setVertexCount(Math.floor(this.currentLength/o.size)),o.isConstant?s.setConstantAttributes({aTo:o.value}):s.setAttributes({aTo:o.getBuffer()})}onUpdate(){let{buffers:e,transform:t,framebuffer:i,transition:n}=this,r=this.settings;t.model.setAttributes({aPrev:e[0],aCur:e[1]}),t.transformFeedback.setBuffers({vNext:e[2]});let o={stiffness:r.stiffness,damping:r.damping};t.model.shaderInputs.setProps({spring:o}),t.run({framebuffer:i,discard:!1,parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]}),V(e),this.setBuffer(e[1]),this.device.readPixelsToArrayWebGL(i)[0]>0||n.end()}delete(){super.delete(),this.transform.destroy(),this.texture.destroy(),this.framebuffer.destroy()}constructor({device:e,attribute:t,timeline:i}){var n,r,o,s;let a,l;super({device:e,attribute:t,timeline:i}),this.type="spring",this.texture=e.createTexture({data:new Uint8Array(4),format:"rgba8unorm",width:1,height:1}),this.framebuffer=(n=e,r=this.texture,n.createFramebuffer({id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,colorAttachments:[r]})),this.transform=(o=e,a=L((s=t).size),l=z(s.size),new I.p(o,{vs:"#version 300 es\n#define SHADER_NAME spring-transition-vertex-shader\n\n#define EPSILON 0.00001\n\nin ATTRIBUTE_TYPE aPrev;\nin ATTRIBUTE_TYPE aCur;\nin ATTRIBUTE_TYPE aTo;\nout ATTRIBUTE_TYPE vNext;\nout float vIsTransitioningFlag;\n\nATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) {\n ATTRIBUTE_TYPE velocity = cur - prev;\n ATTRIBUTE_TYPE delta = dest - cur;\n ATTRIBUTE_TYPE force = delta * spring.stiffness;\n ATTRIBUTE_TYPE resistance = velocity * spring.damping;\n return force - resistance + velocity + cur;\n}\n\nvoid main(void) {\n bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON;\n vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0;\n\n vNext = getNextValue(aCur, aPrev, aTo);\n gl_Position = vec4(0, 0, 0, 1);\n gl_PointSize = 100.0;\n}\n",fs:"#version 300 es\n#define SHADER_NAME spring-transition-is-transitioning-fragment-shader\n\nin float vIsTransitioningFlag;\n\nout vec4 fragColor;\n\nvoid main(void) {\n if (vIsTransitioningFlag == 0.0) {\n discard;\n }\n fragColor = vec4(1.0);\n}",bufferLayout:[{name:"aPrev",format:l},{name:"aCur",format:l},{name:"aTo",format:s.getBufferLayout().attributes[0].format}],varyings:["vNext"],modules:[H],defines:{ATTRIBUTE_TYPE:a},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}}))}}};class q{finalize(){for(let e in this.transitions)this._removeTransition(e)}update(e){let{attributes:t,transitions:i,numInstances:n}=e;for(let e in this.numInstances=n||1,t){let n=t[e],r=n.getTransitionSetting(i);r&&this._updateAttribute(e,n,r)}for(let e in this.transitions){let n=t[e];n&&n.getTransitionSetting(i)||this._removeTransition(e)}}hasAttribute(e){let t=this.transitions[e];return t&&t.inProgress}getAttributes(){let e={};for(let t in this.transitions){let i=this.transitions[t];i.inProgress&&(e[t]=i.attributeInTransition)}return e}run(){if(0===this.numInstances)return!1;for(let e in this.transitions)this.transitions[e].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,t,i){let n=this.transitions[e],r=!n||n.type!==i.type;if(r){n&&this._removeTransition(e);let o=Z[i.type];
1o?this.transitions[e]=new o({attribute:t,timeline:this.timeline,device:this.device}):(d.A.error("unsupported transition type '".concat(i.type,"'"))(),r=!1)}(r||t.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(i,this.numInstances))}constructor(e,{id:t,timeline:i}){if(!e)throw Error("AttributeTransitionManager is constructed without device");this.id=t,this.device=e,this.timeline=i,this.transitions={},this.needsRedraw=!1,this.numInstances=1}}function Y(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let K="attributeManager.invalidate";class X{finalize(){var e;for(let t in null==(e=this.attributeBufferGroups)||e.finalize(),this.attributes)this.attributes[t].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!e.clearRedrawFlags,t&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(e){this._add(e)}addInstanced(e){this._add(e,{stepMode:"instance"})}remove(e){for(let t of e)void 0!==this.attributes[t]&&(this.attributes[t].delete(),delete this.attributes[t])}invalidate(e,t){let i=this._invalidateTrigger(e,t);(0,T.A)(K,this,e,i)}invalidateAll(e){for(let t in this.attributes)this.attributes[t].setNeedsUpdate(t,e);(0,T.A)(K,this,"all")}update(e){let{data:t,numInstances:i,startIndices:n=null,transitions:r,props:o={},buffers:s={},context:a={}}=e,l=!1;for(let e in(0,T.A)("attributeManager.updateStart",this),this.stats&&this.stats.get("Update Attributes").timeStart(),this.attributes){let r=this.attributes[e],c=r.settings.accessor;r.startIndices=n,r.numInstances=i,o[e]&&d.A.removed("props.".concat(e),"data.attributes.".concat(e))(),r.setExternalBuffer(s[e])||r.setBinaryValue("string"==typeof c?s[c]:void 0,t.startIndices)||"string"==typeof c&&!s[c]&&r.setConstantValue(a,o[c])||r.needsUpdate()&&(l=!0,this._updateAttribute({attribute:r,numInstances:i,data:t,props:o,context:a})),this.needsRedraw=this.needsRedraw||r.needsRedraw()}l&&(0,T.A)("attributeManager.updateEnd",this,i),this.stats&&(this.stats.get("Update Attributes").timeEnd(),l&&this.stats.get("Attributes updated").incrementCount()),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:i,transitions:r})}updateTransition(){let{attributeTransitionManager:e}=this,t=e.run();return this.needsRedraw=this.needsRedraw||t,t}getAttributes(){return Y({},this.attributes,this.attributeTransitionManager.getAttributes())}getBounds(e){let t=e.map(e=>{var t;return null==(t=this.attributes[e])?void 0:t.getBounds()});return this.mergeBoundsMemoized(t)}getChangedAttributes(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearChangedFlags:!1},{attributes:t,attributeTransitionManager:i}=this,n=Y({},i.getAttributes());for(let r in t){let o=t[r];o.needsRedraw(e)&&!i.hasAttribute(r)&&(n[r]=o)}return n}getBufferLayouts(e){return this.hasBufferGroups()?this.attributeBufferGroups.getBufferLayouts(this.getAttributes(),e):Object.values(this.getAttributes()).map(t=>t.getBufferLayout(e))}hasBufferGroups(){var e;return!!(null==(e=this.attributeBufferGroups)?void 0:e.hasGroups(this.attributes))}getBufferGroupBindings(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.attributeBufferGroups?this.attributeBufferGroups.getBindings(this.getAttributes(),e,t,i):{bufferLayouts:this.getBufferLayouts(t),buffers:{},groupedAttributeIds:new Set}}_add(e,t){for(let i in e){let n=e[i],r=Y(function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t}
1)(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}(Y({},n),{id:i,size:n.isIndexed&&1||n.size||1}),t);this.attributes[i]=new P(this.device,r)}this._mapUpdateTriggersToAttributes()}_mapUpdateTriggersToAttributes(){let e={};for(let t in this.attributes)this.attributes[t].getUpdateTriggers().forEach(i=>{e[i]||(e[i]=[]),e[i].push(t)});this.updateTriggers=e}_invalidateTrigger(e,t){let{attributes:i,updateTriggers:n}=this,r=n[e];return r&&r.forEach(e=>{let n=i[e];n&&n.setNeedsUpdate(n.id,t)}),r}_updateAttribute(e){let{attribute:t,numInstances:i}=e;((0,T.A)("attribute.updateStart",t),t.constant)?t.setConstantValue(e.context,t.value):(t.allocate(i)&&(0,T.A)("attribute.allocate",t,i),t.updateBuffer(e)&&(this.needsRedraw=!0,(0,T.A)("attribute.updateEnd",t,i)))}constructor(e,{id:t="attribute-manager",stats:i,timeline:n}={}){this.mergeBoundsMemoized=(0,E.A)(u._Z),this.id=t,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=i,this.attributeTransitionManager=new q(e,{id:"".concat(t,"-transitions"),timeline:n}),this.attributeBufferGroups="webgpu"===e.type?new k(e,{id:t,isTransitionAttribute:e=>this.attributeTransitionManager.hasAttribute(e)}):null,Object.seal(this)}}},45566(e,t,i){i.d(t,{K:()=>r});let n={interpolation:{duration:0,easing:e=>e},spring:{stiffness:.05,damping:.5}};function r(e,t){var i,r;if(!e)return null;Number.isFinite(e)&&(e={type:"interpolation",duration:e});let o=e.type||"interpolation";return i=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},n[o],t,e),r=r={type:o},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(r)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}),i}},12121(e,t,i){i.d(t,{A:()=>l});var n=i(13563),r=i(26758),o=i(37142),s=i(17652);class a extends n.A{get isComposite(){return!0}get isDrawable(){return!1}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(e=>e.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(e){}setState(e){super.setState(e),this.setNeedsUpdate()}getPickingInfo(e){let{info:t}=e,{object:i}=t;return i&&i.__source&&i.__source.parent&&i.__source.parent.id===this.id&&(t.object=i.__source.object,t.index=i.__source.index),t}filterSubLayer(e){return!0}shouldRenderSubLayer(e,t){return t&&t.length}getSubLayerClass(e,t){let{_subLayerProps:i}=this.props;return i&&i[e]&&i[e].type||t}getSubLayerRow(e,t,i){return e.__source={parent:this,object:t,index:i},e}getSubLayerAccessor(e){if("function"==typeof e){let t={index:-1,data:this.props.data,target:[]};return(i,n)=>i&&i.__source?(t.index=i.__source.index,e(i.__source.object,t)):e(i,n)}return e}getSubLayerProps(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{opacity:i,pickable:n,visible:r,parameters:o,getPolygonOffset:a,highlightedObjectIndex:l,autoHighlight:c,highlightColor:u,coordinateSystem:d,coordinateOrigin:h,wrapLongitude:p,positionFormat:f,modelMatrix:g,extensions:v,fetch:m,operation:y,_subLayerProps:b}=this.props,w={id:"",updateTriggers:{},opacity:i,pickable:n,visible:r,parameters:o,getPolygonOffset:a,highlightedObjectIndex:l,autoHighlight:c,highlightColor:u,coordinateSystem:d,coordinateOrigin:h,wrapLongitude:p,positionFormat:f,modelMatrix:g,extensions:v,fetch:m,operation:y},_=b&&t.id&&b[t.id],P=_&&_.updateTriggers,O=t.id||"sublayer";if(_){let e=this.props[s.fW],i=t.type?t.type._propTypes:{};for(let t in _){let n=i[t]||e[t];n&&"accessor"===n.type&&(_[t]=this.getSubLayerAccessor(_[t]))}}for(let i of(Object.assign(w,t,_),w.id="".concat(this.props.id,"-").concat(O),w.updateTriggers=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({all:null==(e=this.props.updateTriggers)?void 0:e.all},t.updateTriggers,P),v)){let e=i.getSubLayerProps.call(this,i);e&&Object.assign(w,e,{updateTriggers:Object.assign(w.updateTriggers,e.updateTriggers)})}return w}_updateAutoHighlight(e){for(let t of this.getSubLayers())t.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,t){let i=this.internalState.subLayers,n=!i||this.needsUpdate();if(n){let e=this.renderLayers();i=(0,o.B)(e,Boolean),this.internalState.subLayers=i}for(let e of((0,r.A)("compositeLayer.renderLayers",this,n,i),i))e.parent=this}}a.layerName="CompositeLayer";let l=a},48895(e,t,i){i.d(t,{Kx:()=>s,We:()=>c,p5:()=>a,rf:()=>o,tg:()=>l});var n=i(1918),r=i(39171);let o={DEFAULT:"default",LNGLAT:"lnglat",METER_OFFSETS:"meter-offsets",LNGLAT_OFFSETS:"lnglat-offsets",CARTESIAN:"cartesian"};Object.defineProperty(o,"IDENTITY",{get:()=>(n.A.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),o.CARTESIAN)});let s={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},a={common:0,meters:1,pixels:2},l={click:"onClick",dblclick:"onClick",panstart:"onDragStart",panmove:"onDrag",panend:"onDragEnd"},c={multipan:[r.uq,{threshold:10,pointers:2,trackpad:!0}],pinch:[r.h1,{trackpad:!0},null,["multipan"]],pan:[r.uq,{threshold:1},["pinch"],["multipan"]],dblclick:[r.Cx,{event:"dblclick",taps:2,enable:!1}],dblclickdrag:[r.Cp,{event:"dblclickdrag",enable:!1},["dblclick"],null],click:[r.Cx,{event:"click"},["dblclickdrag"],["dblclick","dblclickdrag"]]}},5529(e,t,i){i.d(t,{A:()=>ev});var n=i(3066),r=i(8780);let o=[i(14216).A],s=["vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)","vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)","vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)","fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)"],a=[],l="layout(std140) uniform layerUniforms {\n uniform float opacity;\n} layer;\n",c={name:"layer",source:"struct LayerUniforms {\n opacity: f32,\n};\n\n@group(0) @binding(auto)\nvar<uniform> layer: LayerUniforms;\n",vs:l,fs:l,getUniforms:e=>({opacity:Math.pow(e.opacity,1/2.2)}),uniformTypes:{opacity:"f32"}};var u=i(17652),d=i(1918),h=i(26758),p=i(37142),f=i(39584),g=i(2043);class v{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,t){if(e===this._data&&!t)return;this._data=e;let i=++this._loadCount,n=e;for(let t of("string"==typeof e&&(n=(0,g.H)(e)),n instanceof Promise?(this.isLoaded=!1,this._loader=n.then(e=>{this._loadCount===i&&(this.isLoaded=!0,this._error=void 0,this._content=e)}).catch(e=>{this._loadCount===i&&(this.isLoaded=!0,this._error=e||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=e),this._subscribers))t.onChange(this.getData())}constructor(e,t,i){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=i,this.setData(t)}}class m{contains(e){return!!e.startsWith(this.protocol)||e in this._resources}add(e){let{resourceId:t,data:i,forceUpdate:n=!1,persistent:r=!0}=e,o=this._resources[t];o?o.setData(i,n):(o=new v(t,i,this._context),this._resources[t]=o),o.persistent=r}remove(e){let t=this._resources[e];t&&(t.delete(),delete this._resources[e])}unsubscribe(e){let{consumerId:t}=e,i=this._consumers[t];if(i){for(let e in i){let t=i[e],n=this._resources[t.resourceId];n&&n.unsubscribe(t)}delete this._consumers[t],this.prune()}}subscribe(e){let{resourceId:t,onChange:i,consumerId:n,requestId:r="default"}=e,{_resources:o,protocol:s}=this;t.startsWith(s)&&(o[t=t.replace(s,"")]||this.add({resourceId:t,data:null,persistent:!1}));let a=o[t];if(this._track(n,r,a,i),a)return a.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(let e in this._resources)this._resources[e].delete()}_track(e,t,i,n){let r=this._consumers,o=r[e]=r[e]||{},s=o[t],a=s&&s.resourceId&&this._resources[s.resourceId];a&&(a.unsubscribe(s),this.prune()),i&&(s?(s.onChange=n,s.resourceId=i.id):s={onChange:n,resourceId:i.id},o[t]=s,i.subscribe(s))}_prune(){for(let e of(this._pruneRequest=null,Object.keys(this._resources))){let t=this._resources[e];t.persistent||t.inUse()||(t.delete(),delete this._resources[e])}}constructor(e){var t;this.protocol=e.protocol||"resource://",this._context={device:e.device,gl:null==(t=e.device)?void 0:t.gl,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}}var y=i(39026);class b{finalize(){for(let e of(this.resourceManager.finalize(),this.layers))this._finalizeLayer(e)}needsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;for(let i of(e.clearRedrawFlags&&(this._needsRedraw=!1),this.layers)){let n=i.getNeedsRedraw(e);t=t||n}return t}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(){let{layerIds:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e?this.layers.filter(t=>e.find(e=>0===t.id.indexOf(e))):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
1),"onError"in e&&(this.context.onError=e.onError)}setLayers(e,t){(0,h.A)("layerManager.setLayers",this,t,e),this._lastRenderedLayers=e;let i=(0,p.B)(e,Boolean);for(let e of i)e.context=this.context;this._updateLayers(this.layers,i)}updateLayers(){let e=this.needsUpdate();e&&(this.setNeedsRedraw("updating layers: ".concat(e)),this.setLayers(this._nextLayers||this._lastRenderedLayers,e)),this._nextLayers=null}addDefaultShaderModule(e){let{defaultShaderModules:t}=this.context;t.find(t=>t.name===e.name)||(t.push(e),this._defaultShaderModulesChanged=!0)}removeDefaultShaderModule(e){let{defaultShaderModules:t}=this.context,i=t.findIndex(t=>t.name===e.name);i>=0&&(t.splice(i,1),this._defaultShaderModulesChanged=!0)}_handleError(e,t,i){i.raiseError(t,"".concat(e," of ").concat(i))}_updateLayers(e,t){let i={};for(let t of e)i[t.id]?d.A.warn("Multiple old layers with same id ".concat(t.id))():i[t.id]=t;if(this._defaultShaderModulesChanged){for(let t of e)t.setNeedsUpdate(),t.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}let n=[];this._updateSublayersRecursively(t,i,n),this._finalizeOldLayers(i);let r=!1;for(let e of n)if(e.hasUniformTransition()){r="Uniform transition in ".concat(e);break}this._needsUpdate=r,this.layers=n}_updateSublayersRecursively(e,t,i){for(let n of e){n.context=this.context;let e=t[n.id];null===e&&d.A.warn("Multiple new layers with same id ".concat(n.id))(),t[n.id]=null;let r=null;try{this._debug&&e!==n&&n.validateProps(),e?(this._transferLayerState(e,n),this._updateLayer(n)):this._initializeLayer(n),i.push(n),r=n.isComposite?n.getSubLayers():null}catch(e){this._handleError("matching",e,n)}r&&this._updateSublayersRecursively(r,t,i)}}_finalizeOldLayers(e){for(let t in e){let i=e[t];i&&this._finalizeLayer(i)}}_initializeLayer(e){try{e._initialize(),e.lifecycle=u.VD.INITIALIZED}catch(t){this._handleError("initialization",t,e)}}_transferLayerState(e,t){t._transferState(e),t.lifecycle=u.VD.MATCHED,t!==e&&(e.lifecycle=u.VD.AWAITING_GC)}_updateLayer(e){try{e._update()}catch(t){this._handleError("update",t,e)}}_finalizeLayer(e){this._needsRedraw=this._needsRedraw||"finalized ".concat(e),e.lifecycle=u.VD.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=u.VD.FINALIZED}catch(t){this._handleError("finalization",t,e)}}constructor(e,t){var i;this._lastRenderedLayers=[],this._needsRedraw=!1,this._needsUpdate=!1,this._nextLayers=null,this._debug=!1,this._defaultShaderModulesChanged=!1,this.activateViewport=e=>{(0,h.A)("layerManager.activateViewport",this,e),e&&(this.context.viewport=e)};let{deck:l,stats:u,viewport:d,timeline:p}=t||{};this.layers=[],this.resourceManager=new m({device:e,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,device:e,gl:null==e?void 0:e.gl,deck:l,shaderAssembler:function(e){let t=r._P.getDefaultShaderAssembler(e);for(let e of o)t.addDefaultModule(e);for(let i of(t._hookFunctions.length=0,"glsl"===e?s:a))t.addShaderHook(i);return t}((null==e||null==(i=e.info)?void 0:i.shadingLanguage)||"glsl"),defaultShaderModules:[c],renderPass:void 0,stats:u||new f.A({id:"deck.gl"}),viewport:d||new y.A({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:p||new n.K,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}}var w=i(59377);function _(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let P="default-canvas";class O{finalize(){for(let e in this.controllers){let t=this.controllers[e];t&&t.finalize()}this.controllers={}}needsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e,this._needsRedraw=this._needsRedraw||e}updateViewStates(){for(let e in this.controllers){let t=this.controllers[e];t&&t.updateTransition()}}getViewports(e){return e?this._viewports.filter(t=>{let i=!e.canvasId||this.getCanvasId(t.id)===e.canvasId,n=!("x"in e)||t.containsPixel(e);return i&&n}):this._viewports}getViews(){let e={};return this.views.forEach(t=>{e[t.id]=t}),e}getView(e){return this.views.find(t=>
1t.id===e)}getViewState(e){let t="string"==typeof e?this.getView(e):e,i=t&&this.viewState[t.getViewStateId()]||this.viewState;return t?t.filterViewState(i):i}getViewport(e){return this._viewportMap[e]}getCanvasId(e){var t;let i="string"==typeof e?this.getView(e):e;return i?(null==(t=this._viewEventManagers[i.id])?void 0:t.canvasId)||this._getCanvasIdFromView(i):void 0}unproject(e,t){let i=this.getViewports(),n={x:e[0],y:e[1]};for(let r=i.length-1;r>=0;--r){let o=i[r];if(o.containsPixel(n)){let i=e.slice();return i[0]-=o.x,i[1]-=o.y,o.unproject(i,t)}}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),"pickPosition"in e&&(this._pickPosition=e.pickPosition),"eventManagers"in e&&this._setEventManagers(e.eventManagers||{}),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,t){(e!==this.width||t!==this.height)&&(this.width=e,this.height=t,this.setNeedsUpdate("Size changed"))}_setViews(e){e=(0,p.B)(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){e?((0,w.b)(e,this.viewState,3)||this.setNeedsUpdate("viewState changed"),this.viewState=e):d.A.warn("missing `viewState` or `initialViewState`")()}_setEventManagers(e){this._eventManagers!==e&&(this._eventManagers=e,this.setNeedsUpdate("eventManagers changed"))}_getCanvasIdFromView(e){var t,i;return e.props.canvasId||(null==(i=this._getCanvasContext)||null==(t=i.call(this,e.id))?void 0:t.id)||P}_getCanvasDimensions(e){var t;let i=null==(t=this._getCanvasContext)?void 0:t.call(this,e.id),[n,r]=(null==i?void 0:i.getCSSSize())||[this.width,this.height];return{width:n,height:r}}_getViewEventManager(e){let t=this.getCanvasId(e)||P;return{canvasId:t,eventManager:this._eventManagers[t]||this._eventManager}}_startViewportRebuild(){let e=this.controllers,t=this._viewEventManagers;return this._viewports=[],this.controllers={},this._viewEventManagers={},{oldControllers:e,oldViewEventManagers:t}}_getReusableController(e,t,i){return e&&((null==t?void 0:t.canvasId)!==i.canvasId||(null==t?void 0:t.eventManager)!==i.eventManager)?(e.finalize(),null):e}_createController(e,t){return new t.type({timeline:this.timeline,eventManager:this._getViewEventManager(e).eventManager,onViewStateChange:this._eventCallbacks.onViewStateChange,onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:t=>{var i;return null==(i=this.getView(e.id))?void 0:i.makeViewport(_({viewState:t},this._getCanvasDimensions(e)))},pickPosition:(t,i)=>{var n;return null==(n=this._pickPosition)?void 0:n.call(this,t,i,e.id)}})}_updateController(e,t,i,n){let r=e.controller;if(r&&i){var o,s;let a=(o=_({},t,r),s=s={id:e.id,x:i.x,y:i.y,width:i.width,height:i.height},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(s)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(s)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(s,e))}),o);return n&&n.constructor===r.type||(n=this._createController(e,a)),n&&n.setProps(a),n}return null}_rebuildViewports(){let{views:e}=this,{oldControllers:t,oldViewEventManagers:i}=this._startViewportRebuild(),n=!1;for(let r=e.length;r--;){let o=e[r],{width:s,height:a}=this._getCanvasDimensions(o),l=this._getViewEventManager(o);this._viewEventManagers[o.id]=l;let c=this.getViewState(o),u=o.makeViewport({viewState:c,width:s,height:a}),d=this._getReusableController(t[o.id],i[o.id],l),h=!!o.controller;h&&!d&&(n=!0),(n||!h)&&d&&(d.finalize(),d=null),this.controllers[o.id]=this._updateController(o,c,u,d),u&&this._viewports.unshift(u)}for(let e in t){let i=t[e];i&&!this.controllers[e]&&i.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(e=>{e.id&&(this._viewportMap[e.id]=this._viewportMap[e.id]||e)})}_diffViews(e,t){return e.length!==t.length||e.some((i,n)=>!e[n].equals(t[n]))}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._eventManagers=e.eventManagers||{},this._viewEventManagers={},this._eventCallbacks={onViewStateChange:e.onViewStateChange,onInteractionStateChange:e.onInteractionStateChange},this._pickPosition=e.pickPosition,this._getCanvasContext=e.getCanvasContext,Object.seal(this),this.setProps(e)}}var j=i(77475),x=i(40190);let C=new x.A;class S{addDefaultEffect(e){let t=this._defaultEffects;if(!t.find(t=>
1t.id===e.id)){let i=t.findIndex(t=>{var i,n;return(null!=(i=t.order)?i:1/0)-(null!=(n=e.order)?n:1/0)>0});i<0?t.push(e):t.splice(i,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&!(0,w.b)(e.effects,this.effects,1)&&this._setEffects(e.effects)}needsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}getEffects(){return this._resolvedEffects}_setEffects(e){let t={};for(let e of this.effects)t[e.id]=e;let i=[];for(let n of e){let e=t[n.id],r=n;e&&e!==n?e.setProps?(e.setProps(n.props),r=e):e.cleanup(this._context):e||n.setup(this._context),i.push(r),delete t[n.id]}for(let e in t)t[e].cleanup(this._context);this.effects=i,this._resolvedEffects=i.concat(this._defaultEffects),e.some(e=>e instanceof x.A)||this._resolvedEffects.push(C),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}constructor(e){this._resolvedEffects=[],this._defaultEffects=[],this.effects=[],this._context=e,this._needsRedraw="Initial render",this._setEffects([])}}var k=i(57618);class M extends k.A{shouldDrawLayer(e){let{operation:t}=e.props;return t.includes("draw")||t.includes("terrain")}render(e){return this._render(e)}}var A=i(86760);function E(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function T(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}class I{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){let t=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,i=E({layerFilter:this.layerFilter,isPicking:this.drawPickingColors},e);if(!e.viewports.length){let e=t.render(i),n="stats"in e?e.stats:e;this._updateStats(n);return}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 r=t.render(T(E({},i),{target:n})),o="stats"in r?r.stats:r;i.effects&&(this.lastPostProcessEffect&&(i.clearCanvas=void 0===e.clearCanvas||e.clearCanvas),this._postRender(i.effects,i)),this.renderCount++,(0,h.A)("deckRenderer.renderLayers",this,o,e),this._updateStats(o)}needsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}finalize(){let{renderBuffers:e}=this;for(let t of e)t.delete();e.length=0}_updateStats(e){if(!this.stats)return;let t=0;for(let{visibleCount:i}of e)t+=i;this.stats.get("Layers rendered").addCount(t)}_preRender(e,t){for(let i of(this.lastPostProcessEffect=null,t.preRenderStats=t.preRenderStats||{},e))t.preRenderStats[i.id]=i.preRender(t),i.postRender&&(this.lastPostProcessEffect=i.id);this.lastPostProcessEffect&&this._resizeRenderBuffers(t.canvasContext)}_resizeRenderBuffers(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.device.canvasContext,{renderBuffers:t}=this,i=e.getDrawingBufferSize(),[n,r]=i;for(let e of(0===t.length&&[0,1].map(e=>{let i=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"},width:n,height:r});
1t.push(this.device.createFramebuffer({id:"deck-renderbuffer-".concat(e),colorAttachments:[i]}))}),t))e.resize(i)}_postRender(e,t){var i,n,r;let{renderBuffers:o}=this,s=null!=(i=null!=(n=t.target)?n:null==(r=t.canvasContext)?void 0:r.getCurrentFramebuffer())?i:t.target,a=T(E({},t),{inputBuffer:o[0],swapBuffer:o[1]});for(let t of e)if(t.postRender){a.target=t.id===this.lastPostProcessEffect?s:void 0;let e=t.postRender(a);a.inputBuffer=e,a.swapBuffer=e===o[0]?o[1]:o[0]}}constructor(e,t={}){this.device=e,this.stats=t.stats,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new M(e),this.pickLayersPass=new A.A(e),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}}var D=i(38550),R=i(60691);function L(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function z(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let V={pickedColor:null,pickedObjectIndex:-1};function F(e){let{pickedColors:t,decodePickingColor:i,deviceX:n,deviceY:r,deviceRadius:o,deviceRect:s}=e,{x:a,y:l,width:c,height:u}=s,h=o*o,p=-1,f=0;for(let e=0;e<u;e++){let i=e+l-r,o=i*i;if(o>h)f+=4*c;else for(let e=0;e<c;e++){if(t[f+3]-1>=0){let t=e+a-n,i=t*t+o;i<=h&&(h=i,p=f)}f+=4}}if(p>=0){let e=t.slice(p,p+4),n=i(e);if(n){let t=Math.floor(p/4/c),i=p/4-t*c;return z(L({},n),{pickedColor:e,pickedX:a+i,pickedY:l+t})}d.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}return V}function N(e){let{pickedColors:t,decodePickingColor:i}=e,n=new Map;if(t){for(let e=0;e<t.length;e+=4)if(t[e+3]-1>=0){let r=t.slice(e,e+4),o=r.join(",");if(!n.has(o)){let e=i(r);e?n.set(o,z(L({},e),{color:r})):d.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(n.values())}function U(e){let t,{pickInfo:i,viewports:n,pixelRatio:r,x:o,y:s,z:a}=e,l=n[0];if(n.length>1&&(l=function(e,t){for(let i=e.length-1;i>=0;i--){let n=e[i];if(n.containsPixel(t))return n}return e[0]}((null==i?void 0:i.pickedViewports)||n,{x:o,y:s})),l){let e=[o-l.x,s-l.y];void 0!==a&&(e[2]=a),t=l.unproject(e)}return{color:null,layer:null,viewport:l,index:-1,picked:!1,x:o,y:s,pixel:[o,s],coordinate:t,devicePixel:i&&"pickedX"in i?[i.pickedX,i.pickedY]:void 0,pixelRatio:r}}function B(e){let{pickInfo:t,lastPickedInfo:i,mode:n,layers:r}=e,{pickedColor:o,pickedLayer:s,pickedObjectIndex:a}=t,l=s?[s]:[];if("hover"===n){let e=i.index,t=i.layerId,n=s?s.props.id:null;if(n!==t||a!==e){if(n!==t){let e=r.find(e=>e.props.id===t);e&&l.unshift(e)}i.layerId=n,i.index=a,i.info=null}}let c=U(e),u=new Map;return u.set(null,c),l.forEach(e=>{let t=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},c);e===s&&(t.color=o,t.index=a,t.picked=!0);let r=(t=G({layer:e,info:t,mode:n})).layer;e===s&&"hover"===n&&(i.info=t),u.set(r.id,t),"hover"===n&&r.updateAutoHighlight(t)}),u}function G(e){let{layer:t,info:i,mode:n}=e;for(;t&&i;){let e=i.layer||null;i.sourceLayer=e,i.layer=t,i=t.getPickingInfo({info:i,mode:n,sourceLayer:e}),t=t.parent}return i}function W(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function H(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}class Z{setProps(e){"layerFilter"in e&&(this.layerFilter=e.layerFilter),"_pickable"in e&&(this._pickable=e._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.destroy(),this.depthFBO&&this.depthFBO.destroy()}pickObjectAsync(e){return this._pickClosestObjectAsync(e)}pickObjectsAsync(e){return this._pickVisibleObjectsAsync(e)}pickObject(e){return this._pickClosestObject(e)}pickObjects(e){return this._pickVisibleObjects(e)}getLastPickedObject(e){let{x:t,y:i,layers:n,viewports:r}=e,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.lastPickedInfo.info,s=o&&o.layer&&o.layer.id,a=o&&o.viewport&&o.viewport.id,l=s?n.find(e=>e.id===s):null,c=a&&r.find(e=>e.id===a)||r[0],u=c&&c.unproject([t-c.x,i-c.y]);return W({},o,{x:t,y:i,viewport:c,coordinate:u,layer:l})}_resizeBuffer(){var e,t;let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.device.getDefaultCanvasContext();if(!this.pickingFBO){let e=this.device.createTexture({format:"rgba8unorm",width:1,height:1,usage:D.g.RENDER_ATTACHMENT|D.g.COPY_SRC});if(this.pickingFBO=this.device.createFramebuffer({colorAttachments:[e],depthStencilAttachment:"depth16unorm"}),this.device.isTextureFormatRenderable("rgba32float")){let e=this.device.createTexture({format:"rgba32float",width:1,height:1,usage:D.g.RENDER_ATTACHMENT|D.g.COPY_SRC}),t=this.device.createFramebuffer({colorAttachments:[e],depthStencilAttachment:"depth16unorm"});this.depthFBO=t}}let[n,r]=i.getDrawingBufferSize();null==(e=this.pickingFBO)||e.resize({width:n,height:r}),null==(t=this.depthFBO)||t.resize({width:n,height:r})}_getPickable(e){if(!1===this._pickable)return null;let t=e.filter(e=>this.pickLayersPass.shouldDrawLayer(e)&&!e.isComposite);return t.length?t:null}async _pickClosestObjectAsync(e){let t,{layers:i,views:n,viewports:r,x:o,y:s,radius:a=0,depth:l=1,mode:c="query",unproject3D:u,canvasContext:d=this.device.getDefaultCanvasContext(),onViewportActive:h,effects:p}=e,f=d.cssToDeviceRatio(),g=this._getPickable(i);if(!g||0===r.length)return{result:[],emptyInfo:U({viewports:r,x:o,y:s,pixelRatio:f})};this._resizeBuffer(d);let v=d.cssToDevicePixels([o,s],!0),m=[v.x+Math.floor(v.width/2),v.y+Math.floor(v.height/2)],y=Math.round(a*f),{width:b,height:w}=this.pickingFBO,_=this._getPickingRect({deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceWidth:b,deviceHeight:w}),P={x:o-a,y:s-a,width:2*a+1,height:2*a+1},O=[],j=new Set;for(let e=0;e<l;e++){let i,a;if(_){let e=await this._drawAndSampleAsync({layers:g,views:n,viewports:r,onViewportActive:h,deviceRect:_,cullRect:P,effects:p,pass:"picking:".concat(c),canvasContext:d});i=F(H(W({},e),{deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceRect:_}))}else i={pickedColor:null,pickedObjectIndex:-1};let v=this._getDepthLayers(i,g,u);if(v.length>0){var x,C;let{pickedColors:e}=await this._drawAndSampleAsync({layers:v,views:n,viewports:r,onViewportActive:h,deviceRect:{x:null!=(x=i.pickedX)?x:m[0],y:null!=(C=i.pickedY)?C:m[1],width:1,height:1},cullRect:P,effects:p,pass:"picking:".concat(c,":z"),canvasContext:d},!0);e[3]&&(a=e[0])}for(let n of(i.pickedLayer&&e+1<l&&(j.add(i.pickedLayer),i.pickedLayer.disablePickingIndex(i.pickedObjectIndex)),(t=B({pickInfo:i,lastPickedInfo:this.lastPickedInfo,mode:c,layers:g,viewports:r,x:o,y:s,z:a,pixelRatio:f})).values()))n.layer&&O.push(n);if(!i.pickedColor)break}for(let e of j)e.restorePickingColors();return{result:O,emptyInfo:t.get(null)}}_pickClosestObject(e){let t,{layers:i,views:n,viewports:r,x:o,y:s,radius:a=0,depth:l=1,mode:c="query",unproject3D:u,canvasContext:d=this.device.getDefaultCanvasContext(),onViewportActive:h,effects:p}=e,f=d.cssToDeviceRatio(),g=this._getPickable(i);if(!g||0===r.length)return{result:[],emptyInfo:U({viewports:r,x:o,y:s,pixelRatio:f})};this._resizeBuffer(d);let v=d.cssToDevicePixels([o,s],!0),m=[v.x+Math.floor(v.width/2),v.y+Math.floor(v.height/2)],y=Math.round(a*f),{width:b,height:w}=this.pickingFBO,_=this._getPickingRect({deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceWidth:b,deviceHeight:w}),P={x:o-a,y:s-a,width:2*a+1,height:2*a+1},O=[],j=new Set;for(let e=0;e<l;e++){let i,a;if(_){let e=this._drawAndSample({layers:g,views:n,viewports:r,onViewportActive:h,deviceRect:_,cullRect:P,effects:p,pass:"picking:".concat(c),canvasContext:d});i=F(H(W({},e),{deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceRect:_}))}else i={pickedColor:null,pickedObjectIndex:-1};let v=this._getDepthLayers(i,g,u);if(v.length>0){var x,C;let{pickedColors:e}=this._drawAndSample({layers:v,views:n,viewports:r,onViewportActive:h,deviceRect:{x:null!=(x=i.pickedX)?x:m[0],y:null!=(C=i.pickedY)?C:m[1],width:1,height:1},cullRect:P,effects:p,pass:"picking:".concat(c,":z"),canvasContext:d},!0);e[3]&&(a=e[0])}for(let n of(i.pickedLayer&&e+1<l&&(j.add(i.pickedLayer),i.pickedLayer.disablePickingIndex(i.pickedObjectIndex)),(t=B({pickInfo:i,lastPickedInfo:this.lastPickedInfo,mode:c,layers:g,viewports:r,x:o,y:s,z:a,pixelRatio:f}
1)).values()))n.layer&&O.push(n);if(!i.pickedColor)break}for(let e of j)e.restorePickingColors();return{result:O,emptyInfo:t.get(null)}}async _pickVisibleObjectsAsync(e){let{layers:t,views:i,viewports:n,x:r,y:o,width:s=1,height:a=1,mode:l="query",maxObjects:c=null,canvasContext:u=this.device.getDefaultCanvasContext(),onViewportActive:d,effects:h}=e,p=this._getPickable(t);if(!p||0===n.length)return[];this._resizeBuffer(u);let f=u.cssToDeviceRatio(),g=u.cssToDevicePixels([r,o],!0),v=g.x,m=g.y+g.height,y=u.cssToDevicePixels([r+s,o+a],!0),b=y.x+y.width,w=y.y,_=await this._drawAndSampleAsync({layers:p,views:i,viewports:n,onViewportActive:d,deviceRect:{x:v,y:w,width:b-v,height:m-w},cullRect:{x:r,y:o,width:s,height:a},effects:h,pass:"picking:".concat(l),canvasContext:u}),P=N(_),O=new Map,j=[],x=Number.isFinite(c);for(let e=0;e<P.length;e++){var C;if(x&&j.length>=c)break;let t=P[e],i={color:t.pickedColor,layer:null,index:t.pickedObjectIndex,picked:!0,x:r,y:o,pixelRatio:f},n=(i=G({layer:t.pickedLayer,info:i,mode:l})).layer.id;O.has(n)||O.set(n,new Set);let s=O.get(n),a=null!=(C=i.object)?C:i.index;s.has(a)||(s.add(a),j.push(i))}return j}_pickVisibleObjects(e){let{layers:t,views:i,viewports:n,x:r,y:o,width:s=1,height:a=1,mode:l="query",maxObjects:c=null,canvasContext:u=this.device.getDefaultCanvasContext(),onViewportActive:d,effects:h}=e,p=this._getPickable(t);if(!p||0===n.length)return[];this._resizeBuffer(u);let f=u.cssToDeviceRatio(),g=u.cssToDevicePixels([r,o],!0),v=g.x,m=g.y+g.height,y=u.cssToDevicePixels([r+s,o+a],!0),b=y.x+y.width,w=y.y,_=this._drawAndSample({layers:p,views:i,viewports:n,onViewportActive:d,deviceRect:{x:v,y:w,width:b-v,height:m-w},cullRect:{x:r,y:o,width:s,height:a},effects:h,pass:"picking:".concat(l),canvasContext:u}),P=N(_),O=new Map,j=[],x=Number.isFinite(c);for(let e=0;e<P.length;e++){var C;if(x&&j.length>=c)break;let t=P[e],i={color:t.pickedColor,layer:null,index:t.pickedObjectIndex,picked:!0,x:r,y:o,pixelRatio:f},n=(i=G({layer:t.pickedLayer,info:i,mode:l})).layer.id;O.has(n)||O.set(n,new Set);let s=O.get(n),a=null!=(C=i.object)?C:i.index;s.has(a)||(s.add(a),j.push(i))}return j}async _drawAndSampleAsync(e){var t;let{layers:i,views:n,viewports:r,onViewportActive:o,deviceRect:s,cullRect:a,effects:l,pass:c,canvasContext:u}=e,h=arguments.length>1&&void 0!==arguments[1]&&arguments[1],p=h?this.depthFBO:this.pickingFBO,f={layers:i,layerFilter:this.layerFilter,views:n,viewports:r,onViewportActive:o,pickingFBO:p,deviceRect:s,cullRect:a,effects:l,pass:c,canvasContext:u,pickZ:h,preRenderStats:{},isPicking:!0};for(let e of l)e.useInPicking&&(f.preRenderStats[e.id]=e.preRender(f));let{decodePickingColor:g,stats:v}=this.pickLayersPass.render(f);this._updateStats(v);let{x:m,y,width:b,height:w}=s,_=null==(t=p.colorAttachments[0])?void 0:t.texture;if(!_)throw Error("Picking framebuffer color attachment is missing");let P=await this._readTextureDataAsync(_,{x:m,y,width:b,height:w},h?Float32Array:Uint8Array);if(!h){let e=!1;for(let t=3;t<P.length;t+=4)if(0!==P[t]){e=!0;break}!e&&P.length>0&&d.A.warn("Async pick readback returned only zero alpha values",{deviceRect:s,bytes:Array.from(P.subarray(0,Math.min(P.length,16)))})()}return{pickedColors:P,decodePickingColor:g}}async _readTextureDataAsync(e,t,i){let{width:n,height:r}=t,o=e.computeMemoryLayout(t),s=this.device.createBuffer({byteLength:o.byteLength,usage:R.h.COPY_DST|R.h.MAP_READ});try{e.readBuffer(t,s);let a=await s.readAsync(0,o.byteLength),l=i.BYTES_PER_ELEMENT;if(o.bytesPerRow%l!=0)throw Error("Texture readback row stride ".concat(o.bytesPerRow," is not aligned to ").concat(l,"-byte elements."));let c=new i(a.buffer,a.byteOffset,o.byteLength/l),u=4*n,d=o.bytesPerRow/l;if(d<u)throw Error("Texture readback row stride ".concat(d," is smaller than packed row length ").concat(u,"."));let h=new i(n*r*4);for(let e=0;e<r;e++){let t=e*d;h.set(c.subarray(t,t+u),e*u)}return h}finally{s.destroy()}}_drawAndSample(e){let{layers:t,views:i,viewports:n,onViewportActive:r,deviceRect:o,cullRect:s,effects:a,pass:l,canvasContext:c}=e,u=arguments.length>1&&void 0!==arguments[1]&&arguments[1],d=u?this.depthFBO:this.pickingFBO,h={layers:t,layerFilter:this.layerFilter,views:i,viewports:n,onViewportActive:r,pickingFBO:d,deviceRect:o,cullRect:s,effects:a,pass:l,canvasContext:c,pickZ:u,preRenderStats:{},isPicking:!0};for(let e of a)e.useInPicking&&(h.preRenderStats[e.id]=e.preRender(h));let{decodePickingColor:p,stats:f}=this.pickLayersPass.render(h);this._updateStats(f);let{x:g,y:v,width:m,height:y}=o,b=new(u?Float32Array:Uint8Array)(m*y*4);return this.device.readPixelsToArrayWebGL(d,{sourceX:g,sourceY:v,sourceW
1idth:m,sourceHeight:y,target:b}),{pickedColors:b,decodePickingColor:p}}_updateStats(e){if(!this.stats)return;let t=0;for(let{visibleCount:i}of e)t+=i;this.stats.get("Layers picked").addCount(t)}_getDepthLayers(e,t,i){var n;if(!i||!this.depthFBO)return[];let{pickedLayer:r}=e,o=(null==r||null==(n=r.state)?void 0:n.terrainDrawMode)==="drape";return r&&!o?[r]:t.filter(e=>e.props.operation.includes("terrain"))}_getPickingRect(e){let{deviceX:t,deviceY:i,deviceRadius:n,deviceWidth:r,deviceHeight:o}=e,s=Math.max(0,t-n),a=Math.max(0,i-n),l=Math.min(r,t+n+1)-s,c=Math.min(o,i+n+1)-a;return l<=0||c<=0?null:{x:s,y:a,width:l,height:c}}constructor(e,t={}){this._pickable=!0,this.device=e,this.stats=t.stats,this.pickLayersPass=new A.A(e),this.lastPickedInfo={index:-1,layerId:null,info:null}}}var q=i(48895);let Y={"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}},K="root";class X{getWidgets(){return this.resolvedWidgets}setProps(e){if(e.widgets&&!(0,w.b)(e.widgets,this.widgets,1)){let t=e.widgets.filter(Boolean);this._setWidgets(t)}}finalize(){for(let e of this.getWidgets())this._removeWidget(e);for(let e in this.defaultWidgets.length=0,this.resolvedWidgets.length=0,this.containers)this.containers[e].remove()}addDefault(e){this.defaultWidgets.find(t=>t.id===e.id)||(this._addWidget(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}onRedraw(e){let{viewports:t,layers:i}=e,n=t.reduce((e,t)=>(e[t.id]=t,e),{});for(let e of this.getWidgets()){var r,o;let{viewId:s}=e;if(s){let t=n[s];t&&(e.onViewportChange&&e.onViewportChange(t),null==(r=e.onRedraw)||r.call(e,{viewports:[t],layers:i}))}else{if(e.onViewportChange)for(let i of t)e.onViewportChange(i);null==(o=e.onRedraw)||o.call(e,{viewports:t,layers:i})}}this.lastViewports=n,this._updateContainers()}onHover(e,t){for(let r of this.getWidgets()){var i,n;let{viewId:o}=r;o&&o!==(null==(i=e.viewport)?void 0:i.id)||null==(n=r.onHover)||n.call(r,e,t)}}getCanvasBounds(e){var t,i,n,r,o,s,a;let l=null==(i=this.deck)||null==(t=i.getCanvas)?void 0:t.call(i),c=null==l?void 0:l.getBoundingClientRect(),u=null==(n=this.parentElement)?void 0:n.getBoundingClientRect(),d=null==(o=this.deck)||null==(r=o.getCanvasContext)?void 0:r.call(o,null==e?void 0:e.id);if(d&&u){d.updatePosition();let[e,t]=d.getPosition(),[i,n]=d.getCSSSize();return{x:e-u.left,y:t-u.top,width:i,height:n}}return{x:c&&u?c.left-u.left:0,y:c&&u?c.top-u.top:0,width:(null==c?void 0:c.width)||(null==(s=this.deck)?void 0:s.width)||0,height:(null==c?void 0:c.height)||(null==(a=this.deck)?void 0:a.height)||0}}onEvent(e,t){let i=q.tg[t.type];if(i)for(let o of this.getWidgets()){var n,r;let{viewId:s}=o;s&&s!==(null==(n=e.viewport)?void 0:n.id)||null==(r=o[i])||r.call(o,e,t)}}_setWidgets(e){let t={};for(let e of this.resolvedWidgets)t[e.id]=e;for(let e of(this.resolvedWidgets.length=0,this.defaultWidgets))t[e.id]=null,this.resolvedWidgets.push(e);for(let i of e){let e=t[i.id];e?e.viewId!==i.viewId||e.placement!==i.placement?(this._removeWidget(e),this._addWidget(i)):i!==e&&(e.setProps(i.props),i=e):this._addWidget(i),t[i.id]=null,this.resolvedWidgets.push(i)}for(let e in t){let i=t[e];i&&this._removeWidget(i)}this.widgets=e}_addWidget(e){var t;let{viewId:i=null,placement:n="top-left"}=e,r=null!=(t=e.props._container)?t:i;e.widgetManager=this,e.deck=this.deck,e.rootElement=e._onAdd({deck:this.deck,viewId:i}),e.rootElement&&this._getContainer(r,n).append(e.rootElement),e.updateHTML()}_removeWidget(e){var t;null==(t=e.onRemove)||t.call(e),e.rootElement&&e.rootElement.remove(),e.rootElement=void 0,e.deck=void 0,e.widgetManager=void 0}_getContainer(e,t){if(e&&"string"!=typeof e)return e;let i=e||K,n=this.containers[i];if(!n){var r;(n=document.createElement("div")).style.pointerEvents="none",n.style.position="absolute",n.style.overflow="hidden",null==(r=this.parentElement)||r.append(n),this.containers[i]=n}let o=n.querySelector(".".concat(t));return o||((o=globalThis.document.createElement("div")).className=t,o.style.position="absolute",o.style.zIndex="2",Object.assign(o.style,Y[t]),n.append(o)),o}
1_updateContainers(){for(let e in this.containers){let t=this.lastViewports[e]||null,i=e===K||t,n=this.containers[e];if(i){let e=this._getContainerBounds(t);n.style.display="block",n.style.left="".concat(e.x,"px"),n.style.top="".concat(e.y,"px"),n.style.width="".concat(e.width,"px"),n.style.height="".concat(e.height,"px")}else n.style.display="none"}}_getContainerBounds(e){if(!e){var t,i;return{x:0,y:0,width:(null==(t=this.parentElement)?void 0:t.clientWidth)||this.deck.width,height:(null==(i=this.parentElement)?void 0:i.clientHeight)||this.deck.height}}let n=this.getCanvasBounds(e);return{x:n.x+e.x,y:n.y+e.y,width:e.width,height:e.height}}constructor({deck:e,parentElement:t}){this.defaultWidgets=[],this.widgets=[],this.resolvedWidgets=[],this.containers={},this.lastViewports={},this.deck=e,null==t||t.classList.add("deck-widget-container"),this.parentElement=t}}var J=i(64244);let $={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"};class Q extends J.x{onCreateRootElement(){let e=document.createElement("div");return e.className=this.className,Object.assign(e.style,$),e}onRenderHTML(e){}onViewportChange(e){var t;this.isVisible&&e.id===(null==(t=this.lastViewport)?void 0:t.id)&&!e.equals(this.lastViewport)&&this.setTooltip(null),this.lastViewport=e}onHover(e){var t;let{deck:i}=this,n=i&&i.props.getTooltip;if(!n)return;let r=n(e),o=null==(t=this.widgetManager)?void 0:t.getCanvasBounds(e.viewport),s=e.x+((null==o?void 0:o.x)||0),a=e.y+((null==o?void 0:o.y)||0);this.setTooltip(r,s,a)}setTooltip(e,t,i){let n=this.rootElement;if(n){if("string"==typeof e)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(".concat(t,"px, ").concat(i,"px)"),e&&"object"==typeof e&&"style"in e&&Object.assign(n.style,e.style)}}constructor(e={}){super(e),this.id="default-tooltip",this.placement="fill",this.className="deck-tooltip",this.isVisible=!1,this.setProps(e)}}Q.defaultProps=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},J.x.defaultProps);var ee=i(22708);class et{finalize(){for(let e of Object.values(this.targets))e.eventManager.destroy(),e.presentationContext.destroy();this.targets={},this.order=[],this.eventManagers={},this._eventRootToCanvasId=new WeakMap}syncCanvasEntries(e){let t=this._normalizeCanvasList(e.canvases),i={},n=[],r=new Map;for(let{canvas:e}of t){let t=this._getEventRoot(e);r.set(t,(r.get(t)||0)+1)}for(let{id:o,canvas:s}of t){let t=this._getEventRoot(s),a=1===r.get(t)?t:s,l=this.targets[o];if(!l||l.device!==e.device||l.canvas!==s||l.eventRoot!==a){null==l||l.eventManager.destroy(),null==l||l.presentationContext.destroy();let t=e.device.createPresentationContext({id:o,canvas:s,useDevicePixels:e.useDevicePixels,autoResize:!0});l={id:o,device:e.device,canvas:s,eventRoot:a,presentationContext:t,eventManager:this._createEventManager(a)}}this._eventRootToCanvasId.set(a,o),this._eventRootToCanvasId.set(s,o),i[o]=l,n.push(o)}for(let[e,t]of Object.entries(this.targets))i[e]||(t.eventManager.destroy(),t.presentationContext.destroy());this.targets=i,this.order=n;let o=Object.fromEntries(Object.entries(i).map(e=>{let[t,i]=e;return[t,i.eventManager]}));this._haveSameEventManagers(o)||(this.eventManagers=o)}getCanvasIdFromEvent(e){return e?this._eventRootToCanvasId.get(e):void 0}getTarget(e){return this.targets[e||this.order[0]||P]||null}_normalizeCanvasList(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Set;return e.map((e,i)=>{let n,r;return"string"==typeof e?(n=document.getElementById(e),(0,ee.A)(n,"Canvas with id ".concat(e," not found")),r=e):r=(n=e).id||"deckgl-canvas-".concat(i),(0,ee.A)(!t.has(r),"Duplicate canvas id ".concat(r)),t.add(r),{id:r,canvas:n}})}_haveSameEventManagers(e){let t=Object.keys(e),i=Object.keys(this.eventManagers);return t.length===i.length&&t.every(t=>e[t]===this.eventManagers[t])}constructor(e){this.targets={},this.order=[],this.eventManagers={},this._eventRootToCanvasId=new WeakMap,this._createEventManager=e.createEventManager,this._getEventRoot=e.getEventRoot}}var ei=i(17390),en=i(37563),er=i(21140);let eo={dataType:null,batchType:null,id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:function(e){let t=e[0],i=e[e.length-1];return"{"===t&&"}"===i||"["===t&&"]"===i},parseTextSync:JSON.parse},es=function(){let e="9.4.0",t=globalThis.deck&&globalThis.deck.VERSION;if(t&&t!==e)throw Error("deck.gl - multiple versions detected: ".concat(t," vs ").concat(e));if(!t){var i,n;d.A.log(1,"deck.gl ".concat(e))(),globalThis.deck=(i=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},globalThis.deck),n=n={VERSION:e,version:e,log:d.A,_registerLoggers:h.k},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(n)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(n,e))}),i),(0,en.mk)([eo,[er.$,{imagebitmap:{premultiplyAlpha:"none"}}]])}return e}();var ea=i(60966),el=i(51598),ec=i(93613),eu=i(39171);function ed(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function eh(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}function ep(){}let ef={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,pickAsync:"auto",layerFilter:null,parameters:{},parent:null,device:null,deviceProps:{},gl:null,canvas:null,_canvases:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,widgets:[],onDeviceInitialized:ep,onWebGLInitialized:ep,onResize:ep,onViewStateChange:ep,onInteractionStateChange:ep,onBeforeRender:ep,onAfterRender:ep,onLoad:ep,onError:e=>d.A.error(e.message,e.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:e=>{let{isDragging:t}=e;return t?"grabbing":"grab"},getTooltip:null,debug:!1,drawPickingColors:!1};class eg{finalize(){var e,t,i,n,r,o,s,a,l,c;this._restoreDeviceResizeHandler(),null==(e=this.animationLoop)||e.stop(),null==(t=this.animationLoop)||t.destroy(),this.animationLoop=null,this._hoverPickSequence++,this._pointerDownPickSequence++,this._lastPointerDownInfo=null,this._lastPointerDownInfoPromise=null,null==(i=this.layerManager)||i.finalize(),this.layerManager=null,null==(n=this.viewManager)||n.finalize(),this.viewManager=null,null==(r=this.effectManager)||r.finalize(),this.effectManager=null,null==(o=this.deckRenderer)||o.finalize(),this.deckRenderer=null,null==(s=this.deckPicker)||s.finalize(),this.deckPicker=null,Object.keys(this._canvasManager.targets).length||null==(l=this.eventManager)||l.destroy(),this.eventManager=null,this.eventManagers={},null==(a=this.widgetManager)||a.finalize(),this.widgetManager=null,this._canvasManager.finalize(),this._isMultiCanvasMode()?this.canvas=null:this.canvas&&this.canvas===this._ownedCanvas&&(null==(c=this.canvas.parentElement)||c.removeChild(this.canvas),this.canvas=null,this._ownedCanvas=null),this._canvasContext=null}setProps(e){var t,i,n,r,o,s;this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&d.A.removed("onLayerHover","onHover")(),"onLayerClick"in e&&d.A.removed("onLayerClick","onClick")(),e.initialViewState&&!(0,w.b)(this.props.initialViewState,e.initialViewState,3)&&(this.viewState=e.initialViewState),(0,ee.A)(!("_canvases"in e)||Array.isArray(e._canvases)===this._isMultiCanvasMode()),Object.assign(this.props,e),this._validateCanvasConfiguration(this.props),this._validateInternalPickingMode(),this.device&&this._isMultiCanvasMode()&&this._syncCanvasTargets(),this._setCanvasSize(this.props);let a=Object.create(this.props);if(Object.assign(a,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState(),eventManagers:this.eventManagers}),e.device&&e.device.id!==(null==(t=this.device)?void 0:t.id)){let t=e.device.getDefaultCanvasContext();null==(r=this.animationLoop)||r.stop(),this._isMultiCanvasMode()||this.canvas===t.canvas||(null==(o=this.canvas)||o.remove(),null==(s=this.eventManager)||s.destroy(),this.canvas=null),this._setDeviceCanvasContext(e.device),d.A.log("recreating animation loop for new device! id=".concat(e.device.id))(),this.animationLoop=this._createAnimationLoop(e.device,e),this.animationLoop.start()}if(null==(i=this.animationLoop)||i.setProps(a),void 0!==e.useDevicePixels&&(null==(n=this._canvasContext)?void 0:n.setProps))for(let t of(this._canvasContext.setProps({useDevicePixels:e.useDevicePixels}),Object.values(this._canvasManager.targets)))t.presentationContext.setProps({useDevicePixels:e.useDevicePixels});this.layerManager&&(this.viewManager.setProps(a),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(a),this.effectManager.setProps(a),this.deckRenderer.setProps(a),this.deckPicker.setProps(a),this.widgetManager.setProps(a)),this.stats.get("setProps Time").timeEnd()}needsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1};if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let t=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);let i=this.viewManager.needsRedraw(e),n=this.layerManager.needsRedraw(e),r=this.effectManager.needsRedraw(e),o=this.deckRenderer.needsRedraw(e);return t||i||n||r||o}redraw(e){if(!this.layerManager)return;let t=this.needsRedraw({clearRedrawFlags:!0});(t=e||t)&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(t):this._drawLayers(t))}get isInitialized(){return null!==this.viewManager}getViews(){return(0,ee.A)(this.viewManager),this.viewManager.views}getView(e){return(0,ee.A)(this.viewManager),this.viewManager.getView(e)}getViewports(e){return(0,ee.A)(this.viewManager),this.viewManager.getViewports(e)}getCanvas(){return this.canvas}getCanvasContext(e){var t,i;let n=e?null==(i=this.viewManager)||null==(t=i.getView(e))?void 0:t.props.canvasId:void 0;return this._getCanvasContext(n)}getEventManager(e){if(!e||!this.viewManager)return this.eventManager;let t=this.viewManager.getCanvasId(e)||P;return this.eventManagers[t]||this.eventManager}async pickObjectAsync(e){let t=(await this._pickAsync("pickObjectAsync","pickObject Time",e)).result;return t.length?t[0]:null}async pickObjectsAsync(e){return await this._pickAsync("pickObjectsAsync","pickObjects Time",e)}
1pickObject(e){let t=this._pick("pickObject","pickObject Time",e).result;return t.length?t[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)}_pickPositionForController(e,t,i){var n;return"sync"!==this._getInternalPickingMode()?null:this.pickObject({x:e,y:t,radius:0,unproject3D:!0,canvasId:i?null==(n=this.viewManager)?void 0:n.getCanvasId(i):void 0})}_addResources(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(let i in e)this.layerManager.resourceManager.add({resourceId:i,data:e[i],forceUpdate:t})}_removeResources(e){for(let t of e)this.layerManager.resourceManager.remove(t)}_addDefaultEffect(e){this.effectManager.addDefaultEffect(e)}_addDefaultShaderModule(e){this.layerManager.addDefaultShaderModule(e)}_removeDefaultShaderModule(e){var t;null==(t=this.layerManager)||t.removeDefaultShaderModule(e)}_resolveInternalPickingMode(){var e,t;let{pickAsync:i}=this.props,n=(null==(e=this.device)?void 0:e.type)||(null==(t=this.props.deviceProps)?void 0:t.type);if("auto"===i)return"webgpu"===n?"async":"sync";if("sync"===i&&"webgpu"===n)throw Error('`pickAsync: "sync"` is not supported when Deck is using a WebGPU device.');return i}_getInternalPickingMode(){try{return this._resolveInternalPickingMode()}catch(i){var e,t;return null==(e=(t=this.props).onError)||e.call(t,i),null}}_validateInternalPickingMode(){this._getInternalPickingMode()}_getFirstPickedInfo(e){let{result:t,emptyInfo:i}=e;return t[0]||i}_shouldUnproject3D(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(null==(e=this.layerManager)?void 0:e.getLayers())||[];return t.some(e=>"3d"===e.props.pickable)}_getPointPickOptions(e,t){var i;let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(null==(i=this.layerManager)?void 0:i.getLayers())||[];return ed({x:e,y:t,canvasId:n.canvasId,radius:this.props.pickingRadius,unproject3D:this._shouldUnproject3D(r)},n)}_pickPointSync(e){return this._pick("pickObject","pickObject Time",e)}_pickPointAsync(e){return this._pickAsync("pickObjectAsync","pickObject Time",e)}_getLastPointerDownPickingInfo(e,t,i){var n;let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(null==(n=this.layerManager)?void 0:n.getLayers())||[];return this.deckPicker.getLastPickedObject({x:e,y:t,layers:r,viewports:this.getViewports({x:e,y:t,canvasId:i})},this._lastPointerDownInfo)}_applyHoverCallbacks(e,t){var i,n,r;let{result:o,emptyInfo:s}=e;if(!this.widgetManager)return;this.cursorState.isHovering=o.length>0;let a=s,l=!1;for(let e of o)a=e,l=(null==(i=e.layer)?void 0:i.onHover(e,t))||l;l||(null==(n=(r=this.props).onHover)||n.call(r,a,t),this.widgetManager.onHover(a,t))}_dispatchPickingEvent(e,t){if(!this.layerManager||!this.widgetManager)return;let i=q.tg[t.type];if(!i)return;let{layer:n}=e,r=n&&(n[i]||n.props[i]),o=this.props[i],s=!1;r&&(s=r.call(n,e,t)),s||(null==o||o(e,t),this.widgetManager.onEvent(e,t))}_pickAsync(e,t,i){(0,ee.A)(this.deckPicker);let{stats:n}=this,r=this._isMultiCanvasMode()?i.canvasId||this._getDefaultCanvasId():i.canvasId,o=this._getCanvasContext(r)||void 0;n.get("Pick Count").incrementCount(),n.get(t).timeStart(),this._resizeForCanvasTarget(r);let s=this.deckPicker[e](eh(ed({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(eh(ed({},i),{canvasId:r})),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects()},i),{canvasId:r,canvasContext:o}));return n.get(t).timeEnd(),s}_pick(e,t,i){(0,ee.A)(this.deckPicker);let{stats:n}=this,r=this._isMultiCanvasMode()?i.canvasId||this._getDefaultCanvasId():i.canvasId,o=this._getCanvasContext(r)||void 0;n.get("Pick Count").incrementCount(),n.get(t).timeStart(),this._resizeForCanvasTarget(r);let s=this.deckPicker[e](eh(ed({layers:this.layerManager.getLayers(i),views:this.viewManager.getViews(),viewports:this.getViewports(eh(ed({},i),{canvasId:r})),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects()},i),{canvasId:r,canvasContext:o}));return n.get(t).timeEnd(),s}_createCanvas(e){let t=e.canvas;return"string"==typeof t&&(t=document.getElementById(t),(0,ee.A)(t)),t?this._ownedCanvas=null:((t=document.createElement("canvas")).id=e.id||"deckgl-overlay",e.width&&"number"==typeof e.width&&(t.width=e.width),e.height&&"number"==typeof e.height&&(t.height=e.height),(e.parent||document.body).appendChild(t),this._ownedCanvas=t),Object.assign(t.style,e.style),t}
1_isMultiCanvasMode(){return Array.isArray(this.props._canvases)}_getDefaultCanvasId(){return this._canvasManager.order[0]||P}_validateCanvasConfiguration(e){var t;Array.isArray(e._canvases)&&((0,ee.A)(!e.canvas),(0,ee.A)(!e.gl),(0,ee.A)(!(null==(t=e.device)?void 0:t.canvasContext)||e.device.getDefaultCanvasContext().offscreenCanvas))}_createEventManager(e){let t=new eu.EU(e,{touchAction:this.props.touchAction,recognizers:Object.keys(q.We).map(e=>{var t;let[i,n,r,o]=q.We[e];return{recognizer:new i(eh(ed({},n,null==(t=this.props.eventRecognizerOptions)?void 0:t[e]),{event:e})),recognizeWith:r,requireFailure:o}}),events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(let e in q.tg)"dblclick"===e?t.watch(e,this._onEvent):t.on(e,this._onEvent);return t}_getEventRoot(e){var t;return e.closest(".deck-events-root")||(null==(t=this.props.parent)?void 0:t.querySelector(".deck-events-root"))||e}_syncCanvasTargets(){var e;if(!this.device||!this._isMultiCanvasMode())return;this._canvasManager.syncCanvasEntries({device:this.device,canvases:this.props._canvases||[],useDevicePixels:this.props.useDevicePixels}),this.eventManagers=this._canvasManager.eventManagers;let t=this._getDefaultCanvasId();this.eventManager=this.eventManagers[t]||null,this.canvas=(null==(e=this._canvasManager.targets[t])?void 0:e.canvas)||null}_setCanvasContext(e){this._canvasContext=e,"style"in e.canvas&&(this.canvas=e.canvas)}_setDeviceCanvasContext(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.getDefaultCanvasContext();this._setCanvasContext(i),this._setDeviceResizeHandler(e,t)}_setDeviceResizeHandler(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=!!i.syncDrawingBuffer;if((null==(t=this._deviceResizeHandler)?void 0:t.device)===e){this._deviceResizeHandler.syncDrawingBuffer=n;return}this._restoreDeviceResizeHandler();let r=e=>{if(this._isMultiCanvasMode())this._updateMultiCanvasDimensions();else if(e===this._canvasContext&&this._canvasContext){var t;this._onCanvasContextResize(this._canvasContext,{syncDrawingBuffer:null==(t=this._deviceResizeHandler)?void 0:t.syncDrawingBuffer})}};e.props.onResize=r,this._deviceResizeHandler={device:e,onResize:r,syncDrawingBuffer:n}}_restoreDeviceResizeHandler(){var e;let t=this._deviceResizeHandler;t&&(null==(e=t.device.props)?void 0:e.onResize)===t.onResize&&(t.device.props.onResize=ep),this._deviceResizeHandler=null}_setCanvasSize(e){if(this._isMultiCanvasMode()||!this.canvas)return;let{width:t,height:i}=e;if(t||0===t){let e=Number.isFinite(t)?"".concat(t,"px"):t;this.canvas.style.width=e}if(i||0===i){var n;let t=Number.isFinite(i)?"".concat(i,"px"):i;this.canvas.style.position=(null==(n=e.style)?void 0:n.position)||"absolute",this.canvas.style.height=t}}_getCanvasIdFromEvent(e){return this._canvasManager.getCanvasIdFromEvent(null==e?void 0:e.rootElement)}_getCanvasContext(e){var t;return(null==(t=this._canvasManager.getTarget(e))?void 0:t.presentationContext)||this._canvasContext}_resizeForCanvasTarget(e){var t;let i=this._canvasManager.getTarget(e);if(!i||!(null==(t=this.device)?void 0:t.canvasContext))return;let[n,r]=i.presentationContext.getDrawingBufferSize();this.device.canvasContext.setDrawingBufferSize(n,r)}_createDeviceCanvas(e){if(this._isMultiCanvasMode()){let t=globalThis.OffscreenCanvas;if(!t)throw Error("`_canvases` requires OffscreenCanvas support.");return new t("number"==typeof e.width&&Number.isFinite(e.width)?e.width:1,"number"==typeof e.height&&Number.isFinite(e.height)?e.height:1)}return this._createCanvas(e)}_updateCanvasSize(){var e,t,i,n,r,o;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._canvasContext;if(this._isMultiCanvasMode())return void this._updateMultiCanvasDimensions();let{canvas:a}=this,[l,c]=s?s.getCSSSize():[null!=(e=null!=(t=null==a?void 0:a.clientWidth)?t:null==a?void 0:a.width)?e:0,null!=(i=null!=(n=null==a?void 0:a.clientHeight)?n:null==a?void 0:a.height)?i:0];(l!==this.width||c!==this.height)&&(this.width=l,this.height=c,null==(r=this.viewManager)||r.setProps({width:l,height:c}),null==(o=this.layerManager)||o.activateViewport(this.getViewports()[0]),this.props.onResize({width:l,height:c},s||void 0))}_onCanvasContextResize(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t.syncDrawingBuffer){let{width:t,height:i}=e.canvas;e.setDrawingBufferSize(t,i)}this._needsRedraw="Canvas resized",this._updateCanvasSize(e)}_updateMultiCanvasDimensions(){var e,t,i;let[n,r]=(null==(e=this._getCanvasContext())?void 0:e.getCSSSize())||[0,0];(n!==this.width||r!==this.height)&&(this.width=n,this.height=r,this.props.onResize({width:n,height:r})),this._needsRedraw="Canvas resized",null==(t=this.viewManager)||t.setNeedsUpdate("Canvas resized"),null==(i=this.viewManager)||i.setProps({width:this.width,height:this.height})}_createAnimationLoop(e,t){let{gl:i,onError:n}=t;return new ec.F({device:e,autoResizeDrawingBuffer:!i&&!Array.isArray(t._canvase
1s),autoResizeViewport:!1,onInitialize:e=>this._setDevice(e.device),onRender:this._onRenderFrame.bind(this),onError:n})}_createDevice(e){var t,i;let n=null==(t=this.props.deviceProps)?void 0:t.createCanvasContext,r=ed({adapters:[],_cacheShaders:!0,_cachePipelines:!0},e.deviceProps);r.adapters.includes(el.l)||r.adapters.push(el.l);let o={alphaMode:(null==(i=this.props.deviceProps)?void 0:i.type)==="webgpu"?"premultiplied":void 0};return ea.a.createDevice(eh(ed({_reuseDevices:!0,type:"webgl"},r),{createCanvasContext:eh(ed({},o,"object"==typeof n?n:void 0),{canvas:this._createDeviceCanvas(e),useDevicePixels:this.props.useDevicePixels,autoResize:!0})}))}_getViewState(){return this.props.viewState||this.viewState}_getViews(){let{views:e}=this.props,t=Array.isArray(e)?e:e?[e]:[new j.A({id:"default-view"})];return t.length&&this.props.controller&&(t[0]=t[0].clone({controller:this.props.controller})),t}_onContextLost(){let{onError:e}=this.props;this.animationLoop&&e&&e(Error("WebGL context is lost"))}_pickAndCallback(){let{_pickRequest:e}=this;if(e.event){var t;let i=e.event,n=(null==(t=this.layerManager)?void 0:t.getLayers())||[],r=this._getPointPickOptions(e.x,e.y,{canvasId:e.canvasId,radius:e.radius,mode:e.mode},n),o=this._getInternalPickingMode(),s=++this._hoverPickSequence;if(e.event=null,e.canvasId=void 0,!o)return;if("sync"===o)return void this._applyHoverCallbacks(this._pickPointSync(r),i);this._pickPointAsync(r).then(e=>{let{result:t,emptyInfo:n}=e;s===this._hoverPickSequence&&this._applyHoverCallbacks({result:t,emptyInfo:n},i)}).catch(e=>{var t,i;return null==(t=(i=this.props).onError)?void 0:t.call(i,e)})}}_updateCursor(){let e=this.props.getCursor(this.cursorState);if(this._isMultiCanvasMode()){for(let t of Object.values(this._canvasManager.targets))t.canvas.style.cursor=e;return}let t=this.props.parent||this.canvas;t&&(t.style.cursor=e)}_setDevice(e){var t,i,r;if(this.device=e,this._validateInternalPickingMode(),!this.animationLoop)return;this._setDeviceCanvasContext(e,{syncDrawingBuffer:!!(this.props.gl&&this.props.device!==e)}),this._isMultiCanvasMode()?this._syncCanvasTargets():this.canvas&&!this.canvas.isConnected&&this.props.parent&&this.props.parent.insertBefore(this.canvas,this.props.parent.firstChild),"webgl"===this.device.type&&this.device.setParametersWebGL({blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onDeviceInitialized(this.device),"webgl"===this.device.type&&this.props.onWebGLInitialized(this.device.gl);let o=new n.K;if(o.play(),this.animationLoop.attachTimeline(o),!this._isMultiCanvasMode()){let e=this.canvas&&this._getEventRoot(this.canvas);(0,ee.A)(e),this.eventManager=this._createEventManager(e),this.eventManagers={[P]:this.eventManager}}this.viewManager=new O({timeline:o,eventManager:this.eventManager,eventManagers:this.eventManagers,getCanvasContext:this._isMultiCanvasMode()?this.getCanvasContext.bind(this):void 0,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),pickPosition:this._pickPositionForController.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});let s=this.viewManager.getViewports()[0];this.layerManager=new b(this.device,{deck:this,stats:this.stats,viewport:s,timeline:o}),this.effectManager=new S({deck:this,device:this.device}),this.deckRenderer=new I(this.device,{stats:this.stats}),this.deckPicker=new Z(this.device,{stats:this.stats});let a=(null==(t=this.props.parent)?void 0:t.querySelector(".deck-widgets-root"))||(this._isMultiCanvasMode()?this.props.parent||(null==(i=this.canvas)?void 0:i.parentElement):null)||(null==(r=this.canvas)?void 0:r.parentElement);this.widgetManager=new X({deck:this,parentElement:a}),this.widgetManager.addDefault(new Q),this.setProps({}),this._updateCanvasSize(this._canvasContext),this.props.onLoad()}_drawLayers(e,t){var i,n,r;let{device:o,gl:s}=this.layerManager.context;this.props.onBeforeRender({device:o,gl:s});let a=ed({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()},t);
1if(this._isMultiCanvasMode()&&"screen"===a.pass&&!a.target&&this._canvasManager.order.length)for(let e of this._canvasManager.order){let t=a.viewports.filter(t=>this.viewManager.getCanvasId(t.id)===e);if(!t.length){let t=this._canvasManager.targets[e];this._resizeForCanvasTarget(e),null==(n=this.deckRenderer)||n.renderLayers(eh(ed({},a),{canvasContext:t.presentationContext,target:t.presentationContext.getCurrentFramebuffer(),viewports:[],clearCanvas:!0})),t.presentationContext.present();continue}let r=this._canvasManager.targets[e];this._resizeForCanvasTarget(e);let o=r.presentationContext.getCurrentFramebuffer();null==(i=this.deckRenderer)||i.renderLayers(eh(ed({},a),{canvasContext:r.presentationContext,target:o,viewports:t})),r.presentationContext.present()}else null==(r=this.deckRenderer)||r.renderLayers(a);"screen"===a.pass&&this.widgetManager.onRedraw({viewports:a.viewports,layers:a.layers}),this.props.onAfterRender({device:o,gl:s})}_onRenderFrame(){this._getFrameStats(),this._metricsCounter++%60==0&&(this._getMetrics(),this.stats.reset(),d.A.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCursor(),this.layerManager.updateLayers(),this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(e){let t=this.props.onViewStateChange(e)||e.viewState;this.viewState&&(this.viewState=eh(ed({},this.viewState),{[e.viewId]:t}),!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 t=this.animationLoop.stats;e.get("GPU Time").addTime(t.get("GPU Time").lastTiming),e.get("CPU Time").addTime(t.get("CPU Time").lastTiming)}_getMetrics(){var e,t;let{metrics:i,stats:n}=this;i.fps=n.get("frameRate").getHz(),i.setPropsTime=n.get("setProps Time").time,i.updateAttributesTime=n.get("Update Attributes").time,i.framesRedrawn=n.get("Redraw Count").count,i.pickTime=n.get("pickObject Time").time+n.get("pickMultipleObjects Time").time+n.get("pickObjects Time").time,i.pickCount=n.get("Pick Count").count,i.layersCount=null!=(e=null==(t=this.layerManager)?void 0:t.layers.length)?e:0,i.drawLayersCount=n.get("Layers rendered").lastSampleCount,i.pickLayersCount=n.get("Layers picked").lastSampleCount,i.updateLayersCount=n.get("Layer updates").count,i.updateAttributesCount=n.get("Attributes updated").count,i.gpuTime=n.get("GPU Time").time,i.cpuTime=n.get("CPU Time").time,i.gpuTimePerFrame=n.get("GPU Time").getAverageTime(),i.cpuTimePerFrame=n.get("CPU Time").getAverageTime();let r=ea.a.stats.get("GPU Time and Memory");i.bufferMemory=r.get("Buffer Memory").count,i.textureMemory=r.get("Texture Memory").count,i.renderbufferMemory=r.get("Renderbuffer Memory").count,i.gpuMemory=r.get("GPU Memory").count}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.eventManagers={},this.widgetManager=null,this.tooltip=null,this.animationLoop=null,this._canvasContext=null,this._deviceResizeHandler=null,this.cursorState={isHovering:!1,isDragging:!1},this.stats=new f.A({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,layersCount:0,drawLayersCount:0,updateLayersCount:0,updateAttributesCount:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,pickLayersCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this._hoverPickSequence=0,this._pointerDownPickSequence=0,this._needsRedraw="Initial render",this._canvasManager=new et({createEventManager:e=>this._createEventManager(e),getEventRoot:e=>this._getEventRoot(e)}),this._ownedCanvas=null,this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,canvasId:void 0,event:null,unproject3D:!1},this._lastPointerDownInfo=null,this._lastPointerDownInfoPromise=null,this._onPointerMove=e=>{let{_pickRequest:t}=this,i=this._getCanvasIdFromEvent(e);
1if("pointerleave"===e.type)t.x=-1,t.y=-1,t.radius=0,t.canvasId=i;else{if(e.leftButton||e.rightButton)return;let n=e.offsetCenter;if(!n)return;t.x=n.x,t.y=n.y,t.radius=this.props.pickingRadius,t.canvasId=i}this.layerManager&&(this.layerManager.context.mousePosition={x:t.x,y:t.y}),t.event=e},this._onEvent=e=>{let t=q.tg[e.type],i=e.offsetCenter,n=this._getCanvasIdFromEvent(e);if(!t||!i||!this.layerManager)return;let r=this.layerManager.getLayers(),o=this._getInternalPickingMode();if(o){if("sync"===o){let t="click"===e.type&&this._shouldUnproject3D(r)?this._getFirstPickedInfo(this._pickPointSync(this._getPointPickOptions(i.x,i.y,{unproject3D:!0,canvasId:n},r))):this._getLastPointerDownPickingInfo(i.x,i.y,n,r);this._dispatchPickingEvent(t,e);return}(this._lastPointerDownInfoPromise||Promise.resolve(this._getLastPointerDownPickingInfo(i.x,i.y,n,r))).then(t=>{this._dispatchPickingEvent(t,e)}).catch(e=>{var t,i;return null==(t=(i=this.props).onError)?void 0:t.call(i,e)})}},this._onPointerDown=e=>{var t;let i=e.offsetCenter,n=this._getCanvasIdFromEvent(e);if(!i)return;let r=this._getInternalPickingMode();if(!r)return;let o=(null==(t=this.layerManager)?void 0:t.getLayers())||[],s=++this._pointerDownPickSequence;if("sync"===r){let e=this._pickPointSync({x:i.x,y:i.y,canvasId:n,radius:this.props.pickingRadius}),t=this._getFirstPickedInfo(e);this._lastPointerDownInfo=t,this._lastPointerDownInfoPromise=Promise.resolve(t);return}let a=this._pickPointAsync(this._getPointPickOptions(i.x,i.y,{canvasId:n},o)).then(e=>this._getFirstPickedInfo(e)).then(e=>(s===this._pointerDownPickSequence&&(this._lastPointerDownInfo=e),e)).catch(e=>{var t,r;null==(t=(r=this.props).onError)||t.call(r,e);let a=this.deckPicker&&this.viewManager?this._getLastPointerDownPickingInfo(i.x,i.y,n,o):{};return s===this._pointerDownPickSequence&&(this._lastPointerDownInfo=a),a});this._lastPointerDownInfo=null,this._lastPointerDownInfoPromise=a};let t=e;this.props=ed({},ef,e),e=this.props,this._validateCanvasConfiguration(e),e.viewState&&e.initialViewState&&d.A.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,this._setDeviceCanvasContext(e.device));let i=this.device;!i&&e.gl&&(e.gl instanceof WebGLRenderingContext&&d.A.error("WebGL1 context not supported.")(),i=el.l.attach(e.gl,ed({_cacheShaders:!0,_cachePipelines:!0},this.props.deviceProps))),i||(i=this._createDevice(e)),this.animationLoop=this._createAnimationLoop(i,e),this.setProps(t),e._typedArrayManagerProps&&ei.A.setOptions(e._typedArrayManagerProps),this.animationLoop.start()}}eg.defaultProps=ef,eg.VERSION=es;let ev=eg},13563(e,t,i){i.d(t,{A:()=>et});var n=i(60691),r=i(12210),o=i(73144),s=i(45566),a=i(26489),l=i(21758);class c extends l.A{get value(){return this._value}_onUpdate(){let{time:e,settings:{fromValue:t,toValue:i,duration:n,easing:r}}=this,o=r(e/n);this._value=(0,a.Cc)(t,i,o)}}function u(e,t,i,n,r){let o=t-e;return(i-t)*r+-o*n+o+t}function d(e,t){if(Array.isArray(e)){let i=0;for(let n=0;n<e.length;n++){let r=e[n]-t[n];i+=r*r}return Math.sqrt(i)}return Math.abs(e-t)}class h extends l.A{get value(){return this._currValue}_onUpdate(){let{fromValue:e,toValue:t,damping:i,stiffness:n}=this.settings,{_prevValue:r=e,_currValue:o=e}=this,s=function(e,t,i,n,r){if(Array.isArray(i)){let o=[];for(let s=0;s<i.length;s++)o[s]=u(e[s],t[s],i[s],n,r);return o}return u(e,t,i,n,r)}(r,o,t,i,n),a=d(s,t),l=d(s,o);a<1e-5&&l<1e-5&&(s=t,this.end()),this._prevValue=o,this._currValue=s}}var p=i(1918);let f={interpolation:c,spring:h};class g{get active(){return this.transitions.size>0}add(e,t,i,n){var r,o;let{transitions:a}=this;if(a.has(e)){let i=a.get(e),{value:n=i.settings.fromValue}=i;t=n,this.remove(e)}if(!(n=(0,s.K)(n)))return;let l=f[n.type];if(!l)return void p.A.error("unsupported transition type '".concat(n.type,"'"))();let c=new l(this.timeline);c.start((r=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},n),o=o={fromValue:t,toValue:i},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r)),a.set(e,c)}remove(e){let{transitions:t}=this;t.has(e)&&(t.get(e).cancel(),t.delete(e))}update(){let e={};for(let[t,i]of this.transitions)i.update(),e[t]=i.value,i.inProgress||this.remove(t);return e}clear(){for(let e of this.transitions.keys())this.remove(e)}constructor(e){this.transitions=new Map,this.timeline=e}}var v=i(53043),m=i(17652),y=i(26758),b=i(22708),w=i(97252);function _(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function P(e,t){if(!t)return e;let i=_({},e,t);if("defines"in t&&(i.defines=_({},e.defines,t.defines)),"modules"in t&&(i.modules=(e.modules||[]).concat(t.modules),t.modules.some(e=>"project64"===e.name))){let e=i.modules.findIndex(e=>"project32"===e.name);e>=0&&i.modules.splice(e,1)}if("inject"in t)if(e.inject){let n=_({},e.inject);for(let e in t.inject)n[e]=(n[e]||"")+t.inject[e];i.inject=n}else i.inject=t.inject;return i}var O=i(25514),j=i(17390),x=i(69798),C=i(70008),S=i(38550);function k(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let M={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},A={};var E=i(59377);function T(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}let I={boolean:{validate:(e,t)=>!0,equal:(e,t,i)=>!!e==!!t},number:{validate:(e,t)=>Number.isFinite(e)&&(!("max"in t)||e<=t.max)&&(!("min"in t)||e>=t.min)},color:{validate:(e,t)=>t.optional&&!e||R(e)&&(3===e.length||4===e.length),equal:(e,t,i)=>(0,E.b)(e,t,1)},accessor:{validate(e,t){let i=L(e);return"function"===i||i===L(t.value)},equal:(e,t,i)=>"function"==typeof t||(0,E.b)(e,t,1)},array:{validate:(e,t)=>t.optional&&!e||R(e),equal(e,t,i){let{compare:n}=i,r=Number.isInteger(n)?n:+!!n;return n?(0,E.b)(e,t,r):e===t}},object:{equal(e,t,i){if(i.ignore)return!0;let{compare:n}=i,r=Number.isInteger(n)?n:+!!n;return n?(0,E.b)(e,t,r):e===t}},function:{validate:(e,t)=>t.optional&&!e||"function"==typeof e,equal:(e,t,i)=>!i.compare&&!1!==i.ignore||e===t},data:{transform:(e,t,i)=>{if(!e)return e;let{dataTransform:n}=i.props;return n?n(e):"string"==typeof e.shape&&e.shape.endsWith("-table")&&Array.isArray(e.data)?e.data:e}},image:{transform:(e,t,i)=>{let n=i.context;return n&&n.device?function(e,t,i,n){var r,o;if(i instanceof S.g)return i;i.constructor&&"Object"!==i.constructor.name&&(i={data:i});let s=null;i.compressed&&(s={minFilter:"linear",mipmapFilter:i.data.length>1?"nearest":"linear"});let{width:a,height:l}=i.data,c=t.createTexture((r=k({},i),o=o={sampler:k({},M,s,n),mipLevels:t.getMipLevelCount(a,l)},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t}
1)(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r));return"webgl"===t.type?c.generateMipmapsWebGL():"webgpu"===t.type&&t.generateMipmapsWebGPU(c),A[c.id]=e,c}(i.id,n.device,e,T({},t.parameters,i.props.textureParameters)):null},release:(e,t,i)=>{var n;n=i.id,e&&e instanceof S.g&&A[e.id]===n&&(e.delete(),delete A[e.id])}}};function D(e,t){return"type"in t?T({name:e},I[t.type],t):"value"in t?T({name:e,type:L(t.value)},t):{name:e,type:"object",value:t}}function R(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function L(e){return R(e)?"array":null===e?"null":typeof e}function z(e,t){return Object.prototype.hasOwnProperty.call(e,t)}let V=0;class F{clone(e){let{props:t}=this,i={};for(let e in t[m.jA])e in t[m.vf]?i[e]=t[m.vf][e]:e in t[m.YN]&&(i[e]=t[m.YN][e]);return new this.constructor(function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t,i,e))}constructor(...e){this.props=function(e,t){let i;for(let e=t.length-1;e>=0;e--){let n=t[e];"extensions"in n&&(i=n.extensions)}let n=Object.create(function e(t,i){var n,r;if(!(t instanceof N.constructor))return{};let o="_mergedDefaultProps";if(i)for(let e of i){let t=e.constructor;t&&(o+=":".concat(t.extensionName||t.name))}let s=z(n=t,r=o)&&n[r];return s||(t[o]=function(t,i){var n;let r;if(!t.prototype)return null;let o=e(Object.getPrototypeOf(t)),s=function(e){let t={},i={},n={};for(let[r,o]of Object.entries(e)){let e=null==o?void 0:o.deprecatedFor;if(e)n[r]=Array.isArray(e)?e:[e];else{let e=function(e,t){switch(L(t)){case"object":return D(e,t);case"array":return D(e,{type:"array",value:t,compare:!1});case"boolean":return D(e,{type:"boolean",value:t});case"number":return D(e,{type:"number",value:t});case"function":return D(e,{type:"function",value:t,compare:!0});default:return{name:e,type:"unknown",value:t}}}(r,o);t[r]=e,i[r]=e.value}}return{propTypes:t,defaultProps:i,deprecatedProps:n}}(function(e,t){return z(e,t)&&e[t]}(t,"defaultProps")||{}),a=Object.assign(Object.create(null),o,s.defaultProps),l=Object.assign(Object.create(null),null==o?void 0:o[m.fW],s.propTypes),c=Object.assign(Object.create(null),null==o?void 0:o[m.uH],s.deprecatedProps);for(let t of i){let i=e(t.constructor);i&&(Object.assign(a,i),Object.assign(l,i[m.fW]),Object.assign(c,i[m.uH]))}return Object.defineProperties(a,{id:{writable:!0,value:((r=(n=t).componentName)||p.A.warn("".concat(n.name,".componentName not specified"))(),r||n.name)}}),function(e,t){let i={},n={};for(let e in t){let r=t[e],{name:o,value:s}=r;r.async&&(i[o]=s,n[o]=function(e){return{enumerable:!0,set(t){"string"==typeof t||t instanceof Promise||(0,C.Td)(t)?this[m.YN][e]=t:this[m.vf][e]=t},get(){if(this[m.vf]){if(e in this[m.vf])return this[m.vf][e]||this[m.jA][e];if(e in this[m.YN]){let t=this[m.r3]&&this[m.r3].internalState;if(t&&t.hasAsyncProp(e))return t.getAsyncProp(e)||this[m.jA][e]}}return this[m.jA][e]}}}(o))}e[m.jA]=i,e[m.YN]={},Object.defineProperties(e,n)}(a,l),function(e,t){for(let i in t)Object.defineProperty(e,i,{enumerable:!1,set(e){let n="".concat(this.id,": ").concat(i);for(let n of t[i])z(this,n)||(this[n]=e);p.A.deprecated(n,t[i].join("/"))()}})}(a,c),a[m.fW]=l,a[m.uH]=c,0!==i.length||z(t,"_propTypes")||(t._propTypes=l),a}(t,i||[]))}(e.constructor,i));n[m.r3]=e,n[m.YN]={},n[m.vf]={};for(let e=0;e<t.length;++e){let i=t[e];for(let e in i)n[e]=i[e]}return Object.freeze(n),n}(this,e),this.id=this.props.id,this.count=V++}}F.componentName="Component",F.defaultProps={};let N=F,U=Object.freeze({});class B{finalize(){for(let e in this.asyncProps){let t=this.asyncProps[e];t&&t.type&&t.type.release&&t.type.release(t.resolvedValue,t.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||U}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(e){return e in this.asyncProps}getAsyncProp(e){let t=this.asyncProps[e];return t&&t.resolvedValue}isAsyncPropLoading(e){if(e){let t=this.asyncProps[e];return!!(t&&t.pendingLoadCount>0&&t.pendingLoadCount!==t.resolvedLoadCount)}for(let e in this.asyncProps)if(this.isAsyncPropLoading(e))return!0;return!1}reloadAsyncProp(e,t){this._watchPromise(e,Promise.resolve(t))}setAsyncProps(e){this.component=e[m.r3]||this.component;let t=e[m.vf]||{},i=e[m.YN]||e,n=e[m.jA]||{};for(let e in t){let i=t[e];this._createAsyncPropData(e,n[e]),this._updateAsyncProp(e,i),t[e]=this.getAsyncProp(e)}for(let e in i){let t=i[e];this._createAsyncPropData(e,n[e]),this._updateAsyncProp(e,t)}}_fetch(e,t){return null}_onResolve(e,t){}_onError(e,t){}_updateAsyncProp(e,t){if(this._didAsyncInputValueChange(e,t)){if("string"==typeof t&&(t=this._fetch(e,t)),t instanceof Promise)return void this._watchPromise(e,t);if((0,C.Td)(t))return void this._resolveAsyncIterable(e,t);this._setPropValue(e,t)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps)for(let e in this.oldAsyncProps=Object.create(this.oldProps),this.asyncProps)Object.defineProperty(this.oldAsyncProps,e,{enumerable:!0,value:this.oldProps[e]})}_didAsyncInputValueChange(e,t){let i=this.asyncProps[e];return t!==i.resolvedValue&&t!==i.lastValue&&(i.lastValue=t,!0)}_setPropValue(e,t){this._freezeAsyncOldProps();let i=this.asyncProps[e];
1i&&(t=this._postProcessValue(i,t),i.resolvedValue=t,i.pendingLoadCount++,i.resolvedLoadCount=i.pendingLoadCount)}_setAsyncPropValue(e,t,i){let n=this.asyncProps[e];n&&i>=n.resolvedLoadCount&&void 0!==t&&(this._freezeAsyncOldProps(),n.resolvedValue=t,n.resolvedLoadCount=i,this.onAsyncPropUpdated(e,t))}_watchPromise(e,t){let i=this.asyncProps[e];if(i){i.pendingLoadCount++;let n=i.pendingLoadCount;t.then(t=>{this.component&&(t=this._postProcessValue(i,t),this._setAsyncPropValue(e,t,n),this._onResolve(e,t))}).catch(t=>{this._onError(e,t)})}}async _resolveAsyncIterable(e,t){if("data"!==e)return void this._setPropValue(e,t);let i=this.asyncProps[e];if(!i)return;i.pendingLoadCount++;let n=i.pendingLoadCount,r=[],o=0;for await(let i of t){if(!this.component)return;let{dataTransform:t}=this.component.props;Object.defineProperty(r=t?t(i,r):r.concat(i),"__diff",{enumerable:!1,value:[{startRow:o,endRow:r.length}]}),o=r.length,this._setAsyncPropValue(e,r,n)}this._onResolve(e,r)}_postProcessValue(e,t){let i=e.type;return i&&this.component&&(i.release&&i.release(e.resolvedValue,i,this.component),i.transform)?i.transform(t,i,this.component):t}_createAsyncPropData(e,t){if(!this.asyncProps[e]){let i=this.component&&this.component.props[m.fW];this.asyncProps[e]={type:i&&i[e],lastValue:null,resolvedValue:t,pendingLoadCount:0,resolvedLoadCount:0}}}constructor(e){this.component=e,this.asyncProps={},this.onAsyncPropUpdated=()=>{},this.oldProps=null,this.oldAsyncProps=null}}class G extends B{get layer(){return this.component}_fetch(e,t){let i=this.layer,n=null==i?void 0:i.props.fetch;return n?n(t,{propName:e,layer:i}):super._fetch(e,t)}_onResolve(e,t){let i=this.layer;if(i){let n=i.props.onDataLoad;"data"===e&&n&&n(t,{propName:e,layer:i})}}_onError(e,t){let i=this.layer;i&&i.raiseError(t,"loading ".concat(e," of ").concat(this.layer))}constructor({attributeManager:e,layer:t}){super(t),this.attributeManager=e,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1,this.disabledPickingIndices=[]}}var W=i(86083),H=i(2043);function Z(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function q(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let Y=Object.freeze([]),K=(0,w.A)(e=>{let{oldViewport:t,viewport:i}=e;return t.equals(i)}),X=new Uint8ClampedArray(0);function J(e){return e.rowIndexes||e.pickingColors||e.instancePickingColors}function $(e){return e.rowIndexes}function Q(e){return e.pickingColors||e.instancePickingColors}class ee extends N{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(){let e=this.constructor.layerName||this.constructor.name;return"".concat(e,"({id: '").concat(this.props.id,"'})")}project(e){(0,b.A)(this.internalState);let t=this.internalState.viewport||this.context.viewport,i=(0,O.w)(e,{viewport:t,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[n,r,o]=(0,W.VJ)(i,t.pixelProjectionMatrix);return 2===e.length?[n,r]:[n,r,o]}unproject(e){return(0,b.A)(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(e)}projectPosition(e,t){(0,b.A)(this.internalState);let i=this.internalState.viewport||this.context.viewport;return(0,O.R)(e,Z({viewport:i,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem},t))}get isComposite(){return!1}get isDrawable(){return!0}setState(e){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,e),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return!!this.internalState&&!this.internalState.isAsyncPropLoading()}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){let e=this.state;return e&&(e.models||e.model&&[e.model])||[]}setShaderModuleProps(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];for(let e of this.getModels())e.shaderInputs.setProps(...t)}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"default"===e||"lnglat"===e||"cartesian"===e}onHover(e,t){return!!this.props.onHover&&(this.props.onHover(e,t)||!1)}onClick(e,t){return!!this.props.onClick&&(this.props.onClick(e,t)||!1)}nullPickingColor(){return[0,0,0]}encodePickingColor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t[0]=e+1&255,t[1]=e+1>>8&255,t[2]=e+1>>8>>8&255,t}decodePickingColor(e){(0,b.A)(e instanceof Uint8Array);let[t,i,n]=e;return t+256*i+65536*n-1}getNumInstances(){if(Number.isFinite(this.props.numInstances))return this.props.numInstances;if(this.state&&void 0!==this.state.numInstances)return this.state.numInstances;var e,t,i=this.props.data;if(null===(e=i)||"object"!=typeof e)throw Error("count(): argument not an object");
1if("function"==typeof i.count)return i.count();if(Number.isFinite(i.size))return i.size;if(Number.isFinite(i.length))return i.length;if(null!==(t=i)&&"object"==typeof t&&t.constructor===Object)return Object.keys(i).length;throw Error("count(): argument not a container")}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){var e;return null==(e=this.getAttributeManager())?void 0:e.getBounds(["positions","instancePositions"])}getShaders(e){for(let t of(e=P(e,{disableWarnings:!0,modules:this.context.defaultShaderModules}),this.props.extensions))e=P(e,t.getShaders.call(this,t));return e}shouldUpdateState(e){return e.changeFlags.propsOrDataChanged}updateState(e){let t=this.getAttributeManager(),{dataChanged:i}=e.changeFlags;if(i&&t)if(Array.isArray(i))for(let e of i)t.invalidateAll(e);else t.invalidateAll();if(t){let{props:i}=e,n=this.internalState.hasPickingBuffer,r=Number.isInteger(i.highlightedObjectIndex)||!!i.pickable||i.extensions.some(e=>e.getNeedsPickingBuffer.call(this,e));if(n!==r){this.internalState.hasPickingBuffer=r;let e=J(t.attributes);e&&(r&&e.constant&&(e.constant=!1,t.invalidate(e.id)),e.value||r||(e.constant=!0,e.value=$(t.attributes)?[x.Z1]:[0,0,0]))}}}finalizeState(e){for(let e of this.getModels())e.destroy();let t=this.getAttributeManager();t&&t.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(e){for(let t of this.getModels())t.draw(e.renderPass)}getPickingInfo(e){let{info:t,mode:i,sourceLayer:n}=e,{index:r}=t;return r>=0&&Array.isArray(this.props.data)&&(t.object=this.props.data[r]),t}raiseError(e,t){var i,n,r,o;t&&(e=Error("".concat(t,": ").concat(e.message),{cause:e})),(null==(i=(n=this.props).onError)?void 0:i.call(n,e))||null==(o=this.context)||null==(r=o.onError)||r.call(o,e,this)}getNeedsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1};return this._getNeedsRedraw(e)}needsUpdate(){return!!this.internalState&&(this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()))}hasUniformTransition(){var e;return(null==(e=this.internalState)?void 0:e.uniformTransitions.active)||!1}activateViewport(e){if(!this.internalState)return;let t=this.internalState.viewport;this.internalState.viewport=e,t&&K({oldViewport:t,viewport:e})||(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"all",t=this.getAttributeManager();t&&("all"===e?t.invalidateAll():t.invalidate(e))}updateAttributes(e){let t=!1;for(let i in e)e[i].layoutChanged()&&(t=!0);for(let i of this.getModels())this._setModelAttributes(i,e,t)}_updateAttributes(){let e=this.getAttributeManager();if(!e)return;let t=this.props,i=this.getNumInstances(),n=this.getStartIndices();e.update({data:t.data,numInstances:i,startIndices:n,props:t,transitions:t.transitions,buffers:t.data.attributes,context:this});let r=e.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(r)}_updateAttributeTransition(){let e=this.getAttributeManager();e&&e.updateTransition()}_updateUniformTransition(){let{uniformTransitions:e}=this.internalState;if(e.active){let t=e.update(),i=Object.create(this.props);for(let e in t)Object.defineProperty(i,e,{value:t[e]});return i}return this.props}calculateInstancePickingColors(e,t){let{numInstances:i}=t;if(e.constant)return;let n=Math.floor(X.length/4);this.internalState.usesPickingColorCache=!0;let r=i>0&&0===X[0];if(n<i||r){i>0xffffff&&p.A.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")();let e=Math.floor((X=j.A.allocate(X,i,{size:4,copy:!0,maxCount:Math.max(i,0xffffff)})).length/4),t=[0,0,0],o=r?0:n;for(let i=o;i<e;i++)this.encodePickingColor(i,t),X[4*i+0]=t[0],X[4*i+1]=t[1],X[4*i+2]=t[2],X[4*i+3]=0}e.value=X.subarray(0,4*i)}_setModelAttributes(e,t){var i;let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!Object.keys(t).length)return;let o=this.getAttributeManager();if(null==o?void 0:o.hasBufferGroups())return void this._setGroupedModelAttributes(e,o,t);if(r){let i=this.getAttributeManager();e.setBufferLayout(i.getBufferLayouts(e)),t=i.getAttributes()}let s=(null==(i=e.userData)?void 0:i.excludeAttributes)||{},a={},l={};for(let i in t){if(s[i])continue;let r=t[i].getValue();for(let o in r){let s=r[o];s instanceof n.h?t[i].settings.isIndexed?e.setIndexBuffer(s):a[o]=s:s&&(l[o]=s)}}e.setAttributes(a),e.setConstantAttributes(l)}_setGroupedModelAttributes(e,t,i){var r;let o=(null==(r=e.userData)?void 0:r.excludeAttributes)||{},s=t.getBufferGroupBindings(i,e,o);e.setBufferLayout(s.bufferLayouts);let a=Z({},s.buffers),l={},c=t.getAttributes();for(let t in c){if(o[t]||s.groupedAttributeIds.has(t))continue;let i=c[t],r=i.getValue();for(let t in r){let o=r[t];o instanceof n.h?i.settings.isIndexed?e.setIndexBuffer(o):a[t]=o:o&&(l[t]=o)}}e.setAttributes(a),e.setConstantAttributes(l)}disablePickingIndex(e){let t=this.props.data;if(!("attributes"in t))return void this._disablePickingIndex(e);let i=this.getAttributeManager().attributes,n=$(i),r=Q(i),o=n&&t.attributes&&t.attributes[n.id];if(o&&o.value){let i=o.value;for(let r=0;r<t.length;r++)i[n.getVertexOffset(r)]===e&&this._disablePickingIndex(r);return}let s=r&&t.attributes&&t.attributes[r.id];
1if(s&&s.value){let i=s.value,n=this.encodePickingColor(e);for(let e=0;e<t.length;e++){let t=r.getVertexOffset(e);i[t]===n[0]&&i[t+1]===n[1]&&i[t+2]===n[2]&&this._disablePickingIndex(e)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){let t=this.getAttributeManager().attributes,i=$(t);if(i){let t=i.getVertexOffset(e),n=new Uint32Array(i.getVertexOffset(e+1)-t);n.fill(x.Z1),i.buffer.write(n,t*n.BYTES_PER_ELEMENT);return}let n=Q(t);if(!n){this.internalState&&(0,x.uz)(this.internalState.disabledPickingIndices,e);return}let r=n.getVertexOffset(e),o=n.getVertexOffset(e+1);n.buffer.write(new Uint8Array(o-r),r)}restorePickingColors(){let e=this.getAttributeManager().attributes,t=J(e);if(!t){this.internalState&&(this.internalState.disabledPickingIndices.length=0);return}let i=Q(e);this.internalState.usesPickingColorCache&&i&&i.value.buffer!==X.buffer&&(i.value=X.subarray(0,i.value.length)),t.updateSubBuffer({startOffset:0})}_initialize(){(0,b.A)(!this.internalState),(0,y.A)("layer.initialize",this);let e=this._getAttributeManager();for(let t of(this.internalState=new G({attributeManager:e,layer:this}),this._clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:()=>(p.A.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),e)}),this.internalState.uniformTransitions=new g(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context),this.props.extensions))t.initializeState.call(this,this.context,t);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(e){(0,y.A)("layer.matched",this,this===e);let{state:t,internalState:i}=e;this!==e&&(this.internalState=i,this.state=t,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}_update(){let e=this.needsUpdate();if((0,y.A)("layer.update",this,e),!e)return;this.context.stats.get("Layer updates").incrementCount();let t=this.props,i=this.context,n=this.internalState,r=i.viewport,o=this._updateUniformTransition();n.propsInTransition=o,i.viewport=n.viewport||r,this.props=o;try{let e=this._getUpdateParams(),t=this.getModels();if(i.device)this.updateState(e);else try{this.updateState(e)}catch(e){}for(let t of this.props.extensions)t.updateState.call(this,e,t);this.setNeedsRedraw(),this._updateAttributes();let n=this.getModels()[0]!==t[0];this._postUpdate(e,n)}finally{i.viewport=r,this.props=t,this._clearChangeFlags(),n.needsUpdate=!1,n.resetOldProps()}}_finalize(){for(let e of((0,y.A)("layer.finalize",this),this.finalizeState(this.context),this.props.extensions))e.finalizeState.call(this,this.context,e)}_drawLayer(e){let{renderPass:t,shaderModuleProps:i=null,uniforms:n={},parameters:o={}}=e;this._updateAttributeTransition();let s=this.props,a=this.context;this.props=this.internalState.propsInTransition||s;try{i&&this.setShaderModuleProps(i);let{getPolygonOffset:e}=this.props,s=e&&e(n)||[0,0];a.device instanceof r.WebGLDevice&&a.device.setParametersWebGL({polygonOffset:s});let l=a.device instanceof r.WebGLDevice?null:function(e){let{blendConstant:t}=e,i=function(e,t){if(null==e)return{};var i,n,r,o={};if("u">typeof Reflect&&Reflect.ownKeys){for(r=0,i=Reflect.ownKeys(Object(e));r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}if(o=function(e,t){if(null==e)return{};var i,n,r={},o=Object.getOwnPropertyNames(e);for(n=0;n<o.length;n++)i=o[n],!(t.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i]);return r}(e,t),Object.getOwnPropertySymbols)for(r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)n=i[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,["blendConstant"]);return t?{pipelineParameters:i,renderPassParameters:{blendConstant:t}}:{pipelineParameters:i}}(o);if(function(e,t,i,n){for(let r of e)"webgpu"===r.device.type?(function(e,t){var i,n,r;let o=t.props.framebuffer||(null!=(i=t.framebuffer)?i:null);if(!o)return;let s=o.colorAttachments.map(e=>{var t,i;return null!=(t=null==e||null==(i=e.texture)?void 0:i.format)?t:null}),a=null==(r=o.depthStencilAttachment)||null==(n=r.texture)?void 0:n.format;(!function(e,t){if(e===t)return!0;
1if(!e||!t||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}(e.props.colorAttachmentFormats,s)||e.props.depthStencilAttachmentFormat!==a)&&(e.props.colorAttachmentFormats=s,e.props.depthStencilAttachmentFormat=a,e._setPipelineNeedsUpdate("attachment formats"))}(r,t),r.setParameters(Z({},r.parameters,null==n?void 0:n.pipelineParameters))):r.setParameters(i)}(this.getModels(),t,o,l),a.device instanceof r.WebGLDevice)a.device.withParametersWebGL(o,()=>{let e={renderPass:t,shaderModuleProps:i,uniforms:n,parameters:o,context:a};for(let t of this.props.extensions)t.draw.call(this,e,t);this.draw(e)});else{(null==l?void 0:l.renderPassParameters)&&t.setParameters(l.renderPassParameters);let e={renderPass:t,shaderModuleProps:i,uniforms:n,parameters:o,context:a};for(let t of this.props.extensions)t.draw.call(this,e,t);this.draw(e)}}finally{this.props=s}}getChangeFlags(){var e;return null==(e=this.internalState)?void 0:e.changeFlags}setChangeFlags(e){if(!this.internalState)return;let{changeFlags:t}=this.internalState;for(let i in e)if(e[i]){let n=!1;if("dataChanged"===i){let r=e[i],o=t[i];r&&Array.isArray(o)&&(t.dataChanged=Array.isArray(r)?o.concat(r):r,n=!0)}t[i]||(t[i]=e[i],n=!0),n&&(0,y.A)("layer.changeFlag",this,i,e)}let i=!!(t.dataChanged||t.updateTriggersChanged||t.propsChanged||t.extensionsChanged);t.propsOrDataChanged=i,t.somethingChanged=i||t.viewportChanged||t.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(e,t){let i=(0,v.mg)(e,t);if(i.updateTriggersChanged)for(let e in i.updateTriggersChanged)i.updateTriggersChanged[e]&&this.invalidateAttribute(e);if(i.transitionsChanged)for(let r in i.transitionsChanged){var n;this.internalState.uniformTransitions.add(r,t[r],e[r],null==(n=e.transitions)?void 0:n[r])}return this.setChangeFlags(i)}validateProps(){(0,v.zo)(this.props)}updateAutoHighlight(e){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(e)}_updateAutoHighlight(e){let t={highlightedObjectColor:e.picked?e.color:null},{highlightColor:i}=this.props;e.picked&&"function"==typeof i&&(t.highlightColor=i(e)),this.setShaderModuleProps({picking:t}),this.setNeedsRedraw()}_getAttributeManager(){let e=this.context;return new o.A(e.device,{id:this.props.id,stats:e.stats,timeline:e.timeline})}_postUpdate(e,t){let{props:i,oldProps:n}=e,r=this.state.model;(null==r?void 0:r.isInstanced)&&r.setInstanceCount(this.getNumInstances());let{autoHighlight:o,highlightedObjectIndex:s,highlightColor:a}=i;if(t||n.autoHighlight!==o||n.highlightedObjectIndex!==s||n.highlightColor!==a){let e={};Array.isArray(a)&&(e.highlightColor=a),(t||n.autoHighlight!==o||s!==n.highlightedObjectIndex)&&(e.highlightedObjectColor=Number.isFinite(s)&&s>=0?this.encodePickingColor(s):null),this.setShaderModuleProps({picking:e})}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(e){if(!this.internalState)return!1;let t=!1;t=this.internalState.needsRedraw&&this.id;let i=this.getAttributeManager(),n=!!i&&i.getNeedsRedraw(e);if(t=t||n)for(let e of this.props.extensions)e.onNeedsRedraw.call(this,e);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!e.clearRedrawFlags,t}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}constructor(){super(...arguments),this.internalState=null,this.lifecycle=m.VD.NO_STATE,this.parent=null}}ee.defaultProps={data:{type:"data",value:Y,async:!0},dataComparator:{type:"function",value:null,optional:!0},_dataDiff:{type:"function",value:e=>e&&e.__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:(e,t)=>{let{propName:i,layer:n,loaders:r,loadOptions:o,signal:s}=t,{resourceManager:a}=n.context;if(o=o||n.getLoadOptions(),r=r||n.props.loaders,s){var l;o=q(Z({},o),{core:q(Z({},null==o?void 0:o.core),{fetch:q(Z({},null==o||null==(l=o.core)?void 0:l.fetch),{signal:s})})})}let c=a.contains(e);return(c||o||(a.add({resourceId:e,data:(0,H.H)(e,r),persistent:!1}),c=!0),c)?a.subscribe({resourceId:e,onChange:e=>{var t;return null==(t=n.internalState)?void 0:t.reloadAsyncProp(i,e)},consumerId:n.id,requestId:i}):(0,H.H)(e,r,o)}},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:"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:e=>{let{layerIndex:t}=e;return[0,-(100*t)]}},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}},ee.layerName="Layer";let et=ee},64244(e,t,i){i.d(t,{x:()=>o});var n=i(59377),r=i(44855);class o{setProps(e){let t=this.props,i=this.rootElement;i&&t.className!==e.className&&(t.className&&i.classList.remove(t.className),e.className&&i.classList.add(e.className)),i&&!(0,n.b)(t.style,e.style,1)&&((0,r.h)(i,t.style),(0,r.Z)(i,e.style)),Object.assign(this.props,e),this.updateHTML()}updateHTML(){this.rootElement&&this.onRenderHTML(this.rootElement)}get viewIds(){var e,t;return this.viewId?[this.viewId]:null!=(e=null==(t=this.deck)?void 0:t.getViews().map(e=>e.id))?e:[]}getViewState(e){var t,i;return(null==(i=this.deck)||null==(t=i.viewManager)?void 0:t.getViewState(e))||{}}setViewState(e,t){var i;null==(i=this.deck)||i._onViewStateChange({viewId:e,viewState:t,interactionState:{}})}onCreateRootElement(){let e=["deck-widget",this.className,this.props.className],t=document.createElement("div");return e.filter(e=>"string"==typeof e&&e.length>
10).forEach(e=>t.classList.add(e)),(0,r.Z)(t,this.props.style),t}_onAdd(e){var t;return null!=(t=this.onAdd(e))?t:this.onCreateRootElement()}onAdd(e){}onRemove(){}onViewportChange(e){}onRedraw(e){}onHover(e,t){}onClick(e,t){}onDrag(e,t){}onDragStart(e,t){}onDragEnd(e,t){}constructor(e){this.viewId=null,this.props=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},this.constructor.defaultProps,e),this.id=this.props.id}}o.defaultProps={id:"widget",style:{},_container:null,className:""}},17652(e,t,i){i.d(t,{VD:()=>n,YN:()=>l,fW:()=>o,jA:()=>a,r3:()=>r,uH:()=>s,vf:()=>c});let n={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"},r=Symbol.for("component"),o=Symbol.for("propTypes"),s=Symbol.for("deprecatedProps"),a=Symbol.for("asyncPropDefaults"),l=Symbol.for("asyncPropOriginal"),c=Symbol.for("asyncPropResolved")},53043(e,t,i){i.d(t,{Me:()=>s,mg:()=>o,zo:()=>r});var n=i(17652);function r(e){let t=e[n.fW];for(let i in t){let n=t[i],{validate:r}=n;if(r&&!r(e[i],n))throw Error("Invalid prop ".concat(i,": ").concat(e[i]))}}function o(e,t){let i=s({newProps:e,oldProps:t,propTypes:e[n.fW],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),r=function(e,t){if(null===t)return"oldProps is null, initial diff";let i=!1,{dataComparator:n,_dataDiff:r}=e;return n?n(e.data,t.data)||(i="Data comparator detected a change"):e.data!==t.data&&(i="A new data container was supplied"),i&&r&&(i=r(e.data,t.data)||i),i}(e,t),o=!1;return r||(o=function(e,t){if(null===t||"all"in e.updateTriggers&&l(e,t,"all"))return{all:!0};let i={},n=!1;for(let r in e.updateTriggers)"all"!==r&&l(e,t,r)&&(i[r]=!0,n=!0);return!!n&&i}(e,t)),{dataChanged:r,propsChanged:i,updateTriggersChanged:o,extensionsChanged:function(e,t){if(null===t)return!0;let i=t.extensions,{extensions:n}=e;if(n===i)return!1;if(!i||!n||n.length!==i.length)return!0;for(let e=0;e<n.length;e++)if(!n[e].equals(i[e]))return!0;return!1}(e,t),transitionsChanged:function(e,t){if(!e.transitions)return!1;let i={},r=e[n.fW],o=!1;for(let n in e.transitions){let s=r[n],l=s&&s.type;("number"===l||"color"===l||"array"===l)&&a(e[n],t[n],s)&&(i[n]=!0,o=!0)}return!!o&&i}(e,t)}}function s(e){let{newProps:t,oldProps:i,ignoreProps:n={},propTypes:r={},triggerName:o="props"}=e;if(i===t)return!1;if("object"!=typeof t||null===t||"object"!=typeof i||null===i)return"".concat(o," changed shallowly");for(let e of Object.keys(t))if(!(e in n)){if(!(e in i))return"".concat(o,".").concat(e," added");let n=a(t[e],i[e],r[e]);if(n)return"".concat(o,".").concat(e," ").concat(n)}for(let e of Object.keys(i))if(!(e in n)){if(!(e in t))return"".concat(o,".").concat(e," dropped");if(!Object.hasOwnProperty.call(t,e)){let n=a(t[e],i[e],r[e]);if(n)return"".concat(o,".").concat(e," ").concat(n)}}return!1}function a(e,t,i){let n=i&&i.equal;return n&&!n(e,t,i)||!n&&(n=e&&t&&e.equals)&&!n.call(e,t)?"changed deeply":n||t===e?null:"changed shallowly"}function l(e,t,i){let n=e.updateTriggers[i];n=null==n?{}:n;let r=t.updateTriggers[i];return s({oldProps:r=null==r?{}:r,newProps:n,triggerName:i})}},57618(e,t,i){i.d(t,{A:()=>o});var n=i(22241);let r={depthWriteEnabled:!0,depthCompare:"less-equal",blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"one-minus-src-alpha",blendAlphaOperation:"add",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha"};class o extends n.A{render(e){this._render(e)}_render(e){var t,i,n,r;let{canvasContext:o=this.device.canvasContext}=e,s=null!=(t=e.target)?t:o.getCurrentFramebuffer(),[a,l]=o.getDrawingBufferSize(),c=null==(i=e.clearCanvas)||i,u=null!=(n=e.clearColor)?n:!!c&&[0,0,0,0],d=!!c&&1,h=!!c&&0,p=null!=(r=e.colorMask)?r:15,f={viewport:[0,0,a,l]};e.colorMask&&(f.colorMask=p),e.scissorRect&&(f.scissorRect=e.scissorRect);let{shaderModuleProps:g,viewports:v,views:m,onViewportActive:y,clearStack:b=!0}=e,w=e.pass||"unknown",_="webgpu"===this.device.type;b&&(this._lastRenderIndex=-1);let P=[];if(!v.length)return this.device.beginRenderPass({framebuffer:s,parameters:f,clearColor:u,clearDepth:d,clearStencil:h}).end(),this.device.submit(),P;try{for(let t of v){null==y||y(t);let i=this._getDrawLayerParams(t,e),n=m&&m[t.id],r=t.subViewports||[t];for(let t of _?r.map(e=>[e]):[r]){let r=this.device.beginRenderPass({framebuffer:s,parameters:f,clearColor:u,clearDepth:d,clearStencil:h});try{for(let a of t){let t=this._drawLayersInViewport(r,{target:s,canvasContext:o,shaderModuleProps:g,viewport:
1a,view:n,pass:w,layers:e.layers,isPicking:e.isPicking},i);P.push(t)}}finally{r.end(),_&&this.device.submit()}u=!1,d=!1,h=!1}}return P}finally{_||this.device.submit()}}_getDrawLayerParams(e,t){let{layers:i,pass:n,isPicking:o=!1,layerFilter:s,cullRect:a,views:l,effects:c,canvasContext:u=this.device.canvasContext,shaderModuleProps:d}=t,h=arguments.length>2&&void 0!==arguments[2]&&arguments[2],p=[],f=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=(o,s)=>{let a,l=o.props._offset,c=o.id,u=o.parent&&o.parent.id;if(!u||u in i||r(o.parent,!1),u in n){let t=n[u]=n[u]||e(i[u],i);a=t(o,s),n[c]=t}else Number.isFinite(l)?(a=l+(i[u]||0),n[c]=null):a=t;return s&&a>=t&&(t=a+1),i[c]=a,a};return r}(this._lastRenderIndex+1),g={layer:i[0],viewport:e,isPicking:o,renderPass:n,cullRect:a},v={};for(let t=0;t<i.length;t++){let o=i[t],a=this._shouldDrawLayer(o,g,s,v),b={shouldDrawLayer:a};if(a&&!h){var m,y;b.shouldDrawLayer=!0,b.layerRenderIndex=f(o,a),b.shaderModuleProps=this._getShaderModuleProps(o,c,n,u,d),b.layerParameters=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},"webgpu"===o.context.device.type?r:null,null==(m=o.context.deck)?void 0:m.props.parameters,null==l||null==(y=l[e.id])?void 0:y.props.parameters,this.getLayerParameters(o,t,e))}p[t]=b}return p}_drawLayersInViewport(e,t,i){let{layers:n,shaderModuleProps:r,pass:o,target:s,canvasContext:a,viewport:l,view:c,isPicking:u}=t,d=function(e,t){var i,n;let{canvasContext:r=e.canvasContext,shaderModuleProps:o,target:s,viewport:a}=t,l=null!=(i=null==o||null==(n=o.project)?void 0:n.devicePixelRatio)?i:r.cssToDeviceRatio(),[,c]=r.getDrawingBufferSize(),u=s?s.height:c;return[a.x*l,u-(a.y+a.height)*l,a.width*l,a.height*l]}(this.device,{canvasContext:a,shaderModuleProps:r,target:s,viewport:l});if(c){let{clear:e,clearColor:t,clearDepth:i,clearStencil:n}=c.props;if(e){let e=[0,0,0,0],r=1,o=0;Array.isArray(t)&&!u?e=[...t.slice(0,3),t[3]||255].map(e=>e/255):!1===t&&(e=!1),void 0!==i&&(r=i),void 0!==n&&(o=n),this.device.beginRenderPass({framebuffer:s,parameters:{viewport:d,scissorRect:d},clearColor:e,clearDepth:r,clearStencil:o}).end()}}let h={totalCount:n.length,visibleCount:0,compositeCount:0,pickableCount:0};e.setParameters({viewport:d});for(let t=0;t<n.length;t++){let r=n[t],s=i[t],{shouldDrawLayer:a}=s;if(a&&r.props.pickable&&h.pickableCount++,r.isComposite&&h.compositeCount++,r.isDrawable&&s.shouldDrawLayer){let{layerRenderIndex:t,shaderModuleProps:i,layerParameters:n}=s;h.visibleCount++,this._lastRenderIndex=Math.max(this._lastRenderIndex,t),i.project&&(i.project.viewport=l),r.context.renderPass=e;try{r._drawLayer({renderPass:e,shaderModuleProps:i,uniforms:{layerIndex:t},parameters:n})}catch(e){r.raiseError(e,"drawing ".concat(r," to ").concat(o))}}}return h}shouldDrawLayer(e){return!0}getShaderModuleProps(e,t,i){return null}getLayerParameters(e,t,i){return e.props.parameters}_shouldDrawLayer(e,t,i,n){if(!(e.props.visible&&this.shouldDrawLayer(e)))return!1;t.layer=e;let r=e.parent;for(;r;){if(!r.props.visible||!r.filterSubLayer(t))return!1;t.layer=r,r=r.parent}if(i){let e=t.layer.id;if(e in n||(n[e]=i(t)),!n[e])return!1}return e.activateViewport(t.viewport),!0}_getShaderModuleProps(e,t,i,n,r){var o,a;let l=n.cssToDeviceRatio(),c=(null==(o=e.internalState)?void 0:o.propsInTransition)||e.props,u={layer:c,picking:{isActive:!1},project:{viewport:e.context.viewport,devicePixelRatio:l,modelMatrix:c.modelMatrix,coordinateSystem:c.coordinateSystem,coordinateOrigin:c.coordinateOrigin,autoWrapLongitude:e.wrapLongitude}};if(t)for(let i of t)s(u,null==(a=i.getShaderModuleProps)?void 0:a.call(i,e,u));for(let t of e.context.defaultShaderModules)t.name in u||(u[t.name]={});
1return s(u,this.getShaderModuleProps(e,t,u),r)}constructor(){super(...arguments),this._lastRenderIndex=-1}}function s(e){for(var t=arguments.length,i=Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];for(let t of i)if(t)for(let i in t)e[i]?Object.assign(e[i],t[i]):e[i]=t[i];return e}},22241(e,t,i){i.d(t,{A:()=>n});class n{setProps(e){Object.assign(this.props,e)}render(e){}cleanup(){}constructor(e,t={id:"pass"}){let{id:i}=t;this.id=i,this.device=e,this.props=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t)}}},86760(e,t,i){i.d(t,{A:()=>s});var n=i(57618),r=i(1918);let o={blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaOperation:"add",blendAlphaSrcFactor:"constant",blendAlphaDstFactor:"zero"};class s extends n.A{render(e){return"pickingFBO"in e?this._drawPickingBuffer(e):{decodePickingColor:null,stats:super._render(e)}}_drawPickingBuffer(e){let{layers:t,layerFilter:i,views:n,viewports:r,onViewportActive:o,pickingFBO:s,deviceRect:{x:a,y:c,width:u,height:d},cullRect:h,effects:p,pass:f="picking",pickZ:g,canvasContext:v,shaderModuleProps:m,clearColor:y}=e;this.pickZ=g;let b=this._resetColorEncoder(g),w=super._render({target:s,layers:t,layerFilter:i,views:n,viewports:r,onViewportActive:o,cullRect:h,effects:null==p?void 0:p.filter(e=>e.useInPicking),pass:f,canvasContext:v,isPicking:!0,shaderModuleProps:m,clearColor:null!=y?y:[0,0,0,0],colorMask:15,scissorRect:[a,c,u,d]});return this._colorEncoderState=null,{decodePickingColor:b&&l.bind(null,b),stats:w}}shouldDrawLayer(e){let{pickable:t,operation:i}=e.props;return t&&i.includes("draw")||i.includes("terrain")||i.includes("mask")}getShaderModuleProps(e,t,i){var n;return{picking:{isActive:1,isAttribute:this.pickZ,disabledPickingIndices:null==(n=e.internalState)?void 0:n.disabledPickingIndices},lighting:{enabled:!1}}}getLayerParameters(e,t,i){let n=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e.props.parameters),{pickable:r,operation:s}=e.props;if(this._colorEncoderState)if(r&&s.includes("draw")){var l;Object.assign(n,o),n.blend=!0,"webgpu"===this.device.type?n.blendConstant=a(this._colorEncoderState,e,i):n.blendColor=a(this._colorEncoderState,e,i),s.includes("terrain")&&(null==(l=e.state)?void 0:l._hasPickingCover)&&(n.blendAlphaSrcFactor="one")}else s.includes("terrain")&&(n.blend=!1);else n.blend=!1;return n}_resetColorEncoder(e){return this._colorEncoderState=e?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}constructor(){super(...arguments),this._colorEncoderState=null}}function a(e,t,i){let n,{byLayer:o,byAlpha:s}=e,a=o.get(t);return a?(a.viewports.push(i),n=a.a):(n=o.size+1)<=255?(a={a:n,layer:t,viewports:[i]},o.set(t,a),s[n]=a):(r.A.warn("Too many pickable layers, only picking the first 255")(),n=0),[0,0,0,n/255]}function l(e,t){let i=e.byAlpha[t[3]];return i&&{pickedLayer:i.layer,pickedViewports:i.viewports,pickedObjectIndex:i.layer.decodePickingColor(t)}}},14216(e,t,i){i.d(t,{A:()=>r});let n="#define SMOOTH_EDGE_RADIUS 0.5",r={name:"geometry",source:"const SMOOTH_EDGE_RADIUS: f32 = 0.5;\n\nstruct VertexGeometry {\n position: vec4<f32>,\n worldPosition: vec3<f32>,\n worldPositionAlt: vec3<f32>,\n normal: vec3<f32>,\n uv: vec2<f32>,\n pickingColor: vec3<f32>,\n};\n\nvar<private> geometry_: VertexGeometry = VertexGeometry(\n vec4<f32>(0.0, 0.0, 1.0, 0.0),\n vec3<f32>(0.0, 0.0, 0.0),\n vec3<f32>
1(0.0, 0.0, 0.0),\n vec3<f32>(0.0, 0.0, 0.0),\n vec2<f32>(0.0, 0.0),\n vec3<f32>(0.0, 0.0, 0.0)\n);\n\nstruct FragmentGeometry {\n uv: vec2<f32>,\n};\n\nvar<private> fragmentGeometry: FragmentGeometry;\n\nfn smoothedge(edge: f32, x: f32) -> f32 {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n",vs:"".concat(n,"\n\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0, 0.0, 1.0, 0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n"),fs:"".concat(n,"\n\nstruct FragmentGeometry {\n vec2 uv;\n};\nFragmentGeometry geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n")}},69798(e,t,i){i.d(t,{Ay:()=>p,Z1:()=>a,uz:()=>l});var n=i(57102),r=i(1918);function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}let a=0xffffff;function l(e,t){10===e.length?r.A.warn("pickMultipleObjects can only exclude ".concat(10," previously picked objects for layers without picking buffers"))():e.push(t)}function c(e){return e.replace(" vec4 highlightColor;\n} picking;"," vec4 highlightColor;\n".concat(" float disabledPickingIndexCount;\n vec4 disabledPickingIndices0;\n vec4 disabledPickingIndices1;\n vec4 disabledPickingIndices2;\n","} picking;"))}function u(e,t){return[e[t]||0,e[t+1]||0,e[t+2]||0,e[t+3]||0]}let d="vec3 picking_getPickingColorFromIndex(float objectIndex) {\n if (objectIndex < 0.0 || objectIndex >= ".concat(a,".0) {\n return vec3(0.0);\n }\n\n for (int i = 0; i < ").concat(10,"; i++) {\n if (float(i) >= picking.disabledPickingIndexCount) {\n break;\n }\n vec4 disabledIndices = i < 4\n ? picking.disabledPickingIndices0\n : (i < 8 ? picking.disabledPickingIndices1 : picking.disabledPickingIndices2);\n float disabledIndex = disabledIndices[i - (i / 4) * 4];\n if (disabledIndex == objectIndex) {\n return vec3(0.0);\n }\n }\n\n float encodedIndex = objectIndex + 1.0;\n return vec3(\n mod(encodedIndex, 256.0),\n mod(floor(encodedIndex / 256.0), 256.0),\n mod(floor(encodedIndex / 65536.0), 256.0)\n );\n}\n\nvec3 picking_getPickingColorFromIndex(uint objectIndex) {\n return picking_getPickingColorFromIndex(float(objectIndex));\n}\n\nvec3 picking_getPickingColorFromInstanceID() {\n return picking_getPickingColorFromIndex(float(gl_InstanceID));\n}\n\nvoid picking_setPickingColorFromInstanceID() {\n picking_setPickingColor(picking_getPickingColorFromInstanceID());\n}\n"),h="struct pickingUniforms {\n isActive: f32,\n isAttribute: f32,\n isHighlightActive: f32,\n useByteColors: f32,\n highlightedObjectColor: vec3<f32>,\n highlightColor: vec4<f32>,\n disabledPickingIndexCount: f32,\n disabledPickingIndices0: vec4<f32>,\n disabledPickingIndices1: vec4<f32>,\n disabledPickingIndices2: vec4<f32>,\n};\n\n@group(0) @binding(auto) var<uniform> picking: pickingUniforms;\n\nfn picking_normalizeColor(color: vec3<f32>) -> vec3<f32> {\n return select(color, color / 255.0, picking.useByteColors > 0.5);\n}\n\nfn picking_normalizeColor4(color: vec4<f32>) -> vec4<f32> {\n return select(color, color / 255.0, picking.useByteColors > 0.5);\n}\n\nfn picking_isColorZero(color: vec3<f32>) -> bool {\n return dot(color, vec3<f32>(1.0)) < 0.00001;\n}\n\nfn picking_isColorValid(color: vec3<f32>) -> bool {\n return dot(color, vec3<f32>(1.0)) > 0.00001;\n}\n\nfn picking_getPickingColorFromIndex(objectIndex: u32) -> vec3<f32> {\n if (objectIndex >= ".concat(a,"u) {\n return vec3<f32>(0.0);\n }\n\n for (var i = 0; i < ").concat(10,"; i = i + 1) {\n if (f32(i) >= picking.disabledPickingIndexCount) {\n break;\n }\n let disabledIndices = select(\n picking.disabledPickingIndices2,\n select(picking.disabledPickingIndices1, picking.disabledPickingIndices0, i < 4),\n i < 8\n );\n let disabledIndex = disabledIndices[i % 4];\n if (disabledIndex == f32(objectIndex)) {\n return vec3<f32>(0.0);\n }\n }\n\n let encodedIndex = objectIndex + 1u;\n return vec3<f32>(\n f32(encodedIndex % 256u),\n f32((encodedIndex / 256u) % 256u),\n f32((encodedIndex / 65536u) % 256u)\n ) / 255.0;\n}\n"),p=s(o({},n.q),{vs:"".concat(c(n.q.vs),"\n").concat(d),fs:c(n.q.fs),source:h,uniformTypes:s(o({},n.q.uniformTypes),{disabledPickingIndexCount:"f32",disabledPickingIndices0:"vec4<f32>",disabledPickingIndices1:"vec4<f32>",disabledPickingIndices2:"vec4<f32>"}),defaultUniforms:s(o({},n.q.defaultUniforms),{useByteColors:!0,disabledPickingIndexCount:0,disabledPickingIndices0:[0,0,0,0],disabledPickingIndices1:[0,0,0,0],disabledPickingIndices2:[0,0,0,0]}),getUniforms(e,t){let i=n.q.getUniforms(e,t),r=e.disabledPickingIndices||[];return i.disabledPickingIndexCount=r.length,i.disabledPickingIndices0=u(r,0),i.disabledPickingIndices1=u(r,4),i.disabledPickingIndices2=u(r,8),i},inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n // for picking depth values\n picking_setPickingAttribute(position.z / position.w);\n ","vs:DECKGL_FILTER_COLOR":"\n picking_setPickingColor(geometry.pickingColor);\n ","fs:DECKGL_FILTER_COLOR":{order:99,injection:"\n // use highlight color if this fragment belongs to the selected object.\n color = picking_filterHighlightColor(color);\n\n // use picking color if rendering to picking FBO.\n color = picking_filterPickingColor(color);\n "}}})},25514(e,t,i){i.d(t,{R:()=>d,w:()=>u});var n=i(72823),r=i(42943),o=i(74646),s=i(49527),a=i(86083);let l=[0,0,0];function c(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=t.projectPosition(e);if(i&&t instanceof r.A){let[i,r,o=0]=e,s=t.getDistanceScales([i,r]);n[2]=o*s.unitsPerMeter[2]}return n}function u(e,t){let{viewport:i,modelMatrix:n,coordinateSystem:r,coordinateOrigin:s,offsetMode:l}=t,[d,h,p=0]=e;switch(n&&([d,h,p]=o.Z0([],[d,h,p,1],n)),r){case"default":return u(e,{viewport:i,modelMatrix:n,coordinateSystem:i.isGeospatial?"lnglat":"cartesian",coordinateOrigin:s,offsetMode:l});case"lnglat":return c([d,h,p],i,l);case"lnglat-offsets":return c([d+s[0],h+s[1],p+(s[2]||0)],i,l);case"meter-offsets":return c((0,a.dT)(s,[d,h,p]),i,l);case"cartesian":return i.isGeospatial?[d+s[0],h+s[1],p+s[2]]:i.projectPosition([d,h,p]);default:throw Error("Invalid coordinateSystem: ".concat(r))}}function d(e,t){let{viewport:i,coordinateSystem:r,coordinateOrigin:o,modelMatrix:a,fromCoordinateSystem:c,fromCoordinateOrigin:d}=function(e){let{viewport:t,modelMatrix:i,coordinateOrigin:n}=e,{coordinateSystem:r,fromCoordinateSystem:o,fromCoordinateOrigin:s}=e;return"default"===r&&(r=t.isGeospatial?"lnglat":"cartesian"),void 0===o?o=r:"default"===o&&(o=t.isGeospatial?"lnglat":"cartesian"),void 0===s&&(s=n),{viewport:t,coordinateSystem:r,coordinateOrigin:n,modelMatrix:i,fromCoordinateSystem:o,fromCoordinateOrigin:s}}(t),{autoOffset:h=!0}=t,{geospatialOrigin:p=l,shaderCoordinateOrigin:f=l,offsetMode:g=!1}=h?(0,n.ow)(i,r,o):{},v=u(e,{viewport:i,modelMatrix:a,coordinateSystem:c,coordinateOrigin:d,offsetMode:g});if(g){let e=i.projectPosition(p||f);s.jb(v,v,e)}return v}},36485(e,t,i){i.d(t,{A:()=>v});var n=i(22270),r=i(14216),o=i(72823),s=i(48895);let a=["default","lnglat","meter-offsets","lnglat-offsets","cartesian"].map(e=>"const COORDINATE_SYSTEM_".concat(e.toUpperCase().replaceAll("-","_"),": i32 = ").concat((0,o.LB)(e),";")).join(""),l=Object.keys(s.Kx).map(e=>"const PROJECTION_MODE_".concat(e,": i32 = ").concat(s.Kx[e],";")).join(""),c=Object.keys(s.p5).map(e=>"const UNIT_".concat(e.toUpperCase(),": i32 = ").concat(s.p5[e],";")).join(""),u="".concat(a,"\n").concat(l,"\n").concat(c,"\n\nconst TILE_SIZE: f32 = 512.0;\nconst PI: f32 = 3.1415926536;\nconst WORLD_SCALE: f32 = TILE_SIZE / (PI * 2.0);\nconst ZERO_64_LOW: vec3<f32> = vec3<f32>(0.0, 0.0, 0.0);\nconst EARTH_RADIUS: f32 = 6370972.0; // meters\nconst GLOBE_RADIUS: f32 = 256.0;\n\n// -----------------------------------------------------------------------------\n// Uniform block (converted from GLSL uniform block)\n// -----------------------------------------------------------------------------\nstruct ProjectUniforms {\n wrapLongitude: i32,\n coordinateSystem: i32,\n commonUnitsPerMeter: vec3<f32>,\n projectionMode: i32,\n scale: f32,\n commonUnitsPerWorldUnit: vec3<f32>,\n commonUnitsPerWorldUnit2: vec3<f32>,\n center: vec4<f32>,\n modelMatrix: mat4x4<f32>,\n viewProjectionMatrix: mat4x4<f32>,\n viewportSize: vec2<f32>,\n devicePixelRatio: f32,\n focalDistance: f32,\n cameraPosition: vec3<f32>,\n coordinateOrigin: vec3<f32>,\n commonOrigin: vec3<f32>,\n pseudoMeters: i32,\n};\n\n@group(0) @binding(auto)\nvar<uniform> project: ProjectUniforms;\n\n// -----------------------------------------------------------------------------\n// Geometry data shared across the project helpers.\n// The active layer shader is responsible for populating this private module\n// state before calling the project functions below.\n// -----------------------------------------------------------------------------\n\n// Structure to carry additional geometry data used by deck.gl filters.\nstruct Geometry {\n worldPosition: vec3<f32>,\n worldPositionAlt: vec3<f32>,\n position: vec4<f32>,\n normal: vec3<f32>,\n uv: vec2<f32>,\n pickingColor: vec3<f32>,\n};\n\nvar<private> geometry: Geometry;\n"),d=["default","lnglat","meter-offsets","lnglat-offsets","cartesian"].map(e=>"const int COORDINATE_SYSTEM_".concat(e.toUpperCase().replaceAll("-","_")," = ").concat((0,o.LB)(e),";")).join(""),h=Object.keys(s.Kx).map(e=>"const int PROJECTION_MODE_".concat(e," = ").concat(s.Kx[e],";")).join(""),p=Object.keys(s.p5).map(e=>"const int UNIT_".concat(e.toUpperCase()," = ").concat(s.p5[e],";")).join(""),f="".concat(d,"\n").concat(h,"\n").concat(p,"\nlayout(std140) uniform projectUniforms {\nbool wrapLongitude;\nint coordinateSystem;
1\nvec3 commonUnitsPerMeter;\nint projectionMode;\nfloat scale;\nvec3 commonUnitsPerWorldUnit;\nvec3 commonUnitsPerWorldUnit2;\nvec4 center;\nmat4 modelMatrix;\nmat4 viewProjectionMatrix;\nvec2 viewportSize;\nfloat devicePixelRatio;\nfloat focalDistance;\nvec3 cameraPosition;\nvec3 coordinateOrigin;\nvec3 commonOrigin;\nbool pseudoMeters;\n} project;\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / (PI * 2.0);\nconst vec3 ZERO_64_LOW = vec3(0.0);\nconst float EARTH_RADIUS = 6370972.0;\nconst float GLOBE_RADIUS = 256.0;\nfloat project_size_at_latitude(float lat) {\nfloat y = clamp(lat, -89.9, 89.9);\nreturn 1.0 / cos(radians(y));\n}\nfloat project_size() {\nif (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR &&\nproject.coordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\nproject.pseudoMeters == false) {\nif (geometry.position.w == 0.0) {\nreturn project_size_at_latitude(geometry.worldPosition.y);\n}\nfloat y = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\nfloat y2 = y * y;\nfloat y4 = y2 * y2;\nfloat y6 = y4 * y2;\nreturn 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n}\nreturn 1.0;\n}\nfloat project_size_at_latitude(float meters, float lat) {\nreturn meters * project.commonUnitsPerMeter.z * project_size_at_latitude(lat);\n}\nfloat project_size(float meters) {\nreturn meters * project.commonUnitsPerMeter.z * project_size();\n}\nvec2 project_size(vec2 meters) {\nreturn meters * project.commonUnitsPerMeter.xy * project_size();\n}\nvec3 project_size(vec3 meters) {\nreturn meters * project.commonUnitsPerMeter * project_size();\n}\nvec4 project_size(vec4 meters) {\nreturn vec4(meters.xyz * project.commonUnitsPerMeter, meters.w);\n}\nmat3 project_get_orientation_matrix(vec3 up) {\nvec3 uz = normalize(up);\nvec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0));\nvec3 uy = cross(uz, ux);\nreturn mat3(ux, uy, uz);\n}\nbool project_needs_rotation(vec3 commonPosition, out mat3 transform) {\nif (project.projectionMode == PROJECTION_MODE_GLOBE) {\ntransform = project_get_orientation_matrix(commonPosition);\nreturn true;\n}\nreturn false;\n}\nvec3 project_normal(vec3 vector) {\nvec4 normal_modelspace = project.modelMatrix * vec4(vector, 0.0);\nvec3 n = normalize(normal_modelspace.xyz * project.commonUnitsPerMeter);\nmat3 rotation;\nif (project_needs_rotation(geometry.position.xyz, rotation)) {\nn = rotation * n;\n}\nreturn n;\n}\nvec4 project_offset_(vec4 offset) {\nfloat dy = offset.y;\nvec3 commonUnitsPerWorldUnit = project.commonUnitsPerWorldUnit + project.commonUnitsPerWorldUnit2 * dy;\nreturn vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\nvec2 project_mercator_(vec2 lnglat) {\nfloat x = lnglat.x;
1\nif (project.wrapLongitude) {\nx = mod(x + 180., 360.0) - 180.;\n}\nfloat y = clamp(lnglat.y, -89.9, 89.9);\nreturn vec2(\nradians(x) + PI,\nPI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n) * WORLD_SCALE;\n}\nvec3 project_globe_(vec3 lnglatz) {\nfloat lambda = radians(lnglatz.x);\nfloat phi = radians(lnglatz.y);\nfloat cosPhi = cos(phi);\nfloat D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\nreturn vec3(\nsin(lambda) * cosPhi,\n-cos(lambda) * cosPhi,\nsin(phi)\n) * D;\n}\nvec4 project_position(vec4 position, vec3 position64Low) {\nvec4 position_world = project.modelMatrix * position;\nif (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR) {\nif (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\nreturn vec4(\nproject_mercator_(position_world.xy),\nproject_size_at_latitude(position_world.z, position_world.y),\nposition_world.w\n);\n}\nif (project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\nposition_world.xyz += project.coordinateOrigin;\n}\n}\nif (project.projectionMode == PROJECTION_MODE_GLOBE) {\nif (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\nreturn vec4(\nproject_globe_(position_world.xyz),\nposition_world.w\n);\n}\nif (project.coordinateSystem == COORDINATE_SYSTEM_METER_OFFSETS) {\nmat3 enuMatrix = project_get_orientation_matrix(project.commonOrigin);\nfloat metersToCommon = GLOBE_RADIUS / EARTH_RADIUS;\nvec3 offsetCommon = (enuMatrix * vec3(-position_world.xy, position_world.z)) * metersToCommon;\nreturn vec4(project.commonOrigin + offsetCommon, position_world.w);\n}\n}\nif (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\nif (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\nif (abs(position_world.y - project.coordinateOrigin.y) > 0.25) {\nreturn vec4(\nproject_mercator_(position_world.xy) - project.commonOrigin.xy,\nproject_size(position_world.z),\nposition_world.w\n);\n}\n}\n}\nif (project.projectionMode == PROJECTION_MODE_IDENTITY ||\n(project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n(project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\nproject.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\nposition_world.xyz -= project.coordinateOrigin;\n}\nreturn project_offset_(position_world) + project_offset_(project.modelMatrix * vec4(position64Low, 0.0));\n}\nvec4 project_position(vec4 position) {\nreturn project_position(position, ZERO_64_LOW);\n}\nvec3 project_position(vec3 position, vec3 position64Low) {\nvec4 projected_position = project_position(vec4(position, 1.0), position64Low);\nreturn projected_position.xyz;\n}\nvec3 project_position(vec3 position) {\nvec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW);\nreturn projected_position.xyz;\n}\nvec2 project_position(vec2 position) {\nvec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW);\nreturn projected_position.xy;\n}\nvec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) {\nreturn viewProjectionMatrix * position + center;\n}\nvec4 project_common_position_to_clipspace(vec4 position) {\nreturn project_common_position_to_clipspace(position, project.viewProjectionMatrix, project.center);\n}\nvec2 project_pixel_size_to_clipspace(vec2 pixels) {\nvec2 offset = pixels / project.viewportSize * project.devicePixelRatio * 2.0;\nreturn offset * project.focalDistance;\n}\nfloat project_size_to_pixel(float meters) {\nreturn project_size(meters) * project.scale;\n}\nvec2 project_size_to_pixel(vec2 meters) {\nreturn project_size(meters) * project.scale;\n}\nfloat project_size_to_pixel(float size, int unit) {\nif (unit == UNIT_METERS) return project_size_to_pixel(size);\nif (unit == UNIT_COMMON) return size * project.scale;\nreturn size;\n}\nfloat project_pixel_size(float pixels) {\nreturn pixels / project.scale;\n}\nvec2 project_pixel_size(vec2 pixels) {\nreturn pixels / project.scale;\n}\n"),g={},v={name:"project",dependencies:[n.i,r.A],source:"".concat(u,'\n\n// -----------------------------------------------------------------------------\n// Functions\n// -----------------------------------------------------------------------------\n\n// Returns an adjustment factor for commonUnitsPerMeter\nfn _project_size_at_latitude(lat: f32) -> f32 {\n let y = clamp(lat, -89.9, 89.9);\n return 1.0 / cos(radians(y));\n}\n\n// Overloaded version: scales a value in meters at a given latitude.\nfn _project_size_at_latitude_m(meters: f32, lat: f32) -> f32 {\n return meters * project.commonUnitsPerMeter.z * _project_size_at_latitude(lat);\n}\n\n// Computes a non-linear scale factor based on geometry.\n// (Note: This function relies on "geometry" being provided.)\nfn project_size() -> f32 {\n if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR &&\n project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\n project.pseudoMeters == 0) {\n if (geometry.position.w == 0.0) {\n return _project_size_at_latitude(geometry.worldPosition.y);\n }\n let y: f32 = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\n let y2 = y * y;\n let y4 = y2 * y2;\n let y6 = y4 * y2;\n return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n }\n return 1.0;\n}\n\n// Overloads to scale offsets (meters to world units)\nfn project_size_float(meters: f32) -> f32 {\n return meters * project.commonUnitsPerMeter.z * project_size();\n}\n\nfn project_size_vec2(meters: vec2<f32>) -> vec2<f32> {\n return meters * project.commonUnitsPerMeter.xy * project_size();\n}\n\nfn project_size_vec3(meters: vec3<f32>) -> vec3<f32> {\n return meters * project.commonUnitsPerMeter * project_size();\n}\n\nfn project_size_vec4(meters: vec4<f32>) -> vec4<f32> {\n return vec4<f32>(meters.xyz * project.commonUnitsPerMeter, meters.w);\n}\n\n// Returns a rotation matrix aligning the z\u2011axis with the given up vector.\nfn project_get_orientation_matrix(up: vec3<f32>) -> mat3x3<f32> {\n let uz = normalize(up);\n let ux = select(\n vec3<f32>
1(1.0, 0.0, 0.0),\n normalize(vec3<f32>(uz.y, -uz.x, 0.0)),\n abs(uz.z) == 1.0\n );\n let uy = cross(uz, ux);\n return mat3x3<f32>(ux, uy, uz);\n}\n\n// Since WGSL does not support "out" parameters, we return a struct.\nstruct RotationResult {\n needsRotation: bool,\n transform: mat3x3<f32>,\n};\n\nfn project_needs_rotation(commonPosition: vec3<f32>) -> RotationResult {\n if (project.projectionMode == PROJECTION_MODE_GLOBE) {\n return RotationResult(true, project_get_orientation_matrix(commonPosition));\n } else {\n return RotationResult(false, mat3x3<f32>()); // identity alternative if needed\n };\n}\n\n// Projects a normal vector from the current coordinate system to world space.\nfn project_normal(vector: vec3<f32>) -> vec3<f32> {\n let normal_modelspace = project.modelMatrix * vec4<f32>(vector, 0.0);\n var n = normalize(normal_modelspace.xyz * project.commonUnitsPerMeter);\n let rotResult = project_needs_rotation(geometry.position.xyz);\n if (rotResult.needsRotation) {\n n = rotResult.transform * n;\n }\n return n;\n}\n\n// Applies a scale offset based on y-offset (dy)\nfn project_offset_(offset: vec4<f32>) -> vec4<f32> {\n let dy: f32 = offset.y;\n let commonUnitsPerWorldUnit = project.commonUnitsPerWorldUnit + project.commonUnitsPerWorldUnit2 * dy;\n return vec4<f32>(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\n\n// Projects lng/lat coordinates to a unit tile [0,1]\nfn project_mercator_(lnglat: vec2<f32>) -> vec2<f32> {\n var x = lnglat.x;\n if (project.wrapLongitude != 0) {\n x = ((x + 180.0) % 360.0) - 180.0;\n }\n let y = clamp(lnglat.y, -89.9, 89.9);\n return vec2<f32>(\n radians(x) + PI,\n PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// Projects lng/lat/z coordinates for a globe projection.\nfn project_globe_(lnglatz: vec3<f32>) -> vec3<f32> {\n let lambda = radians(lnglatz.x);\n let phi = radians(lnglatz.y);\n let cosPhi = cos(phi);\n let D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\n return vec3<f32>(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\n\n// Projects positions (with an optional 64-bit low part) from the input\n// coordinate system to the common space.\nfn project_position_vec4_f64(position: vec4<f32>, position64Low: vec3<f32>) -> vec4<f32> {\n var position_world = project.modelMatrix * position;\n\n // Work around for a Mac+NVIDIA bug:\n if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR) {\n if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4<f32>(\n project_mercator_(position_world.xy),\n _project_size_at_latitude_m(position_world.z, position_world.y),\n position_world.w\n );\n }\n if (project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\n position_world = vec4f(position_world.xyz + project.coordinateOrigin, position_world.w);\n }\n }\n if (project.projectionMode == PROJECTION_MODE_GLOBE) {\n if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4<f32>(\n project_globe_(position_world.xyz),\n position_world.w\n );\n }\n if (project.coordinateSystem == COORDINATE_SYSTEM_METER_OFFSETS) {\n let enuMatrix = project_get_orientation_matrix(project.commonOrigin);\n let metersToCommon = GLOBE_RADIUS / EARTH_RADIUS;\n let offsetCommon = (enuMatrix * vec3<f32>(-position_world.x, -position_world.y, position_world.z)) * metersToCommon;\n return vec4<f32>(project.commonOrigin + offsetCommon, position_world.w);\n }\n }\n if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n if (abs(position_world.y - project.coordinateOrigin.y) > 0.25) {\n return vec4<f32>(\n project_mercator_(position_world.xy) - project.commonOrigin.xy,\n project_size_float(position_world.z),\n position_world.w\n );\n }\n }\n }\n if (project.projectionMode == PROJECTION_MODE_IDENTITY ||\n (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\n position_world = vec4f(position_world.xyz - project.coordinateOrigin, position_world.w);\n }\n\n return project_offset_(position_world) +\n project_offset_(project.modelMatrix * vec4<f32>(position64Low, 0.0));\n}\n\n// Overloaded versions for different input types.\nfn project_position_vec4_f32(position: vec4<f32>) -> vec4<f32> {\n return project_position_vec4_f64(position, ZERO_64_LOW);\n}\n\nfn project_position_vec3_f64(position: vec3<f32>, position64Low: vec3<f32>) -> vec3<f32> {\n let projected_position = project_position_vec4_f64(vec4<f32>
1(position, 1.0), position64Low);\n return projected_position.xyz;\n}\n\nfn project_position_vec3_f32(position: vec3<f32>) -> vec3<f32> {\n let projected_position = project_position_vec4_f64(vec4<f32>(position, 1.0), ZERO_64_LOW);\n return projected_position.xyz;\n}\n\nfn project_position_vec2_f32(position: vec2<f32>) -> vec2<f32> {\n let projected_position = project_position_vec4_f64(vec4<f32>(position, 0.0, 1.0), ZERO_64_LOW);\n return projected_position.xy;\n}\n\n// Transforms a common space position to clip space.\nfn project_common_position_to_clipspace_with_projection(position: vec4<f32>, viewProjectionMatrix: mat4x4<f32>, center: vec4<f32>) -> vec4<f32> {\n var clipPosition = viewProjectionMatrix * position + center;\n // deck.gl projection matrices use WebGL\'s [-w, w] depth range; WebGPU clips z to [0, w].\n clipPosition.z = (clipPosition.z + clipPosition.w) * 0.5;\n return clipPosition;\n}\n\n// Uses the project viewProjectionMatrix and center.\nfn project_common_position_to_clipspace(position: vec4<f32>) -> vec4<f32> {\n return project_common_position_to_clipspace_with_projection(position, project.viewProjectionMatrix, project.center);\n}\n\n// Returns a clip space offset corresponding to a given number of screen pixels.\nfn project_pixel_size_to_clipspace(pixels: vec2<f32>) -> vec2<f32> {\n let offset = pixels / project.viewportSize * project.devicePixelRatio * 2.0;\n return offset * project.focalDistance;\n}\n\nfn project_meter_size_to_pixel(meters: f32) -> f32 {\n return project_size_float(meters) * project.scale;\n}\n\nfn project_unit_size_to_pixel(size: f32, unit: i32) -> f32 {\n if (unit == UNIT_METERS) {\n return project_meter_size_to_pixel(size);\n } else if (unit == UNIT_COMMON) {\n return size * project.scale;\n }\n // UNIT_PIXELS: no scaling applied.\n return size;\n}\n\nfn project_pixel_size_float(pixels: f32) -> f32 {\n return pixels / project.scale;\n}\n\nfn project_pixel_size_vec2(pixels: vec2<f32>) -> vec2<f32> {\n return pixels / project.scale;\n}\n'),vs:f,getUniforms:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return"viewport"in e?(0,o.aY)(e):{}},uniformTypes:{wrapLongitude:"f32",coordinateSystem:"i32",commonUnitsPerMeter:"vec3<f32>",projectionMode:"i32",scale:"f32",commonUnitsPerWorldUnit:"vec3<f32>",commonUnitsPerWorldUnit2:"vec3<f32>",center:"vec4<f32>",modelMatrix:"mat4x4<f32>",viewProjectionMatrix:"mat4x4<f32>",viewportSize:"vec2<f32>",devicePixelRatio:"f32",focalDistance:"f32",cameraPosition:"vec3<f32>",coordinateOrigin:"vec3<f32>",commonOrigin:"vec3<f32>",pseudoMeters:"f32"}}},72823(e,t,i){i.d(t,{LB:()=>p,aY:()=>v,ow:()=>g});var n=i(74646),r=i(32686),o=i(48895),s=i(97252);let a=[0,0,0,0],l=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],c=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],u=[0,0,0],d=[0,0,0],h={default:-1,cartesian:0,lnglat:1,"meter-offsets":2,"lnglat-offsets":3};function p(e){let t=h[e];if(void 0===t)throw Error("Invalid coordinateSystem: ".concat(e));return t}let f=(0,s.A)(function(e){let{viewport:t,devicePixelRatio:i,coordinateSystem:s,coordinateOrigin:d}=e,{projectionCenter:h,viewProjectionMatrix:f,originCommon:v,cameraPosCommon:m,shaderCoordinateOrigin:y,geospatialOrigin:b}=function(e,t,i){let{viewMatrixUncentered:o,projectionMatrix:s}=e,{viewMatrix:c,viewProjectionMatrix:u}=e,d=a,h=a,p=e.cameraPosition,{geospatialOrigin:f,shaderCoordinateOrigin:v,offsetMode:m}=g(e,t,i);return m&&(h=e.projectPosition(f||v),p=[p[0]-h[0],p[1]-h[1],p[2]-h[2]],h[3]=1,d=n.Z0([],h,u),c=o||c,u=r.lw([],s,c),u=r.lw([],u,l)),{viewMatrix:c,viewProjectionMatrix:u,projectionCenter:d,originCommon:h,cameraPosCommon:p,shaderCoordinateOrigin:v,geospatialOrigin:f}}(t,s,d),w=t.getDistanceScales(),_=[t.width*i,t.height*i],P=n.Z0([],[0,0,-t.focalDistance,1],t.projectionMatrix)[3]||1,O={coordinateSystem:p(s),projectionMode:t.projectionMode,coordinateOrigin:y,commonOrigin:v.slice(0,3),center:h,pseudoMeters:!!t._pseudoMeters,viewportSize:_,devicePixelRatio:i,focalDistance:P,commonUnitsPerMeter:w.unitsPerMeter,commonUnitsPerWorldUnit:w.unitsPerMeter,commonUnitsPerWorldUnit2:u,scale:t.scale,wrapLongitude:!1,viewProjectionMatrix:f,modelMatrix:c,cameraPosition:m};if(b){let e=t.getDistanceScales(b);switch(s){case"meter-offsets":O.commonUnitsPerWorldUnit=e.unitsPerMeter,O.commonUnitsPerWorldUnit2=e.unitsPerMeter2;break;case"lnglat":case"lnglat-offsets":t._pseudoMeters||(O.commonUnitsPerMeter=e.unitsPerMeter),O.commonUnitsPerWorldUnit=e.unitsPerDegree,O.commonUnitsPerWorldUnit2=e.unitsPerDegree2;break;case"cartesian":O.commonUnitsPerWorldUnit=[1,1,e.unitsPerMeter[2]],O.commonUnitsPerWorldUnit2=[0,0,e.unitsPerMeter2[2]]}}if(t.projectionMode===o.Kx.GLOBE&&"meter-offsets"===s){let e=d[0]*Math.PI/180,t=d[1]*Math.PI/180,i=Math.cos(t),n=((d[2]||0)/6370972+1)*256;O.commonOrigin=[Math.sin(e)*i*n,-Math.cos(e)*i*n,Math.sin(t)*n]}return O});function g(e,t){let i,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d;n.length<3&&(n=[n[0],n[1],0]);let r=n,s=!0;switch(i="lnglat-offsets"===t||"meter-offsets"===t?n:e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case o.Kx.WEB_MERCATOR:("lnglat"===t||"cartesian"===t)&&(i=[0,0,0],s=!1);break;case o.Kx.WEB_MERCATOR_AUTO_OFFSET:"lnglat"===t?r=i:"cartesian"===t&&(r=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],i=e.unprojectPosition(r),r[0]-=n[0],r[1]-=n[1],r[2]-=n[2]);break;case o.Kx.IDENTITY:(r=e.position.map(Math.fround))[2]=r[2]||0;break;case o.Kx.GLOBE:s=!1,i=null;break;default:s=!1}return{geospatialOrigin:i,shaderCoordinateOrigin:r,offsetMode:s}}function v(e){let{viewport:t,devicePixelRatio:i=1,modelMatrix:n=null,coordinateSystem:r="default",coordinateOrigin:o=d,autoWrapLongitude:s=!1}=e;"default"===r&&(r=t.isGeospatial?"lnglat":"cartesian");let a=f({viewport:t,devicePixelRatio:i,coordinateSystem:r,coordinateOrigin:o});return a.wrapLongitude=s,a.modelMatrix=n||c,a}},8070(e,t,i){i.d(t,{A:()=>n});
1let n={name:"project32",dependencies:[i(36485).A],source:"// Define a structure to hold both the clip-space position and the common position.\nstruct ProjectResult {\n clipPosition: vec4<f32>,\n commonPosition: vec4<f32>,\n};\n\n// This function mimics the GLSL version with the 'out' parameter by returning both values.\nfn project_position_to_clipspace_and_commonspace(\n position: vec3<f32>,\n position64Low: vec3<f32>,\n offset: vec3<f32>\n) -> ProjectResult {\n // Compute the projected position.\n let projectedPosition: vec3<f32> = project_position_vec3_f64(position, position64Low);\n\n // Start with the provided offset.\n var finalOffset: vec3<f32> = offset;\n\n // Get whether a rotation is needed and the rotation matrix.\n let rotationResult = project_needs_rotation(projectedPosition);\n\n // If rotation is needed, update the offset.\n if (rotationResult.needsRotation) {\n finalOffset = rotationResult.transform * offset;\n }\n\n // Compute the common position.\n let commonPosition: vec4<f32> = vec4<f32>(projectedPosition + finalOffset, 1.0);\n\n // Convert to clip-space.\n let clipPosition: vec4<f32> = project_common_position_to_clipspace(commonPosition);\n\n return ProjectResult(clipPosition, commonPosition);\n}\n\n// A convenience overload that returns only the clip-space position.\nfn project_position_to_clipspace(\n position: vec3<f32>,\n position64Low: vec3<f32>,\n offset: vec3<f32>\n) -> vec4<f32> {\n return project_position_to_clipspace_and_commonspace(position, position64Low, offset).clipPosition;\n}\n",vs:"vec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition\n) {\n vec3 projectedPosition = project_position(position, position64Low);\n mat3 rotation;\n if (project_needs_rotation(projectedPosition, rotation)) {\n // offset is specified as ENU\n // when in globe projection, rotate offset so that the ground alighs with the surface of the globe\n offset = rotation * offset;\n }\n commonPosition = vec4(projectedPosition + offset, 1.0);\n return project_common_position_to_clipspace(commonPosition);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64Low, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(position, position64Low, offset, commonPosition);\n}\n"}},43396(e,t,i){i.d(t,{A:()=>a});var n=i(71126),r=i(26489);let o=["longitude","latitude","zoom","bearing","pitch"],s=["longitude","latitude","zoom"];class a extends n.A{initializeProps(e,t){let i=super.initializeProps(e,t),{makeViewport:n,around:r}=this.opts;if(n&&r){let o=n(e),s=n(t),a=o.unproject(r);i.start.around=r,Object.assign(i.end,{around:s.project(a),aroundPosition:a,width:t.width,height:t.height})}return i}interpolateProps(e,t,i){let n={};for(let o of this._propsToExtract)n[o]=(0,r.Cc)(e[o]||0,t[o]||0,i);if(t.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport(function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},t,n));Object.assign(n,o.panByPosition(t.aroundPosition,(0,r.Cc)(e.around,t.around,i)))}return n}constructor(e={}){let t=Array.isArray(e)?e:e.transitionProps,i=Array.isArray(e)?{}:e;i.transitionProps=Array.isArray(t)?{compare:t,required:t}:t||{compare:o,required:s},super(i.transitionProps),this.opts=i}}},71126(e,t,i){i.d(t,{A:()=>o});var n=i(26489),r=i(22708);class o{arePropsEqual(e,t){for(let i of this._propsToCompare)if(!(i in e)||!(i in t)||!(0,n.aI)(e[i],t[i]))return!1;return!0}initializeProps(e,t){let i={},n={};for(let r of this._propsToExtract)(r in e||r in t)&&(i[r]=e[r],n[r]=t[r]);return this._checkRequiredProps(i),this._checkRequiredProps(n),{start:i,end:n}}getDuration(e,t){return t.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(t=>{let i=e[t];(0,r.A)(Number.isFinite(i)||Array.isArray(i),"".concat(t," is required for transition"))})}
1constructor(e){let{compare:t,extract:i,required:n}=e;this._propsToCompare=t,this._propsToExtract=i||t,this._requiredProps=n}}},21758(e,t,i){i.d(t,{A:()=>n});class n{get inProgress(){return this._inProgress}start(e){var t,i;this.cancel(),this.settings=e,this._inProgress=!0,null==(t=(i=this.settings).onStart)||t.call(i,this)}end(){if(this._inProgress){var e,t;this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,null==(e=(t=this.settings).onEnd)||e.call(t,this)}}cancel(){if(this._inProgress){var e,t;null==(e=(t=this.settings).onInterrupt)||e.call(t,this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1}}update(){var e,t;if(!this._inProgress)return!1;if(null===this._handle){let{_timeline:e,settings:t}=this;this._handle=e.addChannel({delay:e.getTime(),duration:t.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),null==(e=(t=this.settings).onUpdate)||e.call(t,this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}constructor(e){this._inProgress=!1,this._handle=null,this.time=0,this.settings={duration:0},this._timeline=e}}},44855(e,t,i){function n(e,t){t&&Object.entries(t).map(t=>{let[i,n]=t;i.startsWith("--")?e.style.setProperty(i,n):e.style[i]=n})}function r(e,t){t&&Object.keys(t).map(t=>{t.startsWith("--")?e.style.removeProperty(t):e.style[t]=""})}i.d(t,{Z:()=>n,h:()=>r})},22708(e,t,i){i.d(t,{A:()=>n});function n(e,t){if(!e)throw Error(t||"deck.gl: assertion failed.")}},59377(e,t,i){i.d(t,{b:()=>function e(t,i,n){if(t===i)return!0;if(!n||!t||!i)return!1;if(Array.isArray(t)){if(!Array.isArray(i)||t.length!==i.length)return!1;for(let r=0;r<t.length;r++)if(!e(t[r],i[r],n-1))return!1;return!0}if(Array.isArray(i))return!1;if("object"==typeof t&&"object"==typeof i){let r=Object.keys(t),o=Object.keys(i);if(r.length!==o.length)return!1;for(let o of r)if(!i.hasOwnProperty(o)||!e(t[o],i[o],n-1))return!1;return!0}return!1}})},37142(e,t,i){function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>!0;return Array.isArray(e)?function e(t,i,n){let r=-1;for(;++r<t.length;){let o=t[r];Array.isArray(o)?e(o,i,n):i(o)&&n.push(o)}return n}(e,t,[]):t(e)?[e]:[]}function r(e){let{target:t,source:i,start:n=0,count:r=1}=e,o=i.length,s=r*o,a=0;for(let e=n;a<o;a++)t[e++]=i[a];for(;a<s;)a<s-a?(t.copyWithin(n+a,n,n+a),a*=2):(t.copyWithin(n+a,n,n+s-a),a=s);return t}i.d(t,{B:()=>n,R:()=>r})},70008(e,t,i){i.d(t,{I:()=>a,Td:()=>s,X:()=>o});let n=[],r=[];function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,o=n,s={index:-1,data:e,target:[]};return e?"function"==typeof e[Symbol.iterator]?o=e:e.length>0&&(r.length=e.length,o=r):o=n,(t>0||Number.isFinite(i))&&(o=(Array.isArray(o)?o:Array.from(o)).slice(t,i),s.index=t-1),{iterable:o,objectInfo:s}}function s(e){return e&&e[Symbol.asyncIterator]}function a(e,t){let{size:i,stride:n,offset:r,startIndices:o,nested:s}=t,a=e.BYTES_PER_ELEMENT,l=n?n/a:i,c=r?r/a:0,u=Math.floor((e.length-c)/l);return(t,n)=>{let r,{index:a,target:d}=n;if(!o){let t=a*l+c;for(let n=0;n<i;n++)d[n]=e[t+n];return d}let h=o[a],p=o[a+1]||u;if(s){r=Array(p-h);for(let t=h;t<p;t++){let n=t*l+c;d=Array(i);for(let t=0;t<i;t++)d[t]=e[n+t];r[t-h]=d}}else if(l===i)r=e.subarray(h*i+c,p*i+c);else{r=new e.constructor((p-h)*i);let t=0;for(let n=h;n<p;n++){let o=n*l+c;for(let n=0;n<i;n++)r[t++]=e[o+n]}}return r}}},1918(e,t,i){i.d(t,{A:()=>n});let n=new(i(70486)).h({id:"deck"})},79036(e,t,i){let n;i.d(t,{$M:()=>s,Vl:()=>l,_Z:()=>f,cT:()=>p,om:()=>c,on:()=>u,zi:()=>a});var r=i(17390),o=i(35097);function s(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function a(e,t){let i=e%t;return i<0?t+i:i}function l(e){return[e[12],e[13],e[14]]}function c(e){let t=e[10],i=e[14];return{near:i/(t-1),far:i/(t+1)}}function u(e){return{left:h(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:h(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:h(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:h(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:h(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:h(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}let d=new o.P;function h(e,t,i,n){d.set(e,t,i);let r=d.len();return{distance:n/r,normal:new o.P(-e/r,-t/r,-i/r)}}function p(e,t){let{size:i=1,startIndex:o=0}=t,s=void 0!==t.endIndex?t.endIndex:e.length,a=(s-o)/i;n=r.A.allocate(n,a,{type:Float32Array,size:2*i});let l=o,c=0;for(;l<s;){for(let t=0;t<i;t++){let r=e[l++];n[c+t]=r,n[c+t+i]=r-Math.fround(r)}c+=2*i}return n.subarray(0,a*i*2)}function f(e){let t=null,i=!1;for(let n of e)n&&(t?(i||(t=[[t[0][0],t[0][1]],[t[1][0],t[1][1]]],i=!0),t[0][0]=Math.min(t[0][0],n[0][0]),t[0][1]=Math.min(t[0][1],n[0][1]),t[1][0]=Math.max(t[1][0],n[1][0]),t[1][1]=Math.max(t[1][1],n[1][1])):t=n);return t}},97252(e,t,i){i.d(t,{A:()=>n});function n(e){let t,i={};return n=>{for(let r in n)if(!function(e,t){if(e===t)return!0;
1if(Array.isArray(e)){let i=e.length;if(!t||t.length!==i)return!1;for(let n=0;n<i;n++)if(e[n]!==t[n])return!1;return!0}return!1}(n[r],i[r])){t=e(n),i=n;break}return t}}},8340(e,t,i){i.d(t,{E9:()=>o,rk:()=>r});let n=/^(?:\d+\.?\d*|\.\d+)$/;function r(e){switch(typeof e){case"number":if(!Number.isFinite(e))throw Error("Could not parse position string ".concat(e));return{type:"literal",value:e};case"string":try{let t=function(e){let t=[],i=0;for(;i<e.length;){let r=e[i];if(/\s/.test(r)){i++;continue}if("+"===r||"-"===r||"("===r||")"===r||"%"===r){t.push({type:"symbol",value:r}),i++;continue}if(a(r)||"."===r){let o=i,s="."===r;for(i++;i<e.length;){let t=e[i];if(a(t)){i++;continue}if("."===t&&!s){s=!0,i++;continue}break}let l=e.slice(o,i);if(!n.test(l))throw Error("Invalid number token");t.push({type:"number",value:parseFloat(l)});continue}if(l(r)){let n=i;for(;i<e.length&&l(e[i]);)i++;let r=e.slice(n,i).toLowerCase();t.push({type:"word",value:r});continue}throw Error("Invalid token in position string")}return t}(e);return new s(t).parseExpression()}catch(i){let t=i instanceof Error?i.message:String(i);throw Error("Could not parse position string ".concat(e,": ").concat(t))}default:throw Error("Could not parse position string ".concat(e))}}function o(e,t){return function e(t,i){switch(t.type){case"literal":return t.value;case"percentage":return Math.round(t.value*i);case"binary":let n=e(t.left,i),r=e(t.right,i);return"+"===t.operator?n+r:n-r;default:throw Error("Unknown layout expression type")}}(e,t)}class s{parseExpression(){let e=this.parseBinaryExpression();if(this.index<this.tokens.length)throw Error("Unexpected token at end of expression");return e}parseBinaryExpression(){var e;let t=this.parseFactor(),i=this.peek();for(;(e=i)&&"symbol"===e.type&&("+"===e.value||"-"===e.value);){this.index++;let e=this.parseFactor();t={type:"binary",operator:i.value,left:t,right:e},i=this.peek()}return t}parseFactor(){let e=this.peek();if(!e)throw Error("Unexpected end of expression");if("symbol"===e.type&&"+"===e.value)return this.index++,this.parseFactor();if("symbol"===e.type&&"-"===e.value)return this.index++,{type:"binary",operator:"-",left:{type:"literal",value:0},right:this.parseFactor()};if("symbol"===e.type&&"("===e.value){this.index++;let e=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw Error("Missing closing parenthesis");return e}if("word"===e.type&&"calc"===e.value){if(this.index++,!this.consumeSymbol("("))throw Error("Missing opening parenthesis after calc");let e=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw Error("Missing closing parenthesis");return e}if("number"===e.type){this.index++;let t=e.value,i=this.peek();return i&&"symbol"===i.type&&"%"===i.value?(this.index++,{type:"percentage",value:t/100}):(i&&"word"===i.type&&"px"===i.value&&this.index++,{type:"literal",value:t})}throw Error("Unexpected token in expression")}consumeSymbol(e){let t=this.peek();return!!t&&"symbol"===t.type&&t.value===e&&(this.index++,!0)}peek(){return this.tokens[this.index]||null}constructor(e){this.index=0,this.tokens=e}}function a(e){return e>="0"&&e<="9"}function l(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}},17390(e,t,i){i.d(t,{A:()=>n});let n=new class{setOptions(e){Object.assign(this.opts,e)}allocate(e,t,i){let{size:n=1,type:r,padding:o=0,copy:s=!1,initialize:a=!1,maxCount:l}=i,c=r||e&&e.constructor||Float32Array,u=t*n+o;if(ArrayBuffer.isView(e)){if(u<=e.length)return e;if(u*e.BYTES_PER_ELEMENT<=e.buffer.byteLength)return new c(e.buffer,0,u)}let d=1/0;l&&(d=l*n+o);let h=this._allocate(c,u,a,d);return e&&s?h.set(e):a||h.fill(0,0,4),this._release(e),h}release(e){this._release(e)}_allocate(e,t,i,n){let r=Math.max(Math.ceil(t*this.opts.overAlloc),1);r>n&&(r=n);let o=this._pool,s=e.BYTES_PER_ELEMENT*r,a=o.findIndex(e=>e.byteLength>=s);if(a>=0){let t=new e(o.splice(a,1)[0],0,r);return i&&t.fill(0),t}return new e(r)}_release(e){if(!ArrayBuffer.isView(e))return;let t=this._pool,{buffer:i}=e,{byteLength:n}=i,r=t.findIndex(e=>e.byteLength>=n);r<0?t.push(i):(r>0||t.length<this.opts.poolSize)&&t.splice(r,0,i),t.length>this.opts.poolSize&&t.shift()}constructor(e={}){this._pool=[],this.opts={overAlloc:2,poolSize:100},this.setOptions(e)}}},39026(e,t,i){i.d(t,{A:()=>v});var n=i(1918),r=i(79036),o=i(6706),s=i(26489),a=i(35097),l=i(32686),c=i(86083),u=i(48895);let d=Math.PI/180,h=(0,r.$M)(),p=[0,0,0],f={unitsPerMeter:[1,1,1],metersPerUnit:[1,1,1]};class g{get subViewports(){return null}get metersPerPixel(){return this.distanceScales.metersPerUnit[2]/this.scale}get projectionMode(){return this.isGeospatial?this.zoom<12?u.Kx.WEB_MERCATOR:u.Kx.WEB_MERCATOR_AUTO_OFFSET:u.Kx.IDENTITY}
1equals(e){return e instanceof g&&(this===e||e.width===this.width&&e.height===this.height&&e.scale===this.scale&&e.projectionMode===this.projectionMode&&e.resolution===this.resolution&&(0,s.aI)(e.distanceScales.unitsPerMeter,this.distanceScales.unitsPerMeter)&&(0,s.aI)(e.projectionMatrix,this.projectionMatrix)&&(0,s.aI)(e.viewMatrix,this.viewMatrix))}project(e){let{topLeft:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.projectPosition(e),n=(0,c.VJ)(i,this.pixelProjectionMatrix),[r,o]=n,s=t?o:this.height-o;return 2===e.length?[r,s]:[r,s,n[2]]}unproject(e){let{topLeft:t=!0,targetZ:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[n,r,o]=e,s=t?r:this.height-r,a=i&&i*this.distanceScales.unitsPerMeter[2],l=(0,c.xJ)([n,s,o],this.pixelUnprojectionMatrix,a),[u,d,h]=this.unprojectPosition(l);return Number.isFinite(o)?[u,d,h]:Number.isFinite(i)?[u,d,i]:[u,d]}projectPosition(e){let[t,i]=this.projectFlat(e);return[t,i,(e[2]||0)*this.distanceScales.unitsPerMeter[2]]}unprojectPosition(e){let[t,i]=this.unprojectFlat(e);return[t,i,(e[2]||0)*this.distanceScales.metersPerUnit[2]]}projectFlat(e){if(this.isGeospatial){let t=(0,c.Gw)(e);return t[1]=(0,s.qE)(t[1],-318,830),t}return e}unprojectFlat(e){return this.isGeospatial?(0,c.iV)(e):e}getBounds(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={targetZ:e.z||0},i=this.unproject([0,0],t),n=this.unproject([this.width,0],t),r=this.unproject([0,this.height],t),o=this.unproject([this.width,this.height],t);return[Math.min(i[0],n[0],r[0],o[0]),Math.min(i[1],n[1],r[1],o[1]),Math.max(i[0],n[0],r[0],o[0]),Math.max(i[1],n[1],r[1],o[1])]}getDistanceScales(e){return e&&this.isGeospatial?(0,c.nI)({longitude:e[0],latitude:e[1],highPrecision:!0}):this.distanceScales}containsPixel(e){let{x:t,y:i,width:n=1,height:r=1}=e;return t<this.x+this.width&&this.x<t+n&&i<this.y+this.height&&this.y<i+r}getFrustumPlanes(){return this._frustumPlanes.near||Object.assign(this._frustumPlanes,(0,r.on)(this.viewProjectionMatrix)),this._frustumPlanes}panByPosition(e,t,i){return null}_initProps(e){let t=e.longitude,i=e.latitude;this.isGeospatial&&(Number.isFinite(e.zoom)||(this.zoom=(0,c.fO)({latitude:i})+Math.log2(this.focalDistance)),this.distanceScales=e.distanceScales||(0,c.nI)({latitude:i,longitude:t}));let n=Math.pow(2,this.zoom);this.scale=n;let{position:r,modelMatrix:s}=e,l=p;if(r&&(l=s?new o.k(s).transformAsVector(r,[]):r),this.isGeospatial){let e=this.projectPosition([t,i,0]);this.center=new a.P(l).scale(this.distanceScales.unitsPerMeter).add(e)}else this.center=this.projectPosition(l)}_initMatrices(e){let{viewMatrix:t=h,projectionMatrix:i=null,orthographic:c=!1,fovyRadians:u,fovy:p=75,near:f=.1,far:g=1e3,padding:v=null,focalDistance:m=1}=e;this.viewMatrixUncentered=t,this.viewMatrix=new o.k().multiplyRight(t).translate(new a.P(this.center).negate()),this.projectionMatrix=i||function(e){let{width:t,height:i,orthographic:n,fovyRadians:r,focalDistance:a,padding:l,near:c,far:u}=e,d=t/i,h=n?new o.k().orthographic({fovy:r,aspect:d,focalDistance:a,near:c,far:u}):new o.k().perspective({fovy:r,aspect:d,near:c,far:u});if(l){let{left:e=0,right:n=0,top:r=0,bottom:o=0}=l,a=(0,s.qE)((e+t-n)/2,0,t)-t/2,c=(0,s.qE)((r+i-o)/2,0,i)-i/2;h[8]-=2*a/t,h[9]+=2*c/i}return h}({width:this.width,height:this.height,orthographic:c,fovyRadians:u||p*d,focalDistance:m,padding:v,near:f,far:g});let y=(0,r.$M)();l.lw(y,y,this.projectionMatrix),l.lw(y,y,this.viewMatrix),this.viewProjectionMatrix=y,this.viewMatrixInverse=l.B8([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=(0,r.Vl)(this.viewMatrixInverse);let b=(0,r.$M)(),w=(0,r.$M)();l.hs(b,b,[this.width/2,-this.height/2,1]),l.Tl(b,b,[1,-1,0]),l.lw(w,b,this.viewProjectionMatrix),this.pixelProjectionMatrix=w,this.pixelUnprojectionMatrix=l.B8((0,r.$M)(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||n.A.warn("Pixel project matrix not invertible")()}constructor(e={}){this._frustumPlanes={},this.id=e.id||this.constructor.displayName||"viewport",this.x=e.x||0,this.y=e.y||0,this.width=e.width||1,this.height=e.height||1,this.zoom=e.zoom||0,this.padding=e.padding,this.distanceScales=e.distanceScales||f,this.focalDistance=e.focalDistance||1,this.position=e.position||p,this.modelMatrix=e.modelMatrix||null;let{longitude:t,latitude:i}=e;this.isGeospatial=Number.isFinite(i)&&Number.isFinite(t),this._initProps(e),this._initMatrices(e),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}}g.displayName="Viewport";let v=g},42943(e,t,i){i.d(t,{A:()=>p});var n=i(39026),r=i(86083),o=i(62905),s=i(20556),a=i(59808),l=i(26489),c=i(6706);function u(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function d(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}class h extends n.A{get subViewports(){if(this._subViewports&&!this._subViewports.length){let e=this.getBounds(),t=Math.floor((e[0]+180)/360),i=Math.ceil((e[2]-180)/360);for(let e=t;e<=i;e++){let t=e?new h(d(u({},this),{worldOffset:e})):this;this._subViewports.push(t)}}return this._subViewports}equals(e){return e instanceof h&&e._pseudoMeters===this._pseudoMeters&&super.equals(e)}projectPosition(e){if(this._pseudoMeters)return super.projectPosition(e);let[t,i]=this.projectFlat(e);return[t,i,(e[2]||0)*(0,r.mY)(e[1])]}unprojectPosition(e){if(this._pseudoMeters)return super.unprojectPosition(e);let[t,i]=this.unprojectFlat(e),n=(e[2]||0)/(0,r.mY)(i);return[t,i,n]}addMetersToLngLat(e,t){return(0,r.dT)(e,t)}panByPosition(e,t,i){let n=(0,r.xJ)(t,this.pixelUnprojectionMatrix),o=this.projectFlat(e),s=a.WQ([],o,a.ze([],n)),l=a.WQ([],this.center,s),[c,u]=this.unprojectFlat(l);return{longitude:c,latitude:u}}panByPosition3D(e,t){let i=e[2]||0,n=a.jb([],e,this.unproject(t,{targetZ:i}));return{longitude:this.longitude+n[0],latitude:this.latitude+n[1]}}getBounds(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,o.g)(this,e.z||0);return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1]),Math.max(t[0][0],t[1][0],t[2][0],t[3][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1])]}fitBounds(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{width:i,height:n}=this,{longitude:r,latitude:o,zoom:a}=(0,s.F)(u({width:i,height:n,bounds:e},t));return new h({width:i,height:n,longitude:r,latitude:o,zoom:a})}constructor(e={}){let t,{latitude:i=0,longitude:n=0,zoom:o=0,pitch:s=0,bearing:a=0,nearZMultiplier:h=.1,farZMultiplier:p=1.01,nearZ:f,farZ:g,orthographic:v=!1,projectionMatrix:m,repeat:y=!1,worldOffset:b=0,position:w,padding:_,legacyMeterSizes:P=!1}=e,{width:O,height:j,altitude:x=1.5}=e,C=Math.pow(2,o);O=O||1,j=j||1;let S=null;if(m)x=m[5]/2,t=(0,r.Os)(x);else{let n;if(e.fovy?(t=e.fovy,x=(0,r.wZ)(t)):t=(0,r.Os)(x),_){let{top:e=0,bottom:t=0}=_;n=[0,(0,l.qE)((e+j-t)/2,0,j)-j/2]}S=(0,r.om)({width:O,height:j,scale:C,center:w&&[0,0,w[2]*(0,r.mY)(i)],offset:n,pitch:s,fovy:t,nearZMultiplier:h,farZMultiplier:p}),Number.isFinite(f)&&(S.near=f),Number.isFinite(g)&&(S.far=g)}let k=(0,r.rY)({height:j,pitch:s,bearing:a,scale:C,altitude:x});b&&(k=new c.k().translate([512*b,0,0]).multiplyLeft(k)),super(d(u(d(u({},e),{width:O,height:j,viewMatrix:k,longitude:n,latitude:i,zoom:o}),S),{fovy:t,focalDistance:x})),this.latitude=i,this.longitude=n,this.zoom=o,this.pitch=s,this.bearing=a,this.altitude=x,this.fovy=t,this.orthographic=v,this._subViewports=y?[]:null,this._pseudoMeters=P,Object.freeze(this)}}h.displayName="WebMercatorViewport";let p=h},77475(e,t,i){i.d(t,{A:()=>a});var n=i(78977),r=i(42943),o=i(77991);class s extends n.A{getViewportType(){return r.A}get ControllerType(){return o.A}constructor(e={}){super(e)}}s.displayName="MapView";let a=s},14663(e,t,i){i.d(t,{A:()=>w});var n=i(78977),r=i(39026),o=i(6706),s=i(86083),a=i(79036);let l=Math.PI/180;class c extends r.A{unproject(e){let{topLeft:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[i,n,r=this.projectedCenter[2]]=e,o=t?n:this.height-n,[a,l,c]=(0,s.xJ)([i,o,r],this.pixelUnprojectionMatrix);return[a,l,c]}panByPosition(e,t,i){let n=this.project(e),{near:r,far:o}=(0,a.om)(this.projectionMatrix),s=r*o/(o-n[2]*(o-r))/(r*o/(o-this.projectedCenter[2]*(o-r))),l=[this.width/2+(n[0]-t[0])*s,this.height/2+(n[1]-t[1])*s,this.projectedCenter[2]];return{target:this.unproject(l)}}constructor(e){var t,i;let{height:n,projectionMatrix:r,fovy:a=50,orbitAxis:c="Z",target:u=[0,0,0],rotationX:d=0,rotationOrbit:h=0,zoom:p=0}=e,f=r?r[5]/2:(0,s.wZ)(a);super((t=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e),i=i={longitude:void 0,viewMatrix:function(e){let{height:t,focalDistance:i,orbitAxis:n,rotationX:r,rotationOrbit:s,zoom:a}=e,c=new o.k().lookAt({eye:"Z"===n?[0,-i,0]:[0,0,i],up:"Z"===n?[0,0,1]:[0,1,0]});c.rotateX(r*l),"Z"===n?c.rotateZ(s*l):c.rotateY(s*l);let u=Math.pow(2,a)/t;return c.scale(u),c}({height:n||1,focalDistance:f,orbitAxis:c,rotationX:d,rotationOrbit:h,zoom:p}),fovy:a,focalDistance:f,position:u,zoom:p},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}),t)),this.target=u,this.orbitAxis=c,this.rotationX=d,this.rotationOrbit=h,this.fovy=a,this.projectedCenter=this.project(this.center)}}c.displayName="OrbitViewport";var u=i(26489),d=i(89293),h=i(97659),p=i(39333),f=i(43396);function g(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function v(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}class m extends h.A{panStart(e){let{pos:t}=e;return this._getUpdatedState({startPanPosition:this._unproject(t)})}pan(e){let{pos:t,startPosition:i}=e,n=this.getState().startPanPosition||i;if(!n)return this;let r=this.makeViewport(this.getViewportProps()).panByPosition(n,t);return this._getUpdatedState(r)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart(e){let{pos:t}=e;return this._getUpdatedState({startRotatePos:t,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate(e){let t,{pos:i,deltaAngleX:n=0,deltaAngleY:r=0}=e,{startRotatePos:o,startRotationX:s,startRotationOrbit:a}=this.getState(),{width:l,height:c}=this.getViewportProps();if(!o||void 0===s||void 0===a)return this;if(i){let e=(i[0]-o[0])/l;(s<-90||s>90)&&(e*=-1),t={rotationX:s+180*((i[1]-o[1])/c),rotationOrbit:a+180*e}}else t={rotationX:s+r,rotationOrbit:a+n};return this._getUpdatedState(t)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(e){let t=e.getViewportProps(),i=g({},this.getViewportProps()),{rotationOrbit:n}=i;return Math.abs(n-t.rotationOrbit)>180&&(i.rotationOrbit=n<0?n+360:n-360),i}zoomStart(e){let{pos:t}=e;return this._getUpdatedState({startZoomPosition:this._unproject(t),startZoom:this.getViewportProps().zoom})}zoom(e){let{pos:t,startPos:i,scale:n}=e,{startZoom:r,startZoomPosition:o}=this.getState();if(o||(r=this.getViewportProps().zoom,o=this._unproject(i||t)),!o)return this;let s=this._calculateNewZoom({scale:n,startZoom:r}),a=this.makeViewport(v(g({},this.getViewportProps()),{zoom:s}));return this._getUpdatedState(g({zoom:s},a.panByPosition(o,t)))}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._getUpdatedState({zoom:this._calculateNewZoom({scale:e})})}zoomOut(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/e})})}moveLeft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([-e,0])}moveRight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([e,0])}moveUp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([0,-e])}moveDown(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([0,e])}rotateLeft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;
1return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-e})}rotateRight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+e})}rotateUp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-e})}rotateDown(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+e})}_project(e){return this.makeViewport(this.getViewportProps()).project(e)}_unproject(e){var t;let i=null==(t=this.unproject3D)?void 0:t.call(this,e);return i||this.makeViewport(this.getViewportProps()).unproject(e)}_calculateNewZoom(e){let{scale:t,startZoom:i}=e;void 0===i&&(i=this.getViewportProps().zoom);let n=i+Math.log2(t);return this._constrainZoom(n)}_panFromCenter(e){let{target:t}=this.getViewportProps(),i=this._project(t);return this.pan({startPosition:t,pos:[i[0]+e[0],i[1]+e[1]]})}_getUpdatedState(e){return new this.constructor(g({makeViewport:this.makeViewport}
1,this.getViewportProps(),this.getState(),e))}applyConstraints(e){let{maxRotationX:t,minRotationX:i,rotationOrbit:n}=e;return e.zoom=this._constrainZoom(e.zoom,e),e.rotationX=(0,u.qE)(e.rotationX,i,t),(n<-180||n>180)&&(e.rotationOrbit=(0,a.zi)(n+180,360)-180),e.target=this._constrainTarget(e),e}_constrainZoom(e,t){t||(t=this.getViewportProps());let{maxZoom:i,maxBounds:n}=t,{minZoom:r}=t;if(n&&t.width>0&&t.height>0){let a=(0,p.CI)(t.width,t.height,t.maxBoundsPadding),l=[];if(a.width>0||a.height>0){var o,s;let c=this.makeViewport(v(g({},t),{zoom:e})),u=(0,p.jo)(c,t.target,a);a.width>0&&l.push(u.left,u.right),a.height>0&&l.push(u.top,u.bottom);let d=2*Math.min(...l),h=n[1][0]-n[0][0],f=n[1][1]-n[0][1],m=(null!=(o=n[1][2])?o:0)-(null!=(s=n[0][2])?s:0),y=Math.sqrt(h*h+f*f+m*m);d>0&&y>0&&(r=Math.max(r,Math.log2(d/y)))>i&&(r=i)}}return(0,u.qE)(e,r,i)}_constrainTarget(e){var t;let{target:i,maxBounds:n}=e;if(!n)return i;let r=(0,p.CI)(e.width,e.height,e.maxBoundsPadding);if(r.width<0||r.height<0)return i;let[[o,s,a=0],[l,c,d=0]]=n;if(i[0]>=o&&i[0]<=l&&i[1]>=s&&i[1]<=c&&i[2]>=a&&i[2]<=d)return i;let h=null==(t=this.makeViewport)?void 0:t.call(this,e);if(h){let{cameraPosition:e}=h,t=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2],p=t*i[0]+n*i[1]+r*i[2],f=t*(t>=0?o:l)+n*(n>=0?s:c)+r*(r>=0?a:d),g=t*(t>=0?l:o)+n*(n>=0?c:s)+r*(r>=0?d:a);if((t||n||r)&&p>=f&&p<=g){let e=e=>(0,u.qE)(e,o,l),h=e=>(0,u.qE)(e,s,c),f=e=>(0,u.qE)(e,a,d),g=o=>t*e(i[0]-o*t)+n*h(i[1]-o*n)+r*f(i[2]-o*r)-p,v=-1,m=1,y=g(-1),b=g(m);for(;y<0;)m=v,b=y,v*=2,y=g(v);for(;b>0;)v=m,y=b,m*=2,b=g(m);for(let e=0;e<30;e++){let e=(v+m)/2;g(e)>0?v=e:m=e}let w=(v+m)/2;return[e(i[0]-w*t),h(i[1]-w*n),f(i[2]-w*r)]}}return[(0,u.qE)(i[0],o,l),(0,u.qE)(i[1],s,c),(0,u.qE)(i[2],a,d)]}constructor(e){let{width:t,height:i,rotationX:n=0,rotationOrbit:r=0,target:o=[0,0,0],zoom:s=0,minRotationX:a=-90,maxRotationX:l=90,minZoom:c=-1/0,maxZoom:u=1/0,maxBounds:d=null,maxBoundsPadding:h=null,startPanPosition:p,startRotatePos:f,startRotationX:g,startRotationOrbit:v,startZoomPosition:m,startZoom:y}=e;super({width:t,height:i,rotationX:n,rotationOrbit:r,target:o,zoom:s,minRotationX:a,maxRotationX:l,minZoom:c,maxZoom:u,maxBounds:d,maxBoundsPadding:h},{startPanPosition:p,startRotatePos:f,startRotationX:g,startRotationOrbit:v,startZoomPosition:m,startZoom:y},e.makeViewport),this.unproject3D=e.unproject3D}}class y extends d.A{setProps(e){e.unproject3D=this._unproject3D,super.setProps(e)}constructor(){super(...arguments),this.ControllerState=m,this.transition={transitionDuration:300,transitionInterpolator:new f.A({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})},this._unproject3D=e=>{if(this.pickPosition){let{x:t,y:i}=this.props,n=this.pickPosition(t+e[0],i+e[1]);if(n&&n.coordinate)return n.coordinate}return null}}}class b extends n.A{getViewportType(){return c}get ControllerType(){return y}constructor(e={}){super(e),this.props.orbitAxis=e.orbitAxis||"Z"}}b.displayName="OrbitView";let w=b},78977(e,t,i){i.d(t,{A:()=>s});var n=i(8340),r=i(59377);function o(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}class s{equals(e){return this===e||this.constructor===e.constructor&&(0,r.b)(this.props,e.props,2)}clone(e){return new this.constructor(o({},this.props,e))}makeViewport(e){let{width:t,height:i,viewState:n}=e;n=this.filterViewState(n);let r=this.getDimensions({width:t,height:i});return r.height&&r.width?new(this.getViewportType(n))(o({},n,this.props,r)):null}getViewStateId(){let{viewState:e}=this.props;return"string"==typeof e?e:(null==e?void 0:e.id)||this.id}filterViewState(e){if(this.props.viewState&&"object"==typeof this.props.viewState){if(!this.props.viewState.id)return this.props.viewState;var t=this.props.viewState;let i=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}
1))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},e);for(let e in t)"id"!==e&&(Array.isArray(i[e])&&Array.isArray(t[e])?i[e]=function(e,t){e=e.slice();for(let i=0;i<t.length;i++){let n=t[i];Number.isFinite(n)&&(e[i]=n)}return e}(i[e],t[e]):i[e]=t[e]);return i}return e}getDimensions(e){let{width:t,height:i}=e,r={x:(0,n.E9)(this._x,t),y:(0,n.E9)(this._y,i),width:(0,n.E9)(this._width,t),height:(0,n.E9)(this._height,i)};return this._padding&&(r.padding={left:(0,n.E9)(this._padding.left,t),top:(0,n.E9)(this._padding.top,i),right:(0,n.E9)(this._padding.right,t),bottom:(0,n.E9)(this._padding.bottom,i)}),r}get controller(){let e=this.props.controller;return e?!0===e?{type:this.ControllerType}:"function"==typeof e?{type:e}:o({type:this.ControllerType},e):null}constructor(e){var t,i;let{id:r,x:s=0,y:a=0,width:l="100%",height:c="100%",padding:u=null}=e;this.id=r||this.constructor.displayName||"view",this.props=(t=o({},e),i=i={id:this.id},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}),t),this._x=(0,n.rk)(s),this._y=(0,n.rk)(a),this._width=(0,n.rk)(l),this._height=(0,n.rk)(c),this._padding=u&&{left:(0,n.rk)(u.left||0),right:(0,n.rk)(u.right||0),top:(0,n.rk)(u.top||0),bottom:(0,n.rk)(u.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}}},19057(e,t,i){i.d(t,{A:()=>v});var n=i(96540),r=i(5529);let o="u">typeof window?n.useLayoutEffect:n.useEffect;function s(e,t){for(;e;){if(e===t)return!0;e=Object.getPrototypeOf(e)}return!1}var a=i(78977),l=i(13563);let c={position:"absolute",zIndex:-1};function u(e){return n.isValidElement(e)}let d=(0,n.createContext)(),h={mixBlendMode:null};function p(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},n=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(i).filter(function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable}))),n.forEach(function(t){var n;n=i[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function f(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t})(Object(t)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))}),e}function g(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}
1let v=n.forwardRef(function(e,t){let[i,v]=(0,n.useState)(0),m=(0,n.useRef)({control:null,version:i,forceUpdate:()=>v(e=>e+1)}).current,y=(0,n.useRef)(null),b=(0,n.useRef)(null),w=(0,n.useMemo)(()=>(function(e){let{children:t,layers:i=[],views:r}=e,o=[],c=[],d={};return n.Children.forEach(function e(t){if("function"==typeof t)return(0,n.createElement)(a.A,{},t);if(Array.isArray(t))return t.map(e);if(u(t)){if(t.type===n.Fragment)return e(t.props.children);s(t.type,a.A)}return t}(t),e=>{if(u(e)){let t=e.type;if(s(t,l.A)){let i=function(e,t){let i={},n=e.defaultProps||{};for(let e in t)n[e]!==t[e]&&(i[e]=t[e]);return new e(i)}(t,e.props);c.push(i)}else o.push(e);if(s(t,a.A)&&t!==a.A&&e.props.id){let i=new t(e.props);d[i.id]=i}}else e&&o.push(e)}),Object.keys(d).length>0&&(Array.isArray(r)?r.forEach(e=>{d[e.id]=e}):r&&(d[r.id]=r),r=Object.values(d)),{layers:i=c.length>0?[c,i]:i,children:o,views:r}})(e),[e.layers,e.views,e.children]),_=!0,P=t=>{var i;return _&&e.viewState?(m.viewStateUpdateRequested=t,null):(m.viewStateUpdateRequested=null,null==(i=e.onViewStateChange)?void 0:i.call(e,t))},O=t=>{if(_)m.interactionStateUpdateRequested=t;else{var i;m.interactionStateUpdateRequested=null,null==(i=e.onInteractionStateChange)||i.call(e,t)}},j=(0,n.useMemo)(()=>{let t=f(p({widgets:[]},e),{style:null,width:"100%",height:"100%",parent:y.current,canvas:b.current,layers:w.layers,onViewStateChange:P,onInteractionStateChange:O});return w.views&&(t.views=w.views),delete t._customRender,m.deck&&(m.deck.setProps(t),m.deck.isInitialized&&(m.lastRenderedViewports=m.deck.getViewports())),t},[e]);(0,n.useEffect)(()=>{var t;let i,n=e.Deck||r.A;return t=f(p({},j),{parent:y.current,canvas:b.current}),i=new n(f(p({},t),{_customRender:e=>{var n,r;m.redrawReason=e;let o=(null==(n=i.device)?void 0:n.type)==="webgpu",s=i.getViewports();if(m.lastRenderedViewports!==s){let e;if((!o||(r=t.parent||null,(e=m.deck)&&r&&e.width===r.clientWidth&&e.height===r.clientHeight))&&m.forceUpdate(),!o)return}g(m)}})),m.deck=i,()=>{var e;return null==(e=m.deck)?void 0:e.finalize()}},[]),o(()=>{g(m);let{viewStateUpdateRequested:e,interactionStateUpdateRequested:t}=m;e&&P(e),t&&O(t)}),(0,n.useImperativeHandle)(t,()=>({get deck(){return m.deck},pickObjectAsync:e=>m.deck.pickObjectAsync(e),pickObjectsAsync:e=>m.deck.pickObjectsAsync(e),pickObject:e=>m.deck.pickObject(e),pickMultipleObjects:e=>m.deck.pickMultipleObjects(e),pickObjects:e=>m.deck.pickObjects(e)}),[]);let x=m.deck&&m.deck.isInitialized?m.deck.getViewports():void 0,{ContextProvider:C,width:S="100%",height:k="100%",id:M,style:A}=e,{containerStyle:E,canvasStyle:T}=(0,n.useMemo)(()=>(function(e){let{width:t,height:i,style:n}=e,r={position:"absolute",zIndex:0,left:0,top:0,width:t,height:i},o={left:0,top:0};if(n)for(let e in n)e in h?o[e]=n[e]:r[e]=n[e];return{containerStyle:r,canvasStyle:o}})({width:S,height:k,style:A}),[S,k,A]);if(!m.viewStateUpdateRequested&&m.lastRenderedViewports===x||m.version!==i){m.lastRenderedViewports=x,m.version=i;let e=function(e){let{children:t,deck:i,ContextProvider:r=d.Provider}=e,{viewManager:o}=i||{};if(!o||!o.views.length)return[];let l={},h=o.views[0].id;for(let e of t){let t=h,i=e;u(e)&&s(e.type,a.A)&&(t=e.props.id||h,i=e.props.children);let r=o.getViewport(t),d=o.getViewState(t);if(r){d.padding=r.padding;let{x:e,y:o,width:s,height:a}=r;i=function e(t,i){if("function"==typeof t)return t(i);if(Array.isArray(t))return t.map(t=>e(t,i));if(u(t)){if(function(e){var t;return null==(t=e.props)?void 0:t.mapStyle}(t))return i.style=c,(0,n.cloneElement)(t,i);if(function(e){let t=e.type;return t&&t.deckGLViewProps}(t))return(0,n.cloneElement)(t,i)}return t}(i,{x:e,y:o,width:s,height:a,viewport:r,viewState:d}),l[t]||(l[t]={viewport:r,children:[]}),l[t].children.push(i)}}return Object.keys(l).map(e=>{let{viewport:t,children:o}=l[e],{x:s,y:a,width:c,height:u}=t,d="view-".concat(e),h=(0,n.createElement)("div",{key:d,id:d,style:{position:"absolute",left:s,top:a,width:c,height:u}},...o),p={deck:i,viewport:t,container:i.canvas.offsetParent,eventManager:i.eventManager,onViewStateChange:t=>{t.viewId=e,i._onViewStateChange(t)}
1,widgets:[]},f="view-".concat(e,"-context");return(0,n.createElement)(r,{key:f,value:p},h)})}({children:w.children,deck:m.deck,ContextProvider:C}),t=(0,n.createElement)("canvas",{key:"canvas",id:M||"deckgl-overlay",ref:b,style:T}),r=(0,n.createElement)("div",{key:"deck-events-root",className:"deck-events-root",style:{width:S,height:k}},[t,e]),o=(0,n.createElement)("div",{key:"deck-widgets-root",className:"deck-widgets-root"});m.control=(0,n.createElement)("div",{id:"".concat(M||"deckgl","-wrapper"),ref:y,style:E},[r,o])}return _=!1,m.control})}}]); 2//# sourceMappingURL=37c6afb1.461ee78e.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.