1"use strict";(self.webpackChunkproject_website=self.webpackChunkproject_website||[]).push([["6029"],{57843(e,t,n){n.r(t),n.d(t,{metadata:()=>i,default:()=>f,frontMatter:()=>c,contentTitle:()=>p,toc:()=>d,assets:()=>u});var i=JSON.parse('{"id":"api-reference/widgets/screenshot-widget","title":"ScreenshotWidget","description":"This widget captures and downloads the deck.gl screen (canvas). Click the widget to capture an image of the screen. The image will be downloaded by the browser into the user\'s \\"download\\" folder.","source":"@site/../docs/api-reference/widgets/screenshot-widget.md","sourceDirName":"api-reference/widgets","slug":"/api-reference/widgets/screenshot-widget","permalink":"/docs/api-reference/widgets/screenshot-widget","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/deck.gl/tree/master/website/../docs/api-reference/widgets/screenshot-widget.md","tags":[],"version":"current","frontMatter":{},"sidebar":"tutorialSidebar","previous":{"title":"ScaleWidget (Experimental)","permalink":"/docs/api-reference/widgets/scale-widget"},"next":{"title":"ScrollbarWidget","permalink":"/docs/api-reference/widgets/scrollbar-widget"}}'),r=n(74848),o=n(28453),s=n(92066),a=n(50773),l=n(57250);let c={},p="ScreenshotWidget",u={},d=[{value:"Constructor",id:"constructor",level:2},{value:"Types",id:"types",level:2},{value:"<code>ScreenshotWidgetProps</code>",id:"screenshotwidgetprops",level:3},{value:"<code>label</code> (string, optional)",id:"label",level:4},{value:"<code>tooltip</code> (string | HTMLElement | false, optional)",id:"tooltip",level:4},{value:"<code>filename</code> (string, optional)",id:"filename",level:4},{value:"<code>imageFormat</code> (string, optional)",id:"imageformat",level:4},{value:"<code>onCapture</code> (function, optional)",id:"oncapture",level:4},{value:"Styles",id:"styles",level:2},{value:"Source",id:"source",level:2}];function h(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.header,{children:(0,r.jsx)(t.h1,{id:"screenshotwidget",children:"ScreenshotWidget"})}),"\n",(0,r.jsx)("img",{src:"https://img.shields.io/badge/from-v9.2-green.svg?style=flat-square",alt:"from v9.2"}),"\n","\n",(0,r.jsx)(s._p,{}),"\n",(0,r.jsx)(t.p,{children:'This widget captures and downloads the deck.gl screen (canvas). Click the widget to capture an image of the screen. The image will be downloaded by the browser into the user\'s "download" folder.'}),"\n",(0,r.jsx)(t.admonition,{type:"info",children:(0,r.jsxs)(t.p,{children:["Only the deck.gl canvas is captured, not other HTML DOM element underneath or on top of that canvas. This means that e.g. a non-interleaved basemap, or any widgets, will not be captured.\nIt is possible to use ",(0,r.jsx)(t.code,{children:"props.onCapture"})," to integrate with more advanced screen capture modules such as ",(0,r.jsx)(t.a,{href:"https://html2canvas.hertzen.com/",children:"html2canvas"})]})}),"\n",(0,r.jsxs)(a.A,{groupId:"language",children:[(0,r.jsx)(l.A,{value:"js",label:"JavaScript",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-js",children:"import {ScreenshotWidget} from '@deck.gl/widgets';\nimport {Deck} from '@deck.gl/core';\nimport '@deck.gl/widgets/stylesheet.css';\n\nnew Deck({\n widgets: [\n new ScreenshotWidget({placement: 'top-left'})\n ]\n});\n"})})}),(0,r.jsx)(l.A,{value:"ts",label:"TypeScript",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-ts",children:"import {ScreenshotWidget} from '@deck.gl/widgets';\nimport {Deck} from '@deck.gl/core';\nimport '@deck.gl/widgets/stylesheet.css';\n\nnew Deck({\n widgets: [\n new ScreenshotWidget({placement: 'top-left'})\n ]\n});\n"})})}),(0,r.jsx)(l.A,{value:"react",label:"React",children:(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-tsx",children:"import React from 'react';\nimport DeckGL, {ScreenshotWidget} from '@deck.gl/react';\nimport '@deck.gl/widgets/stylesheet.css';\n\nfunction App() {\n return (\n <DeckGL>\n <ScreenshotWidget placement=\"top-left\" />\n </DeckGL>\n );\n}\n"})})})]}),"\n",(0,r.jsx)(t.h2,{id:"constructor",children:"Constructor"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-ts",children:"import {ScreenshotWidget, type ScreenshotWidgetProps} from '@deck.gl/widgets';
1\nnew ScreenshotWidget({} satisfies ScreenshotWidgetProps);\n"})}),"\n",(0,r.jsx)(t.h2,{id:"types",children:"Types"}),"\n",(0,r.jsx)(t.h3,{id:"screenshotwidgetprops",children:(0,r.jsx)(t.code,{children:"ScreenshotWidgetProps"})}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.code,{children:"ScreenshotWidget"})," accepts the generic ",(0,r.jsx)(t.a,{href:"/docs/api-reference/core/widget#widgetprops",children:(0,r.jsx)(t.code,{children:"WidgetProps"})})," and:"]}),"\n",(0,r.jsxs)(t.h4,{id:"label",children:[(0,r.jsx)(t.code,{children:"label"})," (string, optional)"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Default: ",(0,r.jsx)(t.code,{children:"'Screenshot'"})]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Tooltip message displayed while hovering a mouse over the widget."}),"\n",(0,r.jsxs)(t.h4,{id:"tooltip",children:[(0,r.jsx)(t.code,{children:"tooltip"})," (string | HTMLElement | false, optional)"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Default: value of ",(0,r.jsx)(t.code,{children:"label"})]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["Custom tooltip content. Overrides the default label text in the tooltip. Pass ",(0,r.jsx)(t.code,{children:"false"})," to disable."]}),"\n",(0,r.jsxs)(t.h4,{id:"filename",children:[(0,r.jsx)(t.code,{children:"filename"})," (string, optional)"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Default: ",(0,r.jsx)(t.code,{children:"'screenshot.png'"})]}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"Filename for captured screenshot."}),"\n",(0,r.jsxs)(t.h4,{id:"imageformat",children:[(0,r.jsx)(t.code,{children:"imageFormat"})," (string, optional)"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Default: ",(0,r.jsx)(t.code,{children:"'image/png'"})]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["Format of the downloaded image. Browser dependent, may support ",(0,r.jsx)(t.code,{children:"image/jpeg"}),", ",(0,r.jsx)(t.code,{children:"image/webp"}),", ",(0,r.jsx)(t.code,{children:"image/avif"})]}),"\n",(0,r.jsxs)(t.h4,{id:"oncapture",children:[(0,r.jsx)(t.code,{children:"onCapture"})," (function, optional)"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-ts",children:"(widget: ScreenshotWidget) => void\n"})}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Default: ",(0,r.jsx)(t.code,{children:"undefined"})]}),"\n"]}),"\n",(0,r.jsxs)(t.p,{children:["Allows the application to define its own capture logic, perhaps to integrate a more advanced screen capture module such as ",(0,r.jsx)(t.a,{href:"https://html2canvas.hertzen.com/",children:"html2canvas"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"styles",children:"Styles"}),"\n",(0,r.jsxs)(t.p,{children:["Learn more about how to replace icons in the ",(0,r.jsx)(t.a,{href:"./styling#replacing-icons",children:"styling guide"}),"."]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{children:"Name"}),(0,r.jsx)(t.th,{children:"Type"}),(0,r.jsx)(t.th,{children:"Default"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{children:(0,r.jsx)(t.code,{children:"--icon-camera"})}),(0,r.jsx)(t.td,{children:(0,r.jsx)(t.a,{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/url#using_a_data_url",children:"SVG Data Url"})}),(0,r.jsx)(t.td,{children:"[Material Symbol Photo Camera][camera_icon_url]"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"source",children:"Source"}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"https://github.com/visgl/deck.gl/tree/9.4-release/modules/widgets/src/screenshot-widget.tsx",children:"modules/widgets/src/screenshot-widget.tsx"})})]})}function f(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},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"},92066(e,t,n){n.d(t,{Bn:()=>ey,I9:()=>Q,JZ:()=>eu,L9:()=>ed,Lo:()=>ee,Mn:()=>el,Mz:()=>ep,Oo:()=>eo,Ot:()=>ea,Sj:()=>et,Tm:()=>ei,ZL:()=>q,_B:()=>er,_p:()=>X,dG:()=>K,e3:()=>eh,fd:()=>$,ge:()=>J,m5:()=>es,qS:()=>ec,vd:()=>ef});var i=n(74848),r=n(96540),o=n(9011),s=n(39764),a=n(73616),l=n(8867),c=n(30794),p=n(1866),u=n(57189),d=n(86446),h=n(45080),f=n(96519),g=n(71748),v=n(55835),m=n(62281),y=n(74535),b=n(5263),w=n(28169),P=n(66924),_=n(82593),x=n(95860),O=n(20810),j=n(55427),S=n(30334),C=n(77475),k=n(14663),A=n(64151),M=n(19057),E=n(88708),L=n(67607),T=n(87810),I=n(56548),z=n(52732),D=n(20236),R=n(51381),F=n(83941),B=n(83311),V=n(40534);function N(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 U(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="https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_50m_admin_0_scale_rank.geojson",W={position:"relative",width:"100%",height:"50vh",minHeight:200};function H(e){let{colorMode:t}=(0,F.G)(),n="dark"===t,r=[!e.map&&new E.A({id:"base-map",data:G,stroked:!0,filled:!0,lineWidthMinPixels:2,opacity:.4,getLineColor:[60,60,60],getFillColor:[200,200,200]}),new E.A({id:"airports",data:"https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_10m_airports.geojson",filled:!0,pointRadiusMinPixels:2,pointRadiusScale:2e3,getPointRadius:e=>11-e.properties.scalerank,getFillColor:[200,0,80,180],pickable:!0,autoHighlight:!0})],o=N({},n?s.Ip:s.Qo,e.style);return(0,i.jsx)("div",{style:W,children:(0,i.jsx)(M.A,U(N({views:[new C.A({repeat:!0})],initialViewState:{longitude:0,latitude:52,zoom:4},controller:!0,pickingRadius:5,layers:r},e),{style:o,children:e.map&&(0,i.jsx)(R.T5,{reuseMaps:!0,mapStyle:e.mapLabels?n?B.Vi.DARK_LABEL:B.Vi.LIGHT_LABEL:n?B.Vi.DARK:B.Vi.LIGHT})}))})}function Y(e){let t,n,{colorMode:r}=(0,F.G)(),o=e.layers||[new L.A({data:(t=19.5,n=20,Array.from({length:1600},(e,i)=>{let r=i%40,o=Math.floor(i/40);return{position:[(r-t)*10,(o-n)*10],color:[r/40*255,o/40*255,0]}})),getPosition:e=>e.position,getFillColor:e=>e.color,billboard:!0,getRadius:3})];return(0,i.jsx)("div",{style:W,children:(0,i.jsx)(M.A,N({views:new k.A({orbitAxis:"Y"}),initialViewState:{target:[0,0,0],zoom:0,rotationX:0,rotationOrbit:0},layers:o,controller:!0,style:"dark"===r?s.Ip:s.Qo},e))})}function Z(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new D.A(N({data:["https://tiles-a.basemaps.cartocdn.com/vectortiles/carto.streets/v1/{z}/{x}/{y}.mvt"],minZoom:0,maxZoom:14,stroked:!1,getLineColor:[192,192,192],getFillColor:e=>{switch(e.properties.layerName){case"poi":return[255,0,0];case"water":return[120,150,180];case"building":return[218,218,218];default:return[128,128,128,100]}},getPointRadius:2,pointRadiusUnits:"pixels",getLineWidth:e=>{switch(e.properties.class){case"street":return 6;case"motorway":return 10;default:return 1}},lineWidthMinPixels:1},e))}function q(){return(0,i.jsx)(H,{map:!0,widgets:[new a.e]})}function X(){return(0,i.jsx)(H,{layers:[Z()],widgets:[new l.j]})}function K(){return(0,i.jsx)(H,{map:!0,widgets:[new c._]})}function J(){return(0,i.jsx)(H,{map:!0,widgets:[new p.z({initialViewState:{longitude:-20,latitude:15,zoom:1}})]})}function Q(){let e=eg({target:[0,0,0],zoom:0,rotationX:-45,rotationOrbit:0},e=>{var t,n;return{rotationX:90-(null!=(t=e.rotationX)?t:0),rotationOrbit:(null!=(n=e.rotationOrbit)?n:0)+120,transitionDuration:4e3}});return(0,i.jsx)(Y,{initialViewState:e,widgets:[new u.b]})}function $(){let[e,t]=(0,r.useState)(0),n=Math.ceil(10-e),o=(0,r.useMemo)(()=>[n],[n]),s=[new T.A({id:"countdown",data:o,getText:e=>String(e),getPosition:e=>[0,0,0],getSize:200*Math.sqrt(1-e%1),sizeUnits:"pixels",fontSettings:{fontSize:128}})],a=(0,r.useMemo)(()=>[new d.e({timeRange:[0,10],step:.01,playInterval:10,autoPlay:!0,loop:!1,onTimeChange:t,formatLabel:e=>"00:".concat(e.toFixed(0).padStart(2,"0"))})],[]);return(0,i.jsx)(Y,{layers:s,widgets:a})}function ee(){return(0,i.jsx)(H,{viewState:{longitude:20,latitude:40,zoom:4},widgets:[new h.U({label:"Run!",icon:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" height="100%" viewBox="0 -960 960 960" width="100%" fill="currentColor"><path d="M520-40v-240l-84-80-40 176-276-56 16-80 192 40 64-324-72 28v136h-80v-188l158-68q35-15 51.5-19.5T480-720q21 0 39 11t29 29l40 64q26 42 70.5 69T760-520v80q-66 0-123.5-27.5T540-540l-24 120 84 80v300h-80Zm-36.5-723.5Q460-787 460-820t23.5-56.5Q507-900 540-900t56.5 23.5Q620-853 62
10-820t-23.5 56.5Q573-740 540-740t-56.5-23.5Z"/></svg>',onClick:()=>alert("Running!")})]})}function et(){let[e,t]=(0,r.useState)("light"),n=(0,r.useMemo)(()=>"light"===e?Z({updateTriggers:{getFillColor:[e]}}):Z({getLineColor:[132,132,132],getFillColor:e=>{switch(e.properties.layerName){case"poi":return[255,0,0];case"water":return[40,60,80];case"building":return[30,30,30];default:return[168,168,168,100]}},updateTriggers:{getFillColor:[e]}}),[e]),o="light"===e?{backgroundColor:"white"}:{backgroundColor:"black"};return(0,i.jsx)(H,{layers:n,style:o,widgets:[new f.J({initialChecked:!0,icon:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" ><circle cx="12" cy="12" r="6" fill="black" mask="url(%23moon-mask)" /><mask id="moon-mask" viewBox="0 0 24 24" ><rect x="0" y="0" width="24" height="24" fill="white" /><circle cx="24" cy="10" r="12" fill="black"/></mask></svg>',onIcon:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="black" stroke="black"><g ><circle cx="12" cy="12" r="6" /><line x1="12" y1="1" x2="12" y2="3" /><line x1="12" y1="21" x2="12" y2="23" /><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" /><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" /><line x1="1" y1="12" x2="3" y2="12" /><line x1="21" y1="12" x2="23" y2="12" /><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" /><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" /></g></svg>',label:"Color mode",color:"dodgerblue",onColor:"orange",onChange:e=>t(e?"light":"dark")})]})}let en={single:[new C.A({id:"main",controller:!0})],"split-vertical":[new C.A({id:"main",x:0,width:"50%",controller:!0}),new C.A({id:"right",x:"50%",width:"50%",controller:!0})],"split-horizontal":[new C.A({id:"main",y:0,height:"50%",controller:!0}),new C.A({id:"bottom",y:"50%",height:"50%",controller:!0})]};function ei(){let[e,t]=(0,r.useState)("single");return(0,i.jsx)(H,{views:en[e],widgets:[new g.E({initialValue:"single",options:[{value:"single",label:"Single view",icon:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24"><rect x="4" y="4" width="16" height="16" stroke="currentColor" fill="none" stroke-width="2" /></svg>'},{value:"split-horizontal",label:"Split views horizontal",icon:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24"><rect x="4" y="4" width="16" height="7" stroke="currentColor" fill="none" stroke-width="2" /><rect x="4" y="13" width="16" height="7" stroke="currentColor" fill="none" stroke-width="2" /></svg>'},{value:"split-vertical",label:"Split views vertical",icon:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24"><rect x="4" y="4" width="7" height="16" stroke="currentColor" fill="none" stroke-width="2" /><rect x="13" y="4" width="7" height="16" stroke="currentColor" fill="none" stroke-width="2" /></svg>'}],onChange:t})]})}function er(){let e=Array.from({length:1001},(e,t)=>({position:[(t-500)*40,0,0],color:[(Math.sin(t/20)+1)*128,(Math.sin(t/20+2*Math.PI/3)+1)*128,(Math.sin(t/20+4*Math.PI/3)+1)*128]})),t=[new L.A({id:"points",data:e,getPosition:e=>e.position,getFillColor:e=>e.color,getRadius:10})];return(0,i.jsx)(Y,{views:new A.A({id:"ortho"}),initialViewState:{target:[0,0],zoom:0,zoomX:0,zoomY:10},controller:{scrollZoom:!1,maxBounds:[[-20040,-40,0],[20040,40,0]]},layers:t,widgets:[new c._({zoomAxis:"X"}),new p.z,new v.p({placement:"bottom-right",viewId:"ortho",orientation:"horizontal",captureWheel:!0})]})}function eo(){return(0,i.jsx)(H,{map:!0,mapLabels:!0,widgets:[new m.h({geocoder:"coordinates",_geolocation:!0})]})}function es(){return(0,i.jsx)(H,{map:!0,widgets:[new y.j({getTooltip:e=>{var t;if(null==(t=e.object)?void 0:t.properties){let t=e.object.properties;return console.log(e.object),{html:"<b>".concat(t.name,"</b><br/>\n").concat(t.iata_code," | ").concat(t.gps_code,' | <a href="').concat(t.wikipedia,'">Wikipedia</a>')}}},style:{minWidth:"160px",fontSize:"12px"}})]})}function ea(){return(0,i.jsx)(H,{map:!0,layers:[],widgets:[new b.F({content:{text:"I'm here"},marker:{html:'<div style="font-size:28px;transform:translate(-50%,-50%);">\u{1F3E0}</div>'},defaultIsOpen:!0,position:[-.453,51.471],closeButton:!0,closeOnClickOutside:!0,style:{minWidth:"160px",fontSize:"12px"}})]})}function el(){let e=eg({longitude:0,latitude:50,zoom:4,pitch:45,bearing:0},e=>{var t;return{bearing:(null!=(t=e.bearing)?t:0)+120,transitionDuration:4e3}}
1);return(0,i.jsx)(H,{map:!0,initialViewState:e,widgets:[new w.j]})}function ec(){let[e,t]=(0,r.useState)(()=>[[-87.905,41.977],[-122.302,47.444],[-122.383,37.617],[-73.786,40.646],[-104.674,39.849],[-97.04,32.9],[-77.448,38.953],[-111.982,40.787]]),n=(0,r.useCallback)(e=>{let n=e.coordinate;t(e=>e.concat([n]))},[]),o=(0,r.useCallback)(e=>{let n=e.index;t(e=>{let t=e.slice();return t.splice(n,1),t})},[]),s=[new E.A({id:"base-map",data:G,stroked:!0,filled:!0,lineWidthMinPixels:2,opacity:.4,pickable:!0,getLineColor:[60,60,60],getFillColor:[200,200,200]}),new I.A({id:"pins",data:e,iconAtlas:"".concat(B.Ut,"/icon-atlas.png"),iconMapping:"".concat(B.Ut,"/icon-atlas.json"),getPosition:e=>e,getIcon:e=>"marker",getSize:20,sizeUnits:"pixels",getColor:[200,0,80,180],alphaCutoff:0,pickable:!0,autoHighlight:!0,highlightColor:[255,255,0,100]})];return(0,i.jsx)(H,{layers:s,initialViewState:{longitude:-100,latitude:40,zoom:2.5},widgets:[new P.F({getMenuItems:e=>{var t;return(null==(t=e.layer)?void 0:t.id)==="pins"?[{value:"delete",label:"Delete pin"}]:e.picked?[{label:"Add pin",value:"add"}]:void 0},onMenuItemSelected:(e,t)=>{"add"===e&&n(t),"delete"===e&&o(t)}})]})}function ep(){return(0,i.jsx)(H,{layers:[Z()],widgets:[new _.b]})}function eu(){return(0,i.jsx)(H,{layers:[Z({pickable:!0})],widgets:[new x.c({initialExpanded:!0})]})}function ed(){return(0,i.jsx)(Y,{views:new A.A,widgets:[new O.k,new a.e,new c._]})}function eh(){return(0,i.jsx)(H,{map:!0,mapLabels:!0,widgets:[new j.Z({placement:"top-left"})]})}function ef(){let{colorMode:e}=(0,F.G)(),t=(0,r.useMemo)(()=>[new z.A({id:"fill",data:[0],getColor:[100,140,20],getPosition:[0,0,-100],mesh:"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/humanoid_quad.obj",sizeScale:10,pickable:!0,loaders:[V.L],material:{ambient:.9}}),new z.A({id:"wireframe",data:[0],getPosition:[0,0,-100],mesh:"https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/humanoid_quad.obj",sizeScale:10,wireframe:!0,getLineColor:[0,0,0],pickable:!0,loaders:[V.L]})],[]);return(0,i.jsx)("div",{style:W,children:(0,i.jsx)(M.A,{style:"dark"===e?s.Ip:s.Qo,initialViewState:{top:{target:[0,0,0],rotationX:90,rotationOrbit:90,zoom:0},front:{target:[0,0,0],rotationX:0,rotationOrbit:90,zoom:0},left:{target:[0,0,0],rotationX:-90,rotationOrbit:0,zoom:0},perspective:{target:[0,0,0],rotationX:45,rotationOrbit:30,zoom:0}},widgets:[new S.s({viewLayout:{orientation:"horizontal",initialSplit:.5,views:[{orientation:"vertical",initialSplit:.5,views:[new k.A({id:"top",orbitAxis:"Z",orthographic:!0,controller:{dragMode:"pan",dragRotate:!1}}),new k.A({id:"front",orbitAxis:"Z",orthographic:!0,controller:{dragMode:"pan",dragRotate:!1}})]},{orientation:"vertical",initialSplit:.5,views:[new k.A({id:"left",orbitAxis:"Y",orthographic:!0,controller:{dragMode:"pan",dragRotate:!1}}),new k.A({id:"perspective",orbitAxis:"Z",controller:!0})]}]}})],layers:t})})}function eg(e,t){let[n,i]=(0,r.useState)(e);return(0,r.useEffect)(()=>{let e=()=>{i(n=>U(N({},n,t(n)),{onTransitionEnd:e}))};e()},[]),n}function ev(e){let{cls:t=l.j,props:n={}}=e;return(0,i.jsxs)("div",{style:{position:"relative",width:"100%",height:52},children:[(0,i.jsx)("div",{style:{pointerEvents:"auto",position:"absolute",height:"100%",width:"100%",zIndex:1e3}}),(0,i.jsx)(M.A,{widgets:[new t(n)]})]})}let em=[{code:"import {DarkTheme} from '@deck.gl/widgets';",theme:s.aj},{code:"import {LightTheme} from '@deck.gl/widgets';",theme:s.qW},{code:"import {DarkGlassTheme} from '@deck.gl/widgets';",theme:s.Ip},{code:"import {LightGlassTheme} from '@deck.gl/widgets';",theme:s.Qo}];function ey(e){let{themes:t=em}=e;return(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Preview"}),(0,i.jsx)("th",{children:"Theme"})]})}),(0,i.jsx)("tbody",{children:t.map(e=>{let{code:t,theme:n}=e;return(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(ev,{props:{style:n}})}),(0,i.jsx)("td",{children:(0,i.jsx)(o.A,{language:"ts",children:t})})]},t)})})]})}},62365(e,t,n){n.d(t,{r:()=>l,v:()=>c});var i=n(17733),r=n(86083),o=n(59808);let s=["longitude","latitude","zoom"],a={curve:1.414,speed:1.2};function l(e,t,n,a){let{startZoom:l,startCenterXY:c,uDelta:u,w0:d,u1:h,S:f,rho:g,rho2:v,r0:m}=p(e,t,a);if(h<.01){let r={};for(let o of s){let s=e[o],a=t[o];r[o]=(0,i.Cc)(s,a,n)}return r}
1let y=n*f,b=Math.cosh(m)/Math.cosh(m+g*y),w=d*((Math.cosh(m)*Math.tanh(m+g*y)-Math.sinh(m))/v)/h,P=l+(0,r.J9)(1/b),_=o.hs([],u,w);o.WQ(_,_,c);let x=(0,r.iV)(_);return{longitude:x[0],latitude:x[1],zoom:P}}function c(e,t,n){let i,r={...a,...n},{screenSpeed:o,speed:s,maxDuration:l}=r,{S:c,rho:u}=p(e,t,r),d=1e3*c;return i=Number.isFinite(o)?d/(o/u):d/s,Number.isFinite(l)&&i>l?0:i}function p(e,t,n){let i=(n=Object.assign({},a,n)).curve,s=e.zoom,l=[e.longitude,e.latitude],c=(0,r.XM)(s),p=t.zoom,u=[t.longitude,t.latitude],d=(0,r.XM)(p-s),h=(0,r.Gw)(l),f=(0,r.Gw)(u),g=o.jb([],f,h),v=Math.max(e.width,e.height),m=v/d,y=o.Bw(g)*c,b=Math.max(y,.01),w=i*i,P=(m*m-v*v+w*w*b*b)/(2*v*w*b),_=(m*m-v*v-w*w*b*b)/(2*m*w*b),x=Math.log(Math.sqrt(P*P+1)-P),O=Math.log(Math.sqrt(_*_+1)-_);return{startZoom:s,startCenterXY:h,uDelta:g,w0:v,u1:y,S:(O-x)/i,rho:i,rho2:w,r0:x,r1:O}}},89293(e,t,n){n.d(t,{A:()=>S});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 p={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(p),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),p=n.interpolateProps(i,o,c);this.propsInTransition=this.getControllerState(r({},this.props,p),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 p=n(43396),u=n(59377),d=n(86083);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 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}
1)(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"],w=["pinchstart","pinchmove","pinchend"],P=["multipanstart","multipanmove","multipanend"],_=["dblclick"],x=["dblclickdragstart","dblclickdragmove","dblclickdragend","dblclickdragcancel"],O=["keydown"],j={};class S{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(h({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,d.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:p=c?"rotate":null,trackpadGesture:d=!1,zoomAround:g="pointer",keyboard:v=!0}=e,m=!!this.onViewStateChange;if(this.toggleEvents(y,m&&i),this.toggleEvents(b,m),this.toggleEvents(w,m&&(l||"rotate"===p)),this.toggleEvents(P,m&&!!p),this.toggleEvents(_,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"===p,this.multiTouchDrag=p,this.trackpadGesture=d,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(h({},e),{makeViewport:this.makeViewport})),n=t.getViewportProps();Object.keys(n).some(t=>!(0,u.b)(n[t],e[t],1))&&this.updateViewport(t)}}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(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=h({},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(h({},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"}}
1_getReboundTransition(e,t){if("rebound"!==e.mode)return null;let n=t.getViewportProps();return Object.keys(n).some(e=>!(0,u.b)(this.props[e],n[e],1))?f(h({},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(h({},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(h({},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(h({},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(h({},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);if(!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(h({},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(h({},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._getReboun
1dTransition(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(h({},t),{transitionInterpolator:new p.A(f(h({},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(h({},e),{getControllerState:(t,n)=>new this.ControllerState(f(h({},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),p=n(43396);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}
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 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}let h=[[-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(u({},this.getViewportProps(),t)),n="panByPosition3D"in e?"panByPosition3D":"panByPosition";return this._getUpdatedState(u({},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=u({},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:p,bearing:h,normalize:g,maxBounds:v,rubberBand:m}=e;g&&(h<-180||h>180)&&(e.bearing=(0,c.zi)(h+180,360)-180),e.pitch=(0,i.qE)(p,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(d(u({},e),{bearing:0,pitch:0})),o=(0,s.jo)(r,[e.longitude,e.latitude],n),l=f(v[0]),c=f(v[1]),p=2**e.zoom,h=[l[0]+o.left/p,l[1]+o.bottom/p],g=[c[0]-o.right/p,c[1]-o.top/p],m=f([e.longitude,e.latitude]),y=[(0,i.qE)(m[0],h[0],g[0]),(0,i.qE)(m[1],h[1],g[1])],w=m.slice();if(n.width>=0&&(w[0]=(null==t?void 0:t.mode)==="preserve"?m[0]:b?(0,s.GT)(m[0],y[0],n.width/2/p):y[0]),n.height>=0&&(w[1]=(null==t?void 0:t.mode)==="preserve"?m[1]:b?(0,s.GT)(m[1],y[1],n.height/2/p):y[1]),w[0]!==m[0]||w[1]!==m[1]){let[t,n]=(0,a.iV)(w);w[0]!==m[0]&&(e.longitude=t),w[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(d(u({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:p}=this.getViewportProps(),u=0;s>0?Math.abs(p-l)>5&&(u=s/(l-p)*1.2):s<0&&l>5&&(u=1-a/l),u=(0,i.qE)(u,-1,1);let{minPitch:d,maxPitch:h}=this.getViewportProps(),f=n;return u>0?f=n+u*(h-n):u<0&&(f=n-u*(d-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:p=1.5,position:d=[0,0,0],maxZoom:f=20,minZoom:g=0,maxPitch:v=60,minPitch:m=0,startPanLngLat:y,startZoomLngLat:b,startRotatePos:w,startRotateLngLat:P,startBearing:_,startPitch:x,startZoom:O,normalize:j=!0,rubberBand:S=!1}=e,{[o.y]:C}=e;(0,l.A)(Number.isFinite(r)),(0,l.A)(Number.isFinite(i)),(0,l.A)(Number.isFinite(s));let k=e.maxBounds||(j?h:null);super(u({width:t,height:n,latitude:i,longitude:r,zoom:s,bearing:a,pitch:c,altitude:p,maxZoom:f,minZoom:g,maxPitch:v,minPitch:m,normalize:j,position:d,maxBounds:k,maxBoundsPadding:e.maxBoundsPadding||null,rubberBand:S},{[o.y]:C}),{startPanLngLat:y,startZoomLngLat:b,startRotatePos:w,startRotateLngLat:P,startBearing:_,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:h),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=d(u({},n),{rotationPivotPosition:i.startRotateLngLat}):!1===n.isDragging&&(n=d(u({},n),{rotationPivotPosition:void 0})),super.updateViewport(e,t,n)}constructor(){super(...arguments),this.ControllerState=g,this.transition={transitionDuration:300,transitionInterpolator:new p.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),p=(0,i.E9)((0,i.rk)(null!=(s=null==n?void 0:n.top)?s:0),t),u=(0,i.E9)((0,i.rk)(null!=(a=null==n?void 0:n.bottom)?a:0),t);return{x:l,y:p,width:e-l-c,height:t-p-u}}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:()=>C});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 p 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 u=n(48895),d=n(36485),h=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,h.A)(function(e){let{viewport:t,center:n}=e;return new o.k(t.viewProjectionMatrix).invert().transform(n)}),w=(0,h.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}),P=[0,0,0,1],_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],x={name:"shadow",dependencies:[d.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=d.A.getUniforms(n),r=b({viewport:n.viewport,center:i.center}),o=[],a=w({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===u.Kx.WEB_MERCATOR?(a[t]=l,o[t]=r):(a[t]=e.clone().multiplyRight(_),o[t]=l.transform(r))}let l={drawShadowMap:!!e.drawToShadowMap,useShadowMap:!!e.shadowMaps&&e.shadowMaps.length>0,color:e.shadowColor||P,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]}],S=[0,0,0,200/255];class C{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 p(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=S,this.shadow=!1,this.directionalLights=[],this.pointLights=[],this.shadowPasses=[],this.dummyShadowMap=null,this.setProps(e)}}},73144(e,t,n){n.d(t,{A:()=>K});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),p=n(79036),u=n(1918);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}))),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}
1)(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function f(e,t){t.offset&&u.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 h(d({},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:h(d({},r),{offset:r.offset+4*n.size})};i.push(a(e,d({},n,o.high),this.device.type),a("".concat(e,"64Low"),d({},n,o.low),this.device.type))}else if(t){let r=f(n,t);i.push(a(e,d({},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=d({},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,p.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,p.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?h(d({},this.settings),{stride:2*this.size*Float32Array.BYTES_PER_ELEMENT}):this.settings;this.setAccessor(s);let{byteOffset:a}=this,{buffer:l}=this,u=r.byteLength*(o&&r instanceof Float32Array?2:1);return(!l||l.byteLength<u+a)&&(l=this._createBuffer(u+a),t&&i&&l.write(this._shouldSplitDoublePrecisionValue(i)?(0,p.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||u.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(h(d({},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=h(d({},t),{defaultType:l,defaultValue:a,logicalType:o,type:i,normalized:i.includes("norm"),size:this.size,bytesPerElement:l.BYTES_PER_ELEMENT}),this.state=h(d({},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=[],w=[[0,1/0]];var P=n(45566);class _ 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,P.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===w||(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=w}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=b}setNeedsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.id;this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){let{state:t,settings:n}=this;if(n.noAlloc)return!1;if(n.update){let n=this.isConstant;return super.allocate(e,t.updateRanges!==w),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,p.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:p,startIndices:u}=e,{accessor:d,transform:h}=a,f=l.binaryAccessor||("function"==typeof d?d:o[d]);(0,v.A)("function"==typeof f,'accessor "'.concat(d,'" is not a function'));let g=e.getVertexOffset(i),{iterable:b,objectInfo:w}=(0,m.X)(n,i,r);for(let t of b){w.index++;let n=f(t,w);if(h&&(n=h.call(this,n)),u){let t=(w.index<u.length-1?u[w.index+1]:s)-u[w.index];if(n&&Array.isArray(n[0])){let t=g;for(let i of n)e._normalizeValue(i,c,t),t+=p}else n&&n.length>p?c.set(n,g):(e._normalizeValue(n,w.target,0),(0,y.R)({target:c,source:w.target,start:g,count:t}));g+=t*p}else e._normalizeValue(n,c,g),g+=p}}_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:w}),this.constant=!1,this.settings.update=t.update||(t.accessor?this._autoUpdater:void 0),Object.seal(this.settings),Object.seal(this.state),this._validateAttributeUpdaters()}}var x=n(96430),O=n(97065),j=n(64238),S=n(48894),C=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(),p=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)!==p||i&&(n.isConstant?!n.getConstantValue()||n.getConstantValue().byteLength<p:!ArrayBuffer.isView(n.value)||n.value.byteLength<a*p))return null}let p={},u=[],d=0;for(let e=0;e<t.length;e++){let n=t[e];for(let t of(d=A(d),p[n.id]=d,o[e].attributes||[]))u.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:d+(t.byteOffset||0)}));d+=l(n.getAccessor())}return{id:e,attributes:t,byteStride:d=A(d),byteOffsets:p,rowCount:a,layout:{name:e,byteStride:c?0:d,stepMode:s,attributes:u}}}_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(M("".concat(e.id,".").concat(t.id," rowByteLength"),n),M("".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 M("".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(M("".concat(e.id,".").concat(t.id," byteOffset"),o),M("".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&&S.G.add("webgpu",{interleave:C.C})}}function A(e){return 4*Math.ceil(e/4)}function M(e,t){if(t%4!=0)throw Error("Attribute buffer groups require 32-bit alignment: ".concat(e,"=").concat(t))}var E=n(97252),L=n(26758),T=n(9079),I=n(72274);function z(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 D(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 R(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 F(e){e.push(e.shift())}function B(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 V(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,p=i.byteOffset,u=i.settings.bytesPerElement<4?p/i.settings.bytesPerElement*4:p,d=i.startIndices,h=s&&d,f=i.isConstant;if(!h&&n&&r>=o)return n;let g=i.value instanceof Float64Array?Float32Array:i.value.constructor,v=f?i.value:new g(i.getBuffer().readSyncWebGL(p,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+p,e+p+c),t),y=new Float32Array(n?n.readSyncWebGL(u,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 z({source:t,target:n,size:i,getData:r});let a=0,l=0,c=r&&((e,t)=>r(e+l,t)),p=Math.min(o.length,s.length);for(let e=1;e<p;e++){let r=o[e]*i,p=s[e]*i;z({source:t.subarray(a,r),target:n,start:l,end:p,size:i,getData:c}),a=r,l=p}l<n.length&&z({source:[],target:n,start:l,size:i,getData:c})}({source:y,target:b,sourceStartIndices:s,targetStartIndices:d,size:c,getData:m}),(!n||n.byteLength<b.byteLength+u)&&(null==n||n.destroy(),n=t.createBuffer({byteLength:b.byteLength+u,usage:35050})),n.write(b,u),n}var N=n(21758);class U{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 N.A(n),this.attribute=t,this.attributeInTransition=function(e){let{device:t,settings:n,value:i}=e,r=new _(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 H={name:"spring",vs:"layout(std140) uniform springUniforms {\n float damping;\n float stiffness;\n} spring;\n",uniformTypes:{damping:"f32",stiffness:"f32"}},Y={interpolation:class extends U{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;F(r),r[0]=V({device:this.device,buffer:r[0],attribute:o,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter}),r[1]=B({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=D(o=(r=t).size),a=R(o),l=r.getBufferLayout(),W(r)?new T.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:[I.d,G],defines:{ATTRIBUTE_TYPE:s,ATTRIBUTE_SIZE:o},moduleSettings:{},varyings:["vCurrent","vCurrent64Low"],bufferMode:35980,disableWarnings:!0}):new T.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 U{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]=V({device:this.device,buffer:r[t],attribute:o,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter});r[2]=B({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]}),F(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=D((s=t).size),l=R(s.size),new T.p(o,{vs:"#version 300 es\n#define SHADER_NAME spring-transition-vertex-shader\n\n#define EPSILON 0.00001\n\nin ATTRIBUTE_TYPE aPrev;\nin ATTRIBUTE_TYPE aCur;\nin ATTRIBUTE_TYPE aTo;\nout ATTRIBUTE_TYPE vNext;\nout float vIsTransitioningFlag;\n\nATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) {\n ATTRIBUTE_TYPE velocity = cur - prev;\n ATTRIBUTE_TYPE delta = dest - cur;\n ATTRIBUTE_TYPE force = delta * spring.stiffness;\n ATTRIBUTE_TYPE resistance = velocity * spring.damping;\n return force - resistance + velocity + cur;\n}\n\nvoid main(void) {\n bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON;\n vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0;\n\n vNext = getNextValue(aCur, aPrev, aTo);\n gl_Position = vec4(0, 0, 0, 1);\n gl_PointSize = 100.0;\n}\n",fs:"#version 300 es\n#define SHADER_NAME spring-transition-is-transitioning-fragment-shader\n\nin float vIsTransitioningFlag;\n\nout vec4 fragColor;\n\nvoid main(void) {\n if (vIsTransitioningFlag == 0.0) {\n discard;\n }\n fragColor = vec4(1.0);\n}",bufferLayout:[{name:"aPrev",format:l},{name:"aCur",format:l},{name:"aTo",format:s.getBufferLayout().attributes[0].format}],varyings:["vNext"],modules:[H],defines:{ATTRIBUTE_TYPE:a},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}}))}}};class Z{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=Y[n.type];
1o?this.transitions[e]=new o({attribute:t,timeline:this.timeline,device:this.device}):(u.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 q(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 X="attributeManager.invalidate";class K{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,L.A)(X,this,e,n)}invalidateAll(e){for(let t in this.attributes)this.attributes[t].setNeedsUpdate(t,e);(0,L.A)(X,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,L.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]&&u.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,L.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 q({},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=q({},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=q(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}(q({},i),{id:n,size:i.isIndexed&&1||i.size||1}),t);this.attributes[n]=new _(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,L.A)("attribute.updateStart",t),t.constant)?t.setConstantValue(e.context,t.value):(t.allocate(n)&&(0,L.A)("attribute.allocate",t,n),t.updateBuffer(e)&&(this.needsRedraw=!0,(0,L.A)("attribute.updateEnd",t,n)))}constructor(e,{id:t="attribute-manager",stats:n,timeline:i}={}){this.mergeBoundsMemoized=(0,E.A)(p._Z),this.id=t,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=n,this.attributeTransitionManager=new Z(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}},12121(e,t,n){n.d(t,{A:()=>l});var i=n(13563),r=n(26758),o=n(37142),s=n(17652);class a extends i.A{get isComposite(){return!0}get isDrawable(){return!1}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(e=>e.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(e){}setState(e){super.setState(e),this.setNeedsUpdate()}getPickingInfo(e){let{info:t}=e,{object:n}=t;return n&&n.__source&&n.__source.parent&&n.__source.parent.id===this.id&&(t.object=n.__source.object,t.index=n.__source.index),t}filterSubLayer(e){return!0}shouldRenderSubLayer(e,t){return t&&t.length}getSubLayerClass(e,t){let{_subLayerProps:n}=this.props;return n&&n[e]&&n[e].type||t}getSubLayerRow(e,t,n){return e.__source={parent:this,object:t,index:n},e}getSubLayerAccessor(e){if("function"==typeof e){let t={index:-1,data:this.props.data,target:[]};return(n,i)=>n&&n.__source?(t.index=n.__source.index,e(n.__source.object,t)):e(n,i)}return e}getSubLayerProps(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{opacity:n,pickable:i,visible:r,parameters:o,getPolygonOffset:a,highlightedObjectIndex:l,autoHighlight:c,highlightColor:p,coordinateSystem:u,coordinateOrigin:d,wrapLongitude:h,positionFormat:f,modelMatrix:g,extensions:v,fetch:m,operation:y,_subLayerProps:b}=this.props,w={id:"",updateTriggers:{},opacity:n,pickable:i,visible:r,parameters:o,getPolygonOffset:a,highlightedObjectIndex:l,autoHighlight:c,highlightColor:p,coordinateSystem:u,coordinateOrigin:d,wrapLongitude:h,positionFormat:f,modelMatrix:g,extensions:v,fetch:m,operation:y},P=b&&t.id&&b[t.id],_=P&&P.updateTriggers,x=t.id||"sublayer";if(P){let e=this.props[s.fW],n=t.type?t.type._propTypes:{};for(let t in P){let i=n[t]||e[t];i&&"accessor"===i.type&&(P[t]=this.getSubLayerAccessor(P[t]))}}for(let n of(Object.assign(w,t,P),w.id="".concat(this.props.id,"-").concat(x),w.updateTriggers=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}({all:null==(e=this.props.updateTriggers)?void 0:e.all},t.updateTriggers,_),v)){let e=n.getSubLayerProps.call(this,n);e&&Object.assign(w,e,{updateTriggers:Object.assign(w.updateTriggers,e.updateTriggers)})}return w}_updateAutoHighlight(e){for(let t of this.getSubLayers())t.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,t){let n=this.internalState.subLayers,i=!n||this.needsUpdate();if(i){let e=this.renderLayers();n=(0,o.B)(e,Boolean),this.internalState.subLayers=n}for(let e of((0,r.A)("compositeLayer.renderLayers",this,i,n),n))e.parent=this}}a.layerName="CompositeLayer";let l=a},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 p=n(17652),u=n(1918),d=n(26758),h=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])}unsubscribe(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
1),"onError"in e&&(this.context.onError=e.onError)}setLayers(e,t){(0,d.A)("layerManager.setLayers",this,t,e),this._lastRenderedLayers=e;let n=(0,h.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]?u.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&&u.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=p.VD.INITIALIZED}catch(t){this._handleError("initialization",t,e)}}_transferLayerState(e,t){t._transferState(e),t.lifecycle=p.VD.MATCHED,t!==e&&(e.lifecycle=p.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=p.VD.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=p.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,d.A)("layerManager.activateViewport",this,e),e&&(this.context.viewport=e)};let{deck:l,stats:p,viewport:u,timeline:h}=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:p||new f.A({id:"deck.gl"}),viewport:u||new y.A({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:h||new i.K,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}}var w=n(59377);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 _="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=>
1t.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,h.B)(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){e?((0,w.b)(e,this.viewState,3)||this.setNeedsUpdate("viewState changed"),this.viewState=e):u.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)||_}_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)||_;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(P({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=P({},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})(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),p=o.makeViewport({viewState:c,width:s,height:a}),u=this._getReusableController(t[o.id],n[o.id],l),d=!!o.controller;d&&!u&&(i=!0),(i||!d)&&u&&(u.finalize(),u=null),this.controllers[o.id]=this._updateController(o,c,p,u),p&&this._viewports.unshift(p)}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 S=new j.A;class C{addDefaultEffect(e){let t=this._defaultEffects;if(!t.find(t=>
1t.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,w.b)(e.effects,this.effects,1)&&this._setEffects(e.effects)}needsRedraw(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{clearRedrawFlags:!1},t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}getEffects(){return this._resolvedEffects}_setEffects(e){let t={};for(let e of this.effects)t[e.id]=e;let 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(S),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 A extends k.A{shouldDrawLayer(e){let{operation:t}=e.props;return t.includes("draw")||t.includes("terrain")}render(e){return this._render(e)}}var M=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 L(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 T{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(L(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,d.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=L(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 A(e),this.pickLayersPass=new M.A(e),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}}var I=n(38550),z=n(60691);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}))),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 R(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 F={pickedColor:null,pickedObjectIndex:-1};function B(e){let{pickedColors:t,decodePickingColor:n,deviceX:i,deviceY:r,deviceRadius:o,deviceRect:s}=e,{x:a,y:l,width:c,height:p}=s,d=o*o,h=-1,f=0;for(let e=0;e<p;e++){let n=e+l-r,o=n*n;if(o>d)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<=d&&(d=n,h=f)}f+=4}}if(h>=0){let e=t.slice(h,h+4),i=n(e);if(i){let t=Math.floor(h/4/c),n=h/4-t*c;return R(D({},i),{pickedColor:e,pickedX:a+n,pickedY:l+t})}u.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}return F}function V(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,R(D({},e),{color:r})):u.A.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(i.values())}function N(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 U(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=N(e),p=new Map;return p.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),p.set(r.id,t),"hover"===i&&r.updateAutoHighlight(t)}),p}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 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}class Y{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],p=c&&c.unproject([t-c.x,n-c.y]);return W({},o,{x:t,y:n,viewport:c,coordinate:p,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:I.g.RENDER_ATTACHMENT|I.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:I.g.RENDER_ATTACHMENT|I.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:p,canvasContext:u=this.device.getDefaultCanvasContext(),onViewportActive:d,effects:h}=e,f=u.cssToDeviceRatio(),g=this._getPickable(n);if(!g||0===r.length)return{result:[],emptyInfo:N({viewports:r,x:o,y:s,pixelRatio:f})};this._resizeBuffer(u);let v=u.cssToDevicePixels([o,s],!0),m=[v.x+Math.floor(v.width/2),v.y+Math.floor(v.height/2)],y=Math.round(a*f),{width:b,height:w}=this.pickingFBO,P=this._getPickingRect({deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceWidth:b,deviceHeight:w}),_={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(P){let e=await this._drawAndSampleAsync({layers:g,views:i,viewports:r,onViewportActive:d,deviceRect:P,cullRect:_,effects:h,pass:"picking:".concat(c),canvasContext:u});n=B(H(W({},e),{deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceRect:P}))}else n={pickedColor:null,pickedObjectIndex:-1};let v=this._getDepthLayers(n,g,p);if(v.length>0){var j,S;let{pickedColors:e}=await this._drawAndSampleAsync({layers:v,views:i,viewports:r,onViewportActive:d,deviceRect:{x:null!=(j=n.pickedX)?j:m[0],y:null!=(S=n.pickedY)?S:m[1],width:1,height:1},cullRect:_,effects:h,pass:"picking:".concat(c,":z"),canvasContext:u},!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=U({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:p,canvasContext:u=this.device.getDefaultCanvasContext(),onViewportActive:d,effects:h}=e,f=u.cssToDeviceRatio(),g=this._getPickable(n);if(!g||0===r.length)return{result:[],emptyInfo:N({viewports:r,x:o,y:s,pixelRatio:f})};this._resizeBuffer(u);let v=u.cssToDevicePixels([o,s],!0),m=[v.x+Math.floor(v.width/2),v.y+Math.floor(v.height/2)],y=Math.round(a*f),{width:b,height:w}=this.pickingFBO,P=this._getPickingRect({deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceWidth:b,deviceHeight:w}),_={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(P){let e=this._drawAndSample({layers:g,views:i,viewports:r,onViewportActive:d,deviceRect:P,cullRect:_,effects:h,pass:"picking:".concat(c),canvasContext:u});n=B(H(W({},e),{deviceX:m[0],deviceY:m[1],deviceRadius:y,deviceRect:P}))}else n={pickedColor:null,pickedObjectIndex:-1};let v=this._getDepthLayers(n,g,p);if(v.length>0){var j,S;let{pickedColors:e}=this._drawAndSample({layers:v,views:i,viewports:r,onViewportActive:d,deviceRect:{x:null!=(j=n.pickedX)?j:m[0],y:null!=(S=n.pickedY)?S:m[1],width:1,height:1},cullRect:_,effects:h,pass:"picking:".concat(c,":z"),canvasContext:u},!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=U({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:p=this.device.getDefaultCanvasContext(),onViewportActive:u,effects:d}=e,h=this._getPickable(t);if(!h||0===i.length)return[];this._resizeBuffer(p);let f=p.cssToDeviceRatio(),g=p.cssToDevicePixels([r,o],!0),v=g.x,m=g.y+g.height,y=p.cssToDevicePixels([r+s,o+a],!0),b=y.x+y.width,w=y.y,P=await this._drawAndSampleAsync({layers:h,views:n,viewports:i,onViewportActive:u,deviceRect:{x:v,y:w,width:b-v,height:m-w},cullRect:{x:r,y:o,width:s,height:a},effects:d,pass:"picking:".concat(l),canvasContext:p}),_=V(P),x=new Map,O=[],j=Number.isFinite(c);for(let e=0;e<_.length;e++){var S;if(j&&O.length>=c)break;let t=_[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!=(S=n.object)?S: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:p=this.device.getDefaultCanvasContext(),onViewportActive:u,effects:d}=e,h=this._getPickable(t);if(!h||0===i.length)return[];this._resizeBuffer(p);let f=p.cssToDeviceRatio(),g=p.cssToDevicePixels([r,o],!0),v=g.x,m=g.y+g.height,y=p.cssToDevicePixels([r+s,o+a],!0),b=y.x+y.width,w=y.y,P=this._drawAndSample({layers:h,views:n,viewports:i,onViewportActive:u,deviceRect:{x:v,y:w,width:b-v,height:m-w},cullRect:{x:r,y:o,width:s,height:a},effects:d,pass:"picking:".concat(l),canvasContext:p}),_=V(P),x=new Map,O=[],j=Number.isFinite(c);for(let e=0;e<_.length;e++){var S;if(j&&O.length>=c)break;let t=_[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!=(S=n.object)?S: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:p}=e,d=arguments.length>1&&void 0!==arguments[1]&&arguments[1],h=d?this.depthFBO:this.pickingFBO,f={layers:n,layerFilter:this.layerFilter,views:i,viewports:r,onViewportActive:o,pickingFBO:h,deviceRect:s,cullRect:a,effects:l,pass:c,canvasContext:p,pickZ:d,preRenderStats:{},isPicking:!0};for(let e of l)e.useInPicking&&(f.preRenderStats[e.id]=e.preRender(f));let{decodePickingColor:g,stats:v}=this.pickLayersPass.render(f);this._updateStats(v);let{x:m,y,width:b,height:w}=s,P=null==(t=h.colorAttachments[0])?void 0:t.texture;if(!P)throw Error("Picking framebuffer color attachment is missing");let _=await this._readTextureDataAsync(P,{x:m,y,width:b,height:w},d?Float32Array:Uint8Array);if(!d){let e=!1;for(let t=3;t<_.length;t+=4)if(0!==_[t]){e=!0;break}!e&&_.length>0&&u.A.warn("Async pick readback returned only zero alpha values",{deviceRect:s,bytes:Array.from(_.subarray(0,Math.min(_.length,16)))})()}return{pickedColors:_,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:z.h.COPY_DST|z.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),p=4*i,u=o.bytesPerRow/l;if(u<p)throw Error("Texture readback row stride ".concat(u," is smaller than packed row length ").concat(p,"."));let d=new n(i*r*4);for(let e=0;e<r;e++){let t=e*u;d.set(c.subarray(t,t+p),e*p)}return d}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,p=arguments.length>1&&void 0!==arguments[1]&&arguments[1],u=p?this.depthFBO:this.pickingFBO,d={layers:t,layerFilter:this.layerFilter,views:n,viewports:i,onViewportActive:r,pickingFBO:u,deviceRect:o,cullRect:s,effects:a,pass:l,canvasContext:c,pickZ:p,preRenderStats:{},isPicking:!0};for(let e of a)e.useInPicking&&(d.preRenderStats[e.id]=e.preRender(d));let{decodePickingColor:h,stats:f}=this.pickLayersPass.render(d);this._updateStats(f);let{x:g,y:v,width:m,height:y}
1=o,b=new(p?Float32Array:Uint8Array)(m*y*4);return this.device.readPixelsToArrayWebGL(u,{sourceX:g,sourceY:v,sourceWidth:m,sourceHeight:y,target:b}),{pickedColors:b,decodePickingColor:h}}_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 M.A(e),this.lastPickedInfo={index:-1,layerId:null,info:null}}}var Z=n(48895);let q={"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}},X="root";class K{getWidgets(){return this.resolvedWidgets}setProps(e){if(e.widgets&&!(0,w.b)(e.widgets,this.widgets,1)){let t=e.widgets.filter(Boolean);this._setWidgets(t)}}finalize(){for(let e of this.getWidgets())this._removeWidget(e);for(let e in this.defaultWidgets.length=0,this.resolvedWidgets.length=0,this.containers)this.containers[e].remove()}addDefault(e){this.defaultWidgets.find(t=>t.id===e.id)||(this._addWidget(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}onRedraw(e){let{viewports:t,layers: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(),p=null==(i=this.parentElement)?void 0:i.getBoundingClientRect(),u=null==(o=this.deck)||null==(r=o.getCanvasContext)?void 0:r.call(o,null==e?void 0:e.id);if(u&&p){u.updatePosition();let[e,t]=u.getPosition(),[n,i]=u.getCSSSize();return{x:e-p.left,y:t-p.top,width:n,height:i}}return{x:c&&p?c.left-p.left:0,y:c&&p?c.top-p.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=Z.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||X,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,q[t]),i.append(o)),o}
1_updateContainers(){for(let e in this.containers){let t=this.lastViewports[e]||null,n=e===X||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 Q={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"};class $ extends J.x{onCreateRootElement(){let e=document.createElement("div");return e.className=this.className,Object.assign(e.style,Q),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)}}$.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]||_]||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;u.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:u.A,_registerLoggers:d.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),ep=n(39171);function eu(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 ed(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 eh(){}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:eh,onWebGLInitialized:eh,onResize:eh,onViewStateChange:eh,onInteractionStateChange:eh,onBeforeRender:eh,onAfterRender:eh,onLoad:eh,onError:e=>u.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&&u.A.removed("onLayerHover","onHover")(),"onLayerClick"in e&&u.A.removed("onLayerClick","onClick")(),e.initialViewState&&!(0,w.b)(this.props.initialViewState,e.initialViewState,3)&&(this.viewState=e.initialViewState),(0,ee.A)(!("_canvases"in e)||Array.isArray(e._canvases)===this._isMultiCanvasMode()),Object.assign(this.props,e),this._validateCanvasConfiguration(this.props),this._validateInternalPickingMode(),this.device&&this._isMultiCanvasMode()&&this._syncCanvasTargets(),this._setCanvasSize(this.props);let a=Object.create(this.props);if(Object.assign(a,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState(),eventManagers:this.eventManagers}),e.device&&e.device.id!==(null==(t=this.device)?void 0:t.id)){let t=e.device.getDefaultCanvasContext();null==(r=this.animationLoop)||r.stop(),this._isMultiCanvasMode()||this.canvas===t.canvas||(null==(o=this.canvas)||o.remove(),null==(s=this.eventManager)||s.destroy(),this.canvas=null),this._setDeviceCanvasContext(e.device),u.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)||_;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 eu({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=Z.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](ed(eu({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(ed(eu({},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](ed(eu({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(ed(eu({},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]||_}_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 ep.EU(e,{touchAction:this.props.touchAction,recognizers:Object.keys(Z.We).map(e=>{var t;let[n,i,r,o]=Z.We[e];return{recognizer:new n(ed(eu({},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 Z.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=eh),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=eu({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(ed(eu({_reuseDevices:!0,type:"webgl"},r),{createCanvasContext:ed(eu({},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={[_]: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 C({deck:this,device:this.device}),this.deckRenderer=new T(this.device,{stats:this.stats}),this.deckPicker=new Y(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 K({deck:this,parentElement:a}),this.widgetManager.addDefault(new $),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=eu({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(ed(eu({},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(ed(eu({},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(),u.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=ed(eu({},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=Z.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=eu({},ef,e),e=this.props,this._validateCanvasConfiguration(e),e.viewState&&e.initialViewState&&u.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&&u.A.error("WebGL1 context not supported.")(),n=el.l.attach(e.gl,eu({_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 p(e,t,n,i,r){let o=t-e;return(n-t)*r+-o*i+o+t}function u(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 d 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]=p(e[s],t[s],n[s],i,r);return o}return p(e,t,n,i,r)}(r,o,t,n,i),a=u(s,t),l=u(s,o);a<1e-5&&l<1e-5&&(s=t,this.end()),this._prevValue=o,this._currValue=s}}var h=n(1918);let f={interpolation:c,spring:d};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 h.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),w=n(97252);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 _(e,t){if(!t)return e;let n=P({},e,t);if("defines"in t&&(n.defines=P({},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=P({},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),S=n(70008),C=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 A={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},M={};var E=n(59377);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}let T={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||z(e)&&(3===e.length||4===e.length),equal:(e,t,n)=>(0,E.b)(e,t,1)},accessor:{validate(e,t){let n=D(e);return"function"===n||n===D(t.value)},equal:(e,t,n)=>"function"==typeof t||(0,E.b)(e,t,1)},array:{validate:(e,t)=>t.optional&&!e||z(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 C.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({},A,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),M[c.id]=e,c}(n.id,i.device,e,L({},t.parameters,n.props.textureParameters)):null},release:(e,t,n)=>{var i;i=n.id,e&&e instanceof C.g&&M[e.id]===i&&(e.delete(),delete M[e.id])}}};function I(e,t){return"type"in t?L({name:e},T[t.type],t):"value"in t?L({name:e,type:D(t.value)},t):{name:e,type:"object",value:t}}function z(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function D(e){return z(e)?"array":null===e?"null":typeof e}function R(e,t){return Object.prototype.hasOwnProperty.call(e,t)}let F=0;class B{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 V.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=R(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(D(t)){case"object":return I(e,t);case"array":return I(e,{type:"array",value:t,compare:!1});case"boolean":return I(e,{type:"boolean",value:t});case"number":return I(e,{type:"number",value:t});case"function":return I(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 R(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)||h.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,S.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])R(this,i)||(this[i]=e);h.A.deprecated(i,t[n].join("/"))()}})}(a,c),a[m.fW]=l,a[m.uH]=c,0!==n.length||R(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=F++}}B.componentName="Component",B.defaultProps={};let V=B,N=Object.freeze({});class U{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||N}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,S.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 U{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),H=n(2043);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}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 q=Object.freeze([]),X=(0,w.A)(e=>{let{oldViewport:t,viewport:n}=e;return t.equals(n)}),K=new Uint8ClampedArray(0);function J(e){return e.rowIndexes||e.pickingColors||e.instancePickingColors}function Q(e){return e.rowIndexes}function $(e){return e.pickingColors||e.instancePickingColors}class ee extends V{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,Y({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=_(e,{disableWarnings:!0,modules:this.context.defaultShaderModules}),this.props.extensions))e=_(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=Q(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&&X({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(K.length/4);this.internalState.usesPickingColorCache=!0;let r=n>0&&0===K[0];if(i<n||r){n>0xffffff&&h.A.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")();let e=Math.floor((K=O.A.allocate(K,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),K[4*n+0]=t[0],K[4*n+1]=t[1],K[4*n+2]=t[2],K[4*n+3]=0}e.value=K.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=Y({},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=Q(n),r=$(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=Q(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=$(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=$(e);this.internalState.usesPickingColorCache&&n&&n.value.buffer!==K.buffer&&(n.value=K.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:()=>(h.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(Y({},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:q,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=Z(Y({},o),{core:Z(Y({},null==o?void 0:o.core),{fetch:Z(Y({},null==o||null==(l=o.core)?void 0:l.fetch),{signal:s})})})}let c=a.contains(e);return(c||o||(a.add({resourceId:e,data:(0,H.H)(e,r),persistent:!1}),c=!0),c)?a.subscribe({resourceId:e,onChange:e=>{var t;return null==(t=i.internalState)?void 0:t.reloadAsyncProp(n,e)},consumerId:i.id,requestId:n}):(0,H.H)(e,r,o)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:"draw",onHover:{type:"function",value:null,optional:!0},onClick:{type:"function",value:null,optional:!0},onDragStart:{type:"function",value:null,optional:!0},onDrag:{type:"function",value:null,optional:!0},onDragEnd:{type:"function",value:null,optional:!0},coordinateSystem:"default",coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:2},loadOptions:{type:"object",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:"function",value:e=>{let{layerIndex:t}=e;return[0,-(100*t)]}},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}},ee.layerName="Layer";let et=ee},64244(e,t,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,p=null!=(i=e.clearColor)?i:!!c&&[0,0,0,0],u=!!c&&1,d=!!c&&0,h=null!=(r=e.colorMask)?r:15,f={viewport:[0,0,a,l]};e.colorMask&&(f.colorMask=h),e.scissorRect&&(f.scissorRect=e.scissorRect);let{shaderModuleProps:g,viewports:v,views:m,onViewportActive:y,clearStack:b=!0}=e,w=e.pass||"unknown",P="webgpu"===this.device.type;b&&(this._lastRenderIndex=-1);let _=[];if(!v.length)return this.device.beginRenderPass({framebuffer:s,parameters:f,clearColor:p,clearDepth:u,clearStencil:d}).end(),this.device.submit(),_;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 P?r.map(e=>[e]):[r]){let r=this.device.beginRenderPass({framebuffer:s,parameters:f,clearColor:p,clearDepth:u,clearStencil:d});try{for(let a of t){let t=this._drawLayersInViewport(r,{target:s,canvasContext:o,shaderModuleProps:g,viewport:
1a,view:i,pass:w,layers:e.layers,isPicking:e.isPicking},n);_.push(t)}}finally{r.end(),P&&this.device.submit()}p=!1,u=!1,d=!1}}return _}finally{P||this.device.submit()}}_getDrawLayerParams(e,t){let{layers:n,pass:i,isPicking:o=!1,layerFilter:s,cullRect:a,views:l,effects:c,canvasContext:p=this.device.canvasContext,shaderModuleProps:u}=t,d=arguments.length>2&&void 0!==arguments[2]&&arguments[2],h=[],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,p=o.parent&&o.parent.id;if(!p||p in n||r(o.parent,!1),p in i){let t=i[p]=i[p]||e(n[p],n);a=t(o,s),i[c]=t}else Number.isFinite(l)?(a=l+(n[p]||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&&!d){var m,y;b.shouldDrawLayer=!0,b.layerRenderIndex=f(o,a),b.shaderModuleProps=this._getShaderModuleProps(o,c,i,p,u),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))}h[t]=b}return h}_drawLayersInViewport(e,t,n){let{layers:i,shaderModuleProps:r,pass:o,target:s,canvasContext:a,viewport:l,view:c,isPicking:p}=t,u=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(),p=s?s.height:c;return[a.x*l,p-(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)&&!p?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:u,scissorRect:u},clearColor:e,clearDepth:r,clearStencil:o}).end()}}let d={totalCount:i.length,visibleCount:0,compositeCount:0,pickableCount:0};e.setParameters({viewport:u});for(let t=0;t<i.length;t++){let r=i[t],s=n[t],{shouldDrawLayer:a}=s;if(a&&r.props.pickable&&d.pickableCount++,r.isComposite&&d.compositeCount++,r.isDrawable&&s.shouldDrawLayer){let{layerRenderIndex:t,shaderModuleProps:n,layerParameters:i}=s;d.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 d}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,p={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(p,null==(a=n.getShaderModuleProps)?void 0:a.call(n,e,p));for(let t of e.context.defaultShaderModules)t.name in p||(p[t.name]={});
1return s(p,this.getShaderModuleProps(e,t,p),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:p,height:u},cullRect:d,effects:h,pass:f="picking",pickZ:g,canvasContext:v,shaderModuleProps:m,clearColor:y}=e;this.pickZ=g;let b=this._resetColorEncoder(g),w=super._render({target:s,layers:t,layerFilter:n,views:i,viewports:r,onViewportActive:o,cullRect:d,effects:null==h?void 0:h.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,p,u]});return this._colorEncoderState=null,{decodePickingColor:b&&l.bind(null,b),stats:w}}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:()=>h,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 p(e,t){return[e[t]||0,e[t+1]||0,e[t+2]||0,e[t+3]||0]}let u="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"),d="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"),h=s(o({},i.q),{vs:"".concat(c(i.q.vs),"\n").concat(u),fs:c(i.q.fs),source:d,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=p(r,0),n.disabledPickingIndices1=p(r,4),n.disabledPickingIndices2=p(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:()=>u,w:()=>p});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 p(e,t){let{viewport:n,modelMatrix:i,coordinateSystem:r,coordinateOrigin:s,offsetMode:l}=t,[u,d,h=0]=e;switch(i&&([u,d,h]=o.Z0([],[u,d,h,1],i)),r){case"default":return p(e,{viewport:n,modelMatrix:i,coordinateSystem:n.isGeospatial?"lnglat":"cartesian",coordinateOrigin:s,offsetMode:l});case"lnglat":return c([u,d,h],n,l);case"lnglat-offsets":return c([u+s[0],d+s[1],h+(s[2]||0)],n,l);case"meter-offsets":return c((0,a.dT)(s,[u,d,h]),n,l);case"cartesian":return n.isGeospatial?[u+s[0],d+s[1],h+s[2]]:n.projectPosition([u,d,h]);default:throw Error("Invalid coordinateSystem: ".concat(r))}}function u(e,t){let{viewport:n,coordinateSystem:r,coordinateOrigin:o,modelMatrix:a,fromCoordinateSystem:c,fromCoordinateOrigin:u}=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:d=!0}=t,{geospatialOrigin:h=l,shaderCoordinateOrigin:f=l,offsetMode:g=!1}=d?(0,i.ow)(n,r,o):{},v=p(e,{viewport:n,modelMatrix:a,coordinateSystem:c,coordinateOrigin:u,offsetMode:g});if(g){let e=n.projectPosition(h||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(""),p="".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"),u=["default","lnglat","meter-offsets","lnglat-offsets","cartesian"].map(e=>"const int COORDINATE_SYSTEM_".concat(e.toUpperCase().replaceAll("-","_")," = ").concat((0,o.LB)(e),";")).join(""),d=Object.keys(s.Kx).map(e=>"const int PROJECTION_MODE_".concat(e," = ").concat(s.Kx[e],";")).join(""),h=Object.keys(s.p5).map(e=>"const int UNIT_".concat(e.toUpperCase()," = ").concat(s.p5[e],";")).join(""),f="".concat(u,"\n").concat(d,"\n").concat(h,"\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(p,'\n\n// -----------------------------------------------------------------------------\n// Functions\n// -----------------------------------------------------------------------------\n\n// Returns an adjustment factor for commonUnitsPerMeter\nfn _project_size_at_latitude(lat: f32) -> f32 {\n let y = clamp(lat, -89.9, 89.9);\n return 1.0 / cos(radians(y));\n}\n\n// Overloaded version: scales a value in meters at a given latitude.\nfn _project_size_at_latitude_m(meters: f32, lat: f32) -> f32 {\n return meters * project.commonUnitsPerMeter.z * _project_size_at_latitude(lat);\n}\n\n// Computes a non-linear scale factor based on geometry.\n// (Note: This function relies on "geometry" being provided.)\nfn project_size() -> f32 {\n if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR &&\n project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT &&\n project.pseudoMeters == 0) {\n if (geometry.position.w == 0.0) {\n return _project_size_at_latitude(geometry.worldPosition.y);\n }\n let y: f32 = geometry.position.y / TILE_SIZE * 2.0 - 1.0;\n let y2 = y * y;\n let y4 = y2 * y2;\n let y6 = y4 * y2;\n return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6;\n }\n return 1.0;\n}\n\n// Overloads to scale offsets (meters to world units)\nfn project_size_float(meters: f32) -> f32 {\n return meters * project.commonUnitsPerMeter.z * project_size();\n}\n\nfn project_size_vec2(meters: vec2<f32>) -> vec2<f32> {\n return meters * project.commonUnitsPerMeter.xy * project_size();\n}\n\nfn project_size_vec3(meters: vec3<f32>) -> vec3<f32> {\n return meters * project.commonUnitsPerMeter * project_size();\n}\n\nfn project_size_vec4(meters: vec4<f32>) -> vec4<f32> {\n return vec4<f32>(meters.xyz * project.commonUnitsPerMeter, meters.w);\n}\n\n// Returns a rotation matrix aligning the z\u2011axis with the given up vector.\nfn project_get_orientation_matrix(up: vec3<f32>) -> mat3x3<f32> {\n let uz = normalize(up);\n let ux = select(\n vec3<f32>
1(1.0, 0.0, 0.0),\n normalize(vec3<f32>(uz.y, -uz.x, 0.0)),\n abs(uz.z) == 1.0\n );\n let uy = cross(uz, ux);\n return mat3x3<f32>(ux, uy, uz);\n}\n\n// Since WGSL does not support "out" parameters, we return a struct.\nstruct RotationResult {\n needsRotation: bool,\n transform: mat3x3<f32>,\n};\n\nfn project_needs_rotation(commonPosition: vec3<f32>) -> RotationResult {\n if (project.projectionMode == PROJECTION_MODE_GLOBE) {\n return RotationResult(true, project_get_orientation_matrix(commonPosition));\n } else {\n return RotationResult(false, mat3x3<f32>()); // identity alternative if needed\n };\n}\n\n// Projects a normal vector from the current coordinate system to world space.\nfn project_normal(vector: vec3<f32>) -> vec3<f32> {\n let normal_modelspace = project.modelMatrix * vec4<f32>(vector, 0.0);\n var n = normalize(normal_modelspace.xyz * project.commonUnitsPerMeter);\n let rotResult = project_needs_rotation(geometry.position.xyz);\n if (rotResult.needsRotation) {\n n = rotResult.transform * n;\n }\n return n;\n}\n\n// Applies a scale offset based on y-offset (dy)\nfn project_offset_(offset: vec4<f32>) -> vec4<f32> {\n let dy: f32 = offset.y;\n let commonUnitsPerWorldUnit = project.commonUnitsPerWorldUnit + project.commonUnitsPerWorldUnit2 * dy;\n return vec4<f32>(offset.xyz * commonUnitsPerWorldUnit, offset.w);\n}\n\n// Projects lng/lat coordinates to a unit tile [0,1]\nfn project_mercator_(lnglat: vec2<f32>) -> vec2<f32> {\n var x = lnglat.x;\n if (project.wrapLongitude != 0) {\n x = ((x + 180.0) % 360.0) - 180.0;\n }\n let y = clamp(lnglat.y, -89.9, 89.9);\n return vec2<f32>(\n radians(x) + PI,\n PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// Projects lng/lat/z coordinates for a globe projection.\nfn project_globe_(lnglatz: vec3<f32>) -> vec3<f32> {\n let lambda = radians(lnglatz.x);\n let phi = radians(lnglatz.y);\n let cosPhi = cos(phi);\n let D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS;\n return vec3<f32>(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\n\n// Projects positions (with an optional 64-bit low part) from the input\n// coordinate system to the common space.\nfn project_position_vec4_f64(position: vec4<f32>, position64Low: vec3<f32>) -> vec4<f32> {\n var position_world = project.modelMatrix * position;\n\n // Work around for a Mac+NVIDIA bug:\n if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR) {\n if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4<f32>(\n project_mercator_(position_world.xy),\n _project_size_at_latitude_m(position_world.z, position_world.y),\n position_world.w\n );\n }\n if (project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {\n position_world = vec4f(position_world.xyz + project.coordinateOrigin, position_world.w);\n }\n }\n if (project.projectionMode == PROJECTION_MODE_GLOBE) {\n if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n return vec4<f32>(\n project_globe_(position_world.xyz),\n position_world.w\n );\n }\n if (project.coordinateSystem == COORDINATE_SYSTEM_METER_OFFSETS) {\n let enuMatrix = project_get_orientation_matrix(project.commonOrigin);\n let metersToCommon = GLOBE_RADIUS / EARTH_RADIUS;\n let offsetCommon = (enuMatrix * vec3<f32>(-position_world.x, -position_world.y, position_world.z)) * metersToCommon;\n return vec4<f32>(project.commonOrigin + offsetCommon, position_world.w);\n }\n }\n if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {\n if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) {\n if (abs(position_world.y - project.coordinateOrigin.y) > 0.25) {\n return vec4<f32>(\n project_mercator_(position_world.xy) - project.commonOrigin.xy,\n project_size_float(position_world.z),\n position_world.w\n );\n }\n }\n }\n if (project.projectionMode == PROJECTION_MODE_IDENTITY ||\n (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET &&\n (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) {\n position_world = vec4f(position_world.xyz - project.coordinateOrigin, position_world.w);\n }\n\n return project_offset_(position_world) +\n project_offset_(project.modelMatrix * vec4<f32>(position64Low, 0.0));\n}\n\n// Overloaded versions for different input types.\nfn project_position_vec4_f32(position: vec4<f32>) -> vec4<f32> {\n return project_position_vec4_f64(position, ZERO_64_LOW);\n}\n\nfn project_position_vec3_f64(position: vec3<f32>, position64Low: vec3<f32>) -> vec3<f32> {\n let projected_position = project_position_vec4_f64(vec4<f32>
1(position, 1.0), position64Low);\n return projected_position.xyz;\n}\n\nfn project_position_vec3_f32(position: vec3<f32>) -> vec3<f32> {\n let projected_position = project_position_vec4_f64(vec4<f32>(position, 1.0), ZERO_64_LOW);\n return projected_position.xyz;\n}\n\nfn project_position_vec2_f32(position: vec2<f32>) -> vec2<f32> {\n let projected_position = project_position_vec4_f64(vec4<f32>(position, 0.0, 1.0), ZERO_64_LOW);\n return projected_position.xy;\n}\n\n// Transforms a common space position to clip space.\nfn project_common_position_to_clipspace_with_projection(position: vec4<f32>, viewProjectionMatrix: mat4x4<f32>, center: vec4<f32>) -> vec4<f32> {\n var clipPosition = viewProjectionMatrix * position + center;\n // deck.gl projection matrices use WebGL\'s [-w, w] depth range; WebGPU clips z to [0, w].\n clipPosition.z = (clipPosition.z + clipPosition.w) * 0.5;\n return clipPosition;\n}\n\n// Uses the project viewProjectionMatrix and center.\nfn project_common_position_to_clipspace(position: vec4<f32>) -> vec4<f32> {\n return project_common_position_to_clipspace_with_projection(position, project.viewProjectionMatrix, project.center);\n}\n\n// Returns a clip space offset corresponding to a given number of screen pixels.\nfn project_pixel_size_to_clipspace(pixels: vec2<f32>) -> vec2<f32> {\n let offset = pixels / project.viewportSize * project.devicePixelRatio * 2.0;\n return offset * project.focalDistance;\n}\n\nfn project_meter_size_to_pixel(meters: f32) -> f32 {\n return project_size_float(meters) * project.scale;\n}\n\nfn project_unit_size_to_pixel(size: f32, unit: i32) -> f32 {\n if (unit == UNIT_METERS) {\n return project_meter_size_to_pixel(size);\n } else if (unit == UNIT_COMMON) {\n return size * project.scale;\n }\n // UNIT_PIXELS: no scaling applied.\n return size;\n}\n\nfn project_pixel_size_float(pixels: f32) -> f32 {\n return pixels / project.scale;\n}\n\nfn project_pixel_size_vec2(pixels: vec2<f32>) -> vec2<f32> {\n return pixels / project.scale;\n}\n'),vs:f,getUniforms:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return"viewport"in e?(0,o.aY)(e):{}},uniformTypes:{wrapLongitude:"f32",coordinateSystem:"i32",commonUnitsPerMeter:"vec3<f32>",projectionMode:"i32",scale:"f32",commonUnitsPerWorldUnit:"vec3<f32>",commonUnitsPerWorldUnit2:"vec3<f32>",center:"vec4<f32>",modelMatrix:"mat4x4<f32>",viewProjectionMatrix:"mat4x4<f32>",viewportSize:"vec2<f32>",devicePixelRatio:"f32",focalDistance:"f32",cameraPosition:"vec3<f32>",coordinateOrigin:"vec3<f32>",commonOrigin:"vec3<f32>",pseudoMeters:"f32"}}},72823(e,t,n){n.d(t,{LB:()=>h,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],p=[0,0,0],u=[0,0,0],d={default:-1,cartesian:0,lnglat:1,"meter-offsets":2,"lnglat-offsets":3};function h(e){let t=d[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:u}=e,{projectionCenter:d,viewProjectionMatrix:f,originCommon:v,cameraPosCommon:m,shaderCoordinateOrigin:y,geospatialOrigin:b}=function(e,t,n){let{viewMatrixUncentered:o,projectionMatrix:s}=e,{viewMatrix:c,viewProjectionMatrix:p}=e,u=a,d=a,h=e.cameraPosition,{geospatialOrigin:f,shaderCoordinateOrigin:v,offsetMode:m}=g(e,t,n);return m&&(d=e.projectPosition(f||v),h=[h[0]-d[0],h[1]-d[1],h[2]-d[2]],d[3]=1,u=i.Z0([],d,p),c=o||c,p=r.lw([],s,c),p=r.lw([],p,l)),{viewMatrix:c,viewProjectionMatrix:p,projectionCenter:u,originCommon:d,cameraPosCommon:h,shaderCoordinateOrigin:v,geospatialOrigin:f}}(t,s,u),w=t.getDistanceScales(),P=[t.width*n,t.height*n],_=i.Z0([],[0,0,-t.focalDistance,1],t.projectionMatrix)[3]||1,x={coordinateSystem:h(s),projectionMode:t.projectionMode,coordinateOrigin:y,commonOrigin:v.slice(0,3),center:d,pseudoMeters:!!t._pseudoMeters,viewportSize:P,devicePixelRatio:n,focalDistance:_,commonUnitsPerMeter:w.unitsPerMeter,commonUnitsPerWorldUnit:w.unitsPerMeter,commonUnitsPerWorldUnit2:p,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=u[0]*Math.PI/180,t=u[1]*Math.PI/180,n=Math.cos(t),i=((u[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]:u;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=u,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"}},96376(e,t,n){n.d(t,{A:()=>l});var i=n(71126),r=n(26489),o=n(62365);let s={bearing:0,pitch:0,position:[0,0,0]},a={speed:1.2,curve:1.414};class l extends i.A{interpolateProps(e,t,n){let i=(0,o.r)(e,t,n,this.opts);for(let o in s)i[o]=(0,r.Cc)(e[o]||s[o],t[o]||s[o],n);return i}getDuration(e,t){let{transitionDuration:n}=t;return"auto"===n&&(n=(0,o.v)(e,t,this.opts)),n}constructor(e={}){super({compare:["longitude","latitude","zoom","bearing","pitch","position"],extract:["width","height","longitude","latitude","zoom","bearing","pitch","position"],required:["width","height","latitude","longitude","zoom"]}),this.opts=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}({},a,e)}}},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}
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}({},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,p=Math.floor((e.length-c)/l);return(t,i)=>{let r,{index:a,target:u}=i;if(!o){let t=a*l+c;for(let i=0;i<n;i++)u[i]=e[t+i];return u}let d=o[a],h=o[a+1]||p;if(s){r=Array(h-d);for(let t=d;t<h;t++){let i=t*l+c;u=Array(n);for(let t=0;t<n;t++)u[t]=e[i+t];r[t-d]=u}}else if(l===n)r=e.subarray(d*n+c,h*n+c);else{r=new e.constructor((h-d)*n);let t=0;for(let i=d;i<h;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:()=>h,om:()=>c,on:()=>p,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 p(e){return{left:d(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:d(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:d(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:d(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:d(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:d(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}let u=new o.P;function d(e,t,n,i){u.set(e,t,n);let r=u.len();return{distance:i/r,normal:new o.P(-e/r,-t/r,-n/r)}}function h(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"}},47958(e,t,n){n.d(t,{A:()=>a});var i=n(70008),r=n(17390),o=n(22708),s=n(60691);class a{updateGeometry(e){Object.assign(this.opts,e);let{data:t,buffers:n={},getGeometry:i,geometryBuffer:r,positionFormat:s,dataChanged:a,normalize:l=!0}=this.opts;if(this.data=t,this.getGeometry=i,this.positionSize=r&&r.size||("XY"===s?2:3),this.buffers=n,this.normalize=l,r&&((0,o.A)(t.startIndices),this.getGeometry=this.getGeometryFromBuffer(r),l||(n.vertexPositions=r)),this.geometryBuffer=n.vertexPositions,Array.isArray(a))for(let e of a)this._rebuildGeometry(e);else this._rebuildGeometry()}updatePartialGeometry(e){let{startRow:t,endRow:n}=e;this._rebuildGeometry({startRow:t,endRow:n})}getGeometryFromBuffer(e){let t=e.value||e;return ArrayBuffer.isView(t)?(0,i.I)(t,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices}):null}_allocate(e,t){let{attributes:n,buffers:i,_attributeDefs:r,typedArrayManager:o}=this;for(let s in r)if(s in i)o.release(n[s]),n[s]=null;else{let i=r[s];i.copy=t,n[s]=o.allocate(n[s],e,i)}}_forEachGeometry(e,t,n){let{data:r,getGeometry:o}=this,{iterable:s,objectInfo:a}=(0,i.X)(r,t,n);for(let t of s)a.index++,e(o?o(t,a):null,a.index)}_rebuildGeometry(e){if(!this.data)return;let{indexStarts:t,vertexStarts:n,instanceCount:i}=this,{data:r,geometryBuffer:o}=this,{startRow:a=0,endRow:l=1/0}=e||{},c={};
1if(e||(t=[0],n=[0]),this.normalize||!o)this._forEachGeometry((e,t)=>{let i=e&&this.normalizeGeometry(e);c[t]=i,n[t+1]=n[t]+(i?this.getGeometrySize(i):0)},a,l),i=n[n.length-1];else if(i=(n=r.startIndices)[r.length]||0,ArrayBuffer.isView(o))i=i||o.length/this.positionSize;else if(o instanceof s.h){let e=4*this.positionSize;i=i||o.byteLength/e}else if(o.buffer){let e=o.stride||4*this.positionSize;i=i||o.buffer.byteLength/e}else if(o.value){let e=o.value,t=o.stride/e.BYTES_PER_ELEMENT||this.positionSize;i=i||e.length/t}this._allocate(i,!!e),this.indexStarts=t,this.vertexStarts=n,this.instanceCount=i;let p={};this._forEachGeometry((e,r)=>{let o=c[r]||e;p.vertexStart=n[r],p.indexStart=t[r],p.geometrySize=(r<n.length-1?n[r+1]:i)-n[r],p.geometryIndex=r,this.updateGeometryAttributes(o,p)},a,l),this.vertexCount=t[t.length-1]}constructor(e){this.indexStarts=[0],this.vertexStarts=[0],this.vertexCount=0,this.instanceCount=0;let{attributes:t={}}=e;this.typedArrayManager=r.A,this.attributes={},this._attributeDefs=t,this.opts=e,this.updateGeometry(e)}}},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,p=t*i+o;if(ArrayBuffer.isView(e)){if(p<=e.length)return e;if(p*e.BYTES_PER_ELEMENT<=e.buffer.byteLength)return new c(e.buffer,0,p)}let u=1/0;l&&(u=l*i+o);let d=this._allocate(c,p,a,u);return e&&s?d.set(e):a||d.fill(0,0,4),this._release(e),d}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)}}},68806(e,t,n){n.d(t,{Ay:()=>g,bl:()=>v,rf:()=>d});var i=n(49527),r=n(6706),o=n(74646),s=n(86083),a=n(39026),l=n(48895),c=n(79036);let p=Math.PI/180,u=180/Math.PI,d=256;function h(e){return 1>Math.abs((0,c.zi)(e+180,360)-180)}class f extends a.A{get projectionMode(){return l.Kx.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={targetZ:e.z||0},n=this.unproject([0,this.height/2],t),i=this.unproject([this.width/2,0],t),r=this.unproject([this.width,this.height/2],t),o=this.unproject([this.width/2,this.height],t);return r[0]<this.longitude&&(r[0]+=360),n[0]>this.longitude&&(n[0]-=360),[Math.min(n[0],r[0],i[0],o[0]),Math.min(n[1],r[1],i[1],o[1]),Math.max(n[0],r[0],i[0],o[0]),Math.max(n[1],r[1],i[1],o[1])]}_getRayToGlobe(e){let{topLeft:t=!0,targetZ:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[r,o]=e,s=t?o:this.height-o,{pixelUnprojectionMatrix:a}=this,l=m(a,[r,s,-1,1]),c=m(a,[r,s,1,1]),p=i.uE(i.jb([],l,c)),u=i.uE(l),h=i.uE(c),f=(4*u*h-(p-u-h)**2)/16*4/p;return{rayStartPosition:l,rayEndPosition:c,radius:((n||0)/6370972+1)*d,rayLengthSquared:p,rayStartDistanceSquared:u,distanceToCenterSquared:f}}_getRayDistanceToGlobeCenterRatio(e,t){let{distanceToCenterSquared:n,radius:i}=this._getRayToGlobe(e,t);return Math.sqrt(Math.max(0,n))/i}getZoomAnchorStrength(e){let t=this._getRayDistanceToGlobeCenterRatio(e);if(t>=1.15)return 0;let n=Math.max(0,Math.min(1,(t-.75)/.3999999999999999));return 1-n*n*(3-2*n)}unproject(e){let t,{topLeft:n=!0,targetZ:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[o,s,a]=e,l=n?s:this.height-s,{pixelUnprojectionMatrix:c}=this;if(Number.isFinite(a))t=m(c,[o,l,a,1]);else{let{rayStartPosition:o,rayEndPosition:s,radius:a,rayLengthSquared:l,rayStartDistanceSquared:c,distanceToCenterSquared:p}=this._getRayToGlobe(e,{topLeft:n,targetZ:r}),u=(Math.sqrt(c-p)-Math.sqrt(Math.max(0,a*a-p)))/Math.sqrt(l);t=i.Cc([],o,s,u)}let[p,u,d]=this.unprojectPosition(t);return Number.isFinite(a)?[p,u,d]:Number.isFinite(r)?[p,u,r]:[p,u]}projectPosition(e){let[t,n,i=0]=e,r=t*p,o=n*p,s=Math.cos(o),a=(i/6370972+1)*d;return[Math.sin(r)*s*a,-Math.cos(r)*s*a,Math.sin(o)*a]}unprojectPosition(e){let[t,n,r]=e,o=i.Il(e);return[Math.atan2(t,-n)*u,Math.asin(r/o)*u,(o/d-1)*6370972]}projectFlat(e){return e}unprojectFlat(e){return e}panByPosition(e,t,n){if(!n){let n=this.getZoomAnchorStrength(t);if(0===n)return{longitude:this.longitude,latitude:this.latitude};let i=this.unproject(t),r=(0,c.zi)(e[0]-i[0]+180,360)-180,o=e[1]-i[1],a=Math.abs(i[1])>s.aH||Math.abs(r)>90;return h(this.bearing)&&a?{longitude:this.longitude,latitude:this.latitude}:(h(this.bearing)&&0!==o&&(n=Math.min(n,Math.max(0,((o>0?s.aH:-s.aH)-this.latitude)/o))),{longitude:this.longitude+r*n,latitude:Math.max(Math.min(this.latitude+o*n,90),-90)})}let[i,r,o]=e,a=.25/Math.pow(2,this.zoom-v(this.latitude)),l=i+a*(n[0]-t[0]),p=r-a*(n[1]-t[1]),u={longitude:l,latitude:p=Math.max(Math.min(p,90),-90),zoom:o-v(r)};return u.zoom+=v(u.latitude),u}constructor(e={}){var t,n,i,o;let a,l,{longitude:c=0,bearing:u=0,pitch:h=0,zoom:f=0,nearZMultiplier:g=.5,farZMultiplier:m=1,resolution:y=10}=e,{latitude:b=0,height:w,altitude:P=1.5,fovy:_}=e;b=Math.max(Math.min(b,90),-90),w=w||1,_?P=(0,s.wZ)(_):_=(0,s.Os)(P);let x=Math.pow(2,f-v(Math.max(Math.min(b,s.aH),-s.aH))),O=h*p,j=null!=(t=e.nearZ)?t:g,S=null!=(n=e.farZ)?n:(P+2*d*x/w/Math.max(Math.cos(O),.1))*m,C=new r.k().lookAt({eye:[0,-P,0],up:[0,0,1]}).rotateX(-O).rotateY(-u*p).rotateX(b*p).rotateZ(-c*p).scale(x/w);super((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),o=o={height:w,viewMatrix:C,longitude:c,latitude:b,zoom:f,distanceScales:{unitsPerMeter:[a=d/6370972,a,a],unitsPerMeter2:[
10,0,0],metersPerUnit:[1/a,1/a,1/a],unitsPerDegree:[l=Math.PI/180*d,l,a],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/l,1/l,1/a]},fovy:_,focalDistance:P,near:j,far:S},Object.getOwnPropertyDescriptors?Object.defineProperties(i,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(i,e,Object.getOwnPropertyDescriptor(o,e))}),i)),this.scale=x,this.latitude=b,this.longitude=c,this.bearing=u,this.pitch=h,this.fovy=_,this.resolution=y}}f.displayName="GlobeViewport";let g=f;function v(e,t){return t&&(e=Math.max(Math.min(e,s.aH),-s.aH)),Math.log2(Math.PI*Math.cos(e*Math.PI/180))}function m(e,t){let n=o.Z0([],t,e);return o.hs(n,n,1/n[3]),n}},34305(e,t,n){n.d(t,{A:()=>p});var i=n(39026),r=n(6706),o=n(26489),s=n(59808),a=n(86083);let l=new r.k().lookAt({eye:[0,0,1]});class c extends i.A{projectFlat(e){let[t,n]=e,{unitsPerMeter:i}=this.distanceScales;return[t*i[0],n*i[1]]}unprojectFlat(e){let[t,n]=e,{metersPerUnit:i}=this.distanceScales;return[t*i[0],n*i[1]]}panByPosition(e,t,n){let i=(0,a.xJ)(t,this.pixelUnprojectionMatrix),r=this.projectFlat(e),o=s.WQ([],r,s.ze([],i)),l=s.WQ([],this.center,o);return{target:this.unprojectFlat(l)}}constructor(e){var t,n,i,s;let a,{width:c,height:p,near:u=.1,far:d=1e3,zoom:h=0,target:f=[0,0,0],padding:g=null,flipY:v=!0}=e,m=null!=(t=e.zoomX)?t:Array.isArray(h)?h[0]:h,y=null!=(n=e.zoomY)?n:Array.isArray(h)?h[1]:h,b=Number.isFinite(e.zoom)?e.zoom:Math.min(m,y),w=Math.pow(2,b);if(m!==b||y!==b){let e=Math.pow(2,m),t=Math.pow(2,y);a={unitsPerMeter:[e/w,t/w,1],metersPerUnit:[w/e,w/t,1]}}super((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),s=s={longitude:void 0,position:f,viewMatrix:l.clone().scale([w,w*(v?-1:1),w]),projectionMatrix:function(e){let{width:t,height:n,near:i,far:s,padding:a}=e,l=-t/2,c=t/2,p=-n/2,u=n/2;if(a){let{left:e=0,right:i=0,top:r=0,bottom:s=0}=a,d=(0,o.qE)((e+t-i)/2,0,t)-t/2,h=(0,o.qE)((r+n-s)/2,0,n)-n/2;l-=d,c-=d,p+=h,u+=h}return new r.k().ortho({left:l,right:c,bottom:p,top:u,near:i,far:s})}({width:c||1,height:p||1,padding:g,near:u,far:d}),zoom:b,distanceScales:a},Object.getOwnPropertyDescriptors?Object.defineProperties(i,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})(Object(s)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(s,e))}),i)),this.target=f,this.zoomX=m,this.zoomY=y,this.flipY=v}}c.displayName="OrthographicViewport";let p=c},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),p=n(48895);let u=Math.PI/180,d=(0,r.$M)(),h=[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?p.Kx.WEB_MERCATOR:p.Kx.WEB_MERCATOR_AUTO_OFFSET:p.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),[p,u,d]=this.unprojectPosition(l);return Number.isFinite(o)?[p,u,d]:Number.isFinite(n)?[p,u,n]:[p,u]}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=h;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=d,projectionMatrix:n=null,orthographic:c=!1,fovyRadians:p,fovy:h=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:p}=e,u=t/n,d=i?new o.k().orthographic({fovy:r,aspect:u,focalDistance:a,near:c,far:p}):new o.k().perspective({fovy:r,aspect:u,near:c,far:p});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;d[8]-=2*a/t,d[9]+=2*c/n}return d}({width:this.width,height:this.height,orthographic:c,fovyRadians:p||h*u,focalDistance:m,padding:v,near:f,far:g});let y=(0,r.$M)();l.lw(y,y,this.projectionMatrix),l.lw(y,y,this.viewMatrix),this.viewProjectionMatrix=y,this.viewMatrixInverse=l.B8([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=(0,r.Vl)(this.viewMatrixInverse);let b=(0,r.$M)(),w=(0,r.$M)();l.hs(b,b,[this.width/2,-this.height/2,1]),l.Tl(b,b,[1,-1,0]),l.lw(w,b,this.viewProjectionMatrix),this.pixelProjectionMatrix=w,this.pixelUnprojectionMatrix=l.B8((0,r.$M)(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||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||h,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:()=>h});var i=n(39026),r=n(86083),o=n(62905),s=n(20556),a=n(59808),l=n(26489),c=n(6706);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 u(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 d 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 d(u(p({},this),{worldOffset:e})):this;this._subViewports.push(t)}}return this._subViewports}equals(e){return e instanceof d&&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,p]=this.unprojectFlat(l);return{longitude:c,latitude:p}}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)(p({width:n,height:i,bounds:e},t));return new d({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:d=.1,farZMultiplier:h=1.01,nearZ:f,farZ:g,orthographic:v=!1,projectionMatrix:m,repeat:y=!1,worldOffset:b=0,position:w,padding:P,legacyMeterSizes:_=!1}=e,{width:x,height:O,altitude:j=1.5}=e,S=Math.pow(2,o);x=x||1,O=O||1;let C=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),P){let{top:e=0,bottom:t=0}=P;i=[0,(0,l.qE)((e+O-t)/2,0,O)-O/2]}C=(0,r.om)({width:x,height:O,scale:S,center:w&&[0,0,w[2]*(0,r.mY)(n)],offset:i,pitch:s,fovy:t,nearZMultiplier:d,farZMultiplier:h}),Number.isFinite(f)&&(C.near=f),Number.isFinite(g)&&(C.far=g)}let k=(0,r.rY)({height:O,pitch:s,bearing:a,scale:S,altitude:j});b&&(k=new c.k().translate([512*b,0,0]).multiplyLeft(k)),super(u(p(u(p({},e),{width:x,height:O,viewMatrix:k,longitude:i,latitude:n,zoom:o}),C),{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=_,Object.freeze(this)}}d.displayName="WebMercatorViewport";let h=d},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},14663(e,t,n){n.d(t,{A:()=>w});var i=n(78977),r=n(39026),o=n(6706),s=n(86083),a=n(79036);let l=Math.PI/180;class c extends r.A{unproject(e){let{topLeft:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[n,i,r=this.projectedCenter[2]]=e,o=t?i:this.height-i,[a,l,c]=(0,s.xJ)([n,o,r],this.pixelUnprojectionMatrix);return[a,l,c]}panByPosition(e,t,n){let i=this.project(e),{near:r,far:o}=(0,a.om)(this.projectionMatrix),s=r*o/(o-i[2]*(o-r))/(r*o/(o-this.projectedCenter[2]*(o-r))),l=[this.width/2+(i[0]-t[0])*s,this.height/2+(i[1]-t[1])*s,this.projectedCenter[2]];return{target:this.unproject(l)}}constructor(e){var t,n;let{height:i,projectionMatrix:r,fovy:a=50,orbitAxis:c="Z",target:p=[0,0,0],rotationX:u=0,rotationOrbit:d=0,zoom:h=0}=e,f=r?r[5]/2:(0,s.wZ)(a);super((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}({},e),n=n={longitude:void 0,viewMatrix:function(e){let{height:t,focalDistance:n,orbitAxis:i,rotationX:r,rotationOrbit:s,zoom:a}=e,c=new o.k().lookAt({eye:"Z"===i?[0,-n,0]:[0,0,n],up:"Z"===i?[0,0,1]:[0,1,0]});c.rotateX(r*l),"Z"===i?c.rotateZ(s*l):c.rotateY(s*l);let p=Math.pow(2,a)/t;return c.scale(p),c}({height:i||1,focalDistance:f,orbitAxis:c,rotationX:u,rotationOrbit:d,zoom:h}),fovy:a,focalDistance:f,position:p,zoom:h},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.target=p,this.orbitAxis=c,this.rotationX=u,this.rotationOrbit=d,this.fovy=a,this.projectedCenter=this.project(this.center)}}c.displayName="OrbitViewport";var p=n(26489),u=n(89293),d=n(97659),h=n(39333),f=n(43396);function g(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 v(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var 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 m extends d.A{panStart(e){let{pos:t}=e;return this._getUpdatedState({startPanPosition:this._unproject(t)})}pan(e){let{pos:t,startPosition:n}=e,i=this.getState().startPanPosition||n;if(!i)return this;let r=this.makeViewport(this.getViewportProps()).panByPosition(i,t);return this._getUpdatedState(r)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart(e){let{pos:t}=e;return this._getUpdatedState({startRotatePos:t,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate(e){let t,{pos:n,deltaAngleX:i=0,deltaAngleY:r=0}=e,{startRotatePos:o,startRotationX:s,startRotationOrbit:a}=this.getState(),{width:l,height:c}=this.getViewportProps();if(!o||void 0===s||void 0===a)return this;if(n){let e=(n[0]-o[0])/l;(s<-90||s>90)&&(e*=-1),t={rotationX:s+180*((n[1]-o[1])/c),rotationOrbit:a+180*e}}else t={rotationX:s+r,rotationOrbit:a+i};return this._getUpdatedState(t)}
1rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(e){let t=e.getViewportProps(),n=g({},this.getViewportProps()),{rotationOrbit:i}=n;return Math.abs(i-t.rotationOrbit)>180&&(n.rotationOrbit=i<0?i+360:i-360),n}zoomStart(e){let{pos:t}=e;return this._getUpdatedState({startZoomPosition:this._unproject(t),startZoom:this.getViewportProps().zoom})}zoom(e){let{pos:t,startPos:n,scale:i}=e,{startZoom:r,startZoomPosition:o}=this.getState();if(o||(r=this.getViewportProps().zoom,o=this._unproject(n||t)),!o)return this;let s=this._calculateNewZoom({scale:i,startZoom:r}),a=this.makeViewport(v(g({},this.getViewportProps()),{zoom:s}));return this._getUpdatedState(g({zoom:s},a.panByPosition(o,t)))}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._getUpdatedState({zoom:this._calculateNewZoom({scale:e})})}zoomOut(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2;return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/e})})}moveLeft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([-e,0])}moveRight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([e,0])}moveUp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([0,-e])}moveDown(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;return this._panFromCenter([0,e])}rotateLeft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-e})}rotateRight(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15;return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+e})}rotateUp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-e})}rotateDown(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+e})}_project(e){return this.makeViewport(this.getViewportProps()).project(e)}_unproject(e){var t;let n=null==(t=this.unproject3D)?void 0:t.call(this,e);return n||this.makeViewport(this.getViewportProps()).unproject(e)}_calculateNewZoom(e){let{scale:t,startZoom:n}=e;void 0===n&&(n=this.getViewportProps().zoom);let i=n+Math.log2(t);return this._constrainZoom(i)}_panFromCenter(e){let{target:t}=this.getViewportProps(),n=this._project(t);return this.pan({startPosition:t,pos:[n[0]+e[0],n[1]+e[1]]})}_getUpdatedState(e){return new this.constructor(g({makeViewport:this.makeViewport}
1,this.getViewportProps(),this.getState(),e))}applyConstraints(e){let{maxRotationX:t,minRotationX:n,rotationOrbit:i}=e;return e.zoom=this._constrainZoom(e.zoom,e),e.rotationX=(0,p.qE)(e.rotationX,n,t),(i<-180||i>180)&&(e.rotationOrbit=(0,a.zi)(i+180,360)-180),e.target=this._constrainTarget(e),e}_constrainZoom(e,t){t||(t=this.getViewportProps());let{maxZoom:n,maxBounds:i}=t,{minZoom:r}=t;if(i&&t.width>0&&t.height>0){let a=(0,h.CI)(t.width,t.height,t.maxBoundsPadding),l=[];if(a.width>0||a.height>0){var o,s;let c=this.makeViewport(v(g({},t),{zoom:e})),p=(0,h.jo)(c,t.target,a);a.width>0&&l.push(p.left,p.right),a.height>0&&l.push(p.top,p.bottom);let u=2*Math.min(...l),d=i[1][0]-i[0][0],f=i[1][1]-i[0][1],m=(null!=(o=i[1][2])?o:0)-(null!=(s=i[0][2])?s:0),y=Math.sqrt(d*d+f*f+m*m);u>0&&y>0&&(r=Math.max(r,Math.log2(u/y)))>n&&(r=n)}}return(0,p.qE)(e,r,n)}_constrainTarget(e){var t;let{target:n,maxBounds:i}=e;if(!i)return n;let r=(0,h.CI)(e.width,e.height,e.maxBoundsPadding);if(r.width<0||r.height<0)return n;let[[o,s,a=0],[l,c,u=0]]=i;if(n[0]>=o&&n[0]<=l&&n[1]>=s&&n[1]<=c&&n[2]>=a&&n[2]<=u)return n;let d=null==(t=this.makeViewport)?void 0:t.call(this,e);if(d){let{cameraPosition:e}=d,t=e[0]-n[0],i=e[1]-n[1],r=e[2]-n[2],h=t*n[0]+i*n[1]+r*n[2],f=t*(t>=0?o:l)+i*(i>=0?s:c)+r*(r>=0?a:u),g=t*(t>=0?l:o)+i*(i>=0?c:s)+r*(r>=0?u:a);if((t||i||r)&&h>=f&&h<=g){let e=e=>(0,p.qE)(e,o,l),d=e=>(0,p.qE)(e,s,c),f=e=>(0,p.qE)(e,a,u),g=o=>t*e(n[0]-o*t)+i*d(n[1]-o*i)+r*f(n[2]-o*r)-h,v=-1,m=1,y=g(-1),b=g(m);for(;y<0;)m=v,b=y,v*=2,y=g(v);for(;b>0;)v=m,y=b,m*=2,b=g(m);for(let e=0;e<30;e++){let e=(v+m)/2;g(e)>0?v=e:m=e}let w=(v+m)/2;return[e(n[0]-w*t),d(n[1]-w*i),f(n[2]-w*r)]}}return[(0,p.qE)(n[0],o,l),(0,p.qE)(n[1],s,c),(0,p.qE)(n[2],a,u)]}constructor(e){let{width:t,height:n,rotationX:i=0,rotationOrbit:r=0,target:o=[0,0,0],zoom:s=0,minRotationX:a=-90,maxRotationX:l=90,minZoom:c=-1/0,maxZoom:p=1/0,maxBounds:u=null,maxBoundsPadding:d=null,startPanPosition:h,startRotatePos:f,startRotationX:g,startRotationOrbit:v,startZoomPosition:m,startZoom:y}=e;super({width:t,height:n,rotationX:i,rotationOrbit:r,target:o,zoom:s,minRotationX:a,maxRotationX:l,minZoom:c,maxZoom:p,maxBounds:u,maxBoundsPadding:d},{startPanPosition:h,startRotatePos:f,startRotationX:g,startRotationOrbit:v,startZoomPosition:m,startZoom:y},e.makeViewport),this.unproject3D=e.unproject3D}}class y extends u.A{setProps(e){e.unproject3D=this._unproject3D,super.setProps(e)}constructor(){super(...arguments),this.ControllerState=m,this.transition={transitionDuration:300,transitionInterpolator:new f.A({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})},this._unproject3D=e=>{if(this.pickPosition){let{x:t,y:n}=this.props,i=this.pickPosition(t+e[0],n+e[1]);if(i&&i.coordinate)return i.coordinate}return null}}}class b extends i.A{getViewportType(){return c}get ControllerType(){return y}constructor(e={}){super(e),this.props.orbitAxis=e.orbitAxis||"Z"}}b.displayName="OrbitView";let w=b},64151(e,t,n){n.d(t,{A:()=>v});var i=n(78977),r=n(34305),o=n(26489),s=n(89293),a=n(97659),l=n(39333),c=n(43396);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 u(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 d(e){let{zoom:t=0,zoomX:n,zoomY:i}=e;return{zoomX:n=null!=n?n:Array.isArray(t)?t[0]:t,zoomY:i=null!=i?i:Array.isArray(t)?t[1]:t}}class h extends a.A{panStart(e,t){let{pos:n}=e;return this._getUpdatedState({startPanPosition:this._unproject(n)},t)}pan(e,t){let{pos:n,startPosition:i}=e,r=this.getState().startPanPosition||i;if(!r)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(r,n);
1return this._getUpdatedState(o,t)}panEnd(e){return this._getUpdatedState({startPanPosition:null},e)}rotateStart(){return this}rotate(){return this}rotateEnd(){return this}shortestPathFrom(e){return e.getViewportProps(),p({},this.getViewportProps())}zoomStart(e,t){let{pos:n}=e,{zoomX:i,zoomY:r}=this.getViewportProps();return this._getUpdatedState({startZoomPosition:this._unproject(n),startZoom:[i,r]},t)}zoom(e,t){let{pos:n,startPos:i,scale:r}=e,{startZoom:o,startZoomPosition:s}=this.getState();if(!s){let{zoomX:e,zoomY:t}=this.getViewportProps();o=[e,t],s=this._unproject(i||n)}if(!s)return this;let l=this._calculateNewZoom({scale:r,startZoom:o});return this._getUpdatedState(u(p({},l),{[a.y]:{position:s,screenPosition:n}}),t)}zoomEnd(e){return this._getUpdatedState({startZoomPosition: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._getUpdatedState(this._calculateNewZoom({scale: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._getUpdatedState(this._calculateNewZoom({scale:1/e}),t)}moveLeft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50,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]:50,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]:50,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]:50,t=arguments.length>1?arguments[1]:void 0;return this._panFromCenter([0,e],t)}rotateLeft(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0],this}rotateRight(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0],this}rotateUp(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0],this}rotateDown(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0],this}_project(e){return this.makeViewport(this.getViewportProps()).project(e)}_unproject(e){let[t,n]=this.makeViewport(this.getViewportProps()).unproject(e);return[t,n]}_calculateNewZoom(e){let{scale:t,startZoom:n}=e,{zoomX:i,zoomY:r,zoomAxis:o}=this.getViewportProps();void 0===n&&(n=[i,r]);let s=Math.log2(t),[a,l]=n;switch(o){case"X":a+=s;break;case"Y":l+=s;break;default:a+=s,l+=s}return{zoomX:a,zoomY:l}}_panFromCenter(e,t){let{target:n}=this.getViewportProps(),i=this._project(n);return this.pan({startPosition:n,pos:[i[0]+e[0],i[1]+e[1]]},t)}_getUpdatedState(e,t){return new this.constructor(u(p({makeViewport:this.makeViewport}
1,this.getViewportProps(),this.getState(),e),{constraintContext:t}))}applyConstraints(e,t){let n=e[a.y];delete e[a.y];let i=d(e),r=this._constrainZoom(i,e),s=e.rubberBand&&(null==t?void 0:t.mode)==="elastic",{zoomX:c,zoomY:h}=(null==t?void 0:t.mode)==="preserve"?i:s?{zoomX:(0,l.GT)(i.zoomX,r.zoomX,1),zoomY:(0,l.GT)(i.zoomY,r.zoomY,1)}:r;if(e.zoomX=c,e.zoomY=h,n){let t=this.makeViewport(u(p({},e),{zoomX:c,zoomY:h}));Object.assign(e,t.panByPosition(n.position,n.screenPosition))}e.zoom=Array.isArray(e.zoom)||e.zoomX!==e.zoomY?[e.zoomX,e.zoomY]:e.zoomX;let{maxBounds:f,rubberBand:g,target:v}=e;if(f){let n=(0,l.CI)(e.width,e.height,e.maxBoundsPadding),i=this.makeViewport(e),r=(0,l.jo)(i,v,n),a=i.project(v),p=[0,1].map(e=>{let t=v.slice();t[e]+=1;let n=i.project(t)[e]-a[e];return Number.isFinite(n)?n:2**(0===e?c:h)*(0===e?1:-1)}),u=p.map((e,t)=>{let n=0===t?r.left:r.top,i=0===t?r.right:r.bottom,o=Math.abs(e);return e>=0?[n/o,i/o]:[i/o,n/o]}),d=v.slice(),m=[n.width,n.height];for(let[e,[i,r]]of u.entries()){if(m[e]<0)continue;let{minimum:a,maximum:c,midpoint:u,settledTarget:h}=function(e,t,n,i,r){let s=e[0][t]+n,a=e[1][t]-i,l=(s+a)/2;return{minimum:s,maximum:a,midpoint:l,settledTarget:Number.isFinite(n)&&Number.isFinite(i)&&s<=a?(0,o.qE)(r,s,a):l}}(f,e,i,r,v[e]);if((null==t?void 0:t.mode)!=="preserve"&&g&&(!Number.isFinite(i)||!Number.isFinite(r))){d[e]=u;continue}let y=g?h:(0,o.qE)(v[e],a,c);d[e]=(null==t?void 0:t.mode)==="preserve"?v[e]:s?(0,l.GT)(v[e],y,(0===e?n.width:n.height)/2/Math.abs(p[e])):y}(d[0]!==v[0]||d[1]!==v[1])&&(e.target=d)}return e}_constrainZoom(e,t){let{zoomX:n,zoomY:i}=e;t||(t=this.getViewportProps());let{zoomAxis:r,maxZoomX:s,maxZoomY:a,maxBounds:c}=t,{minZoomX:p,minZoomY:u}=t;if(null!==c&&t.width>0&&t.height>0){let e=(0,l.CI)(t.width,t.height,t.maxBoundsPadding),n=c[0],i=c[1],r=i[0]-n[0],o=i[1]-n[1];e.width>0&&Number.isFinite(r)&&r>0&&(p=Math.max(p,Math.log2(e.width/r)))>s&&(p=s),e.height>0&&Number.isFinite(o)&&o>0&&(u=Math.max(u,Math.log2(e.height/o)))>a&&(u=a)}switch(r){case"X":n=(0,o.qE)(n,p,s);break;case"Y":i=(0,o.qE)(i,u,a);break;default:let d=Math.min(s-n,a-i,0);0===d&&(d=Math.max(p-n,u-i,0)),0!==d&&(n+=d,i+=d)}return{zoomX:n,zoomY:i}}constructor(e){let{width:t,height:n,target:i=[0,0,0],zoom:r=0,zoomAxis:o="all",minZoom:s=-1/0,maxZoom:l=1/0,minZoomX:c=s,maxZoomX:u=l,minZoomY:h=s,maxZoomY:f=l,maxBounds:g=null,maxBoundsPadding:v=null,rubberBand:m=!1,startPanPosition:y,startZoomPosition:b,startZoom:w}=e,{[a.y]:P}=e,{zoomX:_,zoomY:x}=d(e);super(p({width:t,height:n,target:i,zoom:r,zoomX:_,zoomY:x,zoomAxis:o,minZoomX:c,maxZoomX:u,minZoomY:h,maxZoomY:f,maxBounds:g,maxBoundsPadding:v,rubberBand:m},{[a.y]:P}),{startPanPosition:y,startZoomPosition:b,startZoom:w},e.makeViewport,e.constraintContext)}}class f extends s.A{setProps(e){Object.assign(e,d(e)),super.setProps(e)}_onMultiPanStart(e){return"pan"===this.multiTouchDrag&&super._onMultiPanStart(e)}_onPanRotate(){return!1}constructor(){super(...arguments),this.ControllerState=h,this.transition={transitionDuration:300,transitionInterpolator:new c.A(["target","zoomX","zoomY"])},this.dragMode="pan"}}class g extends i.A{getViewportType(){return r.A}get ControllerType(){return f}constructor(e={}){super(e)}}g.displayName="OrthographicView";let v=g},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}
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}({},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:p=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=p&&{left:(0,i.rk)(p.left||0),right:(0,i.rk)(p.right||0),top:(0,i.rk)(p.top||0),bottom:(0,i.rk)(p.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}}},57776(e,t,n){n.d(t,{A:()=>p});var i=n(26423);let r="\nlayout(std140) uniform clipUniforms {\n vec4 bounds;\n} clip;\n\nbool clip_isInBounds(vec2 position) {\n return position.x >= clip.bounds[0] && position.y >= clip.bounds[1] && position.x < clip.bounds[2] && position.y < clip.bounds[3];\n}\n",o={name:"clip",vs:r,uniformTypes:{bounds:"vec4<f32>"}},s={"vs:#decl":"\nout float clip_isVisible;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));\n","fs:#decl":"\nin float clip_isVisible;\n","fs:DECKGL_FILTER_COLOR":"\n if (clip_isVisible < 0.5) discard;\n"},a={name:"clip",fs:r,uniformTypes:{bounds:"vec4<f32>"}},l={"vs:#decl":"\nout vec2 clip_commonPosition;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_commonPosition = geometry.position.xy;\n","fs:#decl":"\nin vec2 clip_commonPosition;\n","fs:DECKGL_FILTER_COLOR":"\n if (!clip_isInBounds(clip_commonPosition)) discard;\n"};class c extends i.A{getShaders(){let e="instancePositions"in this.getAttributeManager().attributes;return(void 0!==this.props.clipByInstance&&(e=!!this.props.clipByInstance),this.state.clipByInstance=e,"webgpu"===this.context.device.type)?{}:e?{modules:[o],inject:s}:{modules:[a],inject:l}}draw(){let{clipBounds:e}=this.props,t={};if(this.state.clipByInstance)t.bounds=e;else{let n=this.projectPosition([e[0],e[1],0]),i=this.projectPosition([e[2],e[3],0]);t.bounds=[Math.min(n[0],i[0]),Math.min(n[1],i[1]),Math.max(n[0],i[0]),Math.max(n[1],i[1])]}"webgpu"===this.context.device.type&&(t.enabled=!0,t.mode=this.state.clipByInstance?"instance":"geometry"),this.setShaderModuleProps({clip:t})}}c.defaultProps={clipBounds:[0,0,1,1],clipByInstance:void 0},c.extensionName="ClipExtension";let p=c},20236(e,t,n){n.d(t,{A:()=>x});var i=n(48895),r=n(1918),o=n(88708),s=n(57776),a=n(6706),l=n(96966),c=n(74312),p=n(26489);let u={Point:d,MultiPoint:function(e,t,n){return h(e,t,n)},LineString:function(e,t,n){return h(e,t,n)},MultiLineString:function(e,t,n){return e.map(e=>h(e,t,n))},Polygon:f,MultiPolygon:function(e,t,n){return e.map(e=>f(e,t,n))}};function d(e,t,n){let[i,r]=e,[o,s]=t,a=(0,p.Cc)(o[0],s[0],i),l=(0,p.Cc)(o[1],s[1],r);return n.unprojectFlat([a,l])}function h(e,t,n){return e.map(e=>d(e,t,n))}function f(e,t,n){return e.map(e=>h(e,t,n))}let g=["points","lines","polygons"];function v(e,t,n,i){for(let r=n;r<i;r++)if(t(e[r],r))return r;return -1}var m=n(29444),y=n(45197);function b(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 w(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var 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=w(b({},o.A.defaultProps),{data:y.cS,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[l.f],binary:!0});class _ extends m.A{initializeState(){super.initializeState();let e=void 0===this.context.viewport.resolution&&this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){var e;return!!((null==(e=this.state)?void 0:e.data)&&super.isLoaded)}updateState(e){var t;let{props:n,oldProps:i,context:r,changeFlags:o}=e;o.dataChanged&&this._updateTileData(),(null==(t=this.state)?void 0:t.data)&&(super.updateState({props:n,oldProps:i,context:r,changeFlags:o}),this._setWGS84PropertyForTiles());let{highlightColor:s}=n;s!==i.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,t=null;if("string"!=typeof e||(0,y.Ar)(e))e&&"object"==typeof e&&"tilejson"in e&&(t=e);else{let{onDataLoad:n,fetch:i}=this.props;this.setState({data:null,tileJSON:null});try{t=await i(e,{propName:"data",layer:this,loaders:[]})}catch(t){this.raiseError(t,"loading TileJSON"),e=null}n&&n(t,{propName:"data",layer:this})}t&&(e=t.tiles),this.setState({data:e,tileJSON:t})}_getTilesetOptions(){let e=super._getTilesetOptions(),t=this.state.tileJSON,{minZoom:n,maxZoom:i}=this.props;return t&&(Number.isFinite(t.minzoom)&&t.minzoom>n&&(e.minZoom=t.minzoom),Number.isFinite(t.maxzoom)&&(!Number.isFinite(i)||t.maxzoom<i)&&(e.maxZoom=t.maxzoom)),e}renderLayers(){var e;return(null==(e=this.state)?void 0:e.data)?super.renderLayers():null}getTileData(e){let{data:t,binary:n}=this.state,{index:i,signal:r}=e,o=(0,y.g8)(t,e);if(!o)return Promise.reject("Invalid URL");let s=this.getLoadOptions(),{fetch:a}=this.props;return a(o,{propName:"data",layer:this,loadOptions:s=w(b({},s),{core:w(b({},null==s?void 0:s.core),{mimeType:"application/x-protobuf"}),mvt:w(b({},null==s?void 0:s.mvt),{shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:i})}),signal:r})}renderSubLayers(e){let{x:t,y:n,z:l}=e.tile.index,c=Math.pow(2,l),p=512/c,u=new a.k().scale([p,-p,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=u,e.coordinateOrigin=[512*t/c,512*(1-n/c),0],e.coordinateSystem=i.rf.CARTESIAN,e.extensions=[...e.extensions||[],new s.A]);let d=super.renderSubLayers(e);return!this.state.binary||d instanceof o.A||r.A.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),d}_updateAutoHighlight(e){let{uniqueIdProperty:t}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:i}=this.state,r=e.object,o=null,s=null;r&&(o=O(r,t),s=j(r));let{highlightColor:a}=this.props;"function"==typeof a&&(a=a(e)),(n!==o||i!==s)&&this.setState({highlightColor:a,hoveredFeatureId:o,hoveredFeatureLayerName:s})}_isWGS84(){return!!this.context.viewport.resolution}getPickingInfo(e){let t=super.getPickingInfo(e);if(this.state.binary&&-1!==t.index){let{data:n}=e.sourceLayer.props;t.object=(0,c.p)(n,{globalFeatureId:t.index})}return t.object&&!this._isWGS84()&&(t.object=C(t.object,t.tile.bbox,this.context.viewport)),t}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:t,hoveredFeatureLayerName:n,binary:i}=this.state,{uniqueIdProperty:r,highlightedFeatureId:o}=this.props,s=e.content,a=S(o);if(!(S(t)||a))return -1;let l=a?o:t;if(Array.isArray(s))return s.findIndex(e=>{let t=O(e,r)===l,i=a||j(e)===n;return t&&i});if(s&&i){var c=a?"":n;for(let e of g){let t=s[e]&&function(e,t,n,i){let r=e.featureIds.value;if(!r.length)return -1;let o=0,s=r[r.length-1]+1;if(i){let t=function(e,t){if(!e.__layers){let t={},{properties:n}=e;for(let e=0;e<n.length;e++){let{layerName:i}=n[e];i&&(t[i]?t[i][1]=e:t[i]=[e,e])}e.__layers=t}return e.__layers[t]}(e,i);if(!t)return -1;o=t[0],s=t[1]+1}let a=-1;if(t in e.numericProps){let i=e.numericProps[t].value.findIndex((e,t)=>e===n&&r[t]>=o&&r[t]<s);return i>=0?e.globalFeatureIds.value[i]:-1}return t?a=v(e.properties,e=>e[t]===n,o,s):e.fields&&(a=v(e.fields,e=>e.id===n,o,s)),a>=0?function(e,t){if(!e.__ids){let t=[],n=e.featureIds.value,i=e.globalFeatureIds.value;for(let e=0;e<n.length;e++)t[n[e]]=i[e];e.__ids=t}return e.__ids[t]}(e,a):-1}(s[e],r,l,c);if(t>=0)return t}}return -1}_pickObjects(e){let{deck:t,viewport:n}=this.context,i=n.width,r=n.height,o=n.x,s=n.y,a=[this.id];return t.pickObjects({x:o,y:s,width:i,height:r,layerIds:a,maxObjects:e})}getRenderedFeatures(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this._pickObjects(e),n=new Set,i=[];for(let e of t){let t=O(e.object,this.props.uniqueIdProperty);void 0===t?i.push(e.object):n.has(t)||(n.add(t),i.push(e.object))}return i}_setWGS84PropertyForTiles(){let e="dataInWGS84";
1this.state.tileset.selectedTiles.forEach(t=>{t.hasOwnProperty(e)||Object.defineProperty(t,e,{get:()=>{if(!t.content)return null;if(this.state.binary&&Array.isArray(t.content)&&!t.content.length)return[];let{bbox:e}=t;if(void 0===t._contentWGS84&&(0,y.NV)(e)){let n=this.state.binary?(0,c.p)(t.content):t.content;t._contentWGS84=n.map(t=>C(t,e,this.context.viewport))}return t._contentWGS84}})})}}_.layerName="MVTLayer",_.defaultProps=P;let x=_;function O(e,t){return e.properties&&t?e.properties[t]:"id"in e?e.id:void 0}function j(e){var t;return(null==(t=e.properties)?void 0:t.layerName)||null}function S(e){return null!=e&&""!==e}function C(e,t,n){let i=w(b({},e),{geometry:{type:e.geometry.type}});return Object.defineProperty(i.geometry,"coordinates",{get:()=>{var i,r,o;let s,a;return(i=e.geometry,s=n.projectFlat([t.west,t.north]),a=n.projectFlat([t.east,t.south]),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}))),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={coordinates:u[i.type](i.coordinates,[s,a],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).coordinates}}),i}},29444(e,t,n){n.d(t,{A:()=>d});var i=n(12121),r=n(37142),o=n(88708),s=n(63809),a=n(45197),l=n(6706);function c(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 p={TilesetClass:s.TL,data:{type:"data",value:[]},dataComparator:a.cS.equal,renderSubLayers:{type:"function",value:e=>new o.A(e)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:e=>{}},onTileUnload:{type:"function",value:e=>{}},onTileError:{type:"function",value:e=>console.error(e)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:s.UK,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null};class u extends i.A{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){var e,t;null==(t=this.state)||null==(e=t.tileset)||e.finalize()}get isLoaded(){var e,t,n;return!!(null==(n=this.state)||null==(t=n.tileset)||null==(e=t.selectedTiles)?void 0:e.every(e=>e.isLoaded&&(!e.content||!e.layers||e.layers.every(e=>e.isLoaded))))}shouldUpdateState(e){let{changeFlags:t}=e;return t.somethingChanged}updateState(e){let{changeFlags:t}=e,{tileset:n}=this.state,i=t.propsOrDataChanged||t.updateTriggersChanged,r=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getTileData);n?i&&(n.setOptions(this._getTilesetOptions()),r?n.reloadAll():n.tiles.forEach(e=>{e.layers=null})):(n=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:n})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:t,maxCacheByteSize:n,refinementStrategy:i,extent:r,maxZoom:o,minZoom:s,maxRequests:a,debounceTime:l,zoomOffset:c,visibleMinZoom:p,visibleMaxZoom:u}=this.props;return{maxCacheSize:t,maxCacheByteSize:n,maxZoom:o,minZoom:s,tileSize:e,refinementStrategy:i,extent:r,maxRequests:a,debounceTime:l,zoomOffset:c,visibleMinZoom:p,visibleMaxZoom:u,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:t,modelMatrix:n}=this.props,i=e.update(this.context.viewport,{zRange:t,modelMatrix:n}),{isLoaded:r}=e,o=this.state.isLoaded!==r,s=this.state.frameNumber!==i;r&&(o||s)&&this._onViewportLoad(),s&&this.setState({frameNumber:i}),this.state.isLoaded=r}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:t}=this.props;t&&t(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,t){this.props.onTileError(e),t.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:t,getTileData:n,fetch:i}=this.props,{signal:r}=e;return(e.url="string"==typeof t||Array.isArray(t)?(0,a.g8)(t,e):null,n)?n(e):i&&e.url?i(e.url,{propName:"data",layer:this,signal:r}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let t=e.sourceLayer,n=t.props.tile,i=e.info;return i.picked&&(i.tile=n),i.sourceTile=n,i.sourceTileSubLayer=t,i}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){let{visibleMinZoom:e,visibleMaxZoom:t,minZoom:n,extent:i}=this.props,o=this.context.viewport.zoom;if(null!=e&&o<e||null!=t&&o>t||null!=n&&!i&&o<n){for(let e of this.state.tileset.tiles)e.layers=null;return[]}return this.state.tileset.tiles.map(e=>{let t=this.getSubLayerPropsByTile(e);
1if(e.isLoaded||e.content)if(e.layers)t&&e.layers[0]&&Object.keys(t).some(n=>e.layers[0].props[n]!==t[n])&&(e.layers=e.layers.map(e=>e.clone(t)));else{var n,i;let o=this.renderSubLayers((n=c({},this.props,this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers})),i=i={data:e.content,_offset:0,tile:e},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));e.layers=(0,r.B)(o,Boolean).map(n=>n.clone(c({tile:e},t)))}return e.layers})}filterSubLayer(e){let{layer:t,cullRect:n}=e,{tile:i}=t.props,{modelMatrix:r}=this.props;return this.state.tileset.isTileVisible(i,n,r?new l.k(r):null)}}u.defaultProps=p,u.layerName="TileLayer";let d=u},28750(e,t,n){n.d(t,{I:()=>i});class i{get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return!!this._loader&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData(e){let t,{getData:n,getRequestPriority:i,requestScheduler:r,onLoad:o,onError:s}=e,{index:a,id:l,bbox:c,userData:p,zoom:u}=this,d=this._loaderId;this._abortController=new AbortController;let{signal:h}=this._abortController,f=await r.scheduleRequest(this,i);if(!f){this._isCancelled=!0;return}if(this._isCancelled)return void f.done();let g=null;try{g=await n({index:a,id:l,bbox:c,userData:p,zoom:u,signal:h})}catch(e){t=e||!0}finally{f.done()}if(d===this._loaderId){if(this._loader=void 0,this.content=g,this._isCancelled&&!g){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,t?s(t,this):o(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){var e;this.isLoaded||(this._isCancelled=!0,null==(e=this._abortController)||e.abort())}constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}}},63809(e,t,n){n.d(t,{UK:()=>l,TL:()=>u});var i=n(25647),r=n(6706),o=n(26489),s=n(28750),a=n(45197);let l="best-available",c={[l]:function(e){for(let t of e)t.state=0;for(let t of e)t.isSelected&&!d(t)&&h(t);for(let t of e)t.isVisible=!!(2&t.state)},"no-overlap":function(e){for(let t of e)t.state=0;for(let t of e)t.isSelected&&d(t);for(let t of Array.from(e).sort((e,t)=>e.zoom-t.zoom))if(t.isVisible=!!(2&t.state),t.children&&(t.isVisible||1&t.state))for(let e of t.children)e.state=1;else t.isSelected&&h(t)},never:()=>{}},p={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}};class u{get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return null!==this._selectedTiles&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return null!==this._selectedTiles&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom)),this._viewport=null}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let t=this._cache.get(e);this._selectedTiles&&this._selectedTiles.includes(t)?t.setNeedsReload():this._cache.delete(e)}}update(e){let{zRange:t,modelMatrix:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{zRange:null,modelMatrix:null},i=n?new r.k(n):new r.k,s=!i.equals(this._modelMatrix);if(this._viewport&&e.equals(this._viewport)&&(0,o.aI)(this._zRange,t)&&!s)this.needsReload&&(this._selectedTiles=this._selectedTiles.map(e=>this._getTile(e.index,!0)));else{s&&(this._modelMatrixInverse=i.clone().invert(),this._modelMatrix=i),this._viewport=e,this._zRange=t;let n=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:t,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=n.map(e=>this._getTile(e,!0)),this._dirty&&this._rebuildTree()}let a=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),a&&this._frameNumber++,this._frameNumber}isTileVisible(e,t,n){if(!e.isVisible)return!1;if(t&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:t}),{bbox:o}=e;for(let[e,t,s,l]of i){let i;if("west"in o)i=o.west<s&&o.east>e&&o.south<l&&o.north>t;else{if(n&&!r.k.IDENTITY.equals(n)){let[e,t,i,r]=(0,a.Ww)([o.left,o.top,o.right,o.bottom],n);o={left:e,top:t,right:i,bottom:r}}let c=Math.min(o.top,o.bottom),p=Math.max(o.top,o.bottom);i=o.left<s&&o.right>e&&c<l&&p>t}if(i)return!0}return!1}return!0}getTileIndices(e){let{viewport:t,maxZoom:n,minZoom:i,zRange:r,modelMatrix:o,modelMatrixInverse:s}=e,{tileSize:l,extent:c,zoomOffset:p,visibleMinZoom:u,visibleMaxZoom:d}=this.opts;return(0,a.Om)({viewport:t,maxZoom:n,minZoom:i,zRange:r,tileSize:l,extent:c,modelMatrix:o,modelMatrixInverse:s,zoomOffset:p,visibleMinZoom:u,visibleMaxZoom:d})}getTileId(e){return"".concat(e.x,"-").concat(e.y,"-").concat(e.z)}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:t}=this.opts;return{bbox:(0,a.bR)(this._viewport,e.x,e.y,e.z,t)}}getParentIndex(e){let t=Math.floor(e.x/2);return{x:t,y:Math.floor(e.y/2),z:e.z-1}}updateTileStates(){let e=this.opts.refinementStrategy||l,t=Array(this._cache.size),n=0;for(let e of this._cache.values())t[n++]=e.isVisible,e.isSelected=!1,e.isVisible=!1;for(let e of this._selectedTiles)e.isSelected=!0,e.isVisible=!0;for(let i of(("function"==typeof e?e:c[e])(Array.from(this._cache.values())
1),n=0,this._cache.values()))if(t[n++]!==i.isVisible)return!0;return!1}_getRequestPriority(e){if(!e.isSelected&&!e.isVisible)return -1;let t=this._getTileDistancePriority(e);return e.isSelected?0+t:1e8+t}_getTileDistancePriority(e){let{width:t,height:n}=this._viewport||{};if(!this._viewport||!t||!n)return 0;try{let i=this._getTileScreenCorners(e.bbox),r=[t/2,n/2];if(4===i.length){if(this._isPointInPolygon(r,i))return 0;let e=i.reduce((e,t,n)=>{let o=i[(n+1)%i.length];return Math.min(e,this._getPointToSegmentDistanceSquared(r,t,o))},Number.MAX_SAFE_INTEGER);return Math.min(e,0x5f5e0ff)}}catch(e){}return 0x5f5e0ff}_getTileScreenCorners(e){return("west"in e?[[e.west,e.south],[e.east,e.south],[e.east,e.north],[e.west,e.north]]:[[e.left,e.top],[e.right,e.top],[e.right,e.bottom],[e.left,e.bottom]]).map(e=>this._viewport.project(e)).filter(e=>{let[t,n]=e;return Number.isFinite(t)&&Number.isFinite(n)})}_isPointInPolygon(e,t){let n=!1,[i,r]=e;for(let e=0,o=t.length-1;e<t.length;o=e++){let[s,a]=t[e],[l,c]=t[o];a>r!=c>r&&i<(l-s)*(r-a)/(c-a)+s&&(n=!n)}return n}_getPointToSegmentDistanceSquared(e,t,n){let[i,r]=e,[o,s]=t,[a,l]=n,c=a-o,p=l-s,u=c*c+p*p,d=u?Math.max(0,Math.min(1,((i-o)*c+(r-s)*p)/u)):0,h=i-(o+d*c),f=r-(s+d*p);return h*h+f*f}_pruneRequests(){let{maxRequests:e=0}=this.opts,t=[],n=0;for(let e of this._cache.values())e.isLoading&&(n++,e.isSelected||e.isVisible||t.push(e));for(;e>0&&n>e&&t.length>0;)t.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let t of e.values())t.parent=null,t.children&&(t.children.length=0);for(let t of e.values()){let e=this._getNearestAncestor(t);t.parent=e,(null==e?void 0:e.children)&&e.children.push(t)}}_resizeCache(){var e,t,n,i;let{_cache:r,opts:o}=this,s=null!=(e=o.maxCacheSize)?e:null!==o.maxCacheByteSize?1/0:5*this.selectedTiles.length,a=null!=(t=o.maxCacheByteSize)?t:1/0;if(r.size>s||this._cacheByteSize>a){for(let[e,t]of r)if(t.isVisible||t.isSelected||(this._cacheByteSize-=null!==o.maxCacheByteSize?t.byteLength:0,r.delete(e),null==(n=(i=this.opts).onTileUnload)||n.call(i,t)),r.size<=s&&this._cacheByteSize<=a)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((e,t)=>e.zoom-t.zoom),this._dirty=!1)}_getTile(e,t){let n=this.getTileId(e),i=this._cache.get(n),r=!1;return!i&&t?(Object.assign(i=new s.I(e),this.getTileMetadata(i.index)),Object.assign(i,{id:n,zoom:this.getTileZoom(i.index)}),r=!0,this._cache.set(n,i),this._dirty=!0):i&&i.needsReload&&(r=!0),i&&r&&i.loadData({getData:this.opts.getTileData,getRequestPriority:this._getRequestPriority.bind(this),requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),i}_getNearestAncestor(e){let{_minZoom:t=0}=this,n=e.index;for(;this.getTileZoom(n)>t;){n=this.getParentIndex(n);let e=this._getTile(n);if(e)return e}return null}constructor(e){var t;let n,o;this._getCullBounds=(t=a.ws,o={},e=>{for(let i in e)if(!function(e,t){if(e===t)return!0;if(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}(e[i],o[i])){n=t(e),o=e;break}return n}),this.opts=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}({},p,e),this.setOptions(this.opts),this.onTileLoad=e=>{var t,n;null==(t=(n=this.opts).onTileLoad)||t.call(n,e),null!==this.opts.maxCacheByteSize&&(this._cacheByteSize+=e.byteLength,this._resizeCache())},this._requestScheduler=new i.A({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new r.k,this._modelMatrixInverse=new r.k}}function d(e){let t=e;for(;t;){if(t.isLoaded||t.content)return t.state|=2,!0;t=t.parent}return!1}function h(e){for(let t of e.children)t.isLoaded||t.content?t.state|=2:h(t)}},45197(e,t,n){n.d(t,{Om:()=>w,bR:()=>b,Ar:()=>P,ws:()=>g,g8:()=>f,Ww:()=>h,cS:()=>d,NV:()=>_,uY:()=>m});var i=n(68806),r=n(42943),o=n(83201),s=n(86083);let a=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],l=a.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),c=l.concat([[.25,.5],[.75,.5]]);class p{get children(){if(!this._children){let e=2*this.x,t=2*this.y,n=this.z+1;this._children=[new p(e,t,n),new p(e,t+1,n),new p(e+1,t,n),new p(e+1,t+1,n)]}return this._children}update(e){let{viewport:t,cullingVolume:n,elevationBounds:i,minZ:r,maxZ:o,bounds:s,offset:a,project:l}=e,c=this.getBoundingVolume(i,a,l);if(s&&!this.insideBounds(s)||0>n.computeVisibility(c)||l&&this.beyondHorizon(t.cameraPosition,l,i[1]))return!1;if(!this.childVisible){let{z:e}=this;if(e<o&&e>=r&&(e+=Math.floor(Math.log2(c.distanceTo(t.cameraPosition)*t.scale/t.height))),e>=o)return this.selected=!0,!0}for(let t of(this.selected=!1,this.childVisible=!0,this.children))t.update(e);return!0}getSelected(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(this.selected&&e.push(this),this._children)for(let t of this._children)t.getSelected(e);return e}beyondHorizon(e,t,n){let i=e[0],r=e[1],o=e[2],s=Math.sqrt(i*i+r*r+o*o),a=180*Math.atan2(i,-r)/Math.PI,l=180*Math.asin(o/s)/Math.PI,[c,p]=m(this.x,this.y,this.z),[u,d]=m(this.x+1,this.y+1,this.z),h=(c+u)/2,f=t([Math.max(c,Math.min(h+((a-h+540)%360-180),u)),Math.max(d,Math.min(l,p)),n]);return f[0]*i+f[1]*r+f[2]*o<=f[0]*f[0]+f[1]*f[1]+f[2]*f[2]}insideBounds(e){let[t,n,i,r]=e,o=512/Math.pow(2,this.z);return this.x*o<i&&this.y*o<r&&(this.x+1)*o>t&&(this.y+1)*o>n}getBoundingVolume(e,t,n){if(n){let t=this.z<1?c:this.z<2?l:a,i=[];for(let r of t){let t=m(this.x+r[0],this.y+r[1],this.z);t[2]=e[0],i.push(n(t)),e[0]!==e[1]&&(t[2]=e[1],i.push(n(t)))}return(0,o.ZZ)(i)}let i=512/Math.pow(2,this.z),r=this.x*i+512*t,s=512-(this.y+1)*i;return new o.dO([r,s,e[0]],[r+i,s+i,e[1]])}constructor(e,t,n){this.x=e,this.y=t,this.z=n}}let u=[-1/0,-1/0,1/0,1/0],d={type:"object",value:null,validate:(e,t)=>
1t.optional&&null===e||"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e),equal:(e,t)=>{if(e===t)return!0;if(!Array.isArray(e)||!Array.isArray(t))return!1;let n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}};function h(e,t){let n=[t.transformAsPoint([e[0],e[1]]),t.transformAsPoint([e[2],e[1]]),t.transformAsPoint([e[0],e[3]]),t.transformAsPoint([e[2],e[3]])];return[Math.min(...n.map(e=>e[0])),Math.min(...n.map(e=>e[1])),Math.max(...n.map(e=>e[0])),Math.max(...n.map(e=>e[1]))]}function f(e,t){if(!e||!e.length)return null;let{index:n,id:i}=t;if(Array.isArray(e)){let t=Math.abs(i.split("").reduce((e,t)=>(e<<5)-e+t.charCodeAt(0)|0,0))%e.length;e=e[t]}let r=e;for(let e of Object.keys(n)){let t=RegExp("{".concat(e,"}"),"g");r=r.replace(t,String(n[e]))}return Number.isInteger(n.y)&&Number.isInteger(n.z)&&(r=r.replace(/\{-y\}/g,String(Math.pow(2,n.z)-n.y-1))),r}function g(e){let{viewport:t,z:n,cullRect:i}=e;return(t.subViewports||[t]).map(e=>(function e(t,n,i){if(!Array.isArray(n)){let e=i.x-t.x,r=i.y-t.y,{width:o,height:s}=i,a={targetZ:n},l=t.unproject([e,r],a),c=t.unproject([e+o,r],a),p=t.unproject([e,r+s],a),u=t.unproject([e+o,r+s],a);return[Math.min(l[0],c[0],p[0],u[0]),Math.min(l[1],c[1],p[1],u[1]),Math.max(l[0],c[0],p[0],u[0]),Math.max(l[1],c[1],p[1],u[1])]}let r=e(t,n[0],i),o=e(t,n[1],i);return[Math.min(r[0],o[0]),Math.min(r[1],o[1]),Math.max(r[2],o[2]),Math.max(r[3],o[3])]})(e,n||0,i))}function v(e,t){return 512*Math.pow(2,e)/t}function m(e,t,n){let i=v(n,512),r=Math.PI-2*Math.PI*t/i;return[e/i*360-180,180/Math.PI*Math.atan(.5*(Math.exp(r)-Math.exp(-r)))]}function y(e,t,n,i){let r=v(n,i);return[e/r*512,t/r*512]}function b(e,t,n,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:512;if(e.isGeospatial){let[e,r]=m(t,n,i),[o,s]=m(t+1,n+1,i);return{west:e,north:r,east:o,south:s}}let[o,s]=y(t,n,i,r),[a,l]=y(t+1,n+1,i,r);return{left:o,top:s,right:a,bottom:l}}function w(e){let{viewport:t,maxZoom:n,minZoom:a,zRange:l,extent:c,tileSize:d=512,modelMatrix:f,modelMatrixInverse:g,zoomOffset:m=0,visibleMinZoom:y,visibleMaxZoom:b}=e,w=t.isGeospatial?Math.round(t.zoom+Math.log2(512/d)+m):Math.ceil(t.zoom+m);if("number"==typeof a&&Number.isFinite(a)&&w<a){if(!c)return[];w=a}if("number"==typeof n&&Number.isFinite(n)&&w>n&&(w=n),null!=y&&t.zoom<y||null!=b&&t.zoom>b)return[];let P=c;return f&&g&&c&&!t.isGeospatial&&(P=h(c,f)),t.isGeospatial?function(e,t,n,a){let l=e instanceof i.Ay?e.projectPosition:null,c=Object.values(e.getFrustumPlanes()).map(e=>{let{normal:t,distance:n}=e;return new o.Zc(t.clone().negate(),n)}),u=new o.R2(c),d=e.distanceScales.unitsPerMeter[2],h=n&&n[0]*d||0,f=n&&n[1]
1*d||0,g=e instanceof r.A&&e.pitch<=60?t:0;if(a){let[e,t,n,i]=a,r=(0,s.Gw)([e,i]),o=(0,s.Gw)([n,t]);a=[r[0],512-r[1],o[0],512-o[1]]}let v=new p(0,0,0),m={viewport:e,project:l,cullingVolume:u,elevationBounds:[h,f],minZ:g,maxZ:t,bounds:a,offset:0};if(v.update(m),e instanceof r.A&&e.subViewports&&e.subViewports.length>1){for(m.offset=-1;v.update(m)&&!(--m.offset<-3););for(m.offset=1;v.update(m)&&!(++m.offset>3););}return v.getSelected()}(t,w,l,c):function(e,t,n,i,r){var o,s;let a,l=(o=e,s=i,a=o.getBounds(),o.isGeospatial?[Math.max(a[0],s[0]),Math.max(a[1],s[1]),Math.min(a[2],s[2]),Math.min(a[3],s[3])]:[Math.max(Math.min(a[0],s[2]),s[0]),Math.max(Math.min(a[1],s[3]),s[1]),Math.min(Math.max(a[2],s[0]),s[2]),Math.min(Math.max(a[3],s[1]),s[3])]),c=v(t,n),[p,u,d,f]=r?h(l,r).map(e=>e*c/512):l.map(e=>e*c/512),g=[];for(let e=Math.floor(p);e<d;e++)for(let n=Math.floor(u);n<f;n++)g.push({x:e,y:n,z:t});return g}(t,w,d,P||u,g)}function P(e){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(e)}function _(e){return Number.isFinite(e.west)&&Number.isFinite(e.north)&&Number.isFinite(e.east)&&Number.isFinite(e.south)}},88708(e,t,n){n.d(t,{A:()=>k});var i=n(12121),r=n(93980),o=n(56548),s=n(67607),a=n(87810),l=n(26807),c=n(42442);let p={circle:{type:s.A,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:o.A,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:a.A,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPi
1xels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},u={type:l.A,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",lineAntialiasing:"antialiasing",getLineColor:"getColor",getLineWidth:"getWidth"}},d={type:c.A,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",_full3d:"_full3d",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function h(e){let{type:t,props:n}=e,i={};for(let e in n)i[e]=t.defaultProps[n[e]];return i}function f(e,t){let{transitions:n,updateTriggers:i}=e.props,r={updateTriggers:{},transitions:n&&{getPosition:n.geometry}};for(let o in t){let s=t[o],a=e.props[o];o.startsWith("get")&&(a=e.getSubLayerAccessor(a),r.updateTriggers[s]=i[o],n&&(r.transitions[s]=n[o])),r[s]=a}return r}var g=n(1918);function v(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:r=0,endRow:o=e.length}=n;for(let n=r;n<o;n++){let r=e[n],{geometry:o}=r;if(o)if("GeometryCollection"===o.type){g.A.assert(Array.isArray(o.geometries),"GeoJSON does not have geometries array");let{geometries:e}=o;for(let o=0;o<e.length;o++)m(e[o],i,t,r,n)}else m(o,i,t,r,n)}return i}function m(e,t,n,i,r){let{type:o,coordinates:s}=e,{pointFeatures:a,lineFeatures:l,polygonFeatures:c,polygonOutlineFeatures:p}=t;if(!function(e,t){let n=y[e];for(g.A.assert(n,"Unknown GeoJSON type ".concat(e));t&&--n>0;)t=t[0];return t&&Number.isFinite(t[0])}(o,s))return void g.A.warn("".concat(o," coordinates are malformed"))();switch(o){case"Point":a.push(n({geometry:e},i,r));break;case"MultiPoint":s.forEach(e=>{a.push(n({geometry:{type:"Point",coordinates:e}},i,r))});break;case"LineString":l.push(n({geometry:e},i,r));break;case"MultiLineString":s.forEach(e=>{l.push(n({geometry:{type:"LineString",coordinates:e}},i,r))});break;case"Polygon":c.push(n({geometry:e}
1,i,r)),s.forEach(e=>{p.push(n({geometry:{type:"LineString",coordinates:e}},i,r))});break;case"MultiPolygon":s.forEach(e=>{c.push(n({geometry:{type:"Polygon",coordinates:e}},i,r)),e.forEach(e=>{p.push(n({geometry:{type:"LineString",coordinates:e}},i,r))})})}}let y={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function b(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 w(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var 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 P(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function _(e){return e.geometry.coordinates}function x(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 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 j=["points","linestrings","polygons"],S=O(x({},h(p.circle),h(p.icon),h(p.text),h(u),h(d)),{stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:e=>e.properties.icon},getText:{type:"accessor",value:e=>e.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}});class C extends i.A{initializeState(){this.state={layerProps:{},features:{},featuresDiff:{}}}updateState(e){let{props:t,changeFlags:n}=e;if(!n.dataChanged)return;let{data:i}=this.props,r=i&&"points"in i&&"polygons"in i&&"lines"in i;this.setState({binary:r}),r?this._updateStateBinary({props:t,changeFlags:n}):this._updateStateJSON({props:t,changeFlags:n})}_updateStateBinary(e){let{props:t,changeFlags:n}=e,i=function(e){let t=P(),{points:n,lines:i,polygons:r}=e,o=function(e){let t={points:null,lines:null,polygons:null};for(let n in t){let i=e[n].globalFeatureIds.value;t[n]=new Uint32Array(i)}return t}(e);t.points.data={length:n.positions.value.length/n.positions.size,attributes:w(b({},n.attributes),{getPosition:n.positions,rowIndexes:{size:1,type:"uint32",value:o.points}}),properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},t.lines.data={length:i.pathIndices.value.length-1,startIndices:i.pathIndices.value,attributes:w(b({},i.attributes),{getPath:i.positions,rowIndexes:{size:1,type:"uint32",value:o.lines}}),properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},t.lines._pathType="open";let s=Array(r.positions.value.length/r.positions.size).fill(1);for(let e of r.primitivePolygonIndices.value)s[e-1]=0;return t.polygons.data={length:r.polygonIndices.value.length-1,startIndices:r.polygonIndices.value,attributes:w(b({},r.attributes),{getPolygon:r.positions,instanceVertexValid:{size:1,value:new Uint16Array(s)},rowIndexes:{size:1,type:"uint32",value:o.polygons}}),properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},t.polygons._normalize=!1,r.triangles&&(t.polygons.data.attributes.indices=r.triangles.value),t.polygonsOutline.data={length:r.primitivePolygonIndices.value.length-1,startIndices:r.primitivePolygonIndices.value,attributes:w(b({},r.attributes),{getPath:r.positions,rowIndexes:{size:1,type:"uint32",value:o.polygons}}),properties:r.properties,numericProps:r.numericProps,featureIds:r.featureIds},t.polygonsOutline._pathType="open",t}(t.data);this.setState({layerProps:i})}_updateStateJSON(e){let{props:t,changeFlags:n}=e,i=function(e){if(Array.isArray(e))return e;switch(g.A.assert(e.type,"GeoJSON does not have type"),e.type){case"Feature":return[e];case"FeatureCollection":return g.A.assert(Array.isArray(e.features),"GeoJSON does not have features array"),e.features;default:return[{geometry:e}]}}(t.data),o=this.getSubLayerRow.bind(this),s={},a={};if(Array.isArray(n.dataChanged)){let e=this.state.features;for(let t in e)s[t]=e[t].slice(),a[t]=[];for(let t of n.dataChanged){let n=v(i,o,t);
1for(let i in e)a[i].push((0,r.J)({data:s[i],getIndex:e=>e.__source.index,dataRange:t,replace:n[i]}))}}else s=v(i,o);let l=function(e,t){let n=P(),{pointFeatures:i,lineFeatures:r,polygonFeatures:o,polygonOutlineFeatures:s}=e;return n.points.data=i,n.points._dataDiff=t.pointFeatures&&(()=>t.pointFeatures),n.points.getPosition=_,n.lines.data=r,n.lines._dataDiff=t.lineFeatures&&(()=>t.lineFeatures),n.lines.getPath=_,n.polygons.data=o,n.polygons._dataDiff=t.polygonFeatures&&(()=>t.polygonFeatures),n.polygons.getPolygon=_,n.polygonsOutline.data=s,n.polygonsOutline._dataDiff=t.polygonOutlineFeatures&&(()=>t.polygonOutlineFeatures),n.polygonsOutline.getPath=_,n}(s,a);this.setState({features:s,featuresDiff:a,layerProps:l})}getPickingInfo(e){let t=super.getPickingInfo(e),{index:n,sourceLayer:i}=t;return t.featureType=j.find(e=>i.id.startsWith("".concat(this.id,"-").concat(e,"-"))),n>=0&&i.id.startsWith("".concat(this.id,"-points-text"))&&this.state.binary&&(t.index=this.props.data.points.globalFeatureIds.value[n]),t}_updateAutoHighlight(e){let t="".concat(this.id,"-points-"),n="points"===e.featureType;
1for(let i of this.getSubLayers())i.id.startsWith(t)===n&&i.updateAutoHighlight(e)}_renderPolygonLayer(){var e;let{extruded:t,wireframe:n}=this.props,{layerProps:i}=this.state,r="polygons-fill",o=this.shouldRenderSubLayer(r,null==(e=i.polygons)?void 0:e.data)&&this.getSubLayerClass(r,d.type);if(o){let e=f(this,d.props),s=t&&n;return s||delete e.getLineColor,e.updateTriggers.lineColors=s,new o(e,this.getSubLayerProps({id:r,updateTriggers:e.updateTriggers}),i.polygons)}return null}_renderLineLayers(){var e,t;let{extruded:n,stroked:i}=this.props,{layerProps:r}=this.state,o="polygons-stroke",s="linestrings",a=!n&&i&&this.shouldRenderSubLayer(o,null==(e=r.polygonsOutline)?void 0:e.data)&&this.getSubLayerClass(o,u.type),l=this.shouldRenderSubLayer(s,null==(t=r.lines)?void 0:t.data)&&this.getSubLayerClass(s,u.type);if(a||l){let e=f(this,u.props);return[a&&new a(e,this.getSubLayerProps({id:o,updateTriggers:e.updateTriggers}),r.polygonsOutline),l&&new l(e,this.getSubLayerProps({id:s,updateTriggers:e.updateTriggers}),r.lines)]}return null}_renderPointLayers(){let{pointType:e}=this.props,{layerProps:t,binary:n}=this.state,{highlightedObjectIndex:i}=this.props;!n&&Number.isFinite(i)&&(i=t.points.data.findIndex(e=>e.__source.index===i));let r=new Set(e.split("+")),o=[];for(let e of r){var s;let r="points-".concat(e),a=p[e],l=a&&this.shouldRenderSubLayer(r,null==(s=t.points)?void 0:s.data)&&this.getSubLayerClass(r,a.type);if(l){let s=f(this,a.props),c=t.points;if("text"===e&&n){let e=c.data.attributes,{rowIndexes: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,["rowIndexes"]);c=O(x({},c),{data:O(x({},c.data),{attributes:n})})}o.push(new l(s,this.getSubLayerProps({id:r,updateTriggers:s.updateTriggers,highlightedObjectIndex:i}),c))}}return o}renderLayers(){let{extruded:e}=this.props,t=this._renderPolygonLayer();return[!e&&t,this._renderLineLayers(),this._renderPointLayers(),e&&t]}getSubLayerAccessor(e){let{binary:t}=this.state;return t&&"function"==typeof e?(t,n)=>{let{data:i,index:r}=n;return e(function(e,t){if(!e)return null;let n="startIndices"in e?e.startIndices[t]:t,i=e.featureIds.value[n];return -1!==n?function(e,t,n){let i={properties: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.properties[t])};for(let t in e.numericProps)i.properties[t]=e.numericProps[t].value[n];return i}(e,i,n):null}(i,r),n)}:super.getSubLayerAccessor(e)}}C.layerName="GeoJsonLayer",C.defaultProps=S;let k=C},56548(e,t,n){n.d(t,{A:()=>k});var i=n(13563),r=n(8070),o=n(5214),s=n(69798),a=n(48895),l=n(1918),c=n(12434),p=n(62837);let u="layout(std140) uniform iconUniforms {\n float sizeScale;\n vec2 iconsTextureDim;\n float sizeBasis;\n float sizeMinPixels;\n float sizeMaxPixels;\n bool billboard;\n highp int sizeUnits;\n float alphaCutoff;\n} icon;\n",d={name:"icon",vs:u,fs:u,uniformTypes:{sizeScale:"f32",iconsTextureDim:"vec2<f32>",sizeBasis:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",billboard:"f32",sizeUnits:"i32",alphaCutoff:"f32"}};var h=n(2043),f=n(70008);function g(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 v(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var 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 m=()=>{},y={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},b={x:0,y:0,width:0,height:0};function w(e){return e&&(e.id||e.url)}function P(e){let{device:t}=e;"webgl"===t.type?e.generateMipmapsWebGL():"webgpu"===t.type&&t.generateMipmapsWebGPU(e)}function _(e,t,n){for(let i=0;i<t.length;i++){let{icon:r,xOffset:o}=t[i];e[w(r)]=v(g({},r),{x:o,y:n})}}class x{finalize(){var e;null==(e=this._texture)||e.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(e){let t=this._autoPacking?w(e):e;return this._mapping[t]||b}setProps(e){let{loadOptions:t,autoPacking:n,iconAtlas:i,iconMapping:r,textureParameters:o}=e;if(t&&(this._loadOptions=t),void 0!==n&&(this._autoPacking=n),r&&(this._mapping=r),i){var s;null==(s=this._texture)||s.delete(),this._texture=null,this._externalTexture=i}o&&(this._samplerParameters=o)}get isLoaded(){return 0===this._pendingCount}packIcons(e,t){if(!this._autoPacking||"u"<typeof document)return;let n=Object.values(function(e,t,n){if(!e||!t)return null;n=n||{};let i={},{iterable:r,objectInfo:o}=(0,f.X)(e);for(let e of r){o.index++;let r=t(e,o),s=w(r);if(!r)throw Error("Icon is missing.");if(!r.url)throw Error("Icon url is missing.");i[s]||n[s]&&r.url===n[s].url||(i[s]=v(g({},r),{source:e,sourceIndex:o.index}))}return i}(e,t,this._mapping)||{});if(n.length>0){let{mapping:e,xOffset:t,yOffset:i,rowHeight:r,canvasHeight:o}=function(e){let{icons:t,buffer:n,mapping:i={},xOffset:r=0,yOffset:o=0,rowHeight:s=0,canvasWidth:a}=e,l=[];for(let e=0;e<t.length;e++){let c=t[e];if(!i[w(c)]){let{height:e,width:t}=c;r+t+n>a&&(_(i,l,o),r=0,o=s+o+n,s=0,l=[]),l.push({icon:c,xOffset:r}),r=r+t+n,s=Math.max(s,e)}}return l.length>0&&_(i,l,o),{mapping:i,rowHeight:s,xOffset:r,yOffset:o,canvasWidth:a,canvasHeight:Math.pow(2,Math.ceil(Math.log2(s+o+n)))}}({icons:n,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=r,this._mapping=e,this._xOffset=t,this._yOffset=i,this._canvasHeight=o,this._texture||(this._texture=this.device.createTexture({format:"rgba8unorm",data:null,width:this._canvasWidth,height:this._canvasHeight,sampler:this._samplerParameters||y,mipLevels:this.device.getMipLevelCount(this._canvasWidth,this._canvasHeight)})),this._texture.height!==this._canvasHeight&&(this._texture=function(e,t,n,i){let{width:r,height:o,device:s}=e,a=s.createTexture({format:"rgba8unorm",width:t,height:n,sampler:i,mipLevels:s.getMipLevelCount(t,n)}),l=s.createCommandEncoder();l.copyTextureToTexture({sourceTexture:e,destinationTexture:a,width:r,height:o});let c=l.finish();return s.submit(c),P(a),e.destroy(),a}(this._texture,this._canvasWidth,this._canvasHeight,this._samplerParameters||y)),this.onUpdate(!0),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(n)}}_loadIcons(e){let t=this._canvas.getContext("2d",{willReadFrequently:!0});for(let n of e)this._pendingCount++,(0,h.H)(n.url,this._loadOptions).then(e=>{var i;let r=w(n),o=this._mapping[r],{x:s,y:a,width:l,height:c}=o,{image:p,width:u,height:d}=function(e,t,n,i){let r=Math.min(n/t.width,i/t.height),o=Math.floor(t.width*r),s=Math.floor(t.height*r);return 1===r?{image:t,width:o,height:s}:(e.canvas.height=s,e.canvas.width=o,e.clearRect(0,0,o,s),e.drawImage(t,0,0,t.width,t.height,0,0,o,s),{image:e.canvas,width:o,height:s})}(t,e,l,c),h=s+(l-u)/2,f=a+(c-d)/2;null==(i=this._texture)||i.copyExternalImage({image:p,x:h,y:f,width:u,height:d}),o.x=h,o.y=f,o.width=u,o.height=d,this._texture&&P(this._texture),this.onUpdate(u!==l||d!==c)}).catch(e=>{this.onError({url:n.url,source:n.source,sourceIndex:n.sourceIndex,loadOptions:this._loadOptions,error:e})}).finally(()=>{this._pendingCount--})}constructor(e,{onUpdate:t=m,onError:n=m}){this._loadOptions=null,this._texture=null,this._externalTexture=null,this._mapping={},this._samplerParameters=null,this._pendingCount=0,this._autoPacking=!1,this._xOffset=0,this._yOffset=0,this._rowHeight=0,this._buffer=4,this._canvasWidth=1024,this._canvasHeight=0,this._canvas=null,this.device=e,this.onUpdate=t,this.onError=n}}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}
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 j=[0,0,0,255],S={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeBasis:"height",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:e=>e.position},getIcon:{type:"accessor",value:e=>e.icon},getColor:{type:"accessor",value:j},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,optional:!0},textureParameters:{type:"object",ignore:!0,value:null}};class C 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 icon-layer-vertex-shader\nin vec2 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin float instanceSizes;\nin float instanceAngles;\nin vec4 instanceColors;\n#ifdef USE_ROW_INDEXES\nin float rowIndexes;\n#endif\nin vec4 instanceIconFrames;\nin float instanceColorModes;\nin vec2 instanceOffsets;\nin vec2 instancePixelOffset;\nout float vColorMode;\nout vec4 vColor;\nout vec2 vTextureCoords;\nout vec2 uv;\nvec2 rotate_by_angle(vec2 vertex, float angle) {\nfloat angle_radian = angle * PI / 180.0;\nfloat cos_angle = cos(angle_radian);\nfloat sin_angle = sin(angle_radian);\nmat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\nreturn rotationMatrix * vertex;\n}\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = positions;\n#ifdef USE_ROW_INDEXES\ngeometry.pickingColor = picking_getPickingColorFromIndex(rowIndexes);\n#else\ngeometry.pickingColor = picking_getPickingColorFromInstanceID();\n#endif\nuv = positions;\nvec2 iconSize = instanceIconFrames.zw;\nfloat sizePixels = clamp(\nproject_size_to_pixel(instanceSizes * icon.sizeScale, icon.sizeUnits),\nicon.sizeMinPi
1xels, icon.sizeMaxPixels\n);\nfloat iconConstraint = icon.sizeBasis == 0.0 ? iconSize.x : iconSize.y;\nfloat instanceScale = iconConstraint == 0.0 ? 0.0 : sizePixels / iconConstraint;\nvec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\npixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\npixelOffset += instancePixelOffset;\npixelOffset.y *= -1.0;\nif (icon.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = vec3(pixelOffset, 0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\nDECKGL_FILTER_SIZE(offset_common, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nvTextureCoords = mix(\ninstanceIconFrames.xy,\ninstanceIconFrames.xy + iconSize,\n(positions.xy + 1.0) / 2.0\n) / icon.iconsTextureDim;\nvColor = instanceColors;\nDECKGL_FILTER_COLOR(vColor, geometry);\nvColorMode = instanceColorModes;\n}\n",fs:"#version 300 es\n#define SHADER_NAME icon-layer-fragment-shader\nprecision highp float;\nuniform sampler2D iconsTexture;\nin float vColorMode;\nin vec4 vColor;\nin vec2 vTextureCoords;\nin vec2 uv;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = uv;\nvec4 texColor = texture(iconsTexture, vTextureCoords);\nvec3 color = mix(texColor.rgb, vColor.rgb, vColorMode);\nfloat a = texColor.a * layer.opacity * vColor.a;\nif (a < icon.alphaCutoff) {\ndiscard;\n}\nfragColor = vec4(color, a);\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:'struct IconUniforms {\n sizeScale: f32,\n iconsTextureDim: vec2<f32>,\n sizeBasis: f32,\n sizeMinPixels: f32,\n sizeMaxPixels: f32,\n billboard: i32,\n sizeUnits: i32,\n alphaCutoff: f32\n};\n\n@group(0) @binding(auto) var<uniform> icon: IconUniforms;\n@group(0) @binding(auto) var iconsTexture : texture_2d<f32>;\n@group(0) @binding(auto) var iconsTextureSampler : sampler;\n\nfn rotate_by_angle(vertex: vec2<f32>, angle_deg: f32) -> vec2<f32> {\n let angle_radian = angle_deg * PI / 180.0;\n let c = cos(angle_radian);\n let s = sin(angle_radian);\n let rotation = mat2x2<f32>(vec2<f32>(c, s), vec2<f32>(-s, c));\n return rotation * vertex;\n}\n\nstruct Attributes {\n @builtin(instance_index) instanceIndex : u32,\n @location(0) positions: vec2<f32>,\n\n @location(1) instancePositions: vec3<f32>,\n @location(2) instancePositions64Low: vec3<f32>,\n @location(3) instanceSizes: f32,\n @location(4) instanceAngles: f32,\n @location(5) instanceColors: vec4<f32>,\n @location(6) instanceIconFrames: vec4<f32>,\n @location(7) instanceColorModes: f32,\n @location(8) instanceOffsets: vec2<f32>,\n @location(9) instancePixelOffset: vec2<f32>,\n PICKING_COLOR_ATTRIBUTE\n};\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n\n @location(0) vColorMode: f32,\n @location(1) vColor: vec4<f32>,\n @location(2) vTextureCoords: vec2<f32>,\n @location(3) uv: vec2<f32>,\n @location(4) pickingColor: vec3<f32>,\n};\n\n@vertex\nfn vertexMain(inp: Attributes) -> Varyings {\n // write geometry fields used by filters + FS\n geometry.worldPosition = inp.instancePositions;\n geometry.uv = inp.positions;\n geometry.pickingColor = PICKING_COLOR_VALUE;\n\n var outp: Varyings;\n outp.uv = inp.positions;\n\n let iconSize = inp.instanceIconFrames.zw;\n\n // convert size in meters to pixels, then clamp\n let sizePixels = clamp(\n project_unit_size_to_pixel(inp.instanceSizes * icon.sizeScale, icon.sizeUnits),\n icon.sizeMinPi
1xels, icon.sizeMaxPixels\n );\n\n // scale icon height to match instanceSize\n let iconConstraint = select(iconSize.y, iconSize.x, icon.sizeBasis == 0.0);\n let instanceScale = select(sizePixels / iconConstraint, 0.0, iconConstraint == 0.0);\n\n // scale and rotate vertex in "pixel" units; then add per-instance pixel offset\n var pixelOffset = inp.positions / 2.0 * iconSize + inp.instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, inp.instanceAngles) * instanceScale;\n pixelOffset = pixelOffset + inp.instancePixelOffset;\n pixelOffset.y = pixelOffset.y * -1.0;\n\n if (icon.billboard != 0) {\n var pos = project_position_to_clipspace(inp.instancePositions, inp.instancePositions64Low, vec3<f32>(0.0)); // TODO, &geometry.position);\n // DECKGL_FILTER_GL_POSITION(pos, geometry);\n\n var offset = vec3<f32>(pixelOffset, 0.0);\n // DECKGL_FILTER_SIZE(offset, geometry);\n let clipOffset = project_pixel_size_to_clipspace(offset.xy);\n pos = vec4<f32>(pos.x + clipOffset.x, pos.y + clipOffset.y, pos.z, pos.w);\n outp.position = pos;\n } else {\n var offset_common = vec3<f32>(project_pixel_size_vec2(pixelOffset), 0.0);\n // DECKGL_FILTER_SIZE(offset_common, geometry);\n var pos = project_position_to_clipspace(inp.instancePositions, inp.instancePositions64Low, offset_common); // TODO, &geometry.position);\n // DECKGL_FILTER_GL_POSITION(pos, geometry);\n outp.position = pos;\n }\n\n let uvMix = (inp.positions.xy + vec2<f32>(1.0, 1.0)) * 0.5;\n outp.vTextureCoords = mix(inp.instanceIconFrames.xy, inp.instanceIconFrames.xy + iconSize, uvMix) / icon.iconsTextureDim;\n\n outp.vColor = inp.instanceColors;\n // DECKGL_FILTER_COLOR(outp.vColor, geometry);\n\n outp.vColorMode = inp.instanceColorModes;\n outp.pickingColor = geometry.pickingColor;\n\n return outp;\n}\n\n@fragment\nfn fragmentMain(inp: Varyings) -> @location(0) vec4<f32> {\n // expose to deck.gl filter hooks\n geometry.uv = inp.uv;\n\n let texColor = textureSample(iconsTexture, iconsTextureSampler, inp.vTextureCoords);\n\n // if colorMode == 0, use pixel color from the texture\n // if colorMode == 1 (or picking), use texture as transparency mask\n let rgb = mix(texColor.rgb, inp.vColor.rgb, inp.vColorMode);\n let a = texColor.a * layer.opacity * inp.vColor.a;\n\n if (a < icon.alphaCutoff) {\n discard;\n }\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(inp.pickingColor)) {\n discard;\n }\n return vec4<f32>(inp.pickingColor, 1.0);\n }\n\n var fragColor = deckgl_premultiplied_alpha(vec4<f32>(rgb, a));\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(inp.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 return fragColor;\n}\n'.replace("PICKING_COLOR_ATTRIBUTE",n?"@location(10) rowIndexes: u32,":"").replace("PICKING_COLOR_VALUE",n?"picking_getPickingColorFromIndex(inp.rowIndexes)":"picking_getPickingColorFromIndex(inp.instanceIndex)"),defines:n?{USE_ROW_INDEXES:!0}:{},modules:[r.A,o.A,s.Ay,d]})}initializeState(){var e,t;this.state={iconManager:new x(this.context.device,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced(O({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,bufferGroup:"icon-instance-data",accessor:"getSize",defaultValue:1},instanceIconDefs:{size:7,bufferGroup:"icon-instance-data",accessor:"getIcon",transform:this.getInstanceIconDef,shaderAttributes:{instanceOffsets:{size:2,elementOffset:0},instanceIconFrames:{size:4,elementOffset:2},instanceColorModes:{size:1,elementOffset:6}}},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,bufferGroup:"icon-instance-data",accessor:"getColor",defaultValue:j},instanceAngles:{size:1,transition:!0,bufferGroup:"icon-instance-data",accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,bufferGroup:"icon-instance-data",accessor:"getPixelOffset"}},(null==(t=this.props.data)||null==(e=t.attributes)?void 0:e.rowIndexes)?{rowIndexes:{size:1,type:"uint32",noAlloc:!0}}:{}))}updateState(e){super.updateState(e);let{props:t,oldProps:n,changeFlags:i}=e,r=this.getAttributeManager(),{iconAtlas:o,iconMapping:s,data:a,getIcon:l,textureParameters:c}=t,{iconManager:p}=this.state;if("string"==typeof o)return;let u=o||this.internalState.isAsyncPropLoading("iconAtlas");
1if(p.setProps({loadOptions:t.loadOptions,autoPacking:!u,iconAtlas:o,iconMapping:u?s:null,textureParameters:c}),u?n.iconMapping!==t.iconMapping&&r.invalidate("getIcon"):(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getIcon))&&p.packIcons(a,l),i.extensionsChanged){var d;null==(d=this.state.model)||d.destroy(),this.state.model=this._getModel(),r.invalidateAll()}}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(e){super.finalizeState(e),this.state.iconManager.finalize()}draw(e){let{uniforms:t}=e;this._drawModel(this.state.model)}_drawModel(e){let{sizeScale:t,sizeBasis:n,sizeMinPixels:i,sizeMaxPixels:r,sizeUnits:o,billboard:s,alphaCutoff:l}=this.props,{iconManager:c}=this.state,p=c.getTexture();if(p){let c={iconsTexture:p,iconsTextureDim:[p.width,p.height],sizeUnits:a.p5[o],sizeScale:t,sizeBasis:+("height"===n),sizeMinPixels:i,sizeMaxPixels:r,billboard:s,alphaCutoff:l};e.shaderInputs.setProps({icon:c}),e.draw(this.context.renderPass)}}_getModel(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.id;return new c.K(this.context.device,(e=O({},this.getShaders()),t=t={id:n,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new p.V({topology:"triangle-strip",attributes:{positions:{size:2,value:new Float32Array([-1,-1,1,-1,-1,1,1,1])}}}),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))}_onUpdate(e){if(e){var t;null==(t=this.getAttributeManager())||t.invalidate("getIcon"),this.setNeedsUpdate()}else this.setNeedsRedraw()}_onError(e){var t;let n=null==(t=this.getCurrentLayer())?void 0:t.props.onIconError;n?n(e):l.A.error(e.error.message)()}getInstanceIconDef(e){let{x:t,y:n,width:i,height:r,mask:o,anchorX:s=i/2,anchorY:a=r/2}=this.state.iconManager.getIconMapping(e);return[i/2-s,r/2-a,t,n,i,r,+!!o]}}C.defaultProps=S,C.layerName="IconLayer";let k=C},26807(e,t,n){n.d(t,{A:()=>C});var i=n(13563),r=n(8070),o=n(5214),s=n(69798),a=n(42943),l=n(36485),c=n(48895),p=n(62837),u=n(12434),d=n(47958),h=n(83730),f=n(55803);class g extends d.A{get(e){return this.attributes[e]}getPathSegmentIndices(e){var t;let n=this.attributes.segmentTypes,i=this.vertexStarts[e],r=Math.min(null!=(t=this.vertexStarts[e+1])?t:this.instanceCount,this.instanceCount),o=[];for(let e=i;e<r-1;e++)(4&n[e])==0&&o.push(e);return o.length&&(4&n[i])!=0&&o.unshift(o.pop()),o}getGeometryFromBuffer(e){return this.normalize||this.opts.isWebGPU?super.getGeometryFromBuffer(e):null}normalizeGeometry(e){return this.normalize?function(e,t,n,i){let r;if(Array.isArray(e[0])){r=Array(e.length*t);for(let n=0;n<e.length;n++)for(let i=0;i<t;i++)r[n*t+i]=e[n][i]||0}else r=e;return n?(0,h.M)(r,{size:t,gridResolution:n}):i?(0,f.I)(r,{size:t}):r}(e,this.positionSize,this.opts.resolution,this.opts.wrapLongitude):e}getGeometrySize(e){if(v(e)){let t=0;for(let n of e)t+=this.getGeometrySize(n);return t}let t=this.getPathLength(e);return t<2?0:this.isClosed(e)?t<3?0:t+2:t}updateGeometryAttributes(e,t){if(0!==t.geometrySize)if(e&&v(e))for(let n of e){let e=this.getGeometrySize(n);t.geometrySize=e,this.updateGeometryAttributes(n,t),t.vertexStart+=e}else this._updateSegmentTypes(e,t),this._updatePositions(e,t)}_updateSegmentTypes(e,t){let n=this.attributes.segmentTypes,i=!!e&&this.isClosed(e),{vertexStart:r,geometrySize:o}=t;n.fill(0,r,r+o),i?(n[r]=4,n[r+o-2]=4):(n[r]+=1,n[r+o-2]+=2),n[r+o-1]=4}_updatePositions(e,t){let{positions:n}=this.attributes;if(!n||!e)return;let{vertexStart:i,geometrySize:r}=t,o=[,,,];for(let t=i,s=0;s<r;t++,s++)this.getPointOnPath(e,s,o),n[3*t]=o[0],n[3*t+1]=o[1],n[3*t+2]=o[2]}getPathLength(e){return e.length/this.positionSize}getPointOnPath(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],{positionSize:i}=this;t*i>=e.length&&(t+=1-e.length/i);let r=t*i;return n[0]=e[r],n[1]=e[r+1],n[2]=3===i&&e[r+2]||0,n}isClosed(e){if(!this.normalize)return!!this.opts.loop;let{positionSize:t}=this,n=e.length-t;return e[0]===e[n]&&e[1]===e[n+1]&&(2===t||e[2]===e[n+2])}constructor(e){var t,n;super((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}
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}({},e),n=n={attributes:{positions:{size:3,padding:18,initialize:!0,type:e.fp64?Float64Array:Float32Array},segmentTypes:{size:1,type:e.isWebGPU?Float32Array:Uint8ClampedArray}}},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))}}function v(e){return Array.isArray(e[0])}let m="layout(std140) uniform pathUniforms {\n float widthScale;\n float widthMinPixels;\n float widthMaxPixels;\n float jointType;\n float capType;\n float miterLimit;\n bool billboard;\n highp int widthUnits;\n} path;\n",y={name:"path",source:"struct PathUniforms {\n widthScale: f32,\n widthMinPixels: f32,\n widthMaxPixels: f32,\n jointType: f32,\n capType: f32,\n miterLimit: f32,\n billboard: f32,\n widthUnits: i32,\n};\n\n@group(0) @binding(auto)\nvar<uniform> path: PathUniforms;\n",vs:m,fs:m,uniformTypes:{widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",jointType:"f32",capType:"f32",miterLimit:"f32",billboard:"f32",widthUnits:"i32"}};var b=n(89945);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){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 _=[0,0,0,255],x={widthUnits:"meters",widthScale:{type:"number",min:0,value:1},widthMinPixels:{type:"number",min:0,value:0},widthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:"number",min:0,value:4},antialiasing:!1,billboard:!1,_pathType:null,getPath:{type:"accessor",value:e=>e.path},getColor:{type:"accessor",value:_},getWidth:{type:"accessor",value:1},rounded:{deprecatedFor:["jointRounded","capRounded"]}},O={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e};function j(e,t){return e===t||!!(e&&t&&e.length===t.length&&e.every((e,n)=>e===t[n]))}class S extends i.A{getShaders(){let{antialiasing:e}=this.props;return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME path-layer-vertex-shader\nin vec2 positions;\nin float instanceTypes;\nin vec3 instanceStartPositions;\nin vec3 instanceEndPositions;\nin vec3 instanceLeftPositions;\nin vec3 instanceRightPositions;\nin vec3 instanceLeftPositions64Low;\nin vec3 instanceStartPositions64Low;\nin vec3 instanceEndPositions64Low;\nin vec3 instanceRightPositions64Low;\nin float instanceStrokeWidths;\nin vec4 instanceColors;\nin float rowIndexes;\nuniform float opacity;\nout vec4 vColor;\nout vec2 vCornerOffset;\nout float vMiterLength;\nout vec2 vPathPosition;\nout float vPathLength;\nout float vJointType;\n#ifdef DASH_ENABLED\nout vec2 vPathBounds;\n#endif\nconst float EPSILON = 0.001;\nconst vec3 ZERO_OFFSET = vec3(0.0);\nfloat flipIfTrue(bool flag) {\nreturn -(float(flag) * 2. - 1.);\n}\nvec3 getLineJoinOffset(\nvec3 prevPoint, vec3 currPoint, vec3 nextPoint,\nvec2 width\n#ifdef DASH_ENABLED\n, float sourcePathLength, vec2 sourcePathRange\n#endif\n#ifdef ANTIALIASING\n, float coverageScale\n#endif\n) {\nbool isEnd = positions.x > 0.0;\nfloat sideOfPath = positions.y;\nfloat isJoint = float(sideOfPath == 0.0);\nvec3 deltaA3 = (currPoint - prevPoint);\nvec3 deltaB3 = (nextPoint - currPoint);\nmat3 rotationMatrix;\nbool needsRotation = !path.billboard && project_needs_rotation(currPoint, rotationMatrix);\nif (needsRotation) {\ndeltaA3 = deltaA3 * rotationMatrix;\ndeltaB3 = deltaB3 * rotationMatrix;\n}\nvec2 deltaA = deltaA3.xy / width;\nvec2 deltaB = deltaB3.xy / width;\nfloat lenA = length(deltaA);\nfloat lenB = length(deltaB);\nvec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0);\nvec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0);\nvec2 perpA = vec2(-dirA.y, dirA.x);\nvec2 perpB = vec2(-dirB.y, dirB.x);
1\nvec2 tangent = dirA + dirB;\ntangent = length(tangent) > 0. ? normalize(tangent) : perpA;\nvec2 miterVec = vec2(-tangent.y, tangent.x);\nvec2 dir = isEnd ? dirA : dirB;\nvec2 perp = isEnd ? perpA : perpB;\nfloat L = isEnd ? lenA : lenB;\n#ifdef DASH_ENABLED\nvec3 currDelta3 = isEnd ? deltaA3 : deltaB3;\nfloat currLength2D = length(currDelta3.xy);\nfloat arcLengthRatio = 1.0;\nfloat pathPositionOffset = 0.0;\nfloat pathLength = L;\nif (path.billboard) {\nfloat visiblePathLength = sourcePathLength * (sourcePathRange.y - sourcePathRange.x);\narcLengthRatio = L > 0.0 ? visiblePathLength / L : 0.0;\npathPositionOffset = sourcePathLength * sourcePathRange.x;\npathLength = sourcePathLength;\n} else if (currLength2D > 0.0) {\narcLengthRatio = length(currDelta3) / currLength2D;\npathLength = L * arcLengthRatio;\n}\n#endif\nfloat sinHalfA = abs(dot(miterVec, perp));\nfloat cosHalfA = abs(dot(dirA, miterVec));\nfloat turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\nfloat cornerPosition = sideOfPath * turnDirection;\nfloat miterSize = 1.0 / max(sinHalfA, EPSILON);\nmiterSize = mix(\nmin(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\nmiterSize,\nstep(0.0, cornerPosition)\n);\nvec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition))\n* (sideOfPath + isJoint * turnDirection);\nbool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\nbool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\nbool isCap = isStartCap || isEndCap;\nif (isCap) {\noffsetVec = mix(perp * sideOfPath, dir * path.capType * 4.0 * flipIfTrue(isStartCap), isJoint);\nvJointType = path.capType;\n} else {\nvJointType = path.jointType;\n}\n#ifdef ANTIALIASING\nvec2 coverageOffsetVec = offsetVec * coverageScale;\n#ifdef DASH_ENABLED\nvPathLength = pathLength;\n#else\nvPathLength = L;\n#endif\nvCornerOffset = coverageOffsetVec;\nvMiterLength = dot(vCornerOffset, miterVec * turnDirection);\nvMiterLength = isCap ? isJoint : vMiterLength;\nvec2 offsetFromStartOfPath = coverageOffsetVec + deltaA * float(isEnd);\nvPathPosition = vec2(\ndot(offsetFromStartOfPath, perp),\n#ifdef DASH_ENABLED\npathPositionOffset + dot(offsetFromStartOfPath, dir) * arcLengthRatio\n#else\ndot(offsetFromStartOfPath, dir)\n#endif\n);\ngeometry.uv = vPathPosition;\nfloat isValid = step(instanceTypes, 3.5);\nvec3 offset = vec3(coverageOffsetVec * width * isValid, 0.0);\n#else\n#ifdef DASH_ENABLED\nvPathLength = pathLength;\n#else\nvPathLength = L;\n#endif\nvCornerOffset = offsetVec;\nvMiterLength = dot(vCornerOffset, miterVec * turnDirection);\nvMiterLength = isCap ? isJoint : vMiterLength;\nvec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd);\nvPathPosition = vec2(\ndot(offsetFromStartOfPath, perp),\n#ifdef DASH_ENABLED\npathPositionOffset + dot(offsetFromStartOfPath, dir) * arcLengthRatio\n#else\ndot(offsetFromStartOfPath, dir)\n#endif\n);\ngeometry.uv = vPathPosition;\nfloat isValid = step(instanceTypes, 3.5);\nvec3 offset = vec3(offsetVec * width * isValid, 0.0);\n#endif\nif (needsRotation) {\noffset = rotationMatrix * offset;\n}\nreturn offset;\n}\nvoid clipLine(inout vec4 position, vec4 refPosition) {\nif (position.w < EPSILON) {\nfloat r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\nposition = refPosition + (position - refPosition) * r;\n}\n}\n#ifdef DASH_ENABLED\nvec2 getClippedPathRange(float startW, float endW) {\nbool startClipped = startW < EPSILON;\nbool endClipped = endW < EPSILON;\nif (startClipped && endClipped) {\nreturn vec2(0.0);\n}\nif (startClipped || endClipped) {\nfloat intersection = clamp((EPSILON - startW) / (endW - startW), 0.0, 1.0);\nreturn startClipped ? vec2(intersection, 1.0) : vec2(0.0, intersection);\n}\nreturn vec2(0.0, 1.0);\n}\n#endif\nvoid main() {\ngeometry.pickingColor = picking_getPickingColorFromIndex(rowIndexes);\nvColor = vec4(instanceColors.rgb, instanceColors.a * layer.opacity);\nfloat isEnd = positions.x;\nvec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd);\nvec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd);\nvec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd);\nvec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd);\nvec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd);\nvec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd);\ngeometry.worldPosition = currPosition;\nvec2 widthPixels = vec2(clamp(\nproject_size_to_pixel(instanceStrokeWidths * path.widthScale, path.widthUnits),\npath.widthMinPixels, path.widthMaxPixels) / 2.0);\nvec3 width;\nif (path.billboard) {\n#ifdef DASH_ENABLED\nvec4 prevPositionCommon;\nvec4 nextPositionCommon;\nvec4 prevPositionScreen = project_position_to_clipspace(\nprevPosition, prevPosition64Low, ZERO_OFFSET, prevPositionCommon\n);\n#else\nvec4 prevPositionScreen = project_position_to_clipspace(\nprevPosition, prevPosition64Low, ZERO_OFFSET\n);\n#endif\nvec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position);\n#ifdef DASH_ENABLED\nvec4 nextPositionScreen = project_position_to_clipspace(\nnextPosition, nextPosition64Low, ZERO_OFFSET, nextPositionCommon\n);\n#else\nvec4 nextPositionScreen = project_position_to_clipspace(\nnextPosition, nextPosition64Low, ZERO_OFFSET\n);
1\n#endif\n#ifdef DASH_ENABLED\nvec4 sourcePathStartScreen = mix(currPositionScreen, prevPositionScreen, isEnd);\nvec4 sourcePathEndScreen = mix(nextPositionScreen, currPositionScreen, isEnd);\nvec2 billboardPathRange = getClippedPathRange(\nsourcePathStartScreen.w, sourcePathEndScreen.w\n);\n#endif\nclipLine(prevPositionScreen, currPositionScreen);\nclipLine(nextPositionScreen, currPositionScreen);\nclipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\nwidth = vec3(widthPixels, 0.0);\nDECKGL_FILTER_SIZE(width, geometry);\n#ifdef ANTIALIASING\nvec2 coveragePadding = vec2(0.5 / project.devicePixelRatio);\nfloat coverageScale = length(width.xy) > 0.0\n? length(width.xy + coveragePadding) / length(width.xy)\n: 1.0;\n#endif\n#ifdef DASH_ENABLED\nvec3 currentDeltaCommon = isEnd > 0.0\n? geometry.position.xyz - prevPositionCommon.xyz\n: nextPositionCommon.xyz - geometry.position.xyz;\nfloat billboardPathLength = width.x > 0.0\n? length(currentDeltaCommon) * project.scale / (width.x * project.focalDistance)\n: 0.0;\n#endif\nvec3 offset = getLineJoinOffset(\nprevPositionScreen.xyz / prevPositionScreen.w,\ncurrPositionScreen.xyz / currPositionScreen.w,\nnextPositionScreen.xyz / nextPositionScreen.w,\nproject_pixel_size_to_clipspace(width.xy)\n#ifdef DASH_ENABLED\n,\nbillboardPathLength, billboardPathRange\n#endif\n#ifdef ANTIALIASING\n,\ncoverageScale\n#endif\n);\n#ifdef DASH_ENABLED\nvPathBounds = billboardPathLength * billboardPathRange;\n#endif\nDECKGL_FILTER_GL_POSITION(currPositionScreen, geometry);\ngl_Position = vec4(currPositionScreen.xyz + offset * currPositionScreen.w, currPositionScreen.w);\n} else {\nprevPosition = project_position(prevPosition, prevPosition64Low);\ncurrPosition = project_position(currPosition, currPosition64Low);\nnextPosition = project_position(nextPosition, nextPosition64Low);\nwidth = vec3(project_pixel_size(widthPixels), 0.0);\nDECKGL_FILTER_SIZE(width, geometry);\n#ifdef ANTIALIASING\nvec2 coveragePadding = project_pixel_size(vec2(0.5 / project.devicePixelRatio));\nfloat coverageScale = length(width.xy) > 0.0\n? length(width.xy + coveragePadding) / length(width.xy)\n: 1.0;\n#endif\nvec3 offset = getLineJoinOffset(\nprevPosition, currPosition, nextPosition, width.xy\n#ifdef DASH_ENABLED\n, 1.0, vec2(0.0, 1.0)\n#endif\n#ifdef ANTIALIASING\n, coverageScale\n#endif\n);\n#ifdef DASH_ENABLED\nvPathBounds = vec2(0.0, vPathLength);\n#endif\ngeometry.position = vec4(currPosition + offset, 1.0);\ngl_Position = project_common_position_to_clipspace(geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME path-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nin vec2 vCornerOffset;\nin float vMiterLength;\nin vec2 vPathPosition;\nin float vPathLength;\nin float vJointType;\n#ifdef DASH_ENABLED\nin vec2 vPathBounds;\n#endif\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = vPathPosition;\n#ifdef ANTIALIASING\n#ifdef DASH_ENABLED\nbool isCorner = vPathPosition.y < vPathBounds.x || vPathPosition.y > vPathBounds.y;\n#else\nbool isCorner = vPathPosition.y < 0.0 || vPathPosition.y > vPathLength;\n#endif\nbool isRound = vJointType > 0.5;\nfloat bodyCoord = abs(vPathPosition.x);\nfloat cornerCoord = length(vCornerOffset);\nfloat bodyPixels = (1.0 - bodyCoord) / max(fwidth(bodyCoord), 1e-6);\nfloat cornerPixels = (1.0 - cornerCoord) / max(fwidth(cornerCoord), 1e-6);\n#ifdef PATH_STYLE_OFFSET\nfloat edgePixels = isRound && isCorner ? min(cornerPixels, bodyPixels) : bodyPixels;\n#else\nfloat edgePixels = isRound && isCorner ? cornerPixels : bodyPixels;\n#endif\nif (edgePixels <= -SMOOTH_EDGE_RADIUS) {\ndiscard;\n}\nif (isCorner) {\nif (!isRound && vMiterLength > path.miterLimit + 1.0) {\ndiscard;\n}\n}\nfragColor = vColor;\nfragColor.a *= smoothedge(0.0, edgePixels);\n#else\n#ifdef DASH_ENABLED\nif (vPathPosition.y < vPathBounds.x || vPathPosition.y > vPathBounds.y) {\n#else\nif (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) {\n#endif\nif (vJointType > 0.5 && length(vCornerOffset) > 1.0) {\ndiscard;\n}\nif (vJointType < 0.5 && vMiterLength > path.miterLimit + 1.0) {\ndiscard;\n}\n}\nfragColor = vColor;\n#endif\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:"const EPSILON: f32 = 0.001;\nconst ZERO_OFFSET: vec3<f32> = vec3<f32>(0.0, 0.0, 0.0);\n\nstruct JoinResult {\n offset: vec3<f32>,\n cornerOffset: vec2<f32>,\n miterLength: f32,\n pathPosition: vec2<f32>,\n pathLength: f32,\n jointType: f32,\n};\n\nstruct Attributes {\n @location(0) positions: vec2<f32>,\n @location(1) instanceTypes: f32,\n @location(2) instanceLeftPositions: vec3<f32>,\n @location(3) instanceStartPositions: vec3<f32>,\n @location(4) instanceEndPositions: vec3<f32>,\n @location(5) instanceRightPositions: vec3<f32>,\n @location(6) instanceLeftPositions64Low: vec3<f32>,\n @location(7) instanceStartPositions64Low: vec3<f32>,\n @location(8) instanceEndPositions64Low: vec3<f32>,\n @location(9) instanceRightPositions64Low: vec3<f32>,\n @location(10) instanceStrokeWidths: f32,\n @location(11) instanceColors: vec4<f32>,\n @location(12) rowIndexes: u32,\n};
1\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n @location(0) vColor: vec4<f32>,\n @location(1) vCornerOffset: vec2<f32>,\n @location(2) vMiterLength: f32,\n @location(3) vPathPosition: vec2<f32>,\n @location(4) vPathLength: f32,\n @location(5) vJointType: f32,\n // Location 6 is reserved for TripsLayer's injected vTime varying.\n @location(7) clipCoordinates: vec2<f32>,\n#ifdef DASH_ENABLED\n @location(8) vPathBounds: vec2<f32>,\n#endif\n};\n\nfn flipIfTrue(flag: bool) -> f32 {\n return select(1.0, -1.0, flag);\n}\n\nfn clipLine(position: vec4<f32>, refPosition: vec4<f32>) -> vec4<f32> {\n if (position.w < EPSILON) {\n let r = (EPSILON - refPosition.w) / (position.w - refPosition.w);\n return refPosition + (position - refPosition) * r;\n }\n return position;\n}\n\n#ifdef DASH_ENABLED\n// Return the visible interval of the original segment before clipLine moves either endpoint.\nfn getClippedPathRange(startW: f32, endW: f32) -> vec2<f32> {\n let startClipped = startW < EPSILON;\n let endClipped = endW < EPSILON;\n if (startClipped && endClipped) {\n return vec2<f32>(0.0, 0.0);\n }\n if (startClipped || endClipped) {\n let intersection = clamp((EPSILON - startW) / (endW - startW), 0.0, 1.0);\n if (startClipped) {\n return vec2<f32>(intersection, 1.0);\n }\n return vec2<f32>(0.0, intersection);\n }\n return vec2<f32>(0.0, 1.0);\n}\n#endif\n\nfn getLineJoinOffset(\n prevPoint: vec3<f32>,\n currPoint: vec3<f32>,\n nextPoint: vec3<f32>,\n width: vec2<f32>,\n#ifdef DASH_ENABLED\n sourcePathLength: f32,\n sourcePathRange: vec2<f32>,\n#endif\n#ifdef ANTIALIASING\n coverageScale: f32,\n#endif\n positions: vec2<f32>,\n instanceTypes: f32\n) -> JoinResult {\n let isEnd = positions.x > 0.0;\n let sideOfPath = positions.y;\n let isJoint = select(0.0, 1.0, sideOfPath == 0.0);\n\n var deltaA3 = currPoint - prevPoint;\n var deltaB3 = nextPoint - currPoint;\n\n let rotationResult = project_needs_rotation(currPoint);\n if (path.billboard == 0.0 && rotationResult.needsRotation) {\n deltaA3 = rotationResult.transform * deltaA3;\n deltaB3 = rotationResult.transform * deltaB3;\n }\n\n let deltaA = deltaA3.xy / width;\n let deltaB = deltaB3.xy / width;\n\n let lenA = length(deltaA);\n let lenB = length(deltaB);\n\n let dirA = select(vec2<f32>(0.0, 0.0), normalize(deltaA), lenA > 0.0);\n let dirB = select(vec2<f32>(0.0, 0.0), normalize(deltaB), lenB > 0.0);\n\n let perpA = vec2<f32>(-dirA.y, dirA.x);\n let perpB = vec2<f32>(-dirB.y, dirB.x);\n\n var tangent = dirA + dirB;\n tangent = select(perpA, normalize(tangent), length(tangent) > 0.0);\n let miterVec = vec2<f32>(-tangent.y, tangent.x);\n let dir = select(dirB, dirA, isEnd);\n let perp = select(perpB, perpA, isEnd);\n#ifdef DASH_ENABLED\n let segmentLength2D = select(lenB, lenA, isEnd);\n\n // Extrusion happens in the XY plane, so segmentLength2D is a 2D length and pathPosition.y\n // below measures 2D distance along the segment. For a path that also moves in Z the true\n // arc length is longer by this ratio. Scaling pathLength and pathPosition.y by it makes\n // the coordinate measure real 3D distance while leaving the joint tests unchanged, since\n // they compare the two against each other and both are scaled alike. Billboard mode\n // extrudes in clip space, where the perspective divide has already reduced the segment to\n // its screen projection, so its complete common-space length is supplied by the caller.\n // Mirrors path-layer-vertex.glsl.ts.\n let currDelta3 = select(deltaB3, deltaA3, isEnd);\n let currLength2D = length(currDelta3.xy);\n // Do not clamp a valid denominator to EPSILON: high-zoom Web Mercator deltas are often\n // smaller than that in common space, and changing their scale corrupts even flat paths.\n let safeLength2D = select(1.0, currLength2D, currLength2D > 0.0);\n var arcLengthRatio = 1.0;\n var pathPositionOffset = 0.0;\n var pathLength = segmentLength2D;\n if (path.billboard != 0.0) {\n // clipLine may shorten the visible screen-space segment. Preserve the corresponding interval\n // of the complete common-space arclength instead of compressing the full dash period into the\n // visible span. Keep pathLength complete so justification is stable as the camera clips it.\n let visiblePathLength = sourcePathLength * (sourcePathRange.y - sourcePathRange.x);\n arcLengthRatio = 0.0;\n if (segmentLength2D > 0.0) {\n arcLengthRatio = visiblePathLength / segmentLength2D;\n }\n pathPositionOffset = sourcePathLength * sourcePathRange.x;\n pathLength = sourcePathLength;\n } else if (currLength2D > 0.0) {\n arcLengthRatio = length(currDelta3) / safeLength2D;\n pathLength = segmentLength2D * arcLengthRatio;\n }\n#else\n let pathLength = select(lenB, lenA, isEnd);\n#endif\n\n let sinHalfA = abs(dot(miterVec, perp));\n let cosHalfA = abs(dot(dirA, miterVec));\n let turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x);\n let cornerPosition = sideOfPath * turnDirection;\n\n var miterSize = 1.0 / max(sinHalfA, EPSILON);\n miterSize = mix(\n min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)),\n miterSize,\n step(0.0, cornerPosition)\n );\n\n var offsetVec =\n mix(miterVec * miterSize, perp, step(0.5, cornerPosition)) *\n (sideOfPath + isJoint * turnDirection);\n\n let isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0));\n let isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0));\n let isCap = isStartCap || isEndCap;\n\n var jointType = path.jointType;\n if (isCap) {\n offsetVec = mix(\n perp * sideOfPath,\n dir * path.capType * 4.0 * flipIfTrue(isStartCap),\n isJoint\n );\n jointType = path.capType;\n }\n\n#ifdef ANTIALIASING\n let coverageOffsetVec = offsetVec * coverageScale;\n var miterLength = dot(coverageOffsetVec, miterVec * turnDirection);\n#else\n var miterLength = dot(offsetVec, miterVec * turnDirection);\n#endif\n miterLength = select(miterLength, isJoint, isCap);\n\n#ifdef ANTIALIASING\n let offsetFromStartOfPath = coverageOffsetVec + deltaA * select(0.0, 1.0, isEnd);\n#else\n let offsetFromStartOfPath = offsetVec + deltaA * select(0.0, 1.0, isEnd);\n#endif\n let pathPosition = vec2<f32>(\n dot(offsetFromStartOfPath, perp),\n#ifdef DASH_ENABLED\n pathPositionOffset + dot(offsetFromStartOfPath, dir) * arcLengthRatio\n#else\n dot(offsetFromStartOfPath, dir)\n#endif\n );\n let isValid = step(f32(instanceTypes), 3.5);\n#ifdef ANTIALIASING\n var offset = vec3<f32>(coverageOffsetVec * width * isValid, 0.0);\n#else\n var offset = vec3<f32>(offsetVec * width * isValid, 0.0);\n#endif\n\n if (path.billboard == 0.0 && rotationResult.needsRotation) {\n offset = rotationResult.transform * offset;\n }\n\n#ifdef ANTIALIASING\n return JoinResult(\n offset, coverageOffsetVec, miterLength, pathPosition, pathLength, jointType\n );\n#else\n return JoinResult(offset, offsetVec, miterLength, pathPosition, pathLength, jointType);\n#endif\n}\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var varyings: Varyings;\n\n geometry.pickingColor = picking_getPickingColorFromIndex(attributes.rowIndexes);\n\n let isEnd = attributes.positions.x;\n\n let prevPosition = mix(attributes.instanceLeftPositions, attributes.instanceStartPositions, isEnd);\n let prevPosition64Low = mix(\n attributes.instanceLeftPositions64Low,\n attributes.instanceStartPositions64Low,\n isEnd\n );\n let currPosition = mix(attributes.instanceStartPositions, attributes.instanceEndPositions, isEnd);\n let currPosition64Low = mix(\n attributes.instanceStartPositions64Low,\n attributes.instanceEndPositions64Low,\n isEnd\n );\n let nextPosition = mix(attributes.instanceEndPositions, attributes.instanceRightPositions, isEnd);\n let nextPosition64Low = mix(\n attributes.instanceEndPositions64Low,\n attributes.instanceRightPositions64Low,\n isEnd\n );\n\n geometry.worldPosition = currPosition;\n\n let widthPixels =\n clamp(\n project_unit_size_to_pixel(attributes.instanceStrokeWidths * path.widthScale, path.widthUnits),\n path.widthMinPixels,\n path.widthMaxPixels\n ) / 2.0;\n\n if (path.billboard != 0.0) {\n#ifdef DASH_ENABLED\n let prevProjection = project_position_to_clipspace_and_commonspace(\n prevPosition, prevPosition64Low, ZERO_OFFSET\n );\n let nextProjection = project_position_to_clipspace_and_commonspace(\n nextPosition, nextPosition64Low, ZERO_OFFSET\n );\n let prevPositionCommon = prevProjection.commonPosition.xyz;\n let nextPositionCommon = nextProjection.commonPosition.xyz;\n var prevPositionScreen = prevProjection.clipPosition;\n var nextPositionScreen = nextProjection.clipPosition;\n#else\n var prevPositionScreen = project_position_to_clipspace(\n prevPosition, prevPosition64Low, ZERO_OFFSET\n );\n var nextPositionScreen = project_position_to_clipspace(\n nextPosition, nextPosition64Low, ZERO_OFFSET\n );
1\n#endif\n let currProjection = project_position_to_clipspace_and_commonspace(\n currPosition, currPosition64Low, ZERO_OFFSET\n );\n geometry.position = currProjection.commonPosition;\n var currPositionScreen = currProjection.clipPosition;\n#ifdef DASH_ENABLED\n let currPositionCommon = currProjection.commonPosition.xyz;\n let sourcePathStartScreen = mix(currPositionScreen, prevPositionScreen, isEnd);\n let sourcePathEndScreen = mix(nextPositionScreen, currPositionScreen, isEnd);\n let billboardPathRange = getClippedPathRange(\n sourcePathStartScreen.w, sourcePathEndScreen.w\n );\n#endif\n\n prevPositionScreen = clipLine(prevPositionScreen, currPositionScreen);\n nextPositionScreen = clipLine(nextPositionScreen, currPositionScreen);\n currPositionScreen = clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd));\n\n#ifdef ANTIALIASING\n let coverageScale = select(\n 1.0,\n (widthPixels + 0.5 / project.devicePixelRatio) / max(widthPixels, 1e-6),\n widthPixels > 0.0\n );\n#endif\n#ifdef DASH_ENABLED\n let currentDeltaCommon = select(\n nextPositionCommon - currPositionCommon,\n currPositionCommon - prevPositionCommon,\n isEnd > 0.0\n );\n let billboardPathLength = select(\n 0.0,\n length(currentDeltaCommon) * project.scale / (widthPixels * project.focalDistance),\n widthPixels > 0.0\n );\n#endif\n let join = getLineJoinOffset(\n prevPositionScreen.xyz / prevPositionScreen.w,\n currPositionScreen.xyz / currPositionScreen.w,\n nextPositionScreen.xyz / nextPositionScreen.w,\n project_pixel_size_to_clipspace(vec2<f32>(widthPixels, widthPixels)),\n#ifdef DASH_ENABLED\n billboardPathLength,\n billboardPathRange,\n#endif\n#ifdef ANTIALIASING\n coverageScale,\n#endif\n attributes.positions,\n attributes.instanceTypes\n );\n#ifdef DASH_ENABLED\n // Phase and justification use the complete source segment, while cap and joint coverage\n // must still recognize the endpoints moved by clipLine.\n varyings.vPathBounds = billboardPathLength * billboardPathRange;\n#endif\n\n geometry.uv = join.pathPosition;\n varyings.position = vec4<f32>(\n currPositionScreen.xyz + join.offset * currPositionScreen.w,\n currPositionScreen.w\n );\n varyings.vCornerOffset = join.cornerOffset;\n varyings.vMiterLength = join.miterLength;\n varyings.vPathPosition = join.pathPosition;\n varyings.vPathLength = join.pathLength;\n varyings.vJointType = join.jointType;\n } else {\n let prevPositionCommon = project_position_vec3_f64(prevPosition, prevPosition64Low);
1\n let currPositionCommon = project_position_vec3_f64(currPosition, currPosition64Low);\n let nextPositionCommon = project_position_vec3_f64(nextPosition, nextPosition64Low);\n\n let width = vec2<f32>(\n project_pixel_size_float(widthPixels),\n project_pixel_size_float(widthPixels)\n );\n#ifdef ANTIALIASING\n let coverageScale = select(\n 1.0,\n (widthPixels + 0.5 / project.devicePixelRatio) / max(widthPixels, 1e-6),\n widthPixels > 0.0\n );\n#endif\n let join = getLineJoinOffset(\n prevPositionCommon,\n currPositionCommon,\n nextPositionCommon,\n width,\n#ifdef DASH_ENABLED\n 1.0,\n vec2<f32>(0.0, 1.0),\n#endif\n#ifdef ANTIALIASING\n coverageScale,\n#endif\n attributes.positions,\n attributes.instanceTypes\n );\n#ifdef DASH_ENABLED\n varyings.vPathBounds = vec2<f32>(0.0, join.pathLength);\n#endif\n\n geometry.position = vec4<f32>(currPositionCommon + join.offset, 1.0);\n geometry.uv = join.pathPosition;\n varyings.position = project_common_position_to_clipspace(geometry.position);\n varyings.vCornerOffset = join.cornerOffset;\n varyings.vMiterLength = join.miterLength;\n varyings.vPathPosition = join.pathPosition;\n varyings.vPathLength = join.pathLength;\n varyings.vJointType = join.jointType;\n }\n\n varyings.clipCoordinates = geometry.position.xy;\n clip_filterPosition(&varyings.position, geometry.worldPosition.xy);\n\n varyings.vColor = vec4<f32>(\n attributes.instanceColors.rgb,\n attributes.instanceColors.a * layer.opacity\n );\n return varyings;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n geometry.uv = varyings.vPathPosition;\n\n#ifdef ANTIALIASING\n // Coordinates of the outer silhouette, in units of half-width: rounded joints and caps are\n // bounded by the corner offset, everywhere else by the edge of the stroke. Dividing by the\n // screen-space derivative converts the distance to the boundary into device pixels, which stays\n // correct under perspective foreshortening and under extensions that rescale the stroke.\n#ifdef DASH_ENABLED\n let isCorner =\n varyings.vPathPosition.y < varyings.vPathBounds.x ||\n varyings.vPathPosition.y > varyings.vPathBounds.y;\n#else\n let isCorner = varyings.vPathPosition.y < 0.0 || varyings.vPathPosition.y > varyings.vPathLength;\n#endif\n let isRound = varyings.vJointType > 0.5;\n\n // Distance to the silhouette in device pixels, from the derivative of the coordinate that\n // bounds it. Computed before the discards below: derivatives need uniform control flow and are\n // undefined after a discard in the quad. See dev-docs/RFCs/v9.4/analytic-antialiasing-rfc.md\n let bodyCoord = abs(varyings.vPathPosition.x);\n let cornerCoord = length(varyings.vCornerOffset);\n // Both evaluated so each derivative stays on one field across the corner/body boundary\n let bodyPixels = (1.0 - bodyCoord) / max(fwidth(bodyCoord), 1e-6);\n let cornerPixels = (1.0 - cornerCoord) / max(fwidth(cornerCoord), 1e-6);\n#ifdef PATH_STYLE_OFFSET\n // Rounded corners still intersect the stroke-width envelope. Extensions may remap\n // vPathPosition.x independently of vCornerOffset, as PathStyleExtension does for offsets.\n let edgePixels = select(bodyPixels, min(cornerPixels, bodyPixels), isRound && isCorner);\n#else\n let edgePixels = select(bodyPixels, cornerPixels, isRound && isCorner);\n#endif\n\n // Fragments outside the coverage ramp must not write depth or picking colors.\n if (edgePixels <= -SMOOTH_EDGE_RADIUS) {\n discard;\n }\n\n if (isCorner) {\n if (!isRound && varyings.vMiterLength > path.miterLimit + 1.0) {\n discard;\n }\n }\n\n var color = varyings.vColor;\n\n // Feather one device pixel across the width only, before premultiplication. edgePixels is a\n // signed device-pixel distance and SMOOTH_EDGE_RADIUS is 0.5, so this ramps across one pixel.\n color.a *= smoothedge(0.0, edgePixels);\n#else\n#ifdef DASH_ENABLED\n if (\n varyings.vPathPosition.y < varyings.vPathBounds.x ||\n varyings.vPathPosition.y > varyings.vPathBounds.y\n ) {\n#else\n if (\n varyings.vPathPosition.y < 0.0 ||\n varyings.vPathPosition.y > varyings.vPathLength\n ) {\n#endif\n if (varyings.vJointType > 0.5 && length(varyings.vCornerOffset) > 1.0) {\n discard;\n }\n if (\n varyings.vJointType < 0.5 &&\n varyings.vMiterLength > path.miterLimit + 1.0\n ) {\n discard;\n }\n }\n#endif\n\n // Fragment-layer injections that discard pixels must run after analytic coverage derivatives.\n // See TripsLayer, which rejects fragments outside of the active time window at this anchor.\n // DECKGL_FILTER_COLOR\n clip_filterColor(varyings.clipCoordinates);\n#ifdef ANTIALIASING\n return deckgl_premultiplied_alpha(color);\n#else\n return deckgl_premultiplied_alpha(varyings.vColor);\n#endif\n}\n",defines:e?{ANTIALIASING:1}:{},modules:[r.A,o.A,s.Ay,y,..."webgpu"===this.context.device.type?[b.A]:[]]})}get wrapLongitude(){return!1}getBounds(){var e;return"webgpu"===this.context.device.type?null:null==(e=this.getAttributeManager())?void 0:e.getBounds(["vertexPositions"])}getPathProjectionScale(e){var t;let n=this.props.coordinateSystem;if(!(null==(t=this.getAttributeManager())?void 0:t.getAttributes().instanceDashOffsets))return null;if(e instanceof a.A&&e.zoom>=12&&("default"===n||"lnglat"===n||"cartesian"===n)){let t=l.A.getUniforms({viewport:e,coordinateSystem:n,coordinateOrigin:this.props.coordinateOrigin,autoWrapLongitude:this.wrapLongitude});return[e.projectionMode,t.coordinateOrigin[1],t.commonOrigin[1],...t.commonUnitsPerWorldUnit,...t.commonUnitsPerWorldUnit2,t.commonUnitsPerMeter[2]]}let i=function(e){if(e.isGeospatial)return null;let{unitsPerMeter:t}=e.distanceScales;return[t[0],t[1],t[2]]}(e);return i?[e.projectionMode,...i]:[e.projectionMode]}shouldUpdateState(e){var t,n;let{viewport:i}=this.context;return super.shouldUpdateState(e)||(null==(t=this.state)?void 0:t.tessellationResolution)!==i.resolution||!j(null==(n=this.state)?void 0:n.pathProjectionScale,this.getPathProjectionScale(i))}initializeState(){let e="webgpu"===this.context.device.type;this.getAttributeManager().addInstanced(P(w({},e?{pathPositions:{size:24,type:"float32",transition:!1,accessor:"getPath",update:this.calculateWebGPUPositions,shaderAttributes:{instanceLeftPositions:{size:3,elementOffset:0},instanceStartPositions:{size:3,elementOffset:3},instanceEndPositions:{size:3,elementOffset:6},instanceRightPositions:{size:3,elementOffset:9},instanceLeftPositions64Low:{size:3,elementOffset:12},instanceStartPositions64Low:{size:3,elementOffset:15},instanceEndPositions64Low:{size:3,elementOffset:18},instanceRightPositions64Low:{size:3,elementOffset:21}},noAlloc:!0}}:{vertexPositions:{size:3,vertexOffset:1,type:"float64",fp64:this.use64bitPositions(),transition:O,accessor:"getPath",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}}}),{instanceTypes:{size:1,type:e?"float32":"uint8",update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:"getWidth",transition:!e&&O,defaultValue:1,bufferGroup:"path-instance-data"},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",accessor:"getColor",transition:!e&&O,defaultValue:_,bufferGroup:"path-instance-data"},rowIndexes:{size:1,type:"uint32",accessor:(e,t)=>
1{let{index:n}=t;return e&&e.__source?e.__source.index:n},bufferGroup:"path-instance-data"}})),this.setState({pathTesselator:new g({fp64:this.use64bitPositions(),isWebGPU:e}),tessellationResolution:this.context.viewport.resolution,pathProjectionScale:this.getPathProjectionScale(this.context.viewport)})}updateState(e){super.updateState(e);let{props:t,oldProps:n,changeFlags:i}=e,r=this.getAttributeManager(),{viewport:o}=this.context,s=this.state.tessellationResolution!==o.resolution,a=this.getPathProjectionScale(o),l=!j(this.state.pathProjectionScale,a),c=i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPath)||t._pathType!==n._pathType||t.positionFormat!==n.positionFormat||t.wrapLongitude!==n.wrapLongitude||s;if(i.dataChanged||c){let{pathTesselator:e}=this.state,n=t.data.attributes||{};e.updateGeometry({data:t.data,geometryBuffer:n.getPath,buffers:n,normalize:!t._pathType,loop:"loop"===t._pathType,getGeometry:t.getPath,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:o.resolution,dataChanged:c?void 0:i.dataChanged}),this.setState({numInstances:e.instanceCount,startIndices:e.vertexStarts,tessellationResolution:o.resolution,pathProjectionScale:a}),!i.dataChanged||c?r.invalidateAll():l&&r.invalidate("instanceDashOffsets")}else l&&(this.setState({pathProjectionScale:a}),r.invalidate("instanceDashOffsets"));if(i.extensionsChanged||t.antialiasing!==n.antialiasing){var p;null==(p=this.state.model)||p.destroy(),this.state.model=this._getModel(),r.invalidateAll()}}getPickingInfo(e){let t=super.getPickingInfo(e),{index:n}=t,i=this.props.data;return i[0]&&i[0].__source&&(t.object=i.find(e=>e.__source.index===n)),t}disablePickingIndex(e){let t=this.props.data;if(t[0]&&t[0].__source)for(let n=0;n<t.length;n++)t[n].__source.index===e&&this._disablePickingIndex(n);else super.disablePickingIndex(e)}draw(e){let{uniforms:t}=e,{jointRounded:n,capRounded:i,billboard:r,miterLimit:o,widthUnits:s,widthScale:a,widthMinPixels:l,widthMaxPixels:p}=this.props,u=this.state.model,d={jointType:Number(n),capType:Number(i),billboard:r,widthUnits:c.p5[s],widthScale:a,miterLimit:o,widthMinPixels:l,widthMaxPixels:p};u.shaderInputs.setProps({path:d}),u.draw(this.context.renderPass)}_getModel(){return new u.K(this.context.device,P(w({},this.getShaders()),{id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new p.V({topology:"triangle-list",attributes:{indices:new Uint16Array([0,1,2,1,4,2,1,3,4,3,5,4]),positions:{value:new Float32Array([0,0,0,-1,0,1,1,-1,1,1,1,0]),size:2}}}),isInstanced:!0}))}calculatePositions(e){let{pathTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("positions")}calculateSegmentTypes(e){let{pathTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("segmentTypes")}calculateWebGPUPositions(e){let{pathTesselator:t}=this.state,n=t.get("positions");if(!n){e.value=null;return}let i=t.instanceCount,r=new Float32Array(24*i),o=[-1,0,1,2];for(let e=0;e<i;e++){let t=24*e;for(let s=0;s<4;s++){let a=e+o[s],l=t+3*s;for(let e=0;e<3;e++){let t=a>=0&&a<i?n[3*a+e]:0,o=Math.fround(t);r[l+e]=o,r[l+e+12]=t-o}}}e.startIndices=t.vertexStarts,e.value=r}}S.defaultProps=x,S.layerName="PathLayer";let C=S},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 p="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",u={name:"scatterplot",vs:p,fs:p,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 d=n(89945);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}
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 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,u,..."webgpu"===this.context.device.type?[d.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(h({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:p,lineWidthUnits:u,lineWidthScale:d,lineWidthMinPixels:h,lineWidthMaxPixels:f}=this.props,g={stroked:s,filled:l,billboard:c,antialiasing:p,radiusUnits:a.p5[n],radiusScale:i,radiusMinPixels:r,radiusMaxPixels:o,lineWidthUnits:a.p5[u],lineWidthScale:d,lineWidthMinPixels:h,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=h({}
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},75820(e,t,n){n.d(t,{$q:()=>g,A4:()=>c,Dt:()=>l,S8:()=>d});var i=n(29469),r=n(22083);let o=r.rJ.CLOCKWISE,s=r.rJ.COUNTER_CLOCKWISE,a={isClosed:!0};function l(e){return"positions"in e?e.positions:e}function c(e){return"holeIndices"in e?e.holeIndices:null}function p(e,t,n,i,o){let s,l,c=t,p=n.length;for(let t=0;t<p;t++)for(let r=0;r<i;r++)e[c++]=n[t][r]||0;if(s=n[0],l=n[n.length-1],s[0]!==l[0]||s[1]!==l[1]||s[2]!==l[2])for(let t=0;t<i;t++)e[c++]=n[0][t]||0;return a.start=t,a.end=c,a.size=i,(0,r.UD)(e,o,a),c}function u(e,t,n,i){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5?arguments[5]:void 0,l=arguments.length>6?arguments[6]:void 0,c=(s=s||n.length)-o;if(c<=0)return t;let p=t;for(let t=0;t<c;t++)e[p++]=n[o+t];if(!function(e,t,n,i){for(let r=0;r<t;r++)if(e[n+r]!==e[i-t+r])return!1;return!0}(n,i,o,s))for(let t=0;t<i;t++)e[p++]=n[o+t];return a.start=t,a.end=p,a.size=i,(0,r.UD)(e,l,a),p}function d(e,t){var n,i=e;if(!Array.isArray(i=i&&i.positions||i)&&!ArrayBuffer.isView(i))throw Error("invalid polygon");let r=[],a=[];if("positions"in e){let{positions:n,holeIndices:i}=e;if(i){let e=0;for(let l=0;l<=i.length;l++)e=u(r,e,n,t,i[l-1],i[l],0===l?o:s),a.push(e);return a.pop(),{positions:r,holeIndices:a}}e=n}if(!Array.isArray(e[0]))return u(r,0,e,t,0,r.length,o),r;if(!((n=e).length>=1&&n[0].length>=2&&Number.isFinite(n[0][0]))){let n=0;for(let[i,l]of e.entries())n=p(r,n,l,t,0===i?o:s),a.push(n);return a.pop(),{positions:r,holeIndices:a}}return p(r,0,e,t,o),r}function h(e,t,n){let i=e.length/3,r=0;for(let o=0;o<i;o++){let s=(o+1)%i;r+=e[3*o+t]*e[3*s+n],r-=e[3*s+t]*e[3*o+n]}return Math.abs(r/2)}function f(e,t,n,i){let r=e.length/3;for(let o=0;o<r;o++){let r=3*o,s=e[r+0],a=e[r+1],l=e[r+2];e[r+t]=s,e[r+n]=a,e[r+i]=l}}function g(e,t,n,r){let o=c(e);o&&(o=o.map(e=>e/t));let s=l(e),a=r&&3===t;if(n){let e=s.length;s=s.slice();let i=[];for(let r=0;r<e;r+=t){i[0]=s[r],i[1]=s[r+1],a&&(i[2]=s[r+2]);let e=n(i);s[r]=e[0],s[r+1]=e[1],a&&(s[r+2]=e[2])}}if(a){let e=h(s,0,1),t=h(s,0,2),i=h(s,1,2);if(!e&&!t&&!i)return[];e>t&&e>i||(t>i?(n||(s=s.slice()),f(s,0,2,1)):(n||(s=s.slice()),f(s,2,0,1)))}return(0,i.Ay)(s,o,t)}},42442(e,t,n){n.d(t,{A:()=>A});var i=n(13563),r=n(8070),o=n(5214),s=n(38236),a=n(69798),l=n(12434),c=n(62837),p=n(75820),u=n(47958),d=n(83730),h=n(55803);class f extends u.A{get(e){let{attributes:t}=this;return"indices"===e?t.indices&&t.indices.subarray(0,this.vertexCount):t[e]}updateGeometry(e){super.updateGeometry(e);let t=this.buffers.indices;if(t)this.vertexCount=(t.value||t).length;else if(this.data&&!this.getGeometry)throw Error("missing indices buffer")}normalizeGeometry(e){if(this.normalize){let t=p.S8(e,this.positionSize);return this.opts.resolution?(0,d.w)(p.Dt(t),p.A4(t),{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0}):this.opts.wrapLongitude?(0,h.E)(p.Dt(t),p.A4(t),{size:this.positionSize,maxLatitude:86,edgeTypes:!0}):t}return e}getGeometrySize(e){if(g(e)){let t=0;for(let n of e)t+=this.getGeometrySize(n);return t}return p.Dt(e).length/this.positionSize}getGeometryFromBuffer(e){return this.normalize||!this.buffers.indices?super.getGeometryFromBuffer(e):null}updateGeometryAttributes(e,t){if(e&&g(e))for(let n of e){let e=this.getGeometrySize(n);t.geometrySize=e,this.updateGeometryAttributes(n,t),t.vertexStart+=e,t.indexStart=this.indexStarts[t.geometryIndex+1]}else this._updateIndices(e,t),this._updatePositions(e,t),this._updateVertexValid(e,t)}_updateIndices(e,t){let{geometryIndex:n,vertexStart:i,indexStart:r}=t,{attributes:o,indexStarts:s,typedArrayManager:a}=this,l=o.indices;if(!l||!e)return;let c=r,u=p.$q(e,this.positionSize,this.opts.preproject,this.opts.full3d);l=a.allocate(l,r+u.length,{copy:!0});for(let e=0;e<u.length;e++)l[c++]=u[e]+i;s[n+1]=r+u.length,o.indices=l}_updatePositions(e,t){let{vertexStart:n,geometrySize:i}=t,{attributes:{positions:r},positionSize:o}=this;if(!r||!e)return;let s=p.Dt(e);for(let e=n,t=0;t<i;e++,t++){let n=s[t*o],i=s[t*o+1],a=o>2?s[t*o+2]:0;r[3*e]=n,r[3*e+1]=i,r[3*e+2]=a}}_updateVertexValid(e,t){let{vertexStart:n,geometrySize:i}=t,{positionSize:r}=this,o=this.attributes.vertexValid,s=e&&p.A4(e);if(e&&e.edgeTypes?o.set(e.edgeTypes,n):o.fill(1,n,n+i),s)for(let e=0;e<s.length;e++)o[n+s[e]/r-1]=0;o[n+i-1]=0}constructor(e){var t,n;let{fp64:i,IndexType:r=Uint32Array}=e;super((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}
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}({},e),n=n={attributes:{positions:{size:3,type:i?Float64Array:Float32Array},vertexValid:{type:Uint16Array,size:1},indices:{type:r,size:1}}},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))}}function g(e){return Array.isArray(e)&&e.length>0&&!Number.isFinite(e[0])}let v="layout(std140) uniform solidPolygonUniforms {\n bool extruded;\n bool isWireframe;\n float elevationScale;\n} solidPolygon;\n",m={name:"solidPolygon",source:"struct SolidPolygonUniforms {\n extruded: f32,\n isWireframe: f32,\n elevationScale: f32,\n};\n\n@group(0) @binding(auto) var<uniform> solidPolygon: SolidPolygonUniforms;\n",vs:v,fs:v,uniformTypes:{extruded:"f32",isWireframe:"f32",elevationScale:"f32"}},y="in vec4 fillColors;\nin vec4 lineColors;\nin float rowIndexes;\nout vec4 vColor;\nstruct PolygonProps {\nvec3 positions;\nvec3 positions64Low;\nvec3 normal;\nfloat elevations;\n};\nvec3 project_offset_normal(vec3 vector) {\nif (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\nproject.coordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\nreturn normalize(vector * project.commonUnitsPerWorldUnit);\n}\nreturn project_normal(vector);\n}\nvoid calculatePosition(PolygonProps props) {\nvec3 pos = props.positions;\nvec3 pos64Low = props.positions64Low;\nvec3 normal = props.normal;\nvec4 colors = solidPolygon.isWireframe ? lineColors : fillColors;\ngeometry.worldPosition = props.positions;\ngeometry.pickingColor = picking_getPickingColorFromIndex(rowIndexes);\nif (solidPolygon.extruded) {\npos.z += props.elevations * solidPolygon.elevationScale;\n}\ngl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nif (solidPolygon.extruded) {\n#ifdef IS_SIDE_VERTEX\nnormal = project_offset_normal(normal);\n#else\nnormal = project_normal(normal);\n#endif\ngeometry.normal = normal;\nvec3 lightColor = lighting_getLightColor(colors.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal);\nvColor = vec4(lightColor, colors.a * layer.opacity);\n} else {\nvColor = vec4(colors.rgb, colors.a * layer.opacity);\n}\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",b="#version 300 es\n#define SHADER_NAME solid-polygon-layer-vertex-shader\nin vec3 vertexPositions;\nin vec3 vertexPositions64Low;\nin float elevations;\n".concat(y,"\nvoid main(void) {\nPolygonProps props;\nprops.positions = vertexPositions;\nprops.positions64Low = vertexPositions64Low;\nprops.elevations = elevations;\nprops.normal = vec3(0.0, 0.0, 1.0);\ncalculatePosition(props);\n}\n"),w="#version 300 es\n#define SHADER_NAME solid-polygon-layer-vertex-shader-side\n#define IS_SIDE_VERTEX\nin vec2 positions;\nin vec3 vertexPositions;\nin vec3 nextVertexPositions;\nin vec3 vertexPositions64Low;\nin vec3 nextVertexPositions64Low;\nin float elevations;\nin float instanceVertexValid;\n".concat(y,"\nvoid main(void) {\nif(instanceVertexValid < 0.5){\ngl_Position = vec4(0.);\nreturn;\n}\nPolygonProps props;\nvec3 pos;\nvec3 pos64Low;\nvec3 nextPos;\nvec3 nextPos64Low;\n#if RING_WINDING_ORDER_CW == 1\npos = vertexPositions;\npos64Low = vertexPositions64Low;\nnextPos = nextVertexPositions;\nnextPos64Low = nextVertexPositions64Low;\n#else\npos = nextVertexPositions;\npos64Low = nextVertexPositions64Low;\nnextPos = vertexPositions;\nnextPos64Low = vertexPositions64Low;\n#endif\nprops.positions = mix(pos, nextPos, positions.x);\nprops.positions64Low = mix(pos64Low, nextPos64Low, positions.x);\nprops.normal = vec3(\npos.y - nextPos.y + (pos64Low.y - nextPos64Low.y),\nnextPos.x - pos.x + (nextPos64Low.x - pos64Low.x),\n0.0);\nprops.elevations = elevations * positions.y;\ncalculatePosition(props);\n}\n");function P(){return"fn project_offset_normal(vector: vec3<f32>) -> vec3<f32> {\n if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT ||\n project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) {\n return normalize(vector * project.commonUnitsPerWorldUnit);\n }\n return project_normal(vector);\n}\n\nfn apply_polygon_color(\n colors: vec4<f32>,\n normal: vec3<f32>,\n position: vec4<f32>\n) -> vec4<f32> {\n if (solidPolygon.extruded > 0.5) {\n let lightColor = lighting_getLightColor2(\n colors.rgb,\n project.cameraPosition,\n position.xyz,\n normal\n );\n return vec4<f32>(lightColor, colors.a * layer.opacity);\n }\n return vec4<f32>(colors.rgb, colors.a * layer.opacity);\n}\n"}function _(){return"@fragment\nfn fragmentMain(inp: Varyings) -> @location(0) vec4<f32> {\n geometry.uv = vec2<f32>(0.0, 0.0);\n\n clip_filterColor(inp.clipCoordinates);\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(inp.pickingColor)) {\n discard;\n }\n return vec4<f32>(inp.pickingColor, 1.0);\n }\n\n var fragColor = inp.vColor;\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(inp.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 return deckgl_premultiplied_alpha(fragColor);\n}\n"}var x=n(89945);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}
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 j(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=[0,0,0,255],C={enter:(e,t)=>t.length?t.subarray(t.length-e.length):e};class k extends i.A{getShaders(e){var t;let n=this.props._normalize||"CCW"!==this.props._windingOrder?1:0;return super.getShaders({vs:"top"===e?b:w,fs:"#version 300 es\n#define SHADER_NAME solid-polygon-layer-fragment-shader\nprecision highp float;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\nfragColor = vColor;\ngeometry.uv = vec2(0.);\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:(t=!!n,"top"===e?"".concat(P(),"\n\nstruct Attributes {\n @location(0) vertexPositions: vec3<f32>,\n @location(1) vertexPositions64Low: vec3<f32>,\n @location(2) elevations: f32,\n @location(3) fillColors: vec4<f32>,\n @location(4) lineColors: vec4<f32>,\n @location(5) rowIndexes: u32,\n};\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n @location(0) vColor: vec4<f32>,\n @location(1) pickingColor: vec3<f32>,\n @location(2) clipCoordinates: vec2<f32>,\n};\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var outp: Varyings;\n\n var pos = attributes.vertexPositions;\n if (solidPolygon.extruded > 0.5) {\n pos.z += attributes.elevations * solidPolygon.elevationScale;\n }\n\n geometry.worldPosition = attributes.vertexPositions;\n geometry.pickingColor = picking_getPickingColorFromIndex(attributes.rowIndexes);\n\n let projectedPosition = project_position_to_clipspace_and_commonspace(\n pos,\n attributes.vertexPositions64Low,\n vec3<f32>(0.0)\n );\n geometry.position = projectedPosition.commonPosition;\n outp.position = projectedPosition.clipPosition;\n\n let normal = project_normal(vec3<f32>(0.0, 0.0, 1.0));\n geometry.normal = normal;\n\n let colors = select(\n attributes.fillColors,\n attributes.lineColors,\n solidPolygon.isWireframe > 0.5\n );\n outp.vColor = apply_polygon_color(colors, normal, geometry.position);\n outp.pickingColor = geometry.pickingColor;\n\n outp.clipCoordinates = geometry.position.xy;\n clip_filterPosition(&outp.position, geometry.worldPosition.xy);\n\n return outp;\n}\n\n").concat(_(),"\n"):"const RING_WINDING_ORDER_CW: bool = ".concat(t?"true":"false",";\n\n").concat(P(),"\n\nstruct Attributes {\n @location(0) positions: vec2<f32>,\n @location(1) vertexPositions: vec3<f32>,\n @location(2) vertexPositions64Low: vec3<f32>,\n @location(3) nextVertexPositions: vec3<f32>,\n @location(4) nextVertexPositions64Low: vec3<f32>,\n @location(5) vertexValid: f32,\n @location(6) elevations: f32,\n @location(7) fillColors: vec4<f32>,\n @location(8) lineColors: vec4<f32>,\n @location(9) rowIndexes: u32,\n};\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n @location(0) vColor: vec4<f32>,\n @location(1) pickingColor: vec3<f32>,\n @location(2) clipCoordinates: vec2<f32>,\n};\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var outp: Varyings;\n outp.position = vec4<f32>(0.0);\n outp.vColor = vec4<f32>(0.0);\n outp.pickingColor = picking_getPickingColorFromIndex(attributes.rowIndexes);\n outp.clipCoordinates = vec2<f32>(0.0);\n\n if (attributes.vertexValid < 0.5) {\n return outp;\n }\n\n let pos = select(attributes.nextVertexPositions, attributes.vertexPositions, RING_WINDING_ORDER_CW);\n let pos64Low = select(\n attributes.nextVertexPositions64Low,\n attributes.vertexPositions64Low,\n RING_WINDING_ORDER_CW\n );\n let nextPos = select(attributes.vertexPositions, attributes.nextVertexPositions, RING_WINDING_ORDER_CW);\n let nextPos64Low = select(\n attributes.vertexPositions64Low,\n attributes.nextVertexPositions64Low,\n RING_WINDING_ORDER_CW\n );\n\n let position = mix(pos, nextPos, attributes.positions.x);\n let position64Low = mix(pos64Low, nextPos64Low, attributes.positions.x);\n\n var worldPosition = position;\n if (solidPolygon.extruded > 0.5) {\n worldPosition.z += attributes.elevations * attributes.positions.y * solidPolygon.elevationScale;\n }\n\n geometry.worldPosition = position;\n geometry.pickingColor = picking_getPickingColorFromIndex(attributes.rowIndexes);\n\n let projectedPosition = project_position_to_clipspace_and_commonspace(\n worldPosition,\n position64Low,\n vec3<f32>(0.0)\n );\n geometry.position = projectedPosition.commonPosition;\n outp.position = projectedPosition.clipPosition;\n\n let normal = project_offset_normal(vec3<f32>(\n pos.y - nextPos.y + (pos64Low.y - nextPos64Low.y),\n nextPos.x - pos.x + (nextPos64Low.x - pos64Low.x),\n 0.0\n ));\n geometry.normal = normal;\n\n let colors = select(\n attributes.fillColors,\n attributes.lineColors,\n solidPolygon.isWireframe > 0.5\n );\n outp.vColor = apply_polygon_color(colors, normal, geometry.position);\n outp.pickingColor = geometry.pickingColor;\n\n outp.clipCoordinates = geometry.position.xy;\n clip_filterPosition(&outp.position, geometry.worldPosition.xy);\n\n return outp;\n}\n\n").concat(_(),"\n")),defines:{RING_WINDING_ORDER_CW:n},modules:[r.A,o.A,s.J,a.Ay,m,..."webgpu"===this.context.device.type?[x.A]:[]]})}get wrapLongitude(){return!1}getBounds(){var e;return null==(e=this.getAttributeManager())?void 0:e.getBounds(["vertexPositions"])}initializeState(){let e,{viewport:t}=this.context,{coordinateSystem:n}=this.props,{_full3d:i}=this.props;t.isGeospatial&&"default"===n&&(n="lnglat"),"lnglat"===n&&(e=i?t.projectPosition.bind(t):t.projectFlat.bind(t)),this.setState({numInstances:0,polygonTesselator:new f({preproject:e,fp64:this.use64bitPositions(),IndexType:Uint32Array})});let r=this.getAttributeManager(),o="webgpu"===this.context.device.type;r.add(j(O({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:!0},vertexPositions:O({size:3,type:"float64",stepMode:"dynamic",fp64:this.use64bitPositions(),transition:C,accessor:"getPolygon",update:this.calculatePositions,noAlloc:!0},o?{}:{shaderAttributes:{nextVertexPositions:{vertexOffset:1}}})},o?{nextVertexPositions:{size:3,type:"float64",stepMode:"dynamic",fp64:this.use64bitPositions(),transition:!1,update:this.calculateNextPositions,noAlloc:!0}}:{}),{[o?"vertexValid":"instanceVertexValid"]:{size:1,type:o?"float32":"uint16",stepMode:"instance",update:this.calculateVertexValid,noAlloc:!0},elevations:{size:1,stepMode:"dynamic",transition:C,accessor:"getElevation",bufferGroup:"solid-polygon-instance-data"},fillColors:{size:this.props.colorFormat.length,type:"unorm8",stepMode:"dynamic",transition:C,accessor:"getFillColor",defaultValue:S,bufferGroup:"solid-polygon-instance-data"},lineColors:{size:this.props.colorFormat.length,type:"unorm8",stepMode:"dynamic",transition:C,accessor:"getLineColor",defaultValue:S,bufferGroup:"solid-polygon-instance-data"},rowIndexes:{size:1,type:"uint32",stepMode:"dynamic",accessor:(e,t)=>
1{let{index:n}=t;return e&&e.__source?e.__source.index:n},bufferGroup:"solid-polygon-instance-data"}}))}getPickingInfo(e){let t=super.getPickingInfo(e),{index:n}=t,i=this.props.data;return i[0]&&i[0].__source&&(t.object=i.find(e=>e.__source.index===n)),t}disablePickingIndex(e){let t=this.props.data;if(t[0]&&t[0].__source)for(let n=0;n<t.length;n++)t[n].__source.index===e&&this._disablePickingIndex(n);else super.disablePickingIndex(e)}draw(e){let{uniforms:t}=e,{extruded:n,filled:i,wireframe:r,elevationScale:o}=this.props,{topModel:s,sideModel:a,wireframeModel:l,polygonTesselator:c}=this.state,p={extruded:!!n,elevationScale:o,isWireframe:!1};l&&r&&(l.setInstanceCount(c.instanceCount-1),l.shaderInputs.setProps({solidPolygon:j(O({},p),{isWireframe:!0})}),l.draw(this.context.renderPass)),a&&i&&(a.setInstanceCount(c.instanceCount-1),a.shaderInputs.setProps({solidPolygon:p}),a.draw(this.context.renderPass)),s&&i&&(s.setVertexCount(c.vertexCount),s.shaderInputs.setProps({solidPolygon:p}),s.draw(this.context.renderPass))}updateState(e){super.updateState(e),this.updateGeometry(e);let{props:t,oldProps:n,changeFlags:i}=e,r=this.getAttributeManager();if(i.extensionsChanged||t.filled!==n.filled||t.extruded!==n.extruded){var o;null==(o=this.state.models)||o.forEach(e=>e.destroy()),this.setState(this._getModels()),r.invalidateAll()}}updateGeometry(e){let{props:t,oldProps:n,changeFlags:i}=e;if(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getPolygon)){let{polygonTesselator:e}=this.state,n=t.data.attributes||{};e.updateGeometry({data:t.data,normalize:t._normalize,geometryBuffer:n.getPolygon,buffers:"webgpu"===this.context.device.type?O({},n):n,getGeometry:t.getPolygon,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:i.dataChanged,full3d:t._full3d}),this.setState({numInstances:e.instanceCount,startIndices:e.vertexStarts}),i.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(){let e,t,n,{id:i,filled:r,extruded:o}=this.props;if(r){let t=this.getShaders("top");t.defines=j(O({},t.defines),{NON_INSTANCED_MODEL:1});let n=this.getAttributeManager().getBufferLayouts({isInstanced:!1});"webgpu"===this.context.device.type&&(n=n.filter(e=>"indices"!==e.name&&"vertexValid"!==e.name&&"instanceVertexValid"!==e.name&&"nextVertexPositions"!==e.name)),e=new l.K(this.context.device,j(O({},t),{id:"".concat(i,"-top"),topology:"triangle-list",bufferLayout:n,isIndexed:!0,userData:{excludeAttributes:{vertexValid:!0,instanceVertexValid:!0,nextVertexPositions:!0}}}))}if(o){let e=this.getAttributeManager().getBufferLayouts({isInstanced:!0});"webgpu"===this.context.device.type&&(e=e.filter(e=>"indices"!==e.name)),t=new l.K(this.context.device,j(O({},this.getShaders("side")),{id:"".concat(i,"-side"),bufferLayout:e,geometry:new c.V({topology:"triangle-strip",attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,1,1,0,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}})),n=new l.K(this.context.device,j(O({},this.getShaders("side")),{id:"".concat(i,"-wireframe"),bufferLayout:e,geometry:new c.V({topology:"line-strip",attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}}))}return{models:[t,n,e].filter(Boolean),topModel:e,sideModel:t,wireframeModel:n}}calculateIndices(e){let{polygonTesselator:t}=this.state;e.startIndices=t.indexStarts,e.value=t.get("indices")}calculatePositions(e){var t;let{polygonTesselator:n}=this.state;e.startIndices=n.vertexStarts;let i=null==(t=this.props.data.attributes)?void 0:t.getPolygon;if("webgpu"===this.context.device.type&&ArrayBuffer.isView(null==i?void 0:i.value)){let{value:t,size:r=3,offset:o=0,stride:s}=i,a=o/t.BYTES_PER_ELEMENT,l=s?s/t.BYTES_PER_ELEMENT:r,c=new Float64Array(3*n.instanceCount);for(let e=0;e<n.instanceCount;e++){let n=a+e*l,i=3*e;c[i]=t[n],c[i+1]=t[n+1],c[i+2]=r>2?t[n+2]:0}e.value=c;return}e.value=n.get("positions")}calculateVertexValid(e){var t,n;let i=null==(n=this.props.data.attributes)||null==(t=n.instanceVertexValid)?void 0:t.value,r="webgpu"===this.context.device.type&&i?i:this.state.polygonTesselator.get("vertexValid");e.value="webgpu"===this.context.device.type&&r?Float32Array.from(r):r}calculateNextPositions(e){var t,n,i;let{polygonTesselator:r}=this.state,o=this.getAttributeManager().getAttributes(),s=o.vertexPositions.value,a=(null==(n=this.props.data.attributes)||null==(t=n.instanceVertexValid)?void 0:t.value)||(null==(i=o.vertexValid)?void 0:i.value)||r.get("vertexValid");if(e.startIndices=r.vertexStarts,!s){e.value=s;return}let l=s.length/3,c=new s.constructor(s.length);for(let e=0;e<l;e++){let t=3*e,n=(null==a?void 0:a[e])&&e+1<l?t+3:t;for(let e=0;e<3;e++)c[t+e]=s[n+e]}e.value=c}}
1k.defaultProps={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:"CW",_full3d:!1,elevationScale:{type:"number",min:0,value:1},getPolygon:{type:"accessor",value:e=>e.polygon},getElevation:{type:"accessor",value:1e3},getFillColor:{type:"accessor",value:S},getLineColor:{type:"accessor",value:S},material:!0},k.layerName="SolidPolygonLayer";let A=k},23647(e,t,n){n.d(t,{A:()=>h});var i=n(1918),r=n(70008),o=n(56548);let s="layout(std140) uniform sdfUniforms {\n float gamma;\n bool enabled;\n float buffer;\n float outlineBuffer;\n vec4 outlineColor;\n} sdf;\n",a={name:"sdf",vs:s,fs:s,uniformTypes:{gamma:"f32",enabled:"f32",buffer:"f32",outlineBuffer:"f32",outlineColor:"vec4<f32>"}};var l=n(11958);let c=function(){let{collision:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return"struct IconUniforms {\n sizeScale: f32,\n iconsTextureDim: vec2<f32>,\n sizeBasis: f32,\n sizeMinPixels: f32,\n sizeMaxPixels: f32,\n billboard: i32,\n sizeUnits: i32,\n alphaCutoff: f32\n};\n\nstruct TextUniforms {\n cutoffPixels: vec2<f32>,\n align: vec2<i32>,\n fontSize: f32,\n flipY: f32\n};\n\nstruct SdfUniforms {\n gamma: f32,\n enabled: f32,\n buffer: f32,\n outlineBuffer: f32,\n outlineColor: vec4<f32>\n};\n\n".concat(e?"struct CollisionUniforms {\n sort: i32,\n enabled: i32\n};\n":"","\n\nconst ALIGN_MODE_START: i32 = 1;\nconst ALIGN_MODE_CENTER: i32 = 2;\nconst ALIGN_MODE_END: i32 = 3;\n\n@group(0) @binding(auto) var<uniform> icon: IconUniforms;\n@group(0) @binding(auto) var<uniform> text: TextUniforms;\n@group(0) @binding(auto) var<uniform> sdf: SdfUniforms;\n").concat(e?"@group(0) @binding(auto) var<uniform> collision: CollisionUniforms;":"","\n@group(0) @binding(auto) var iconsTexture : texture_2d<f32>;\n@group(0) @binding(auto) var iconsTextureSampler : sampler;\n").concat(e?"@group(0) @binding(auto) var collision_texture : texture_2d<f32>;\n":"","\n\nfn rotate_by_angle(vertex: vec2<f32>, angle_deg: f32) -> vec2<f32> {\n let angle_radian = angle_deg * PI / 180.0;\n let c = cos(angle_radian);\n let s = sin(angle_radian);\n let rotation = mat2x2<f32>(vec2<f32>(c, -s), vec2<f32>(s, c));\n return rotation * vertex;\n}\n\nfn get_pixel_offset_from_alignment(\n anchor: f32,\n extent: f32,\n clipStart: f32,\n clipEnd: f32,\n mode: i32\n) -> f32 {\n if (clipEnd < clipStart) {\n return 0.0;\n }\n if (mode == ALIGN_MODE_START) {\n return max(-(anchor + clipStart), 0.0);\n }\n if (mode == ALIGN_MODE_CENTER) {\n let minValue = max(0.0, anchor + clipStart);\n let maxValue = min(extent, anchor + clipEnd);\n if (minValue < maxValue) {\n return (minValue + maxValue) / 2.0 - anchor;\n }\n return 0.0;\n }\n if (mode == ALIGN_MODE_END) {\n return min(extent - (anchor + clipEnd), 0.0);\n }\n return 0.0;\n}\n\n").concat(e?"fn collision_match(texCoords: vec2<f32>, pickingColor: vec3<f32>) -> f32 {\n let textureSize = vec2<i32>(textureDimensions(collision_texture));\n let pixelCoords = clamp(\n vec2<i32>(texCoords * vec2<f32>(textureSize)),\n vec2<i32>(0),\n textureSize - vec2<i32>(1)\n );\n let collisionPickingColor = textureLoad(collision_texture, pixelCoords, 0);\n let delta = dot(abs(collisionPickingColor.rgb - pickingColor), vec3<f32>(1.0));\n return step(delta, 0.001);\n}\n\nfn collision_is_visible(texCoords: vec2<f32>, pickingColor: vec3<f32>) -> f32 {\n if (collision.enabled == 0) {\n return 1.0;\n }\n\n var accumulator = 0.0;\n let stepSize = vec2<f32>(1.0) / project.viewportSize;\n\n for (var i: i32 = -2; i <= 2; i = i + 1) {\n for (var j: i32 = -2; j <= 2; j = j + 1) {\n let delta = vec2<f32>(f32(j), f32(i)) * stepSize;\n accumulator = accumulator + collision_match(texCoords + delta, pickingColor);\n }\n }\n\n return pow(accumulator / 25.0, 2.2);\n}\n":"","\n\nstruct Attributes {\n @location(0) positions: vec2<f32>,\n\n @location(1) instancePositions: vec3<f32>,\n @location(2) instancePositions64Low: vec3<f32>,\n @location(3) instanceSizes: f32,\n @location(4) instanceAngles: f32,\n @location(5) instanceColors: vec4<f32>,\n @location(6) instanceIconFrames: vec4<f32>,\n @location(7) instanceColorModes: f32,\n @location(8) instanceOffsets: vec2<f32>,\n @location(9) instancePixelOffset: vec2<f32>,\n @location(10) rowIndexes: u32,\n @location(11) instanceClipRect: vec4<f32>,\n ").concat(e?"@location(12) collisionPriorities: f32,":"","\n};
1\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n\n @location(0) vColorMode: f32,\n @location(1) vColor: vec4<f32>,\n @location(2) vTextureCoords: vec2<f32>,\n @location(3) uv: vec2<f32>,\n @location(4) pickingColor: vec3<f32>,\n};\n\n@vertex\nfn vertexMain(inp: Attributes) -> Varyings {\n geometry.worldPosition = inp.instancePositions;\n geometry.uv = inp.positions;\n geometry.pickingColor = picking_getPickingColorFromIndex(inp.rowIndexes);\n\n var outp: Varyings;\n outp.uv = inp.positions;\n\n let iconSize = inp.instanceIconFrames.zw;\n\n let sizePixels = clamp(\n project_unit_size_to_pixel(inp.instanceSizes * icon.sizeScale, icon.sizeUnits),\n icon.sizeMinPixels, icon.sizeMaxPixels\n );\n let instanceScale = sizePixels / text.fontSize;\n\n var pixelOffset = inp.positions / 2.0 * iconSize + inp.instanceOffsets;\n pixelOffset = rotate_by_angle(pixelOffset, inp.instanceAngles) * instanceScale;\n pixelOffset = pixelOffset + inp.instancePixelOffset;\n pixelOffset.y = pixelOffset.y * -1.0;\n\n var pos: vec4<f32>;\n var anchorPosScreen: vec2<f32>;\n if (icon.billboard != 0) {\n pos = project_position_to_clipspace(inp.instancePositions, inp.instancePositions64Low, vec3<f32>(0.0));\n anchorPosScreen = pos.xy / pos.w;\n\n let clipOffset = project_pixel_size_to_clipspace(pixelOffset);\n pos = vec4<f32>(pos.x + clipOffset.x, pos.y + clipOffset.y, pos.z, pos.w);\n } else {\n var offsetCommon = vec3<f32>(project_pixel_size_vec2(pixelOffset), 0.0);\n if (text.flipY > 0.5) {\n offsetCommon.y = offsetCommon.y * -1.0;\n }\n let anchorPos = project_position_to_clipspace(inp.instancePositions, inp.instancePositions64Low, vec3<f32>(0.0));\n anchorPosScreen = anchorPos.xy / anchorPos.w;\n pos = project_position_to_clipspace(inp.instancePositions, inp.instancePositions64Low, offsetCommon);\n }\n\n anchorPosScreen = vec2<f32>(anchorPosScreen.x + 1.0, 1.0 - anchorPosScreen.y) / 2.0 *\n project.viewportSize / project.devicePixelRatio;\n var xy = project_size_vec2(inp.instanceClipRect.xy) * project.scale;\n var wh = project_size_vec2(inp.instanceClipRect.zw) * project.scale;\n\n if (text.flipY > 0.5) {\n xy.y = -xy.y - wh.y;\n }\n if (text.align.x > 0 || text.align.y > 0) {\n let viewportPixels = project.viewportSize / project.devicePixelRatio;\n let scrollPixels = vec2<f32>(\n get_pixel_offset_from_alignment(anchorPosScreen.x, viewportPixels.x, xy.x, xy.x + wh.x, text.align.x),\n -get_pixel_offset_from_alignment(anchorPosScreen.y, viewportPixels.y, -xy.y - wh.y, -xy.y, text.align.y)\n );\n pixelOffset = pixelOffset + scrollPixels;\n let scrollClipOffset = project_pixel_size_to_clipspace(scrollPixels);\n pos.x = pos.x + scrollClipOffset.x;\n pos.y = pos.y + scrollClipOffset.y;\n }\n\n if (inp.instanceClipRect.z >= 0.0) {\n if (pixelOffset.x < xy.x || pixelOffset.x > xy.x + wh.x) {\n pos = vec4<f32>(0.0);\n } else if (text.cutoffPixels.x > 0.0) {\n let viewportWidth = project.viewportSize.x / project.devicePixelRatio;\n let left = max(anchorPosScreen.x + xy.x, 0.0);\n let right = min(anchorPosScreen.x + xy.x + wh.x, viewportWidth);\n if (right - left < text.cutoffPixels.x) {\n pos = vec4<f32>(0.0);\n }\n }\n }\n if (inp.instanceClipRect.w >= 0.0) {\n if (pixelOffset.y < xy.y || pixelOffset.y > xy.y + wh.y) {\n pos = vec4<f32>(0.0);\n } else if (text.cutoffPixels.y > 0.0) {\n let viewportHeight = project.viewportSize.y / project.devicePixelRatio;\n let top = max(anchorPosScreen.y - xy.y - wh.y, 0.0);\n let bottom = min(anchorPosScreen.y - xy.y, viewportHeight);\n if (bottom - top < text.cutoffPixels.y) {\n pos = vec4<f32>(0.0);\n }\n }\n }\n\n ").concat(e?" if (collision.sort != 0) {\n pos.z = -0.001 * inp.collisionPriorities * pos.w;\n }\n ":"","\n\n let uvMix = (inp.positions.xy + vec2<f32>(1.0, 1.0)) * 0.5;\n outp.vTextureCoords = mix(inp.instanceIconFrames.xy, inp.instanceIconFrames.xy + iconSize, uvMix) / icon.iconsTextureDim;\n\n outp.position = pos;\n outp.vColor = inp.instanceColors;\n outp.vColorMode = inp.instanceColorModes;\n outp.pickingColor = picking_getPickingColorFromIndex(inp.rowIndexes);\n\n return outp;\n}\n\n@fragment\nfn fragmentMain(inp: Varyings) -> @location(0) vec4<f32> {\n geometry.uv = inp.uv;\n\n let texColor = textureSample(iconsTexture, iconsTextureSampler, inp.vTextureCoords);\n var alpha = texColor.a;\n var color = inp.vColor;\n\n if (sdf.enabled > 0.5) {\n let distance = alpha;
1\n alpha = smoothstep(sdf.buffer - sdf.gamma, sdf.buffer + sdf.gamma, distance);\n\n if (sdf.outlineBuffer > 0.0) {\n let inFill = alpha;\n let inBorder = smoothstep(sdf.outlineBuffer - sdf.gamma, sdf.outlineBuffer + sdf.gamma, distance);\n color = mix(sdf.outlineColor, inp.vColor, inFill);\n alpha = inBorder;\n }\n } else if (inp.vColorMode == 0.0) {\n color = texColor;\n }\n\n var a = alpha * color.a * layer.opacity;\n if (a < icon.alphaCutoff) {\n discard;\n }\n\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(inp.pickingColor)) {\n discard;\n }\n return vec4<f32>(inp.pickingColor, 1.0);\n }\n\n ").concat(e?" let collisionFade = collision_is_visible(inp.position.xy / project.viewportSize, inp.pickingColor);\n a = a * collisionFade;\n if (a <= 0.0001) {\n discard;\n }\n ":"","\n\n var fragColor = deckgl_premultiplied_alpha(vec4<f32>(color.rgb, a));\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(inp.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 return fragColor;\n}\n")}();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 u(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 d extends o.A{getShaders(){let e=super.getShaders();return u(p({},e),{modules:[...e.modules,l.Z,a],vs:"#version 300 es\n#define SHADER_NAME multi-icon-layer-vertex-shader\nin vec2 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin float instanceSizes;\nin float instanceAngles;\nin vec4 instanceColors;\nin float rowIndexes;\nin vec4 instanceIconFrames;\nin float instanceColorModes;\nin vec2 instanceOffsets;\nin vec2 instancePixelOffset;\nin vec4 instanceClipRect;\nout float vColorMode;\nout vec4 vColor;\nout vec2 vTextureCoords;\nout vec2 uv;\nvec2 rotate_by_angle(vec2 vertex, float angle) {\nfloat angle_radian = angle * PI / 180.0;\nfloat cos_angle = cos(angle_radian);\nfloat sin_angle = sin(angle_radian);\nmat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\nreturn rotationMatrix * vertex;\n}\nfloat getPixelOffsetFromAlignment(float anchor, float extent, float clipStart, float clipEnd, int mode) {\nif (clipEnd < clipStart) return 0.0;\nif (mode == ALIGN_MODE_START) {\nreturn max(- (anchor + clipStart), 0.0);\n}\nif (mode == ALIGN_MODE_CENTER) {\nfloat _min = max(0., anchor + clipStart);\nfloat _max = min(extent, anchor + clipEnd);\nreturn _min < _max ? (_min + _max) / 2.0 - anchor : 0.0;\n}\nif (mode == ALIGN_MODE_END) {\nreturn min(extent - (anchor + clipEnd), 0.);\n}\nreturn 0.0;\n}\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = positions;\ngeometry.pickingColor = picking_getPickingColorFromIndex(rowIndexes);\nuv = positions;\nvec2 iconSize = instanceIconFrames.zw;\nfloat sizePixels = clamp(\nproject_size_to_pixel(instanceSizes * icon.sizeScale, icon.sizeUnits),\nicon.sizeMinPi
1xels, icon.sizeMaxPixels\n);\nfloat instanceScale = sizePixels / text.fontSize;\nvec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets;\npixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale;\npixelOffset += instancePixelOffset;\npixelOffset.y *= -1.0;\nvec2 anchorPosScreen;\nif (icon.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nanchorPosScreen = gl_Position.xy / gl_Position.w;\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = vec3(pixelOffset, 0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\nif (text.flipY) {\noffset_common.y *= -1.;\n}\nDECKGL_FILTER_SIZE(offset_common, geometry);\nvec4 anchorPos = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0));\nanchorPosScreen = anchorPos.xy / anchorPos.w;\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n}\nanchorPosScreen = vec2(anchorPosScreen.x + 1.0, 1.0 - anchorPosScreen.y) / 2.0 * project.viewportSize / project.devicePixelRatio;\nvec2 xy = project_size_to_pixel(instanceClipRect.xy);\nvec2 wh = project_size_to_pixel(instanceClipRect.zw);\nif (text.flipY) {\nxy.y = -xy.y - wh.y;\n}\nif (text.align.x > 0 || text.align.y > 0) {\nvec2 viewportPixels = project.viewportSize / project.devicePixelRatio;\nvec2 scrollPixels = vec2(\ngetPixelOffsetFromAlignment(anchorPosScreen.x, viewportPixels.x, xy.x, xy.x + wh.x, text.align.x),\n-getPixelOffsetFromAlignment(anchorPosScreen.y, viewportPixels.y, -xy.y - wh.y, -xy.y, text.align.y)\n);\npixelOffset += scrollPixels;\ngl_Position.xy += project_pixel_size_to_clipspace(scrollPixels);\n}\nif (instanceClipRect.z >= 0.) {\nif (pixelOffset.x < xy.x || pixelOffset.x > xy.x + wh.x) {\ngl_Position = vec4(0.0);\n}\nelse if (text.cutoffPixels.x > 0.) {\nfloat vpWidth = project.viewportSize.x / project.devicePixelRatio;\nfloat l = max(anchorPosScreen.x + xy.x, 0.0);\nfloat r = min(anchorPosScreen.x + xy.x + wh.x, vpWidth);\nif (r - l < text.cutoffPixels.x) {\ngl_Position = vec4(0.0);\n}\n}\n}\nif (instanceClipRect.w >= 0.) {\nif (pixelOffset.y < xy.y || pixelOffset.y > xy.y + wh.y) {\ngl_Position = vec4(0.0);\n}\nelse if (text.cutoffPixels.y > 0.) {\nfloat vpHeight = project.viewportSize.y / project.devicePixelRatio;\nfloat t = max(anchorPosScreen.y - xy.y - wh.y, 0.0);\nfloat b = min(anchorPosScreen.y - xy.y, vpHeight);\nif (b - t < text.cutoffPixels.y) {\ngl_Position = vec4(0.0);\n}\n}\n}\nvTextureCoords = mix(\ninstanceIconFrames.xy,\ninstanceIconFrames.xy + iconSize,\n(positions.xy + 1.0) / 2.0\n) / icon.iconsTextureDim;\nvColor = instanceColors;\nDECKGL_FILTER_COLOR(vColor, geometry);\nvColorMode = instanceColorModes;\n}\n",fs:"#version 300 es\n#define SHADER_NAME multi-icon-layer-fragment-shader\nprecision highp float;\nuniform sampler2D iconsTexture;\nin vec4 vColor;\nin vec2 vTextureCoords;\nin vec2 uv;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = uv;\nif (!bool(picking.isActive)) {\nfloat alpha = texture(iconsTexture, vTextureCoords).a;\nvec4 color = vColor;\nif (sdf.enabled) {\nfloat distance = alpha;\nalpha = smoothstep(sdf.buffer - sdf.gamma, sdf.buffer + sdf.gamma, distance);\nif (sdf.outlineBuffer > 0.0) {\nfloat inFill = alpha;\nfloat inBorder = smoothstep(sdf.outlineBuffer - sdf.gamma, sdf.outlineBuffer + sdf.gamma, distance);\ncolor = mix(sdf.outlineColor, vColor, inFill);\nalpha = inBorder;\n}\n}\nfloat a = alpha * color.a;\nif (a < icon.alphaCutoff) {\ndiscard;\n}\nfragColor = vec4(color.rgb, a * layer.opacity);\n}\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:c})}initializeState(){super.initializeState();let e=this.getAttributeManager();e.attributes.instanceIconDefs.settings.update=this.calculateInstanceIconDefs,e.addInstanced({rowIndexes:{type:"uint32",size:1,bufferGroup:"icon-instance-data",accessor:(e,t)=>
1{let{index:n}=t;return n}},instanceClipRect:{size:4,bufferGroup:"icon-instance-data",accessor:"getContentBox",defaultValue:[0,0,-1,-1]}})}updateState(e){var t,n;super.updateState(e);let{props:r,oldProps:o,changeFlags:s}=e,{outlineColor:a}=r;if(s.extensionsChanged){null==(t=this.state.fillModel)||t.destroy();let e="webgpu"===this.context.device.type?this._getModel("".concat(this.props.id,"-fill")):void 0;this.setState({fillModel:e,models:e?[this.state.model,e]:[this.state.model]})}if(s.updateTriggersChanged&&(s.updateTriggersChanged.getIcon||s.updateTriggersChanged.getIconOffsets)&&this.getAttributeManager().invalidate("instanceIconDefs"),a!==o.outlineColor){let e=[a[0]/255,a[1]/255,a[2]/255,(null!=(n=a[3])?n:255)/255];this.setState({outlineColor:e})}!r.sdf&&r.outlineWidth&&i.A.warn("".concat(this.id,": fontSettings.sdf is required to render outline"))()}draw(e){let{sdf:t,smoothing:n,fontSize:i,outlineWidth:r,contentCutoffPixels:o,contentAlignHorizontal:s,contentAlignVertical:a}=this.props,{outlineColor:l}=this.state,c=r?Math.max(n,.75*(1-r)):-1,d=this.state.model,h={buffer:.75,outlineBuffer:c,gamma:n,enabled:!!t,outlineColor:l},f={contentCutoffPixels:o,contentAlignHorizontal:s,contentAlignVertical:a,fontSize:i,viewport:this.context.viewport};if(d.shaderInputs.setProps({sdf:h,text:f}),super.draw(e),t&&r){let{iconManager:e}=this.state;if(e.getTexture()){let e=this.state.fillModel||d;e.shaderInputs.setProps({sdf:u(p({},h),{outlineBuffer:.75}),text:f}),this._drawModel(e)}}}calculateInstanceIconDefs(e,t){let{startRow:n,endRow:i}=t,{data:o,getIcon:s,getIconOffsets:a}=this.props,l=e.getVertexOffset(n),c=e.value,{iterable:p,objectInfo:u}=(0,r.X)(o,n,i);for(let t of p){u.index++;let n=s(t,u),i=a(t,u);if(n){let t=0;for(let r of Array.from(n)){let n=super.getInstanceIconDef(r);n[0]=i[2*t],n[1]+=i[2*t+1],n[6]=1,c.set(n,l),l+=e.size,t++}}}}}d.defaultProps={getIconOffsets:{type:"accessor",value:e=>e.offsets},getContentBox:{type:"accessor",value:[0,0,-1,-1]},fontSize:1,alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:"color",value:[0,0,0,255]},contentCutoffPixels:{type:"array",value:[0,0]},contentAlignHorizontal:"none",contentAlignVertical:"none"},d.layerName="MultiIconLayer";let h=d},64754(e,t,n){n.d(t,{A:()=>g});var i=n(13563),r=n(8070),o=n(5214),s=n(69798),a=n(48895),l=n(62837),c=n(12434);let p="layout(std140) uniform textBackgroundUniforms {\n bool billboard;\n float sizeScale;\n float sizeMinPixels;\n float sizeMaxPixels;\n vec4 borderRadius;\n vec4 padding;\n highp int sizeUnits;\n bool stroked;\n} textBackground;\n",u={name:"textBackground",source:"struct TextBackgroundUniforms {\n billboard: f32,\n sizeScale: f32,\n sizeMinPixels: f32,\n sizeMaxPixels: f32,\n borderRadius: vec4<f32>,\n padding: vec4<f32>,\n sizeUnits: i32,\n stroked: f32,\n};\n\n@group(0) @binding(auto) var<uniform> textBackground: TextBackgroundUniforms;\n",vs:p,fs:p,uniformTypes:{billboard:"f32",sizeScale:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",borderRadius:"vec4<f32>",padding:"vec4<f32>",sizeUnits:"i32",stroked:"f32"}};var d=n(11958);let h={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,fontSize:1,borderRadius:{type:"object",value:0},padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:e=>e.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getClipRect:{type:"accessor",value:[0,0,-1,-1]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}};class f extends i.A{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME text-background-layer-vertex-shader\nin vec2 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceRects;\nin vec4 instanceClipRect;\nin float instanceSizes;\nin float instanceAngles;\nin vec2 instancePixelOffsets;\nin float instanceLineWidths;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\nout vec4 vFillColor;\nout vec4 vLineColor;\nout float vLineWidth;\nout vec2 uv;\nout vec2 dimensions;\nvec2 rotate_by_angle(vec2 vertex, float angle) {\nfloat angle_radian = radians(angle);
1\nfloat cos_angle = cos(angle_radian);\nfloat sin_angle = sin(angle_radian);\nmat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle);\nreturn rotationMatrix * vertex;\n}\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = positions;\ngeometry.pickingColor = picking_getPickingColorFromInstanceID();\nuv = positions;\nvLineWidth = instanceLineWidths;\nfloat sizePixels = clamp(\nproject_size_to_pixel(instanceSizes * textBackground.sizeScale, textBackground.sizeUnits),\ntextBackground.sizeMinPixels, textBackground.sizeMaxPixels\n);\nfloat instanceScale = sizePixels / text.fontSize;\ndimensions = instanceRects.zw * instanceScale + textBackground.padding.xy + textBackground.padding.zw;\nvec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * instanceScale + mix(-textBackground.padding.xy, textBackground.padding.zw, positions);\npixelOffset = rotate_by_angle(pixelOffset, instanceAngles);\npixelOffset += instancePixelOffsets;\npixelOffset.y *= -1.0;\nvec2 xy = project_size_to_pixel(instanceClipRect.xy);\nvec2 wh = project_size_to_pixel(instanceClipRect.zw);\nif (text.flipY) {\nxy.y = -xy.y - wh.y;\n}\nif (instanceClipRect.z >= 0.0) {\ndimensions.x = wh.x;\npixelOffset.x = xy.x + uv.x * wh.x + mix(-textBackground.padding.x, textBackground.padding.z, uv.x);\n}\nif (instanceClipRect.w >= 0.0) {\ndimensions.y = wh.y;\npixelOffset.y = xy.y + uv.y * wh.y + mix(-textBackground.padding.y, textBackground.padding.w, uv.y);\n}\nif (textBackground.billboard) {\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position);\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nvec3 offset = vec3(pixelOffset, 0.0);\nDECKGL_FILTER_SIZE(offset, geometry);\ngl_Position.xy += project_pixel_size_to_clipspace(offset.xy);\n} else {\nvec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0);\nif (text.flipY) {\noffset_common.y *= -1.;\n}\nDECKGL_FILTER_SIZE(offset_common, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, 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 text-background-layer-fragment-shader\nprecision highp float;\nin vec4 vFillColor;\nin vec4 vLineColor;\nin float vLineWidth;\nin vec2 uv;\nin vec2 dimensions;\nout vec4 fragColor;\nfloat round_rect(vec2 p, vec2 size, vec4 radii) {\nvec2 pixelPositionCB = (p - 0.5) * size;\nvec2 sizeCB = size * 0.5;\nfloat maxBorderRadius = min(size.x, size.y) * 0.5;\nvec4 borderRadius = vec4(min(radii, maxBorderRadius));\nborderRadius.xy =\n(pixelPositionCB.x > 0.0) ? borderRadius.xy : borderRadius.zw;\nborderRadius.x = (pixelPositionCB.y > 0.0) ? borderRadius.x : borderRadius.y;\nvec2 q = abs(pixelPositionCB) - sizeCB + borderRadius.x;\nreturn -(min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - borderRadius.x);\n}\nfloat rect(vec2 p, vec2 size) {\nvec2 pixelPosition = p * size;\nreturn min(min(pixelPosition.x, size.x - pixelPosition.x),\nmin(pixelPosition.y, size.y - pixelPosition.y));\n}\nvec4 get_stroked_fragColor(float dist) {\nfloat isBorder = smoothedge(dist, vLineWidth);\nreturn mix(vFillColor, vLineColor, isBorder);\n}\nvoid main(void) {\ngeometry.uv = uv;\nif (textBackground.borderRadius != vec4(0.0)) {\nfloat distToEdge = round_rect(uv, dimensions, textBackground.borderRadius);\nfloat shapeAlpha = smoothedge(-distToEdge, 0.0);\nif (shapeAlpha == 0.0) {\ndiscard;\n}\nif (textBackground.stroked) {\nfragColor = get_stroked_fragColor(distToEdge);\n} else {\nfragColor = vFillColor;\n}\nfragColor.a *= shapeAlpha;\n} else {\nif (textBackground.stroked) {\nfloat distToEdge = rect(uv, dimensions);\nfragColor = get_stroked_fragColor(distToEdge);\n} else {\nfragColor = vFillColor;\n}\n}\nDECKGL_FILTER_COLOR(fragColor, geometry);\n}\n",source:"struct TextUniforms {\n cutoffPixels: vec2<f32>,\n align: vec2<i32>,\n fontSize: f32,\n flipY: f32,\n};\n\n@group(0) @binding(auto) var<uniform> text: TextUniforms;\n\nfn rotate_by_angle(vertex: vec2<f32>, angle: f32) -> vec2<f32> {\n let angleRadian = radians(angle);\n let cosine = cos(angleRadian);\n let sine = sin(angleRadian);\n let rotationMatrix = mat2x2<f32>(\n vec2<f32>(cosine, -sine),\n vec2<f32>(sine, cosine)\n );\n return rotationMatrix * vertex;\n}\n\nstruct Attributes {\n @builtin(instance_index) instanceIndex: u32,\n @location(0) positions: vec2<f32>,\n @location(1) instancePositions: vec3<f32>,\n @location(2) instancePositions64Low: vec3<f32>,\n @location(3) instanceSizes: f32,\n @location(4) instanceAngles: f32,\n @location(5) instanceRects: vec4<f32>,\n @location(6) instanceClipRect: vec4<f32>,\n @location(7) instancePixelOffsets: vec2<f32>,\n @location(8) instanceFillColors: vec4<f32>,\n @location(9) instanceLineColors: vec4<f32>,\n @location(10) instanceLineWidths: f32,\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) vLineWidth: f32,\n @location(3) uv: vec2<f32>,\n @location(4) dimensions: vec2<f32>,\n @location(5) pickingColor: vec3<f32>,\n};\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n geometry.worldPosition = attributes.instancePositions;\n geometry.uv = attributes.positions;\n geometry.pickingColor = picking_getPickingColorFromIndex(attributes.instanceIndex);\n\n var varyings: Varyings;\n varyings.uv = attributes.positions;\n varyings.vLineWidth = attributes.instanceLineWidths;\n\n let sizePixels = clamp(\n project_unit_size_to_pixel(\n attributes.instanceSizes * textBackground.sizeScale,\n textBackground.sizeUnits\n ),\n textBackground.sizeMinPixels,\n textBackground.sizeMaxPixels\n );\n let instanceScale = sizePixels / text.fontSize;\n\n varyings.dimensions = attributes.instanceRects.zw * instanceScale +\n textBackground.padding.xy + textBackground.padding.zw;\n\n var pixelOffset =\n (attributes.positions * attributes.instanceRects.zw + attributes.instanceRects.xy) *\n instanceScale +\n mix(-textBackground.padding.xy, textBackground.padding.zw, attributes.positions);\n pixelOffset = rotate_by_angle(pixelOffset, attributes.instanceAngles);\n pixelOffset = pixelOffset + attributes.instancePixelOffsets;\n pixelOffset.y = pixelOffset.y * -1.0;\n\n var xy = project_size_vec2(attributes.instanceClipRect.xy) * project.scale;\n let wh = project_size_vec2(attributes.instanceClipRect.zw) * project.scale;\n if (text.flipY > 0.5) {\n xy.y = -xy.y - wh.y;\n }\n if (attributes.instanceClipRect.z >= 0.0) {\n varyings.dimensions.x = wh.x;\n pixelOffset.x = xy.x + varyings.uv.x * wh.x + mix(\n -textBackground.padding.x,\n textBackground.padding.z,\n varyings.uv.x\n );\n }\n if (attributes.instanceClipRect.w >= 0.0) {\n varyings.dimensions.y = wh.y;\n pixelOffset.y = xy.y + varyings.uv.y * wh.y + mix(\n -textBackground.padding.y,\n textBackground.padding.w,\n varyings.uv.y\n );\n }\n\n if (textBackground.billboard > 0.5) {\n var position = project_position_to_clipspace(\n attributes.instancePositions,\n attributes.instancePositions64Low,\n vec3<f32>(0.0)\n );\n let clipOffset = project_pixel_size_to_clipspace(pixelOffset);\n position = vec4<f32>(\n position.x + clipOffset.x,\n position.y + clipOffset.y,\n position.z,\n position.w\n );\n varyings.position = position;\n } else {\n var offsetCommon = vec3<f32>(project_pixel_size_vec2(pixelOffset), 0.0);\n if (text.flipY > 0.5) {\n offsetCommon.y = offsetCommon.y * -1.0;\n }\n varyings.position = project_position_to_clipspace(\n attributes.instancePositions,\n attributes.instancePositions64Low,\n offsetCommon\n );\n }\n\n varyings.vFillColor = vec4<f32>(\n attributes.instanceFillColors.rgb,\n attributes.instanceFillColors.a * layer.opacity\n );\n varyings.vLineColor = vec4<f32>(\n attributes.instanceLineColors.rgb,\n attributes.instanceLineColors.a * layer.opacity\n );\n varyings.pickingColor = geometry.pickingColor;\n return varyings;\n}\n\nfn round_rect(point: vec2<f32>, size: vec2<f32>, radii: vec4<f32>) -> f32 {\n let pixelPosition = (point - 0.5) * size;\n let halfSize = size * 0.5;\n let maxBorderRadius = min(size.x, size.y) * 0.5;\n var borderRadius = min(radii, vec4<f32>(maxBorderRadius));\n\n borderRadius = select(borderRadius.zwxy, borderRadius, pixelPosition.x > 0.0);\n let radius = select(borderRadius.y, borderRadius.x, pixelPosition.y > 0.0);\n let q = abs(pixelPosition) - halfSize + radius;\n return -(min(max(q.x, q.y), 0.0) + length(max(q, vec2<f32>(0.0))) - radius);\n}\n\nfn rect(point: vec2<f32>, size: vec2<f32>) -> f32 {\n let pixelPosition = point * size;\n return min(\n min(pixelPosition.x, size.x - pixelPosition.x),\n min(pixelPosition.y, size.y - pixelPosition.y)\n );\n}\n\nfn get_stroked_frag_color(\n distanceToEdge: f32,\n lineWidth: f32,\n fillColor: vec4<f32>,\n lineColor: vec4<f32>\n) -> vec4<f32> {\n let isBorder = smoothedge(distanceToEdge, lineWidth);\n return mix(fillColor, lineColor, isBorder);\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n geometry.uv = varyings.uv;\n var fragColor: vec4<f32>;
1\n\n if (any(textBackground.borderRadius != vec4<f32>(0.0))) {\n let distanceToEdge = round_rect(\n varyings.uv,\n varyings.dimensions,\n textBackground.borderRadius\n );\n let shapeAlpha = smoothedge(-distanceToEdge, 0.0);\n if (shapeAlpha == 0.0) {\n discard;\n }\n if (textBackground.stroked > 0.5) {\n fragColor = get_stroked_frag_color(\n distanceToEdge,\n varyings.vLineWidth,\n varyings.vFillColor,\n varyings.vLineColor\n );\n } else {\n fragColor = varyings.vFillColor;\n }\n fragColor.a = fragColor.a * shapeAlpha;\n } else if (textBackground.stroked > 0.5) {\n let distanceToEdge = rect(varyings.uv, varyings.dimensions);\n fragColor = get_stroked_frag_color(\n distanceToEdge,\n varyings.vLineWidth,\n varyings.vFillColor,\n varyings.vLineColor\n );\n } else {\n fragColor = varyings.vFillColor;\n }\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 return deckgl_premultiplied_alpha(fragColor);\n}\n",modules:[r.A,o.A,s.Ay,u,d.Z]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,bufferGroup:"text-background-instance-data",accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,bufferGroup:"text-background-instance-data",accessor:"getAngle"},instanceRects:{size:4,bufferGroup:"text-background-instance-data",accessor:"getBoundingRect"},instanceClipRect:{size:4,bufferGroup:"text-background-instance-data",accessor:"getClipRect",defaultValue:[0,0,-1,-1]},instancePixelOffsets:{size:2,transition:!0,bufferGroup:"text-background-instance-data",accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,bufferGroup:"text-background-instance-data",accessor:"getLineWidth",defaultValue:1}})}updateState(e){super.updateState(e);let{changeFlags:t}=e;if(t.extensionsChanged){var n;null==(n=this.state.model)||n.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll()}}draw(e){let{uniforms:t}=e,{billboard:n,sizeScale:i,sizeUnits:r,sizeMinPixels:o,sizeMaxPixels:s,getLineWidth:l,fontSize:c}=this.props,{padding:p,borderRadius:u}=this.props;p.length<4&&(p=[p[0],p[1],p[0],p[1]]),Array.isArray(u)||(u=[u,u,u,u]);let d=this.state.model,h={billboard:n,stroked:!!l,borderRadius:u,padding:p,sizeUnits:a.p5[r],sizeScale:i,sizeMinPixels:o,sizeMaxPixels:s},f={fontSize:c,viewport:this.context.viewport};d.shaderInputs.setProps({textBackground:h,text:f}),d.draw(this.context.renderPass)}_getModel(){var e,t;return new c.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}))),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}({}
1,this.getShaders()),t=t={id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new l.V({topology:"triangle-strip",vertexCount:4,attributes:{positions:{size:2,value:new Float32Array([0,0,1,0,0,1,1,1])}}}),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))}}f.defaultProps=h,f.layerName="TextBackgroundLayer";let g=f},87810(e,t,n){n.d(t,{A:()=>j});var i=n(12121),r=n(1918),o=n(70008),s=n(23647),a=n(75228);let l=[];function c(e,t,n,i){let r=0;for(let s=t;s<n;s++){var o;r+=(null==(o=i[e[s]])?void 0:o.advance)||0}return r}function p(e,t,n,i,r,o){let s=t,a=0;for(let l=t;l<n;l++){let t=c(e,l,l+1,r);a+t>i&&(s<l&&o.push(l),s=l,a=0),a+=t}return a}class u{get(e){let t=this._cache[e];return t&&(this._deleteOrder(e),this._appendOrder(e)),t}set(e,t){this._cache[e]?this.delete(e):Object.keys(this._cache).length===this.limit&&this.delete(this._order[0]),this._cache[e]=t,this._appendOrder(e)}delete(e){this._cache[e]&&(delete this._cache[e],this._deleteOrder(e))}_deleteOrder(e){let t=this._order.indexOf(e);t>=0&&this._order.splice(t,1)}_appendOrder(e){this._order.push(e)}constructor(e=5){this._cache={},this._order=[],this.limit=e}}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}))),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 h={fontFamily:"Monaco, monospace",fontWeight:"normal",characterSet:function(){let e=[];for(let t=32;t<128;t++)e.push(String.fromCharCode(t));return e}(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},f=new u(3);function g(e,t,n,i){e.font="".concat(i," ").concat(n,"px ").concat(t),e.fillStyle="#000",e.textBaseline="alphabetic",e.textAlign="left"}class v{get atlas(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}setProps(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this.props,e),e._getFontRenderer&&(this._getFontRenderer=e._getFontRenderer),this._key=this._getKey();let t=function(e,t){let n;n=new Set("string"==typeof t?Array.from(t):t);let i=f.get(e);if(!i)return n;for(let e in i.mapping)n.has(e)&&n.delete(e);return n}(this._key,this.props.characterSet),n=f.get(this._key);if(n&&0===t.size){this._atlas!==n&&(this._atlas=n);return}let i=this._generateFontAtlas(t,n);this._atlas=i,f.set(this._key,i)}_generateFontAtlas(e,t){let n,{fontFamily:i,fontWeight:r,fontSize:o,buffer:s,sdf:l,radius:c,cutoff:p}=this.props,u=t&&t.data;u||((u=document.createElement("canvas")).width=1024);let h=u.getContext("2d",{willReadFrequently:!0});g(h,i,o,r);let f=e=>(function(e,t,n){if(void 0===n){let n=e.measureText("A");return n.fontBoundingBoxAscent?{advance:0,width:0,ascent:Math.ceil(n.fontBoundingBoxAscent),descent:Math.ceil(n.fontBoundingBoxDescent)}:{advance:0,width:0,ascent:.9*t,descent:.3*t}}let i=e.measureText(n);return i.actualBoundingBoxAscent?{advance:i.width,width:Math.ceil(i.actualBoundingBoxRight-i.actualBoundingBoxLeft),ascent:Math.ceil(i.actualBoundingBoxAscent),descent:Math.ceil(i.actualBoundingBoxDescent)}:{advance:i.width,width:i.width,ascent:.9*t,descent:.3*t}})(h,o,e);this._getFontRenderer?n=this._getFontRenderer(this.props):l&&(n={measure:f,draw:function(e){let{fontSize:t,buffer:n,radius:i,cutoff:r,fontFamily:o,fontWeight:s}=e,l=new a.A({fontSize:t,buffer:n,radius:i,cutoff:r,fontFamily:o,fontWeight:"".concat(s)});return e=>{let{data:t,width:i,height:r}=l.draw(e),o=new ImageData(i,r);for(let e=0;e<t.length;e++)o.data[4*e+3]=t[e];return{data:o,left:n,top:n}}}(this.props)});let{mapping:v,canvasHeight:m,xOffset:y,yOffsetMin:b,yOffsetMax:w}=function(e){let{characterSet:t,measureText:n,buffer:i,maxCanvasWidth:r,mapping:o={},xOffset:s=0,yOffsetMin:a=0,yOffsetMax:l=0}=e,c=s,p=a,u=l;for(let e of t)if(!o[e]){let{advance:t,width:s,ascent:a,descent:l}=n(e),d=a+l;c+s+2*i>r&&(c=0,p=u),o[e]={x:c+i,y:p+i,width:s,height:d,advance:t,anchorX:s/2,anchorY:a},c+=s+2*i,u=Math.max(u,p+d+2*i)}return{mapping:o,xOffset:c,yOffsetMin:p,yOffsetMax:u,canvasHeight:Math.pow(2,Math.ceil(Math.log2(u)))}}(d({measureText:e=>n?n.measure(e):f(e),buffer:s,characterSet:e,maxCanvasWidth:1024},t&&{mapping:t.mapping,xOffset:t.xOffset,yOffsetMin:t.yOffsetMin,yOffsetMax:t.yOffsetMax}));if(u.height!==m){let e=u.height>0?h.getImageData(0,0,u.width,u.height):null;u.height=m,e&&h.putImageData(e,0,0)}if(g(h,i,o,r),n)for(let t of e){let e=v[t],i=e.width,{data:r,left:o=0,top:s=0}=n.draw(t),a=e.x-o,l=e.y-s,c=Math.max(0,Math.round(a)),p=Math.max(0,Math.round(l)),d=Math.min(r.width,u.width-c),f=Math.min(r.height,u.height-p);h.putImageData(r,c,p,0,0,d,f),e.x=c,e.y=p,e.width=d,e.height=f,e.anchorX+=d/2-o-i/2,e.anchorY+=s}else for(let t of e){let e=v[t];h.fillText(t,e.x,e.y+e.anchorY)}let P=n?n.measure():f();return{baselineOffset:(P.ascent-P.descent)/2,xOffset:y,yOffsetMin:b,yOffsetMax:w,mapping:v,data:u,width:u.width,height:u.height}}_getKey(){let{fontFamily:e,fontWeight:t,fontSize:n,buffer:i,sdf:r,radius:o,cutoff:s}=this.props;return r?"".concat(e," ").concat(t," ").concat(n," ").concat(i," ").concat(o," ").concat(s):"".concat(e," ").concat(t," ").concat(n," ").concat(i)}constructor(){this.props=d({},h)}}var m=n(64754);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 b(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 w={start:1,middle:0,end:-1},P={top:1,center:0,bottom:-1},_=[0,0,0,255],x={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:_},getBorderWidth:{type:"accessor",value:0},backgroundBorderRadius:{type:"object",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:h.characterSet},fontFamily:h.fontFamily,fontWeight:h.fontWeight,lineHeight:1,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:_},fontSettings:{type:"object",value:{},compare:1},wordBreak:"break-word",maxWidth:{type:"number",value:-1},contentCutoffPixels:{type:"array",value:[0,0]},contentAlignHorizontal:"none",contentAlignVertical:"none",getText:{type:"accessor",value:e=>e.text},getPosition:{type:"accessor",value:e=>e.position},getColor:{type:"accessor",value:_},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},getContentBox:{type:"accessor",value:[0,0,-1,-1]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}};class O extends i.A{initializeState(){this.state={styleVersion:0,fontAtlasManager:new v},this.props.maxWidth>0&&r.A.once(1,"v8.9 breaking change: TextLayer maxWidth is now relative to text size")()}updateState(e){let{props:t,oldProps:n,changeFlags:i}=e;(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getText))&&this._updateText(),(this._updateFontAtlas()||t.lineHeight!==n.lineHeight||t.wordBreak!==n.wordBreak||t.maxWidth!==n.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo(e){let{info:t}=e;return t.object=t.index>=0?this.props.data[t.index]:null,t}_updateFontAtlas(){let{fontSettings:e,fontFamily:t,fontWeight:n,_getFontRenderer:i}=this.props,{fontAtlasManager:r,characterSet:o}=this.state,s=b(y({},e),{characterSet:o,fontFamily:t,fontWeight:n,_getFontRenderer:i});if(!r.mapping)return r.setProps(s),!0;for(let e in s)if(s[e]!==r.props[e])return r.setProps(s),!0;return!1}_updateText(){var e;let t,{data:n,characterSet:i}=this.props,r=null==(e=n.attributes)?void 0:e.getText,{getText:s}=this.props,a=n.startIndices,l="auto"===i&&new Set;if(r&&a){let{texts:e,characterCount:i}=function(e){let{value:t,length:n,stride:i,offset:r,startIndices:o,characterSet:s}=e,a=t.BYTES_PER_ELEMENT,l=i?i/a:1,c=r?r/a:0,p=o[n]||Math.ceil((t.length-c)/l),u=s&&new Set,d=Array(n),h=t;if(l>1||c>0){h=new t.constructor(p);for(let e=0;e<p;e++)h[e]=t[e*l+c]}for(let e=0;e<n;e++){let t=o[e],n=o[e+1]||p,i=h.subarray(t,n);d[e]=String.fromCodePoint.apply(null,i),u&&i.forEach(u.add,u)}if(u)for(let e of u)s.add(String.fromCodePoint(e));return{texts:d,characterCount:p}}(b(y({},ArrayBuffer.isView(r)?{value:r}:r),{length:n.length,startIndices:a,characterSet:l}));t=i,s=(t,n)=>{let{index:i}=n;return e[i]}}else{let{iterable:e,objectInfo:i}=(0,o.X)(n);for(let n of(a=[0],t=0,e)){i.index++;let e=Array.from(s(n,i)||"");l&&e.forEach(l.add,l),t+=e.length,a.push(t)}}this.setState({getText:s,startIndices:a,numInstances:t,characterSet:l||i})}transformParagraph(e,t){let{fontAtlasManager:n}=this.state,i=n.mapping,{baselineOffset:o}=n.atlas,{fontSize:s}=n.props,a=this.state.getText,{wordBreak:u,lineHeight:d,maxWidth:h}=this.props;return function(e,t,n,i,o,s){let a=Array.from(e),u=a.length,d=Array(u),h=Array(u),f=Array(u),g=("break-word"===i||"break-all"===i)&&isFinite(o)&&o>0,v=[0,0],m=[0,0],y=0,b=t+n/2,w=0,P=0;for(let e=0;e<=u;e++){let t=a[e];if(("\n"===t||e===u)&&(P=e),P>w){let e=g?function(e,t,n,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5?arguments[5]:void 0;void 0===o&&(o=e.length);let s=[];return"break-all"===t?p(e,r,o,n,i,s):!function(e,t,n,i,r,o){let s=t,a=t,l=t,u=0;for(let d=t;d<n;d++)if(" "===e[d]?l=d+1:(" "===e[d+1]||d+1===n)&&(l=d+1),l>a){let t=c(e,a,l,r);u+t>i&&(s<a&&(o.push(a),s=a,u=0),t>i&&(t=p(e,a,l,i,r,o),s=o[o.length-1])),a=l,u+=t}}(e,r,o,n,i,s),s}(a,i,o,s,w,P):l;for(let t=0;t<=e.length;t++){let i=0===t?w:e[t-1],o=t<e.length?e[t]:P;!function(e,t,n,i,o,s){let a=0,l=0;for(let r=t;r<n;r++){let t=i[e[r]];t&&(l=Math.max(l,t.height))}for(let s=t;s<n;s++){let t=e[s],n=i[t];n?(o[s]=a+n.anchorX,a+=n.advance):(r.A.warn("Missing character: ".concat(t," (").concat(t.codePointAt(0),")"))(),o[s]=a,a+=32)}s[0]=a,s[1]=l}(a,i,o,s,d,m);for(let e=i;e<o;e++)h[e]=b,f[e]=m[0];y++,b+=n,v[0]=Math.max(v[0],m[0])}w=P}"\n"===t&&(d[w]=0,h[w]=0,f[w]=0,w++)}return v[1]=y*n,{x:d,y:h,rowWidth:f,size:v}}(a(e,t)||"",o,d*s,u,h*s,i)}renderLayers(){let{startIndices:e,numInstances:t,getText:n,fontAtlasManager:{atlas:i,mapping:r},styleVersion:o}=this.state,{data:a,_dataDiff:l,getPosition:c,getColor:p,getSize:u,getAngle:d,getPixelOffset:f,getBackgroun
1dColor:g,getBorderColor:v,getBorderWidth:y,getContentBox:b,backgroundBorderRadius:w,backgroundPadding:P,background:_,billboard:x,fontSettings:O,outlineWidth:j,outlineColor:S,sizeScale:C,sizeUnits:k,sizeMinPixels:A,sizeMaxPixels:M,contentCutoffPixels:E,contentAlignHorizontal:L,contentAlignVertical:T,transitions:I,updateTriggers:z}=this.props,D=this.getSubLayerClass("characters",s.A),R=this.getSubLayerClass("background",m.A),{fontSize:F}=this.state.fontAtlasManager.props;return[_&&new R({getFillColor:g,getLineColor:v,getLineWidth:y,borderRadius:w,padding:P,getPosition:c,getSize:u,getAngle:d,getPixelOffset:f,getClipRect:b,billboard:x,sizeScale:C,sizeUnits:k,sizeMinPixels:A,sizeMaxPixels:M,fontSize:F,transitions:I&&{getPosition:I.getPosition,getAngle:I.getAngle,getSize:I.getSize,getFillColor:I.getBackgroundColor,getLineColor:I.getBorderColor,getLineWidth:I.getBorderWidth,getPixelOffset:I.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:z.getPosition,getAngle:z.getAngle,getSize:z.getSize,getFillColor:z.getBackgroundColor,getLineColor:z.getBorderColor,getLineWidth:z.getBorderWidth,getPixelOffset:z.getPixelOffset,getBoundingRect:{getText:z.getText,getTextAnchor:z.getTextAnchor,getAlignmentBaseline:z.getAlignmentBaseline,styleVersion:o}}}),{data:a.attributes&&a.attributes.background?{length:a.length,attributes:a.attributes.background}:a,_dataDiff:l,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new D({sdf:O.sdf,smoothing:Number.isFinite(O.smoothing)?O.smoothing:h.smoothing,outlineWidth:j/(O.radius||h.radius),outlineColor:S,iconAtlas:i,iconMapping:r,getPosition:c,getColor:p,getSize:u,getAngle:d,getPixelOffset:f,getContentBox:b,billboard:x,sizeScale:C,sizeUnits:k,sizeMinPixels:A,sizeMaxPixels:M,fontSize:F,contentCutoffPixels:E,contentAlignHorizontal:L,contentAlignVertical:T,transitions:I&&{getPosition:I.getPosition,getAngle:I.getAngle,getColor:I.getColor,getSize:I.getSize,getPixelOffset:I.getPixelOffset,getContentBox:I.getContentBox}}
1,this.getSubLayerProps({id:"characters",updateTriggers:{all:z.getText,getPosition:z.getPosition,getAngle:z.getAngle,getColor:z.getColor,getSize:z.getSize,getPixelOffset:z.getPixelOffset,getContentBox:z.getContentBox,getIconOffsets:{getTextAnchor:z.getTextAnchor,getAlignmentBaseline:z.getAlignmentBaseline,styleVersion:o}}}),{data:a,_dataDiff:l,startIndices:e,numInstances:t,getIconOffsets:this.getIconOffsets,getIcon:n})]}static set fontAtlasCacheLimit(e){r.A.assert(Number.isFinite(e)&&e>=3,"Invalid cache limit"),f=new u(e)}constructor(){super(...arguments),this.getBoundingRect=(e,t)=>{let{size:[n,i]}=this.transformParagraph(e,t),{getTextAnchor:r,getAlignmentBaseline:o}=this.props;return[(w["function"==typeof r?r(e,t):r]-1)*n/2,(P["function"==typeof o?o(e,t):o]-1)*i/2,n,i]},this.getIconOffsets=(e,t)=>{let{getTextAnchor:n,getAlignmentBaseline:i}=this.props,{x:r,y:o,rowWidth:s,size:[,a]}=this.transformParagraph(e,t),l=w["function"==typeof n?n(e,t):n],c=P["function"==typeof i?i(e,t):i],p=r.length,u=Array(2*p),d=0;for(let e=0;e<p;e++)u[d++]=(l-1)*s[e]/2+r[e],u[d++]=(c-1)*a/2+o[e];return u}}}O.defaultProps=x,O.layerName="TextLayer";let j=O},11958(e,t,n){n.d(t,{Z:()=>r});let i={none:0,start:1,center:2,end:3},r={name:"text",vs:"layout(std140) uniform textUniforms {\n highp vec2 cutoffPixels;
1\n highp ivec2 align;\n highp float fontSize;\n bool flipY;\n} text;\n\n#define ALIGN_MODE_START ".concat(i.start,"\n#define ALIGN_MODE_CENTER ").concat(i.center,"\n#define ALIGN_MODE_END ").concat(i.end,"\n"),getUniforms:e=>{var t;let{contentCutoffPixels:n=[0,0],contentAlignHorizontal:r="none",contentAlignVertical:o="none",fontSize:s,viewport:a}=e;return{cutoffPixels:n,align:[i[r],i[o]],fontSize:s,flipY:null!=(t=null==a?void 0:a.flipY)&&t}},uniformTypes:{cutoffPixels:"vec2<f32>",align:"vec2<i32>",fontSize:"f32",flipY:"f32"}}},93980(e,t,n){n.d(t,{J:()=>i});function i(e){let{data:t,getIndex:n,dataRange:i,replace:r}=e,{startRow:o=0,endRow:s=1/0}=i,a=t.length,l=a,c=a;for(let e=0;e<a;e++){let i=n(t[e]);if(l>e&&i>=o&&(l=e),i>=s){c=e;break}}let p=l,u=c-l!==r.length?t.slice(c):void 0;for(let e=0;e<r.length;e++)t[p++]=r[e];if(u){for(let e=0;e<u.length;e++)t[p++]=u[e];t.length=p}return{startRow:l,endRow:l+r.length}}},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}}},52732(e,t,n){n.d(t,{A:()=>P});var i=n(1918),r=n(13563),o=n(8070),s=n(5214),a=n(36854),l=n(69798),c=n(38550),p=n(62837),u=n(12434),d=n(70882);let h="layout(std140) uniform simpleMeshUniforms {\n float sizeScale;\n bool composeModelMatrix;\n bool hasTexture;\n bool flatShading;\n} simpleMesh;\n",f={name:"simpleMesh",source:"struct SimpleMeshUniforms {\n sizeScale: f32,\n composeModelMatrix: f32,\n hasTexture: f32,\n flatShading: f32,\n};\n\n@group(0) @binding(auto) var<uniform> simpleMesh: SimpleMeshUniforms;\n@group(0) @binding(auto) var simpleMeshTexture: texture_2d<f32>;\n@group(0) @binding(auto) var simpleMeshTextureSampler: sampler;\n",vs:h,fs:h,uniformTypes:{sizeScale:"f32",composeModelMatrix:"f32",hasTexture:"f32",flatShading:"f32"}};var g=n(90623);function v(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 m(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 y(e){let t=e.positions||e.POSITION;i.A.assert(t,'no "postions" or "POSITION" attribute in mesh');let n=t.value.length/t.size,r=e.COLOR_0||e.colors;r||(r={size:3,value:new Float32Array(3*n).fill(1)});let o=e.NORMAL||e.normals;o||(o={size:3,value:new Float32Array(3*n).fill(0)});let s=e.TEXCOORD_0||e.texCoords;return s||(s={size:2,value:new Float32Array(2*n).fill(0)}),{positions:t,colors:r,normals:o,texCoords:s}}function b(e){return e instanceof p.V?(e.attributes=y(e.attributes),e):new p.V(e.attributes?m(v({},e),{topology:"triangle-list",attributes:y(e.attributes)}):{topology:"triangle-list",attributes:y(e)})}class w extends r.A{getShaders(){return super.getShaders({vs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-vs\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceColors;\nin vec3 instanceModelMatrixCol0;\nin vec3 instanceModelMatrixCol1;\nin vec3 instanceModelMatrixCol2;\nin vec3 instanceTranslation;\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\nvoid main(void) {\ngeometry.worldPosition = instancePositions;\ngeometry.uv = texCoords;\ngeometry.pickingColor = picking_getPickingColorFromInstanceID();\nvTexCoord = texCoords;\ncameraPosition = project.cameraPosition;\nvColor = vec4(colors * instanceColors.rgb, instanceColors.a);\nmat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);\nvec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale + instanceTranslation;\nif (simpleMesh.composeModelMatrix) {\nDECKGL_FILTER_SIZE(pos, geometry);\nnormals_commonspace = project_normal(instanceModelMatrix * normals);\ngeometry.worldPosition += pos;\ngl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\ngeometry.position = position_commonspace;\n}\nelse {\npos = project_size(pos);\nDECKGL_FILTER_SIZE(pos, geometry);\ngl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\ngeometry.position = position_commonspace;\nnormals_commonspace = project_normal(instanceModelMatrix * normals);\n}\ngeometry.normal = normals_commonspace;\nDECKGL_FILTER_GL_POSITION(gl_Position, geometry);\nDECKGL_FILTER_COLOR(vColor, geometry);\n}\n",fs:"#version 300 es\n#define SHADER_NAME simple-mesh-layer-fs\nprecision highp float;\nuniform sampler2D sampler;\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\nout vec4 fragColor;\nvoid main(void) {\ngeometry.uv = vTexCoord;\nvec3 normal;\nif (simpleMesh.flatShading) {\nnormal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n} else {\nnormal = normals_commonspace;\n}\nvec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;\nDECKGL_FILTER_COLOR(color, geometry);\nvec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\nfragColor = vec4(lightColor, color.a * layer.opacity);\n}\n",source:"struct Attributes {\n @builtin(instance_index) instanceIndex: u32,\n @location(0) positions: vec3<f32>,\n @location(1) normals: vec3<f32>,\n @location(2) colors: vec3<f32>,\n @location(3) texCoords: vec2<f32>,\n @location(4) instancePositions: vec3<f32>,\n @location(5) instancePositions64Low: vec3<f32>,\n @location(6) instanceColors: vec4<f32>,\n @location(7) instanceModelMatrixCol0: vec3<f32>,\n @location(8) instanceModelMatrixCol1: vec3<f32>,\n @location(9) instanceModelMatrixCol2: vec3<f32>,\n @location(10) instanceTranslation: vec3<f32>,\n};
1\n\nstruct Varyings {\n @builtin(position) position: vec4<f32>,\n @location(0) color: vec4<f32>,\n @location(1) texCoords: vec2<f32>,\n @location(2) normal: vec3<f32>,\n @location(3) positionCommon: vec3<f32>,\n @location(4) pickingColor: vec3<f32>,\n};\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var varyings: Varyings;\n\n geometry.worldPosition = attributes.instancePositions;\n geometry.uv = attributes.texCoords;\n geometry.pickingColor = picking_getPickingColorFromIndex(attributes.instanceIndex);\n\n let instanceModelMatrix = mat3x3<f32>(\n attributes.instanceModelMatrixCol0,\n attributes.instanceModelMatrixCol1,\n attributes.instanceModelMatrixCol2\n );\n let meshPosition =\n (instanceModelMatrix * attributes.positions) * simpleMesh.sizeScale +\n attributes.instanceTranslation;\n\n if (simpleMesh.composeModelMatrix > 0.5) {\n geometry.normal = project_normal(instanceModelMatrix * attributes.normals);\n geometry.worldPosition += meshPosition;\n let projected = project_position_to_clipspace_and_commonspace(\n attributes.instancePositions + meshPosition,\n attributes.instancePositions64Low,\n vec3<f32>(0.0)\n );\n geometry.position = projected.commonPosition;\n varyings.position = projected.clipPosition;\n } else {\n let projected = project_position_to_clipspace_and_commonspace(\n attributes.instancePositions,\n attributes.instancePositions64Low,\n project_size_vec3(meshPosition)\n );\n geometry.position = projected.commonPosition;\n geometry.normal = project_normal(instanceModelMatrix * attributes.normals);\n varyings.position = projected.clipPosition;\n }\n\n varyings.color = vec4<f32>(\n attributes.colors * attributes.instanceColors.rgb,\n attributes.instanceColors.a\n );\n varyings.texCoords = attributes.texCoords;\n varyings.normal = geometry.normal;\n varyings.positionCommon = geometry.position.xyz;\n varyings.pickingColor = geometry.pickingColor;\n return varyings;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> {\n geometry.uv = varyings.texCoords;\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 var color = varyings.color;\n if (simpleMesh.hasTexture > 0.5) {\n color = textureSample(simpleMeshTexture, simpleMeshTextureSampler, varyings.texCoords);\n }\n\n var normal = varyings.normal;\n if (simpleMesh.flatShading > 0.5) {\n // WebGPU's screen-space Y axis reverses the derivative orientation used by GLSL flat shading.\n normal = normalize(cross(dpdy(varyings.positionCommon), dpdx(varyings.positionCommon)));\n }\n\n color = vec4<f32>(\n lighting_getLightColor2(color.rgb, project.cameraPosition, varyings.positionCommon, normal),\n color.a * layer.opacity\n );\n\n if (picking.isHighlightActive > 0.5) {\n let highlightedColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(varyings.pickingColor - highlightedColor))) {\n let blendedAlpha = picking.highlightColor.a + color.a * (1.0 - picking.highlightColor.a);\n if (blendedAlpha > 0.0) {\n color = vec4<f32>(\n mix(color.rgb, picking.highlightColor.rgb, picking.highlightColor.a / blendedAlpha),\n blendedAlpha\n );\n }\n }\n }\n\n return deckgl_premultiplied_alpha(color);\n}\n",modules:[o.A,s.A,a.w,l.Ay,f]})}getBounds(){var e;if(this.props._instanced)return super.getBounds();let t=this.state.positionBounds;if(t)return t;let{mesh:n}=this.props;if(!n)return null;if(!(t=null==(e=n.header)?void 0:e.boundingBox)){let{attributes:e}=b(n);e.POSITION=e.POSITION||e.positions,t=(0,g.l)(e)}return this.state.positionBounds=t,t}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{transition:!0,type:"float64",fp64:this.use64bitPositions(),size:3,accessor:"getPosition"},instanceColors:{type:"unorm8",transition:!0,size:this.props.colorFormat.length,accessor:"getColor",defaultValue:[0,0,0,255]},instanceModelMatrix:d.U}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}updateState(e){super.updateState(e);let{props:t,oldProps:n,changeFlags:i}=e;if(t.mesh!==n.mesh||i.extensionsChanged){var r;if(this.state.positionBounds=null,null==(r=this.state.model)||r.destroy(),t.mesh){this.state.model=this.getModel(t.mesh);let e=t.mesh.attributes||t.mesh;this.setState({hasNormals:!!(e.NORMAL||e.normals)})}this.getAttributeManager().invalidateAll()}t.texture!==n.texture&&t.texture instanceof c.g&&this.setTexture(t.texture),this.state.model&&this.state.model.setTopology(this.props.wireframe?"line-strip":"triangle-list")}finalizeState(e){super.finalizeState(e),this.state.emptyTexture.delete()}draw(e){let{uniforms:t}=e,{model:n}=this.state;if(!n)return;let{viewport:i,renderPass:r}=this.context,{sizeScale:o,coordinateSystem:s,_instanced:a}=this.props,l={sizeScale:o,composeModelMatrix:!a||(0,d.w)(i,s),flatShading:!this.state.hasNormals};n.shaderInputs.setProps({simpleMesh:l}),n.draw(r)}get isLoaded(){var e;return!!((null==(e=this.state)?void 0:e.model)&&super.isLoaded)}getModel(e){let t=new u.K(this.context.device,m(v({}
1,this.getShaders()),{id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:b(e),isInstanced:!0}));return t.shaderInputs.setProps({simpleMesh:this.getTextureProps(this.props.texture)}),t}setTexture(e){let{model:t}=this.state;t&&t.shaderInputs.setProps({simpleMesh:this.getTextureProps(e)})}getTextureProps(e){let t=e||this.state.emptyTexture;return m(v({},"webgpu"===this.context.device.type?{simpleMeshTexture:t}:{sampler:t}),{hasTexture:!!e})}}w.defaultProps={mesh:{type:"object",value:null,async:!0},texture:{type:"image",value:null,async:!0},sizeScale:{type:"number",value:1,min:0},_instanced:!0,wireframe:!1,material:!0,getPosition:{type:"accessor",value:e=>e.position},getColor:{type:"accessor",value:[0,0,0,255]},getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},textureParameters:{type:"object",ignore:!0,value:null}},w.layerName="SimpleMeshLayer";let P=w},70882(e,t,n){n.d(t,{U:()=>c,w:()=>p});var i=n(70008);let r=Math.PI/180,o=new Float32Array(16),s=new Float32Array(12);function a(e,t,n){let i=t[0]*r,o=t[1]*r,s=t[2]*r,a=Math.sin(s),l=Math.sin(i),c=Math.sin(o),p=Math.cos(s),u=Math.cos(i),d=Math.cos(o),h=n[0],f=n[1],g=n[2];e[0]=h*d*u,e[1]=h*c*u,e[2]=-(h*l),e[3]=f*(-c*p+d*l*a),e[4]=f*(d*p+c*l*a),e[5]=f*u*a,e[6]=g*(c*a+d*l*p),e[7]=g*(-d*a+c*l*p),e[8]=g*u*p}function l(e){return e[0]=e[0],e[1]=e[1],e[2]=e[2],e[3]=e[4],e[4]=e[5],e[5]=e[6],e[6]=e[8],e[7]=e[9],e[8]=e[10],e[9]=e[12],e[10]=e[13],e[11]=e[14],e.subarray(0,12)}let c={size:12,accessor:["getOrientation","getScale","getTranslation","getTransformMatrix"],shaderAttributes:{instanceModelMatrixCol0:{size:3,elementOffset:0},instanceModelMatrixCol1:{size:3,elementOffset:3},instanceModelMatrixCol2:{size:3,elementOffset:6},instanceTranslation:{size:3,elementOffset:9}},update(e,t){let{startRow:n,endRow:r}=t,{data:c,getOrientation:p,getScale:u,getTranslation:d,getTransformMatrix:h}=this.props,f=Array.isArray(h),g=f&&16===h.length,v=Array.isArray(u),m=Array.isArray(p),y=Array.isArray(d),b=g||!f&&!!h(c[0]);b?e.constant=g:e.constant=m&&v&&y;let w=e.value;if(e.constant){let t;b?(o.set(h),t=l(o)):(a(t=s,p,u),t.set(d,9)),e.value=new Float32Array(t)}else{let t=n*e.size,{iterable:f,objectInfo:P}=(0,i.X)(c,n,r);for(let e of f){let n;(P.index++,b)?(o.set(g?h:h(e,P)),n=l(o)):(a(n=s,m?p:p(e,P),v?u:u(e,P)),n.set(y?d:d(e,P),9)),w[t++]=n[0],w[t++]=n[1],w[t++]=n[2],w[t++]=n[3],w[t++]=n[4],w[t++]=n[5],w[t++]=n[6],w[t++]=n[7],w[t++]=n[8],w[t++]=n[9],w[t++]=n[10],w[t++]=n[11]}}}};function p(e,t){return"cartesian"===t||"meter-offsets"===t||"default"===t&&!e.isGeospatial}},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 p(e){return i.isValidElement(e)}let u=(0,i.createContext)(),d={mixBlendMode:null};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 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),w=(0,i.useMemo)(()=>(function(e){let{children:t,layers:n=[],views:r}=e,o=[],c=[],u={};
1return 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(p(t)){if(t.type===i.Fragment)return e(t.props.children);s(t.type,a.A)}return t}(t),e=>{if(p(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);u[n.id]=n}}else e&&o.push(e)}),Object.keys(u).length>0&&(Array.isArray(r)?r.forEach(e=>{u[e.id]=e}):r&&(u[r.id]=r),r=Object.values(u)),{layers:n=c.length>0?[c,n]:n,children:o,views:r}})(e),[e.layers,e.views,e.children]),P=!0,_=t=>{var n;return P&&e.viewState?(m.viewStateUpdateRequested=t,null):(m.viewStateUpdateRequested=null,null==(n=e.onViewStateChange)?void 0:n.call(e,t))},x=t=>{if(P)m.interactionStateUpdateRequested=t;else{var n;m.interactionStateUpdateRequested=null,null==(n=e.onInteractionStateChange)||n.call(e,t)}},O=(0,i.useMemo)(()=>{let t=f(h({widgets:[]},e),{style:null,width:"100%",height:"100%",parent:y.current,canvas:b.current,layers:w.layers,onViewStateChange:_,onInteractionStateChange:x});return w.views&&(t.views=w.views),delete t._customRender,m.deck&&(m.deck.setProps(t),m.deck.isInitialized&&(m.lastRenderedViewports=m.deck.getViewports())),t},[e]);(0,i.useEffect)(()=>{var t;let n,i=e.Deck||r.A;return t=f(h({},O),{parent:y.current,canvas:b.current}),n=new i(f(h({},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&&_(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:S,width:C="100%",height:k="100%",id:A,style:M}=e,{containerStyle:E,canvasStyle:L}=(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 d?o[e]=i[e]:r[e]=i[e];return{containerStyle:r,canvasStyle:o}})({width:C,height:k,style:M}),[C,k,M]);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=u.Provider}=e,{viewManager:o}=n||{};if(!o||!o.views.length)return[];let l={},d=o.views[0].id;for(let e of t){let t=d,n=e;p(e)&&s(e.type,a.A)&&(t=e.props.id||d,n=e.props.children);let r=o.getViewport(t),u=o.getViewState(t);if(r){u.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(p(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:u}),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:p}=t,u="view-".concat(e),d=(0,i.createElement)("div",{key:u,id:u,style:{position:"absolute",left:s,top:a,width:c,height:p}},...o),h={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:h},d)})}({children:w.children,deck:m.deck,ContextProvider:S}),t=(0,i.createElement)("canvas",{key:"canvas",id:A||"deckgl-overlay",ref:b,style:L}),r=(0,i.createElement)("div",{key:"deck-events-root",className:"deck-events-root",style:{width:C,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(A||"deckgl","-wrapper"),ref:y,style:E},[r,o])}return P=!1,m.control})},28169(e,t,n){n.d(t,{j:()=>d});var i=n(95443),r=n(64244),o=n(42943),s=n(68806),a=n(96376),l=n(618),c=n(32914);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 u(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 d extends r.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}onRenderHTML(e){var t,n;let r=this.viewId||(null==(n=Object.values(this.viewports)[0])?void 0:n.id),o=this.viewports[r],[s,a]=this.getRotation(o),p=!1===this.props.tooltip?void 0:null!=(t=this.props.tooltip)?t:this.props.label,u=(0,i.Y)("div",{className:"deck-widget-button",style:{perspective:100},children:(0,i.Y)(c.m,{content:p,children:(0,i.Y)("button",{type:"button",onClick:()=>{for(let e of Object.values(this.viewports))this.handleCompassReset(e)},"aria-label":this.props.label,style:{transform:"rotateX(".concat(a,"deg)")},children:(0,i.Y)("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:(0,i.FD)("g",{transform:"rotate(".concat(s,",13,13)"),children:[(0,i.Y)("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, rgb(240, 92, 68))"}),(0,i.Y)("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, rgb(204, 204, 204))"})]})})})})});(0,l.XX)(u,e)}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.updateHTML())}getRotation(e){return e instanceof o.A?[-e.bearing,e.pitch]:e instanceof s.Ay?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}handleCompassReset(e){let t=this.viewId||e.id;if(e instanceof o.A){var n,i;let r=this.getViewState(t),o=0===this.getRotation(e)[0],s=o?0:e.pitch;null==(n=(i=this.props).onReset)||n.call(i,{viewId:t,bearing:0,pitch:s});let l=u(p(u(p({},r),{bearing:0}),o?{pitch:s}:{}),{transitionDuration:this.props.transitionDuration,transitionInterpolator:new a.A});this.setViewState(t,l)}}constructor(e={}){super(e),this.className="deck-widget-compass",this.placement="top-left",this.viewports={},this.setProps(this.props)}}d.defaultProps=u(p({},r.x.defaultProps),{id:"compass",placement:"top-left",viewId:null,label:"Reset Compass",tooltip:void 0,transitionDuration:200,onReset:()=>{}})},66924(e,t,n){n.d(t,{F:()=>u});var i,r,o=n(95443),s=n(64244),a=n(618),l=n(23598),c=n(45504);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}class u extends s.x{onAdd(e){var t;let{deck:n}=e;null==(t=n.getCanvas())||t.addEventListener("contextmenu",e=>this.handleContextMenu(e))}handleContextMenu(e){var t,n,i;let r=e.target.getBoundingClientRect(),o=e.clientX-r.x,s=e.clientY-r.y,a=(null==(t=this.deck)?void 0:t.pickObject({x:o,y:s}))||{x:o,y:s,picked:!1,layer:null,color:null,index:-1,pixelRatio:1},l=(null==(n=(i=this.props).getMenuItems)?void 0:n.call(i,a,this))||this.props.menuItems;this.menu=l.length>0?{items:l,pickInfo:a}:null,e.preventDefault(),this.updateHTML()}onRenderHTML(e){if(!this.menu)return void(0,a.XX)(null,e);let{items:t,pickInfo:n}=this.menu,i=p({pointerEvents:"auto",position:"static"},this.props.style),r=(0,o.Y)(c.A,{x:n.x,y:n.y,placement:this.props.placement,arrow:this.props.arrow,arrowColor:"var(--menu-background, #fff)",offset:this.props.offset,children:(0,o.Y)(l.c,{menuItems:t,onSelect:e=>this.props.onMenuItemSelected(e,n),style:i,isOpen:!0,onClose:()=>this.hide()})});(0,a.XX)(r,e)}hide(){this.menu=null,this.updateHTML()}constructor(e){super(e),this.className="deck-widget-context-menu",this.placement="fill",this.menu=null,this.setProps(this.props)}}i=p({},s.x.defaultProps),r=r={id:"context",viewId:null,menuItems:[],getMenuItems:void 0,onMenuItemSelected:()=>{},placement:"bottom-start",offset:10,arrow:!1},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}
1)(Object(r)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}),u.defaultProps=i},73616(e,t,n){n.d(t,{e:()=>p});var i,r,o=n(95443),s=n(64244),a=n(1918),l=n(618),c=n(59065);class p extends s.x{onAdd(){document.addEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRemove(){document.removeEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRenderHTML(e){let t=this.getFullscreen();(0,l.XX)((0,o.Y)(c.K,{onClick:()=>{this.handleClick().catch(e=>a.A.error(e)())},label:t?this.props.exitLabel:this.props.enterLabel,tooltip:t?this.props.exitTooltip:this.props.enterTooltip,className:t?"deck-widget-fullscreen-exit":"deck-widget-fullscreen-enter"}),e)}setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}getContainer(){var e,t,n;return this.props.container||(null==(e=this.deck)?void 0:e.props.parent)||(null==(n=this.deck)||null==(t=n.getCanvas())?void 0:t.parentElement)}getFullscreen(){return this.fullscreen}onFullscreenChange(){let e=document.fullscreenElement===this.getContainer();if(e!==this.fullscreen){var t,n;this.fullscreen=e,null==(t=(n=this.props).onFullscreenChange)||t.call(n,e),this.updateHTML()}}async handleClick(){this.getFullscreen()?await this.exitFullscreen():await this.requestFullscreen()}async requestFullscreen(){let e=this.getContainer();(null==e?void 0:e.requestFullscreen)?await e.requestFullscreen({navigationUI:"hide"}):this.togglePseudoFullscreen()}async exitFullscreen(){document.exitFullscreen?await document.exitFullscreen():this.togglePseudoFullscreen()}togglePseudoFullscreen(){var e,t,n;null==(e=this.getContainer())||e.classList.toggle("deck-pseudo-fullscreen"),this.fullscreen=!this.fullscreen,null==(t=(n=this.props).onFullscreenChange)||t.call(n,this.fullscreen),this.updateHTML()}constructor(e={}){super(e),this.className="deck-widget-fullscreen",this.placement="top-left",this.fullscreen=!1,this.setProps(this.props)}}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}({},s.x.defaultProps),r=r={id:"fullscreen",placement:"top-left",viewId:null,enterLabel:"Enter Fullscreen",exitLabel:"Exit Fullscreen",enterTooltip:void 0,exitTooltip:void 0,container:void 0,onFullscreenChange:()=>{}},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))}),p.defaultProps=i},62281(e,t,n){n.d(t,{h:()=>m});var i,r,o=n(95443),s=n(64244),a=n(96376),l=n(43396),c=n(618),p=n(23598);let u="deck-geocoder-history";class d{async geocode(e,t,n){this.errorText="",this.addressText=t;try{let i=await e.geocode(t,n);if(i)return this.storeAddress(this.addressText),i;this.errorText="Invalid address"}catch(e){this.errorText="".concat(e.message)}return null}loadPreviousAddresses(){try{let e=window.localStorage.getItem(u),t=e&&JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch(e){}return[]}storeAddress(e){let t=e.trim();if(!t||"current"===t)return;let n=[t,...this.addressHistory.filter(e=>e!==t)];this.addressHistory=n.slice(0,this.props.maxEntries);try{window.localStorage.setItem(u,JSON.stringify(this.addressHistory))}catch(e){}}constructor(e){this.addressText="",this.errorText="",this.addressHistory=[],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}
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}({maxEntries:5},e),this.addressHistory=this.loadPreviousAddresses()}}var h=n(72504);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}let g="current",v={label:"Current location",value:g,icon:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M480-480q33 0 56.5-23.5T560-560q0-33-23.5-56.5T480-640q-33 0-56.5 23.5T400-560q0 33 23.5 56.5T480-480Zm0 294q122-112 181-203.5T720-552q0-109-69.5-178.5T480-800q-101 0-170.5 69.5T240-552q0 71 59 162.5T480-186Zm0 106Q319-217 239.5-334.5T160-552q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 100-79.5 217.5T480-80Z'/%3E%3C/svg%3E"};class m extends s.x{setProps(e){var t,n;if(this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,this.geocoder=function(e){switch(e.geocoder){case"google":return h.o5;case"mapbox":return h.gH;case"opencage":return h.lL;case"coordinates":return h.iD;case"custom":if(!e.customGeocoder)throw Error("Custom geocoder is not defined");return e.customGeocoder;default:throw Error("Unknown geocoder: ".concat(e.geocoder))}}(this.props),this.geocoder.requiresApiKey&&!this.props.apiKey)throw Error("API key is required for the ".concat(this.geocoder.name," geocoder"));super.setProps(e)}onRenderHTML(e){var t;let n=this.props._geolocation?[v,...this.geocodeHistory.addressHistory]:[...this.geocodeHistory.addressHistory];(0,c.XX)((0,o.FD)("div",{className:"deck-widget-geocoder",children:[(0,o.Y)("input",{className:"deck-widget-geocoder-input",type:"text",placeholder:this.isGettingLocation?"Finding your location...":null!=(t=this.geocoder.placeholderLocation)?t:"Enter address or location",value:this.geocodeHistory.addressText,onInput:e=>{var t;return this.setInput((null==(t=e.target)?void 0:t.value)||"")},onKeyPress:this.handleKeyPress}),(0,o.Y)(p.r,{menuItems:n,onSelect:this.handleSelect}),this.geocodeHistory.errorText&&(0,o.Y)("div",{className:"deck-widget-geocoder-error",children:this.geocodeHistory.errorText})]}),e)}flyTo(e){for(let i of this.viewIds){if("longitude"in e&&"latitude"in e){var t,n;null==(t=(n=this.props).onGeocode)||t.call(n,{viewId:i,coordinates:{longitude:e.longitude,latitude:e.latitude,zoom:e.zoom}})}let r=f({},this.getViewState(i),e);this.props.transitionDuration>0&&(r.transitionDuration=this.props.transitionDuration,r.transitionInterpolator="latitude"in r?new a.A:new l.A),this.setViewState(i,r)}}constructor(e={}){super(e),this.className="deck-widget-geocoder",this.placement="top-left",this.geocodeHistory=new d({}),this.addressText="",this.geocoder=h.iD,this.isGettingLocation=!1,this.setInput=e=>{this.addressText=e},this.handleKeyPress=e=>{"Enter"===e.key&&this.handleSubmit()},this.handleSelect=e=>{e===g?this.getCurrentLocation():(this.setInput(e),this.handleSubmit())},this.handleSubmit=()=>{this.geocode(this.addressText)},this.getCurrentLocation=async()=>{this.isGettingLocation=!0,this.rootElement&&this.updateHTML();try{let e=await h.NF.geocode();e&&this.flyTo(e)}catch(e){this.geocodeHistory.errorText=e instanceof Error?e.message:"Location error"}finally{this.isGettingLocation=!1,this.rootElement&&this.updateHTML()}},this.geocode=async e=>{let t=await this.geocodeHistory.geocode(this.geocoder,this.addressText,this.props.apiKey);this.rootElement&&this.updateHTML(),t&&this.flyTo(t)},this.setProps(this.props)}}i=f({},s.x.defaultProps),r=r={id:"geocoder",viewId:null,placement:"top-left",label:"Geocoder",transitionDuration:200,geocoder:"coordinates",customGeocoder:h.iD,apiKey:"",_geolocation:!1,onGeocode:()=>{}},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}
1)(Object(r)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}),m.defaultProps=i},57189(e,t,n){n.d(t,{b:()=>p});var i=n(95443),r=n(64244),o=n(43396),s=n(618),a=n(32914);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 p extends r.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}onRenderHTML(e){var t,n;let r=this.viewId||(null==(n=Object.values(this.viewports)[0])?void 0:n.id)||"default-view",o=this.viewports[r],{rotationOrbit:l,rotationX:c}=this.getNormalizedRotation(o),p=!1===this.props.tooltip?void 0:null!=(t=this.props.tooltip)?t:this.props.label,u=(0,i.Y)("div",{className:"deck-widget-button",style:{perspective:100,pointerEvents:"auto"},children:(0,i.Y)(a.m,{content:p,children:(0,i.FD)("button",{type:"button",onClick:()=>{for(let e of Object.values(this.viewports))this.resetOrbitView(e)},"aria-label":this.props.label,style:{position:"relative",width:26,height:26},children:[(0,i.Y)("svg",{className:"gimbal-outer-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:"rotateY(".concat(l,"deg)")},children:(0,i.Y)("circle",{cx:"13",cy:"13",r:"10",stroke:"var(--icon-gimbal-outer-color, rgb(68, 92, 204))",strokeWidth:this.props.strokeWidth,fill:"none"})}),(0,i.Y)("svg",{className:"gimbal-inner-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:"rotateX(".concat(c,"deg)")},children:(0,i.Y)("circle",{cx:"13",cy:"13",r:"7",stroke:"var(--icon-gimbal-inner-color, rgb(240, 92, 68))",strokeWidth:this.props.strokeWidth,fill:"none"})})]})})});(0,s.XX)(u,e)}onViewportChange(e){this.viewports[e.id]=e,this.updateHTML()}resetOrbitView(e){let t=this.viewId||(null==e?void 0:e.id)||"OrbitView",n=this.getViewState(t);if("rotationOrbit"in n||"rotationX"in n){var i,r;null==(i=(r=this.props).onReset)||i.call(r,{viewId:t,rotationOrbit:0,rotationX:0});let e=c(l({},n),{rotationOrbit:0,rotationX:0,transitionDuration:this.props.transitionDuration,transitionInterpolator:new o.A({transitionProps:["rotationOrbit","rotationX"]})});this.setViewState(t,e)}}getNormalizedRotation(e){let t=this.viewId||(null==e?void 0:e.id)||"OrbitView",n=this.getViewState(t),[i,r]=this.getRotation(n);return{rotationOrbit:u(i),rotationX:u(r)}}getRotation(e){return e&&("rotationOrbit"in e||"rotationX"in e)?[-(e.rotationOrbit||0),e.rotationX||0]:[0,0]}constructor(e={}){super(e),this.className="deck-widget-gimbal",this.placement="top-left",this.viewports={},this.setProps(this.props)}}function u(e){let t=((e+180)%360+360)%360-180,n=t-90;return 10>Math.abs(n)&&(n<10?t=100:n>-10&&(t=80)),t}p.defaultProps=c(l({},r.x.defaultProps),{id:"gimbal",placement:"top-left",viewId:null,label:"Gimbal",tooltip:void 0,strokeWidth:1.5,transitionDuration:200,onReset:()=>{}})},45080(e,t,n){n.d(t,{U:()=>c});var i,r,o=n(95443),s=n(618),a=n(64244),l=n(59065);class c extends a.x{setProps(e){var t;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=e.viewId,super.setProps(e)}onRenderHTML(e){let{className:t,style:n,icon:i,color:r,label:a,tooltip:c,onClick:p}=this.props;(0,s.XX)((0,o.Y)(l.K,{className:t,style:n,color:r,icon:i,label:a,tooltip:c,onClick:p}),e)}constructor(e){super(e),this.className="",this.placement="top-left",this.setProps(this.props)}}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}({},a.x.defaultProps),r=r={id:"icon",placement:"top-left",viewId:null,icon:"",label:"",tooltip:void 0,color:"",onClick:void 0},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))}),c.defaultProps=i},74535(e,t,n){n.d(t,{j:()=>u});var i,r,o=n(95443),s=n(64244),a=n(618),l=n(45504),c=n(74918);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}class u extends s.x{setProps(e){var t;this.viewId=null!=(t=e.viewId)?t:this.viewId,super.setProps(e)}onAdd(e){let{deck:t}=e;this.deck=t}onRemove(){this.rootElement&&(0,a.XX)(null,this.rootElement)}onViewportChange(e){this.viewport=e,this.updateHTML()}onHover(e){"hover"===this.props.mode&&(this.tooltip=this._getTooltip(e),this.updateHTML())}onClick(e){"click"===this.props.mode&&(this.tooltip=this._getTooltip(e),this.updateHTML())}_getTooltip(e){var t;if(!this.props.getTooltip)return null;let n=null!=(t=this.props.getTooltip(e,this))?t:null;if(null===n)return null;let i="string"==typeof n?{text:n}:n,r=i.position||e.coordinate;return r?p({position:r,text:"",html:"",element:null,className:"",style:{}},i):null}onRenderHTML(e){if(!this.viewport||null===this.tooltip)return void(0,a.XX)(null,e);let t=p({},this.props.style,this.tooltip.style),[n,i]=this.viewport.project(this.tooltip.position),r=(0,o.Y)(l.A,{x:n,y:i,placement:this.props.placement,arrow:this.props.arrow,arrowColor:"var(--menu-background, #fff)",offset:this.props.offset,children:(0,o.Y)(c.R,{className:"deck-widget-popup-content ".concat(this.tooltip.className," ").concat(this.props.className),style:t,html:this.tooltip.html,text:this.tooltip.text,element:this.tooltip.element})});(0,a.XX)(r,e)}constructor(e){super(e),this.className="deck-widget-info",this.placement="fill",this.tooltip=null,this.setProps(this.props)}}i=p({},s.x.defaultProps),r=r={id:"info",viewId:null,mode:"hover",getTooltip:void 0,placement:"right",offset:10,arrow:10},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))}),u.defaultProps=i},45723(e,t,n){n.d(t,{e:()=>r});var i=n(95443);let r=e=>{let{children:t,orientation:n="horizontal"}=e;return(0,i.Y)("div",{className:"deck-widget-button-group ".concat(n),children:t})}},23598(e,t,n){n.d(t,{c:()=>c,r:()=>l});var i=n(95443),r=n(10448),o=n(99858);function s(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 a(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 l=e=>{let[t,n]=(0,r.J0)(!1);return(0,i.Y)(c,a(s({},e),{style:a(s({},e.style),{position:"absolute"}),isOpen:t,onClose:()=>n(!1),trigger:(0,i.Y)("button",{className:"deck-widget-dropdown-button",onClick:()=>n(!t),children:(0,i.Y)("span",{className:"deck-widget-dropdown-icon ".concat(t?"open":"")})})}))},c=e=>{let t=(0,r.li)(null);return((0,r.vJ)(()=>{let n=n=>{t.current&&!t.current.contains(n.target)&&e.onClose()};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[]),0===e.menuItems.length)?null:(0,i.FD)("div",{className:"deck-widget-dropdown-container",ref:t,children:[e.trigger,e.isOpen&&(0,i.Y)("ul",{className:"deck-widget-dropdown-menu",style:e.style,children:e.menuItems.map((t,n)=>{let r="string"==typeof t?t:t.value,s="string"==typeof t?void 0:t.icon;return(0,i.FD)("li",{className:"deck-widget-dropdown-item ".concat(r?"":"disabled"),onClick:()=>((t,n)=>{if(t){var i,r;"object"==typeof n&&(null==(r=n.onSelect)||r.call(n)),null==(i=e.onSelect)||i.call(e,t),e.onClose()}})(r,t),children:[s&&(0,i.Y)("span",{className:"deck-widget-dropdown-item-icon",style:(0,o.m)(s)}),"string"==typeof t?t:t.label]},n)})})]})}},59065(e,t,n){n.d(t,{K:()=>a});var i=n(95443),r=n(10448),o=n(99858),s=n(32914);let a=e=>{let{className:t="",style:n,color:a,icon:l,label:c,tooltip:p,onClick:u,children:d}=e,h=!1===p?void 0:null!=p?p:c,f=(0,r.Kr)(()=>{var e,t;let n=(0,o.m)(l);return a?(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}({},n),t=t={backgroundColor:a},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):n},[a,l]),g=(0,i.Y)("button",{className:"deck-widget-icon-button ".concat(t),type:"button",onClick:u,"aria-label":c,children:d||(0,i.Y)("div",{className:"deck-widget-icon",style:f})});return(0,i.Y)("div",{className:"deck-widget-button",style:n,children:h?(0,i.Y)(s.m,{content:h,children:g}):g})}},45504(e,t,n){n.d(t,{A:()=>s});var i=n(95443),r=n(10448),o=n(90433);let s=e=>{let{x:t,y:n,placement:s="right",offset:a=0,arrow:l=!1,arrowColor:c="white",children:p}=e,u=(0,r.li)(null),d=(0,r.li)(null),h=(0,r.li)(null),f=(0,r.li)();return f.current=()=>{if(!u.current||!d.current)return;let e=Array.isArray(l)?l[0]:l||0,t=Array.isArray(l)?l[1]:l||0,n=a+Math.max(t,e),i=s.includes("-")?[(0,o.cY)(n),(0,o.UU)(),(0,o.BN)()]:[(0,o.cY)(n),(0,o.BN)(),(0,o.UU)()];h.current&&i.push((0,o.UE)({element:h.current})),(0,o.rD)(u.current,d.current,{placement:s,strategy:"fixed",middleware:i}).then(n=>{d.current&&Object.assign(d.current.style,{left:"".concat(n.x,"px"),top:"".concat(n.y,"px")});let i=n.middlewareData.arrow;if(i&&h.current){var r,o,s,a;let l,p=(r=e,o=t,s=c,a=n.placement,l={width:0,height:0,top:"",bottom:"",left:"",right:""},a.startsWith("bottom")?(l.borderLeft="".concat(r/2,"px solid transparent"),l.borderRight="".concat(r/2,"px solid transparent"),l.borderBottom="".concat(o,"px solid ").concat(s),l.borderTop="",l.top="".concat(-o,"px")):a.startsWith("top")?(l.borderLeft="".concat(r/2,"px solid transparent"),l.borderRight="".concat(r/2,"px solid transparent"),l.borderTop="".concat(o,"px solid ").concat(s),l.borderBottom="",l.bottom="".concat(-o,"px")):a.startsWith("right")?(l.borderTop="".concat(r/2,"px solid transparent"),l.borderBottom="".concat(r/2,"px solid transparent"),l.borderRight="".concat(o,"px solid ").concat(s),l.borderLeft="",l.left="".concat(-o,"px")):a.startsWith("left")&&(l.borderTop="".concat(r/2,"px solid transparent"),l.borderBottom="".concat(r/2,"px solid transparent"),l.borderLeft="".concat(o,"px solid ").concat(s),l.borderRight="",l.right="".concat(-o,"px")),l);p.transform="translate(".concat(i.x||0,"px, ").concat(i.y||0,"px)"),Object.assign(h.current.style,p)}})},(0,r.Kr)(()=>{var e;null==(e=f.current)||e.call(f)},[t,n,s,l,a]),(0,r.vJ)(()=>{let e=u.current,t=d.current;if(!e||!t)return;t.style.visibility="visible";let n=(0,o.ll)(e,t,()=>{var e;return null==(e=f.current)?void 0:e.call(f)});return()=>{n()}},[]),(0,i.Y)("div",{style:{position:"absolute",left:t,top:n},ref:u,children:(0,i.FD)("div",{className:"deck-widget deck-widget-popover",style:{position:"fixed",visibility:"hidden",pointerEvents:"none"},ref:d,children:[!!l&&(0,i.Y)("div",{className:"deck-widget-popover-arrow",style:{position:"absolute"},ref:h}),p]})})}},38605(e,t,n){n.d(t,{s:()=>p});var i=n(95443),r=n(10448);let o={passive:!1},s=(e,t,n)=>e<t?t:e>n?n:e,a=(e,t)=>{if(!e||!e.firstElementChild)return[0,0];let n=e.firstElementChild.getBoundingClientRect();return t||t?[n.top,n.height]:[n.left,n.width]},l=(e,t)=>"number"==typeof e&&!Number.isNaN(e)&&e>0?e:Math.max(1,t/10||1),c=(e,t)=>"number"==typeof e&&!Number.isNaN(e)&&e>0?e:Math.max(1,t||1);function p(e){let{className:t="",min:n,max:p,step:u,value:d,orientation:h,pageSize:f,stepButtons:g=!1,startButtonAriaLabel:v,endButtonAriaLabel:m,eventTarget:y,decorations:b=[],onChange:w}=e,P="horizontal"!==h,_=(0,r.li)(null),x=(0,r.li)(null),O=(0,r.li)(null),j=(0,r.li)(null),[S,C]=(0,r.J0)(0),k=p-n,A=Math.max(0,d[1]-d[0]),M=Math.max(0,k-A),E=s(d[0],n,n+M),{thumbLength:L,thumbOffset:T}=(0,r.Kr)(()=>{if(S<=0||k<=0)return{thumbLength:0,thumbOffset:0};if(k<=A)return{thumbLength:1,thumbOffset:0};let e=A/k,t=Math.max(0,1-e);return{thumbLength:Math.max(0,Math.min(e,1)),thumbOffset:t*(M<=0?0:s((E-n)/M,0,1))}},[S,k,A,M,E,n]),I=(0,r.hb)(e=>{if(!w)return;let t=s(e,n,n+M);w([t,t+A])},[w,n,M,A]),z=(0,r.hb)(e=>
1{e.stopPropagation(),I(E-l(u,k))},[I,E,u,k]),D=(0,r.hb)(e=>{e.stopPropagation(),I(E+l(u,k))},[I,E,u,k]),R=(0,r.hb)(e=>{if(0!==e.button)return;let t=e.target;if((null==t?void 0:t.dataset.scrollbarThumb)==="true")return;let i=x.current;if(!i)return;e.preventDefault(),e.stopPropagation();let[r]=a(i,P),o=P?e.clientY-r:e.clientX-r,l=Math.max(1,1-L)*S,c=L/2*S;I(n+(l<=0?0:s((o-c)/l,0,1))*M)},[P,S,L,I,n,M]),F=(0,r.hb)(e=>{let t=j.current;if(!t||t.pointerId!==e.pointerId)return;let[n,i]=a(x.current,P),r=(P?e.clientY:e.clientX)-t.startCoord;I(s((t.startRatio+r/i)*(t.max-t.min),0,t.maxStart)+t.min),e.preventDefault()},[I,P]),B=(0,r.hb)(e=>{let t=j.current;if(t&&t.pointerId===e.pointerId){var n;j.current=null,null==(n=O.current)||n.releasePointerCapture(e.pointerId),e.preventDefault()}},[]),V=(0,r.hb)(e=>{switch(e.key){case"ArrowUp":case"ArrowLeft":(P&&"ArrowUp"===e.key||!P&&"ArrowLeft"===e.key)&&(I(E-l(u,k)),e.preventDefault());break;case"ArrowDown":case"ArrowRight":(P&&"ArrowDown"===e.key||!P&&"ArrowRight"===e.key)&&(I(E+l(u,k)),e.preventDefault());break;case"PageUp":I(E-c(f,A)),e.preventDefault();break;case"PageDown":I(E+c(f,A)),e.preventDefault();break;case"Home":I(n),e.preventDefault();break;case"End":I(n+M),e.preventDefault()}},[P,I,E,u,k,f,A,n,M]),N=(0,r.hb)(e=>{if(e.preventDefault(),e.stopPropagation(),0===M)return;let t=P?e.deltaY:e.deltaX;P||0!==t||(t=e.deltaY),e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=l(u,k):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=c(f,A)),0!==t&&I(E+t)},[I,E,M,P,u,k,f,A]);(0,r.Nf)(()=>{C(a(x.current,P)[1])},[P]),(0,r.Nf)(()=>{let e=x.current;if(!e)return;let t=()=>{C(a(e,P)[1])};if(t(),"u">typeof ResizeObserver){let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()}if("u">typeof window)return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[P]),(0,r.vJ)(()=>{let e=null!=y?y:_.current;if(e)return e.addEventListener("keydown",V),e.addEventListener("wheel",N,o),()=>{e.removeEventListener("keydown",V),e.removeEventListener("wheel",N,o)}},[y,V,N]);let U=(0,r.Kr)(()=>!b.length||k<=0?[]:b.map((e,t)=>{let[r,o]=e.position,s=(r-n)/k,a=Math.round(1e3*s)/10,l=Math.max(0,Math.round(((o-n)/k-s)*1e3)/10),c=P?{left:"0",width:"100%",top:"".concat(a,"%"),height:"".concat(l,"%")}:{top:"0",height:"100%",left:"".concat(a,"%"),width:"".concat(l,"%")};return(0,i.Y)("div",{className:"deck-widget-range__decoration",style:c,children:e.element},"decoration-".concat(t))}),[b,k,n,P]);return(0,i.FD)("div",{ref:_,tabIndex:0,role:"scrollbar","aria-valuemin":n,"aria-valuemax":n+M,"aria-valuenow":E,"aria-orientation":h,className:"".concat(t," deck-widget-range deck-widget-range--").concat(h," ").concat(0===M?"deck-widget-range--disabled":""),children:[g&&(0,i.Y)("button",{type:"button",className:"deck-widget-range__button deck-widget-range__button--start","aria-label":v,disabled:E<=n,onClick:z,children:(0,i.Y)("span",{className:"deck-widget-icon"})}),(0,i.FD)("div",{className:"deck-widget-range__track",ref:x,onClick:R,children:[(0,i.Y)("div",{className:"deck-widget-range__decorations",children:U}),(0,i.Y)("div",{className:"deck-widget-range__thumb","data-scrollbar-thumb":"true",ref:O,style:P?{height:"".concat(100*L,"%"),top:"".concat(100*T,"%")}:{width:"".concat(100*L,"%"),left:"".concat(100*T,"%")},onPointerDown:e=>{0!==e.button||x.current&&(j.current={pointerId:e.pointerId,startCoord:P?e.clientY:e.clientX,startRatio:T,min:n,max:p,maxStart:M},e.currentTarget.setPointerCapture(e.pointerId),e.preventDefault(),e.stopPropagation())},onPointerMove:F,onPointerUp:B,onPointerCancel:B})]}),g&&(0,i.Y)("button",{type:"button",className:"deck-widget-range__button deck-widget-range__button--end","aria-label":m,disabled:E>=n+M,onClick:D,children:(0,i.Y)("span",{className:"deck-widget-icon"})})]})}},32914(e,t,n){n.d(t,{m:()=>s});var i=n(95443),r=n(10448),o=n(90433);let s=e=>{let{content:t,placement:n="right",children:s}=e,a=(0,r.li)(null),l=(0,r.li)(null),[c,p]=(0,r.J0)(!1),u=(0,r.li)(),d=(0,r.hb)(()=>{clearTimeout(u.current),p(!0)},[]),h=(0,r.hb)(()=>{clearTimeout(u.current),p(!1)},[]),f=(0,r.hb)(e=>{"Escape"===e.key&&h()}
1,[h]);(0,r.vJ)(()=>{var e;let t=l.current,i=null==(e=a.current)?void 0:e.firstElementChild;if(c&&t&&i)return(0,o.ll)(i,t,()=>{(0,o.rD)(i,t,{placement:n,strategy:"fixed",middleware:[(0,o.cY)(8),(0,o.UU)(),(0,o.BN)({padding:4})]}).then(e=>{let{x:n,y:i}=e;l.current===t&&Object.assign(t.style,{left:"".concat(n,"px"),top:"".concat(i,"px"),opacity:"1"})})})},[c,n]),(0,r.vJ)(()=>()=>clearTimeout(u.current),[]);let g=(0,r.hb)(e=>{e&&t instanceof HTMLElement&&e.replaceChildren(t.cloneNode(!0))},[t]);return null==t||!1===t||""===t?(0,i.Y)(i.FK,{children:s}):(0,i.FD)("div",{ref:a,className:"deck-widget-tooltip-trigger",onPointerEnter:d,onPointerLeave:h,onFocusCapture:d,onBlurCapture:h,onKeyDown:f,children:[s,c&&(0,i.Y)("div",{ref:l,className:"deck-widget-tooltip",role:"tooltip",style:{position:"fixed",opacity:0,fontSize:"12px",padding:"4px 8px"},children:t instanceof HTMLElement?(0,i.Y)("div",{ref:g}):t})]})}},74918(e,t,n){n.d(t,{R:()=>o});var i=n(95443),r=n(10448);let o=e=>{var t,n;let{text:o,html:s,element: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,["text","html","element"]),c=(0,r.li)(null);return(0,r.vJ)(()=>(c.current&&a&&c.current.append(a),()=>{null==a||a.remove()}),[a]),(0,i.Y)("div",(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}({ref:c},l),n=n={dangerouslySetInnerHTML:s?{__html:s}:void 0,children:o},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))}},99858(e,t,n){n.d(t,{m:()=>i});function i(e){if(!e)return;let t='url("'.concat(e.replace(/"/g,"'"),'")');return{maskImage:t,WebkitMaskImage:t}}},72504(e,t,n){n.d(t,{NF:()=>s,gH:()=>r,iD:()=>l,lL:()=>o,o5:()=>i});let i={name:"google",requiresApiKey:!0,async geocode(e,t){let n=encodeURIComponent(e),i=await a("".concat("https://maps.googleapis.com/maps/api/geocode/json","?address=").concat(n,"&key=").concat(t));if("OK"===i.status){let e=i.results.length>0&&i.results[0].geometry.location;return e?{longitude:e.lng,latitude:e.lat}:null}throw Error("Google Geocoder failed: ".concat(i.status))}},r={name:"google",requiresApiKey:!0,async geocode(e,t){let n=encodeURIComponent(e),i=await a("".concat("https://api.mapbox.com/geocoding/v5/mapbox.places","/").concat(n,".json?access_token=").concat(t));if(Array.isArray(i.features)&&i.features.length>0){let e=i.features[0].center;if(Array.isArray(e)&&e.length>=2)return{longitude:e[0],latitude:e[1]}}return null}},o={name:"opencage",requiresApiKey:!0,async geocode(e,t){let n=encodeURIComponent(e),i=await a("".concat("https://api.opencagedata.com/geocode/v1/json","?q=").concat(n,"&key=").concat(t));if(Array.isArray(i.results)&&i.results.length>0){let e=i.results[0].geometry;return{longitude:e.lng,latitude:e.lat}}return null}},s={name:"current",requiresApiKey:!1,async geocode(){if(!navigator.geolocation)throw Error("Geolocation not supported");return new Promise((e,t)=>{navigator.geolocation.getCurrentPosition(t=>{let{longitude:n,latitude:i}=t.coords;e({longitude:n,latitude:i})},e=>t(Error(e.message)))})}};async function a(e){let t;try{t=await fetch(e)}catch(t){throw Error("CORS error? ".concat(t,". ").concat(e,": "))}if(!t.ok)throw Error("".concat(t.statusText,". ").concat(e,": "));let n=await t.json();if(!n)throw Error("No data returned. ".concat(e));return n}let l={name:"coordinates",requiresApiKey:!1,placeholderLocation:"-122.45, 37.8 or 37\xb048'N, 122\xb027'W",geocode:async e=>(function(e){let t=(e=e.trim()).split(/[,;]/).map(e=>e.trim());if(t.length<2)return null;let n=c(t[0]),i=c(t[1]);return null===n||null===i||Math.abs(n)>90&&Math.abs(i)>90?null:Math.abs(n)>90?{longitude:n,latitude:i}:Math.abs(i)>90?{longitude:i,latitude:n}:{latitude:n,longitude:i}})(e)||null};function c(e){if((e=e.trim()).includes("\xb0")||e.includes("'")||e.includes('"')){let t=function(e){let t=e.match(/(-?\d+)[\xb0d]\s*(\d+)?['\u2032m]?\s*(\d+(?:\.\d+)?)?[\"\u2033s]?\s*([NSEW])?/i);if(!t)return NaN;let n=parseFloat(t[1])||0,i=parseFloat(t[2])||0,r=parseFloat(t[3])||0,o=t[4]||"",s=Math.abs(n)+i/60+r/3600;return/[SW]/i.test(o)?s=-s:s*=n<0?-1:1,s}(e);return isNaN(t)?null:t}let t=1;/[SW]/i.test(e)&&(t=-1);let n=parseFloat(e=e.replace(/[NSEW]/gi,""));return isNaN(n)?null:t*n}},82593(e,t,n){n.d(t,{b:()=>c});var i,r,o=n(95443),s=n(618),a=n(64244),l=n(59065);class c extends a.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}
1onRenderHTML(e){(0,s.XX)(this.loading&&(0,o.Y)(l.K,{className:"deck-widget-spinner",label:this.props.label,tooltip:this.props.tooltip,onClick:this.handleClick.bind(this)}),e)}onRedraw(e){let{layers:t}=e,n=t.some(e=>!e.isLoaded);if(n!==this.loading){var i,r;this.loading=n,null==(i=(r=this.props).onLoadingChange)||i.call(r,n),this.updateHTML()}}handleClick(){}constructor(e={}){super(e),this.className="deck-widget-loading",this.placement="top-left",this.loading=!0,this.setProps(this.props)}}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}({},a.x.defaultProps),r=r={id:"loading",placement:"top-left",viewId:null,label:"Loading layer data",tooltip:void 0,onLoadingChange:()=>{}},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))}),c.defaultProps=i},5263(e,t,n){n.d(t,{F:()=>u});var i=n(95443),r=n(64244),o=n(618),s=n(45504),a=n(74918),l=n(59065);function c(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})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class u extends r.x{setProps(e){var t;this.viewId=null!=(t=e.viewId)?t:this.viewId,super.setProps(e)}onAdd(e){let{deck:t}=e;this.deck=t}onRemove(){this.rootElement&&(0,o.XX)(null,this.rootElement)}onViewportChange(e){this.viewport=e,this.updateHTML()}onClick(){this.props.closeOnClickOutside&&this._setIsOpen(!1)}_setIsOpen(e){var t,n;this.isOpen!==e&&(this.isOpen=e,null==(t=(n=this.props).onOpenChange)||t.call(n,e),this.updateHTML())}onRenderHTML(e){if(!this.viewport)return void(0,o.XX)(null,e);let{marker:t,content:n,style:r}=this.props,[u,d]=this.viewport.project(this.props.position),h=(0,i.FD)("div",{children:[t&&(0,i.Y)("div",{className:"deck-widget-popup-marker",style:{left:u,top:d},children:(0,i.Y)(a.R,p(c({},t),{onClick:()=>this._setIsOpen(!0)}))}),this.isOpen&&(0,i.Y)(s.A,{x:u,y:d,placement:this.props.placement,arrow:this.props.arrow,arrowColor:"var(--menu-background, #fff)",offset:this.props.offset,children:(0,i.FD)("div",{className:"deck-widget-popup-content ".concat(this.props.className),style:r,children:[this.props.closeButton&&(0,i.Y)("div",{className:"deck-widget-popup-controls",style:{width:"100%",display:"flex",justifyContent:"end"},children:(0,i.Y)(l.K,{className:"deck-widget-popup-close-button",onClick:()=>this._setIsOpen(!1)})}),(0,i.Y)(a.R,c({},"string"==typeof n?{text:n}:n))]})})]});(0,o.XX)(h,e)}constructor(e){super(e),this.className="deck-widget-popup",this.placement="fill",this.setProps(this.props),this.isOpen=this.props.defaultIsOpen}}u.defaultProps=p(c({},r.x.defaultProps),{id:"info",viewId:null,position:[0,0],marker:null,defaultIsOpen:!0,content:"",placement:"right",offset:10,arrow:10,closeButton:!0,closeOnClickOutside:!1,onOpenChange:()=>{}})},1866(e,t,n){n.d(t,{z:()=>p});var i,r,o=n(95443),s=n(618),a=n(64244),l=n(59065);function c(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}class p extends a.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}onRenderHTML(e){(0,s.XX)((0,o.Y)(l.K,{className:"deck-widget-reset-focus",label:this.props.label,tooltip:this.props.tooltip,onClick:this.handleClick.bind(this)}),e)}handleClick(){var e;let t=this.props.initialViewState||(null==(e=this.deck)?void 0:e.props.initialViewState);this.resetViewState(t)}resetViewState(e){for(let r of this.viewIds){var t,n,i;let o=c({},null!=(t=null==e?void 0:e[r])?t:e);null==(n=(i=this.props).onReset)||n.call(i,{viewId:r,viewState:o}),this.setViewState(r,o)}}constructor(e={}){super(e),this.className="deck-widget-reset-view",this.placement="top-left",this.setProps(this.props)}}i=c({},a.x.defaultProps),r=r={id:"reset-view",placement:"top-left",label:"Reset View",tooltip:void 0,initialViewState:void 0,viewId:null,onReset:()=>{}},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))}),p.defaultProps=i},55427(e,t,n){n.d(t,{Z:()=>l});var i,r,o=n(95443),s=n(618),a=n(64244);class l extends a.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}onRenderHTML(e){let t=50+this.scaleWidth;(0,s.XX)((0,o.FD)("svg",{className:"deck-widget-scale",width:t,height:30,style:{overflow:"visible",background:"transparent"},onClick:this.handleClick.bind(this),children:[(0,o.Y)("text",{x:55,y:"10",textAnchor:"end",alignmentBaseline:"middle",style:{fontSize:"16px",fill:"black",fontWeight:"bold",fontFamily:"sans-serif"},children:this.scaleText}),(0,o.Y)("line",{x1:50,y1:"15",x2:50+this.scaleWidth,y2:"15",stroke:"black",strokeWidth:"6"}),(0,o.Y)("line",{x1:50,y1:"15",x2:50,y2:5,stroke:"black",strokeWidth:"6"}),(0,o.Y)("line",{x1:50+this.scaleWidth,y1:"15",x2:50+this.scaleWidth,y2:5,stroke:"black",strokeWidth:"6"})]}),e)}onViewportChange(e){if(!("latitude"in e))return;let{latitude:t,zoom:n}=e,{candidate:i,candidatePixels:r}=function(e){let t=Math.pow(10,Math.floor(Math.log10(150*e))),n=[1,2,5],i=n[0]*t,r=i/e;for(let o=0;o<n.length;o++){let s=n[o]*t,a=s/e;if(a>=100&&a<=200){i=s,r=a;break}if(a>200){r=(i=o>0?n[o-1]*t:s)/e;break}o===n.length-1&&a<100&&(r=(i=n[0]*t*10)/e)}return{candidate:i,candidatePixels:r}}(40075016.686*Math.cos(t*Math.PI/180)/Math.pow(2,n+8));this.scaleValue=i,this.scaleWidth=r,i>=1e3?this.scaleText="".concat((i/1e3).toFixed(1)," km"):this.scaleText="".concat(i," m"),this.updateHTML()}handleClick(){}constructor(e={}){super(e),this.className="deck-widget-scale",this.placement="bottom-left",this.scaleWidth=10,this.scaleValue=0,this.scaleText="",this.setProps(this.props)}}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}({},a.x.defaultProps),r=r={id:"scale",placement:"bottom-left",label:"Scale",viewId:null},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))}),l.defaultProps=i},8867(e,t,n){n.d(t,{j:()=>c});var i,r,o=n(95443),s=n(618),a=n(64244),l=n(59065);class c extends a.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}
1onRenderHTML(e){(0,s.XX)((0,o.Y)(l.K,{className:"deck-widget-camera",label:this.props.label,tooltip:this.props.tooltip,onClick:this.handleClick.bind(this)}),e)}handleClick(){if(this.props.onCapture)return void this.props.onCapture(this);let e=this.captureScreenToDataURL(this.props.imageFormat);e&&this.downloadDataURL(e,this.props.filename)}captureScreenToDataURL(e){var t;let n=null==(t=this.deck)?void 0:t.getCanvas();return null==n?void 0:n.toDataURL(e)}downloadDataURL(e,t){let n=document.createElement("a");n.href=e,n.download=t,n.click()}constructor(e={}){super(e),this.className="deck-widget-screenshot",this.placement="top-left",this.setProps(this.props)}}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}({},a.x.defaultProps),r=r={id:"screenshot",placement:"top-left",viewId:null,label:"Screenshot",tooltip:void 0,filename:"screenshot.png",imageFormat:"image/png",onCapture:void 0},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))}),c.defaultProps=i},55835(e,t,n){n.d(t,{p:()=>u});var i=n(95443),r=n(64244),o=n(39333),s=n(618),a=n(38605);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}let p=(e,t,n)=>e<t?t:e>n?n:e;class u extends r.x{onViewportChange(e){this.viewport=e,this.onRenderHTML()}onRenderHTML(){var e,t;let n=this.rootElement;if(!n)return;n.dataset.placement=this.props.placement;let r=this.viewport;this.updateViewport(r);let o=this.getClampedOffset(),l=this.getWheelEventTarget(this.props.captureWheel?"global":"local"),c=this.getDecorations(r),p=this.isVertical(),u=null!=(e=this.props.startButtonAriaLabel)?e:p?"Scroll up":"Scroll left",d=null!=(t=this.props.endButtonAriaLabel)?t:p?"Scroll down":"Scroll right",h=(0,i.Y)(a.s,{min:0,max:Math.max(0,this.contentSize),step:this.getEffectiveStep(),pageSize:this.getEffectivePage(),value:[o,o+this.viewportSize],orientation:this.props.orientation,stepButtons:!0,startButtonAriaLabel:u,endButtonAriaLabel:d,eventTarget:l,decorations:c,onChange:this.handleRangeChange});(0,s.XX)(h,n)}onRemove(){this.rootElement&&(0,s.XX)(null,this.rootElement),super.onRemove()}getContentBounds(e){var t,n,i,r,o;return null!=(t=null!=(n=this.props.contentBounds)?n:null==(o=this.deck)||null==(r=o.getView(e))||null==(i=r.controller)?void 0:i.maxBounds)?t:null}getContentBoundsPadding(e){var t,n,i,r,o;return null!=(t=null!=(n=this.props.contentBoundsPadding)?n:null==(o=this.deck)||null==(r=o.getView(e))||null==(i=r.controller)?void 0:i.maxBoundsPadding)?t:null}updateViewport(e){if(!e){this.contentSize=0,this.scrollOffset=0,this.viewportSize=0;return}let t=this.getContentBounds(e.id),n=this.isVertical(),i=t?d(t,e,n):[0,0],r=(0,o.CI)(e.width,e.height,this.getContentBoundsPadding(e.id)),s=n?r.y:r.x,a=n?r.height:r.width;this.contentSize=i[1]-i[0],this.scrollOffset=s-i[0],this.viewportSize=Math.max(0,a)}getDecorations(e){let{decorations:t=[]}=this.props;if(!e||0===t.length)return[];let n=this.getContentBounds(e.id);if(!n)return[];let r=this.isVertical(),[o]=d(n,e,r);return t.map(t=>{let[n,s]=d(t.contentBounds,e,r),a=t.onClick?e=>{var n;(null==(n=t.onClick)?void 0:n.call(t,e))&&(e.stopPropagation(),e.preventDefault())}:void 0;return{position:[n-o,s-o],element:(0,i.Y)("div",{style:{pointerEvents:a?"all":"none",width:"100%",height:"100%",backgroundColor:t.color},title:t.title,onClick:a})}})}getWheelEventTarget(e){var t,n,i;return null===e?null:"local"===e?this.rootElement:(null==(t=this.deck)?void 0:t.props.parent)||(null==(i=this.deck)||null==(n=i.getCanvas())?void 0:n.parentElement)||this.rootElement}getMaxScroll(){return Math.max(0,this.contentSize-this.viewportSize)}getClampedOffset(){let e=this.getMaxScroll();return p(this.scrollOffset,0,e)}isVertical(){return"horizontal"!==this.props.orientation}getEffectiveStep(){return"number"!=typeof this.props.stepSize||Number.isNaN(this.props.stepSize)?Math.max(1,this.viewportSize/10||1):this.props.stepSize}getEffectivePage(){return"number"!=typeof this.props.pageSize||Number.isNaN(this.props.pageSize)?this.viewportSize:this.props.pageSize}emitScroll(e){let t=p(Math.round(e),0,this.getMaxScroll()),n=this.viewport;if(n&&t!==this.getClampedOffset()){let e=n.project(n.position);this.isVertical()?e[1]-=t-this.scrollOffset:e[0]-=t-this.scrollOffset;let{target:i}=n.panByPosition(n.position,e);this.deck._onViewStateChange({viewId:n.id,viewState:c(l({},this.getViewState(n.id)),{target:i}),interactionState:{}})}}constructor(e){var t;let n=l({},u.defaultProps,e);super(n),this.className="deck-widget-scrollbar",this.placement="fill",this.contentSize=0,this.viewportSize=0,this.scrollOffset=0,this.handleRangeChange=e=>{this.emitScroll(e[0])},this.viewId=null!=(t=n.viewId)?t:null}}function d(e,t,n){return e.map(e=>{let[n,i]=e;return t.project([n,i,0])}).reduce((e,t)=>
1{let[i,r]=t,o=n?r:i;return e[0]=Math.min(e[0],o),e[1]=Math.max(e[1],o),e},[1/0,-1/0])}u.defaultProps=c(l({},r.x.defaultProps),{contentBounds:null,contentBoundsPadding:null,placement:"top-right",viewId:null,orientation:"vertical",stepSize:null,pageSize:null,startButtonAriaLabel:"",endButtonAriaLabel:"",captureWheel:!1,decorations:[]})},71748(e,t,n){n.d(t,{E:()=>u});var i=n(95443),r=n(618),o=n(64244),s=n(23598),a=n(45504),l=n(59065);function c(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})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class u extends o.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}onRenderHTML(e){var t;let n=null!=(t=this.props.options.find(e=>e.value===this.value))?t:this.props.options[0];(0,r.XX)((0,i.FD)("div",{children:[(0,i.Y)(l.K,{icon:n.icon,label:n.label,tooltip:this.props.tooltip,onClick:this._toggleMenu}),this.isOpen&&(0,i.Y)(a.A,p(c({},this.isOpen),{children:(0,i.Y)(s.c,{isOpen:!0,style:{pointerEvents:"auto",position:"static"},menuItems:this.props.options,onSelect:this._handleSelectMode,onClose:this._toggleMenu})}))]}),e)}constructor(e){super(e),this.className="deck-widget-selector",this.placement="top-left",this.isOpen=!1,this._toggleMenu=()=>{this.isOpen?this.isOpen=!1:this.rootElement&&(this.isOpen={x:this.rootElement.offsetLeft,y:this.rootElement.offsetTop,placement:this.props.placement.includes("right")?"left-start":"right-start"}),this.updateHTML()},this._handleSelectMode=e=>{this.value=e,this.props.onChange(e),this.updateHTML()},this.value=this.props.initialValue,this.setProps(this.props)}}u.defaultProps=p(c({},o.x.defaultProps),{id:"view-selector",placement:"top-left",viewId:null,initialValue:"",options:[],tooltip:void 0,onChange:()=>{}})},30334(e,t,n){n.d(t,{s:()=>d});var i=n(95443),r=n(618),o=n(10448),s=n(64244),a=n(59377),l=n(33964);function c(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})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function u(e,t,n){let i=(0,l.y)({layout:e,width:100,height:100,splitValues:n});for(let e of t){let t=i.splittersById[e.splitId];t&&(e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height,e.split=t.split,e.minSplit=t.minSplit,e.maxSplit=t.maxSplit)}return i.views.map(e=>e.clone({x:"".concat(e.props.x,"%"),y:"".concat(e.props.y,"%"),width:"".concat(e.props.width,"%"),height:"".concat(e.props.height,"%")}))}class d extends s.x{setProps(e){e.viewLayout&&!(0,a.b)(e.viewLayout,this.props.viewLayout,-1)&&(this.updateViewLayout(e.viewLayout),this.views=void 0),super.setProps(e)}updateViewLayout(e){let t=function(e){let t=[],{layout:n}=function e(n){var i,r,o,s;let a=t.length,l="splitter-".concat(a),c=null!=(i=n.minSplit)?i:.05,p=null!=(r=n.maxSplit)?r:.95,u=Math.min(Math.max(null!=(o=n.initialSplit)?o:.5,c),p),d={id:a,splitId:l,orientation:n.orientation,views:n.views,split:u,editable:null==(s=n.editable)||s,minSplit:c,maxSplit:p,x:0,y:0,width:0,height:0};t.push(d);let h=n.views.map(t=>{if(!("views"in t))return{layout:t,managed:t};let n=e(t);return{layout:n.layout,managed:n.managed}});return d.views=[h[0].managed,h[1].managed],{layout:{orientation:n.orientation,splitId:l,initialSplit:u,minSplit:c,maxSplit:p,views:[h[0].layout,h[1].layout]},managed:d}}(e);return{layout:n,viewLayouts:t}}(e);this.viewLayout=t.layout,this.viewLayouts=t.viewLayouts,this.splitValues={}}onRedraw(){super.updateHTML()}updateHTML(){this.views||(this.views=u(this.viewLayout,this.viewLayouts,this.splitValues),this.props.onChange(this.views.slice())),requestAnimationFrame(()=>{this.doUpdate()})}doUpdate(){if(this.deck){let e=this.deck.props.views;e&&e!==this.lastViews||this.lastViews===this.views||(this.lastViews=this.views,this.deck.setProps({views:this.views}))}}onChange(e,t){this.splitValues=p(c({},this.splitValues),{[t.splitId]:e}),this.views=u(this.viewLayout,this.viewLayouts,this.splitValues),this.props.onChange(this.views.slice()),this.doUpdate()}onRenderHTML(e){(0,r.XX)((0,i.Y)(i.FK,{children:this.viewLayouts.map(e=>e.editable&&(0,i.Y)(h,p(c({},e),{onChange:t=>this.onChange(t,e),onDragStart:()=>this.props.onDragStart(),onDragEnd:()=>this.props.onDragStart()})))}),e)}constructor(e){super(e),this.className="deck-widget-splitter",this.placement="fill",this.splitValues={},this.needsUpdate=!0,this.updateViewLayout(this.props.viewLayout)}}function h(e){let{orientation:t,x:n,y:r,width:s,height:a,split:l,minSplit:c,maxSplit:p,onChange:u,onDragStart:d,onDragEnd:h}=e,[f,g]=(0,o.J0)(!1),v=(0,o.li)(null);return(0,o.vJ)(()=>
1{if(!f)return;let e=e=>{let n;if(!v.current)return;let i=v.current.getBoundingClientRect();n=Math.min(Math.max(n="horizontal"===t?(e.clientX-i.left)/i.width:(e.clientY-i.top)/i.height,c),p),null==u||u(n)},n=()=>{null==h||h(),g(!1)};return document.addEventListener("pointermove",e),document.addEventListener("pointerup",n),document.addEventListener("pointerleave",n),()=>{document.removeEventListener("pointermove",e),document.removeEventListener("pointerup",n),document.removeEventListener("pointerleave",n)}},[f]),(0,i.Y)("div",{ref:v,style:{position:"absolute",top:"".concat(r,"%"),left:"".concat(n,"%"),width:"".concat(s,"%"),height:"".concat(a,"%")},children:(0,i.Y)("div",{className:"deck-widget-splitter-handle deck-widget-splitter-handle--".concat(t," ").concat(f?"active":""),style:"horizontal"===t?{left:"".concat(100*l,"%")}:{top:"".concat(100*l,"%")},onPointerDown:e=>{g(!0),null==d||d(),e.preventDefault()}})})}d.defaultProps=p(c({},s.x.defaultProps),{id:"splitter-widget",viewLayout:void 0,onChange:()=>{},onDragStart:()=>{},onDragEnd:()=>{}})},95860(e,t,n){n.d(t,{c:()=>v});var i,r,o=n(95443),s=n(64244),a=n(60966),l=n(618),c=n(10448),p=n(59065);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}let d=e=>"".concat(e.name,": ").concat(e.count);function h(e){return e<1e3?"".concat(e.toFixed(2),"ms"):"".concat((e/1e3).toFixed(2),"s")}function f(e){return"".concat((e/1e6).toFixed(1)," MB")}let g={count:d,averageTime:e=>"".concat(e.name,": ").concat(h(e.getAverageTime())),totalTime:e=>"".concat(e.name,": ").concat(h(e.time)),fps:e=>"".concat(e.name,": ").concat(Math.round(e.getHz()),"fps"),memory:e=>"".concat(e.name,": ").concat(f(e.count))};class v extends s.x{getExpanded(){var e;return null!=(e=this.props.expanded)?e:this._expanded}setProps(e){var t,n;if(this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,e.formatters)for(let t in e.formatters){let n=e.formatters[t];this._formatters[t]="string"==typeof n?g[n]||d:n}e.resetOnUpdate&&(this._resetOnUpdate=u({},e.resetOnUpdate)),super.setProps(e)}onRemove(){this.rootElement&&(0,l.XX)(null,this.rootElement)}onRenderHTML(e){if(!this.getExpanded())return void(0,l.XX)((0,o.Y)(m,{getFps:this._getFps,onClick:this._toggleExpanded}),e);let t=this._getStats(),n=this.props.title||("id"in t?t.id:null)||"Stats",i=this._getDeviceLabel(),r=[];t&&t.forEach(e=>{let t=this._getLines(e).split("\n");this._resetOnUpdate&&this._resetOnUpdate[e.name]&&e.reset(),t.forEach((t,n)=>{r.push((0,o.Y)("div",{style:{whiteSpace:"pre"},children:t},"".concat(e.name,"-").concat(n)))})}),(0,l.XX)((0,o.FD)("div",{className:"deck-widget-stats-container",style:{cursor:"default"},children:[(0,o.FD)("div",{className:"deck-widget-stats-header",style:{cursor:"pointer",pointerEvents:"auto"},onClick:this._toggleExpanded,children:[(0,o.Y)("b",{children:n}),i&&(0,o.Y)("span",{className:"deck-widget-stats-device",children:i}),(0,o.Y)("button",{className:"deck-widget-dropdown-button",children:(0,o.Y)("span",{className:"deck-widget-dropdown-icon open"})})]}),(0,o.Y)("div",{className:"deck-widget-stats-content",children:r})]}),e)}onRedraw(){if(this.getExpanded()){let e=Math.max(1,this.props.framesPerUpdate||1);this._counter++%e==0&&this.updateHTML()}}_getStats(){var e,t,n;switch(this.props.type){case"deck":return Object.entries(null!=(e=null==(t=this.deck)?void 0:t.metrics)?e:{});case"luma":return Array.from(a.a.stats.stats.values())[0];case"device":let i=null==(n=this.deck)?void 0:n.device,r=null==i?void 0:i.statsManager.stats.values();return r?Array.from(r)[0]:[];case"custom":return this.props.stats;default:throw Error("Unknown stats type: ".concat(this.props.type))}}_getDeviceLabel(){var e,t;let n=null==(t=this.deck)||null==(e=t.device)?void 0:e.type;if(!n)return null;switch(n){case"webgpu":return"WebGPU";case"webgl":return"WebGL";default:return String(n)}}_getLines(e){if("count"in e)return(this._formatters[e.name]||this._formatters[e.type||""]||d)(e);let[t,n]=e,i=t.endsWith("Memory")?f(n):t.includes("Time")?h(n):"".concat(n.toFixed(2));return"".concat(t,": ").concat(i)}constructor(e={}){super(e),this.className="deck-widget-stats",this.placement="top-left",this._counter=0,this._expanded=!1,this._toggleExpanded=()=>{var e,t;let n=!this.getExpanded();null==(e=(t=this.props).onExpandedChange)||e.call(t,n),void 0===this.props.expanded&&(this._expanded=n,this.updateHTML())},this._getFps=()=>{var e,t;return Math.round(null!=(e=null==(t=this.deck)?void 0:t.metrics.fps)?e:0)},this._formatters=u({},g),this._resetOnUpdate=u({},this.props.resetOnUpdate),this._expanded=!!e.initialExpanded,this.setProps(e)}}function m(e){let{getFps:t,onClick:n}=e,[i,r]=(0,c.J0)(t());return(0,c.vJ)(()=>{let e=()=>{r(t()),n=requestAnimationFrame(e)},n=requestAnimationFrame(e);return()=>{cancelAnimationFrame(n)}},[t]),(0,o.Y)(p.K,{onClick:n,children:(0,o.FD)("div",{className:"text",children:["FPS",(0,o.Y)("br",{}),i]})})}i=u({},s.x.defaultProps),r=r={type:"deck",placement:"top-left",viewId:null,initialExpanded:!1,stats:void 0,title:"Stats",framesPerUpdate:1,formatters:{},resetOnUpdate:{},id:"stats",expanded:void 0,onExpandedChange:()=>{}},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}
1)(Object(r)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}),v.defaultProps=i},20810(e,t,n){n.d(t,{k:()=>h});var i,r,o=n(95443),s=n(59377),a=n(44855),l=n(1918),c=n(64244),p=n(618),u=n(59065),d=n(39764);class h extends c.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}onRenderHTML(e){let{lightModeLabel:t,darkModeLabel:n,lightModeTooltip:i,darkModeTooltip:r}=this.props,s=this.getThemeMode();this._applyTheme(s,e),(0,p.XX)((0,o.Y)(u.K,{onClick:this._handleClick.bind(this),label:"dark"===s?n:t,tooltip:"dark"===s?r:i,className:"dark"===s?"deck-widget-moon":"deck-widget-sun"}),e)}getThemeMode(){var e;return null!=(e=this.props.themeMode)?e:this.themeMode}_handleClick(){var e,t;let n="dark"===this.getThemeMode()?"light":"dark";null==(e=(t=this.props).onThemeModeChange)||e.call(t,n),void 0===this.props.themeMode&&(this.themeMode=n,this.updateHTML())}_applyTheme(e,t){let n="dark"===e?this.props.darkModeTheme:this.props.lightModeTheme;if((0,s.b)(n,this.appliedTheme,1))return;let i=t.closest(".deck-widget-container");if(!i)return;(0,a.Z)(i,n),this.appliedTheme=n;let r="dark"===e?this.props.darkModeLabel:this.props.lightModeLabel;l.A.log(1,"Switched theme to ".concat(r),n)()}_getInitialThemeMode(){let{initialThemeMode:e}=this.props;return"auto"!==e?e:"u"<typeof window?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}constructor(e={}){super(e),this.className="deck-widget-theme",this.placement="top-left",this.themeMode="dark",this.appliedTheme={},this.themeMode=this._getInitialThemeMode(),this.setProps(this.props)}}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}({},c.x.defaultProps),r=r={id:"theme",placement:"top-left",viewId:null,lightModeLabel:"Light Mode",lightModeTooltip:void 0,lightModeTheme:d.Qo,darkModeLabel:"Dark Mode",darkModeTooltip:void 0,darkModeTheme:d.Ip,initialThemeMode:"auto",themeMode:void 0,onThemeModeChange:()=>{}},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))}),h.defaultProps=i},39764(e,t,n){n.d(t,{Ip:()=>s,Qo:()=>o,aj:()=>r,qW:()=>i});let i={"--widget-margin":"12px","--button-size":"28px","--icon-size":"75%","--button-corner-radius":"8px","--button-background":"#fff","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--button-text":"rgb(24, 24, 26, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(204, 204, 204)","--menu-gap":"4px","--menu-background":"#fff","--menu-backdrop-filter":"unset","--menu-border":"unset","--menu-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--menu-text":"rgb(24, 24, 26, 1)","--menu-item-hover":"rgba(0, 0, 0, 0.08)","--range-step-button-size":"24px","--range-track-size":"16px","--range-thumb-size":"10px","--range-track-color":"#d8d8e5","--range-thumb-color":"#616166","--range-decoration-active-color":"#f8dd50"},r={"--widget-margin":"12px","--button-size":"28px","--icon-size":"75%","--button-corner-radius":"8px","--button-background":"rgba(18, 18, 20, 1)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--button-text":"rgb(215, 214, 229, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(200, 199, 209)","--menu-gap":"4px","--menu-background":"rgba(18, 18, 20, 1)","--menu-backdrop-filter":"unset","--menu-border":"unset","--menu-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--menu-text":"rgb(215, 214, 229, 1)","--menu-item-hover":"rgba(255, 255, 255, 0.1)","--range-step-button-size":"24px","--range-track-size":"16px","--range-thumb-size":"10px","--range-track-color":"#2c2c30","--range-thumb-color":"#9e9da8","--range-decoration-active-color":"#dd7d2c"},o={"--widget-margin":"12px","--button-size":"28px","--icon-size":"75%","--button-corner-radius":"8px","--button-background":"rgba(255, 255, 255, 0.6)","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"1px solid rgba(255, 255, 255, 0.6)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--button-text":"rgb(24, 24, 26, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(204, 204, 204)","--menu-gap":"4px","--menu-background":"rgba(255, 255, 255, 0.6)","--menu-backdrop-filter":"blur(4px)","--menu-border":"1px solid rgba(255, 255, 255, 0.6)","--menu-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--menu-text":"rgb(24, 24, 26, 1)","--menu-item-hover":"rgba(0, 0, 0, 0.08)","--range-step-button-size":"24px","--range-track-size":"16px","--range-thumb-size":"10px","--range-track-color":"rgba(215, 214, 229, 0.3)","--range-thumb-color":"rgba(97, 97, 102, 1)","--range-decoration-active-color":"rgba(255, 215, 0, 0.6)"},s={"--widget-margin":"12px","--button-size":"28px","--icon-size":"75%","--button-corner-radius":"8px","--button-background":"rgba(18, 18, 20, 0.75)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"1px solid rgba(18, 18, 20, 0.75)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--button-text":"rgb(215, 214, 229, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(200, 199, 209)","--menu-gap":"4px","--menu-background":"rgba(18, 18, 20, 0.75)","--menu-backdrop-filter":"blur(4px)","--menu-border":"1px solid rgba(18, 18, 20, 0.75)","--menu-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--menu-text":"rgb(215, 214, 229, 1)","--menu-item-hover":"rgba(255, 255, 255, 0.1)","--range-step-button-size":"24px","--range-track-size":"16px","--range-thumb-size":"10px","--range-track-color":"rgba(24, 24, 26, 0.3)","--range-thumb-color":"rgba(158, 157, 168, 1)","--range-decoration-active-color":"rgba(255, 145, 0, 0.6)"}}
1,86446(e,t,n){n.d(t,{e:()=>p});var i,r,o=n(95443),s=n(64244),a=n(618),l=n(59065),c=n(38605);class p extends s.x{getTime(){var e;return null!=(e=this.props.time)?e:this.currentTime}getPlaying(){var e;return null!=(e=this.props.playing)?e:this._playing}setProps(e){var t,n;let{playing:i,time:r}=this.props;this.viewId=null!=(t=e.viewId)?t:this.viewId,super.setProps(e),void 0!==e.time&&e.time!==r&&(null==(n=this.props.timeline)||n.setTime(e.time)),void 0!==e.playing&&e.playing!==i&&(e.playing&&!this._playing?this._startTimer():!e.playing&&this._playing&&this._stopTimer())}onAdd(){if(this._playing=!1,this.timerId=null,this.props.autoPlay)if(void 0!==this.props.playing){var e,t;null==(e=(t=this.props).onPlayingChange)||e.call(t,!0)}else this.play()}onRemove(){this.stop()}onRenderHTML(e){let{timeRange:t,step:n,formatLabel:i,playTooltip:r,pauseTooltip:s}=this.props,p=this.getPlaying(),u=this.getTime();e.dataset.placement=this.props.placement,(0,a.XX)((0,o.FD)("div",{className:"deck-widget-button-group",children:[p?(0,o.Y)(l.K,{label:"Pause",tooltip:s,className:"deck-widget-timeline-pause",onClick:this.handlePlayPause}):(0,o.Y)(l.K,{label:"Play",tooltip:r,className:"deck-widget-timeline-play",onClick:this.handlePlayPause}),(0,o.Y)(c.s,{min:t[0],max:t[1],orientation:"horizontal",step:n,value:[u,u],onChange:this.handleTimeChange,decorations:[{position:[u,u+n],element:(0,o.Y)("div",{className:"deck-widget-timeline-label deck-widget-timeline-label--current",children:i(u)})}]})]}),e)}play(){this._playing=!0;let{timeRange:[e,t]}=this.props;if(void 0===this.props.time&&this.getTime()>=t){var n;this.currentTime=e,this.props.onTimeChange(e),null==(n=this.props.timeline)||n.setTime(e)}this.updateHTML(),this.tick()}stop(){this._stopTimer(),this.updateHTML()}_startTimer(){this._playing=!0,this.tick()}_stopTimer(){this._playing=!1,null!==this.timerId&&(window.clearTimeout(this.timerId),this.timerId=null)}constructor(e={}){var t,n,i;super(e),this.id="timeline",this.className="deck-widget-timeline",this.placement="fill",this._playing=!1,this.timerId=null,this.handlePlayPause=()=>{var e,t;let n=!this.getPlaying();null==(e=(t=this.props).onPlayingChange)||e.call(t,n),void 0===this.props.playing&&(n?this.play():this.stop())},this.handleTimeChange=e=>{let[t]=e;if(this.props.onTimeChange(t),void 0===this.props.time){var n;this.currentTime=t,null==(n=this.props.timeline)||n.setTime(t),this.updateHTML()}},this.tick=()=>{let{timeRange:[e,t],step:n,loop:i}=this.props;if(n>0){var r,o,s;let a=this.getTime(),l=Math.round(a/n)*n+n;l>t&&(a<t?l=t:i?l=e:(l=t,this._playing=!1,null==(r=(o=this.props).onPlayingChange)||r.call(o,!1))),this.props.onTimeChange(l),void 0===this.props.time&&(this.currentTime=l,null==(s=this.props.timeline)||s.setTime(l)),this.updateHTML()}this._playing?this.timerId=window.setTimeout(this.tick,this.props.playInterval):this.timerId=null},this.currentTime=null!=(t=this.props.initialTime)?t:this.props.timeRange[0];let r=null!=(n=this.props.time)?n:this.currentTime;null==(i=this.props.timeline)||i.setTime(r),this.setProps(this.props)}}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}({},s.x.defaultProps),r=r={id:"timeline",placement:"bottom-left",viewId:null,timeline:null,timeRange:[0,100],step:1,initialTime:void 0,time:void 0,onTimeChange:()=>{},autoPlay:!1,loop:!1,playInterval:1e3,playing:void 0,onPlayingChange:()=>{},formatLabel:String,playTooltip:void 0,pauseTooltip:void 0},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))}),p.defaultProps=i},96519(e,t,n){n.d(t,{J:()=>c});var i,r,o=n(95443),s=n(618),a=n(64244),l=n(59065);class c extends a.x{setProps(e){var t;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=e.viewId,super.setProps(e)}
1onRenderHTML(e){let{className:t,style:n,icon:i,label:r,tooltip:a,color:c,onIcon:p=i,onLabel:u=r,onTooltip:d,onColor:h=c}=this.props,f=this.checked;e.dataset.checked=String(f),(0,s.XX)((0,o.Y)(l.K,{className:t,style:n,icon:f?p:i,label:f?u:r,tooltip:f?d:a,color:f?h:c,onClick:this._toggle}),e)}constructor(e){super(e),this.className="deck-widget-toggle",this.placement="top-left",this._toggle=()=>{var e,t;this.checked=!this.checked,null==(e=(t=this.props).onChange)||e.call(t,this.checked),this.updateHTML()},this.checked=this.props.initialChecked,this.setProps(this.props)}}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}({},a.x.defaultProps),r=r={id:"icon",placement:"top-left",viewId:null,initialChecked:!1,icon:"",onIcon:void 0,label:"",tooltip:void 0,onLabel:void 0,onTooltip:void 0,color:"",onColor:void 0,onChange:void 0},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))}),c.defaultProps=i},33964(e,t,n){n.d(t,{y:()=>h});var i=n(78977);let r=new Set(["row","column","overlay","spacer"]),o=new Set(["horizontal","vertical"]);function s(e){return!!(e&&"object"==typeof e&&!(e instanceof i.A)&&("type"in e&&r.has(String(e.type))||"orientation"in e&&o.has(String(e.orientation))))}function a(e){return"orientation"in e?"horizontal"===e.orientation?"row":"column":e.type}function l(e){return"views"in e?e.views:e.children}function c(e){if(!e||"object"!=typeof e)throw Error("ViewLayout must be an object.");let t=a(e);switch(t){case"row":case"column":case"overlay":{let t,n=l(e);if(!Array.isArray(n))throw Error("ViewLayout requires a children or views array.");if(("row"===(t=a(e))||"column"===t)&&e.splitId&&n.filter(Boolean).length<2)throw Error("ViewLayout with splitId requires at least two children.");n.forEach(p);break}case"spacer":break;default:throw Error("Unsupported view layout item: ".concat(String(t)))}}function p(e){if(e){if(s(e))return void c(e);if(!(e instanceof i.A))throw Error("ViewLayout children must be deck.gl View instances or layout objects.")}}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}function h(e){var t,n,i,r;c(e.layout);let o={x:0,y:0,width:Math.max(1,e.width),height:Math.max(1,e.height)},s=new Map((null!=(t=null==(r=e.previous)?void 0:r.views)?t:[]).map(e=>[O(e),e]).filter(e=>!!e[0])),a=[],l={},p={};return f({item:e.layout,rect:o,rootRect:o,outputViews:a,rectsById:l,splittersById:p,previousViewsById:s,splitValues:null!=(n=e.splitValues)?n:{},viewPropsById:null!=(i=e.viewPropsById)?i:{}}),{views:a,rectsById:l,splittersById:p}}function f(e){let{item:t}=e,n=a(t);switch(n){case"row":g(d(u({},e),{item:t,orientation:"row",children:l(t)}));return;case"column":g(d(u({},e),{item:t,orientation:"column",children:l(t)}));return;case"overlay":var i;let r;r=b((i=d(u({},e),{item:t,children:l(t)}
1)).rect,i.item.inset),i.children.filter(S).forEach(e=>v({child:e,rect:r,rootRect:i.rootRect,outputViews:i.outputViews,rectsById:i.rectsById,splittersById:i.splittersById,previousViewsById:i.previousViewsById,splitValues:i.splitValues,viewPropsById:i.viewPropsById}));return;case"spacer":return;default:throw Error("Unsupported view layout item: ".concat(String(n)))}}function g(e){var t;let n,i=b(e.rect,e.item.inset),r=e.children.filter(S);if(0===r.length)return;let o=(n=(t={children:r,containerAxisLength:"row"===e.orientation?i.width:i.height,item:e.item,orientation:e.orientation,splitValues:e.splitValues}).children.map(e=>{var n,i,r,o,a;let l,c,p;return n=e,i=t.orientation,r=t.containerAxisLength,l=function(e,t){if(s(e))return"row"===t?e.width:e.height;let n=e.props;return"row"===t?n.width:n.height}(n,i),c=null!=(o=y(n,"minPixels"))?o:0,p=null!=(a=y(n,"maxPixels"))?a:1/0,void 0===l?{minPixels:c,maxPixels:p}:{explicitLength:Math.min(Math.max(_(l,r),c),p),minPixels:c,maxPixels:p}}),t.item.splitId?function(e){var t,n,i,r,o,s;let a,l,c=Math.max(e.containerAxisLength,1),p=function(e){let t=m(e.containerAxisLength,e.constraints),n=t.reduce((e,t)=>e+t,0);if(n<=0)return e.children.slice(1).map((t,n)=>(n+1)/e.children.length);let i=0;return t.slice(0,-1).map(e=>(i+=e)/n)}(e),u=[];for(let s=0;s<p.length;s++){let a=(i=e.item.splitId,r=e.children.length,o=s,2===r?i:"".concat(i,"-").concat(o)),l=null!=(t=null!=(n=e.splitValues[a])?n:2===e.children.length?e.item.initialSplit:void 0)?t:p[s],{minSplit:d,maxSplit:h}=function(e){var t,n;let i=0===e.index?0:e.boundaries[e.index-1],r=e.index===e.boundaries.length-1?1:e.boundaries[e.index+1],o=e.constraints[e.index],s=e.constraints[e.index+1],a=Number.isFinite(o.maxPixels)?i+o.maxPixels/e.axisLength:1,l=Number.isFinite(s.maxPixels)?r-s.maxPixels/e.axisLength:0,c=Math.max(null!=(t=e.item.minSplit)?t:.05,i+o.minPixels/e.axisLength,l),p=Math.max(c,Math.min(null!=(n=e.item.maxSplit)?n:.95,r-s.minPixels/e.axisLength,a));return{minSplit:c,maxSplit:p}}({index:s,boundaries:p,constraints:e.constraints,axisLength:c,item:e.item}),f=Math.min(Math.max(l,d),h);p[s]=f,u.push({splitId:a,split:f,minSplit:d,maxSplit:h})}return{childAxisLengths:(s=e.containerAxisLength,a=0,(l=p.map(e=>{let t=s*(e-a);return a=e,t})).push(s*(1-a)),l),splitConfigs:u}}(d(u({},t),{constraints:n})):{childAxisLengths:m(t.containerAxisLength,n),splitConfigs:[]}),a="row"===e.orientation?i.x:i.y;for(let t of o.splitConfigs)e.splittersById[t.splitId]={id:t.splitId,orientation:"row"===e.orientation?"horizontal":"vertical",x:i.x/e.rootRect.width*100,y:i.y/e.rootRect.height*100,width:i.width/e.rootRect.width*100,height:i.height/e.rootRect.height*100,split:t.split,minSplit:t.minSplit,maxSplit:t.maxSplit};r.forEach((t,n)=>{let r=o.childAxisLengths[n],s="row"===e.orientation?{x:a,y:i.y,width:r,height:i.height}:{x:i.x,y:a,width:i.width,height:r};a+=r,v({child:t,rect:s,rootRect:e.rootRect,outputViews:e.outputViews,rectsById:e.rectsById,splittersById:e.splittersById,previousViewsById:e.previousViewsById,splitValues:e.splitValues,viewPropsById:e.viewPropsById})})}function v(e){var t,n,i,r,o,a;let l,c,p,h,g,v,m;s(e.child)?f({item:e.child,rect:e.rect,rootRect:e.rootRect,outputViews:e.outputViews,rectsById:e.rectsById,splittersById:e.splittersById,previousViewsById:e.previousViewsById,splitValues:e.splitValues,viewPropsById:e.viewPropsById}):(p=function(e){let t=O(e);if(!t)throw Error("Every compiled deck view must have a string id.");return t}((t={view:e.child,rect:e.rect,outputViews:e.outputViews,rectsById:e.rectsById,previousViewsById:e.previousViewsById,viewPropsById:e.viewPropsById}).view),h=(n=t.view,i=t.rect,r=t.viewPropsById[p],l=u({},n.props,r),c=i.x+w(l.x,i.width),{x:c,y:i.y+w(l.y,i.height),width:P(l.width,i.width,i.width),height:P(l.height,i.height,i.height)}),t.rectsById[p]=h,g=d(u({},t.view.props),{x:h.x,y:h.y,width:h.width,height:h.height}),m=(v=t.previousViewsById.get(p))&&v.constructor===t.view.constructor&&function(e,t){if(e===t)return!0;let n=Object.keys(e),i=Object.keys(t);return n.length===i.length&&n.every(n=>(function e(t,n){if(Object.is(t,n))return!0;
1if(Array.isArray(t)&&Array.isArray(n))return t.length===n.length&&t.every((t,i)=>e(t,n[i]));if(j(t)&&j(n)){let i=Object.keys(t),r=Object.keys(n);return i.length===r.length&&i.every(i=>e(t[i],n[i]))}return!1})(e[n],t[n]))}(v.props,g)?v:(o=t.view,a=g,new o.constructor(a)),t.outputViews.push(m))}function m(e,t){let n,i,r,{childAxisLengths:o,flexibleChildIndexes:s,fixedLength:a}=(n=t.map(e=>{let{explicitLength:t}=e;return t}),i=[],r=0,n.forEach((e,t)=>{void 0===e?i.push(t):r+=e}),{childAxisLengths:n,flexibleChildIndexes:i,fixedLength:r}),l=Math.max(e-a,0),c=s;for(;c.length>0;){let e=l/c.length,n=[],i=!1;for(let r of c){let{minPixels:s,maxPixels:a}=t[r];e<s?(o[r]=s,l-=s,i=!0):e>a?(o[r]=a,l-=a,i=!0):n.push(r)}if(!i){for(let t of c)o[t]=e;break}c=n}return o.map(e=>null!=e?e:0)}function y(e,t){let n=s(e)?e[t]:e.props[t];return"number"==typeof n?n:void 0}function b(e,t){var n,i,r,o;if(!t)return e;let s=null!=(n=t.top)?n:0,a=null!=(i=t.right)?i:0,l=null!=(r=t.bottom)?r:0,c=null!=(o=t.left)?o:0;return{x:e.x+c,y:e.y+s,width:Math.max(0,e.width-c-a),height:Math.max(0,e.height-s-l)}}function w(e,t){return null==e?0:_(e,t)}function P(e,t,n){return null==e?n:_(e,t)}function _(e,t){if("number"==typeof e)return e;let n=e.trim();if(0===n.length)throw Error("View layout length must not be empty.");return n.startsWith("calc(")&&n.endsWith(")")?function(e,t){let n=e.replace(/\s+/g,"").match(/[+-]?[^+-]+/g);if(!n)throw Error("Unsupported calc expression: calc(".concat(e,")"));return n.reduce((e,n)=>e+x(n,t),0)}(n.slice(5,-1),t):x(n,t)}function x(e,t){return e.endsWith("%")?Number.parseFloat(e.slice(0,-1))/100*t:e.endsWith("px")?Number.parseFloat(e.slice(0,-2)):Number.parseFloat(e)}function O(e){let t=e.props.id;return"string"==typeof t&&t.length>0?t:null}function j(e){return!!e&&"object"==typeof e&&Object.getPrototypeOf(e)===Object.prototype}function S(e){return!!e}},30794(e,t,n){n.d(t,{_:()=>f});var i,r,o=n(95443),s=n(64244),a=n(64151),l=n(96376),c=n(43396),p=n(618),u=n(45723),d=n(59065);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}class f extends s.x{setProps(e){var t,n;this.placement=null!=(t=e.placement)?t:this.placement,this.viewId=null!=(n=e.viewId)?n:this.viewId,super.setProps(e)}onRenderHTML(e){let t=(0,o.FD)(u.e,{orientation:this.props.orientation,children:[(0,o.Y)(d.K,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,tooltip:this.props.zoomInTooltip,className:"deck-widget-zoom-in"}),(0,o.Y)(d.K,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,tooltip:this.props.zoomOutTooltip,className:"deck-widget-zoom-out"})]});(0,p.XX)(t,e)}isOrthographicView(e){let t=this.deck;return((null==t?void 0:t.isInitialized)&&t.getView(e))instanceof a.A}handleZoom(e,t){var n,i,r,o;let s=this.getViewState(e),a={};if(this.isOrthographicView(e)){let r,o,{zoomAxis:l}=this.props,{zoomX:c,minZoomX:p,maxZoomX:u,zoomY:d,minZoomY:h,maxZoomY:f}=function(e){let{zoom:t=0,zoomX:n,zoomY:i,minZoom:r=-1/0,maxZoom:o=1/0,minZoomX:s=r,maxZoomX:a=o,minZoomY:l=r,maxZoomY:c=o}=e;return{zoomX:n=null!=n?n:Array.isArray(t)?t[0]:t,zoomY:i=null!=i?i:Array.isArray(t)?t[1]:t,minZoomX:s,minZoomY:l,maxZoomX:a,maxZoomY:c}}(s);if("X"===l)r=g(c+t,p,u),o=d;else if("Y"===l)r=c,o=g(d+t,h,f);else{let e=g(t,Math.max(p-c,h-d),Math.min(u-c,f-d));r=c+e,o=d+e}a.zoom=[r,o],a.zoomX=r,a.zoomY=o,null==(n=(i=this.props).onZoom)||n.call(i,{viewId:e,delta:t,zoom:"Y"===l?o:r,zoomX:r,zoomY:o})}else{let{zoom:n=0,minZoom:i,maxZoom:l}=s,c=g(n+t,i,l);a.zoom=c,null==(r=(o=this.props).onZoom)||r.call(o,{viewId:e,delta:t,zoom:c})}let p=h({},s,a);this.props.transitionDuration>0&&(p.transitionDuration=this.props.transitionDuration,p.transitionInterpolator="latitude"in p?new l.A:new c.A({transitionProps:"zoomX"in a?["zoomX","zoomY"]:["zoom"]})),this.setViewState(e,p)}handleZoomIn(){for(let e of this.viewIds)this.handleZoom(e,this.props.zoomStep)}handleZoomOut(){for(let e of this.viewIds)this.handleZoom(e,-this.props.zoomStep)}constructor(e={}){super(e),this.className="deck-widget-zoom",this.placement="top-left",this.setProps(this.props)}}function g(e,t,n){return e<t?t:e>n?n:e}i=h({},s.x.defaultProps),r=r={id:"zoom",placement:"top-left",orientation:"vertical",transitionDuration:200,zoomStep:1,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",zoomInTooltip:void 0,zoomOutTooltip:void 0,zoomAxis:"all",viewId:null,onZoom:()=>{}},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}
1)(Object(r)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}),f.defaultProps=i}}]); 2//# sourceMappingURL=ea2b795b.6de452df.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.