UNPKG

@deck.gl/widgets

Version:

UI widgets for deck.gl

7 lines 52 kB
(function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if (typeof define === 'function' && define.amd) define([], factory); else if (typeof exports === 'object') exports['deck'] = factory(); else root['deck'] = factory();})(globalThis, function () { "use strict";var __exports__=(()=>{var Zt=Object.create;var _e=Object.defineProperty;var Yt=Object.getOwnPropertyDescriptor;var jt=Object.getOwnPropertyNames;var Qt=Object.getPrototypeOf,eo=Object.prototype.hasOwnProperty;var mt=(t,o)=>()=>(o||t((o={exports:{}}).exports,o),o.exports),to=(t,o)=>{for(var e in o)_e(t,e,{get:o[e],enumerable:!0})},fe=(t,o,e,i)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of jt(o))!eo.call(t,n)&&n!==e&&_e(t,n,{get:()=>o[n],enumerable:!(i=Yt(o,n))||i.enumerable});return t},R=(t,o,e)=>(fe(t,o,"default"),e&&fe(e,o,"default")),y=(t,o,e)=>(e=t!=null?Zt(Qt(t)):{},fe(o||!t||!t.__esModule?_e(e,"default",{value:t,enumerable:!0}):e,t)),oo=t=>fe(_e({},"__esModule",{value:!0}),t);var P=mt((No,ht)=>{ht.exports=globalThis.deck});var qt=mt((In,zt)=>{zt.exports=globalThis.luma});var me={};to(me,{CompassWidget:()=>Y,DarkGlassTheme:()=>Ne,DarkTheme:()=>Bt,FullscreenWidget:()=>te,GimbalWidget:()=>K,LightGlassTheme:()=>Ve,LightTheme:()=>Ut,ResetViewWidget:()=>J,ScreenshotWidget:()=>le,ZoomWidget:()=>X,_ButtonGroup:()=>B,_ContextMenuWidget:()=>se,_CoordinatesGeocoder:()=>z,_CurrentLocationGeocoder:()=>Le,_DropdownMenu:()=>We,_FpsWidget:()=>pe,_GeocoderWidget:()=>ee,_GoogleGeocoder:()=>Me,_GroupedIconButton:()=>O,_IconButton:()=>W,_IconMenu:()=>He,_InfoWidget:()=>re,_LoadingWidget:()=>ce,_MapboxGeocoder:()=>Te,_OpenCageGeocoder:()=>Ce,_ScaleWidget:()=>j,_SimpleMenu:()=>Re,_SplitterWidget:()=>ie,_StatsWidget:()=>ue,_ThemeWidget:()=>de,_TimelineWidget:()=>ae,_ViewSelectorWidget:()=>ne});var L={},gt=y(P(),1);R(L,y(P(),1));if(!gt.Layer)throw new Error("@deck.gl/core is not found");R(me,L);var F=y(P(),1);var Pe,b,bt,io,G,ft,yt,De,$e,Oe,Fe,no,q={},Pt=[],ro=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Ue=Array.isArray;function V(t,o){for(var e in o)t[e]=o[e];return t}function xt(t){var o=t.parentNode;o&&o.removeChild(t)}function so(t,o,e){var i,n,r,d={};for(r in o)r=="key"?i=o[r]:r=="ref"?n=o[r]:d[r]=o[r];if(arguments.length>2&&(d.children=arguments.length>3?Pe.call(arguments,2):e),typeof t=="function"&&t.defaultProps!=null)for(r in t.defaultProps)d[r]===void 0&&(d[r]=t.defaultProps[r]);return we(t,d,i,n,null)}function we(t,o,e,i,n){var r={type:t,props:o,key:e,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:n??++bt,__i:-1,__u:0};return n==null&&b.vnode!=null&&b.vnode(r),r}function U(t){return t.children}function be(t,o){this.props=t,this.context=o}function D(t,o){if(o==null)return t.__?D(t.__,t.__i+1):null;for(var e;o<t.__k.length;o++)if((e=t.__k[o])!=null&&e.__e!=null)return e.__e;return typeof t.type=="function"?D(t):null}function kt(t){var o,e;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,o=0;o<t.__k.length;o++)if((e=t.__k[o])!=null&&e.__e!=null){t.__e=t.__c.base=e.__e;break}return kt(t)}}function _t(t){(!t.__d&&(t.__d=!0)&&G.push(t)&&!ye.__r++||ft!==b.debounceRendering)&&((ft=b.debounceRendering)||yt)(ye)}function ye(){var t,o,e,i,n,r,d,a;for(G.sort(De);t=G.shift();)t.__d&&(o=G.length,i=void 0,r=(n=(e=t).__v).__e,d=[],a=[],e.__P&&((i=V({},n)).__v=n.__v+1,b.vnode&&b.vnode(i),Be(e.__P,i,n,e.__n,e.__P.namespaceURI,32&n.__u?[r]:null,d,r??D(n),!!(32&n.__u),a),i.__v=n.__v,i.__.__k[i.__i]=i,St(d,i,a),i.__e!=r&&kt(i)),G.length>o&&G.sort(De));ye.__r=0}function It(t,o,e,i,n,r,d,a,p,c,u){var s,h,m,_,I,g=i&&i.__k||Pt,v=o.length;for(e.__d=p,ao(e,o,g),p=e.__d,s=0;s<v;s++)(m=e.__k[s])!=null&&typeof m!="boolean"&&typeof m!="function"&&(h=m.__i===-1?q:g[m.__i]||q,m.__i=s,Be(t,m,h,n,r,d,a,p,c,u),_=m.__e,m.ref&&h.ref!=m.ref&&(h.ref&&ze(h.ref,null,m),u.push(m.ref,m.__c||_,m)),I==null&&_!=null&&(I=_),65536&m.__u||h.__k===m.__k?p=Wt(m,p,t):typeof m.type=="function"&&m.__d!==void 0?p=m.__d:_&&(p=_.nextSibling),m.__d=void 0,m.__u&=-196609);e.__d=p,e.__e=I}function ao(t,o,e){var i,n,r,d,a,p=o.length,c=e.length,u=c,s=0;for(t.__k=[],i=0;i<p;i++)d=i+s,(n=t.__k[i]=(n=o[i])==null||typeof n=="boolean"||typeof n=="function"?null:typeof n=="string"||typeof n=="number"||typeof n=="bigint"||n.constructor==String?we(null,n,null,null,null):Ue(n)?we(U,{children:n},null,null,null):n.constructor===void 0&&n.__b>0?we(n.type,n.props,n.key,n.ref?n.ref:null,n.__v):n)!=null?(n.__=t,n.__b=t.__b+1,a=lo(n,e,d,u),n.__i=a,r=null,a!==-1&&(u--,(r=e[a])&&(r.__u|=131072)),r==null||r.__v===null?(a==-1&&s--,typeof n.type!="function"&&(n.__u|=65536)):a!==d&&(a==d-1?s--:a==d+1?s++:a>d?u>p-d?s+=a-d:s--:a<d&&(a==d-s?s-=a-d:s++),a!==i+s&&(n.__u|=65536))):(r=e[d])&&r.key==null&&r.__e&&!(131072&r.__u)&&(r.__e==t.__d&&(t.__d=D(r)),Ae(r,r,!1),e[d]=null,u--);if(u)for(i=0;i<c;i++)(r=e[i])!=null&&!(131072&r.__u)&&(r.__e==t.__d&&(t.__d=D(r)),Ae(r,r))}function Wt(t,o,e){var i,n;if(typeof t.type=="function"){for(i=t.__k,n=0;i&&n<i.length;n++)i[n]&&(i[n].__=t,o=Wt(i[n],o,e));return o}t.__e!=o&&(o&&t.type&&!e.contains(o)&&(o=D(t)),e.insertBefore(t.__e,o||null),o=t.__e);do o=o&&o.nextSibling;while(o!=null&&o.nodeType===8);return o}function lo(t,o,e,i){var n=t.key,r=t.type,d=e-1,a=e+1,p=o[e];if(p===null||p&&n==p.key&&r===p.type&&!(131072&p.__u))return e;if(i>(p!=null&&!(131072&p.__u)?1:0))for(;d>=0||a<o.length;){if(d>=0){if((p=o[d])&&!(131072&p.__u)&&n==p.key&&r===p.type)return d;d--}if(a<o.length){if((p=o[a])&&!(131072&p.__u)&&n==p.key&&r===p.type)return a;a++}}return-1}function vt(t,o,e){o[0]==="-"?t.setProperty(o,e??""):t[o]=e==null?"":typeof e!="number"||ro.test(o)?e:e+"px"}function ve(t,o,e,i,n){var r;e:if(o==="style")if(typeof e=="string")t.style.cssText=e;else{if(typeof i=="string"&&(t.style.cssText=i=""),i)for(o in i)e&&o in e||vt(t.style,o,"");if(e)for(o in e)i&&e[o]===i[o]||vt(t.style,o,e[o])}else if(o[0]==="o"&&o[1]==="n")r=o!==(o=o.replace(/(PointerCapture)$|Capture$/i,"$1")),o=o.toLowerCase()in t||o==="onFocusOut"||o==="onFocusIn"?o.toLowerCase().slice(2):o.slice(2),t.l||(t.l={}),t.l[o+r]=e,e?i?e.u=i.u:(e.u=$e,t.addEventListener(o,r?Fe:Oe,r)):t.removeEventListener(o,r?Fe:Oe,r);else{if(n=="http://www.w3.org/2000/svg")o=o.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(o!="width"&&o!="height"&&o!="href"&&o!="list"&&o!="form"&&o!="tabIndex"&&o!="download"&&o!="rowSpan"&&o!="colSpan"&&o!="role"&&o!="popover"&&o in t)try{t[o]=e??"";break e}catch{}typeof e=="function"||(e==null||e===!1&&o[4]!=="-"?t.removeAttribute(o):t.setAttribute(o,o=="popover"&&e==1?"":e))}}function wt(t){return function(o){if(this.l){var e=this.l[o.type+t];if(o.t==null)o.t=$e++;else if(o.t<e.u)return;return e(b.event?b.event(o):o)}}}function Be(t,o,e,i,n,r,d,a,p,c){var u,s,h,m,_,I,g,v,w,H,S,M,T,ut,he,Ge,C=o.type;if(o.constructor!==void 0)return null;128&e.__u&&(p=!!(32&e.__u),r=[a=o.__e=e.__e]),(u=b.__b)&&u(o);e:if(typeof C=="function")try{if(v=o.props,w="prototype"in C&&C.prototype.render,H=(u=C.contextType)&&i[u.__c],S=u?H?H.props.value:u.__:i,e.__c?g=(s=o.__c=e.__c).__=s.__E:(w?o.__c=s=new C(v,S):(o.__c=s=new be(v,S),s.constructor=C,s.render=po),H&&H.sub(s),s.props=v,s.state||(s.state={}),s.context=S,s.__n=i,h=s.__d=!0,s.__h=[],s._sb=[]),w&&s.__s==null&&(s.__s=s.state),w&&C.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=V({},s.__s)),V(s.__s,C.getDerivedStateFromProps(v,s.__s))),m=s.props,_=s.state,s.__v=o,h)w&&C.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),w&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(w&&C.getDerivedStateFromProps==null&&v!==m&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(v,S),!s.__e&&(s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(v,s.__s,S)===!1||o.__v===e.__v)){for(o.__v!==e.__v&&(s.props=v,s.state=s.__s,s.__d=!1),o.__e=e.__e,o.__k=e.__k,o.__k.forEach(function(ge){ge&&(ge.__=o)}),M=0;M<s._sb.length;M++)s.__h.push(s._sb[M]);s._sb=[],s.__h.length&&d.push(s);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(v,s.__s,S),w&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate(m,_,I)})}if(s.context=S,s.props=v,s.__P=t,s.__e=!1,T=b.__r,ut=0,w){for(s.state=s.__s,s.__d=!1,T&&T(o),u=s.render(s.props,s.state,s.context),he=0;he<s._sb.length;he++)s.__h.push(s._sb[he]);s._sb=[]}else do s.__d=!1,T&&T(o),u=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++ut<25);s.state=s.__s,s.getChildContext!=null&&(i=V(V({},i),s.getChildContext())),w&&!h&&s.getSnapshotBeforeUpdate!=null&&(I=s.getSnapshotBeforeUpdate(m,_)),It(t,Ue(Ge=u!=null&&u.type===U&&u.key==null?u.props.children:u)?Ge:[Ge],o,e,i,n,r,d,a,p,c),s.base=o.__e,o.__u&=-161,s.__h.length&&d.push(s),g&&(s.__E=s.__=null)}catch(ge){if(o.__v=null,p||r!=null){for(o.__u|=p?160:32;a&&a.nodeType===8&&a.nextSibling;)a=a.nextSibling;r[r.indexOf(a)]=null,o.__e=a}else o.__e=e.__e,o.__k=e.__k;b.__e(ge,o,e)}else r==null&&o.__v===e.__v?(o.__k=e.__k,o.__e=e.__e):o.__e=co(e.__e,o,e,i,n,r,d,p,c);(u=b.diffed)&&u(o)}function St(t,o,e){o.__d=void 0;for(var i=0;i<e.length;i++)ze(e[i],e[++i],e[++i]);b.__c&&b.__c(o,t),t.some(function(n){try{t=n.__h,n.__h=[],t.some(function(r){r.call(n)})}catch(r){b.__e(r,n.__v)}})}function co(t,o,e,i,n,r,d,a,p){var c,u,s,h,m,_,I,g=e.props,v=o.props,w=o.type;if(w==="svg"?n="http://www.w3.org/2000/svg":w==="math"?n="http://www.w3.org/1998/Math/MathML":n||(n="http://www.w3.org/1999/xhtml"),r!=null){for(c=0;c<r.length;c++)if((m=r[c])&&"setAttribute"in m==!!w&&(w?m.localName===w:m.nodeType===3)){t=m,r[c]=null;break}}if(t==null){if(w===null)return document.createTextNode(v);t=document.createElementNS(n,w,v.is&&v),r=null,a=!1}if(w===null)g===v||a&&t.data===v||(t.data=v);else{if(r=r&&Pe.call(t.childNodes),g=e.props||q,!a&&r!=null)for(g={},c=0;c<t.attributes.length;c++)g[(m=t.attributes[c]).name]=m.value;for(c in g)if(m=g[c],c!="children"){if(c=="dangerouslySetInnerHTML")s=m;else if(c!=="key"&&!(c in v)){if(c=="value"&&"defaultValue"in v||c=="checked"&&"defaultChecked"in v)continue;ve(t,c,null,m,n)}}for(c in v)m=v[c],c=="children"?h=m:c=="dangerouslySetInnerHTML"?u=m:c=="value"?_=m:c=="checked"?I=m:c==="key"||a&&typeof m!="function"||g[c]===m||ve(t,c,m,g[c],n);if(u)a||s&&(u.__html===s.__html||u.__html===t.innerHTML)||(t.innerHTML=u.__html),o.__k=[];else if(s&&(t.innerHTML=""),It(t,Ue(h)?h:[h],o,e,i,w==="foreignObject"?"http://www.w3.org/1999/xhtml":n,r,d,r?r[0]:e.__k&&D(e,0),a,p),r!=null)for(c=r.length;c--;)r[c]!=null&&xt(r[c]);a||(c="value",_!==void 0&&(_!==t[c]||w==="progress"&&!_||w==="option"&&_!==g[c])&&ve(t,c,_,g[c],n),c="checked",I!==void 0&&I!==t[c]&&ve(t,c,I,g[c],n))}return t}function ze(t,o,e){try{if(typeof t=="function"){var i=typeof t.__u=="function";i&&t.__u(),i&&o==null||(t.__u=t(o))}else t.current=o}catch(n){b.__e(n,e)}}function Ae(t,o,e){var i,n;if(b.unmount&&b.unmount(t),(i=t.ref)&&(i.current&&i.current!==t.__e||ze(i,null,o)),(i=t.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(r){b.__e(r,o)}i.base=i.__P=null}if(i=t.__k)for(n=0;n<i.length;n++)i[n]&&Ae(i[n],o,e||typeof t.type!="function");e||t.__e==null||xt(t.__e),t.__c=t.__=t.__e=t.__d=void 0}function po(t,o,e){return this.constructor(t,e)}function f(t,o,e){var i,n,r,d;b.__&&b.__(t,o),n=(i=typeof e=="function")?null:e&&e.__k||o.__k,r=[],d=[],Be(o,t=(!i&&e||o).__k=so(U,null,[t]),n||q,q,o.namespaceURI,!i&&e?[e]:n?null:o.firstChild?Pe.call(o.childNodes):null,r,!i&&e?e:n?n.__e:o.firstChild,i,d),St(r,t,d)}Pe=Pt.slice,b={__e:function(t,o,e,i){for(var n,r,d;o=o.__;)if((n=o.__c)&&!n.__)try{if((r=n.constructor)&&r.getDerivedStateFromError!=null&&(n.setState(r.getDerivedStateFromError(t)),d=n.__d),n.componentDidCatch!=null&&(n.componentDidCatch(t,i||{}),d=n.__d),d)return n.__E=n}catch(a){t=a}throw t}},bt=0,io=function(t){return t!=null&&t.constructor==null},be.prototype.setState=function(t,o){var e;e=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=V({},this.state),typeof t=="function"&&(t=t(V({},e),this.props)),t&&V(e,t),t!=null&&this.__v&&(o&&this._sb.push(o),_t(this))},be.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),_t(this))},be.prototype.render=U,G=[],yt=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,De=function(t,o){return t.__v.__b-o.__v.__b},ye.__r=0,$e=0,Oe=wt(!1),Fe=wt(!0),no=0;var uo=0,Fo=Array.isArray;function l(t,o,e,i,n,r){o||(o={});var d,a,p=o;if("ref"in p)for(a in p={},o)a=="ref"?d=o[a]:p[a]=o[a];var c={type:t,props:p,key:e,ref:d,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--uo,__i:-1,__u:0,__source:n,__self:r};if(typeof t=="function"&&(d=t.defaultProps))for(a in d)p[a]===void 0&&(p[a]=d[a]);return b.vnode&&b.vnode(c),c}var B=t=>{let{children:o,orientation:e="horizontal"}=t;return l("div",{className:`deck-widget-button-group ${e}`,children:o})};var O=t=>{let{className:o="",label:e,onClick:i,children:n}=t;return l("button",{className:`deck-widget-icon-button ${o}`,type:"button",onClick:i,title:e,children:n||l("div",{className:"deck-widget-icon"})})};var X=class extends F.Widget{constructor(e={}){super(e);this.className="deck-widget-zoom";this.placement="top-left";this.viewports={};this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){let i=l(B,{orientation:this.props.orientation,children:[l(O,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,className:"deck-widget-zoom-in"}),l(O,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,className:"deck-widget-zoom-out"})]});f(i,e)}onViewportChange(e){this.viewports[e.id]=e}handleZoom(e,i){let n=this.viewId||e?.id||"default-view",r={...e,zoom:i};this.props.transitionDuration>0&&(r.transitionDuration=this.props.transitionDuration,r.transitionInterpolator="latitude"in r?new F.FlyToInterpolator:new F.LinearInterpolator({transitionProps:["zoom"]})),this.setViewState(n,r)}handleZoomIn(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom+1)}handleZoomOut(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom-1)}setViewState(e,i){this.deck._onViewStateChange({viewId:e,viewState:i,interactionState:{}})}};X.defaultProps={...F.Widget.defaultProps,id:"zoom",placement:"top-left",orientation:"vertical",transitionDuration:200,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",viewId:null};var qe=y(P(),1);var W=t=>{let{className:o="",label:e,onClick:i,children:n}=t;return l("div",{className:"deck-widget-button",children:l("button",{className:`deck-widget-icon-button ${o}`,type:"button",onClick:i,title:e,children:n||l("div",{className:"deck-widget-icon"})})})};var J=class extends qe.Widget{constructor(e={}){super(e);this.className="deck-widget-reset-view";this.placement="top-left";this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){f(l(W,{className:"deck-widget-reset-focus",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){let e=this.props.initialViewState||this.deck?.props.initialViewState;this.setViewState(e)}setViewState(e){let i=this.props.viewId||"default-view",n={...i!=="default-view"?e?.[i]:e};this.deck._onViewStateChange({viewId:i,viewState:n,interactionState:{}})}};J.defaultProps={...qe.Widget.defaultProps,id:"reset-view",placement:"top-left",label:"Reset View",initialViewState:void 0,viewId:null};var Z=y(P(),1);var K=class extends Z.Widget{constructor(e={}){super(e);this.className="deck-widget-gimbal";this.placement="top-left";this.viewports={};this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){let i=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[i],{rotationOrbit:r,rotationX:d}=this.getNormalizedRotation(n),a=l("div",{className:"deck-widget-button",style:{perspective:100,pointerEvents:"auto"},children:l("button",{type:"button",onClick:()=>{for(let p of Object.values(this.viewports))this.resetOrbitView(p)},title:this.props.label,style:{position:"relative",width:26,height:26},children:[l("svg",{className:"gimbal-outer-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateY(${r}deg)`},children:l("circle",{cx:"13",cy:"13",r:"10",stroke:"var(--icon-gimbal-outer-color, rgb(68, 92, 204))",strokeWidth:this.props.strokeWidth,fill:"none"})}),l("svg",{className:"gimbal-inner-ring",width:"100%",height:"100%",viewBox:"0 0 26 26",style:{position:"absolute",top:0,left:0,transform:`rotateX(${d}deg)`},children:l("circle",{cx:"13",cy:"13",r:"7",stroke:"var(--icon-gimbal-inner-color, rgb(240, 92, 68))",strokeWidth:this.props.strokeWidth,fill:"none"})})]})});f(a,e)}onViewportChange(e){this.viewports[e.id]=e,this.updateHTML()}resetOrbitView(e){let i=this.getViewId(e),n=this.getViewState(i);if("rotationOrbit"in n||"rotationX"in n){let r={...n,rotationOrbit:0,rotationX:0,transitionDuration:this.props.transitionDuration,transitionInterpolator:new Z.LinearInterpolator({transitionProps:["rotationOrbit","rotationX"]})};this.deck._onViewStateChange({viewId:i,viewState:r,interactionState:{}})}}getNormalizedRotation(e){let i=this.getViewState(this.getViewId(e)),[n,r]=this.getRotation(i),d=Mt(n),a=Mt(r);return{rotationOrbit:d,rotationX:a}}getRotation(e){return e&&("rotationOrbit"in e||"rotationX"in e)?[-(e.rotationOrbit||0),e.rotationX||0]:[0,0]}getViewId(e){return this.viewId||e?.id||"OrbitView"}getViewState(e){let i=this.getViewManager();return e&&i.getViewState(e)||i.viewState}getViewManager(){let e=this.deck?.viewManager;if(!e)throw new Error("wigdet must be added to a deck instance");return e}};K.defaultProps={...Z.Widget.defaultProps,id:"gimbal",placement:"top-left",viewId:null,label:"Gimbal",strokeWidth:1.5,transitionDuration:200};function Mt(t){let o=((t+180)%360+360)%360-180,e=10,i=o-90;return Math.abs(i)<e&&(i<e?o=90+e:i>-e&&(o=90-e)),o}var E=y(P(),1);var Y=class extends E.Widget{constructor(e={}){super(e);this.className="deck-widget-compass";this.placement="top-left";this.viewports={};this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){let i=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[i],[r,d]=this.getRotation(n),a=l("div",{className:"deck-widget-button",style:{perspective:100},children:l("button",{type:"button",onClick:()=>{for(let p of Object.values(this.viewports))this.handleCompassReset(p)},title:this.props.label,style:{transform:`rotateX(${d}deg)`},children:l("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:l("g",{transform:`rotate(${r},13,13)`,children:[l("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, rgb(240, 92, 68))"}),l("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, rgb(204, 204, 204))"})]})})})});f(a,e)}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.updateHTML())}getRotation(e){return e instanceof E.WebMercatorViewport?[-e.bearing,e.pitch]:e instanceof E._GlobeViewport?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}handleCompassReset(e){let i=this.viewId||e.id||"default-view";if(e instanceof E.WebMercatorViewport){let n={...e,bearing:0,...this.getRotation(e)[0]===0?{pitch:0}:{},transitionDuration:this.props.transitionDuration,transitionInterpolator:new E.FlyToInterpolator};this.deck._onViewStateChange({viewId:i,viewState:n,interactionState:{}})}}};Y.defaultProps={...E.Widget.defaultProps,id:"compass",placement:"top-left",viewId:null,label:"Reset Compass",transitionDuration:200};var Xe=y(P(),1);var j=class extends Xe.Widget{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)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){let n=50+this.scaleWidth,r=10;f(l("svg",{className:"deck-widget-scale",width:n,height:30,style:{overflow:"visible",background:"transparent"},onClick:this.handleClick.bind(this),children:[l("text",{x:50+5,y:"10",textAnchor:"end",alignmentBaseline:"middle",style:{fontSize:"16px",fill:"black",fontWeight:"bold",fontFamily:"sans-serif"},children:this.scaleText}),l("line",{x1:50,y1:"15",x2:50+this.scaleWidth,y2:"15",stroke:"black",strokeWidth:"6"}),l("line",{x1:50,y1:"15",x2:50,y2:15-r,stroke:"black",strokeWidth:"6"}),l("line",{x1:50+this.scaleWidth,y1:"15",x2:50+this.scaleWidth,y2:15-r,stroke:"black",strokeWidth:"6"})]}),e)}onViewportChange(e){if(!("latitude"in e))return;let{latitude:i,zoom:n}=e,r=mo(i,n),{candidate:d,candidatePixels:a}=ho(r);this.scaleValue=d,this.scaleWidth=a,d>=1e3?this.scaleText=`${(d/1e3).toFixed(1)} km`:this.scaleText=`${d} m`,this.updateHTML()}handleClick(){}};j.defaultProps={...Xe.Widget.defaultProps,id:"scale",placement:"bottom-left",label:"Scale",viewId:null};function mo(t,o){return 40075016686e-3*Math.cos(t*Math.PI/180)/Math.pow(2,o+8)}function ho(t){let n=150*t,r=Math.floor(Math.log10(n)),d=Math.pow(10,r),a=[1,2,5],p=a[0]*d,c=p/t;for(let u=0;u<a.length;u++){let s=a[u]*d,h=s/t;if(h>=100&&h<=200){p=s,c=h;break}if(h>200){p=u>0?a[u-1]*d:s,c=p/t;break}u===a.length-1&&h<100&&(p=a[0]*d*10,c=p/t)}return{candidate:p,candidatePixels:c}}var je=y(P(),1),Ee=y(P(),1);var Q,x,Je,Tt,ke=0,Gt=[],k=b,Ct=k.__b,Lt=k.__r,Et=k.diffed,Ht=k.__c,Rt=k.unmount,Vt=k.__;function Ze(t,o){k.__h&&k.__h(x,t,ke||o),ke=0;var e=x.__H||(x.__H={__:[],__h:[]});return t>=e.__.length&&e.__.push({}),e.__[t]}function A(t){return ke=1,go(Ot,t)}function go(t,o,e){var i=Ze(Q++,2);if(i.t=t,!i.__c&&(i.__=[e?e(o):Ot(void 0,o),function(a){var p=i.__N?i.__N[0]:i.__[0],c=i.t(p,a);p!==c&&(i.__N=[c,i.__[1]],i.__c.setState({}))}],i.__c=x,!x.u)){var n=function(a,p,c){if(!i.__c.__H)return!0;var u=i.__c.__H.__.filter(function(h){return!!h.__c});if(u.every(function(h){return!h.__N}))return!r||r.call(this,a,p,c);var s=!1;return u.forEach(function(h){if(h.__N){var m=h.__[0];h.__=h.__N,h.__N=void 0,m!==h.__[0]&&(s=!0)}}),!(!s&&i.__c.props===a)&&(!r||r.call(this,a,p,c))};x.u=!0;var r=x.shouldComponentUpdate,d=x.componentWillUpdate;x.componentWillUpdate=function(a,p,c){if(this.__e){var u=r;r=void 0,n(a,p,c),r=u}d&&d.call(this,a,p,c)},x.shouldComponentUpdate=n}return i.__N||i.__}function Ie(t,o){var e=Ze(Q++,3);!k.__s&&Dt(e.__H,o)&&(e.__=t,e.i=o,x.__H.__h.push(e))}function $(t){return ke=5,fo(function(){return{current:t}},[])}function fo(t,o){var e=Ze(Q++,7);return Dt(e.__H,o)&&(e.__=t(),e.__H=o,e.__h=t),e.__}function _o(){for(var t;t=Gt.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(xe),t.__H.__h.forEach(Ke),t.__H.__h=[]}catch(o){t.__H.__h=[],k.__e(o,t.__v)}}k.__b=function(t){x=null,Ct&&Ct(t)},k.__=function(t,o){t&&o.__k&&o.__k.__m&&(t.__m=o.__k.__m),Vt&&Vt(t,o)},k.__r=function(t){Lt&&Lt(t),Q=0;var o=(x=t.__c).__H;o&&(Je===x?(o.__h=[],x.__h=[],o.__.forEach(function(e){e.__N&&(e.__=e.__N),e.i=e.__N=void 0})):(o.__h.forEach(xe),o.__h.forEach(Ke),o.__h=[],Q=0)),Je=x},k.diffed=function(t){Et&&Et(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(Gt.push(o)!==1&&Tt===k.requestAnimationFrame||((Tt=k.requestAnimationFrame)||vo)(_o)),o.__H.__.forEach(function(e){e.i&&(e.__H=e.i),e.i=void 0})),Je=x=null},k.__c=function(t,o){o.some(function(e){try{e.__h.forEach(xe),e.__h=e.__h.filter(function(i){return!i.__||Ke(i)})}catch(i){o.some(function(n){n.__h&&(n.__h=[])}),o=[],k.__e(i,e.__v)}}),Ht&&Ht(t,o)},k.unmount=function(t){Rt&&Rt(t);var o,e=t.__c;e&&e.__H&&(e.__H.__.forEach(function(i){try{xe(i)}catch(n){o=n}}),e.__H=void 0,o&&k.__e(o,e.__v))};var Nt=typeof requestAnimationFrame=="function";function vo(t){var o,e=function(){clearTimeout(i),Nt&&cancelAnimationFrame(o),setTimeout(t)},i=setTimeout(e,100);Nt&&(o=requestAnimationFrame(e))}function xe(t){var o=x,e=t.__c;typeof e=="function"&&(t.__c=void 0,e()),x=o}function Ke(t){var o=x;t.__c=t.__(),x=o}function Dt(t,o){return!t||t.length!==o.length||o.some(function(e,i){return e!==t[i]})}function Ot(t,o){return typeof o=="function"?o(t):o}var We=t=>{let[o,e]=A(!1),i=$(null),n=()=>e(!o),r=a=>{i.current&&!i.current.contains(a.target)&&e(!1)};Ie(()=>(document.addEventListener("mousedown",r),()=>{document.removeEventListener("mousedown",r)}),[]);let d=a=>{t.onSelect(a),e(!1)};return l("div",{className:"dropdown-container",ref:i,style:{position:"relative",display:"inline-block",...t.style},children:[l("button",{onClick:n,style:{width:"30px",height:"30px",display:"flex",alignItems:"center",justifyContent:"center",border:"1px solid #ccc",borderRadius:"4px",background:"#fff",cursor:"pointer",padding:0},children:"\u25BC"}),o&&l("ul",{style:{position:"absolute",top:"100%",right:"100%",background:"#fff",border:"1px solid #ccc",borderRadius:"4px",listStyle:"none",padding:"4px 0",margin:0,zIndex:1e3,minWidth:"200px"},children:t.menuItems.map(a=>l("li",{onClick:()=>d(a),style:{padding:"4px 8px",cursor:"pointer",whiteSpace:"nowrap"},children:a},a))})]})};var wo="current",Ft="deck-geocoder-history",Se=class{constructor(o){this.addressText="";this.errorText="";this.addressHistory=[];this.props={maxEntries:5,...o},this.addressHistory=this.loadPreviousAddresses()}async geocode(o,e,i){this.errorText="",this.addressText=e;try{let n=await o.geocode(e,i);if(n)return this.storeAddress(this.addressText),n;this.errorText="Invalid address"}catch(n){this.errorText=`${n.message}`}return null}loadPreviousAddresses(){try{let o=window.localStorage.getItem(Ft),e=o&&JSON.parse(o);return Array.isArray(e)?e.filter(n=>typeof n=="string"):[]}catch{}return[]}storeAddress(o){let e=o.trim();if(!e||e===wo)return;let i=[e,...this.addressHistory.filter(n=>n!==e)];this.addressHistory=i.slice(0,this.props.maxEntries);try{window.localStorage.setItem(Ft,JSON.stringify(this.addressHistory))}catch{}}};var bo="https://maps.googleapis.com/maps/api/geocode/json",yo="https://api.mapbox.com/geocoding/v5/mapbox.places",Po="https://api.opencagedata.com/geocode/v1/json",Me={name:"google",requiresApiKey:!0,async geocode(t,o){let e=encodeURIComponent(t),i=await Ye(`${bo}?address=${e}&key=${o}`);switch(i.status){case"OK":let n=i.results.length>0&&i.results[0].geometry.location;return n?{longitude:n.lng,latitude:n.lat}:null;default:throw new Error(`Google Geocoder failed: ${i.status}`)}}},Te={name:"google",requiresApiKey:!0,async geocode(t,o){let e=encodeURIComponent(t),i=await Ye(`${yo}/${e}.json?access_token=${o}`);if(Array.isArray(i.features)&&i.features.length>0){let n=i.features[0].center;if(Array.isArray(n)&&n.length>=2)return{longitude:n[0],latitude:n[1]}}return null}},Ce={name:"opencage",requiresApiKey:!0,async geocode(t,o){let e=encodeURIComponent(t),i=await Ye(`${Po}?q=${e}&key=${o}`);if(Array.isArray(i.results)&&i.results.length>0){let n=i.results[0].geometry;return{longitude:n.lng,latitude:n.lat}}return null}},Le={name:"current",requiresApiKey:!1,async geocode(){if(!navigator.geolocation)throw new Error("Geolocation not supported");return new Promise((t,o)=>{navigator.geolocation.getCurrentPosition(e=>{let{longitude:i,latitude:n}=e.coords;t({longitude:i,latitude:n})},e=>o(new Error(e.message)))})}};async function Ye(t){let o;try{o=await fetch(t)}catch(i){throw new Error(`CORS error? ${i}. ${t}: `)}if(!o.ok)throw new Error(`${o.statusText}. ${t}: `);let e=await o.json();if(!e)throw new Error(`No data returned. ${t}`);return e}var z={name:"coordinates",requiresApiKey:!1,placeholderLocation:"-122.45, 37.8 or 37\xB048'N, 122\xB027'W",async geocode(t){return xo(t)||null}};function xo(t){t=t.trim();let o=t.split(/[,;]/).map(n=>n.trim());if(o.length<2)return null;let e=At(o[0]),i=At(o[1]);return e===null||i===null?null:Math.abs(e)>90&&Math.abs(i)<=90?{longitude:e,latitude:i}:Math.abs(i)>90&&Math.abs(e)<=90?{longitude:i,latitude:e}:{latitude:e,longitude:i}}function At(t){if(t=t.trim(),t.includes("\xB0")||t.includes("'")||t.includes('"')){let i=ko(t);return isNaN(i)?null:i}let o=1;/[SW]/i.test(t)&&(o=-1),t=t.replace(/[NSEW]/gi,"");let e=parseFloat(t);return isNaN(e)?null:o*e}function ko(t){let o=/(\d+)[°d]\s*(\d+)?['′m]?\s*(\d+(?:\.\d+)?)?[\"″s]?\s*([NSEW])?/i,e=t.match(o);if(!e)return NaN;let i=parseFloat(e[1])||0,n=parseFloat(e[2])||0,r=parseFloat(e[3])||0,d=e[4]||"",a=i+n/60+r/3600;return/[SW]/i.test(d)&&(a=-a),a}var $t="current",ee=class extends je.Widget{constructor(e={}){super(e);this.className="deck-widget-geocoder";this.placement="top-left";this.geocodeHistory=new Se({});this.addressText="";this.geocoder=z;this.setInput=e=>{this.addressText=e};this.handleKeyPress=e=>{e.key==="Enter"&&this.handleSubmit()};this.handleSelect=e=>{this.setInput(e),this.handleSubmit()};this.handleSubmit=()=>{this.geocode(this.addressText)};this.geocode=async e=>{let n=this.props._geolocation&&e===$t?Le:this.geocoder,r=await this.geocodeHistory.geocode(n,this.addressText,this.props.apiKey);r&&this.setViewState(r)};this.viewports={};this.setProps(this.props)}setProps(e){if(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,this.geocoder=Io(this.props),this.geocoder.requiresApiKey&&!this.props.apiKey)throw new Error(`API key is required for the ${this.geocoder.name} geocoder`);super.setProps(e)}onRenderHTML(e){let i=this.props._geolocation?[$t,...this.geocodeHistory.addressHistory]:[...this.geocodeHistory.addressHistory];f(l("div",{className:"deck-widget-geocoder",style:{pointerEvents:"auto",display:"flex",alignItems:"center",flexWrap:"wrap"},children:[l("input",{type:"text",placeholder:this.geocoder.placeholderLocation??"Enter address or location",value:this.geocodeHistory.addressText,onInput:n=>this.setInput(n.target?.value||""),onKeyPress:this.handleKeyPress,style:{flex:"1 1 auto",minWidth:"200px",margin:0,padding:"8px",boxSizing:"border-box"}}),l(We,{menuItems:i,onSelect:this.handleSelect,style:{margin:2,padding:"4px 2px",boxSizing:"border-box"}}),this.geocodeHistory.errorText&&l("div",{className:"error",children:this.geocodeHistory.errorText})]}),e)}setViewState(e){let i=this.props.viewId||e?.id||"default-view",r={...this.viewports[i]||{},...e};this.props.transitionDuration>0&&(r.transitionDuration=this.props.transitionDuration,r.transitionInterpolator="latitude"in r?new Ee.FlyToInterpolator:new Ee.LinearInterpolator),this.deck._onViewStateChange({viewId:i,viewState:r,interactionState:{}})}onViewportChange(e){this.viewports[e.id]=e}};ee.defaultProps={...je.Widget.defaultProps,id:"geocoder",viewId:null,placement:"top-left",label:"Geocoder",transitionDuration:200,geocoder:"coordinates",customGeocoder:z,apiKey:"",_geolocation:!1};function Io(t){switch(t.geocoder){case"google":return Me;case"mapbox":return Te;case"opencage":return Ce;case"coordinates":return z;case"custom":if(!t.customGeocoder)throw new Error("Custom geocoder is not defined");return t.customGeocoder;default:throw new Error(`Unknown geocoder: ${t.geocoder}`)}}var oe=y(P(),1);var te=class extends oe.Widget{constructor(e={}){super(e);this.className="deck-widget-fullscreen";this.placement="top-left";this.fullscreen=!1;this.setProps(this.props)}onAdd(){document.addEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRemove(){document.removeEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}onRenderHTML(e){f(l(W,{onClick:()=>{this.handleClick().catch(i=>oe.log.error(i)())},label:this.fullscreen?this.props.exitLabel:this.props.enterLabel,className:this.fullscreen?"deck-widget-fullscreen-exit":"deck-widget-fullscreen-enter"}),e)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}getContainer(){return this.props.container||this.deck?.getCanvas()?.parentElement}onFullscreenChange(){let e=this.fullscreen,i=document.fullscreenElement===this.getContainer();e!==i&&(this.fullscreen=!this.fullscreen),this.updateHTML()}async handleClick(){this.fullscreen?await this.exitFullscreen():await this.requestFullscreen(),this.updateHTML()}async requestFullscreen(){let e=this.getContainer();e?.requestFullscreen?await e.requestFullscreen({navigationUI:"hide"}):this.togglePseudoFullscreen()}async exitFullscreen(){document.exitFullscreen?await document.exitFullscreen():this.togglePseudoFullscreen()}togglePseudoFullscreen(){this.getContainer()?.classList.toggle("deck-pseudo-fullscreen")}};te.defaultProps={...oe.Widget.defaultProps,id:"fullscreen",placement:"top-left",viewId:null,enterLabel:"Enter Fullscreen",exitLabel:"Exit Fullscreen",container:void 0};var Qe=y(P(),1);var ie=class extends Qe.Widget{constructor(e){super(e);this.className="deck-widget-splitter";this.placement="fill"}setProps(e){super.setProps(e)}onRenderHTML(e){e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.margin="0px",f(l(Wo,{orientation:this.props.orientation,initialSplit:this.props.initialSplit,onChange:this.props.onChange,onDragStart:this.props.onDragStart,onDragEnd:this.props.onDragEnd}),e)}};ie.defaultProps={...Qe.Widget.defaultProps,id:"splitter-widget",viewId1:"",viewId2:"",orientation:"vertical",initialSplit:.5,onChange:()=>{},onDragStart:()=>{},onDragEnd:()=>{}};function Wo({orientation:t,initialSplit:o,onChange:e,onDragStart:i,onDragEnd:n}){let[r,d]=A(o),a=$(!1),p=$(null),c=_=>{a.current=!0,i?.(),document.addEventListener("mousemove",u),document.addEventListener("mouseup",s),_.preventDefault()},u=_=>{if(!a.current||!p.current)return;let I=p.current.getBoundingClientRect(),g;t==="vertical"?g=(_.clientX-I.left)/I.width:g=(_.clientY-I.top)/I.height,g=Math.min(Math.max(g,.05),.95),d(g),e?.(g)},s=_=>{a.current&&(a.current=!1,n?.(),document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",s))},h=t==="vertical"?{position:"absolute",top:0,bottom:0,left:`${r*100}%`,width:"4px",cursor:"col-resize",background:"#ccc",zIndex:10,pointerEvents:"auto",boxShadow:"inset -1px 0 0 white, inset 1px 0 0 white"}:{position:"absolute",left:0,right:0,top:`${r*100}%`,height:"4px",cursor:"row-resize",background:"#ccc",zIndex:10,pointerEvents:"auto",boxShadow:"inset -1px 0 0 white, inset 1px 0 0 white"};return l("div",{ref:p,style:{position:"absolute",top:0,left:0,right:0,bottom:0},children:l("div",{style:h,onMouseDown:c})})}var ot=y(P(),1);function He(t){let[o,e]=A(!1),i=$(null),n=h=>{i.current&&!i.current.contains(h.target)&&e(!1)};Ie(()=>(document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}),[i]);let[r,d]=A(t.initialItem),a=h=>{d(h),e(!1),t.onItemSelected(h)},p=()=>e(!o),c=t.menuItems.find(h=>h.value===r),u=t.label||c?.label||"",s=t.icon||c?.icon;return l("div",{style:{position:"relative",display:"inline-block"},ref:i,children:[l(W,{className:t.className,label:u,onClick:p,children:s}),o&&l("div",{className:"deck-widget-icon-menu",children:l(B,{orientation:"vertical",children:t.menuItems.map(h=>l(O,{label:h.label,onClick:()=>a(h.value),children:h.icon},h.value))})})]})}var ne=class extends ot.Widget{constructor(e={}){super(e);this.className="deck-widget-view-selector";this.placement="top-left";this.handleSelectMode=e=>{this.viewMode=e,this.updateHTML(),this.props.onViewModeChange(e)};this.viewMode=this.props.initialViewMode,this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){f(l(He,{className:"deck-widget-view-selector",menuItems:So.map(i=>({...i,icon:i.icon()})),initialItem:this.props.initialViewMode,onItemSelected:this.handleSelectMode}),e)}};ne.defaultProps={...ot.Widget.defaultProps,id:"view-selector",placement:"top-left",viewId:null,label:"Split View",initialViewMode:"single",onViewModeChange:()=>{}};var et={width:"24px",height:"24px"},tt={single:()=>l("svg",{width:"24",height:"24",style:et,children:l("rect",{x:"4",y:"4",width:"16",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})}),"split-horizontal":()=>l("svg",{width:"24",height:"24",style:et,children:[l("rect",{x:"4",y:"4",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),l("rect",{x:"4",y:"13",width:"16",height:"7",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]}),"split-vertical":()=>l("svg",{width:"24",height:"24",style:et,children:[l("rect",{x:"4",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"}),l("rect",{x:"13",y:"4",width:"7",height:"16",stroke:"var(--button-icon-hover, rgb(24, 24, 26))",fill:"none",strokeWidth:"2"})]})},So=[{value:"single",icon:tt.single,label:"Single View"},{value:"split-horizontal",icon:tt["split-horizontal"],label:"Split Horizontal"},{value:"split-vertical",icon:tt["split-vertical"],label:"Split Vertical"}];var it=y(P(),1);var re=class extends it.Widget{constructor(e){super(e);this.className="deck-widget-info";this.placement="fill";this.setProps(this.props)}setProps(e){this.viewId=e.viewId??this.viewId,super.setProps(e)}onCreateRootElement(){let e=super.onCreateRootElement();return Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute"}).forEach(([n,r])=>e.style.setProperty(n,r)),e}onViewportChange(e){this.viewport=e,this.updateHTML()}onHover(e){if(this.props.mode==="hover"&&this.props.getTooltip){let i=this.props.getTooltip(e,this);this.setProps({visible:i!==null,...i,style:{zIndex:"1",...i?.style}})}}onClick(e){if(this.props.mode==="click"&&this.props.getTooltip){let i=this.props.getTooltip(e,this);return this.setProps({visible:i!==null,...i}),i!==null}return this.props.onClick?.(this,e)||!1}onAdd({deck:e,viewId:i}){this.deck=e,i?this.viewport=e.getViewports().find(n=>n.id===i):this.viewport=e.getViewports()[0]}onRenderHTML(e){if(!this.viewport)return;let[i,n]=this.props.position,[r,d]=this.viewport.project([i,n]),a=this.props.minOffset||0,p=10,c=8,u=16,s=d>this.viewport.height/2,h=this.props.style&&this.props.style.background||"rgba(255,255,255,0.9)",m=this.props.visible?l("div",{className:"popup-container",style:{position:"absolute",left:0,top:0},children:[l("div",{className:"popup-content",style:{background:h,padding:"10px",position:"relative",...this.props.style},children:this.props.text}),l("div",{className:"popup-arrow",style:{position:"absolute",width:"0px",height:"0px"}})]}):null;f(m,e),requestAnimationFrame(()=>{if(!this.props.visible||!e.firstChild||!this.viewport)return;let _=e.firstChild,I=_.querySelector(".popup-content"),g=_.querySelector(".popup-arrow");if(!I||!g)return;let v=I.getBoundingClientRect(),w=v.width,H=v.height,S=r-w/2,M;s?M=d-p-c-H:M=d+p+c,S<a&&(S=a),S+w>this.viewport.width-a&&(S=this.viewport.width-a-w),s?M<a&&(M=a):M+H+c>this.viewport.height-a&&(M=this.viewport.height-a-H-c),_.style.left=`${S}px`,_.style.top=`${M}px`,_.style.transform="";let T=r-S-u/2;T=Math.max(T,0),T=Math.min(T,w-u),s?(g.style.left=`${T}px`,g.style.bottom=`-${c}px`,g.style.top="",g.style.borderLeft=`${u/2}px solid transparent`,g.style.borderRight=`${u/2}px solid transparent`,g.style.borderTop=`${c}px solid ${h}`,g.style.borderBottom=""):(g.style.left=`${T}px`,g.style.top=`-${c}px`,g.style.bottom="",g.style.borderLeft=`${u/2}px solid transparent`,g.style.borderRight=`${u/2}px solid transparent`,g.style.borderBottom=`${c}px solid ${h}`,g.style.borderTop="")})}};re.defaultProps={...it.Widget.defaultProps,id:"info",position:[0,0],text:"",visible:!1,minOffset:0,viewId:null,mode:"hover",getTooltip:void 0,onClick:void 0};var nt=y(P(),1);var Mo={position:"absolute",top:"100%",left:0,background:"white",border:"1px solid #ccc",borderRadius:"4px",marginTop:"var(--menu-gap, 4px)",zIndex:100},To={background:"white",border:"none",padding:"4px",cursor:"pointer",pointerEvents:"auto"},Re=t=>{let{menuItems:o,onItemSelected:e,position:i,style:n}=t,r={...Mo,...n,left:`${i.x}px`,top:`${i.y}px`};return l("div",{style:r,children:o.map(({key:d,label:a})=>l("button",{style:{...To,display:"block"},onClick:p=>e(d),children:a},d))})};var Co=2,Lo=3,se=class extends nt.Widget{constructor(e){super(e);this.className="deck-widget-context-menu";this.placement="fill";this.pickInfo=null;this.pickInfo=null,this.setProps(this.props)}onAdd({deck:e}){let i=document.createElement("div");return i.classList.add("deck-widget","deck-widget-context-menu"),Object.entries({margin:"0px",top:"0px",left:"0px",position:"absolute",pointerEvents:"auto"}).forEach(([r,d])=>i.style.setProperty(r,d)),e.getCanvas()?.addEventListener("click",()=>this.hide()),e.getCanvas()?.addEventListener("contextmenu",r=>this.handleContextMenu(r)),i}onRenderHTML(e){let{visible:i,position:n,menuItems:r}=this.props,d=i&&r.length?l(Re,{menuItems:r,onItemSelected:a=>this.props.onMenuItemSelected(a,this.pickInfo),position:n,style:{pointerEvents:"auto"}}):null;f(d,e)}handleContextMenu(e){if(e&&(e.button===Co||e.which===Lo)){this.pickInfo=this.deck?.pickObject({x:e.clientX,y:e.clientY})||null;let i=this.pickInfo&&this.props.getMenuItems?.(this.pickInfo,this)||[],n=i.length>0;return this.setProps({visible:n,position:{x:e.clientX,y:e.clientY},menuItems:i}),this.updateHTML(),e.preventDefault(),n}return!1}hide(){this.setProps({visible:!1})}};se.defaultProps={...nt.Widget.defaultProps,id:"context",viewId:null,visible:!1,position:{x:0,y:0},getMenuItems:void 0,menuItems:[],onMenuItemSelected:(e,i)=>console.log("Context menu item selected:",e,i)};var rt=y(P(),1);var ae=class extends rt.Widget{constructor(e={}){super(e);this.id="timeline";this.className="deck-widget-timeline";this.placement="bottom-left";this.playing=!1;this.timerId=null;this.handlePlayPause=()=>{this.playing?this.stop():this.start()};this.handleSliderChange=e=>{let i=e.target,n=Number(i.value);this.currentTime=n,this.props.onTimeChange(n),this.updateHTML()};this.tick=()=>{let[e,i]=this.props.timeRange,n=this.currentTime+this.props.step;n>i&&(n=e),this.currentTime=n,this.props.onTimeChange(n),this.updateHTML(),this.playing&&(this.timerId=window.setTimeout(this.tick,this.props.playInterval))};this.currentTime=this.props.initialTime??this.props.timeRange[0],this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onAdd(){this.playing=!1,this.timerId=null}onRemove(){this.stop()}onRenderHTML(e){f(l("div",{style:{display:"flex",alignItems:"center",pointerEvents:"auto"},children:[l(W,{label:this.playing?"Pause":"Play",onClick:this.handlePlayPause,children:l("div",{className:"text",children:this.playing?"\u23F8":"\u25B6"})}),l("input",{type:"range",className:"timeline-slider",min:this.props.timeRange[0],max:this.props.timeRange[1],step:this.props.step,value:this.currentTime,onInput:this.handleSliderChange})]}),e)}start(){this.playing=!0,this.updateHTML(),this.tick()}stop(){this.playing=!1,this.timerId!==null&&(window.clearTimeout(this.timerId),this.timerId=null),this.updateHTML()}};ae.defaultProps={...rt.Widget.defaultProps,id:"timeline",placement:"bottom-left",viewId:null,timeRange:[0,100],step:1,initialTime:void 0,onTimeChange:()=>{},playInterval:1e3};var st=y(P(),1);var le=class extends st.Widget{constructor(e={}){super(e);this.className="deck-widget-screenshot";this.placement="top-left";this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){f(l(W,{className:"deck-widget-camera",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}handleClick(){if(this.props.onCapture){this.props.onCapture(this);return}let e=this.captureScreenToDataURL(this.props.imageFormat);e&&this.downloadDataURL(e,this.props.filename)}captureScreenToDataURL(e){return this.deck?.getCanvas()?.toDataURL(e)}downloadDataURL(e,i){let n=document.createElement("a");n.href=e,n.download=i,n.click()}};le.defaultProps={...st.Widget.defaultProps,id:"screenshot",placement:"top-left",viewId:null,label:"Screenshot",filename:"screenshot.png",imageFormat:"image/png",onCapture:void 0};var N=y(P(),1),at=y(P(),1);var Ut={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"#fff","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--button-text":"rgb(24, 24, 26, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(204, 204, 204)","--menu-gap":"4px"},Bt={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(18, 18, 20, 1)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--button-text":"rgb(215, 214, 229, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(200, 199, 209)","--menu-gap":"4px"},Ve={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(255, 255, 255, 0.6)","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"1px solid rgba(255, 255, 255, 0.6)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--button-text":"rgb(24, 24, 26, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(204, 204, 204)","--menu-gap":"4px"},Ne={"--widget-margin":"12px","--button-size":"28px","--button-corner-radius":"8px","--button-background":"rgba(18, 18, 20, 0.75)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"1px solid rgba(18, 18, 20, 0.75)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--button-text":"rgb(215, 214, 229, 1)","--icon-compass-north-color":"rgb(240, 92, 68)","--icon-compass-south-color":"rgb(200, 199, 209)","--menu-gap":"4px"};var de=class extends at.Widget{constructor(e={}){super(e);this.className="deck-widget-theme";this.placement="top-left";this.themeMode="dark";this.themeMode=this._getInitialThemeMode(),this.setProps(this.props)}setProps(e){let{lightModeTheme:i,darkModeTheme:n}=this.props;switch(this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e),this.themeMode){case"light":e.lightModeTheme&&!(0,N._deepEqual)(e.lightModeTheme,i,1)&&this._setThemeMode("light");break;case"dark":e.darkModeTheme&&!(0,N._deepEqual)(e.darkModeTheme,n,1)&&this._setThemeMode("dark");break;default:N.log.warn(`Invalid theme mode ${this.themeMode}`)()}}onRenderHTML(e){let{lightModeLabel:i,darkModeLabel:n}=this.props;f(l(W,{onClick:this._handleClick.bind(this),label:this.themeMode==="dark"?n:i,className:this.themeMode==="dark"?"deck-widget-moon":"deck-widget-sun"}),e)}onAdd(){this._setThemeMode(this.themeMode)}_handleClick(){let e=this.themeMode==="dark"?"light":"dark";this._setThemeMode(e)}_setThemeMode(e){this.themeMode=e;let i=this.rootElement?.closest(".deck-widget-container");if(i){let n=e==="dark"?this.props.darkModeTheme:this.props.lightModeTheme;(0,N._applyStyles)(i,n);let r=this.themeMode==="dark"?this.props.darkModeLabel:this.props.lightModeLabel;N.log.log(1,`Switched theme to ${r}`,n)(),this.updateHTML()}}_getInitialThemeMode(){let{initialThemeMode:e}=this.props;return e==="auto"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e}};de.defaultProps={...at.Widget.defaultProps,id:"theme",placement:"top-left",viewId:null,lightModeLabel:"Light Mode",lightModeTheme:Ve,darkModeLabel:"Dark Mode",darkModeTheme:Ne,initialThemeMode:"auto"};var lt=y(P(),1);var ce=class extends lt.Widget{constructor(e={}){super(e);this.className="deck-widget-loading";this.placement="top-left";this.loading=!0;this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onRenderHTML(e){f(this.loading&&l(W,{className:"deck-widget-spinner",label:this.props.label,onClick:this.handleClick.bind(this)}),e)}onRedraw({layers:e}){let i=e.some(n=>!n.isLoaded);i!==this.loading&&(this.loading=i,this.updateHTML())}handleClick(){}};ce.defaultProps={...lt.Widget.defaultProps,id:"loading",placement:"top-left",viewId:null,label:"Loading layer data"};var dt=y(P(),1);var pe=class extends dt.Widget{constructor(e={}){super(e);this.className="deck-widget-fps";this.placement="top-left";this._lastFps=-1;this.setProps(this.props)}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId,super.setProps(e)}onAdd({}){this._lastFps=this._getFps(),requestAnimationFrame(()=>this._animate())}onRenderHTML(e){let i=this._getFps();f(l(W,{children:l("div",{className:"text",children:["FPS",l("br",{}),i]})}),e)}_animate(){let e=this._getFps();this._lastFps!==e&&(this._lastFps=e,this.updateHTML()),requestAnimationFrame(()=>this._animate())}_getFps(){return Math.round(this.deck?.metrics.fps??0)}};pe.defaultProps={...dt.Widget.defaultProps,id:"fps",placement:"top-left",viewId:null};var ct=y(P(),1),Kt=y(qt(),1);var Eo="\u25B6",Ho="\u2B07",pt=t=>`${t.name}: ${t.count}`;function Xt(t){return t<1e3?`${t.toFixed(2)}ms`:`${(t/1e3).toFixed(2)}s`}function Ro(t){return`${(t/1e6).toFixed(1)} MB`}var Jt={count:pt,averageTime:t=>`${t.name}: ${Xt(t.getAverageTime())}`,totalTime:t=>`${t.name}: ${Xt(t.time)}`,fps:t=>`${t.name}: ${Math.round(t.getHz())}fps`,memory:t=>`${t.name}: ${Ro(t.count)}`},ue=class extends ct.Widget{constructor(e={}){super(e);this.cl