PageSourceSearch

https://deck.gl/assets/js/41f7fd2b.dbe855c2.js

js deck.gl collected 2026-10-01 10:13:20 UTC 333,582 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([["2230"],{90834(e,t,n){n.r(t),n.d(t,{metadata:()=>i,default:()=>V,frontMatter:()=>I,contentTitle:()=>R,toc:()=>L,assets:()=>D});var i=JSON.parse('{"id":"brushing-extension","title":"BrushingExtension","description":"","source":"@site/src/examples/brushing-extension.mdx","sourceDirName":".","slug":"/brushing-extension","permalink":"/examples/brushing-extension","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"examplesSidebar","previous":{"title":"OrthographicView","permalink":"/examples/orthographic-view"},"next":{"title":"CollisionFilterExtension","permalink":"/examples/collision-filter-extension"}}'),r=n(74848),o=n(28453),s=n(96540),a=n(83311),l=n(44662);n(5338);var c=n(51381),u=n(19057),d=n(67607),h=n(52425),p=n(26423),f=n(36485);let g="layout(std140) uniform brushingUniforms {\n  bool enabled;\n  highp int target;\n  vec2 mousePos;\n  float radius;\n} brushing;\n",v="\n".concat(g,"\n").concat("\n  in vec2 brushingTargets;\n\n  out float brushing_isVisible;\n\n  bool brushing_isPointInRange(vec2 position) {\n    if (!brushing.enabled) {\n      return true;\n    }\n    vec2 source_commonspace = project_position(position);\n    vec2 target_commonspace = project_position(brushing.mousePos);\n    float distance = length((target_commonspace - source_commonspace) / project.commonUnitsPerMeter.xy);\n\n    return distance <= brushing.radius;\n  }\n\n  bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {\n    return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);\n  }\n\n  void brushing_setVisible(bool visible) {\n    brushing_isVisible = float(visible);\n  }\n","\n"),m="\n".concat(g,"\n").concat("\n  in float brushing_isVisible;\n","\n"),y={source:0,target:1,custom:2,source_target:3},b={name:"brushing",dependencies:[f.A],vs:v,fs:m,inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n    vec2 brushingTarget;\n    vec2 brushingSource;\n    if (brushing.target == 3) {\n      brushingTarget = geometry.worldPositionAlt.xy;\n      brushingSource = geometry.worldPosition.xy;\n    } else if (brushing.target == 0) {\n      brushingTarget = geometry.worldPosition.xy;\n    } else if (brushing.target == 1) {\n      brushingTarget = geometry.worldPositionAlt.xy;\n    } else {\n      brushingTarget = brushingTargets;\n    }\n    bool visible;\n    if (brushing.target == 3) {\n      visible = brushing_arePointsInRange(brushingSource, brushingTarget);\n    } else {\n      visible = brushing_isPointInRange(brushingTarget);\n    }\n    brushing_setVisible(visible);\n  ","fs:DECKGL_FILTER_COLOR":"\n    if (brushing.enabled && brushing_isVisible < 0.5) {\n      discard;\n    }\n  "},getUniforms:e=>{if(!e||!("viewport"in e))return{};let{brushingEnabled:t=!0,brushingRadius:n=1e4,brushingTarget:i="source",mousePosition:r,viewport:o}=e;return{enabled:!!(t&&r&&o.containsPixel(r)),radius:n,target:y[i]||0,mousePos:r?o.unproject([r.x-o.x,r.y-o.y]):[0,0]}},uniformTypes:{enabled:"i32",target:"i32",mousePos:"vec2<f32>",radius:"f32"}};class _ extends p.A{getShaders(){return{modules:[b]}}initializeState(e,t){let n=this.getAttributeManager();n&&n.add({brushingTargets:{size:2,stepMode:"dynamic",accessor:"getBrushingTarget"}});let i=()=>{var e;null==(e=this.getCurrentLayer())||e.setNeedsRedraw()};this.state.onMouseMove=i,e.deck&&e.deck.eventManager.on({pointermove:i,pointerleave:i})}finalizeState(e,t){if(e.deck){let t=this.state.onMouseMove;e.deck.eventManager.off({pointermove:t,pointerleave:t})}}draw(e,t){let{viewport:n,mousePosition:i}=e.context,{brushingEnabled:r,brushingRadius:o,brushingTarget:s}=this.props;this.setShaderModuleProps({brushing:{viewport:n,mousePosition:i,brushingEnabled:r,brushingRadius:o,brushingTarget:s}})}}_.defaultProps={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},_.extensionName="BrushingExtension";var w=n(43837);let P=[35,181,184],x=[166,3,3],O={longitude:-100,latitude:40.7,zoom:3,maxZoom:15,pitch:0,bearing:0},j=new _;function C(e){let{object:t}=e;return t&&"    ".concat(t.county.properties.name,"\n    Net gain: ").concat(t.netGain)}function S(e){let{device:t,data:n,enableBrushing:i=!0,brushRadius:o=1e5,strokeWidth:a=1,opacity:l=.7,mapStyle:p="https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json"}=e,f=(0,s.useMemo)(()=>(function(e){if(!e||!e.length)return null;let t=[],n=e.map((n,i)=>{let{flows:r}=n.properties,o=0;return Object.keys(r).forEach(i=>
1{let s=Number(i),a=r[s];o-=a,a>=50&&t.push({source:n,target:e[s],value:a})}),{county:n,netGain:o}}).sort((e,t)=>Math.abs(t.netGain)-Math.abs(e.netGain));return{arcs:t,points:n}})(n),[n]),g=(0,s.useMemo)(()=>f&&(0,w.RZ)().domain([0,Math.abs(f.points[0].netGain)]).range([1,20]),[f]),v=f&&[new d.A({id:"sources-with-gain",data:f.arcs,brushingRadius:o,brushingEnabled:i,brushingTarget:"custom",getPosition:e=>e.target.properties.centroid,getRadius:e=>g(e.value),getBrushingTarget:e=>e.source.properties.centroid,getFillColor:P,visible:i,radiusScale:3e3,extensions:[j]}),new d.A({id:"sources-with-loss",data:f.arcs,brushingRadius:o,brushingEnabled:i,brushingTarget:"custom",getPosition:e=>e.source.properties.centroid,getRadius:e=>g(e.value),getBrushingTarget:e=>e.target.properties.centroid,getFillColor:x,visible:i,radiusScale:3e3,extensions:[j]}),new d.A({id:"destinations",data:f.points,brushingRadius:o,lineWidthMinPixels:2,stroked:!0,pickable:!0,brushingEnabled:i,radiusScale:3e3,getPosition:e=>e.county.properties.centroid,getLineColor:e=>e.netGain>0?P:x,getFillColor:[0,0,0,0],getRadius:e=>g(e.netGain)+4,extensions:[j]}),new h.A({id:"arc",data:f.arcs,getWidth:a,opacity:l,brushingRadius:o,brushingEnabled:i,brushingTarget:"source_target",getSourcePosition:e=>e.source.properties.centroid,getTargetPosition:e=>e.target.properties.centroid,getSourceColor:x,getTargetColor:P,extensions:[j]})];return(0,r.jsx)(u.A,{device:t,layers:v,initialViewState:O,controller:!0,getTooltip:C,children:(0,r.jsx)(c.T5,{reuseMaps:!0,mapStyle:p})})}var k=n(19003);function M(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let A=[P,x].map(e=>"rgb(".concat(e.join(","),")"));class E extends s.Component{static renderInfo(e){return(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{children:["People moving in and out of ",(0,r.jsx)("b",{children:e.sourceName})," between 2009-2013"]}),(0,r.jsx)("div",{className:"layout",children:A.map((e,t)=>(0,r.jsx)("div",{className:"legend",style:{background:e,width:"".concat(100/A.length,"%")}},t))}),(0,r.jsxs)("p",{className:"layout",children:[(0,r.jsx)("span",{className:"col-1-2",children:"Net gain"}),(0,r.jsx)("span",{className:"col-1-2 text-right",children:"Net loss"})]}),(0,r.jsxs)("p",{children:["Data source: ",(0,r.jsx)("a",{href:"http://www.census.gov",children:"US Census Bureau"})]}),(0,r.jsxs)("div",{className:"layout",children:[(0,r.jsxs)("div",{className:"stat col-1-2",children:["No. of Counties",(0,r.jsx)("b",{children:e.count||0})]}),(0,r.jsxs)("div",{className:"stat col-1-2",children:["No. of Arcs",(0,r.jsx)("b",{children:(0,l.jH)(e.flowCount||0)})]})]})]})}render(){var e,t;let{params:n}=this.props;return(0,r.jsx)(S,(e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){M(e,t,n[t])})}return e}({},this.props),t=t={enableBrushing:n.enableBrushing.value,strokeWidth:n.lineWidth.value,brushRadius:n.brushRadius.value,opacity:n.opacity.value},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e))}}M(E,"title","United States County-to-county Migration"),M(E,"data",{url:"".concat(a.Ut,"/arc-data.txt"),worker:"/workers/arc-data-decoder.js"}),M(E,"code","".concat(a.lP,"/examples/website/brushing")),M(E,"parameters",{enableBrushing:{displayName:"Enable Brushing",type:"checkbox",value:!0},lineWidth:{displayName:"Width",type:"range",value:1,step:1,min:1,max:10},opacity:{displayName:"Arc Opacity",type:"range",value:.4,step:.01,min:0,max:1},brushRadius:{displayName:"Brush Radius",type:"range",value:2e5,step:1e3,min:5e4,max:1e6}}),M(E,"mapStyle",a.Vi.LIGHT);let T=(0,k.xv)(E),I={},R="BrushingExtension",D={},L=[];function z(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:"brushingextension",children:"BrushingExtension"})}),"\n","\n",(0,r.jsx)(T,{})]})}function V(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(z,{...e})}):z(e)}},19003(e,t,n){let i;n.d(t,{xv:()=>Q,Ys:()=>es,ww:()=>ef});var r,o=n(74848),s=n(96540),a=n(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 n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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:n,max:i,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!==n&&(o=Math.max(n,o)),void 0!==i&&(o=Math.min(i,o)),c(t,o)},[n,i,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:n,max:i,value:l,step:r,onChange:d,style:u?{accentColor:u}:void 0})]})}function y(e){let{name:t,value:n,displayName:i,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:i}),(0,o.jsxs)("div",{className:"tooltip",children:[i,": ",String(r)]}),(0,o.jsx)("input",{type:"checkbox",checked:n,onChange:l})]})}function b(e){let{name:t,onChange:n,displayName:i,altValue:r,displayValue:a}=e,l=function(e,t){if(null==e)return{};var n,i,r,o={};if("u">typeof Reflect&&Reflect.ownKeys){for(r=0,n=Reflect.ownKeys(Object(e));r<n.length;r++)i=n[r],!(t.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i]);return o}if(o=function(e,t){if(null==e)return{};var n,i,r={},o=Object.getOwnPropertyNames(e);for(i=0;i<o.length;i++)n=o[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}(e,t),Object.getOwnPropertySymbols)for(r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)i=n[r],!(t.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i]);return o}(e,["name","onChange","displayName","altValue","displayValue"]),c=(0,s.useCallback)(e=>{n(t,e.target.value)},[n]),u=(0,s.useCallback)(()=>{n(t,r)},[r,n]);if("legend"===e.type){let t=e.value||[];Array.isArray(t)||(t=[]);let n=n=>{let i=t.map((e,t)=>t===n?g(f({},e),{selected:!e.selected}):e);e.onChange&&e.onChange(e.name,i)},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:i}),(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)(_,{color:r[t].color,label:r[t].label,selected:r[t].selected,onClick:()=>n(2*t)},"left-".concat(t)),s[t]&&(0,o.jsx)(_,{color:s[t].color,label:s[t].label,right:!0,selected:s[t].selected,onClick:()=>n(2*t+1)},"right-".concat(t))])})]})}switch(e.type){case"link":return(0,o.jsxs)(v,{children:[(0,o.jsx)("label",{children:i}),(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:i}),(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:i}),(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:i}),(0,o.jsxs)("div",{className:"tooltip",children:[i,": ",String(a)]}),(0,o.jsx)("input",g(f({},l),{value:a,onChange:c}))]})}}function _(e){let{color:t,label:n,right:i,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:i?"row-reverse":"row",justifyContent:i?"flex-end":"flex-start",textAlign:i?"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:i?6:2,marginRight:i?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:n})]})}let w=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 n=(t.progress||0)+(t.progressAlt||0),i=Math.round(1e3*n)/10,r="Loading... ".concat(i,"%");return(0,o.jsxs)(w,{className:n>=1?"done":"",children:[(0,o.jsx)("div",{className:"spinner--text",children:r}),(0,o.jsx)("div",{className:"spinner--fill",style:{width:"".concat(i,"%")},children:r})]})}let x=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 O(e){let{title:t,children:n,sourceLink:i}
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:n}),(0,o.jsx)(p,{$expanded:r,href:i,target:"_new",children:"View Code \u2197"})]})}function j(e){let{title:t,sourceLink:n,params:i,meta:r,children:s,updateParam:a}=e;return(0,o.jsxs)(O,{title:t,sourceLink:n,children:[(0,o.jsxs)(x,{children:[s,Object.keys(i).length>0&&(0,o.jsx)("hr",{}),Object.keys(i).map((e,t)=>{var n,r;return(0,o.jsx)(b,(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({name:e},i[e]),r=r={onChange:a},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n),"".concat(t,"-").concat(e))})]}),(0,o.jsx)(P,{meta:r})]})}var C=n(83868),S=n(44662),k=n(83311),M=n(66497),A=n(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);"]),R=e=>{var t,n;let{children:i}=e,r=s.Children.toArray(i),[a,l]=(0,s.useState)((null==(t=r[0])?void 0:t.props.tag)||(null==(n=r[0])?void 0:n.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)})]})},D=e=>{let{children:t}=e;return(0,o.jsx)(o.Fragment,{children:t})};var L=n(64651),z=n(60966),V=n(51598),F=n(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){}},i=0,e=>({deviceType:void 0,deviceError:void 0,device:void 0,setDeviceType:async t=>{let n,o,s=++i;e({deviceType:t,deviceError:void 0,device:void 0});try{o=await B(t)}catch(e){n=e.message}if(s===i)return r(t),e({deviceType:t,deviceError:n,device:o})}})));function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 Z={devices:["webgl2","webgpu"]},H=e=>{e=W({},Z,e);let t=G(e=>e.deviceType),n=G(e=>e.deviceError),i=G(e=>e.setDeviceType);return(0,o.jsxs)(R,{selectedItem:t,setSelectedItem:i,children:[e.devices.includes("webgl2")&&(0,o.jsx)(D,{title:"WebGL2",tag:"webgl",children:n},"WebGL2"),e.devices.includes("webgpu")&&(0,o.jsx)(D,{title:"WebGPU",tag:"webgpu",children:n},"WebGPU")]})},q=e=>(0,o.jsx)(A.A,{children:()=>(0,o.jsx)(H,W({},e))});function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{parameters:i={},mapStyle:r}=e,a=Object.keys(i).reduce((e,t)=>(e[t]=(0,S.H5)(i[t]),e),{}),l=Array.isArray(e.data)?e.data.map(e=>null):null;
1return function(){let[i,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,n)=>(t[n]=(0,S.H5)(e[n]),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 n=Array.isArray(t);n||(t=[t]);for(let e=0;e<t.length;e++){let{url:i,worker:r}=t[e];(0,C.Z)((0,C.u)(g,i),r&&(0,C.u)(g,r),(t,i)=>{n?c(n=>{let i=n.slice();return i[e]=t,i}):c(t),i&&p(e=>Y({},e,i))})}},[]),(0,o.jsxs)(o.Fragment,{children:[e.hasDeviceTabs&&(0,o.jsx)(q,{}),(0,o.jsxs)(X,{style:n,children:[(!e.hasDeviceTabs||f)&&(0,o.jsx)(e,{device:f,data:i,mapStyle:r||k.Vi.BLANK,params:u,useParam:v,onStateChange:m},null==f?void 0:f.id),t&&(0,o.jsx)(j,{title:e.title,params:u,meta:h,updateParam:(e,t)=>{let n=u[e];n&&d(K(Y({},u),{[e]:(0,S.H5)(K(Y({},n),{value:t}))}))},sourceLink:e.code,children:e.renderInfo(h)}),t&&r&&(0,o.jsx)(J,{children:"Hold down shift to rotate"})]})]})}}var ee=n(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;"]),en=a.Ay.main.withConfig({displayName:"styled__MainExamples",componentId:"sc-62556978-1"})(["padding:16px 0;"]),ei=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,n=(0,ee.t)();return(0,o.jsx)(en,{children:n.items.map(e=>"category"===e.type?function(e,t){let{label:n,items:i}=e;return[(0,o.jsx)(et,{children:n},"".concat(n,"-header")),(0,o.jsx)(ei,{children:i.map(e=>(function(e,t){let n=(0,M.Ay)(t(e)),{label:i,href:r}=e;return(0,o.jsxs)(er,{href:r,children:[(0,o.jsx)("img",{width:"100%",src:n,alt:i}),(0,o.jsx)(eo,{children:(0,o.jsx)("span",{children:i})})]},i)})(e,t))},n)]}(e,t):null)})}var ea=n(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:n}=e,{siteConfig:i}=(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:i.title}),(0,o.jsx)("p",{children:i.tagline}),(0,o.jsx)(ep,{href:"./docs/get-started/getting-started",children:"GET STARTED"})]})]}),n]})}},83311(e,t,n){n.d(t,{Ut:()=>r,Vi:()=>i,lP:()=>o});let i={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,n){n.d(t,{Z:()=>s,u:()=>a});var i=n(63120);let r={};function o(e,t){let n=0;r[e]&&r[e].terminate();let i=new Worker(e);r[e]=i;let o=[];i.onmessage=e=>{let{action:n,data:r,meta:s}=e.data;"end"===n?i.terminate():"add"===n&&r&&r.length&&t(o=o.concat(r),s)},this.onProgress=e=>{let{responseText:t}=e.target,r=t.lastIndexOf("\n")+1;i.postMessage({event:"progress",text:t.slice(n,r)}),n=r},this.onLoad=e=>{let{responseText:t}=e;i.postMessage({event:"load",text:t.slice(n)})}}function s(e,t,n){if(t){let r=(0,i.Em)(e),s=new o(t,(e,t)=>{n(e,t)});r.on("progress",s.onProgress).on("load",s.onLoad).get()}else/\.(json|geojson)$/.test(e)?(0,i.Pq)(e,(e,t)=>{e||n(t,{})}):(0,i.Qq)(e,(e,t)=>{e||n(t,{})})}function a(e,t){return t.match(/^\w+:\/\//)?t:"".concat(e.replace(/\/$/,""),"/").concat(t.replace(/^\//,""))}},44662(e,t,n){n.d(t,{H5:()=>s,jH:()=>a});var i=n(77041);function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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,i.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},28453(e,t,n){n.d(t,{R:()=>s,x:()=>a});var i=n(96540);let r={},o=i.createContext(r);function s(e){let t=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(o.Provider,{value:t},e.children)}},4668(e,t,n){n.d(t,{A:()=>function e(){var t=(0,r.Ay)();return t.copy=function(){return(0,r.C)(t,e())},o.C.apply(t,arguments),c(t)},C:()=>c});var i=n(6946),r=n(86228),o=n(99065),s=n(1631),a=n(47235),l=n(47275);function c(e){var t=e.domain;return e.ticks=function(e){var n=t();return(0,i.Ay)(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return function(e,t,n,r){var o,c,u,d=(0,i.sG)(e,t,n);switch((r=(0,s.A)(null==r?",f":r)).type){case"s":var h=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(u=Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,a.A)(h)/3)))-(0,a.A)(Math.abs(d))))||(r.precision=u),(0,l.s)(r,h);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN((o=d,c=Math.abs(c=Math.max(Math.abs(e),Math.abs(t)))-(o=Math.abs(o)),u=Math.max(0,(0,a.A)(c)-(0,a.A)(o))+1))||(r.precision=u-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(u=Math.max(0,-(0,a.A)(Math.abs(d))))||(r.precision=u-("%"===r.type)*2)}return(0,l.GP)(r)}(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,o,s=t(),a=0,l=s.length-1,c=s[a],u=s[l],d=10;for(u<c&&(o=c,c=u,u=o,o=a,a=l,l=o);d-- >0;){if((o=(0,i.lq)(c,u,n))===r)return s[a]=c,s[l]=u,t(s);if(o>0)c=Math.floor(c/o)*o,u=Math.ceil(u/o)*o;else if(o<0)c=Math.ceil(c*o)/o,u=Math.floor(u*o)/o;else break;r=o}return e},e}},43837(e,t,n){n.d(t,{RZ:()=>c});var i=n(4668),r=n(86228),o=n(99065);function s(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function a(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function l(e){return e<0?-e*e:e*e}function c(){return(function e(){var t,n,c,u=(n=(t=(0,r.Gu)())(r.D_,r.D_),c=1,n.exponent=function(e){return arguments.length?1==(c=+e)?t(r.D_,r.D_):.5===c?t(a,l):t(s(c),s(1/c)):c},(0,i.C)(n));return u.copy=function(){return(0,r.C)(u,e()).exponent(u.exponent())},o.C.apply(u,arguments),u}).apply(null,arguments).exponent(.5)}},89293(e,t,n){n.d(t,{A:()=>C});var i=n(21758);function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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,n=this.props;if(this.props=e,!n||this._shouldIgnoreViewportChange(n,e))return!1;if(this._isTransitionEnabled(e)){let i=n;if(this.transition.inProgress){let{interruption:e,endProps:t}=this.transition.settings;i=r({},n,2===e?t:this.propsInTransition||n)}this._triggerTransition(i,e),t=!0}else this.transition.cancel();return t}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:t,transitionInterpolator:n}=e;return(t>0||"auto"===t)&&!!n}_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 n=this.getControllerState(e,s),i=this.getControllerState(t,a).shortestPathFrom(n),r=t.transitionInterpolator,o=r.getDuration?r.getDuration(e,t):t.transitionDuration;if(0===o)return;let c=r.initializeProps(e,i);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:n,startProps:i,endProps:o,duration:a,easing:l}}=e,c=l(t/a),u=n.interpolateProps(i,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 i.A(e.timeline),this.onViewStateChange=e.onViewStateChange||o,this.onStateChange=e.onStateChange||o}}var u=n(43396),d=n(59377),h=n(86083);function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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"],_=["pinchstart","pinchmove","pinchend"],w=["multipanstart","multipanmove","multipanend"],P=["dblclick"],x=["dblclickdragstart","dblclickdragmove","dblclickdragend","dblclickdragcancel"],O=["keydown"],j={};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:n}=this.props,{offsetCenter:i}=e;return[i.x-t,i.y-n]}getZoomPosition(e){if("pointer"===this.zoomAround)return e;let t=this.makeViewport(this.controllerState.getViewportProps()),[n,i]=(0,h.VJ)(t.center,t.pixelProjectionMatrix);return[n,i]}isPointInBounds(e,t){let{width:n,height:i}=this.props;if(t&&t.handled)return!1;let r=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=i;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:n}=e;this.inertia=Number.isFinite(n)?n:300*(!0===n);let{scrollZoom:i=!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&&i),this.toggleEvents(b,m),this.toggleEvents(_,m&&(l||"rotate"===u)),this.toggleEvents(w,m&&!!u),this.toggleEvents(P,m&&s),this.toggleEvents(x,m&&a),this.toggleEvents(O,m&&v),this.scrollZoom=i,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})),n=t.getViewportProps();Object.keys(n).some(t=>!(0,d.b)(n[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,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=p({},e.getViewportProps(),t),r=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(n),r){let e=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,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 n=t.getViewportProps();return Object.keys(n).some(e=>!(0,d.b)(this.props[e],n[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 n=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||"pan"===this.dragMode)&&(n=!n);let i=n?"pan":"rotate",r=this._getConstraintContext(i,"start"),o=n?this.controllerState.panStart({pos:t},r):this.controllerState.rotateStart({pos:t},r);return this._panMove=n,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),n=this.controllerState.pan({pos:t},this._getConstraintContext("pan","update"));return this.updateViewport(n,g,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:t}=this;if(this.dragPan&&t&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*t/2,n[1]+e.velocityY*t/2],r=this.controllerState.pan({pos:i}).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"),n=e.panEnd(t),i=this._getReboundTransition(t,n);this.updateViewport(n,i,{isDragging:!1,isPanning:!!i})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let t=this.getCenter(e),n=this.controllerState.rotate({pos:t},this._getConstraintContext("rotate","update"));return this.updateViewport(n,g,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:t}=this;if(this.dragRotate&&t&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*t/2,n[1]+e.velocityY*t/2],r=this.controllerState.rotate({pos:i}).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"),n=e.rotateEnd(t),i=this._getReboundTransition(t,n);this.updateViewport(n,i,{isDragging:!1,isRotating:!!i})}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:n=.01,smooth:i=!1}=!0===this.scrollZoom?{}:this.scrollZoom,{delta:r}=e,o=2/(1+Math.exp(-Math.abs(r*n)));r<0&&0!==o&&(o=1/o);let s=this.getZoomPosition(t),a=i?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}),i||this._setInteractionState({isZooming:!1,isPanning:!1}),!0}_onMultiPanStart(e){let{multiTouchDrag:t}=this;if(!t||!this._isMultiPanEventAllowed(e,t))return!1;let n=e.offsetCenter;if(!this.isPointInBounds(this.getCenter(e),e))return!1;let i="trackpad"===e.pointerType,r={x:n.x-(i?0:e.deltaX),y:n.y-(i?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:n}=this._getMultiPanEvent(e);return!!t&&!!n&&!!this.isDragging()&&("pan"===t?this._onPanMove(n):this._onPanRotate(n))}_onMultiPanEnd(e){let{mode:t,event:n}=this._getMultiPanEvent(e);
1if(!t||!n||!this.isDragging())return this._resetMultiPan(),!1;let i="pan"===t?this._onPanMoveEnd(n):this._onPanRotateEnd(n);return this._resetMultiPan(),i}_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,n=this._multiPanStartCenter;return t&&n?{mode:t,event:f(p({},e),{offsetCenter:{x:n.x+e.deltaX,y:n.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 n=this.controllerState.zoomStart({pos:this.getZoomPosition(t)},this._getConstraintContext("zoom","start")).rotateStart({pos:t},this._getConstraintContext("rotate","start"));return j._startPinchRotation=e.rotation,j._lastPinchEvent=e,this.updateViewport(n,g,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let t=this.controllerState;if(this.touchZoom){let{scale:n}=e,i=this.getCenter(e);t=t.zoom({pos:this.getZoomPosition(i),scale:n},this._getConstraintContext("zoom","update"))}if(this.touchRotate){let{rotation:n}=e;t=t.rotate({deltaAngleX:j._startPinchRotation-n},this._getConstraintContext("rotate","update"))}return this.updateViewport(t,g,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),j._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:t}=this,{_lastPinchEvent:n}=j;if(this.touchZoom&&t&&n&&e.scale!==n.scale){let i=this.getCenter(e),r=this.getZoomPosition(i),o=this.controllerState.rotateEnd(),s=Math.log2(e.scale),a=(s-Math.log2(n.scale))/(e.deltaTime-n.deltaTime),l=Math.pow(2,s+a*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"),n=this._getConstraintContext("rotate","end"),i=e.zoomEnd(t).rotateEnd(n),r=this._getReboundTransition(this.touchZoom?t:n,i);this.updateViewport(i,r,{isDragging:!1,isPanning:!!r&&this.touchZoom,isZooming:!!r&&this.touchZoom,isRotating:!!r&&this.touchRotate})}return j._startPinchRotation=null,j._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 n=this.isFunctionKeyPressed(e),i=this.getZoomPosition(t),r=this.controllerState.zoom({pos:i,scale:n?.5:2});return this.updateViewport(r,this._getTransitionProps({around:i}),{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 n=this.controllerState.zoomStart({pos:this._doubleClickDragAnchor},this._getConstraintContext("zoom","start"));return 1!==e.scale&&(n=n.zoom({pos:this._doubleClickDragAnchor,scale:e.scale},this._getConstraintContext("zoom","update"))),this.updateViewport(n,g,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDrag(e){let t=this._doubleClickDragAnchor;if(!t)return!1;let n=this.controllerState.zoom({pos:t,scale:e.scale},this._getConstraintContext("zoom","update"));return this.updateViewport(n,g,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDragEnd(e){if(!this._doubleClickDragAnchor)return!1;this._doubleClickDragAnchor=null;let t=this.controllerState,n=this._getConstraintContext("zoom","end"),i=t.zoomEnd(n),r=this._getReboundTransition(n,i);return this.updateViewport(i,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 n=this.isFunctionKeyPressed(e),{zoomSpeed:i,moveSpeed:r,rotateSpeedX:o,rotateSpeedY:s}=!0===this.keyboard?{}:this.keyboard,{controllerState:a}=this,l={};switch(e.srcEvent.code){case"Minus":t=n?a.zoomOut(i).zoomOut(i):a.zoomOut(i),l.isZooming=!0;break;case"Equal":t=n?a.zoomIn(i).zoomIn(i):a.zoomIn(i),l.isZooming=!0;break;case"ArrowLeft":n?(t=a.rotateLeft(o),l.isRotating=!0):(t=a.moveLeft(r),l.isPanning=!0);break;case"ArrowRight":n?(t=a.rotateRight(o),l.isRotating=!0):(t=a.moveRight(r),l.isPanning=!0);break;case"ArrowUp":n?(t=a.rotateUp(s),l.isRotating=!0):(t=a.moveUp(r),l.isPanning=!0);break;case"ArrowDown":n?(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,n)=>new this.ControllerState(f(p({},t),{constraintContext:n,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,n){n.d(t,{A:()=>v,y:()=>g});var i=n(26489),r=n(89293),o=n(97659),s=n(39333),a=n(86083),l=n(22708),c=n(79036),u=n(43396);function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}let p=[[-1/0,-90],[1/0,90]];function f(e){let[t,n]=e;if(Math.abs(n)>90&&(n=90*Math.sign(n)),Number.isFinite(t)){let[e,r]=(0,a.Gw)([t,n]);return[e,(0,i.qE)(r,0,512)]}let[,r]=(0,a.Gw)([0,n]);return[t,(0,i.qE)(r,0,512)]}class g extends o.A{panStart(e,t){let{pos:n}=e;return this._getUpdatedState({startPanLngLat:this._unproject(n)},t)}pan(e,t){let{pos:n,startPos:i}=e,r=this.getState().startPanLngLat||this._unproject(i);if(!r)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(r,n);return this._getUpdatedState(o,t)}panEnd(e){return this._getUpdatedState({startPanLngLat:null},e)}rotateStart(e){var t;let{pos:n}=e,i=null==(t=this.getAltitude)?void 0:t.call(this,n);return this._getUpdatedState({startRotatePos:n,startRotateLngLat:void 0!==i?this._unproject3D(n,i):void 0,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate(e){let t,{pos:n,deltaAngleX:i=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=n?this._getNewRotation(n,o,l,a):{bearing:a+i,pitch:l+r},s){let e=this.makeViewport(d({},this.getViewportProps(),t)),n="panByPosition3D"in e?"panByPosition3D":"panByPosition";return this._getUpdatedState(d({},t,e[n](s,o)))}return this._getUpdatedState(t)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startRotateLngLat:null,startBearing:null,startPitch:null})}zoomStart(e,t){let{pos:n}=e;return this._getUpdatedState({startZoomLngLat:this._unproject(n),startZoom:this.getViewportProps().zoom},t)}zoom(e,t){let{pos:n,startPos:i,scale:r}=e,{startZoom:s,startZoomLngLat:a}=this.getState();return(a||(s=this.getViewportProps().zoom,a=this._unproject(i)||this._unproject(n)),a)?this._getUpdatedState({zoom:s+Math.log2(r),[o.y]:{position:a,screenPosition:n}},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(),n=d({},this.getViewportProps()),{bearing:i,longitude:r}=n;return Math.abs(i-t.bearing)>180&&(n.bearing=i<0?i+360:i-360),Math.abs(r-t.longitude)>
1180&&(n.longitude=r<0?r+360:r-360),n}applyConstraints(e,t){let n=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,i.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,n){let t=this.makeViewport(e);Object.assign(e,t.panByPosition(n.position,n.screenPosition))}if(g&&(e.longitude<-180||e.longitude>180)&&(e.longitude=(0,c.zi)(e.longitude+180,360)-180),v){let n=(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],n),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,i.qE)(m[0],p[0],g[0]),(0,i.qE)(m[1],p[1],g[1])],_=m.slice();if(n.width>=0&&(_[0]=(null==t?void 0:t.mode)==="preserve"?m[0]:b?(0,s.GT)(m[0],y[0],n.width/2/u):y[0]),n.height>=0&&(_[1]=(null==t?void 0:t.mode)==="preserve"?m[1]:b?(0,s.GT)(m[1],y[1],n.height/2/u):y[1]),_[0]!==m[0]||_[1]!==m[1]){let[t,n]=(0,a.iV)(_);_[0]!==m[0]&&(e.longitude=t),_[1]!==m[1]&&(e.latitude=n)}}return e}_constrainZoom(e,t){t||(t=this.getViewportProps());let{maxZoom:n,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),i=f(r[0]),o=f(r[1]),l=o[0]-i[0],c=o[1]-i[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>n&&(a=n)}return(0,i.qE)(e,a,n)}_zoomFromCenter(e,t){let{width:n,height:i}=this.getViewportProps();return this.zoom({pos:[n/2,i/2],scale:e},t)}_panFromCenter(e,t){let{width:n,height:i}=this.getViewportProps();return this.pan({startPos:[n/2,i/2],pos:[n/2+e[0],i/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,n,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,i.qE)(d,-1,1);let{minPitch:h,maxPitch:p}=this.getViewportProps(),f=n;return d>0?f=n+d*(p-n):d<0&&(f=n-d*(h-n)),{pitch:f,bearing:r+o/c*180}}constructor(e){let{width:t,height:n,latitude:i,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:_,startRotateLngLat:w,startBearing:P,startPitch:x,startZoom:O,normalize:j=!0,rubberBand:C=!1}=e,{[o.y]:S}=e;(0,l.A)(Number.isFinite(r)),(0,l.A)(Number.isFinite(i)),(0,l.A)(Number.isFinite(s));let k=e.maxBounds||(j?p:null);super(d({width:t,height:n,latitude:i,longitude:r,zoom:s,bearing:a,pitch:c,altitude:u,maxZoom:f,minZoom:g,maxPitch:v,minPitch:m,normalize:j,position:h,maxBounds:k,maxBoundsPadding:e.maxBoundsPadding||null,rubberBand:C},{[o.y]:S}),{startPanLngLat:y,startZoomLngLat:b,startRotatePos:_,startRotateLngLat:w,startBearing:P,startPitch:x,startZoom:O},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,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=e.getState();n.isDragging&&i.startRotateLngLat?n=h(d({},n),{rotationPivotPosition:i.startRotateLngLat}):!1===n.isDragging&&(n=h(d({},n),{rotationPivotPosition:void 0})),super.updateViewport(e,t,n)}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:n}=this.props,i=this.pickPosition(t+e[0],n+e[1]);if(i&&i.coordinate&&i.coordinate.length>=3)return i.coordinate[2]}}}}},39333(e,t,n){n.d(t,{CI:()=>o,GT:()=>r,jo:()=>s});var i=n(8340);function r(e,t,n){let i=e-t;return i&&Number.isFinite(i)?t+i*n/(n+Math.abs(i)):t}function o(e,t,n){var r,o,s,a;let l=(0,i.E9)((0,i.rk)(null!=(r=null==n?void 0:n.left)?r:0),e),c=(0,i.E9)((0,i.rk)(null!=(o=null==n?void 0:n.right)?o:0),e),u=(0,i.E9)((0,i.rk)(null!=(s=null==n?void 0:n.top)?s:0),t),d=(0,i.E9)((0,i.rk)(null!=(a=null==n?void 0:n.bottom)?a:0),t);return{x:l,y:u,width:e-l-c,height:t-u-d}}function s(e,t,n){let[i,r]=e.project(t);return i=Number.isFinite(i)?i:e.width/2,r=Number.isFinite(r)?r:e.height/2,{left:i-n.x,right:n.x+n.width-i,top:r-n.y,bottom:n.y+n.height-r}}},97659(e,t,n){n.d(t,{A:()=>r,y:()=>i});let i=Symbol("constraintAround");class r{getViewportProps(){return this._viewportProps}getState(){return this._state}constructor(e,t,n,i){this.makeViewport=n,this._viewportProps=this.applyConstraints(e,i),this._state=t}}},26758(e,t,n){n.d(t,{A:()=>s,k:()=>o});var i=n(1918);let r={};function o(e){r=e}function s(e,t,n,o){i.A.level>0&&r[e]&&r[e].call(null,t,n,o)}},25941(e,t,n){n.d(t,{$:()=>o});let i=[255,255,255],r=0;class o{constructor(e={}){this.type="ambient";let{color:t=i}=e,{intensity:n=1}=e;this.id=e.id||"ambient-".concat(r++),this.color=t,this.intensity=n}}},4569(e,t,n){n.d(t,{Z:()=>a});var i=n(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:n=1}=e,{direction:a=o}=e,{_shadow:l=!1}=e;this.id=e.id||"directional-".concat(s++),this.color=t,this.intensity=n,this.type="directional",this.direction=new i.P(a).normalize().toArray(),this.shadow=l}}}
1,40190(e,t,n){n.d(t,{A:()=>S});var i=n(25941),r=n(4569),o=n(6706),s=n(35097),a=n(57618);function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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,n=this.device.canvasContext.cssToDeviceRatio(),i=e.viewports[0],r=i.width*n,o=i.height*n;(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,n){return c(l({},e.props.parameters),{blend:!1,depthWriteEnabled:!0,depthCompare:"less-equal"})}shouldDrawLayer(e){return!1!==e.props.shadowEnabled}getShaderModuleProps(e,t,n){return{shadow:{project:n.project,drawToShadowMap:!0}}}constructor(e,t){super(e,t);let n=e.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),i=e.createTexture({format:"depth16unorm",width:1,height:1});this.fbo=e.createFramebuffer({id:"shadowmap",width:1,height:1,colorAttachments:[n],depthStencilAttachment:i})}}var d=n(48895),h=n(36485),p=n(97252),f=n(86083),g=n(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:n}=e;return new o.k(t.viewProjectionMatrix).invert().transform(n)}),_=(0,p.A)(function(e){let{viewport:t,shadowMatrices:n}=e,i=[],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[n,i,r]=e,o=(0,f.xJ)([n,i,r],t);return Number.isFinite(r)?o:[o[0],o[1],0]})(e,r));for(let e of n){let n=e.clone().translate(new s.P(t.center).negate()),r=l.map(e=>n.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]))});i.push(a.multiplyRight(e))}return i}),w=[0,0,0,1],P=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],x={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:n}=e;if(!t||!n||!e.shadowMatrices||!e.shadowMatrices.length)return{drawShadowMap:!1,useShadowMap:!1,shadow_uShadowMap0:e.dummyShadowMap,shadow_uShadowMap1:e.dummyShadowMap};let i=h.A.getUniforms(n),r=b({viewport:n.viewport,center:i.center}),o=[],a=_({shadowMatrices:e.shadowMatrices,viewport:n.viewport}).slice();for(let t=0;t<e.shadowMatrices.length;t++){let e=a[t],l=e.clone().translate(new s.P(n.viewport.center).negate());i.coordinateSystem===(0,g.LB)("lnglat")&&i.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||w,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>"}},O={color:[255,255,255],intensity:1},j=[{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:n}=e;this.shadow&&!this.dummyShadowMap&&(this._createShadowPasses(t),n._addDefaultShaderModule(x),this.dummyShadowMap=t.createTexture({width:1,height:1}))}setProps(e){for(let t in this.ambientLight=void 0,this.directionalLights=[],this.pointLights=[],e){let n=e[t];switch(n.type){case"ambient":this.ambientLight=n;break;case"directional":this.directionalLights.push(n);break;case"point":this.pointLights.push(n)}}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:n,viewports:i,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:n,viewports:i,onViewportActive:r,views:o,shaderModuleProps:{shadow:{shadowLightId:e,dummyShadowMap:this.dummyShadowMap,shadowMatrices:this.shadowMatrices}}})}}getShaderModuleProps(e,t){let n=this.shadow?{project:t.project,shadowMaps:this.shadowPasses.map(e=>e.getShadowMap()),dummyShadowMap:this.dummyShadowMap,shadowColor:this.shadowColor,shadowMatrices:this.shadowMatrices}:{},i={enabled:!0,lights:this._getLights(e)},r=e.props.material;return{shadow:n,lighting:i,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(x))}_calculateMatrices(){let e=[];for(let t of this.directionalLights){let n=new o.k().lookAt({eye:new s.P(t.direction).negate()});e.push(n)}return e}_createShadowPasses(e){for(let t=0;t<this.directionalLights.length;t++){let n=new u(e);this.shadowPasses[t]=n}}_applyDefaultLights(){let{ambientLight:e,pointLights:t,directionalLights:n}=this;e||0!==t.length||0!==n.length||(this.ambientLight=new i.$(O),this.directionalLights.push(new r.Z(j[0]),new r.Z(j[1])))}_getLights(e){let t=[];for(let n of(this.ambientLight&&t.push(this.ambientLight),this.pointLights))t.push(n.getProjectedLight({layer:e}));for(let n of this.directionalLights)t.push(n.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,n){n.d(t,{A:()=>X});var i=n(60691),r=n(36794),o=n(60633);let s=o.r.getDataType.bind(o.r);function a(e,t,n){if(t.size>4)return null;let i="webgpu"===n&&"uint8"===t.type?"unorm8":t.type,r=t.size,o=!!("webgpu"!==n&&3===r&&i&&["uint8","sint8","unorm8","snorm8","uint16","sint16","unorm16","snorm16"].includes(i));return{attribute:e,format:r>1?"".concat(i,"x").concat(r).concat(o?"-webgl":""):t.type,byteOffset:t.offset||0}}function l(e){return e.stride||e.size*e.bytesPerElement}var c=n(17390),u=n(79036),d=n(1918);function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}
1)(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function f(e,t){t.offset&&d.A.removed("shaderAttribute.offset","vertexOffset, elementOffset")();let n=l(e),i=(void 0!==t.vertexOffset?t.vertexOffset:e.vertexOffset||0)*n+(t.elementOffset||0)*e.bytesPerElement+(e.offset||0);return p(h({},t),{offset:i,stride:n})}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,n={};if(this.state.constant){let i=this.value;if("webgpu"===this.device.type&&this._buffer)n[e]=this._buffer;else if(t){let r=f(this.getAccessor(),t),o=r.offset/i.BYTES_PER_ELEMENT,s=r.size||this.size;n[e]=i.subarray(o,o+s)}else n[e]=i}else n[e]=this.getBuffer();return this.doublePrecision&&(this.isDoublePrecisionBuffer?n["".concat(e,"64Low")]=n[e]:n["".concat(e,"64Low")]=new Float32Array(this.size)),n}_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,n=this.getAccessor(),i=[],r={name:this.id,byteStride:"webgpu"===this.device.type&&this.state.constant?0:l(n)};if(this.doublePrecision){let r,o={high:r=f(n,t||{}),low:p(h({},r),{offset:r.offset+4*n.size})};i.push(a(e,h({},n,o.high),this.device.type),a("".concat(e,"64Low"),h({},n,o.low),this.device.type))}else if(t){let r=f(n,t);i.push(a(e,h({},n,r),this.device.type))}else i.push(a(e,n,this.device.type));return r.attributes=i.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:n,size:i}=this,r=n*i;if(t&&r&&t.length>=r){let n=Array(i).fill(1/0),o=Array(i).fill(-1/0);for(let e=0;e<r;)for(let r=0;r<i;r++){let i=t[e++];i<n[r]&&(n[r]=i),i>o[r]&&(o[r]=i)}e=[n,o]}}return this.state.bounds=e,e}setData(e){let t,{state:n}=this;t=ArrayBuffer.isView(e)?{value:e}:e instanceof i.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(n.bounds=null,t.constant){let e=t.value;if(e=this._normalizeValue(e,[],0),this.settings.normalized&&(e=this.normalizeConstant(e)),!(!n.constant||!this._areValuesEqual(e,this.value)))return!1;n.externalBuffer=null,n.constant=!0,this.value=ArrayBuffer.isView(e)?e:new Float32Array(e)}else if(t.buffer)n.externalBuffer=t.buffer,n.constant=!1,this.value=t.value||null;else if(t.value){this._checkExternalBuffer(t);let e=t.value,i=e;n.externalBuffer=null,n.constant=!1,this.value=e,this._shouldSplitDoublePrecisionValue(i)&&(i=(0,u.cT)(i,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;i.constructor!==e&&(i=new e(i))}let c=i.byteLength+a+2*s;(!o||o.byteLength<c)&&(o=this._createBuffer(c)),o.write(i,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:n=0,endOffset:i}=e,r=this._shouldSplitDoublePrecisionValue(t);this.buffer.write(r?(0,u.cT)(t,{size:this.size,startIndex:n,endIndex:i}):t.subarray(n,i),n*(r?8:t.BYTES_PER_ELEMENT)+this.byteOffset)}allocate(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],{state:n}=this,i=n.allocatedValue,r=c.A.allocate(i,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&&i&&l.write(this._shouldSplitDoublePrecisionValue(i)?(0,u.cT)(i,this):i,a)),n.allocatedValue=r,n.constant=!1,n.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 n=this.settings.defaultType,i=!1;if(this.doublePrecision&&(i=t.BYTES_PER_ELEMENT<4),i)throw Error("Attribute ".concat(this.id," does not support ").concat(t.constructor.name));t instanceof n||!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,n){let{defaultValue:i,size:r}=this.settings;if(Number.isFinite(e))return t[n]=e,t;if(!e){let e=r;
1for(;--e>=0;)t[n+e]=i[e];return t}switch(r){case 4:t[n+3]=Number.isFinite(e[3])?e[3]:i[3];case 3:t[n+2]=Number.isFinite(e[2])?e[2]:i[2];case 2:t[n+1]=Number.isFinite(e[1])?e[1]:i[1];case 1:t[n+0]=Number.isFinite(e[0])?e[0]:i[0];break;default:let o=r;for(;--o>=0;)t[n+o]=Number.isFinite(e[o])?e[o]:i[o]}return t}_areValuesEqual(e,t){if(!e||!t)return!1;let{size:n}=this;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}_createBuffer(e){var t;this._buffer&&this._buffer.destroy();let{isIndexed:n,type:r}=this.settings,o="webgpu"!==this.device.type||n?(n?i.h.INDEX:i.h.VERTEX)|i.h.COPY_DST:i.h.VERTEX|i.h.STORAGE|i.h.COPY_DST|i.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:n?r:void 0,byteLength:e})),this._buffer}constructor(e,t,n){let i;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),i=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||i);this.doublePrecision=s,s&&!1===t.fp64&&(l=Float32Array),this.value=null,this.settings=p(h({},t),{defaultType:l,defaultValue:a,logicalType:o,type:i,normalized:i.includes("norm"),size:this.size,bytesPerElement:l.BYTES_PER_ELEMENT}),this.state=p(h({},n),{externalBuffer:null,bufferAccessor:this.settings,allocatedValue:null,numInstances:0,bounds:null,constant:!1})}}var v=n(22708),m=n(70008),y=n(37142);let b=[],_=[[0,1/0]];var w=n(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,n;(t=this.state).layoutChanged||(n=this.getAccessor(),t.layoutChanged=e.type!==n.type||e.size!==n.size||l(e)!==l(n)||(e.offset||0)!==(n.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,n=this.settings.transition,i=Array.isArray(t)?e[t.find(t=>e[t])]:e[t];return(0,w.K)(i,n)}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:n=1/0}=t;this.state.updateRanges=function(e,t){if(e===_||(t[0]<0&&(t[0]=0),t[0]>=t[1]))return e;let n=[],i=e.length,r=0;for(let o=0;o<i;o++){let i=e[o];i[1]<t[0]?(n.push(i),r=o+1):i[0]>t[1]?n.push(i):t=[Math.min(i[0],t[0]),Math.max(i[1],t[1])]}return n.splice(r,0,t),n}(this.state.updateRanges,[e,n])}else this.state.updateRanges=_}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:n}=this;if(n.noAlloc)return!1;if(n.update){let n=this.isConstant;return super.allocate(e,t.updateRanges!==_),t.layoutChanged||(t.layoutChanged=n&&"webgpu"===this.device.type),!0}return!1}updateBuffer(e){let{numInstances:t,data:n,props:i,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:n,startRow:e,endRow:a,props:i,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,n]of o){let i=Number.isFinite(e)?this.getVertexOffset(e):0,r=Number.isFinite(n)?this.getVertexOffset(n):a||!Number.isFinite(t)?this.value.length:t*this.size;super.updateSubBuffer({startOffset:i,endOffset:r})}this._checkAttributeArray()}else l=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),l}setConstantValue(e,t){var n,i,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((i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},this.getAccessor()),r=r={stride:2*this.size*Float32Array.BYTES_PER_ELEMENT},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}),i)));let t=this._buffer;(!t||t.byteLength<e.byteLength)&&(t=this._createBuffer(e.byteLength)),t.write(e),(n=this.state).layoutChanged||(n.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:n,settings:i}=this;if(!e)return n.binaryValue=null,n.binaryAccessor=null,!1;if(i.noAlloc)return!1;if(n.binaryValue===e)return this.clearNeedsUpdate(),!0;if(n.binaryValue=e,this.setNeedsRedraw(),i.transform||t!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});let r=e;(0,v.A)(ArrayBuffer.isView(r.value),"invalid ".concat(i.accessor));let o=!!r.size&&r.size!==this.size;return n.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 n in e)Object.assign(t,super.getValue(n,e[n]));return t}getBufferLayout(e){this.state.layoutChanged=!1;let t=this.settings.shaderAttributes,n=super._getBufferLayout(),{stepMode:i}=this.settings;if("dynamic"===i?n.stepMode=e?e.isInstanced?"instance":"vertex":"instance":n.stepMode=null!=i?i:"vertex",!t)return n;for(let e in t){let i=super._getBufferLayout(e,t[e]);n.attributes.push(...i.attributes)}return n}_autoUpdater(e,t){let{data:n,startRow:i,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(i),{iterable:b,objectInfo:_}=(0,m.X)(n,i,r);for(let t of b){_.index++;let n=f(t,_);if(p&&(n=p.call(this,n)),d){let t=(_.index<d.length-1?d[_.index+1]:s)-d[_.index];if(n&&Array.isArray(n[0])){let t=g;for(let i of n)e._normalizeValue(i,c,t),t+=u}else n&&n.length>u?c.set(n,g):(e._normalizeValue(n,_.target,0),(0,y.R)({target:c,source:_.target,start:g,count:t}));g+=t*u}else e._normalizeValue(n,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 n=!0;switch(t){case 4:n=n&&Number.isFinite(e[3]);case 3:n=n&&Number.isFinite(e[2]);case 2:n=n&&Number.isFinite(e[1]);case 1:n=n&&Number.isFinite(e[0]);break;default:n=!1}if(!n)throw 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:_}),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 x=n(96430),O=n(97065),j=n(64238),C=n(48894),S=n(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 n=this._getPackedGroups(e,t,{requireValues:!1,excludeAttributes:{}});return this._getBufferLayouts(e,n,t)}getBindings(e,t,n,i){let r=this._getPackedGroups(e,n,{requireValues:!0,excludeAttributes:i}),o={},s=new Set;for(let e of r.values()){let n=!this.packedBuffers[e.id]||e.attributes.some(e=>!!t[e.id]);for(let t of(o[e.id]=this._getPackedBuffer(e,n),e.attributes))s.add(t.id)}return{bufferLayouts:this._getBufferLayouts(e,r,n).filter(t=>{var n;return!i[t.name]&&!(null==(n=e[t.name])?void 0:n.settings.isIndexed)}),buffers:o,groupedAttributeIds:s}}_getPackedGroups(e,t,n){let{requireValues:i,excludeAttributes:r}=n,o=new Map;for(let t of Object.values(e)){let e=t.settings.bufferGroup;if(!e)continue;let n=o.get(e)||[];n.push(t),o.set(e,n)}let s=new Map;for(let[e,n]of o){let o=this._getPackedGroup(e,n,t,i,r);o&&s.set(e,o)}return s}_getPackedGroup(e,t,n,i,r){if(t.length<2)return null;let o=t.map(e=>e.getBufferLayout(n)),s=o[0].stepMode,a=Math.max(1,t[0].numInstances),c=i&&t.every(e=>e.isConstant);for(let e=0;e<t.length;e++){let n=t[e],c=n.getAccessor(),u=c.size*c.bytesPerElement;if(r[n.id]||n.settings.isIndexed||n.settings.noAlloc||n.doublePrecision||this.isTransitionAttribute(n.id)||o[e].stepMode!==s||n.numInstances!==t[0].numInstances||0!==(c.offset||0)||0!==(c.vertexOffset||0)||l(c)!==u||i&&(n.isConstant?!n.getConstantValue()||n.getConstantValue().byteLength<u:!ArrayBuffer.isView(n.value)||n.value.byteLength<a*u))return null}let u={},d=[],h=0;for(let e=0;e<t.length;e++){let n=t[e];for(let t of(h=M(h),u[n.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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}
1)(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},t),{byteOffset:h+(t.byteOffset||0)}));h+=l(n.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,n){let i=[],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)||(i.push(a.layout),r.add(a.id)):i.push(s.getBufferLayout(n))}return i}_getPackedBuffer(e,t){let n=JSON.stringify({byteStride:e.layout.byteStride,attributes:e.layout.attributes}),i=this.packedBuffers[e.id];if(i&&i.layoutKey===n||(t=!0),t){i&&(i.packed.destroy(),delete this.packedBuffers[e.id]);let t=this._interleavePackedGroup(e);return this.packedBuffers[e.id]={packed:t,layoutKey:n},t.buffer}if(!i)throw Error("Attribute buffer group ".concat(e.id," has no packed buffer"));return i.packed.buffer}_interleavePackedGroup(e){let t=e.attributes.map(t=>this._getInterleaveInput(e,t)),n=(0,x.C)(...t);return(0,O.o)(this.device,n),n}_getInterleaveInput(e,t){let n=l(t.getAccessor()),i=e.byteOffsets[t.id];if(A("".concat(e.id,".").concat(t.id," rowByteLength"),n),A("".concat(e.id,".").concat(t.id," groupByteOffset"),i),t.isConstant){let i=t.getConstantValue();if(!i)throw Error("Attribute group ".concat(e.id," is missing constant value ").concat(t.id));return A("".concat(e.id,".").concat(t.id," constant byteOffset"),i.byteOffset),new j.GL({id:t.id,type:"uint32",size:n/4,isConstant:!0,value:new Uint32Array(i.buffer,i.byteOffset,n/Uint32Array.BYTES_PER_ELEMENT)})}let r=t.getBuffer(),o=t.byteOffset,s=t.getAccessor().stride||n;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 j.GL({id:t.id,type:"uint32",size:n/4,offset:o,stride:s,length:e.rowCount,buffer:r})}constructor(e,{id:t,isTransitionAttribute:n}){this.packedBuffers={},this.device=e,this.id=t,this.isTransitionAttribute=n,"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=n(97252),T=n(26758),I=n(9079),R=n(72274);function D(e){let{source:t,target:n,start:i=0,size:r,getData:o}=e,s=e.end||n.length,a=t.length,l=s-i;if(a>l)return void n.set(t.subarray(0,l),i);if(n.set(t,i),!o)return;let c=a;for(;c<l;){let e=o(c,t);for(let t=0;t<r;t++)n[i+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:n,target:i}=e;return(!i||i.byteLength<n.byteLength)&&(null==i||i.destroy(),i=t.createBuffer({byteLength:n.byteLength,usage:n.usage})),i}function N(e){let{device:t,buffer:n,attribute:i,fromLength:r,toLength:o,fromStartIndices:s,getData:a=e=>e}=e,l=i.isDoublePrecisionBuffer?2:1,c=i.size*l,u=i.byteOffset,d=i.settings.bytesPerElement<4?u/i.settings.bytesPerElement*4:u,h=i.startIndices,p=s&&h,f=i.isConstant;if(!p&&n&&r>=o)return n;let g=i.value instanceof Float64Array?Float32Array:i.value.constructor,v=f?i.value:new g(i.getBuffer().readSyncWebGL(u,o*g.BYTES_PER_ELEMENT).buffer);if(i.settings.normalized&&!f){let e=a;a=(t,n)=>i.normalizeConstant(e(t,n))}let m=f?(e,t)=>a(v,t):(e,t)=>
1a(v.subarray(e+u,e+u+c),t),y=new Float32Array(n?n.readSyncWebGL(d,4*r).buffer:0),b=new Float32Array(o);return!function(e){let{source:t,target:n,size:i,getData:r,sourceStartIndices:o,targetStartIndices:s}=e;if(!o||!s)return D({source:t,target:n,size:i,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]*i,u=s[e]*i;D({source:t.subarray(a,r),target:n,start:l,end:u,size:i,getData:c}),a=r,l=u}l<n.length&&D({source:[],target:n,start:l,size:i,getData:c})}({source:y,target:b,sourceStartIndices:s,targetStartIndices:h,size:c,getData:m}),(!n||n.byteLength<b.byteLength+d)&&(null==n||n.destroy(),n=t.createBuffer({byteLength:b.byteLength+d,usage:35050})),n.write(b,d),n}var U=n(21758);class B{get inProgress(){return this.transition.inProgress}start(e,t){var n,i;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:n,value:i,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(n.noAlloc?i.length:(t+s)*r)*o}(this.attribute,t),this.transition.start((n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},e),i=i={duration:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n))}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:n}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new U.A(n),this.attribute=t,this.attributeInTransition=function(e){let{device:t,settings:n,value:i}=e,r=new P(t,n);return r.setData({value:i instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:n.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 Z={name:"spring",vs:"layout(std140) uniform springUniforms {\n  float damping;\n  float stiffness;\n} spring;\n",uniformTypes:{damping:"f32",stiffness:"f32"}},H={interpolation:class extends B{start(e,t){let n=this.currentLength,i=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:n,toLength:this.currentLength,fromStartIndices:i,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:n}=this.transition,i=n/e;t&&(i=t(i));let{model:r}=this.transform,o={time:i};r.shaderInputs.setProps({interpolation:o}),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}
1constructor({device:e,attribute:t,timeline:n}){var i,r;let o,s,a,l;super({device:e,attribute:t,timeline:n}),this.type="interpolation",this.transform=(i=e,s=L(o=(r=t).size),a=z(o),l=r.getBufferLayout(),W(r)?new I.p(i,{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:[R.d,G],defines:{ATTRIBUTE_TYPE:s,ATTRIBUTE_SIZE:o},moduleSettings:{},varyings:["vCurrent","vCurrent64Low"],bufferMode:35980,disableWarnings:!0}):new I.p(i,{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 n=this.currentLength,i=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:n,toLength:this.currentLength,fromStartIndices:i,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:n,transition:i}=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:n,discard:!1,parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]}),V(e),this.setBuffer(e[1]),this.device.readPixelsToArrayWebGL(n)[0]>0||i.end()}delete(){super.delete(),this.transform.destroy(),this.texture.destroy(),this.framebuffer.destroy()}constructor({device:e,attribute:t,timeline:n}){var i,r,o,s;let a,l;super({device:e,attribute:t,timeline:n}),this.type="spring",this.texture=e.createTexture({data:new Uint8Array(4),format:"rgba8unorm",width:1,height:1}),this.framebuffer=(i=e,r=this.texture,i.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:[Z],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:n,numInstances:i}=e;for(let e in this.numInstances=i||1,t){let i=t[e],r=i.getTransitionSetting(n);r&&this._updateAttribute(e,i,r)}for(let e in this.transitions){let i=t[e];i&&i.getTransitionSetting(n)||this._removeTransition(e)}}hasAttribute(e){let t=this.transitions[e];return t&&t.inProgress}getAttributes(){let e={};for(let t in this.transitions){let n=this.transitions[t];n.inProgress&&(e[t]=n.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,n){let i=this.transitions[e],r=!i||i.type!==n.type;if(r){i&&this._removeTransition(e);let o=H[n.type];
1o?this.transitions[e]=new o({attribute:t,timeline:this.timeline,device:this.device}):(d.A.error("unsupported transition type '".concat(n.type,"'"))(),r=!1)}(r||t.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(n,this.numInstances))}constructor(e,{id:t,timeline:n}){if(!e)throw Error("AttributeTransitionManager is constructed without device");this.id=t,this.device=e,this.timeline=n,this.transitions={},this.needsRedraw=!1,this.numInstances=1}}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=this._invalidateTrigger(e,t);(0,T.A)(K,this,e,n)}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:n,startIndices:i=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=i,r.numInstances=n,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:n,data:t,props:o,context:a})),this.needsRedraw=this.needsRedraw||r.needsRedraw()}l&&(0,T.A)("attributeManager.updateEnd",this,n),this.stats&&(this.stats.get("Update Attributes").timeEnd(),l&&this.stats.get("Attributes updated").incrementCount()),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:n,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:n}=this,i=Y({},n.getAttributes());for(let r in t){let o=t[r];o.needsRedraw(e)&&!n.hasAttribute(r)&&(i[r]=o)}return i}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 n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.attributeBufferGroups?this.attributeBufferGroups.getBindings(this.getAttributes(),e,t,n):{bufferLayouts:this.getBufferLayouts(t),buffers:{},groupedAttributeIds:new Set}}_add(e,t){for(let n in e){let i=e[n],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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}
1)(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}(Y({},i),{id:n,size:i.isIndexed&&1||i.size||1}),t);this.attributes[n]=new P(this.device,r)}this._mapUpdateTriggersToAttributes()}_mapUpdateTriggersToAttributes(){let e={};for(let t in this.attributes)this.attributes[t].getUpdateTriggers().forEach(n=>{e[n]||(e[n]=[]),e[n].push(t)});this.updateTriggers=e}_invalidateTrigger(e,t){let{attributes:n,updateTriggers:i}=this,r=i[e];return r&&r.forEach(e=>{let i=n[e];i&&i.setNeedsUpdate(i.id,t)}),r}_updateAttribute(e){let{attribute:t,numInstances:n}=e;((0,T.A)("attribute.updateStart",t),t.constant)?t.setConstantValue(e.context,t.value):(t.allocate(n)&&(0,T.A)("attribute.allocate",t,n),t.updateBuffer(e)&&(this.needsRedraw=!0,(0,T.A)("attribute.updateEnd",t,n)))}constructor(e,{id:t="attribute-manager",stats:n,timeline:i}={}){this.mergeBoundsMemoized=(0,E.A)(u._Z),this.id=t,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=n,this.attributeTransitionManager=new q(e,{id:"".concat(t,"-transitions"),timeline:i}),this.attributeBufferGroups="webgpu"===e.type?new k(e,{id:t,isTransitionAttribute:e=>this.attributeTransitionManager.hasAttribute(e)}):null,Object.seal(this)}}},45566(e,t,n){n.d(t,{K:()=>r});let i={interpolation:{duration:0,easing:e=>e},spring:{stiffness:.05,damping:.5}};function r(e,t){var n,r;if(!e)return null;Number.isFinite(e)&&(e={type:"interpolation",duration:e});let o=e.type||"interpolation";return n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},i[o],t,e),r=r={type:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n}},48895(e,t,n){n.d(t,{Kx:()=>s,We:()=>c,p5:()=>a,rf:()=>o,tg:()=>l});var i=n(1918),r=n(39171);let o={DEFAULT:"default",LNGLAT:"lnglat",METER_OFFSETS:"meter-offsets",LNGLAT_OFFSETS:"lnglat-offsets",CARTESIAN:"cartesian"};Object.defineProperty(o,"IDENTITY",{get:()=>(i.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,n){n.d(t,{A:()=>ev});var i=n(3066),r=n(8780);let o=[n(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=n(17652),d=n(1918),h=n(26758),p=n(37142),f=n(39584),g=n(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 n=++this._loadCount,i=e;for(let t of("string"==typeof e&&(i=(0,g.H)(e)),i instanceof Promise?(this.isLoaded=!1,this._loader=i.then(e=>{this._loadCount===n&&(this.isLoaded=!0,this._error=void 0,this._content=e)}).catch(e=>{this._loadCount===n&&(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,n){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=n,this.setData(t)}}class m{contains(e){return!!e.startsWith(this.protocol)||e in this._resources}add(e){let{resourceId:t,data:n,forceUpdate:i=!1,persistent:r=!0}=e,o=this._resources[t];o?o.setData(n,i):(o=new v(t,n,this._context),this._resources[t]=o),o.persistent=r}remove(e){let t=this._resources[e];t&&(t.delete(),delete this._resources[e])}
1unsubscribe(e){let{consumerId:t}=e,n=this._consumers[t];if(n){for(let e in n){let t=n[e],i=this._resources[t.resourceId];i&&i.unsubscribe(t)}delete this._consumers[t],this.prune()}}subscribe(e){let{resourceId:t,onChange:n,consumerId:i,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(i,r,a,n),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,n,i){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()),n&&(s?(s.onChange=i,s.resourceId=n.id):s={onChange:i,resourceId:n.id},o[t]=s,n.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=n(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 n of(e.clearRedrawFlags&&(this._needsRedraw=!1),this.layers)){let i=n.getNeedsRedraw(e);t=t||i}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),"onError"in e&&(this.context.onError=e.onError)}setLayers(e,t){(0,h.A)("layerManager.setLayers",this,t,e),this._lastRenderedLayers=e;let n=(0,p.B)(e,Boolean);for(let e of n)e.context=this.context;this._updateLayers(this.layers,n)}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,n=t.findIndex(t=>t.name===e.name);n>=0&&(t.splice(n,1),this._defaultShaderModulesChanged=!0)}_handleError(e,t,n){n.raiseError(t,"".concat(e," of ").concat(n))}_updateLayers(e,t){let n={};for(let t of e)n[t.id]?d.A.warn("Multiple old layers with same id ".concat(t.id))():n[t.id]=t;if(this._defaultShaderModulesChanged){for(let t of e)t.setNeedsUpdate(),t.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}let i=[];this._updateSublayersRecursively(t,n,i),this._finalizeOldLayers(n);let r=!1;for(let e of i)if(e.hasUniformTransition()){r="Uniform transition in ".concat(e);break}this._needsUpdate=r,this.layers=i}_updateSublayersRecursively(e,t,n){for(let i of e){i.context=this.context;let e=t[i.id];null===e&&d.A.warn("Multiple new layers with same id ".concat(i.id))(),t[i.id]=null;let r=null;try{this._debug&&e!==i&&i.validateProps(),e?(this._transferLayerState(e,i),this._updateLayer(i)):this._initializeLayer(i),n.push(i),r=i.isComposite?i.getSubLayers():null}catch(e){this._handleError("matching",e,i)}r&&this._updateSublayersRecursively(r,t,n)}}_finalizeOldLayers(e){for(let t in e){let n=e[t];n&&this._finalizeLayer(n)}}_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 n;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 n of(t._hookFunctions.length=0,"glsl"===e?s:a))t.addShaderHook(n);return t}((null==e||null==(n=e.info)?void 0:n.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 i.K,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}}var _=n(59377);function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}let P="default-canvas";class x{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 n=!e.canvasId||this.getCanvasId(t.id)===e.canvasId,i=!("x"in e)||t.containsPixel(e);return n&&i}):this._viewports}getViews(){let e={};return this.views.forEach(t=>{e[t.id]=t}),e}getView(e){return this.views.find(t=>t.id===e)}getViewState(e){let t="string"==typeof e?this.getView(e):e,n=t&&this.viewState[t.getViewStateId()]||this.viewState;return t?t.filterViewState(n):n}getViewport(e){return this._viewportMap[e]}getCanvasId(e){var t;let n="string"==typeof e?this.getView(e):e;return n?(null==(t=this._viewEventManagers[n.id])?void 0:t.canvasId)||this._getCanvasIdFromView(n):void 0}unproject(e,t){let n=this.getViewports(),i={x:e[0],y:e[1]};for(let r=n.length-1;r>=0;--r){let o=n[r];if(o.containsPixel(i)){let n=e.slice();return n[0]-=o.x,n[1]-=o.y,o.unproject(n,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,_.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,n;return e.props.canvasId||(null==(n=this._getCanvasContext)||null==(t=n.call(this,e.id))?void 0:t.id)||P}_getCanvasDimensions(e){var t;let n=null==(t=this._getCanvasContext)?void 0:t.call(this,e.id),[i,r]=(null==n?void 0:n.getCSSSize())||[this.width,this.height];return{width:i,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,n){return e&&((null==t?void 0:t.canvasId)!==n.canvasId||(null==t?void 0:t.eventManager)!==n.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 n;return null==(n=this.getView(e.id))?void 0:n.makeViewport(w({viewState:t},this._getCanvasDimensions(e)))},pickPosition:(t,n)=>{var i;return null==(i=this._pickPosition)?void 0:i.call(this,t,n,e.id)}})}_updateController(e,t,n,i){let r=e.controller;if(r&&n){var o,s;let a=(o=w({},t,r),s=s={id:e.id,x:n.x,y:n.y,width:n.width,height:n.height},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(s)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}
1)(Object(s)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(s,e))}),o);return i&&i.constructor===r.type||(i=this._createController(e,a)),i&&i.setProps(a),i}return null}_rebuildViewports(){let{views:e}=this,{oldControllers:t,oldViewEventManagers:n}=this._startViewportRebuild(),i=!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],n[o.id],l),h=!!o.controller;h&&!d&&(i=!0),(i||!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 n=t[e];n&&!this.controllers[e]&&n.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((n,i)=>!e[i].equals(t[i]))}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 O=n(77475),j=n(40190);let C=new j.A;class S{addDefaultEffect(e){let t=this._defaultEffects;if(!t.find(t=>t.id===e.id)){let n=t.findIndex(t=>{var n,i;return(null!=(n=t.order)?n:1/0)-(null!=(i=e.order)?i:1/0)>0});n<0?t.push(e):t.splice(n,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&!(0,_.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 n=[];for(let i of e){let e=t[i.id],r=i;e&&e!==i?e.setProps?(e.setProps(i.props),r=e):e.cleanup(this._context):e||i.setup(this._context),n.push(r),delete t[i.id]}for(let e in t)t[e].cleanup(this._context);this.effects=n,this._resolvedEffects=n.concat(this._defaultEffects),e.some(e=>e instanceof j.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=n(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=n(86760);function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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,n=E({layerFilter:this.layerFilter,isPicking:this.drawPickingColors},e);if(!e.viewports.length){let e=t.render(n),i="stats"in e?e.stats:e;this._updateStats(i);return}n.effects&&this._preRender(n.effects,n);let i=this.lastPostProcessEffect?this.renderBuffers[0]:n.target;this.lastPostProcessEffect&&(n.clearColor=[0,0,0,0],n.clearCanvas=!0);let r=t.render(T(E({},n),{target:i})),o="stats"in r?r.stats:r;n.effects&&(this.lastPostProcessEffect&&(n.clearCanvas=void 0===e.clearCanvas||e.clearCanvas),this._postRender(n.effects,n)),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:n}of e)t+=n;this.stats.get("Layers rendered").addCount(t)}_preRender(e,t){for(let n of(this.lastPostProcessEffect=null,t.preRenderStats=t.preRenderStats||{},e))t.preRenderStats[n.id]=n.preRender(t),n.postRender&&(this.lastPostProcessEffect=n.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,n=e.getDrawingBufferSize(),[i,r]=n;for(let e of(0===t.length&&[0,1].map(e=>{let n=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"},width:i,height:r});
1t.push(this.device.createFramebuffer({id:"deck-renderbuffer-".concat(e),colorAttachments:[n]}))}),t))e.resize(n)}_postRender(e,t){var n,i,r;let{renderBuffers:o}=this,s=null!=(n=null!=(i=t.target)?i:null==(r=t.canvasContext)?void 0:r.getCurrentFramebuffer())?n: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 R=n(38550),D=n(60691);function L(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}let V={pickedColor:null,pickedObjectIndex:-1};function F(e){let{pickedColors:t,decodePickingColor:n,deviceX:i,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 n=e+l-r,o=n*n;if(o>h)f+=4*c;else for(let e=0;e<c;e++){if(t[f+3]-1>=0){let t=e+a-i,n=t*t+o;n<=h&&(h=n,p=f)}f+=4}}if(p>=0){let e=t.slice(p,p+4),i=n(e);if(i){let t=Math.floor(p/4/c),n=p/4-t*c;return z(L({},i),{pickedColor:e,pickedX:a+n,pickedY:l+t})}d.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}return V}function N(e){let{pickedColors:t,decodePickingColor:n}=e,i=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(!i.has(o)){let e=n(r);e?i.set(o,z(L({},e),{color:r})):d.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(i.values())}function U(e){let t,{pickInfo:n,viewports:i,pixelRatio:r,x:o,y:s,z:a}=e,l=i[0];if(i.length>1&&(l=function(e,t){for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.containsPixel(t))return i}return e[0]}((null==n?void 0:n.pickedViewports)||i,{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:n&&"pickedX"in n?[n.pickedX,n.pickedY]:void 0,pixelRatio:r}}function B(e){let{pickInfo:t,lastPickedInfo:n,mode:i,layers:r}=e,{pickedColor:o,pickedLayer:s,pickedObjectIndex:a}=t,l=s?[s]:[];if("hover"===i){let e=n.index,t=n.layerId,i=s?s.props.id:null;if(i!==t||a!==e){if(i!==t){let e=r.find(e=>e.props.id===t);e&&l.unshift(e)}n.layerId=i,n.index=a,n.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 n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},c);e===s&&(t.color=o,t.index=a,t.picked=!0);let r=(t=G({layer:e,info:t,mode:i})).layer;e===s&&"hover"===i&&(n.info=t),u.set(r.id,t),"hover"===i&&r.updateAutoHighlight(t)}),u}function G(e){let{layer:t,info:n,mode:i}=e;for(;t&&n;){let e=n.layer||null;n.sourceLayer=e,n.layer=t,n=t.getPickingInfo({info:n,mode:i,sourceLayer:e}),t=t.parent}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class H{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:n,layers:i,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?i.find(e=>e.id===s):null,c=a&&r.find(e=>e.id===a)||r[0],u=c&&c.unproject([t-c.x,n-c.y]);return W({},o,{x:t,y:n,viewport:c,coordinate:u,layer:l})}_resizeBuffer(){var e,t;let n=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:R.g.RENDER_ATTACHMENT|R.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:R.g.RENDER_ATTACHMENT|R.g.COPY_SRC}),t=this.device.createFramebuffer({colorAttachments:[e],depthStencilAttachment:"depth16unorm"});this.depthFBO=t}}let[i,r]=n.getDrawingBufferSize();null==(e=this.pickingFBO)||e.resize({width:i,height:r}),null==(t=this.depthFBO)||t.resize({width:i,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:n,views:i,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(n);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:_}=this.pickingFBO,w=this._getPickingRect({deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceWidth:b,deviceHeight:_}),P={x:o-a,y:s-a,width:2*a+1,height:2*a+1},x=[],O=new Set;for(let e=0;e<l;e++){let n,a;if(w){let e=await this._drawAndSampleAsync({layers:g,views:i,viewports:r,onViewportActive:h,deviceRect:w,cullRect:P,effects:p,pass:"picking:".concat(c),canvasContext:d});n=F(Z(W({},e),{deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceRect:w}))}else n={pickedColor:null,pickedObjectIndex:-1};let v=this._getDepthLayers(n,g,u);if(v.length>0){var j,C;let{pickedColors:e}=await this._drawAndSampleAsync({layers:v,views:i,viewports:r,onViewportActive:h,deviceRect:{x:null!=(j=n.pickedX)?j:m[0],y:null!=(C=n.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 i of(n.pickedLayer&&e+1<l&&(O.add(n.pickedLayer),n.pickedLayer.disablePickingIndex(n.pickedObjectIndex)),(t=B({pickInfo:n,lastPickedInfo:this.lastPickedInfo,mode:c,layers:g,viewports:r,x:o,y:s,z:a,pixelRatio:f})).values()))i.layer&&x.push(i);if(!n.pickedColor)break}for(let e of O)e.restorePickingColors();return{result:x,emptyInfo:t.get(null)}}_pickClosestObject(e){let t,{layers:n,views:i,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(n);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:_}=this.pickingFBO,w=this._getPickingRect({deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceWidth:b,deviceHeight:_}),P={x:o-a,y:s-a,width:2*a+1,height:2*a+1},x=[],O=new Set;for(let e=0;e<l;e++){let n,a;if(w){let e=this._drawAndSample({layers:g,views:i,viewports:r,onViewportActive:h,deviceRect:w,cullRect:P,effects:p,pass:"picking:".concat(c),canvasContext:d});n=F(Z(W({},e),{deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceRect:w}))}else n={pickedColor:null,pickedObjectIndex:-1};let v=this._getDepthLayers(n,g,u);if(v.length>0){var j,C;let{pickedColors:e}=this._drawAndSample({layers:v,views:i,viewports:r,onViewportActive:h,deviceRect:{x:null!=(j=n.pickedX)?j:m[0],y:null!=(C=n.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 i of(n.pickedLayer&&e+1<l&&(O.add(n.pickedLayer),n.pickedLayer.disablePickingIndex(n.pickedObjectIndex)),(t=B({pickInfo:n,lastPickedInfo:this.lastPickedInfo,mode:c,layers:g,viewports:r,x:o,y:s,z:a,pixelRatio:f}
1)).values()))i.layer&&x.push(i);if(!n.pickedColor)break}for(let e of O)e.restorePickingColors();return{result:x,emptyInfo:t.get(null)}}async _pickVisibleObjectsAsync(e){let{layers:t,views:n,viewports:i,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===i.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,_=y.y,w=await this._drawAndSampleAsync({layers:p,views:n,viewports:i,onViewportActive:d,deviceRect:{x:v,y:_,width:b-v,height:m-_},cullRect:{x:r,y:o,width:s,height:a},effects:h,pass:"picking:".concat(l),canvasContext:u}),P=N(w),x=new Map,O=[],j=Number.isFinite(c);for(let e=0;e<P.length;e++){var C;if(j&&O.length>=c)break;let t=P[e],n={color:t.pickedColor,layer:null,index:t.pickedObjectIndex,picked:!0,x:r,y:o,pixelRatio:f},i=(n=G({layer:t.pickedLayer,info:n,mode:l})).layer.id;x.has(i)||x.set(i,new Set);let s=x.get(i),a=null!=(C=n.object)?C:n.index;s.has(a)||(s.add(a),O.push(n))}return O}_pickVisibleObjects(e){let{layers:t,views:n,viewports:i,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===i.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,_=y.y,w=this._drawAndSample({layers:p,views:n,viewports:i,onViewportActive:d,deviceRect:{x:v,y:_,width:b-v,height:m-_},cullRect:{x:r,y:o,width:s,height:a},effects:h,pass:"picking:".concat(l),canvasContext:u}),P=N(w),x=new Map,O=[],j=Number.isFinite(c);for(let e=0;e<P.length;e++){var C;if(j&&O.length>=c)break;let t=P[e],n={color:t.pickedColor,layer:null,index:t.pickedObjectIndex,picked:!0,x:r,y:o,pixelRatio:f},i=(n=G({layer:t.pickedLayer,info:n,mode:l})).layer.id;x.has(i)||x.set(i,new Set);let s=x.get(i),a=null!=(C=n.object)?C:n.index;s.has(a)||(s.add(a),O.push(n))}return O}async _drawAndSampleAsync(e){var t;let{layers:n,views:i,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:n,layerFilter:this.layerFilter,views:i,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:_}=s,w=null==(t=p.colorAttachments[0])?void 0:t.texture;if(!w)throw Error("Picking framebuffer color attachment is missing");let P=await this._readTextureDataAsync(w,{x:m,y,width:b,height:_},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,n){let{width:i,height:r}=t,o=e.computeMemoryLayout(t),s=this.device.createBuffer({byteLength:o.byteLength,usage:D.h.COPY_DST|D.h.MAP_READ});try{e.readBuffer(t,s);let a=await s.readAsync(0,o.byteLength),l=n.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 n(a.buffer,a.byteOffset,o.byteLength/l),u=4*i,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 n(i*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:n,viewports:i,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:n,viewports:i,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:n}of e)t+=n;this.stats.get("Layers picked").addCount(t)}_getDepthLayers(e,t,n){var i;if(!n||!this.depthFBO)return[];let{pickedLayer:r}=e,o=(null==r||null==(i=r.state)?void 0:i.terrainDrawMode)==="drape";return r&&!o?[r]:t.filter(e=>e.props.operation.includes("terrain"))}_getPickingRect(e){let{deviceX:t,deviceY:n,deviceRadius:i,deviceWidth:r,deviceHeight:o}=e,s=Math.max(0,t-i),a=Math.max(0,n-i),l=Math.min(r,t+i+1)-s,c=Math.min(o,n+i+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=n(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,_.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:n}=e,i=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=i[s];t&&(e.onViewportChange&&e.onViewportChange(t),null==(r=e.onRedraw)||r.call(e,{viewports:[t],layers:n}))}else{if(e.onViewportChange)for(let n of t)e.onViewportChange(n);null==(o=e.onRedraw)||o.call(e,{viewports:t,layers:n})}}this.lastViewports=i,this._updateContainers()}onHover(e,t){for(let r of this.getWidgets()){var n,i;let{viewId:o}=r;o&&o!==(null==(n=e.viewport)?void 0:n.id)||null==(i=r.onHover)||i.call(r,e,t)}}getCanvasBounds(e){var t,n,i,r,o,s,a;let l=null==(n=this.deck)||null==(t=n.getCanvas)?void 0:t.call(n),c=null==l?void 0:l.getBoundingClientRect(),u=null==(i=this.parentElement)?void 0:i.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(),[n,i]=d.getCSSSize();return{x:e-u.left,y:t-u.top,width:n,height:i}}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 n=q.tg[t.type];if(n)for(let o of this.getWidgets()){var i,r;let{viewId:s}=o;s&&s!==(null==(i=e.viewport)?void 0:i.id)||null==(r=o[n])||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 n of e){let e=t[n.id];e?e.viewId!==n.viewId||e.placement!==n.placement?(this._removeWidget(e),this._addWidget(n)):n!==e&&(e.setProps(n.props),n=e):this._addWidget(n),t[n.id]=null,this.resolvedWidgets.push(n)}for(let e in t){let n=t[e];n&&this._removeWidget(n)}this.widgets=e}_addWidget(e){var t;let{viewId:n=null,placement:i="top-left"}=e,r=null!=(t=e.props._container)?t:n;e.widgetManager=this,e.deck=this.deck,e.rootElement=e._onAdd({deck:this.deck,viewId:n}),e.rootElement&&this._getContainer(r,i).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 n=e||K,i=this.containers[n];if(!i){var r;(i=document.createElement("div")).style.pointerEvents="none",i.style.position="absolute",i.style.overflow="hidden",null==(r=this.parentElement)||r.append(i),this.containers[n]=i}let o=i.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]),i.append(o)),o}
1_updateContainers(){for(let e in this.containers){let t=this.lastViewports[e]||null,n=e===K||t,i=this.containers[e];if(n){let e=this._getContainerBounds(t);i.style.display="block",i.style.left="".concat(e.x,"px"),i.style.top="".concat(e.y,"px"),i.style.width="".concat(e.width,"px"),i.style.height="".concat(e.height,"px")}else i.style.display="none"}}_getContainerBounds(e){if(!e){var t,n;return{x:0,y:0,width:(null==(t=this.parentElement)?void 0:t.clientWidth)||this.deck.width,height:(null==(n=this.parentElement)?void 0:n.clientHeight)||this.deck.height}}let i=this.getCanvasBounds(e);return{x:i.x+e.x,y:i.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=n(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:n}=this,i=n&&n.props.getTooltip;if(!i)return;let r=i(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)}
1setTooltip(e,t,n){let i=this.rootElement;if(i){if("string"==typeof e)i.innerText=e;else if(e)e.text&&(i.innerText=e.text),e.html&&(i.innerHTML=e.html),e.className&&(i.className=e.className);else{this.isVisible=!1,i.style.display="none";return}this.isVisible=!0,i.style.display="block",i.style.transform="translate(".concat(t,"px, ").concat(n,"px)"),e&&"object"==typeof e&&"style"in e&&Object.assign(i.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 n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},J.x.defaultProps);var ee=n(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),n={},i=[],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),n[o]=l,i.push(o)}for(let[e,t]of Object.entries(this.targets))n[e]||(t.eventManager.destroy(),t.presentationContext.destroy());this.targets=n,this.order=i;let o=Object.fromEntries(Object.entries(n).map(e=>{let[t,n]=e;return[t,n.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,n)=>{let i,r;return"string"==typeof e?(i=document.getElementById(e),(0,ee.A)(i,"Canvas with id ".concat(e," not found")),r=e):r=(i=e).id||"deckgl-canvas-".concat(n),(0,ee.A)(!t.has(r),"Duplicate canvas id ".concat(r)),t.add(r),{id:r,canvas:i}})}_haveSameEventManagers(e){let t=Object.keys(e),n=Object.keys(this.eventManagers);return t.length===n.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 en=n(17390),ei=n(37563),er=n(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],n=e[e.length-1];return"{"===t&&"}"===n||"["===t&&"]"===n},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 n,i;d.A.log(1,"deck.gl ".concat(e))(),globalThis.deck=(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},globalThis.deck),i=i={VERSION:e,version:e,log:d.A,_registerLoggers:h.k},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}
1)(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n),(0,ei.mk)([eo,[er.$,{imagebitmap:{premultiplyAlpha:"none"}}]])}return e}();var ea=n(60966),el=n(51598),ec=n(93613),eu=n(39171);function ed(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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,n,i,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==(n=this.layerManager)||n.finalize(),this.layerManager=null,null==(i=this.viewManager)||i.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,n,i,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,_.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==(n=this.animationLoop)||n.setProps(a),void 0!==e.useDevicePixels&&(null==(i=this._canvasContext)?void 0:i.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 n=this.viewManager.needsRedraw(e),i=this.layerManager.needsRedraw(e),r=this.effectManager.needsRedraw(e),o=this.deckRenderer.needsRedraw(e);return t||n||i||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,n;let i=e?null==(n=this.viewManager)||null==(t=n.getView(e))?void 0:t.props.canvasId:void 0;return this._getCanvasContext(i)}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,n){var i;return"sync"!==this._getInternalPickingMode()?null:this.pickObject({x:e,y:t,radius:0,unproject3D:!0,canvasId:n?null==(i=this.viewManager)?void 0:i.getCanvasId(n):void 0})}_addResources(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(let n in e)this.layerManager.resourceManager.add({resourceId:n,data:e[n],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:n}=this.props,i=(null==(e=this.device)?void 0:e.type)||(null==(t=this.props.deviceProps)?void 0:t.type);if("auto"===n)return"webgpu"===i?"async":"sync";if("sync"===n&&"webgpu"===i)throw Error('`pickAsync: "sync"` is not supported when Deck is using a WebGPU device.');return n}_getInternalPickingMode(){try{return this._resolveInternalPickingMode()}catch(n){var e,t;return null==(e=(t=this.props).onError)||e.call(t,n),null}}_validateInternalPickingMode(){this._getInternalPickingMode()}_getFirstPickedInfo(e){let{result:t,emptyInfo:n}=e;return t[0]||n}_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 n;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(null==(n=this.layerManager)?void 0:n.getLayers())||[];return ed({x:e,y:t,canvasId:i.canvasId,radius:this.props.pickingRadius,unproject3D:this._shouldUnproject3D(r)},i)}_pickPointSync(e){return this._pick("pickObject","pickObject Time",e)}_pickPointAsync(e){return this._pickAsync("pickObjectAsync","pickObject Time",e)}_getLastPointerDownPickingInfo(e,t,n){var i;let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(null==(i=this.layerManager)?void 0:i.getLayers())||[];return this.deckPicker.getLastPickedObject({x:e,y:t,layers:r,viewports:this.getViewports({x:e,y:t,canvasId:n})},this._lastPointerDownInfo)}_applyHoverCallbacks(e,t){var n,i,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==(n=e.layer)?void 0:n.onHover(e,t))||l;l||(null==(i=(r=this.props).onHover)||i.call(r,a,t),this.widgetManager.onHover(a,t))}_dispatchPickingEvent(e,t){if(!this.layerManager||!this.widgetManager)return;let n=q.tg[t.type];if(!n)return;let{layer:i}=e,r=i&&(i[n]||i.props[n]),o=this.props[n],s=!1;r&&(s=r.call(i,e,t)),s||(null==o||o(e,t),this.widgetManager.onEvent(e,t))}_pickAsync(e,t,n){(0,ee.A)(this.deckPicker);let{stats:i}=this,r=this._isMultiCanvasMode()?n.canvasId||this._getDefaultCanvasId():n.canvasId,o=this._getCanvasContext(r)||void 0;i.get("Pick Count").incrementCount(),i.get(t).timeStart(),this._resizeForCanvasTarget(r);let s=this.deckPicker[e](eh(ed({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(eh(ed({},n),{canvasId:r})),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects()},n),{canvasId:r,canvasContext:o}));return i.get(t).timeEnd(),s}_pick(e,t,n){(0,ee.A)(this.deckPicker);let{stats:i}=this,r=this._isMultiCanvasMode()?n.canvasId||this._getDefaultCanvasId():n.canvasId,o=this._getCanvasContext(r)||void 0;i.get("Pick Count").incrementCount(),i.get(t).timeStart(),this._resizeForCanvasTarget(r);let s=this.deckPicker[e](eh(ed({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(eh(ed({},n),{canvasId:r})),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects()},n),{canvasId:r,canvasContext:o}));return i.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[n,i,r,o]=q.We[e];return{recognizer:new n(eh(ed({},i,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]:{},n=e.getDefaultCanvasContext();this._setCanvasContext(n),this._setDeviceResizeHandler(e,t)}_setDeviceResizeHandler(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=!!n.syncDrawingBuffer;if((null==(t=this._deviceResizeHandler)?void 0:t.device)===e){this._deviceResizeHandler.syncDrawingBuffer=i;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:i}}_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:n}=e;if(t||0===t){let e=Number.isFinite(t)?"".concat(t,"px"):t;this.canvas.style.width=e}if(n||0===n){var i;let t=Number.isFinite(n)?"".concat(n,"px"):n;this.canvas.style.position=(null==(i=e.style)?void 0:i.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 n=this._canvasManager.getTarget(e);if(!n||!(null==(t=this.device)?void 0:t.canvasContext))return;let[i,r]=n.presentationContext.getDrawingBufferSize();this.device.canvasContext.setDrawingBufferSize(i,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,n,i,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!=(n=null!=(i=null==a?void 0:a.clientHeight)?i:null==a?void 0:a.height)?n: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:n}=e.canvas;e.setDrawingBufferSize(t,n)}this._needsRedraw="Canvas resized",this._updateCanvasSize(e)}_updateMultiCanvasDimensions(){var e,t,n;let[i,r]=(null==(e=this._getCanvasContext())?void 0:e.getCSSSize())||[0,0];(i!==this.width||r!==this.height)&&(this.width=i,this.height=r,this.props.onResize({width:i,height:r})),this._needsRedraw="Canvas resized",null==(t=this.viewManager)||t.setNeedsUpdate("Canvas resized"),null==(n=this.viewManager)||n.setProps({width:this.width,height:this.height})}_createAnimationLoop(e,t){let{gl:n,onError:i}=t;return new ec.F({device:e,autoResizeDrawingBuffer:!n&&!Array.isArray(t._canvase
1s),autoResizeViewport:!1,onInitialize:e=>this._setDevice(e.device),onRender:this._onRenderFrame.bind(this),onError:i})}_createDevice(e){var t,n;let i=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==(n=this.props.deviceProps)?void 0:n.type)==="webgpu"?"premultiplied":void 0};return ea.a.createDevice(eh(ed({_reuseDevices:!0,type:"webgl"},r),{createCanvasContext:eh(ed({},o,"object"==typeof i?i: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 O.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 n=e.event,i=(null==(t=this.layerManager)?void 0:t.getLayers())||[],r=this._getPointPickOptions(e.x,e.y,{canvasId:e.canvasId,radius:e.radius,mode:e.mode},i),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),n);this._pickPointAsync(r).then(e=>{let{result:t,emptyInfo:i}=e;s===this._hoverPickSequence&&this._applyHoverCallbacks({result:t,emptyInfo:i},n)}).catch(e=>{var t,n;return null==(t=(n=this.props).onError)?void 0:t.call(n,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,n,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 i.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 x({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 H(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==(n=this.canvas)?void 0:n.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 n,i,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==(i=this.deckRenderer)||i.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==(n=this.deckRenderer)||n.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:n,stats:i}=this;n.fps=i.get("frameRate").getHz(),n.setPropsTime=i.get("setProps Time").time,n.updateAttributesTime=i.get("Update Attributes").time,n.framesRedrawn=i.get("Redraw Count").count,n.pickTime=i.get("pickObject Time").time+i.get("pickMultipleObjects Time").time+i.get("pickObjects Time").time,n.pickCount=i.get("Pick Count").count,n.layersCount=null!=(e=null==(t=this.layerManager)?void 0:t.layers.length)?e:0,n.drawLayersCount=i.get("Layers rendered").lastSampleCount,n.pickLayersCount=i.get("Layers picked").lastSampleCount,n.updateLayersCount=i.get("Layer updates").count,n.updateAttributesCount=i.get("Attributes updated").count,n.gpuTime=i.get("GPU Time").time,n.cpuTime=i.get("CPU Time").time,n.gpuTimePerFrame=i.get("GPU Time").getAverageTime(),n.cpuTimePerFrame=i.get("CPU Time").getAverageTime();let r=ea.a.stats.get("GPU Time and Memory");n.bufferMemory=r.get("Buffer Memory").count,n.textureMemory=r.get("Texture Memory").count,n.renderbufferMemory=r.get("Renderbuffer Memory").count,n.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,n=this._getCanvasIdFromEvent(e);
1if("pointerleave"===e.type)t.x=-1,t.y=-1,t.radius=0,t.canvasId=n;else{if(e.leftButton||e.rightButton)return;let i=e.offsetCenter;if(!i)return;t.x=i.x,t.y=i.y,t.radius=this.props.pickingRadius,t.canvasId=n}this.layerManager&&(this.layerManager.context.mousePosition={x:t.x,y:t.y}),t.event=e},this._onEvent=e=>{let t=q.tg[e.type],n=e.offsetCenter,i=this._getCanvasIdFromEvent(e);if(!t||!n||!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(n.x,n.y,{unproject3D:!0,canvasId:i},r))):this._getLastPointerDownPickingInfo(n.x,n.y,i,r);this._dispatchPickingEvent(t,e);return}(this._lastPointerDownInfoPromise||Promise.resolve(this._getLastPointerDownPickingInfo(n.x,n.y,i,r))).then(t=>{this._dispatchPickingEvent(t,e)}).catch(e=>{var t,n;return null==(t=(n=this.props).onError)?void 0:t.call(n,e)})}},this._onPointerDown=e=>{var t;let n=e.offsetCenter,i=this._getCanvasIdFromEvent(e);if(!n)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:n.x,y:n.y,canvasId:i,radius:this.props.pickingRadius}),t=this._getFirstPickedInfo(e);this._lastPointerDownInfo=t,this._lastPointerDownInfoPromise=Promise.resolve(t);return}let a=this._pickPointAsync(this._getPointPickOptions(n.x,n.y,{canvasId:i},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(n.x,n.y,i,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 n=this.device;!n&&e.gl&&(e.gl instanceof WebGLRenderingContext&&d.A.error("WebGL1 context not supported.")(),n=el.l.attach(e.gl,ed({_cacheShaders:!0,_cachePipelines:!0},this.props.deviceProps))),n||(n=this._createDevice(e)),this.animationLoop=this._createAnimationLoop(n,e),this.setProps(t),e._typedArrayManagerProps&&en.A.setOptions(e._typedArrayManagerProps),this.animationLoop.start()}}eg.defaultProps=ef,eg.VERSION=es;let ev=eg},26423(e,t,n){n.d(t,{A:()=>o});var i=n(59377);class r{static get componentName(){return Object.prototype.hasOwnProperty.call(this,"extensionName")?this.extensionName:""}equals(e){return this===e||this.constructor===e.constructor&&(0,i.b)(this.opts,e.opts,1)}getShaders(e){return null}getSubLayerProps(e){let{defaultProps:t}=e.constructor,n={updateTriggers:{}};for(let e in t)if(e in this.props){let i=t[e],r=this.props[e];n[e]=r,i&&"accessor"===i.type&&(n.updateTriggers[e]=this.props.updateTriggers[e],"function"==typeof r&&(n[e]=this.getSubLayerAccessor(r)))}return n}initializeState(e,t){}updateState(e,t){}onNeedsRedraw(e){}getNeedsPickingBuffer(e){return!1}draw(e,t){}finalizeState(e,t){}constructor(e){e&&(this.opts=e)}}r.defaultProps={},r.extensionName="LayerExtension";let o=r},13563(e,t,n){n.d(t,{A:()=>et});var i=n(60691),r=n(12210),o=n(73144),s=n(45566),a=n(26489),l=n(21758);class c extends l.A{get value(){return this._value}_onUpdate(){let{time:e,settings:{fromValue:t,toValue:n,duration:i,easing:r}}=this,o=r(e/i);this._value=(0,a.Cc)(t,n,o)}}function u(e,t,n,i,r){let o=t-e;return(n-t)*r+-o*i+o+t}function d(e,t){if(Array.isArray(e)){let n=0;for(let i=0;i<e.length;i++){let r=e[i]-t[i];n+=r*r}return Math.sqrt(n)}return Math.abs(e-t)}class h extends l.A{get value(){return this._currValue}_onUpdate(){let{fromValue:e,toValue:t,damping:n,stiffness:i}=this.settings,{_prevValue:r=e,_currValue:o=e}=this,s=function(e,t,n,i,r){if(Array.isArray(n)){let o=[];for(let s=0;s<n.length;s++)o[s]=u(e[s],t[s],n[s],i,r);return o}return u(e,t,n,i,r)}(r,o,t,n,i),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=n(1918);let f={interpolation:c,spring:h};class g{get active(){return this.transitions.size>0}add(e,t,n,i){var r,o;let{transitions:a}=this;if(a.has(e)){let n=a.get(e),{value:i=n.settings.fromValue}=n;t=i,this.remove(e)}if(!(i=(0,s.K)(i)))return;let l=f[i.type];if(!l)return void p.A.error("unsupported transition type '".concat(i.type,"'"))();let c=new l(this.timeline);c.start((r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},i),o=o={fromValue:t,toValue:n},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}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,n]of this.transitions)n.update(),e[t]=n.value,n.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=n(53043),m=n(17652),y=n(26758),b=n(22708),_=n(97252);function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}function P(e,t){if(!t)return e;let n=w({},e,t);if("defines"in t&&(n.defines=w({},e.defines,t.defines)),"modules"in t&&(n.modules=(e.modules||[]).concat(t.modules),t.modules.some(e=>"project64"===e.name))){let e=n.modules.findIndex(e=>"project32"===e.name);e>=0&&n.modules.splice(e,1)}if("inject"in t)if(e.inject){let i=w({},e.inject);for(let e in t.inject)i[e]=(i[e]||"")+t.inject[e];n.inject=i}else n.inject=t.inject;return n}var x=n(25514),O=n(17390),j=n(69798),C=n(70008),S=n(38550);function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}let M={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},A={};var E=n(59377);function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}let I={boolean:{validate:(e,t)=>!0,equal:(e,t,n)=>!!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||D(e)&&(3===e.length||4===e.length),equal:(e,t,n)=>(0,E.b)(e,t,1)},accessor:{validate(e,t){let n=L(e);return"function"===n||n===L(t.value)},equal:(e,t,n)=>"function"==typeof t||(0,E.b)(e,t,1)},array:{validate:(e,t)=>t.optional&&!e||D(e),equal(e,t,n){let{compare:i}=n,r=Number.isInteger(i)?i:+!!i;return i?(0,E.b)(e,t,r):e===t}},object:{equal(e,t,n){if(n.ignore)return!0;let{compare:i}=n,r=Number.isInteger(i)?i:+!!i;return i?(0,E.b)(e,t,r):e===t}},function:{validate:(e,t)=>t.optional&&!e||"function"==typeof e,equal:(e,t,n)=>!n.compare&&!1!==n.ignore||e===t},data:{transform:(e,t,n)=>{if(!e)return e;let{dataTransform:i}=n.props;return i?i(e):"string"==typeof e.shape&&e.shape.endsWith("-table")&&Array.isArray(e.data)?e.data:e}},image:{transform:(e,t,n)=>{let i=n.context;return i&&i.device?function(e,t,n,i){var r,o;if(n instanceof S.g)return n;n.constructor&&"Object"!==n.constructor.name&&(n={data:n});let s=null;n.compressed&&(s={minFilter:"linear",mipmapFilter:n.data.length>1?"nearest":"linear"});let{width:a,height:l}=n.data,c=t.createTexture((r=k({},n),o=o={sampler:k({},M,s,i),mipLevels:t.getMipLevelCount(a,l)},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}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}(n.id,i.device,e,T({},t.parameters,n.props.textureParameters)):null},release:(e,t,n)=>{var i;i=n.id,e&&e instanceof S.g&&A[e.id]===i&&(e.delete(),delete A[e.id])}}};function R(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 D(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function L(e){return D(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,n={};for(let e in t[m.jA])e in t[m.vf]?n[e]=t[m.vf][e]:e in t[m.YN]&&(n[e]=t[m.YN][e]);return new this.constructor(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},t,n,e))}constructor(...e){this.props=function(e,t){let n;for(let e=t.length-1;e>=0;e--){let i=t[e];"extensions"in i&&(n=i.extensions)}let i=Object.create(function e(t,n){var i,r;if(!(t instanceof N.constructor))return{};let o="_mergedDefaultProps";if(n)for(let e of n){let t=e.constructor;t&&(o+=":".concat(t.extensionName||t.name))}let s=z(i=t,r=o)&&i[r];return s||(t[o]=function(t,n){var i;let r;if(!t.prototype)return null;let o=e(Object.getPrototypeOf(t)),s=function(e){let t={},n={},i={};for(let[r,o]of Object.entries(e)){let e=null==o?void 0:o.deprecatedFor;if(e)i[r]=Array.isArray(e)?e:[e];else{let e=function(e,t){switch(L(t)){case"object":return R(e,t);case"array":return R(e,{type:"array",value:t,compare:!1});case"boolean":return R(e,{type:"boolean",value:t});case"number":return R(e,{type:"number",value:t});case"function":return R(e,{type:"function",value:t,compare:!0});default:return{name:e,type:"unknown",value:t}}}(r,o);t[r]=e,n[r]=e.value}}return{propTypes:t,defaultProps:n,deprecatedProps:i}}(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 n){let n=e(t.constructor);n&&(Object.assign(a,n),Object.assign(l,n[m.fW]),Object.assign(c,n[m.uH]))}return Object.defineProperties(a,{id:{writable:!0,value:((r=(i=t).componentName)||p.A.warn("".concat(i.name,".componentName not specified"))(),r||i.name)}}),function(e,t){let n={},i={};for(let e in t){let r=t[e],{name:o,value:s}=r;r.async&&(n[o]=s,i[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]=n,e[m.YN]={},Object.defineProperties(e,i)}(a,l),function(e,t){for(let n in t)Object.defineProperty(e,n,{enumerable:!1,set(e){let i="".concat(this.id,": ").concat(n);for(let i of t[n])z(this,i)||(this[i]=e);p.A.deprecated(i,t[n].join("/"))()}})}(a,c),a[m.fW]=l,a[m.uH]=c,0!==n.length||z(t,"_propTypes")||(t._propTypes=l),a}(t,n||[]))}(e.constructor,n));i[m.r3]=e,i[m.YN]={},i[m.vf]={};for(let e=0;e<t.length;++e){let n=t[e];for(let e in n)i[e]=n[e]}return Object.freeze(i),i}(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]||{},n=e[m.YN]||e,i=e[m.jA]||{};for(let e in t){let n=t[e];this._createAsyncPropData(e,i[e]),this._updateAsyncProp(e,n),t[e]=this.getAsyncProp(e)}for(let e in n){let t=n[e];this._createAsyncPropData(e,i[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 n=this.asyncProps[e];return t!==n.resolvedValue&&t!==n.lastValue&&(n.lastValue=t,!0)}_setPropValue(e,t){this._freezeAsyncOldProps();let n=this.asyncProps[e];n&&(t=this._postProcessValue(n,t),n.resolvedValue=t,n.pendingLoadCount++,n.resolvedLoadCount=n.pendingLoadCount)}_setAsyncPropValue(e,t,n){let i=this.asyncProps[e];i&&n>=i.resolvedLoadCount&&void 0!==t&&(this._freezeAsyncOldProps(),i.resolvedValue=t,
1i.resolvedLoadCount=n,this.onAsyncPropUpdated(e,t))}_watchPromise(e,t){let n=this.asyncProps[e];if(n){n.pendingLoadCount++;let i=n.pendingLoadCount;t.then(t=>{this.component&&(t=this._postProcessValue(n,t),this._setAsyncPropValue(e,t,i),this._onResolve(e,t))}).catch(t=>{this._onError(e,t)})}}async _resolveAsyncIterable(e,t){if("data"!==e)return void this._setPropValue(e,t);let n=this.asyncProps[e];if(!n)return;n.pendingLoadCount++;let i=n.pendingLoadCount,r=[],o=0;for await(let n of t){if(!this.component)return;let{dataTransform:t}=this.component.props;Object.defineProperty(r=t?t(n,r):r.concat(n),"__diff",{enumerable:!1,value:[{startRow:o,endRow:r.length}]}),o=r.length,this._setAsyncPropValue(e,r,i)}this._onResolve(e,r)}_postProcessValue(e,t){let n=e.type;return n&&this.component&&(n.release&&n.release(e.resolvedValue,n,this.component),n.transform)?n.transform(t,n,this.component):t}_createAsyncPropData(e,t){if(!this.asyncProps[e]){let n=this.component&&this.component.props[m.fW];this.asyncProps[e]={type:n&&n[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 n=this.layer,i=null==n?void 0:n.props.fetch;return i?i(t,{propName:e,layer:n}):super._fetch(e,t)}_onResolve(e,t){let n=this.layer;if(n){let i=n.props.onDataLoad;"data"===e&&i&&i(t,{propName:e,layer:n})}}_onError(e,t){let n=this.layer;n&&n.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=n(86083),Z=n(2043);function H(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}let Y=Object.freeze([]),K=(0,_.A)(e=>{let{oldViewport:t,viewport:n}=e;return t.equals(n)}),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,n=(0,x.w)(e,{viewport:t,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[i,r,o]=(0,W.VJ)(n,t.pixelProjectionMatrix);return 2===e.length?[i,r]:[i,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 n=this.internalState.viewport||this.context.viewport;return(0,x.R)(e,H({viewport:n,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),n=0;n<e;n++)t[n]=arguments[n];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,n,i]=e;return t+256*n+65536*i-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,n=this.props.data;if(null===(e=n)||"object"!=typeof e)throw Error("count(): argument not an object");
1if("function"==typeof n.count)return n.count();if(Number.isFinite(n.size))return n.size;if(Number.isFinite(n.length))return n.length;if(null!==(t=n)&&"object"==typeof t&&t.constructor===Object)return Object.keys(n).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:n}=e.changeFlags;if(n&&t)if(Array.isArray(n))for(let e of n)t.invalidateAll(e);else t.invalidateAll();if(t){let{props:n}=e,i=this.internalState.hasPickingBuffer,r=Number.isInteger(n.highlightedObjectIndex)||!!n.pickable||n.extensions.some(e=>e.getNeedsPickingBuffer.call(this,e));if(i!==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)?[j.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:n,sourceLayer:i}=e,{index:r}=t;return r>=0&&Array.isArray(this.props.data)&&(t.object=this.props.data[r]),t}raiseError(e,t){var n,i,r,o;t&&(e=Error("".concat(t,": ").concat(e.message),{cause:e})),(null==(n=(i=this.props).onError)?void 0:n.call(i,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 n in e)e[n].layoutChanged()&&(t=!0);for(let n of this.getModels())this._setModelAttributes(n,e,t)}_updateAttributes(){let e=this.getAttributeManager();if(!e)return;let t=this.props,n=this.getNumInstances(),i=this.getStartIndices();e.update({data:t.data,numInstances:n,startIndices:i,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(),n=Object.create(this.props);for(let e in t)Object.defineProperty(n,e,{value:t[e]});return n}return this.props}calculateInstancePickingColors(e,t){let{numInstances:n}=t;if(e.constant)return;let i=Math.floor(X.length/4);this.internalState.usesPickingColorCache=!0;let r=n>0&&0===X[0];if(i<n||r){n>0xffffff&&p.A.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")();let e=Math.floor((X=O.A.allocate(X,n,{size:4,copy:!0,maxCount:Math.max(n,0xffffff)})).length/4),t=[0,0,0],o=r?0:i;for(let n=o;n<e;n++)this.encodePickingColor(n,t),X[4*n+0]=t[0],X[4*n+1]=t[1],X[4*n+2]=t[2],X[4*n+3]=0}e.value=X.subarray(0,4*n)}_setModelAttributes(e,t){var n;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 n=this.getAttributeManager();e.setBufferLayout(n.getBufferLayouts(e)),t=n.getAttributes()}let s=(null==(n=e.userData)?void 0:n.excludeAttributes)||{},a={},l={};for(let n in t){if(s[n])continue;let r=t[n].getValue();for(let o in r){let s=r[o];s instanceof i.h?t[n].settings.isIndexed?e.setIndexBuffer(s):a[o]=s:s&&(l[o]=s)}}e.setAttributes(a),e.setConstantAttributes(l)}
1_setGroupedModelAttributes(e,t,n){var r;let o=(null==(r=e.userData)?void 0:r.excludeAttributes)||{},s=t.getBufferGroupBindings(n,e,o);e.setBufferLayout(s.bufferLayouts);let a=H({},s.buffers),l={},c=t.getAttributes();for(let t in c){if(o[t]||s.groupedAttributeIds.has(t))continue;let n=c[t],r=n.getValue();for(let t in r){let o=r[t];o instanceof i.h?n.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 n=this.getAttributeManager().attributes,i=$(n),r=Q(n),o=i&&t.attributes&&t.attributes[i.id];if(o&&o.value){let n=o.value;for(let r=0;r<t.length;r++)n[i.getVertexOffset(r)]===e&&this._disablePickingIndex(r);return}let s=r&&t.attributes&&t.attributes[r.id];if(s&&s.value){let n=s.value,i=this.encodePickingColor(e);for(let e=0;e<t.length;e++){let t=r.getVertexOffset(e);n[t]===i[0]&&n[t+1]===i[1]&&n[t+2]===i[2]&&this._disablePickingIndex(e)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){let t=this.getAttributeManager().attributes,n=$(t);if(n){let t=n.getVertexOffset(e),i=new Uint32Array(n.getVertexOffset(e+1)-t);i.fill(j.Z1),n.buffer.write(i,t*i.BYTES_PER_ELEMENT);return}let i=Q(t);if(!i){this.internalState&&(0,j.uz)(this.internalState.disabledPickingIndices,e);return}let r=i.getVertexOffset(e),o=i.getVertexOffset(e+1);i.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 n=Q(e);this.internalState.usesPickingColorCache&&n&&n.value.buffer!==X.buffer&&(n.value=X.subarray(0,n.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:n}=e;this!==e&&(this.internalState=n,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,n=this.context,i=this.internalState,r=n.viewport,o=this._updateUniformTransition();i.propsInTransition=o,n.viewport=i.viewport||r,this.props=o;try{let e=this._getUpdateParams(),t=this.getModels();if(n.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 i=this.getModels()[0]!==t[0];this._postUpdate(e,i)}finally{n.viewport=r,this.props=t,this._clearChangeFlags(),i.needsUpdate=!1,i.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:n=null,uniforms:i={},parameters:o={}}=e;this._updateAttributeTransition();let s=this.props,a=this.context;this.props=this.internalState.propsInTransition||s;try{n&&this.setShaderModuleProps(n);let{getPolygonOffset:e}=this.props,s=e&&e(i)||[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,n=function(e,t){if(null==e)return{};var n,i,r,o={};if("u">typeof Reflect&&Reflect.ownKeys){for(r=0,n=Reflect.ownKeys(Object(e));r<n.length;r++)i=n[r],!(t.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i]);return o}if(o=function(e,t){if(null==e)return{};var n,i,r={},o=Object.getOwnPropertyNames(e);for(i=0;i<o.length;i++)n=o[i],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}(e,t),Object.getOwnPropertySymbols)for(r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)i=n[r],!(t.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i]);return o}(e,["blendConstant"]);return t?{pipelineParameters:n,renderPassParameters:{blendConstant:t}}:{pipelineParameters:n}}(o);if(function(e,t,n,i){for(let r of e)"webgpu"===r.device.type?(function(e,t){var n,i,r;let o=t.props.framebuffer||(null!=(n=t.framebuffer)?n:null);if(!o)return;let s=o.colorAttachments.map(e=>{var t,n;return null!=(t=null==e||null==(n=e.texture)?void 0:n.format)?t:null}),a=null==(r=o.depthStencilAttachment)||null==(i=r.texture)?void 0:i.format;(!function(e,t){if(e===t)return!0;
1if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])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(H({},r.parameters,null==i?void 0:i.pipelineParameters))):r.setParameters(n)}(this.getModels(),t,o,l),a.device instanceof r.WebGLDevice)a.device.withParametersWebGL(o,()=>{let e={renderPass:t,shaderModuleProps:n,uniforms:i,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:n,uniforms:i,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 n in e)if(e[n]){let i=!1;if("dataChanged"===n){let r=e[n],o=t[n];r&&Array.isArray(o)&&(t.dataChanged=Array.isArray(r)?o.concat(r):r,i=!0)}t[n]||(t[n]=e[n],i=!0),i&&(0,y.A)("layer.changeFlag",this,n,e)}let n=!!(t.dataChanged||t.updateTriggersChanged||t.propsChanged||t.extensionsChanged);t.propsOrDataChanged=n,t.somethingChanged=n||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 n=(0,v.mg)(e,t);if(n.updateTriggersChanged)for(let e in n.updateTriggersChanged)n.updateTriggersChanged[e]&&this.invalidateAttribute(e);if(n.transitionsChanged)for(let r in n.transitionsChanged){var i;this.internalState.uniformTransitions.add(r,t[r],e[r],null==(i=e.transitions)?void 0:i[r])}return this.setChangeFlags(n)}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:n}=this.props;e.picked&&"function"==typeof n&&(t.highlightColor=n(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:n,oldProps:i}=e,r=this.state.model;(null==r?void 0:r.isInstanced)&&r.setInstanceCount(this.getNumInstances());let{autoHighlight:o,highlightedObjectIndex:s,highlightColor:a}=n;if(t||i.autoHighlight!==o||i.highlightedObjectIndex!==s||i.highlightColor!==a){let e={};Array.isArray(a)&&(e.highlightColor=a),(t||i.autoHighlight!==o||s!==i.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 n=this.getAttributeManager(),i=!!n&&n.getNeedsRedraw(e);if(t=t||i)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:n,layer:i,loaders:r,loadOptions:o,signal:s}=t,{resourceManager:a}
1=i.context;if(o=o||i.getLoadOptions(),r=r||i.props.loaders,s){var l;o=q(H({},o),{core:q(H({},null==o?void 0:o.core),{fetch:q(H({},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,Z.H)(e,r),persistent:!1}),c=!0),c)?a.subscribe({resourceId:e,onChange:e=>{var t;return null==(t=i.internalState)?void 0:t.reloadAsyncProp(n,e)},consumerId:i.id,requestId:n}):(0,Z.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,n){n.d(t,{x:()=>o});var i=n(59377),r=n(44855);class o{setProps(e){let t=this.props,n=this.rootElement;n&&t.className!==e.className&&(t.className&&n.classList.remove(t.className),e.className&&n.classList.add(e.className)),n&&!(0,i.b)(t.style,e.style,1)&&((0,r.h)(n,t.style),(0,r.Z)(n,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,n;return(null==(n=this.deck)||null==(t=n.viewManager)?void 0:t.getViewState(e))||{}}setViewState(e,t){var n;null==(n=this.deck)||n._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>0).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 n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},this.constructor.defaultProps,e),this.id=this.props.id}}o.defaultProps={id:"widget",style:{},_container:null,className:""}},17652(e,t,n){n.d(t,{VD:()=>i,YN:()=>l,fW:()=>o,jA:()=>a,r3:()=>r,uH:()=>s,vf:()=>c});let i={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,n){n.d(t,{Me:()=>s,mg:()=>o,zo:()=>r});var i=n(17652);function r(e){let t=e[i.fW];for(let n in t){let i=t[n],{validate:r}=i;if(r&&!r(e[n],i))throw Error("Invalid prop ".concat(n,": ").concat(e[n]))}}function o(e,t){let n=s({newProps:e,oldProps:t,propTypes:e[i.fW],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),r=function(e,t){if(null===t)return"oldProps is null, initial diff";let n=!1,{dataComparator:i,_dataDiff:r}=e;return i?i(e.data,t.data)||(n="Data comparator detected a change"):e.data!==t.data&&(n="A new data container was supplied"),n&&r&&(n=r(e.data,t.data)||n),n}(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 n={},i=!1;for(let r in e.updateTriggers)"all"!==r&&l(e,t,r)&&(n[r]=!0,i=!0);return!!i&&n}(e,t)),{dataChanged:r,propsChanged:n,updateTriggersChanged:o,extensionsChanged:function(e,t){if(null===t)return!0;let n=t.extensions,{extensions:i}=e;if(i===n)return!1;if(!n||!i||i.length!==n.length)return!0;for(let e=0;e<i.length;e++)if(!i[e].equals(n[e]))return!0;return!1}(e,t),transitionsChanged:function(e,t){if(!e.transitions)return!1;let n={},r=e[i.fW],o=!1;for(let i in e.transitions){let s=r[i],l=s&&s.type;("number"===l||"color"===l||"array"===l)&&a(e[i],t[i],s)&&(n[i]=!0,o=!0)}return!!o&&n}(e,t)}}function s(e){let{newProps:t,oldProps:n,ignoreProps:i={},propTypes:r={},triggerName:o="props"}=e;if(n===t)return!1;if("object"!=typeof t||null===t||"object"!=typeof n||null===n)return"".concat(o," changed shallowly");for(let e of Object.keys(t))if(!(e in i)){if(!(e in n))return"".concat(o,".").concat(e," added");let i=a(t[e],n[e],r[e]);if(i)return"".concat(o,".").concat(e," ").concat(i)}for(let e of Object.keys(n))if(!(e in i)){if(!(e in t))return"".concat(o,".").concat(e," dropped");if(!Object.hasOwnProperty.call(t,e)){let i=a(t[e],n[e],r[e]);if(i)return"".concat(o,".").concat(e," ").concat(i)}}return!1}function a(e,t,n){let i=n&&n.equal;return i&&!i(e,t,n)||!i&&(i=e&&t&&e.equals)&&!i.call(e,t)?"changed deeply":i||t===e?null:"changed shallowly"}function l(e,t,n){let i=e.updateTriggers[n];i=null==i?{}:i;let r=t.updateTriggers[n];return s({oldProps:r=null==r?{}:r,newProps:i,triggerName:n})}},57618(e,t,n){n.d(t,{A:()=>
1o});var i=n(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 i.A{render(e){this._render(e)}_render(e){var t,n,i,r;let{canvasContext:o=this.device.canvasContext}=e,s=null!=(t=e.target)?t:o.getCurrentFramebuffer(),[a,l]=o.getDrawingBufferSize(),c=null==(n=e.clearCanvas)||n,u=null!=(i=e.clearColor)?i:!!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,_=e.pass||"unknown",w="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 n=this._getDrawLayerParams(t,e),i=m&&m[t.id],r=t.subViewports||[t];for(let t of w?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:i,pass:_,layers:e.layers,isPicking:e.isPicking},n);P.push(t)}}finally{r.end(),w&&this.device.submit()}u=!1,d=!1,h=!1}}return P}finally{w||this.device.submit()}}_getDrawLayerParams(e,t){let{layers:n,pass:i,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,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i={},r=(o,s)=>{let a,l=o.props._offset,c=o.id,u=o.parent&&o.parent.id;if(!u||u in n||r(o.parent,!1),u in i){let t=i[u]=i[u]||e(n[u],n);a=t(o,s),i[c]=t}else Number.isFinite(l)?(a=l+(n[u]||0),i[c]=null):a=t;return s&&a>=t&&(t=a+1),n[c]=a,a};return r}(this._lastRenderIndex+1),g={layer:n[0],viewport:e,isPicking:o,renderPass:i,cullRect:a},v={};for(let t=0;t<n.length;t++){let o=n[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,i,u,d),b.layerParameters=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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,n){let{layers:i,shaderModuleProps:r,pass:o,target:s,canvasContext:a,viewport:l,view:c,isPicking:u}=t,d=function(e,t){var n,i;let{canvasContext:r=e.canvasContext,shaderModuleProps:o,target:s,viewport:a}=t,l=null!=(n=null==o||null==(i=o.project)?void 0:i.devicePixelRatio)?n: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:n,clearStencil:i}=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!==n&&(r=n),void 0!==i&&(o=i),this.device.beginRenderPass({framebuffer:s,parameters:{viewport:d,scissorRect:d},clearColor:e,clearDepth:r,clearStencil:o}).end()}}let h={totalCount:i.length,visibleCount:0,compositeCount:0,pickableCount:0};e.setParameters({viewport:d});for(let t=0;t<i.length;t++){let r=i[t],s=n[t],{shouldDrawLayer:a}=s;if(a&&r.props.pickable&&h.pickableCount++,r.isComposite&&h.compositeCount++,r.isDrawable&&s.shouldDrawLayer){let{layerRenderIndex:t,shaderModuleProps:n,layerParameters:i}=s;h.visibleCount++,this._lastRenderIndex=Math.max(this._lastRenderIndex,t),n.project&&(n.project.viewport=l),r.context.renderPass=e;try{r._drawLayer({renderPass:e,shaderModuleProps:n,uniforms:{layerIndex:t},parameters:i})}catch(e){r.raiseError(e,"drawing ".concat(r," to ").concat(o))}}}return h}shouldDrawLayer(e){return!0}getShaderModuleProps(e,t,n){return null}getLayerParameters(e,t,n){return e.props.parameters}_shouldDrawLayer(e,t,n,i){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(n){let e=t.layer.id;if(e in i||(i[e]=n(t)),!i[e])return!1}return e.activateViewport(t.viewport),!0}_getShaderModuleProps(e,t,n,i,r){var o,a;let l=i.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 n of t)s(u,null==(a=n.getShaderModuleProps)?void 0:a.call(n,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,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];for(let t of n)if(t)for(let n in t)e[n]?Object.assign(e[n],t[n]):e[n]=t[n];return e}},22241(e,t,n){n.d(t,{A:()=>i});class i{setProps(e){Object.assign(this.props,e)}render(e){}cleanup(){}constructor(e,t={id:"pass"}){let{id:n}=t;this.id=n,this.device=e,this.props=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},t)}}},86760(e,t,n){n.d(t,{A:()=>s});var i=n(57618),r=n(1918);let o={blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaOperation:"add",blendAlphaSrcFactor:"constant",blendAlphaDstFactor:"zero"};class s extends i.A{render(e){return"pickingFBO"in e?this._drawPickingBuffer(e):{decodePickingColor:null,stats:super._render(e)}}_drawPickingBuffer(e){let{layers:t,layerFilter:n,views:i,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),_=super._render({target:s,layers:t,layerFilter:n,views:i,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:_}}shouldDrawLayer(e){let{pickable:t,operation:n}=e.props;return t&&n.includes("draw")||n.includes("terrain")||n.includes("mask")}getShaderModuleProps(e,t,n){var i;return{picking:{isActive:1,isAttribute:this.pickZ,disabledPickingIndices:null==(i=e.internalState)?void 0:i.disabledPickingIndices},lighting:{enabled:!1}}}getLayerParameters(e,t,n){let i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},e.props.parameters),{pickable:r,operation:s}=e.props;if(this._colorEncoderState)if(r&&s.includes("draw")){var l;Object.assign(i,o),i.blend=!0,"webgpu"===this.device.type?i.blendConstant=a(this._colorEncoderState,e,n):i.blendColor=a(this._colorEncoderState,e,n),s.includes("terrain")&&(null==(l=e.state)?void 0:l._hasPickingCover)&&(i.blendAlphaSrcFactor="one")}else s.includes("terrain")&&(i.blend=!1);else i.blend=!1;return i}_resetColorEncoder(e){return this._colorEncoderState=e?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}constructor(){super(...arguments),this._colorEncoderState=null}}function a(e,t,n){let i,{byLayer:o,byAlpha:s}=e,a=o.get(t);return a?(a.viewports.push(n),i=a.a):(i=o.size+1)<=255?(a={a:i,layer:t,viewports:[n]},o.set(t,a),s[i]=a):(r.A.warn("Too many pickable layers, only picking the first 255")(),i=0),[0,0,0,i/255]}function l(e,t){let n=e.byAlpha[t[3]];return n&&{pickedLayer:n.layer,pickedViewports:n.viewports,pickedObjectIndex:n.layer.decodePickingColor(t)}}},5214(e,t,n){n.d(t,{A:()=>i});let i={name:"color",dependencies:[],source:"\n\n@must_use\nfn deckgl_premultiplied_alpha(fragColor: vec4<f32>) -> vec4<f32> {\n    return vec4(fragColor.rgb * fragColor.a, fragColor.a); \n};\n",getUniforms:e=>({})}},14216(e,t,n){n.d(t,{A:()=>r});let i="#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>
1(0.0, 0.0, 1.0, 0.0),\n  vec3<f32>(0.0, 0.0, 0.0),\n  vec3<f32>(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(i,"\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(i,"\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,n){n.d(t,{Ay:()=>p,Z1:()=>a,uz:()=>l});var i=n(57102),r=n(1918);function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),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({},i.q),{vs:"".concat(c(i.q.vs),"\n").concat(d),fs:c(i.q.fs),source:h,uniformTypes:s(o({},i.q.uniformTypes),{disabledPickingIndexCount:"f32",disabledPickingIndices0:"vec4<f32>",disabledPickingIndices1:"vec4<f32>",disabledPickingIndices2:"vec4<f32>"}),defaultUniforms:s(o({},i.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 n=i.q.getUniforms(e,t),r=e.disabledPickingIndices||[];return n.disabledPickingIndexCount=r.length,n.disabledPickingIndices0=u(r,0),n.disabledPickingIndices1=u(r,4),n.disabledPickingIndices2=u(r,8),n},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,n){n.d(t,{R:()=>d,w:()=>u});var i=n(72823),r=n(42943),o=n(74646),s=n(49527),a=n(86083);let l=[0,0,0];function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=t.projectPosition(e);if(n&&t instanceof r.A){let[n,r,o=0]=e,s=t.getDistanceScales([n,r]);i[2]=o*s.unitsPerMeter[2]}return i}function u(e,t){let{viewport:n,modelMatrix:i,coordinateSystem:r,coordinateOrigin:s,offsetMode:l}=t,[d,h,p=0]=e;switch(i&&([d,h,p]=o.Z0([],[d,h,p,1],i)),r){case"default":return u(e,{viewport:n,modelMatrix:i,coordinateSystem:n.isGeospatial?"lnglat":"cartesian",coordinateOrigin:s,offsetMode:l});case"lnglat":return c([d,h,p],n,l);case"lnglat-offsets":return c([d+s[0],h+s[1],p+(s[2]||0)],n,l);case"meter-offsets":return c((0,a.dT)(s,[d,h,p]),n,l);case"cartesian":return n.isGeospatial?[d+s[0],h+s[1],p+s[2]]:n.projectPosition([d,h,p]);default:throw Error("Invalid coordinateSystem: ".concat(r))}}function d(e,t){let{viewport:n,coordinateSystem:r,coordinateOrigin:o,modelMatrix:a,fromCoordinateSystem:c,fromCoordinateOrigin:d}=function(e){let{viewport:t,modelMatrix:n,coordinateOrigin:i}=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=i),{viewport:t,coordinateSystem:r,coordinateOrigin:i,modelMatrix:n,fromCoordinateSystem:o,fromCoordinateOrigin:s}}(t),{autoOffset:h=!0}=t,{geospatialOrigin:p=l,shaderCoordinateOrigin:f=l,offsetMode:g=!1}=h?(0,i.ow)(n,r,o):{},v=u(e,{viewport:n,modelMatrix:a,coordinateSystem:c,coordinateOrigin:d,offsetMode:g});if(g){let e=n.projectPosition(p||f);s.jb(v,v,e)}return v}},36485(e,t,n){n.d(t,{A:()=>v});var i=n(22270),r=n(14216),o=n(72823),s=n(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:[i.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\u2011
vendor: 5,796 bytes, line 1
1axis 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.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>(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
1\'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,n){n.d(t,{LB:()=>p,aY:()=>v,ow:()=>g});var i=n(74646),r=n(32686),o=n(48895),s=n(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:n,coordinateSystem:s,coordinateOrigin:d}=e,{projectionCenter:h,viewProjectionMatrix:f,originCommon:v,cameraPosCommon:m,shaderCoordinateOrigin:y,geospatialOrigin:b}=function(e,t,n){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,n);return m&&(h=e.projectPosition(f||v),p=[p[0]-h[0],p[1]-h[1],p[2]-h[2]],h[3]=1,d=i.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),_=t.getDistanceScales(),w=[t.width*n,t.height*n],P=i.Z0([],[0,0,-t.focalDistance,1],t.projectionMatrix)[3]||1,x={coordinateSystem:p(s),projectionMode:t.projectionMode,coordinateOrigin:y,commonOrigin:v.slice(0,3),center:h,pseudoMeters:!!t._pseudoMeters,viewportSize:w,devicePixelRatio:n,focalDistance:P,commonUnitsPerMeter:_.unitsPerMeter,commonUnitsPerWorldUnit:_.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":x.commonUnitsPerWorldUnit=e.unitsPerMeter,x.commonUnitsPerWorldUnit2=e.unitsPerMeter2;break;case"lnglat":case"lnglat-offsets":t._pseudoMeters||(x.commonUnitsPerMeter=e.unitsPerMeter),x.commonUnitsPerWorldUnit=e.unitsPerDegree,x.commonUnitsPerWorldUnit2=e.unitsPerDegree2;break;case"cartesian":x.commonUnitsPerWorldUnit=[1,1,e.unitsPerMeter[2]],x.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,n=Math.cos(t),i=((d[2]||0)/6370972+1)*256;x.commonOrigin=[Math.sin(e)*n*i,-Math.cos(e)*n*i,Math.sin(t)*i]}return x});function g(e,t){let n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d;i.length<3&&(i=[i[0],i[1],0]);let r=i,s=!0;switch(n="lnglat-offsets"===t||"meter-offsets"===t?i:e.isGeospatial?[Math.fround(e.longitude),Math.fround(e.latitude),0]:null,e.projectionMode){case o.Kx.WEB_MERCATOR:("lnglat"===t||"cartesian"===t)&&(n=[0,0,0],s=!1);break;case o.Kx.WEB_MERCATOR_AUTO_OFFSET:"lnglat"===t?r=n:"cartesian"===t&&(r=[Math.fround(e.center[0]),Math.fround(e.center[1]),0],n=e.unprojectPosition(r),r[0]-=i[0],r[1]-=i[1],r[2]-=i[2]);break;case o.Kx.IDENTITY:(r=e.position.map(Math.fround))[2]=r[2]||0;break;case o.Kx.GLOBE:s=!1,n=null;break;default:s=!1}return{geospatialOrigin:n,shaderCoordinateOrigin:r,offsetMode:s}}function v(e){let{viewport:t,devicePixelRatio:n=1,modelMatrix:i=null,coordinateSystem:r="default",coordinateOrigin:o=d,autoWrapLongitude:s=!1}=e;"default"===r&&(r=t.isGeospatial?"lnglat":"cartesian");let a=f({viewport:t,devicePixelRatio:n,coordinateSystem:r,coordinateOrigin:o});return a.wrapLongitude=s,a.modelMatrix=i||c,a}},8070(e,t,n){n.d(t,{A:()=>i});
1let i={name:"project32",dependencies:[n(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,n){n.d(t,{A:()=>a});var i=n(71126),r=n(26489);let o=["longitude","latitude","zoom","bearing","pitch"],s=["longitude","latitude","zoom"];class a extends i.A{initializeProps(e,t){let n=super.initializeProps(e,t),{makeViewport:i,around:r}=this.opts;if(i&&r){let o=i(e),s=i(t),a=o.unproject(r);n.start.around=r,Object.assign(n.end,{around:s.project(a),aroundPosition:a,width:t.width,height:t.height})}return n}interpolateProps(e,t,n){let i={};for(let o of this._propsToExtract)i[o]=(0,r.Cc)(e[o]||0,t[o]||0,n);if(t.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},t,i));Object.assign(i,o.panByPosition(t.aroundPosition,(0,r.Cc)(e.around,t.around,n)))}return i}constructor(e={}){let t=Array.isArray(e)?e:e.transitionProps,n=Array.isArray(e)?{}:e;n.transitionProps=Array.isArray(t)?{compare:t,required:t}:t||{compare:o,required:s},super(n.transitionProps),this.opts=n}}},71126(e,t,n){n.d(t,{A:()=>o});var i=n(26489),r=n(22708);class o{arePropsEqual(e,t){for(let n of this._propsToCompare)if(!(n in e)||!(n in t)||!(0,i.aI)(e[n],t[n]))return!1;return!0}initializeProps(e,t){let n={},i={};for(let r of this._propsToExtract)(r in e||r in t)&&(n[r]=e[r],i[r]=t[r]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(e,t){return t.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(t=>{let n=e[t];(0,r.A)(Number.isFinite(n)||Array.isArray(n),"".concat(t," is required for transition"))})}
1constructor(e){let{compare:t,extract:n,required:i}=e;this._propsToCompare=t,this._propsToExtract=n||t,this._requiredProps=i}}},21758(e,t,n){n.d(t,{A:()=>i});class i{get inProgress(){return this._inProgress}start(e){var t,n;this.cancel(),this.settings=e,this._inProgress=!0,null==(t=(n=this.settings).onStart)||t.call(n,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,n){function i(e,t){t&&Object.entries(t).map(t=>{let[n,i]=t;n.startsWith("--")?e.style.setProperty(n,i):e.style[n]=i})}function r(e,t){t&&Object.keys(t).map(t=>{t.startsWith("--")?e.style.removeProperty(t):e.style[t]=""})}n.d(t,{Z:()=>i,h:()=>r})},22708(e,t,n){n.d(t,{A:()=>i});function i(e,t){if(!e)throw Error(t||"deck.gl: assertion failed.")}},59377(e,t,n){n.d(t,{b:()=>function e(t,n,i){if(t===n)return!0;if(!i||!t||!n)return!1;if(Array.isArray(t)){if(!Array.isArray(n)||t.length!==n.length)return!1;for(let r=0;r<t.length;r++)if(!e(t[r],n[r],i-1))return!1;return!0}if(Array.isArray(n))return!1;if("object"==typeof t&&"object"==typeof n){let r=Object.keys(t),o=Object.keys(n);if(r.length!==o.length)return!1;for(let o of r)if(!n.hasOwnProperty(o)||!e(t[o],n[o],i-1))return!1;return!0}return!1}})},37142(e,t,n){function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>!0;return Array.isArray(e)?function e(t,n,i){let r=-1;for(;++r<t.length;){let o=t[r];Array.isArray(o)?e(o,n,i):n(o)&&i.push(o)}return i}(e,t,[]):t(e)?[e]:[]}function r(e){let{target:t,source:n,start:i=0,count:r=1}=e,o=n.length,s=r*o,a=0;for(let e=i;a<o;a++)t[e++]=n[a];for(;a<s;)a<s-a?(t.copyWithin(i+a,i,i+a),a*=2):(t.copyWithin(i+a,i,i+s-a),a=s);return t}n.d(t,{B:()=>i,R:()=>r})},70008(e,t,n){n.d(t,{I:()=>a,Td:()=>s,X:()=>o});let i=[],r=[];function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,o=i,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=i,(t>0||Number.isFinite(n))&&(o=(Array.isArray(o)?o:Array.from(o)).slice(t,n),s.index=t-1),{iterable:o,objectInfo:s}}function s(e){return e&&e[Symbol.asyncIterator]}function a(e,t){let{size:n,stride:i,offset:r,startIndices:o,nested:s}=t,a=e.BYTES_PER_ELEMENT,l=i?i/a:n,c=r?r/a:0,u=Math.floor((e.length-c)/l);return(t,i)=>{let r,{index:a,target:d}=i;if(!o){let t=a*l+c;for(let i=0;i<n;i++)d[i]=e[t+i];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 i=t*l+c;d=Array(n);for(let t=0;t<n;t++)d[t]=e[i+t];r[t-h]=d}}else if(l===n)r=e.subarray(h*n+c,p*n+c);else{r=new e.constructor((p-h)*n);let t=0;for(let i=h;i<p;i++){let o=i*l+c;for(let i=0;i<n;i++)r[t++]=e[o+i]}}return r}}},1918(e,t,n){n.d(t,{A:()=>i});let i=new(n(70486)).h({id:"deck"})},79036(e,t,n){let i;n.d(t,{$M:()=>s,Vl:()=>l,_Z:()=>f,cT:()=>p,om:()=>c,on:()=>u,zi:()=>a});var r=n(17390),o=n(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 n=e%t;return n<0?t+n:n}function l(e){return[e[12],e[13],e[14]]}function c(e){let t=e[10],n=e[14];return{near:n/(t-1),far:n/(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,n,i){d.set(e,t,n);let r=d.len();return{distance:i/r,normal:new o.P(-e/r,-t/r,-n/r)}}function p(e,t){let{size:n=1,startIndex:o=0}=t,s=void 0!==t.endIndex?t.endIndex:e.length,a=(s-o)/n;i=r.A.allocate(i,a,{type:Float32Array,size:2*n});let l=o,c=0;for(;l<s;){for(let t=0;t<n;t++){let r=e[l++];i[c+t]=r,i[c+t+n]=r-Math.fround(r)}c+=2*n}return i.subarray(0,a*n*2)}function f(e){let t=null,n=!1;for(let i of e)i&&(t?(n||(t=[[t[0][0],t[0][1]],[t[1][0],t[1][1]]],n=!0),t[0][0]=Math.min(t[0][0],i[0][0]),t[0][1]=Math.min(t[0][1],i[0][1]),t[1][0]=Math.max(t[1][0],i[1][0]),t[1][1]=Math.max(t[1][1],i[1][1])):t=i);return t}},97252(e,t,n){n.d(t,{A:()=>i});function i(e){let t,n={};return i=>{for(let r in i)if(!function(e,t){if(e===t)return!0;
1if(Array.isArray(e)){let n=e.length;if(!t||t.length!==n)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}return!1}(i[r],n[r])){t=e(i),n=i;break}return t}}},8340(e,t,n){n.d(t,{E9:()=>o,rk:()=>r});let i=/^(?:\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=[],n=0;for(;n<e.length;){let r=e[n];if(/\s/.test(r)){n++;continue}if("+"===r||"-"===r||"("===r||")"===r||"%"===r){t.push({type:"symbol",value:r}),n++;continue}if(a(r)||"."===r){let o=n,s="."===r;for(n++;n<e.length;){let t=e[n];if(a(t)){n++;continue}if("."===t&&!s){s=!0,n++;continue}break}let l=e.slice(o,n);if(!i.test(l))throw Error("Invalid number token");t.push({type:"number",value:parseFloat(l)});continue}if(l(r)){let i=n;for(;n<e.length&&l(e[n]);)n++;let r=e.slice(i,n).toLowerCase();t.push({type:"word",value:r});continue}throw Error("Invalid token in position string")}return t}(e);return new s(t).parseExpression()}catch(n){let t=n instanceof Error?n.message:String(n);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,n){switch(t.type){case"literal":return t.value;case"percentage":return Math.round(t.value*n);case"binary":let i=e(t.left,n),r=e(t.right,n);return"+"===t.operator?i+r:i-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(),n=this.peek();for(;(e=n)&&"symbol"===e.type&&("+"===e.value||"-"===e.value);){this.index++;let e=this.parseFactor();t={type:"binary",operator:n.value,left:t,right:e},n=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,n=this.peek();return n&&"symbol"===n.type&&"%"===n.value?(this.index++,{type:"percentage",value:t/100}):(n&&"word"===n.type&&"px"===n.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,n){n.d(t,{A:()=>i});let i=new class{setOptions(e){Object.assign(this.opts,e)}allocate(e,t,n){let{size:i=1,type:r,padding:o=0,copy:s=!1,initialize:a=!1,maxCount:l}=n,c=r||e&&e.constructor||Float32Array,u=t*i+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*i+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,n,i){let r=Math.max(Math.ceil(t*this.opts.overAlloc),1);r>i&&(r=i);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 n&&t.fill(0),t}return new e(r)}_release(e){if(!ArrayBuffer.isView(e))return;let t=this._pool,{buffer:n}
1=e,{byteLength:i}=n,r=t.findIndex(e=>e.byteLength>=i);r<0?t.push(n):(r>0||t.length<this.opts.poolSize)&&t.splice(r,0,n),t.length>this.opts.poolSize&&t.shift()}constructor(e={}){this._pool=[],this.opts={overAlloc:2,poolSize:100},this.setOptions(e)}}},39026(e,t,n){n.d(t,{A:()=>v});var i=n(1918),r=n(79036),o=n(6706),s=n(26489),a=n(35097),l=n(32686),c=n(86083),u=n(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}equals(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]:{},n=this.projectPosition(e),i=(0,c.VJ)(n,this.pixelProjectionMatrix),[r,o]=i,s=t?o:this.height-o;return 2===e.length?[r,s]:[r,s,i[2]]}unproject(e){let{topLeft:t=!0,targetZ:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[i,r,o]=e,s=t?r:this.height-r,a=n&&n*this.distanceScales.unitsPerMeter[2],l=(0,c.xJ)([i,s,o],this.pixelUnprojectionMatrix,a),[u,d,h]=this.unprojectPosition(l);return Number.isFinite(o)?[u,d,h]:Number.isFinite(n)?[u,d,n]:[u,d]}projectPosition(e){let[t,n]=this.projectFlat(e);return[t,n,(e[2]||0)*this.distanceScales.unitsPerMeter[2]]}unprojectPosition(e){let[t,n]=this.unprojectFlat(e);return[t,n,(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},n=this.unproject([0,0],t),i=this.unproject([this.width,0],t),r=this.unproject([0,this.height],t),o=this.unproject([this.width,this.height],t);return[Math.min(n[0],i[0],r[0],o[0]),Math.min(n[1],i[1],r[1],o[1]),Math.max(n[0],i[0],r[0],o[0]),Math.max(n[1],i[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:n,width:i=1,height:r=1}=e;return t<this.x+this.width&&this.x<t+i&&n<this.y+this.height&&this.y<n+r}getFrustumPlanes(){return this._frustumPlanes.near||Object.assign(this._frustumPlanes,(0,r.on)(this.viewProjectionMatrix)),this._frustumPlanes}panByPosition(e,t,n){return null}_initProps(e){let t=e.longitude,n=e.latitude;this.isGeospatial&&(Number.isFinite(e.zoom)||(this.zoom=(0,c.fO)({latitude:n})+Math.log2(this.focalDistance)),this.distanceScales=e.distanceScales||(0,c.nI)({latitude:n,longitude:t}));let i=Math.pow(2,this.zoom);this.scale=i;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,n,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:n=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=n||function(e){let{width:t,height:n,orthographic:i,fovyRadians:r,focalDistance:a,padding:l,near:c,far:u}=e,d=t/n,h=i?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:i=0,top:r=0,bottom:o=0}=l,a=(0,s.qE)((e+t-i)/2,0,t)-t/2,c=(0,s.qE)((r+n-o)/2,0,n)-n/2;h[8]-=2*a/t,h[9]+=2*c/n}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)(),_=(0,r.$M)();l.hs(b,b,[this.width/2,-this.height/2,1]),l.Tl(b,b,[1,-1,0]),l.lw(_,b,this.viewProjectionMatrix),this.pixelProjectionMatrix=_,this.pixelUnprojectionMatrix=l.B8((0,r.$M)(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||i.A.warn("Pixel project matrix not invertible")()}constructor(e={}){this._frustumPlanes={},this.id=e.id||this.constructor.displayName||"viewport",this.x=e.x||
10,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:n}=e;this.isGeospatial=Number.isFinite(n)&&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,n){n.d(t,{A:()=>p});var i=n(39026),r=n(86083),o=n(62905),s=n(20556),a=n(59808),l=n(26489),c=n(6706);function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class h extends i.A{get subViewports(){if(this._subViewports&&!this._subViewports.length){let e=this.getBounds(),t=Math.floor((e[0]+180)/360),n=Math.ceil((e[2]-180)/360);for(let e=t;e<=n;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,n]=this.projectFlat(e);return[t,n,(e[2]||0)*(0,r.mY)(e[1])]}unprojectPosition(e){if(this._pseudoMeters)return super.unprojectPosition(e);let[t,n]=this.unprojectFlat(e),i=(e[2]||0)/(0,r.mY)(n);return[t,n,i]}addMetersToLngLat(e,t){return(0,r.dT)(e,t)}panByPosition(e,t,n){let i=(0,r.xJ)(t,this.pixelUnprojectionMatrix),o=this.projectFlat(e),s=a.WQ([],o,a.ze([],i)),l=a.WQ([],this.center,s),[c,u]=this.unprojectFlat(l);return{longitude:c,latitude:u}}panByPosition3D(e,t){let n=e[2]||0,i=a.jb([],e,this.unproject(t,{targetZ:n}));return{longitude:this.longitude+i[0],latitude:this.latitude+i[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:n,height:i}=this,{longitude:r,latitude:o,zoom:a}=(0,s.F)(u({width:n,height:i,bounds:e},t));return new h({width:n,height:i,longitude:r,latitude:o,zoom:a})}constructor(e={}){let t,{latitude:n=0,longitude:i=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:_,padding:w,legacyMeterSizes:P=!1}=e,{width:x,height:O,altitude:j=1.5}=e,C=Math.pow(2,o);x=x||1,O=O||1;let S=null;if(m)j=m[5]/2,t=(0,r.Os)(j);else{let i;if(e.fovy?(t=e.fovy,j=(0,r.wZ)(t)):t=(0,r.Os)(j),w){let{top:e=0,bottom:t=0}=w;i=[0,(0,l.qE)((e+O-t)/2,0,O)-O/2]}S=(0,r.om)({width:x,height:O,scale:C,center:_&&[0,0,_[2]*(0,r.mY)(n)],offset:i,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:O,pitch:s,bearing:a,scale:C,altitude:j});b&&(k=new c.k().translate([512*b,0,0]).multiplyLeft(k)),super(d(u(d(u({},e),{width:x,height:O,viewMatrix:k,longitude:i,latitude:n,zoom:o}),S),{fovy:t,focalDistance:j})),this.latitude=n,this.longitude=i,this.zoom=o,this.pitch=s,this.bearing=a,this.altitude=j,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,n){n.d(t,{A:()=>a});
1var i=n(78977),r=n(42943),o=n(77991);class s extends i.A{getViewportType(){return r.A}get ControllerType(){return o.A}constructor(e={}){super(e)}}s.displayName="MapView";let a=s},78977(e,t,n){n.d(t,{A:()=>s});var i=n(8340),r=n(59377);function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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:n,viewState:i}=e;i=this.filterViewState(i);let r=this.getDimensions({width:t,height:n});return r.height&&r.width?new(this.getViewportType(i))(o({},i,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 n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},e);for(let e in t)"id"!==e&&(Array.isArray(n[e])&&Array.isArray(t[e])?n[e]=function(e,t){e=e.slice();for(let n=0;n<t.length;n++){let i=t[n];Number.isFinite(i)&&(e[n]=i)}return e}(n[e],t[e]):n[e]=t[e]);return n}return e}getDimensions(e){let{width:t,height:n}=e,r={x:(0,i.E9)(this._x,t),y:(0,i.E9)(this._y,n),width:(0,i.E9)(this._width,t),height:(0,i.E9)(this._height,n)};return this._padding&&(r.padding={left:(0,i.E9)(this._padding.left,t),top:(0,i.E9)(this._padding.top,n),right:(0,i.E9)(this._padding.right,t),bottom:(0,i.E9)(this._padding.bottom,n)}),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,n;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),n=n={id:this.id},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t),this._x=(0,i.rk)(s),this._y=(0,i.rk)(a),this._width=(0,i.rk)(l),this._height=(0,i.rk)(c),this._padding=u&&{left:(0,i.rk)(u.left||0),right:(0,i.rk)(u.right||0),top:(0,i.rk)(u.top||0),bottom:(0,i.rk)(u.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}}},52425(e,t,n){n.d(t,{A:()=>f});var i=n(13563),r=n(8070),o=n(5214),s=n(69798),a=n(48895),l=n(12434);let c="layout(std140) uniform arcUniforms {\n  bool greatCircle;\n  bool useShortestPath;\n  float numSegments;\n  float widthScale;\n  float widthMinPixels;\n  float widthMaxPixels;
1\n  highp int widthUnits;\n} arc;\n",u={name:"arc",source:"struct ArcUniforms {\n  greatCircle: f32,\n  useShortestPath: f32,\n  numSegments: f32,\n  widthScale: f32,\n  widthMinPixels: f32,\n  widthMaxPixels: f32,\n  widthUnits: i32,\n};\n\n@group(0) @binding(auto) var<uniform> arc: ArcUniforms;\n",vs:c,fs:c,uniformTypes:{greatCircle:"f32",useShortestPath:"f32",numSegments:"f32",widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",widthUnits:"i32"}},d=[0,0,0,255],h={getSourcePosition:{type:"accessor",value:e=>e.sourcePosition},getTargetPosition:{type:"accessor",value:e=>e.targetPosition},getSourceColor:{type:"accessor",value:d},getTargetColor:{type:"accessor",value:d},getWidth:{type:"accessor",value:1},getHeight:{type:"accessor",value:1},getTilt:{type:"accessor",value:0},greatCircle:!1,numSegments:{type:"number",value:50,min:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0},antialiasing:!1};class p extends i.A{getBounds(){var e;return null==(e=this.getAttributeManager())?void 0:e.getBounds(["instanceSourcePositions","instanceTargetPositions"])}getShaders(){let{antialiasing:e}=this.props;return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME arc-layer-vertex-shader\nin vec4 instanceSourceColors;\nin vec4 instanceTargetColors;\nin vec3 instanceSourcePositions;\nin vec3 instanceSourcePositions64Low;\nin vec3 instanceTargetPositions;\nin vec3 instanceTargetPositions64Low;\nin float instanceWidths;\nin float instanceHeights;\nin float instanceTilts;\nout vec4 vColor;\nout vec2 uv;\nout float isValid;\nfloat paraboloid(float distance, float sourceZ, float targetZ, float ratio) {\nfloat deltaZ = targetZ - sourceZ;\nfloat dh = distance * instanceHeights;\nif (dh == 0.0) {\nreturn sourceZ + deltaZ * ratio;\n}\nfloat unitZ = deltaZ / dh;\nfloat p2 = unitZ * unitZ + 1.0;\nfloat dir = step(deltaZ, 0.0);\nfloat z0 = mix(sourceZ, targetZ, dir);\nfloat r = mix(ratio, 1.0 - ratio, dir);\nreturn sqrt(r * (p2 - r)) * dh + z0;\n}\nvec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) {\nvec2 dir_screenspace = normalize(line_clipspace * project.viewportSize);\ndir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x);\nreturn dir_screenspace * offset_direction * width / 2.0;\n}\nfloat getSegmentRatio(float index) {\nreturn smoothstep(0.0, 1.0, index / (arc.numSegments - 1.0));\n}\nvec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) {\nfloat distance = length(source.xy - target.xy);\nfloat z = paraboloid(distance, source.z, target.z, segmentRatio);\nfloat tiltAngle = radians(instanceTilts);\nvec2 tiltDirection = normalize(target.xy - source.xy);\nvec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle);\nreturn vec3(\nmix(source.xy, target.xy, segmentRatio) + tilt,\nz * cos(tiltAngle)\n);\n}\nfloat getAngularDist (vec2 source, vec2 target) {\nvec2 sourceRadians = radians(source);\nvec2 targetRadians = radians(target);\nvec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0);\nvec2 shd_sq = sin_half_delta * sin_half_delta;
1\nfloat a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x;\nreturn 2.0 * asin(sqrt(a));\n}\nvec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) {\nvec2 lngLat;\nif(abs(angularDist - PI) < 0.001) {\nlngLat = (1.0 - t) * source.xy + t * target.xy;\n} else {\nfloat a = sin((1.0 - t) * angularDist);\nfloat b = sin(t * angularDist);\nvec3 p = source3D.yxz * a + target3D.yxz * b;\nlngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy))));\n}\nfloat z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t);\nreturn vec3(lngLat, z);\n}\nvoid main(void) {\ngeometry.worldPosition = instanceSourcePositions;\ngeometry.worldPositionAlt = instanceTargetPositions;\nfloat segmentIndex = float(gl_VertexID / 2);\nfloat segmentSide = mod(float(gl_VertexID), 2.) == 0. ? -1. : 1.;\nfloat segmentRatio = getSegmentRatio(segmentIndex);\nfloat prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0));\nfloat nextSegmentRatio = getSegmentRatio(min(arc.numSegments - 1.0, segmentIndex + 1.0));\nfloat indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0));\nisValid = 1.0;\nuv = vec2(segmentRatio, segmentSide);\ngeometry.uv = uv;\ngeometry.pickingColor = picking_getPickingColorFromInstanceID();\nvec4 curr;\nvec4 next;\nvec3 source;\nvec3 target;\nif ((arc.greatCircle || project.projectionMode == PROJECTION_MODE_GLOBE) && project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\nsource = project_globe_(vec3(instanceSourcePositions.xy, 0.0));\ntarget = project_globe_(vec3(instanceTargetPositions.xy, 0.0));\nfloat angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy);\nvec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio);\nvec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio);\nvec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio);\nif (abs(currPos.x - prevPos.x) > 180.0) {\nindexDir = -1.0;\nisValid = 0.0;\n} else if (abs(currPos.x - nextPos.x) > 180.0) {\nindexDir = 1.0;\nisValid = 0.0;\n}\nnextPos = indexDir < 0.0 ? prevPos : nextPos;\nnextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\nif (isValid == 0.0) {\nnextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0;\nfloat t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x);\ncurrPos = mix(currPos, nextPos, t);\nsegmentRatio = mix(segmentRatio, nextSegmentRatio, t);\n}\nvec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio);\nvec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio);\ncurr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position);\nnext = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0));\n} else {\nvec3 source_world = instanceSourcePositions;\nvec3 target_world = instanceTargetPositions;\nif (arc.useShortestPath) {\nsource_world.x = mod(source_world.x + 180., 360.
10) - 180.;\ntarget_world.x = mod(target_world.x + 180., 360.0) - 180.;\nfloat deltaLng = target_world.x - source_world.x;\nif (deltaLng > 180.) target_world.x -= 360.;\nif (deltaLng < -180.) source_world.x -= 360.;\n}\nsource = project_position(source_world, instanceSourcePositions64Low);\ntarget = project_position(target_world, instanceTargetPositions64Low);\nfloat antiMeridianX = 0.0;\nif (arc.useShortestPath) {\nif (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\nantiMeridianX = -(project.coordinateOrigin.x + 180.) / 360. * TILE_SIZE;\n}\nfloat thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x);\nif (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) {\nisValid = 0.0;\nindexDir = sign(segmentRatio - thresholdRatio);\nsegmentRatio = thresholdRatio;\n}\n}\nnextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio;\nvec3 currPos = interpolateFlat(source, target, segmentRatio);\nvec3 nextPos = interpolateFlat(source, target, nextSegmentRatio);\nif (arc.useShortestPath) {\nif (nextPos.x < antiMeridianX) {\ncurrPos.x += TILE_SIZE;\nnextPos.x += TILE_SIZE;\n}\n}\ncurr = project_common_position_to_clipspace(vec4(currPos, 1.0));\nnext = project_common_position_to_clipspace(vec4(nextPos, 1.0));\ngeometry.position = vec4(currPos, 1.0);\n}\nfloat widthPixels = clamp(\nproject_size_to_pixel(instanceWidths * arc.widthScale, arc.widthUnits),\narc.widthMinPixels, arc.widthMaxPixels\n);\nvec3 offset = vec3(\ngetExtrusionOffset((next.xy - curr.xy) * indexDir, segmentSide, widthPixels),\n0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\n#ifdef ANTIALIASING\nfloat halfWidthPixels = length(offset.xy);\nif (halfWidthPixels > 0.0) {\nfloat coverageScale = 1.0 + 0.5 / project.devicePixelRatio / halfWidthPixels;\noffset.xy *= coverageScale;\nuv.y *= coverageScale;\n}\ngeometry.uv = uv;\n#endif\nDECKGL_FILTER_GL_POSITION(curr, geometry);\ngl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0);\nvec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio);\nvColor = vec4(color.rgb, color.a * layer.opacity);\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME arc-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nin vec2 uv;\nin float isValid;\nout vec4 fragColor;\nvoid main(void) {\n#ifdef ANTIALIASING\nfloat edgeCoord = abs(uv.y);\nfloat edgePixels = (1.0 - edgeCoord) / max(fwidth(edgeCoord), 1e-6);\n#endif\nif (isValid == 0.0) {\ndiscard;\n}\n#ifdef ANTIALIASING\nif (edgePixels <= -SMOOTH_EDGE_RADIUS) {\ndiscard;\n}\n#endif\nfragColor = vColor;\ngeometry.uv = uv;\n#ifdef ANTIALIASING\nfragColor.a *= smoothedge(0.0, edgePixels);\n#endif\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:"const ZERO_OFFSET: vec3<f32> = vec3<f32>(0.0, 0.0, 0.0);\n\nstruct Attributes {\n  @location(0) instanceSourcePositions: vec3<f32>,\n  @location(1) instanceSourcePositions64Low: vec3<f32>,\n  @location(2) instanceTargetPositions: vec3<f32>,\n  @location(3) instanceTargetPositions64Low: vec3<f32>,\n  @location(4) instanceSourceColors: vec4<f32>,\n  @location(5) instanceTargetColors: vec4<f32>,\n  @location(6) instanceWidths: f32,\n  @location(7) instanceHeights: f32,\n  @location(8) instanceTilts: f32,\n};\n\nstruct Varyings {\n  @builtin(position) position: vec4<f32>,\n  @location(0) color: vec4<f32>,\n  @location(1) uv: vec2<f32>,\n  @location(2) pickingColor: vec3<f32>,\n  @location(3) isValid: f32,\n};\n\nfn paraboloid(\n  distance: f32,\n  sourceZ: f32,\n  targetZ: f32,\n  ratio: f32,\n  height: f32\n) -> f32 {\n  let deltaZ = targetZ - sourceZ;\n  let dh = distance * height;\n  if (dh == 0.0) {\n    return sourceZ + deltaZ * ratio;\n  }\n  let unitZ = deltaZ / dh;\n  let p2 = unitZ * unitZ + 1.0;\n  let dir = select(0.0, 1.0, deltaZ <= 0.0);\n  let z0 = mix(sourceZ, targetZ, dir);\n  let r = mix(ratio, 1.0 - ratio, dir);\n  return sqrt(max(r * (p2 - r), 0.0)) * dh + z0;\n}\n\nfn getExtrusionOffset(lineClipspace: vec2<f32>, side: f32, width: f32) -> vec2<f32> {\n  var direction = normalize(lineClipspace * project.viewportSize);\n  direction = vec2<f32>(-direction.y, direction.x);\n  return direction * side * width / 2.0;\n}\n\nfn getSegmentRatio(index: f32) -> f32 {\n  return smoothstep(0.0, 1.0, index / max(arc.numSegments - 1.0, 1.0));\n}\n\nfn interpolateFlat(\n  source: vec3<f32>,\n  targetPosition: vec3<f32>,\n  ratio: f32,\n  height: f32,\n  tiltDegrees: f32\n) -> vec3<f32> {\n  let distance = length(source.xy - targetPosition.xy);\n  let z = paraboloid(distance, source.z, targetPosition.z, ratio, height);\n  let tiltAngle = radians(tiltDegrees);\n  let tiltDirection = normalize(targetPosition.xy - source.xy);\n  let tilt = vec2<f32>(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle);\n  return vec3<f32>(mix(source.xy, targetPosition.xy, ratio) + tilt, z * cos(tiltAngle));\n}\n\n// Great circle interpolation\n// http://www.movable-type.co.uk/scripts/latlong.html\nfn getAngularDistance(source: vec2<f32>, targetPosition: vec2<f32>) -> f32 {\n  let sourceRadians = radians(source);\n  let targetRadians = radians(targetPosition);\n  let sinHalfDelta = sin((sourceRadians - targetRadians) / 2.0);\n  let sinHalfDeltaSquared = sinHalfDelta * sinHalfDelta;\n  let a = sinHalfDeltaSquared.y +\n    cos(sourceRadians.y) * cos(targetRadians.y) * sinHalfDeltaSquared.x;\n  return 2.0 * asin(sqrt(a));\n}\n\nfn interpolateGreatCircle(\n  source: vec3<f32>,\n  targetPosition: vec3<f32>,\n  source3D: vec3<f32>,\n  target3D: vec3<f32>,\n  angularDistance: f32,\n  ratio: f32,\n  height: f32\n) -> vec3<f32> {\n  var longitudeLatitude: vec2<f32>;\n\n  // If the angular distance is PI, use linear interpolation. Otherwise use spherical interpolation.\n  if (abs(angularDistance - PI) < 0.001) {\n    longitudeLatitude = (1.0 - ratio) * source.xy + ratio * targetPosition.xy;\n  } else {\n    let a = sin((1.0 - ratio) * angularDistance);\n    let b = sin(ratio * angularDistance);\n    let p = source3D.yxz * a + target3D.yxz * b;\n    longitudeLatitude = degrees(vec2<f32>(\n      atan2(p.y, -p.x),\n      atan2(p.z, length(p.xy))\n    ));\n  }\n\n  let z = paraboloid(\n    angularDistance * EARTH_RADIUS,\n    source.z,\n    targetPosition.z,\n    ratio,\n    height\n  );\n  return vec3<f32>(longitudeLatitude, z);\n}\n\n@vertex\nfn vertexMain(\n  attributes: Attributes,\n  @builtin(vertex_index) vertexIndex: u32,\n  @builtin(instance_index) instanceIndex: u32\n) -> Varyings {\n  geometry.worldPosition = attributes.instanceSourcePositions;\n  geometry.worldPositionAlt = attributes.instanceTargetPositions;\n\n  let segmentIndex = f32(vertexIndex / 2u);\n  let segmentSide = select(-1.0, 1.0, vertexIndex % 2u == 1u);\n  var segmentRatio = getSegmentRatio(segmentIndex);\n  let previousRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0));\n  var nextRatio = getSegmentRatio(min(arc.numSegments - 1.0, segmentIndex + 1.0));\n  // If this is the first point, use next - current as direction.\n  var indexDirection = select(-1.0, 1.0, segmentIndex <= 0.0);\n  var isValid = 1.0;\n\n  var currentClip: vec4<f32>;\n  var nextClip: vec4<f32>;\n\n  if (\n    (arc.greatCircle != 0.0 || project.projectionMode == PROJECTION_MODE_GLOBE) &&\n    project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT\n  ) {\n    let source = project_globe_(vec3<f32>(attributes.instanceSourcePositions.xy, 0.0));\n    let targetPosition = project_globe_(vec3<f32>(attributes.instanceTargetPositions.xy, 0.0));\n    let angularDistance = getAngularDistance(\n      attributes.instanceSourcePositions.xy,\n      attributes.instanceTargetPositions.xy\n    );\n\n    let previousPosition = interpolateGreatCircle(\n      attributes.instanceSourcePositions,\n      attributes.instanceTargetPositions,\n      source,\n      targetPosition,\n      angularDistance,\n      previousRatio,\n      attributes.instanceHeights\n    );\n    var currentPosition = interpolateGreatCircle(\n      attributes.instanceSourcePositions,\n      attributes.instanceTargetPositions,\n      source,\n      targetPosition,\n      angularDistance,\n      segmentRatio,\n      attributes.instanceHeights\n    );\n    var nextPosition = interpolateGreatCircle(\n      attributes.instanceSourcePositions,\n      attributes.instanceTargetPositions,\n      source,\n      targetPosition,\n      angularDistance,\n      nextRatio,\n      attributes.instanceHeights\n    );\n\n    if (abs(currentPosition.x - previousPosition.x) > 180.0) {\n      indexDirection = -1.0;\n      isValid = 0.0;\n    } else if (abs(currentPosition.x - nextPosition.x) > 180.0) {\n      indexDirection = 1.0;\n      isValid = 0.0;\n    }\n    nextPosition = select(nextPosition, previousPosition, indexDirection < 0.0);\n    nextRatio = select(nextRatio, previousRatio, indexDirection < 0.0);\n\n    if (isValid == 0.0) {\n      // Split at the antimeridian.\n      nextPosition.x += select(360.0, -360.0, nextPosition.x > 0.0);\n      let ratio = (\n        select(-180.0, 180.0, currentPosition.x > 0.0) - currentPosition.x\n      ) / (nextPosition.x - currentPosition.x);\n      currentPosition = mix(currentPosition, nextPosition, ratio);\n      segmentRatio = mix(segmentRatio, nextRatio, ratio);\n    }
1\n\n    let currentPosition64Low = mix(\n      attributes.instanceSourcePositions64Low,\n      attributes.instanceTargetPositions64Low,\n      segmentRatio\n    );\n    let nextPosition64Low = mix(\n      attributes.instanceSourcePositions64Low,\n      attributes.instanceTargetPositions64Low,\n      nextRatio\n    );\n    let currentProjection = project_position_to_clipspace_and_commonspace(\n      currentPosition,\n      currentPosition64Low,\n      ZERO_OFFSET\n    );\n    currentClip = currentProjection.clipPosition;\n    nextClip = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET);\n    geometry.position = currentProjection.commonPosition;\n  } else {\n    var sourceWorld = attributes.instanceSourcePositions;\n    var targetWorld = attributes.instanceTargetPositions;\n    if (arc.useShortestPath != 0.0) {\n      sourceWorld.x = ((sourceWorld.x + 180.0) % 360.0) - 180.0;\n      targetWorld.x = ((targetWorld.x + 180.0) % 360.0) - 180.0;\n      let deltaLongitude = targetWorld.x - sourceWorld.x;\n      if (deltaLongitude > 180.0) {\n        targetWorld.x -= 360.0;\n      }\n      if (deltaLongitude < -180.0) {\n        sourceWorld.x -= 360.0;\n      }\n    }\n\n    let source = project_position_vec3_f64(\n      sourceWorld,\n      attributes.instanceSourcePositions64Low\n    );\n    let targetPosition = project_position_vec3_f64(\n      targetWorld,\n      attributes.instanceTargetPositions64Low\n    );\n\n    // Common x at longitude=-180.\n    var antimeridianX = 0.0;\n    if (arc.useShortestPath != 0.0) {\n      if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n        antimeridianX = -(project.coordinateOrigin.x + 180.0) / 360.0 * TILE_SIZE;\n      }\n      let thresholdRatio = (antimeridianX - source.x) / (targetPosition.x - source.x);\n      if (previousRatio <= thresholdRatio && nextRatio > thresholdRatio) {\n        isValid = 0.0;\n        indexDirection = sign(segmentRatio - thresholdRatio);\n        segmentRatio = thresholdRatio;\n      }\n    }\n\n    nextRatio = select(nextRatio, previousRatio, indexDirection < 0.0);\n    var currentPosition = interpolateFlat(\n      source,\n      targetPosition,\n      segmentRatio,\n      attributes.instanceHeights,\n      attributes.instanceTilts\n    );\n    var nextPosition = interpolateFlat(\n      source,\n      targetPosition,\n      nextRatio,\n      attributes.instanceHeights,\n      attributes.instanceTilts\n    );\n\n    if (arc.useShortestPath != 0.0 && nextPosition.x < antimeridianX) {\n      currentPosition.x += TILE_SIZE;\n      nextPosition.x += TILE_SIZE;\n    }\n\n    currentClip = project_common_position_to_clipspace(vec4<f32>
1(currentPosition, 1.0));\n    nextClip = project_common_position_to_clipspace(vec4<f32>(nextPosition, 1.0));\n    geometry.position = vec4<f32>(currentPosition, 1.0);\n  }\n\n  geometry.uv = vec2<f32>(segmentRatio, segmentSide);\n  geometry.pickingColor = picking_getPickingColorFromIndex(instanceIndex);\n\n  let widthPixels = clamp(\n    project_unit_size_to_pixel(attributes.instanceWidths * arc.widthScale, arc.widthUnits),\n    arc.widthMinPixels,\n    arc.widthMaxPixels\n  );\n#ifdef ANTIALIASING\n  var offset = getExtrusionOffset(\n#else\n  let offset = getExtrusionOffset(\n#endif\n    (nextClip.xy - currentClip.xy) * indexDirection,\n    segmentSide,\n    widthPixels\n  );\n#ifdef ANTIALIASING\n  let halfWidthPixels = length(offset);\n  if (halfWidthPixels > 0.0) {\n    // Keep the declared edge at abs(uv.y) == 1 while rasterizing the outer half of the centered\n    // one-device-pixel coverage ramp.\n    let coverageScale = 1.0 + 0.5 / project.devicePixelRatio / halfWidthPixels;\n    offset *= coverageScale;\n    geometry.uv.y *= coverageScale;\n  }\n#endif\n\n  var output: Varyings;\n  output.position = currentClip + vec4<f32>(project_pixel_size_to_clipspace(offset), 0.0, 0.0);\n  let color = mix(attributes.instanceSourceColors, attributes.instanceTargetColors, segmentRatio);\n  output.color = vec4<f32>(color.rgb, color.a * layer.opacity);\n  output.uv = geometry.uv;\n  output.pickingColor = geometry.pickingColor;\n  output.isValid = isValid;\n  return output;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n#ifdef ANTIALIASING\n  let edgeCoord = abs(varyings.uv.y);\n  let edgePixels = (1.0 - edgeCoord) / max(fwidth(edgeCoord), 1e-6);\n#endif\n\n  if (varyings.isValid == 0.0) {\n    discard;\n  }\n\n#ifdef ANTIALIASING\n  // Fragments outside the coverage ramp must not write depth or picking colors.\n  if (edgePixels <= -SMOOTH_EDGE_RADIUS) {\n    discard;\n  }\n#endif\n  var color = varyings.color;\n#ifdef ANTIALIASING\n  // Feather one device pixel across the width. Arc segments meet lengthwise, so only soften the\n  // two outer edges of the strip.\n  color.a *= smoothedge(0.0, edgePixels);\n#endif\n  if (picking.isActive > 0.5) {\n    if (!picking_isColorValid(varyings.pickingColor)) {\n      discard;\n    }\n    return vec4<f32>(varyings.pickingColor, 1.0);\n  }\n  if (picking.isHighlightActive > 0.5) {\n    let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n    if (picking_isColorZero(abs(varyings.pickingColor - highlightedObjectColor))) {\n      let highlightAlpha = picking.highlightColor.a;\n      let blendedAlpha = highlightAlpha + color.a * (1.0 - highlightAlpha);\n      if (blendedAlpha > 0.0) {\n        let highlightRatio = highlightAlpha / blendedAlpha;\n        color = vec4<f32>(\n          mix(color.rgb, picking.highlightColor.rgb, highlightRatio),\n          blendedAlpha\n        );\n      }\n    }\n  }\n  return deckgl_premultiplied_alpha(color);\n}\n",defines:e?{ANTIALIASING:1}:{},modules:[r.A,o.A,s.Ay,u]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceSourceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getSourceColor",defaultValue:d},instanceTargetColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getTargetColor",defaultValue:d},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:"getHeight",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:"getTilt",defaultValue:0}})}updateState(e){super.updateState(e);let{props:t,oldProps:n,changeFlags:i}=e;if(i.extensionsChanged||t.antialiasing!==n.antialiasing){var r;null==(r=this.state.model)||r.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll()}}draw(e){let{uniforms:t}=e,{widthUnits:n,widthScale:i,widthMinPixels:r,widthMaxPixels:o,greatCircle:s,wrapLongitude:l,numSegments:c}=this.props,u={numSegments:c,widthUnits:a.p5[n],widthScale:i,widthMinPixels:r,widthMaxPixels:o,greatCircle:s,useShortestPath:l},d=this.state.model;d.shaderInputs.setProps({arc:u}),d.setVertexCount(2*c),d.draw(this.context.renderPass)}_getModel(){var e,t;return new l.K(this.context.device,(e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}
1))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}({},this.getShaders()),t=t={id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),topology:"triangle-strip",isInstanced:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e))}}p.layerName="ArcLayer",p.defaultProps=h;let f=p},67607(e,t,n){n.d(t,{A:()=>m});var i=n(13563),r=n(8070),o=n(5214),s=n(69798),a=n(48895),l=n(12434),c=n(62837);let u="layout(std140) uniform scatterplotUniforms {\n  float radiusScale;\n  float radiusMinPixels;\n  float radiusMaxPixels;\n  float lineWidthScale;\n  float lineWidthMinPixels;\n  float lineWidthMaxPixels;\n  float stroked;\n  float filled;\n  bool antialiasing;\n  bool billboard;\n  highp int radiusUnits;\n  highp int lineWidthUnits;\n} scatterplot;\n",d={name:"scatterplot",vs:u,fs:u,source:"",uniformTypes:{radiusScale:"f32",radiusMinPixels:"f32",radiusMaxPixels:"f32",lineWidthScale:"f32",lineWidthMinPixels:"f32",lineWidthMaxPixels:"f32",stroked:"f32",filled:"f32",antialiasing:"f32",billboard:"f32",radiusUnits:"i32",lineWidthUnits:"i32"}};var h=n(89945);function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}return e}let f=[0,0,0,255],g={radiusUnits:"meters",radiusScale:{type:"number",min:0,value:1},radiusMinPixels:{type:"number",min:0,value:0},radiusMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:"meters",lineWidthScale:{type:"number",min:0,value:1},lineWidthMinPixels:{type:"number",min:0,value:0},lineWidthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:"accessor",value:e=>e.position},getRadius:{type:"accessor",value:1},getFillColor:{type:"accessor",value:f},getLineColor:{type:"accessor",value:f},getLineWidth:{type:"accessor",value:1},getPixelOffset:{type:"accessor",value:[0,0]},strokeWidth:{deprecatedFor:"getLineWidth"},outline:{deprecatedFor:"stroked"},getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class v extends i.A{getShaders(){var e,t;let n=!!(null==(t=this.props.data)||null==(e=t.attributes)?void 0:e.rowIndexes);return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME scatterplot-layer-vertex-shader\nin vec3 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin float instanceRadius;\nin float instanceLineWidths;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\n#ifdef USE_ROW_INDEXES\nin float rowIndexes;\n#endif\nin vec2 instancePixelOffset;\nout vec4 vFillColor;\nout vec4 vLineColor;\nout vec2 unitPosition;\nout float innerUnitRadius;\nout float outerRadiusPixels;\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\nouterRadiusPixels = clamp(\nproject_size_to_pixel(scatterplot.radiusScale * instanceRadius, scatterplot.radiusUnits),\nscatterplot.radiusMinPixels, scatterplot.radiusMaxPixels\n);\nfloat lineWidthPixels = clamp(\nproject_size_to_pixel(scatterplot.lineWidthScale * instanceLineWidths, scatterplot.lineWidthUnits),\nscatterplot.lineWidthMinPixels, scatterplot.lineWidthMaxPixels\n);\nouterRadiusPixels += scatterplot.stroked * lineWidthPixels / 2.0;\nfloat edgePadding = scatterplot.antialiasing ? (outerRadiusPixels + SMOOTH_EDGE_RADIUS) / outerRadiusPixels : 1.0;\nunitPosition = edgePadding * positions.xy;\ngeometry.uv = unitPosition;\n#ifdef USE_ROW_INDEXES\ngeometry.pickingColor = picking_getPickingColorFromIndex(rowIndexes);\n#else\ngeometry.pickingColor = picking_getPickingColorFromInstanceID();\n#endif\ninnerUnitRadius = 1.0 - scatterplot.stroked * lineWidthPixels / outerRadiusPixels;\nif (scatterplot.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = edgePadding * positions * outerRadiusPixels;\noffset.xy += instancePixelOffset;\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset = edgePadding * positions * project_pixel_size(outerRadiusPixels);\noffset.xy += project_pixel_size(instancePixelOffset);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nvFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vFillColor, geometry);\nvLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * layer.opacity);\nDECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME scatterplot-layer-fragment-shader\nprecision highp float;\nin vec4 vFillColor;\nin vec4 vLineColor;\nin vec2 unitPosition;\nin float innerUnitRadius;\nin float outerRadiusPixels;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = unitPosition;\nfloat distToCenter = length(unitPosition) * outerRadiusPixels;\nfloat inCircle = scatterplot.antialiasing ?\nsmoothedge(distToCenter, outerRadiusPixels) :\nstep(distToCenter, outerRadiusPixels);\nif (inCircle == 0.0) {\ndiscard;\n}\nif (scatterplot.stroked > 0.5) {\nfloat isLine = scatterplot.antialiasing ?\nsmoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) :\nstep(innerUnitRadius * outerRadiusPixels, distToCenter);\nif (scatterplot.filled > 0.5) {\nfragColor = mix(vFillColor, vLineColor, isLine);\n} else {\nif (isLine == 0.0) {\ndiscard;\n}\nfragColor = vec4(vLineColor.rgb, vLineColor.a * isLine);\n}\n} else if (scatterplot.filled < 0.5) {\ndiscard;\n} else {\nfragColor = vFillColor;\n}\nfragColor.a *= inCircle;\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:"// Main shaders\n\nstruct ScatterplotUniforms {\n  radiusScale: f32,\n  radiusMinPixels: f32,\n  radiusMaxPixels: f32,\n  lineWidthScale: f32,\n  lineWidthMinPixels: f32,\n  lineWidthMaxPixels: f32,\n  stroked: f32,\n  filled: i32,\n  antialiasing: i32,\n  billboard: i32,\n  radiusUnits: i32,\n  lineWidthUnits: i32,\n};\n\n@group(0) @binding(0) var<uniform> scatterplot: ScatterplotUniforms;\n\nstruct Attributes {\n  @builtin(instance_index) instanceIndex : u32,\n  @builtin(vertex_index) vertexIndex : u32,\n  @location(0) positions: vec3<f32>,\n  @location(1) instancePositions: vec3<f32>,\n  @location(2) instancePositions64Low: vec3<f32>,\n  @location(3) instanceRadius: f32,\n  @location(4) instanceLineWidths: f32,\n  @location(5) instanceFillColors: vec4<f32>,\n  @location(6) instanceLineColors: vec4<f32>,\n  @location(7) instancePixelOffset: vec2<f32>,\n  PICKING_COLOR_ATTRIBUTE\n};
1\n\nstruct Varyings {\n  @builtin(position) position: vec4<f32>,\n  @location(0) vFillColor: vec4<f32>,\n  @location(1) vLineColor: vec4<f32>,\n  @location(2) unitPosition: vec2<f32>,\n  @location(3) innerUnitRadius: f32,\n  @location(4) outerRadiusPixels: f32,\n  @location(5) pickingColor: vec3<f32>,\n  @location(6) clipCoordinates: vec2<f32>,\n};\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n  var varyings: Varyings;\n\n  // Draw an inline geometry constant array clip space triangle to verify that rendering works.\n  // var positions = array<vec2<f32>, 3>(vec2(0.0, 0.5), vec2(-0.5, -0.5), vec2(0.5, -0.5));\n  // if (attributes.instanceIndex == 0) {\n  //   varyings.position = vec4<f32>(positions[attributes.vertexIndex], 0.0, 1.0);\n  //   return varyings;\n  // }\n\n  geometry.worldPosition = attributes.instancePositions;\n\n  // Multiply out radius and clamp to limits\n  varyings.outerRadiusPixels = clamp(\n    project_unit_size_to_pixel(scatterplot.radiusScale * attributes.instanceRadius, scatterplot.radiusUnits),\n    scatterplot.radiusMinPixels, scatterplot.radiusMaxPixels\n  );\n\n  // Multiply out line width and clamp to limits\n  let lineWidthPixels = clamp(\n    project_unit_size_to_pixel(scatterplot.lineWidthScale * attributes.instanceLineWidths, scatterplot.lineWidthUnits),\n    scatterplot.lineWidthMinPixels, scatterplot.lineWidthMaxPixels\n  );\n\n  // outer radius needs to offset by half stroke width\n  varyings.outerRadiusPixels += scatterplot.stroked * lineWidthPixels / 2.0;\n  // Expand geometry to accommodate edge smoothing\n  // WGSL selects the second value when the condition is true, so keep the antialiased path second.\n  let edgePadding = select(\n    1.0,\n    (varyings.outerRadiusPixels + SMOOTH_EDGE_RADIUS) / varyings.outerRadiusPixels,\n    scatterplot.antialiasing != 0\n  );\n\n  // position on the containing square in [-1, 1] space\n  varyings.unitPosition = edgePadding * attributes.positions.xy;\n  geometry.uv = varyings.unitPosition;\n  geometry.pickingColor = PICKING_COLOR_VALUE;\n\n  varyings.innerUnitRadius = 1.0 - scatterplot.stroked * lineWidthPixels / varyings.outerRadiusPixels;\n\n  if (scatterplot.billboard != 0) {\n    let projectedPosition = project_position_to_clipspace_and_commonspace(\n      attributes.instancePositions,\n      attributes.instancePositions64Low,\n      vec3<f32>(0.0)\n    );\n    geometry.position = projectedPosition.commonPosition;\n    varyings.position = projectedPosition.clipPosition;\n    // DECKGL_FILTER_GL_POSITION(varyings.position, geometry);\n    var offset = edgePadding * attributes.positions * varyings.outerRadiusPixels;\n    offset = vec3<f32>(offset.xy + attributes.instancePixelOffset, offset.z);\n    // DECKGL_FILTER_SIZE(offset, geometry);
1\n    let clipPixels = project_pixel_size_to_clipspace(offset.xy);\n    varyings.position = vec4<f32>(varyings.position.x + clipPixels.x, varyings.position.y + clipPixels.y, varyings.position.z, varyings.position.w);\n    geometry.position = vec4<f32>(\n      geometry.position.xy + project_pixel_size_vec2(offset.xy),\n      geometry.position.zw\n    );\n  } else {\n    var offset = edgePadding * attributes.positions * project_pixel_size_float(varyings.outerRadiusPixels);\n    offset = vec3<f32>(offset.xy + project_pixel_size_vec2(attributes.instancePixelOffset), offset.z);\n    // DECKGL_FILTER_SIZE(offset, geometry);\n    let projectedPosition = project_position_to_clipspace_and_commonspace(\n      attributes.instancePositions,\n      attributes.instancePositions64Low,\n      offset\n    );\n    geometry.position = projectedPosition.commonPosition;\n    varyings.position = projectedPosition.clipPosition;\n    // DECKGL_FILTER_GL_POSITION(varyings.position, geometry);\n  }\n\n  varyings.clipCoordinates = geometry.position.xy;\n  clip_filterPosition(&varyings.position, geometry.worldPosition.xy);\n\n  // Apply opacity to instance color, or return instance picking color\n  varyings.vFillColor = vec4<f32>(attributes.instanceFillColors.rgb, attributes.instanceFillColors.a * layer.opacity);\n  // DECKGL_FILTER_COLOR(varyings.vFillColor, geometry);\n  varyings.vLineColor = vec4<f32>(attributes.instanceLineColors.rgb, attributes.instanceLineColors.a * layer.opacity);\n  // DECKGL_FILTER_COLOR(varyings.vLineColor, geometry);\n  varyings.pickingColor = geometry.pickingColor;\n\n  return varyings;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n  // var geometry: Geometry;\n  // geometry.uv = unitPosition;\n\n  let distToCenter = length(varyings.unitPosition) * varyings.outerRadiusPixels;\n  let inCircle = select(\n    step(distToCenter, varyings.outerRadiusPixels),\n    smoothedge(distToCenter, varyings.outerRadiusPixels),\n    scatterplot.antialiasing != 0\n  );\n\n  if (inCircle == 0.0) {\n    discard;\n  }\n\n  var fragColor: vec4<f32>;\n\n  if (scatterplot.stroked != 0) {\n    let isLine = select(\n      step(varyings.innerUnitRadius * varyings.outerRadiusPixels, distToCenter),\n      smoothedge(varyings.innerUnitRadius * varyings.outerRadiusPixels, distToCenter),\n      scatterplot.antialiasing != 0\n    );\n\n    if (scatterplot.filled != 0) {\n      fragColor = mix(varyings.vFillColor, varyings.vLineColor, isLine);\n    } else {\n      if (isLine == 0.0) {\n        discard;\n      }\n      fragColor = vec4<f32>(varyings.vLineColor.rgb, varyings.vLineColor.a * isLine);\n    }\n  } else if (scatterplot.filled == 0) {\n    discard;\n  } else {\n    fragColor = varyings.vFillColor;\n  }\n\n  fragColor.a *= inCircle;\n\n  clip_filterColor(varyings.clipCoordinates);\n\n  if (picking.isActive > 0.5) {\n    if (!picking_isColorValid(varyings.pickingColor)) {\n      discard;\n    }\n    return vec4<f32>(varyings.pickingColor, 1.0);\n  }\n\n  if (picking.isHighlightActive > 0.5) {\n    let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n    if (picking_isColorZero(abs(varyings.pickingColor - highlightedObjectColor))) {\n      let highLightAlpha = picking.highlightColor.a;\n      let blendedAlpha = highLightAlpha + fragColor.a * (1.0 - highLightAlpha);\n      if (blendedAlpha > 0.0) {\n        let highLightRatio = highLightAlpha / blendedAlpha;\n        fragColor = vec4<f32>(\n          mix(fragColor.rgb, picking.highlightColor.rgb, highLightRatio),\n          blendedAlpha\n        );\n      } else {\n        fragColor = vec4<f32>(fragColor.rgb, 0.0);\n      }\n    }\n  }\n\n  // Apply premultiplied alpha as required by transparent canvas\n  fragColor = deckgl_premultiplied_alpha(fragColor);\n\n  return fragColor;\n  // return vec4<f32>(0, 0, 1, 1);\n}\n".replace("PICKING_COLOR_ATTRIBUTE",n?"@location(8) rowIndexes: u32,":"").replace("PICKING_COLOR_VALUE",n?"picking_getPickingColorFromIndex(attributes.rowIndexes)":"picking_getPickingColorFromIndex(attributes.instanceIndex)"),defines:n?{USE_ROW_INDEXES:!0}:{},modules:[r.A,o.A,s.Ay,d,..."webgpu"===this.context.device.type?[h.A]:[]]})}initializeState(){var e,t;let n=(null==(t=this.props.data)||null==(e=t.attributes)?void 0:e.rowIndexes)?{rowIndexes:{size:1,type:"uint32",noAlloc:!0}}:{};this.getAttributeManager().addInstanced(p({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceRadius:{size:1,transition:!0,accessor:"getRadius",defaultValue:1,bufferGroup:"scatterplot-instance-data"},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255],bufferGroup:"scatterplot-instance-data"},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255],bufferGroup:"scatterplot-instance-data"},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1,bufferGroup:"scatterplot-instance-data"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset",bufferGroup:"scatterplot-instance-data"}},n))}updateState(e){if(super.updateState(e),e.changeFlags.extensionsChanged){var t;null==(t=this.state.model)||t.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll()}}draw(e){let{uniforms:t}=e,{radiusUnits:n,radiusScale:i,radiusMinPixels:r,radiusMaxPixels:o,stroked:s,filled:l,billboard:c,antialiasing:u,lineWidthUnits:d,lineWidthScale:h,lineWidthMinPixels:p,lineWidthMaxPixels:f}=this.props,g={stroked:s,filled:l,billboard:c,antialiasing:u,radiusUnits:a.p5[n],radiusScale:i,radiusMinPixels:r,radiusMaxPixels:o,lineWidthUnits:a.p5[d],lineWidthScale:h,lineWidthMinPixels:p,lineWidthMaxPixels:f},v=this.state.model;v.shaderInputs.setProps({scatterplot:g}),v.draw(this.context.renderPass)}_getModel(){var e,t;return new l.K(this.context.device,(e=p({}
1,this.getShaders()),t=t={id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new c.V({topology:"triangle-strip",attributes:{positions:{size:3,value:new Float32Array([-1,-1,0,1,-1,0,-1,1,0,1,1,0])}}}),isInstanced:!0},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e))}}v.defaultProps=g,v.layerName="ScatterplotLayer";let m=v},89945(e,t,n){n.d(t,{A:()=>i});let i={name:"clip",source:"struct ClipUniforms {\n  enabled: i32,\n  mode: i32,\n  bounds: vec4<f32>,\n};\n\n@group(2) @binding(auto) var<uniform> clipUniforms: ClipUniforms;\n\nfn clip_isInBounds(coordinates: vec2<f32>) -> bool {\n  return coordinates.x >= clipUniforms.bounds.x &&\n    coordinates.y >= clipUniforms.bounds.y &&\n    coordinates.x < clipUniforms.bounds.z &&\n    coordinates.y < clipUniforms.bounds.w;\n}\n\nfn clip_filterPosition(position: ptr<function, vec4<f32>>, instanceCoordinates: vec2<f32>) {\n  if (\n    clipUniforms.enabled != 0 &&\n    clipUniforms.mode == ".concat(1," &&\n    !clip_isInBounds(instanceCoordinates)\n  ) {\n    *position = vec4<f32>(2.0, 2.0, 2.0, 1.0);\n  }\n}\n\nfn clip_filterColor(geometryCoordinates: vec2<f32>) {\n  if (\n    clipUniforms.enabled != 0 &&\n    clipUniforms.mode == ").concat(0," &&\n    !clip_isInBounds(geometryCoordinates)\n  ) {\n    discard;\n  }\n}\n"),props:{},uniforms:{},bindingLayout:[{name:"clip",group:2}],uniformTypes:{enabled:"i32",mode:"i32",bounds:"vec4<f32>"},defaultUniforms:{enabled:0,mode:0,bounds:[0,0,1,1]},getUniforms(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return void 0!==e.enabled&&(t.enabled=+!!e.enabled),void 0!==e.mode&&(t.mode=+("instance"===e.mode)),void 0!==e.bounds&&(t.bounds=e.bounds),t}}},19057(e,t,n){n.d(t,{A:()=>v});var i=n(96540),r=n(5529);let o="u">typeof window?i.useLayoutEffect:i.useEffect;function s(e,t){for(;e;){if(e===t)return!0;e=Object.getPrototypeOf(e)}return!1}var a=n(78977),l=n(13563);let c={position:"absolute",zIndex:-1};function u(e){return i.isValidElement(e)}let d=(0,i.createContext)(),h={mixBlendMode:null};function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){var i;i=n[t],t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i})}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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function g(e){e.redrawReason&&(e.deck._drawLayers(e.redrawReason),e.redrawReason=null)}let v=i.forwardRef(function(e,t){let[n,v]=(0,i.useState)(0),m=(0,i.useRef)({control:null,version:n,forceUpdate:()=>v(e=>e+1)}).current,y=(0,i.useRef)(null),b=(0,i.useRef)(null),_=(0,i.useMemo)(()=>(function(e){let{children:t,layers:n=[],views:r}=e,o=[],c=[],d={};return i.Children.forEach(function e(t){if("function"==typeof t)return(0,i.createElement)(a.A,{},t);if(Array.isArray(t))return t.map(e);if(u(t)){if(t.type===i.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 n=function(e,t){let n={},i=e.defaultProps||{};for(let e in t)i[e]!==t[e]&&(n[e]=t[e]);return new e(n)}(t,e.props);c.push(n)}else o.push(e);if(s(t,a.A)&&t!==a.A&&e.props.id){let n=new t(e.props);d[n.id]=n}}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:n=c.length>0?[c,n]:n,children:o,views:r}})(e),[e.layers,e.views,e.children]),w=!0,P=t=>{var n;
1return w&&e.viewState?(m.viewStateUpdateRequested=t,null):(m.viewStateUpdateRequested=null,null==(n=e.onViewStateChange)?void 0:n.call(e,t))},x=t=>{if(w)m.interactionStateUpdateRequested=t;else{var n;m.interactionStateUpdateRequested=null,null==(n=e.onInteractionStateChange)||n.call(e,t)}},O=(0,i.useMemo)(()=>{let t=f(p({widgets:[]},e),{style:null,width:"100%",height:"100%",parent:y.current,canvas:b.current,layers:_.layers,onViewStateChange:P,onInteractionStateChange:x});return _.views&&(t.views=_.views),delete t._customRender,m.deck&&(m.deck.setProps(t),m.deck.isInitialized&&(m.lastRenderedViewports=m.deck.getViewports())),t},[e]);(0,i.useEffect)(()=>{var t;let n,i=e.Deck||r.A;return t=f(p({},O),{parent:y.current,canvas:b.current}),n=new i(f(p({},t),{_customRender:e=>{var i,r;m.redrawReason=e;let o=(null==(i=n.device)?void 0:i.type)==="webgpu",s=n.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=n,()=>{var e;return null==(e=m.deck)?void 0:e.finalize()}},[]),o(()=>{g(m);let{viewStateUpdateRequested:e,interactionStateUpdateRequested:t}=m;e&&P(e),t&&x(t)}),(0,i.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 j=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,i.useMemo)(()=>(function(e){let{width:t,height:n,style:i}=e,r={position:"absolute",zIndex:0,left:0,top:0,width:t,height:n},o={left:0,top:0};if(i)for(let e in i)e in h?o[e]=i[e]:r[e]=i[e];return{containerStyle:r,canvasStyle:o}})({width:S,height:k,style:A}),[S,k,A]);if(!m.viewStateUpdateRequested&&m.lastRenderedViewports===j||m.version!==n){m.lastRenderedViewports=j,m.version=n;let e=function(e){let{children:t,deck:n,ContextProvider:r=d.Provider}=e,{viewManager:o}=n||{};if(!o||!o.views.length)return[];let l={},h=o.views[0].id;for(let e of t){let t=h,n=e;u(e)&&s(e.type,a.A)&&(t=e.props.id||h,n=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;n=function e(t,n){if("function"==typeof t)return t(n);if(Array.isArray(t))return t.map(t=>e(t,n));if(u(t)){if(function(e){var t;return null==(t=e.props)?void 0:t.mapStyle}(t))return n.style=c,(0,i.cloneElement)(t,n);if(function(e){let t=e.type;return t&&t.deckGLViewProps}(t))return(0,i.cloneElement)(t,n)}return t}(n,{x:e,y:o,width:s,height:a,viewport:r,viewState:d}),l[t]||(l[t]={viewport:r,children:[]}),l[t].children.push(n)}}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,i.createElement)("div",{key:d,id:d,style:{position:"absolute",left:s,top:a,width:c,height:u}},...o),p={deck:n,viewport:t,container:n.canvas.offsetParent,eventManager:n.eventManager,onViewStateChange:t=>{t.viewId=e,n._onViewStateChange(t)},widgets:[]},f="view-".concat(e,"-context");return(0,i.createElement)(r,{key:f,value:p},h)})}({children:_.children,deck:m.deck,ContextProvider:C}),t=(0,i.createElement)("canvas",{key:"canvas",id:M||"deckgl-overlay",ref:b,style:T}),r=(0,i.createElement)("div",{key:"deck-events-root",className:"deck-events-root",style:{width:S,height:k}},[t,e]),o=(0,i.createElement)("div",{key:"deck-widgets-root",className:"deck-widgets-root"});m.control=(0,i.createElement)("div",{id:"".concat(M||"deckgl","-wrapper"),ref:y,style:E},[r,o])}return w=!1,m.control})}}]);
2//# sourceMappingURL=41f7fd2b.dbe855c2.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.