@signalk/freeboard-sk 3.2.0-beta.1 → 3.2.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ var Ti=Object.create;var Wr=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Ri=Object.getOwnPropertyNames;var wi=Object.getPrototypeOf,Ci=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var ki=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ri(t))!Ci.call(e,i)&&i!==r&&Wr(e,i,{get:()=>t[i],enumerable:!(n=Di(t,i))||n.enumerable});return e};var Br=(e,t,r)=>(r=e!=null?Ti(wi(e)):{},ki(t||!e||!e.__esModule?Wr(r,"default",{value:e,enumerable:!0}):r,e));var _=u(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.timeConversion=p.sexagesimalPattern=p.longitudeKeys=p.latitudeKeys=p.earthRadius=p.distanceConversion=p.areaConversion=p.altitudeKeys=p.RAD_TO_DEG=p.MINLON=p.MINLAT=p.MAXLON=p.MAXLAT=p.DEG_TO_RAD=void 0;var rl=p.sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/,nl=p.earthRadius=6378137,il=p.MINLAT=-90,sl=p.MAXLAT=90,ol=p.MINLON=-180,al=p.MAXLON=180,ul=p.DEG_TO_RAD=Math.PI/180,ll=p.RAD_TO_DEG=180/Math.PI,cl=p.longitudeKeys=["lng","lon","longitude",0],fl=p.latitudeKeys=["lat","latitude",1],dl=p.altitudeKeys=["alt","altitude","elevation","elev",2],ml=p.distanceConversion={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144},pl=p.timeConversion={m:60,h:3600,d:86400},I=p.areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};I.sqm=I.m2;I.sqkm=I.km2;I.sqft=I.ft2;I.sqyd=I.yd2;I.sqin=I.in2});var fe=u(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=void 0;var Fi=(e,t)=>{if(e==null)throw new Error(`'${e}' is no valid coordinate.`);return t.reduce((r,n)=>Object.prototype.hasOwnProperty.call(e,n)&&n!==void 0&&r===void 0?(r=n,n):r,void 0)},hl=Ne.default=Fi});var de=u(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.default=void 0;var Wi=e=>{let t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},vl=je.default=Wi});var me=u(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.default=void 0;var Bi=_(),Hi=e=>Bi.sexagesimalPattern.test(e.toString().trim()),yl=Ke.default=Hi});var pe=u(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.default=void 0;var $i=_(),Gi=e=>{let t=new RegExp($i.sexagesimalPattern).exec(e.toString().trim());if(t===null)throw new Error("Given value is not in sexagesimal format");let r=Number(t[2])/60||0,n=Number(t[4])/3600||0,i=parseFloat(t[1])+r+n;return["S","W"].includes(t[7])?-i:i},Ml=Ue.default=Gi});var Fe=u(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.default=void 0;var tr=_(),rr=zi(fe());function zi(e){return e&&e.__esModule?e:{default:e}}var Zi=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:tr.longitudeKeys,latitude:tr.latitudeKeys,altitude:tr.altitudeKeys},r=(0,rr.default)(e,t.longitude),n=(0,rr.default)(e,t.latitude),i=(0,rr.default)(e,t.altitude);return{latitude:n,longitude:r,...i?{altitude:i}:{}}},Pl=Ve.default=Zi});var ir=u(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.default=void 0;var Xi=nr(de()),Yi=nr(me()),Ji=nr(pe()),nn=_();function nr(e){return e&&e.__esModule?e:{default:e}}var sn=e=>{if((0,Xi.default)(e)){let t=parseFloat(e);return!(t>nn.MAXLAT||t<nn.MINLAT)}return(0,Yi.default)(e)?sn((0,Ji.default)(e)):!1},Al=We.default=sn});var or=u(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var Qi=sr(de()),es=sr(me()),ts=sr(pe()),on=_();function sr(e){return e&&e.__esModule?e:{default:e}}var an=e=>{if((0,Qi.default)(e)){let t=parseFloat(e);return!(t>on.MAXLON||t<on.MINLON)}return(0,es.default)(e)?an((0,ts.default)(e)):!1},Dl=Be.default=an});var ur=u(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.default=void 0;var rs=ar(Fe()),un=ar(ir()),ln=ar(or());function ar(e){return e&&e.__esModule?e:{default:e}}var ns=e=>{let{latitude:t,longitude:r}=(0,rs.default)(e);if(Array.isArray(e)&&e.length>=2)return(0,ln.default)(e[0])&&(0,un.default)(e[1]);if(t===void 0||r===void 0)return!1;let n=e[r],i=e[t];return i===void 0||n===void 0?!1:(0,un.default)(i)&&(0,ln.default)(n)},wl=He.default=ns});var Ge=u($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var is=he(de()),ss=he(me()),os=he(pe()),cn=he(ur()),as=he(Fe());function he(e){return e&&e.__esModule?e:{default:e}}var ge=e=>{if((0,is.default)(e))return Number(e);if((0,ss.default)(e))return(0,os.default)(e);if((0,cn.default)(e)){let t=(0,as.default)(e);return Array.isArray(e)?e.map((r,n)=>[0,1].includes(n)?ge(r):r):{...e,...t.latitude&&{[t.latitude]:ge(e[t.latitude])},...t.longitude&&{[t.longitude]:ge(e[t.longitude])}}}return Array.isArray(e)?e.map(t=>(0,cn.default)(t)?ge(t):t):e},kl=$e.default=ge});var R=u(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var us=_(),ls=fn(fe()),cs=fn(Ge());function fn(e){return e&&e.__esModule?e:{default:e}}var fs=(e,t)=>{let r=(0,ls.default)(e,us.latitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,cs.default)(n)},Ll=ze.default=fs});var w=u(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var ds=_(),ms=dn(fe()),ps=dn(Ge());function dn(e){return e&&e.__esModule?e:{default:e}}var gs=(e,t)=>{let r=(0,ms.default)(e,ds.longitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,ps.default)(n)},Il=Ze.default=gs});var N=u(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var hs=_(),bs=e=>e*hs.DEG_TO_RAD,jl=Xe.default=bs});var G=u(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var vs=_(),xs=e=>e*vs.RAD_TO_DEG,Ul=Ye.default=xs});var pn=u(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var ys=Je(R()),_s=Je(w()),lr=Je(N()),cr=Je(G()),mn=_();function Je(e){return e&&e.__esModule?e:{default:e}}var Ms=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,i=(0,ys.default)(e),s=(0,_s.default)(e),o=t/n,a=(0,lr.default)(r),l=(0,lr.default)(i),y=(0,lr.default)(s),g=Math.asin(Math.sin(l)*Math.cos(o)+Math.cos(l)*Math.sin(o)*Math.cos(a)),h=y+Math.atan2(Math.sin(a)*Math.sin(o)*Math.cos(l),Math.cos(o)-Math.sin(l)*Math.sin(g)),m=(0,cr.default)(h);return(m<mn.MINLON||m>mn.MAXLON)&&(h=(h+3*Math.PI)%(2*Math.PI)-Math.PI,m=(0,cr.default)(h)),{latitude:(0,cr.default)(g),longitude:m}},Fl=Qe.default=Ms});var gn=u(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var Ss=_(),Ps=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=Ss.areaConversion[t];if(r)return e*r;throw new Error("Invalid unit used for area conversion.")},Bl=et.default=Ps});var hn=u(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var Os=_(),As=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=Os.distanceConversion[t];if(r)return e*r;throw new Error("Invalid unit used for distance conversion.")},$l=tt.default=As});var bn=u(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var rt=_(),Ts=function(e){switch(arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh"){case"kmh":return e*rt.timeConversion.h*rt.distanceConversion.km;case"mph":return e*rt.timeConversion.h*rt.distanceConversion.mi;default:return e}},zl=nt.default=Ts});var vn=u(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var Ds=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,r=Math.pow(10,t);return Math.round(e*r)/r},Rs=e=>{let[t,r]=e.toString().split("."),n=Math.abs(Number(t)),i=+("0."+(r||0))*60,s=i.toString().split("."),o=Math.floor(i),a=Ds(+("0."+(s[1]||0))*60).toString(),[l,y="0"]=a.split(".");return n+"\xB0 "+o.toString().padStart(2,"0")+"' "+l.padStart(2,"0")+"."+y.padEnd(1,"0")+'"'},Xl=it.default=Rs});var fr=u(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var ws=e=>e>1?1:e<-1?-1:e,Jl=st.default=ws});var W=u(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var xn=ot(R()),yn=ot(w()),dr=ot(N()),Cs=ot(fr()),ks=_();function ot(e){return e&&e.__esModule?e:{default:e}}var qs=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,dr.default)((0,xn.default)(e)),i=(0,dr.default)((0,xn.default)(t)),s=(0,dr.default)((0,yn.default)(e)-(0,yn.default)(t)),o=Math.acos((0,Cs.default)(Math.sin(i)*Math.sin(n)+Math.cos(i)*Math.cos(n)*Math.cos(s)))*ks.earthRadius;return Math.round(o/r)*r},ec=at.default=qs});var mr=u(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var _n=Ls(W());function Ls(e){return e&&e.__esModule?e:{default:e}}var Es=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_n.default;return r=typeof r=="function"?r:_n.default,t.slice().sort((n,i)=>r(e,n)-r(e,i))},rc=ut.default=Es});var Mn=u(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var Is=Ns(mr());function Ns(e){return e&&e.__esModule?e:{default:e}}var js=(e,t)=>(0,Is.default)(e,t)[0],ic=lt.default=js});var On=u(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var pr=gr(N()),Ks=gr(R()),Sn=gr(w()),Pn=_();function gr(e){return e&&e.__esModule?e:{default:e}}var Us=e=>{let t=0;if(e.length>2){let r,n,i;for(let s=0;s<e.length;s++){s===e.length-2?(r=e.length-2,n=e.length-1,i=0):s===e.length-1?(r=e.length-1,n=0,i=1):(r=s,n=s+1,i=s+2);let o=(0,Sn.default)(e[r]),a=(0,Ks.default)(e[n]),l=(0,Sn.default)(e[i]);t+=((0,pr.default)(l)-(0,pr.default)(o))*Math.sin((0,pr.default)(a))}t=t*Pn.earthRadius*Pn.earthRadius/2}return Math.abs(t)},oc=ct.default=Us});var hr=u(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var Vs=An(R()),Fs=An(w());function An(e){return e&&e.__esModule?e:{default:e}}var Ws=e=>{if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce((t,r)=>{let n=(0,Vs.default)(r),i=(0,Fs.default)(r);return{maxLat:Math.max(n,t.maxLat),minLat:Math.min(n,t.minLat),maxLng:Math.max(i,t.maxLng),minLng:Math.min(i,t.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})},uc=ft.default=Ws});var Tn=u(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});pt.default=void 0;var Bs=mt(R()),Hs=mt(w()),re=mt(N()),dt=mt(G()),be=_();function mt(e){return e&&e.__esModule?e:{default:e}}var $s=(e,t)=>{let r=(0,Bs.default)(e),n=(0,Hs.default)(e),i=(0,re.default)(r),s=(0,re.default)(n),o=t/be.earthRadius,a=i-o,l=i+o,y=(0,re.default)(be.MAXLAT),g=(0,re.default)(be.MINLAT),h=(0,re.default)(be.MAXLON),m=(0,re.default)(be.MINLON),S,v;if(a>g&&l<y){let T=Math.asin(Math.sin(o)/Math.cos(i));S=s-T,S<m&&(S+=Math.PI*2),v=s+T,v>h&&(v-=Math.PI*2)}else a=Math.max(a,g),l=Math.min(l,y),S=m,v=h;return[{latitude:(0,dt.default)(a),longitude:(0,dt.default)(S)},{latitude:(0,dt.default)(l),longitude:(0,dt.default)(v)}]},cc=pt.default=$s});var wn=u(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Gs=gt(R()),zs=gt(w()),Dn=gt(N()),Rn=gt(G());function gt(e){return e&&e.__esModule?e:{default:e}}var Zs=e=>{if(Array.isArray(e)===!1||e.length===0)return!1;let t=e.length,r=e.reduce((o,a)=>{let l=(0,Dn.default)((0,Gs.default)(a)),y=(0,Dn.default)((0,zs.default)(a));return{X:o.X+Math.cos(l)*Math.cos(y),Y:o.Y+Math.cos(l)*Math.sin(y),Z:o.Z+Math.sin(l)}},{X:0,Y:0,Z:0}),n=r.X/t,i=r.Y/t,s=r.Z/t;return{longitude:(0,Rn.default)(Math.atan2(i,n)),latitude:(0,Rn.default)(Math.atan2(s,Math.sqrt(n*n+i*i)))}},dc=ht.default=Zs});var Cn=u(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.default=void 0;var Xs=Ys(hr());function Ys(e){return e&&e.__esModule?e:{default:e}}var Js=e=>{let t=(0,Xs.default)(e),r=t.minLat+(t.maxLat-t.minLat)/2,n=t.minLng+(t.maxLng-t.minLng)/2;return{latitude:parseFloat(r.toFixed(6)),longitude:parseFloat(n.toFixed(6))}},pc=bt.default=Js});var br=u(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.default=void 0;var kn=xt(R()),qn=xt(w()),vt=xt(N()),Qs=xt(G());function xt(e){return e&&e.__esModule?e:{default:e}}var eo=(e,t)=>{let r=(0,vt.default)((0,qn.default)(t))-(0,vt.default)((0,qn.default)(e)),n=Math.log(Math.tan((0,vt.default)((0,kn.default)(t))/2+Math.PI/4)/Math.tan((0,vt.default)((0,kn.default)(e))/2+Math.PI/4));return Math.abs(r)>Math.PI&&(r>0?r=(Math.PI*2-r)*-1:r=Math.PI*2+r),((0,Qs.default)(Math.atan2(r,n))+360)%360},hc=yt.default=eo});var En=u(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});_t.default=void 0;var Ln=to(br());function to(e){return e&&e.__esModule?e:{default:e}}var ro=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ln.default,n=typeof r=="function"?r(e,t):(0,Ln.default)(e,t);if(isNaN(n))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(n/22.5)){case 1:return"NNE";case 2:return"NE";case 3:return"ENE";case 4:return"E";case 5:return"ESE";case 6:return"SE";case 7:return"SSE";case 8:return"S";case 9:return"SSW";case 10:return"SW";case 11:return"WSW";case 12:return"W";case 13:return"WNW";case 14:return"NW";case 15:return"NNW";default:return"N"}},vc=_t.default=ro});var xr=u(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var vr=Nn(W()),In=Nn(fr());function Nn(e){return e&&e.__esModule?e:{default:e}}var no=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,i=(0,vr.default)(t,e,n),s=(0,vr.default)(e,r,n),o=(0,vr.default)(t,r,n),a=Math.acos((0,In.default)((i*i+o*o-s*s)/(2*i*o))),l=Math.acos((0,In.default)((s*s+o*o-i*i)/(2*s*o)));return i===0||s===0?0:o===0||a>Math.PI/2?i:l>Math.PI/2?s:Math.sin(a)*i},yc=Mt.default=no});var Un=u(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=void 0;var jn=St(R()),Kn=St(w()),K=St(N()),io=St(G());function St(e){return e&&e.__esModule?e:{default:e}}var so=(e,t)=>{let r=(0,jn.default)(t),n=(0,Kn.default)(t),i=(0,jn.default)(e),s=(0,Kn.default)(e);return((0,io.default)(Math.atan2(Math.sin((0,K.default)(n)-(0,K.default)(s))*Math.cos((0,K.default)(r)),Math.cos((0,K.default)(i))*Math.sin((0,K.default)(r))-Math.sin((0,K.default)(i))*Math.cos((0,K.default)(r))*Math.cos((0,K.default)(n)-(0,K.default)(s))))+360)%360},Mc=Pt.default=so});var Vn=u(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var oo=ao(W());function ao(e){return e&&e.__esModule?e:{default:e}}var uo=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:oo.default;return e.reduce((r,n)=>(typeof r=="object"&&r.last!==null&&(r.distance+=t(n,r.last)),r.last=n,r),{last:null,distance:0}).distance},Pc=Ot.default=uo});var Hn=u(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var Fn=_r(R()),Wn=_r(w()),yr=_r(N()),Bn=_();function _r(e){return e&&e.__esModule?e:{default:e}}var lo=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,Fn.default)(e),i=(0,Wn.default)(e),s=(0,Fn.default)(t),o=(0,Wn.default)(t),a=6356752314245e-6,l=1/298.257223563,y=(0,yr.default)(o-i),g,h,m,S,v,T,Kr=Math.atan((1-l)*Math.tan((0,yr.default)(parseFloat(n)))),Ur=Math.atan((1-l)*Math.tan((0,yr.default)(parseFloat(s)))),Pe=Math.sin(Kr),Oe=Math.cos(Kr),Ae=Math.sin(Ur),X=Math.cos(Ur),se=y,Vr,Fr=100;do{let Wt=Math.sin(se),Bt=Math.cos(se);if(T=Math.sqrt(X*Wt*(X*Wt)+(Oe*Ae-Pe*X*Bt)*(Oe*Ae-Pe*X*Bt)),T===0)return 0;g=Pe*Ae+Oe*X*Bt,h=Math.atan2(T,g),m=Oe*X*Wt/T,S=1-m*m,v=g-2*Pe*Ae/S,isNaN(v)&&(v=0);let Ht=l/16*S*(4+l*(4-3*S));Vr=se,se=y+(1-Ht)*l*m*(h+Ht*T*(v+Ht*g*(-1+2*v*v)))}while(Math.abs(se-Vr)>1e-12&&--Fr>0);if(Fr===0)return NaN;let F=S*(Bn.earthRadius*Bn.earthRadius-a*a)/(a*a),Pi=1+F/16384*(4096+F*(-768+F*(320-175*F))),Ft=F/1024*(256+F*(-128+F*(74-47*F))),Oi=Ft*T*(v+Ft/4*(g*(-1+2*v*v)-Ft/6*v*(-3+4*T*T)*(-3+4*v*v))),Ai=a*Pi*(h-Oi);return Math.round(Ai/r)*r},Ac=At.default=lo});var $n=u(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var co=e=>{if(/^(NNE|NE|NNW|N)$/.test(e))return"N";if(/^(ENE|E|ESE|SE)$/.test(e))return"E";if(/^(SSE|S|SSW|SW)$/.test(e))return"S";if(/^(WSW|W|WNW|NW)$/.test(e))return"W"},Dc=Tt.default=co});var Gn=u(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var fo=mo(W());function mo(e){return e&&e.__esModule?e:{default:e}}var po=function(e,t){let n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:fo.default)(e,t),i=Number(t.time)-Number(e.time);return n/i*1e3},wc=Dt.default=po});var zn=u(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var Mr=go(W());function go(e){return e&&e.__esModule?e:{default:e}}var ho=(e,t,r)=>(0,Mr.default)(t,e)+(0,Mr.default)(e,r)===(0,Mr.default)(t,r),kc=Rt.default=ho});var Xn=u(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var wt=Zn(R()),C=Zn(w());function Zn(e){return e&&e.__esModule?e:{default:e}}var bo=(e,t)=>{let r=!1,n=t.length;for(let i=-1,s=n-1;++i<n;s=i)((0,C.default)(t[i])<=(0,C.default)(e)&&(0,C.default)(e)<(0,C.default)(t[s])||(0,C.default)(t[s])<=(0,C.default)(e)&&(0,C.default)(e)<(0,C.default)(t[i]))&&(0,wt.default)(e)<((0,wt.default)(t[s])-(0,wt.default)(t[i]))*((0,C.default)(e)-(0,C.default)(t[i]))/((0,C.default)(t[s])-(0,C.default)(t[i]))+(0,wt.default)(t[i])&&(r=!r);return r},Lc=Ct.default=bo});var Yn=u(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var vo=xo(xr());function xo(e){return e&&e.__esModule?e:{default:e}}var yo=(e,t,r,n)=>(0,vo.default)(e,t,r)<n,Ic=kt.default=yo});var Jn=u(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.default=void 0;var _o=Mo(W());function Mo(e){return e&&e.__esModule?e:{default:e}}var So=(e,t,r)=>(0,_o.default)(e,t,.01)<r,jc=qt.default=So});var Qn=u(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.default=void 0;var Po=e=>{if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");return e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", ").map(n=>{let[i,s]=n.split(" ");return{longitude:parseFloat(i),latitude:parseFloat(s)}})},Uc=Lt.default=Po});var ei=u(c=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var Oo={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(c,"computeDestinationPoint",{enumerable:!0,get:function(){return Ao.default}});Object.defineProperty(c,"convertArea",{enumerable:!0,get:function(){return To.default}});Object.defineProperty(c,"convertDistance",{enumerable:!0,get:function(){return Do.default}});Object.defineProperty(c,"convertSpeed",{enumerable:!0,get:function(){return Ro.default}});Object.defineProperty(c,"decimalToSexagesimal",{enumerable:!0,get:function(){return wo.default}});Object.defineProperty(c,"findNearest",{enumerable:!0,get:function(){return Co.default}});Object.defineProperty(c,"getAreaOfPolygon",{enumerable:!0,get:function(){return ko.default}});Object.defineProperty(c,"getBounds",{enumerable:!0,get:function(){return qo.default}});Object.defineProperty(c,"getBoundsOfDistance",{enumerable:!0,get:function(){return Lo.default}});Object.defineProperty(c,"getCenter",{enumerable:!0,get:function(){return Eo.default}});Object.defineProperty(c,"getCenterOfBounds",{enumerable:!0,get:function(){return Io.default}});Object.defineProperty(c,"getCompassDirection",{enumerable:!0,get:function(){return No.default}});Object.defineProperty(c,"getCoordinateKey",{enumerable:!0,get:function(){return jo.default}});Object.defineProperty(c,"getCoordinateKeys",{enumerable:!0,get:function(){return Ko.default}});Object.defineProperty(c,"getDistance",{enumerable:!0,get:function(){return Uo.default}});Object.defineProperty(c,"getDistanceFromLine",{enumerable:!0,get:function(){return Vo.default}});Object.defineProperty(c,"getGreatCircleBearing",{enumerable:!0,get:function(){return Fo.default}});Object.defineProperty(c,"getLatitude",{enumerable:!0,get:function(){return Wo.default}});Object.defineProperty(c,"getLongitude",{enumerable:!0,get:function(){return Bo.default}});Object.defineProperty(c,"getPathLength",{enumerable:!0,get:function(){return Ho.default}});Object.defineProperty(c,"getPreciseDistance",{enumerable:!0,get:function(){return $o.default}});Object.defineProperty(c,"getRhumbLineBearing",{enumerable:!0,get:function(){return Go.default}});Object.defineProperty(c,"getRoughCompassDirection",{enumerable:!0,get:function(){return zo.default}});Object.defineProperty(c,"getSpeed",{enumerable:!0,get:function(){return Zo.default}});Object.defineProperty(c,"isDecimal",{enumerable:!0,get:function(){return Xo.default}});Object.defineProperty(c,"isPointInLine",{enumerable:!0,get:function(){return Yo.default}});Object.defineProperty(c,"isPointInPolygon",{enumerable:!0,get:function(){return Jo.default}});Object.defineProperty(c,"isPointNearLine",{enumerable:!0,get:function(){return Qo.default}});Object.defineProperty(c,"isPointWithinRadius",{enumerable:!0,get:function(){return ea.default}});Object.defineProperty(c,"isSexagesimal",{enumerable:!0,get:function(){return ta.default}});Object.defineProperty(c,"isValidCoordinate",{enumerable:!0,get:function(){return ra.default}});Object.defineProperty(c,"isValidLatitude",{enumerable:!0,get:function(){return na.default}});Object.defineProperty(c,"isValidLongitude",{enumerable:!0,get:function(){return ia.default}});Object.defineProperty(c,"orderByDistance",{enumerable:!0,get:function(){return sa.default}});Object.defineProperty(c,"sexagesimalToDecimal",{enumerable:!0,get:function(){return oa.default}});Object.defineProperty(c,"toDecimal",{enumerable:!0,get:function(){return aa.default}});Object.defineProperty(c,"toDeg",{enumerable:!0,get:function(){return la.default}});Object.defineProperty(c,"toRad",{enumerable:!0,get:function(){return ua.default}});Object.defineProperty(c,"wktToPolygon",{enumerable:!0,get:function(){return ca.default}});var Ao=d(pn()),To=d(gn()),Do=d(hn()),Ro=d(bn()),wo=d(vn()),Co=d(Mn()),ko=d(On()),qo=d(hr()),Lo=d(Tn()),Eo=d(wn()),Io=d(Cn()),No=d(En()),jo=d(fe()),Ko=d(Fe()),Uo=d(W()),Vo=d(xr()),Fo=d(Un()),Wo=d(R()),Bo=d(w()),Ho=d(Vn()),$o=d(Hn()),Go=d(br()),zo=d($n()),Zo=d(Gn()),Xo=d(de()),Yo=d(zn()),Jo=d(Xn()),Qo=d(Yn()),ea=d(Jn()),ta=d(me()),ra=d(ur()),na=d(ir()),ia=d(or()),sa=d(mr()),oa=d(pe()),aa=d(Ge()),ua=d(N()),la=d(G()),ca=d(Qn()),Sr=_();Object.keys(Sr).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(Oo,e)||e in c&&c[e]===Sr[e]||Object.defineProperty(c,e,{enumerable:!0,get:function(){return Sr[e]}})});function d(e){return e&&e.__esModule?e:{default:e}}});var ti=u(Tr=>{"use strict";Tr.__esModule=!0;function Or(e,t){return e*e+t*t}function fa(e,t){return Or(e[0]-t[0],e[1]-t[1])}function da(e,t,r){var n=t[0],i=t[1],s=r[0]-n,o=r[1]-i;if(s!==0||o!==0){var a=((e[0]-n)*s+(e[1]-i)*o)/Or(s,o);a>1?(n=r[0],i=r[1]):a>0&&(n+=s*a,i+=o*a)}return Or(e[0]-n,e[1]-i)}function ma(e,t){for(var r=e[0],n,i=[r],s=1,o=e.length;s<o;s++)n=e[s],fa(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Ar(e,t,r,n,i){for(var s=n,o,a=t+1;a<r;a++){var l=da(e[a],e[t],e[r]);l>s&&(o=a,s=l)}s>n&&(o-t>1&&Ar(e,t,o,n,i),i.push(e[o]),r-o>1&&Ar(e,o,r,n,i))}function pa(e,t){var r=e.length-1,n=[e[0]];return Ar(e,0,r,t,n),n.push(e[r]),n}function ga(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:ma(e,n),e=pa(e,n),e}Tr.SimplifyAP=ga});var ri=u(wr=>{"use strict";wr.__esModule=!0;function Dr(e,t){return e*e+t*t}function ha(e,t){return Dr(e.longitude-t.longitude,e.latitude-t.latitude)}function ba(e,t,r){var n=t.longitude,i=t.latitude,s=r.longitude-n,o=r.latitude-i;if(s!==0||o!==0){var a=((e.longitude-n)*s+(e.latitude-i)*o)/Dr(s,o);a>1?(n=r.longitude,i=r.latitude):a>0&&(n+=s*a,i+=o*a)}return Dr(e.longitude-n,e.latitude-i)}function va(e,t){for(var r=e[0],n,i=[r],s=1,o=e.length;s<o;s++)n=e[s],ha(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Rr(e,t,r,n,i){for(var s=n,o,a=t+1;a<r;a++){var l=ba(e[a],e[t],e[r]);l>s&&(o=a,s=l)}s>n&&(o-t>1&&Rr(e,t,o,n,i),i.push(e[o]),r-o>1&&Rr(e,o,r,n,i))}function xa(e,t){var r=e.length-1,n=[e[0]];return Rr(e,0,r,t,n),n.push(e[r]),n}function ya(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:va(e,n),e=xa(e,n),e}wr.SimplifyLL=ya});var ni=u(qr=>{"use strict";qr.__esModule=!0;function Cr(e,t){return e*e+t*t}function _a(e,t){return Cr(e.x-t.x,e.y-t.y)}function Ma(e,t,r){var n=t.x,i=t.y,s=r.x-n,o=r.y-i;if(s!==0||o!==0){var a=((e.x-n)*s+(e.y-i)*o)/Cr(s,o);a>1?(n=r.x,i=r.y):a>0&&(n+=s*a,i+=o*a)}return Cr(e.x-n,e.y-i)}function Sa(e,t){for(var r=e[0],n,i=[r],s=1,o=e.length;s<o;s++)n=e[s],_a(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function kr(e,t,r,n,i){for(var s=n,o,a=t+1;a<r;a++){var l=Ma(e[a],e[t],e[r]);l>s&&(o=a,s=l)}s>n&&(o-t>1&&kr(e,t,o,n,i),i.push(e[o]),r-o>1&&kr(e,o,r,n,i))}function Pa(e,t){var r=e.length-1,n=[e[0]];return kr(e,0,r,t,n),n.push(e[r]),n}function Oa(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:Sa(e,n),e=Pa(e,n),e}qr.Simplify=Oa});var ii=u(ve=>{"use strict";ve.__esModule=!0;var Aa=ti();ve.SimplifyAP=Aa.SimplifyAP;var Ta=ri();ve.SimplifyLL=Ta.SimplifyLL;var Da=ni();ve.Simplify=Da.Simplify});function D(e){return typeof e=="function"}function Te(e){let r=e(n=>{Error.call(n),n.stack=new Error().stack});return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var De=Te(e=>function(r){e(this),this.message=r?`${r.length} errors occurred during unsubscription:
2
+ ${r.map((n,i)=>`${i+1}) ${n.toString()}`).join(`
3
+ `)}`:"",this.name="UnsubscriptionError",this.errors=r});function oe(e,t){if(e){let r=e.indexOf(t);0<=r&&e.splice(r,1)}}var L=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:r}=this;if(r)if(this._parentage=null,Array.isArray(r))for(let s of r)s.remove(this);else r.remove(this);let{initialTeardown:n}=this;if(D(n))try{n()}catch(s){t=s instanceof De?s.errors:[s]}let{_finalizers:i}=this;if(i){this._finalizers=null;for(let s of i)try{Hr(s)}catch(o){t=t??[],o instanceof De?t=[...t,...o.errors]:t.push(o)}}if(t)throw new De(t)}}add(t){var r;if(t&&t!==this)if(this.closed)Hr(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}}_hasParent(t){let{_parentage:r}=this;return r===t||Array.isArray(r)&&r.includes(t)}_addParent(t){let{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t}_removeParent(t){let{_parentage:r}=this;r===t?this._parentage=null:Array.isArray(r)&&oe(r,t)}remove(t){let{_finalizers:r}=this;r&&oe(r,t),t instanceof e&&t._removeParent(this)}};L.EMPTY=(()=>{let e=new L;return e.closed=!0,e})();var $t=L.EMPTY;function Re(e){return e instanceof L||e&&"closed"in e&&D(e.remove)&&D(e.add)&&D(e.unsubscribe)}function Hr(e){D(e)?e():e.unsubscribe()}var k={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Y={setTimeout(e,t,...r){let{delegate:n}=Y;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){let{delegate:t}=Y;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function $r(e){Y.setTimeout(()=>{let{onUnhandledError:t}=k;if(t)t(e);else throw e})}function Gt(){}var Gr=zt("C",void 0,void 0);function zr(e){return zt("E",void 0,e)}function Zr(e){return zt("N",e,void 0)}function zt(e,t,r){return{kind:e,value:t,error:r}}var B=null;function J(e){if(k.useDeprecatedSynchronousErrorHandling){let t=!B;if(t&&(B={errorThrown:!1,error:null}),e(),t){let{errorThrown:r,error:n}=B;if(B=null,r)throw n}}else e()}function Xr(e){k.useDeprecatedSynchronousErrorHandling&&B&&(B.errorThrown=!0,B.error=e)}var ae=class extends L{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Re(t)&&t.add(this)):this.destination=Ei}static create(t,r,n){return new Q(t,r,n)}next(t){this.isStopped?Xt(Zr(t),this):this._next(t)}error(t){this.isStopped?Xt(zr(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Xt(Gr,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},qi=Function.prototype.bind;function Zt(e,t){return qi.call(e,t)}var Yt=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:r}=this;if(r.next)try{r.next(t)}catch(n){we(n)}}error(t){let{partialObserver:r}=this;if(r.error)try{r.error(t)}catch(n){we(n)}else we(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(r){we(r)}}},Q=class extends ae{constructor(t,r,n){super();let i;if(D(t)||!t)i={next:t??void 0,error:r??void 0,complete:n??void 0};else{let s;this&&k.useDeprecatedNextContext?(s=Object.create(t),s.unsubscribe=()=>this.unsubscribe(),i={next:t.next&&Zt(t.next,s),error:t.error&&Zt(t.error,s),complete:t.complete&&Zt(t.complete,s)}):i=t}this.destination=new Yt(i)}};function we(e){k.useDeprecatedSynchronousErrorHandling?Xr(e):$r(e)}function Li(e){throw e}function Xt(e,t){let{onStoppedNotification:r}=k;r&&Y.setTimeout(()=>r(e,t))}var Ei={closed:!0,next:Gt,error:Li,complete:Gt};var Yr=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Jr(e){return e}function Qr(e){return e.length===0?Jr:e.length===1?e[0]:function(r){return e.reduce((n,i)=>i(n),r)}}var H=class e{constructor(t){t&&(this._subscribe=t)}lift(t){let r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,n){let i=Ni(t)?t:new Q(t,r,n);return J(()=>{let{operator:s,source:o}=this;i.add(s?s.call(i,o):o?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return r=en(r),new r((n,i)=>{let s=new Q({next:o=>{try{t(o)}catch(a){i(a),s.unsubscribe()}},error:i,complete:n});this.subscribe(s)})}_subscribe(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)}[Yr](){return this}pipe(...t){return Qr(t)(this)}toPromise(t){return t=en(t),new t((r,n)=>{let i;this.subscribe(s=>i=s,s=>n(s),()=>r(i))})}};H.create=e=>new H(e);function en(e){var t;return(t=e??k.Promise)!==null&&t!==void 0?t:Promise}function Ii(e){return e&&D(e.next)&&D(e.error)&&D(e.complete)}function Ni(e){return e&&e instanceof ae||Ii(e)&&Re(e)}var tn=Te(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var E=class extends H{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){let r=new Ce(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new tn}next(t){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(t)}})}error(t){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;let{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){let{hasError:r,isStopped:n,observers:i}=this;return r||n?$t:(this.currentObservers=null,i.push(t),new L(()=>{this.currentObservers=null,oe(i,t)}))}_checkFinalizedStatuses(t){let{hasError:r,thrownError:n,isStopped:i}=this;r?t.error(n):i&&t.complete()}asObservable(){let t=new H;return t.source=this,t}};E.create=(e,t)=>new Ce(e,t);var Ce=class extends E{constructor(t,r){super(),this.destination=t,this.source=r}next(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.next)===null||n===void 0||n.call(r,t)}error(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.error)===null||n===void 0||n.call(r,t)}complete(){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||r===void 0||r.call(t)}_subscribe(t){var r,n;return(n=(r=this.source)===null||r===void 0?void 0:r.subscribe(t))!==null&&n!==void 0?n:$t}};var P=[];for(let e=0;e<256;++e)P.push((e+256).toString(16).slice(1));function rn(e,t=0){return(P[e[t+0]]+P[e[t+1]]+P[e[t+2]]+P[e[t+3]]+"-"+P[e[t+4]]+P[e[t+5]]+"-"+P[e[t+6]]+P[e[t+7]]+"-"+P[e[t+8]]+P[e[t+9]]+"-"+P[e[t+10]]+P[e[t+11]]+P[e[t+12]]+P[e[t+13]]+P[e[t+14]]+P[e[t+15]]).toLowerCase()}var ji=new Uint8Array(16);function Jt(){return crypto.getRandomValues(ji)}function Ki(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():Ui(e,t,r)}function Ui(e,t,r){e=e||{};let n=e.random??e.rng?.()??Jt();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)t[r+i]=n[i];return t}return rn(n)}var Qt=Ki;var ke=class{_connect;_close;_error;_message;ws;_filter="";_wsTimeout=2e4;_token="";_playbackMode=!1;onConnect;onClose;onError;onMessage;version=1;endpoint="";selfId="";_source=null;set source(t){this._source?this._source.label=t:this._source={label:t}}set authToken(t){this._token=t}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(t){this._wsTimeout=t<3e3?3e3:t>6e4?6e4:t}get isOpen(){return!!(this.ws&&this.ws.readyState!==1&&this.ws.readyState!==3)}get filter(){return this._filter}set filter(t){t&&t.indexOf("self")!==-1?this._filter=this.selfId?this.selfId:"":this._filter=t}get playbackMode(){return this._playbackMode}constructor(){this._connect=new E,this.onConnect=this._connect.asObservable(),this._close=new E,this.onClose=this._close.asObservable(),this._error=new E,this.onError=this._error.asObservable(),this._message=new E,this.onMessage=this._message.asObservable()}close(){this.ws&&(this.ws.close(),this.ws=null)}open(t,r,n){if(t=t||this.endpoint,!t)return;let i=t.indexOf("?")===-1?"?":"&";r&&(t+=`${i}subscribe=${r}`),(this._token||n)&&(t+=`${r?"&":"?"}token=${this._token||n}`),this.close(),this.ws=new WebSocket(t),setTimeout(()=>{this.ws&&this.ws.readyState!==1&&this.ws.readyState!==3&&(console.warn(`Connection watchdog expired (${this._wsTimeout/1e3} sec): ${this.ws.readyState}... aborting connection...`),this.close())},this._wsTimeout),this.ws.onopen=s=>{this._connect.next(s)},this.ws.onclose=s=>{this._close.next(s)},this.ws.onerror=s=>{this._error.next(s)},this.ws.onmessage=s=>{this.parseOnMessage(s)}}parseOnMessage(t){let r;if(typeof t.data=="string")try{r=JSON.parse(t.data)}catch{return}this.isHello(r)?(this.selfId=r.self,this._playbackMode=typeof r.startTime<"u",this._message.next(r)):this.isResponse(r)?(typeof r.login<"u"&&typeof r.login.token<"u"&&(this._token=r.login.token),this._message.next(r)):this._filter&&this.isDelta(r)?r.context===this._filter&&this._message.next(r):this._message.next(r)}sendRequest(t){if(typeof t!="object")return"";let r=ee.request();return typeof t.login>"u"&&this._token&&(r.token=this._token),Object.keys(t).forEach(i=>{r[i]=t[i]}),this.send(r),r.requestId}put(t,r,n){let i={context:t==="self"?"vessels.self":t,put:{path:r,value:n}};return this.sendRequest(i)}login(t,r){let n={login:{username:t,password:r}};return this.sendRequest(n)}send(t){this.ws&&this.ws.send(typeof t=="object"?JSON.stringify(t):t)}sendUpdate(t="self",r,n){let i=ee.updates();this._token&&(i.token=this._token),i.context=t==="self"?"vessels.self":t,this._token&&(i.token=this._token);let s=[];typeof r=="string"&&s.push({path:r,value:n}),typeof r=="object"&&Array.isArray(r)&&(s=r);let o={timestamp:new Date().toISOString(),values:s};this._source&&(o.source=this._source),i.updates.push(o),this.send(i)}subscribe(t="*",r="*",n){let i=ee.subscribe();if(this._token&&(i.token=this._token),i.context=t==="self"?"vessels.self":t,this._token&&(i.token=this._token),typeof r=="object"&&Array.isArray(r)&&(i.subscribe=r),typeof r=="string"){let s={path:r};n&&typeof n=="object"&&(n.period&&(s.period=n.period),n.minPeriod&&(s.minPeriod=n.minPeriod),n.format&&(n.format==="delta"||n.format==="full")&&(s.format=n.format),n.policy&&(n.policy==="instant"||n.policy==="ideal"||n.policy==="fixed")&&(s.policy=n.policy)),i.subscribe.push(s)}this.send(i)}unsubscribe(t="*",r="*"){let n=ee.unsubscribe();this._token&&(n.token=this._token),n.context=t==="self"?"vessels.self":t,this._token&&(n.token=this._token),typeof r=="object"&&Array.isArray(r)&&(n.unsubscribe=r),typeof r=="string"&&n.unsubscribe.push({path:r}),this.send(n)}raiseAlarm(t="*",r,n){let i;typeof r=="string"?i=r.indexOf("notifications.")===-1?`notifications.${r}`:r:i=r,this.put(t,i,n.value)}clearAlarm(t="*",r){let n=r.indexOf("notifications.")===-1?`notifications.${r}`:r;this.put(t,n,null)}isSelf(t){return t.context===this.selfId}isDelta(t){return typeof t.context<"u"}isHello(t){return typeof t.version<"u"&&typeof t.self<"u"}isResponse(t){return typeof t.requestId<"u"}},ee=class{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:Qt()}}},qe=class{_state;_method=[];_message="";constructor(t,r,n,i){this._message=typeof t<"u"?t:"",this._state=typeof r<"u"?r:"alarm",n&&this._method.push("visual"),i&&this._method.push("sound")}get value(){return{message:this._message,state:this._state,method:this._method}}};var te=class{id;name;mmsi;position=[0,0];positionReceived=!1;positionTimestamp="";positionUpdatedAt=0;state;type={id:-1,name:""};properties={};lastUpdated=new Date;callsignVhf;callsignHf;orientation=0;virtual},ue=class extends te{anchor={maxRadius:null,radius:null,position:null};autopilot={state:null,mode:null,target:null,enabled:!1,default:null,availableActions:[]};buddy=!1;closestApproach={distance:null,timeTo:null};cog;cogTrue=null;cogMagnetic=null;courseApi={arrivalCircle:0,activeRoute:{},nextPoint:{},previousPoint:{}};courseCalcs={};distanceToSelf;environment={mode:null,sun:null};heading;headingTrue=null;headingMagnetic=null;headingTrueUpdatedAt=0;headingMagneticUpdatedAt=0;performance={beatAngle:null,gybeAngle:null};radars={};registrations={};resourceUpdates=[];sog;track=[];vectors={cog:[]};wind={direction:null,mwd:null,twd:null,tws:null,speedTrue:null,sog:null,awa:null,aws:null};design={airHeight:null,beam:null,draft:{current:null,maximum:null},length:null};destination={name:null,eta:null};flag;port},Le=class extends te{constructor(){super()}},Ee=class extends te{sog=0;track=[];constructor(){super()}},le=class extends te{constructor(){super()}},Ie=class extends le{twd;tws;temperature;constructor(){super()}};var er={K:{C:e=>e-273.15,F:e=>(e-273.15)*9/5+32},rad:{degree:e=>e*180/Math.PI},deg:{radian:e=>e*.0174532925199433},ratio:{percent:e=>e*100},"m/s":{kn:e=>e*1.94384,"km/h":e=>e*3.6,mph:e=>e*2.2369362920544025,Bf:e=>e/.836^.6666666666666666,fps:e=>e*3.280839895013124},"rad/s":{"deg/s":e=>e*57.2958,rpm:e=>e*9.549296585513723},Hz:{rpm:e=>e*60},m:{fathom:e=>e*.5467468562055768,league:e=>e*.0002071251035625518,kilometer:e=>e*.001,mile:e=>e*.000621371192237334,"naut-mile":e=>e*.0005399568034557236,foot:e=>e*3.280839895013124,yard:e=>e*1.0936132983377078},s:{hour:e=>e*.0002777777777777778,minute:e=>e*.016666666666666666,day:e=>e*11574074074074073e-21,year:e=>e*3168876461541279e-23},foot:{m:e=>e/3.280839895013124}},ce={degree:{symbol:"\xBA",name:"Degrees"},radian:{symbol:"rad",name:"Radians"},percent:{symbol:"%",name:"Percent"},kilometer:{symbol:"km",name:"Kilometer"},"naut-mile":{symbol:"nmi",name:"Nautical Mile"},foot:{symbol:"ft",name:"Feet"},yard:{symbol:"yd",name:"Yard"},fathom:{symbol:"fm",name:"Fathom"},hour:{symbol:"hr",name:"Hour"},minute:{symbol:"min",name:"Minute"},F:{symbol:"\xBAF",name:"Fahrenheit"},C:{symbol:"\xBAC",name:"Celcius"}},$=class{static transform(t,r,n){if(!Number.isFinite(t))return null;if(r===n)return t;try{return er[r][n](t)}catch{throw new Error("Transformation not found!")}}static setSymbol(t,r){t in ce&&(ce[t].symbol=r??ce[t].symbol)}static getSymbol(t){return t in ce?ce[t].symbol:t}static degreesToRadians(t){return er.deg.radian(t)}static radiansToDegrees(t=0){return er.rad.degree(t)}static nauticalMilesToKm(t=0){return t*1.852}static angleToDirection(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r+t;return i>n?i-n:i<0?n+i:i}static directionToAngle(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r-t,s;if(i>0)s=i>Math.PI?n-i:0-i;else if(i<0){let o=Math.abs(i);s=o>Math.PI?o-n:o}else s=i;return s}};var A=Br(ei()),j=class e{static R=6371e3;static rhumbDestination(t,r,n){let i=e.R,s=n/i,o=t[1]*Math.PI/180,a=t[0]*Math.PI/180,l=r,y=s*Math.cos(l),g=o+y,h=s,m=89*Math.PI/180;g>m&&o<m?(h=s*(m-o)/y,g=m):g<-m&&o>-m&&(h=s*(-m-o)/y,g=-m);let S=Math.log(Math.tan(Math.PI/4+g/2)/Math.tan(Math.PI/4+o/2)),v=Math.abs(S)>1e-12?(g-o)/S:Math.cos(o),T=h*Math.sin(l)/v;return[(a+T)*180/Math.PI,g*180/Math.PI]}static destCoordinate(t,r,n){let i=(0,A.computeDestinationPoint)(t,n,$.radiansToDegrees(r));return[i.longitude,i.latitude]}static distanceTo(t,r){return(0,A.getDistance)(t,r)}static routeLength(t){return(0,A.getPathLength)(t)}static routeLegs(t,r){if(t.length<2)return[];let n=[];r?n.push({bearing:(0,A.getGreatCircleBearing)(r,t[0]),distance:e.distanceTo(r,t[0])}):n.push({bearing:0,distance:0});for(let i=1;i<t.length;++i){let s={bearing:(0,A.getGreatCircleBearing)(t[i-1],t[i]),distance:e.distanceTo(t[i-1],t[i])};n.push(s)}return n}static closestForwardPoint(t,r,n){if(t.length<2||!r)return-1;let i={index:-1,distance:-1};for(let s=0;s<t.length;++s){let o=(0,A.getGreatCircleBearing)(r,t[s]),a=Pr.difference(n,o);if(a>-90&&a<90){let l=e.distanceTo(r,t[s]);(i.distance===-1||l<i.distance)&&(i.distance=l,i.index=s)}}return i.index}static centreOfPolygon(t){let r=(0,A.getCenter)(t);return[r.longitude,r.latitude]}static inDLCrossingZone(t,r=170){return Math.abs(t[0])>=r}static inBounds(t,r){return(0,A.isPointInPolygon)(t,[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]],[r[0],r[1]]])}static calcMapifiedExtent(t,r){let i=111111*Math.cos($.degreesToRadians(t[1])),s=[0,0,0,0];return s[1]=t[1]+(0-Math.abs(r))/111111,s[3]=t[1]+Math.abs(r)/111111,s[0]=t[0]+(0-Math.abs(r))/i,s[2]=t[0]+Math.abs(r)/i,s}static normaliseCoords(t){if(!Array.isArray(t))return[0,0];if(typeof t[0]=="number"){if(t[0]>180)for(;t[0]>180;)t[0]=t[0]-360;else if(t[0]<-180)for(;t[0]<-180;)t[0]=360+t[0];return t}else if(Array.isArray(t[0]))return t.forEach(r=>this.normaliseCoords(r)),t}},Pr=class e{static difference(t,r){let n=360-r,i=t+n,s=e.normalise(i);return s<180?0-s:360-s}static add(t,r){return e.normalise(t+r)}static normalise(t){return t<0?t+360:t>=360?t-360:t}};var Et=class{action="notification";playback=!1;result=null;self=null;timestamp=new Date().toISOString();sourceRef},z=class{action;playback=!1;result=null;timestamp;self=null;watchDogAlarm;constructor(){this.action="update"}},It=class extends z{constructor(){super(),this.action="resource"}},Nt=class extends z{constructor(){super(),this.action="radar"}},jt=class extends z{constructor(){super(),this.action="trail"}};var mi=Br(ii());var oi="auto",si=1e4,Ra=.2572,ai=new Set(["navigation.headingTrue","navigation.headingMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.speedOverGround"]);function ui(e){let t=Date.now();if(e.headingTrue!==null&&t-e.headingTrueUpdatedAt<=si){e.orientation=e.headingTrue;return}if(e.headingMagnetic!==null&&t-e.headingMagneticUpdatedAt<=si){e.orientation=e.headingMagnetic;return}let r=e.cogTrue??e.cogMagnetic;typeof r=="number"&&(e.sog??0)>=Ra&&(e.orientation=r)}var wa=["environment.wind.speedTrue","environment.wind.speedOverGround","environment.wind.angleTrueGround","environment.wind.angleTrueWater","environment.wind.directionTrue","environment.wind.directionMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"],b={active:!1,maxMsgIntervals:18,intervalCount:0,msgCount:0,alarm:!1},f,M,pi,Me=[],Ut=[],Lr=!1,Nr,Er=!1,x={signalk:{},aisState:[]},gi=[0,0,0,0],hi=60,xe=0,O,ie={},Z=500,q=!1,bi,U={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},Ir={selfLines:{cog:{length:10}},aisCogLine:10},ye={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},V,vi,ne="freeboard-sk";function Ca(){f={self:new ue,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},f.self.positionReceived=!1,xi()}function xi(){O={updated:{},stale:{},expired:{}}}function Kt({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:q,result:t.target.readyState}),b.msgCount=0,b.intervalCount=0,b.alarm=!1,b.active=!0;break;case"onClose":yi(!1),li();break;case"onError":postMessage({action:"error",playback:q,result:"Connection error!"}),li();break;case"onMessage":b.msgCount++,Ia(t);break}}function li(){b.msgCount=0,b.intervalCount=0,b.active=!0,b.alarm=!0,Vt(!0)}addEventListener("message",({data:e})=>{ka(e)});function ka(e){if(e.cmd)switch(e.cmd){case"open":ci(e.options),La(e.options);break;case"close":yi(!0);break;case"subscribe":M.subscribe(e.options.context,e.options.path);break;case"settings":ci(e.options);break;case"alarm":Ea(e.options);break;case"vessel":if(e.options){let t;e.options.context==="self"?t=f.self:t=f.aisTargets.get(e.options.context),t&&e.options.name&&(t.name=e.options.name)}break;case"auth":e.options&&typeof e.options.token<"u"&&(pi=e.options.token);break;case"trail":e.options&&(ye.trailDuration=e.options.trailDuration??24,e.options.trailResolution&&(ye.trailResolution.lastHour=e.options.trailResolution.lastHour??"5s",ye.trailResolution.next23=e.options.trailResolution.next23??"1m",ye.trailResolution.beyond24=e.options.trailResolution.beyond24??"5m")),qa(ye);break}}function ci(e={}){e.interval&&typeof e.interval=="number"&&(Z=e.interval,Si(),Mi(),hi=1/(Z/1e3)*60),q=!!e.playback,e.config&&(typeof e.config.units.preferredPaths<"u"&&(ie=e.config.units.preferredPaths),e.config.vessels.aisMaxAge&&typeof e.config.vessels.aisMaxAge=="number"&&(U.maxAge=e.config.vessels.aisMaxAge),e.config.vessels.aisStaleAge&&typeof e.config.vessels.aisStaleAge=="number"&&(U.staleAge=e.config.vessels.aisStaleAge),typeof e.config.signalk.maxRadius=="number"&&(x.signalk=e.config.signalk),typeof e.config.selections.aisState<"u"&&Array.isArray(e.config.selections.aisState)&&(x.aisState=e.config.selections.aisState),Ir=e.config.vessels)}function yi(e=!1){Si(),Me.forEach(t=>t.unsubscribe()),M&&e&&M.close(),M=null,postMessage({action:"close",result:e,playback:q})}function Se(e){return fetch(e).then(t=>t.json())}function _i(){let e=x&&x.signalk&&x.signalk.maxRadius?`?radius=${x.signalk.maxRadius}`:"?radius=10000";Se(Nr+"/tracks"+e).then(t=>{Er=!0,Object.entries(t).forEach(r=>{if(f.aisTargets.has(r[0])){let n=f.aisTargets.get(r[0]);n.track=r[1].coordinates,jr(n)}})}).catch(()=>{Er=!1})}function qa(e){let t=Nr+"/self/track?",r=[],n=5e-4,i=!0;e.trailDuration>24&&(r.push(Se(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}&timespanOffset=24`)),r.push(Se(`${t}timespan=23h&resolution=${e.trailResolution.next23}&timespanOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&r.push(Se(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}&timespanOffset=1`)),r.push(Se(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let s=[],o=new jt;o.playback=q,Promise.all(r).then(a=>{let l=0,y=r.length-1,g=60;a.forEach(h=>{if(h.type&&h.type==="MultiLineString"&&h.coordinates&&Array.isArray(h.coordinates))if(l!==y){let m=[];for(h.coordinates.forEach(S=>{m=m.concat(S)}),m=(0,mi.SimplifyAP)(m,n,i);m.length>g;){let S=m.slice(0,g);s.push(S),m=m.slice(g-1),m[0]=[m[0][0]+5e-9,m[0][1]+5e-9]}m.length!==0&&s.push(m)}else s=s.concat(h.coordinates);l++}),o.result=s,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function La(e){if(M)return;if(!e.url){postMessage({action:"error",result:"Valid options not provided!"});return}let t=e.url.split("/");if(t.pop(),t.push("api"),t[0]=t[0]==="wss:"?"https:":"http:",Nr=t.join("/"),Ca(),M=new ke,Me.push(M.onConnect.subscribe(r=>Kt({action:"onConnect",msg:r}))),Me.push(M.onClose.subscribe(r=>Kt({action:"onClose",msg:r}))),Me.push(M.onError.subscribe(r=>Kt({action:"onError",msg:r}))),Me.push(M.onMessage.subscribe(r=>Kt({action:"onMessage",msg:r}))),M.authToken=pi,e.playback){let r=e.playbackOptions.startTime?`?startTime=${e.playbackOptions.startTime}`:null,n=e.playbackOptions.playbackRate?`playbackRate=${e.playbackOptions.playbackRate}`:null;n=n?r?"&"+n:"?"+n:null;let i=`${e.url}${r||""}${n||""}`;M.open(i,e.playbackOptions.subscribe,e.token)}else M.open(e.url,e.subscribe,e.token),_i()}function Ea(e){let t=e.type.indexOf("notifications.")===-1?`notifications.${e.type}`:e.type;e.raise?M.raiseAlarm("self",t,new qe(e.message,e.state,!0,!0)):M.clearAlarm("self",t)}function Ia(e){M.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:q}),Z&&Mi()):M.isDelta(e)?(Lr=!0,e.updates.forEach(t=>{!("values"in t)||!t.values||(V=t.$source,vi=t.timestamp,t.values.forEach(r=>{if(bi=t.timestamp,!!e.context)switch(e.context.split(".")[0]){case"shore":case"atons":x?.signalk.atons&&Va(e.context,r),_e(e.context,f.atons,x?.signalk.atons);break;case"sar":x?.signalk.sar&&Fa(e.context,r),_e(e.context,f.sar,x?.signalk.sar);break;case"aircraft":x?.signalk.aircraft&&Ba(e.context,r),_e(e.context,f.aircraft,x?.signalk.aircraft);break;case"meteo":x?.signalk.meteo&&(Wa(e.context,r),di(r)),_e(e.context,f.meteo,x?.signalk.meteo);break;case"vessels":if(M.isSelf(e))f.self.id||(f.self.id=e.context),fi(f.self,r,!0),di(r);else{if(x?.signalk.vessels){let n=Na(e.context);fi(n,r)}_e(e.context,f.aisTargets,x?.signalk.vessels,x?.aisState)}break}}))}),Vt()):M.isResponse(e)&&postMessage({action:"response",result:e})}function _e(e,t,r=!0,n=[]){if(r){let i=t.get(e);i&&n.includes(i?.state)&&(O.expired[e]=!0,i=null),i&&x.signalk.maxRadius?i.positionReceived&&j.inBounds(i.position,gi)?O.updated[e]=!0:(t.delete(e),O.expired[e]=!0):O.updated[e]=!0}else t.size!==0&&(t.forEach((i,s)=>{O.expired[s]=!0}),t.clear())}function Vt(e=!1){if(!Z||e){let t=new z;t.watchDogAlarm=b.alarm,t.playback=q,f.aisStatus.updated=Object.keys(O.updated),f.aisStatus.stale=Object.keys(O.stale),f.aisStatus.expired=Object.keys(O.expired),t.result=f,t.timestamp=q?bi:f.self.lastUpdated.toISOString(),postMessage(t),xi(),f.self.resourceUpdates=[],Ua(),xe===0&&f.self.positionReceived&&x?.signalk.maxRadius&&(gi=j.calcMapifiedExtent(f.self.position,x.signalk.maxRadius),xe++),xe=xe>=hi?0:xe+1}}function Mi(){Z&&typeof Z=="number"&&Ut.push(setInterval(()=>{b.active&&!b.msgCount?(b.intervalCount=b.intervalCount+1,b.intervalCount>=b.maxMsgIntervals&&(b.intervalCount=0,b.alarm=!0,Vt(!0))):(b.intervalCount=0,b.msgCount=0,b.alarm=!1),Lr&&(Vt(!0),Lr=!1)},Z)),Ut.push(setInterval(()=>{Er&&_i()},6e4))}function Si(){Ut.forEach(e=>clearInterval(e)),Ut=[]}function Na(e){if(!f.aisTargets.has(e)){let t=new ue;t.id=e,t.position=null,f.aisTargets.set(e,t)}return f.aisTargets.get(e)}function fi(e,t,r=!1){let n=t.value;if(r){if(e.lastUpdated=new Date,t.path.startsWith("resources."))e.resourceUpdates.push(t),Ka(t);else if(t.path.startsWith("radars"))ja(t);else if(t.path.startsWith("navigation.racing"))e.properties[t.path]=n;else if(t.path==="performance.beatAngle")e.performance.beatAngle=n;else if(t.path==="performance.gybeAngle")e.performance.gybeAngle=n;else if(t.path.startsWith("navigation.course."))if(t.path.startsWith("navigation.course.calcValues.")){let a=t.path.split(".").slice(3).join(".");e.courseCalcs[a]=n}else t.path.includes("activeRoute")?e.courseApi.activeRoute=n:t.path.includes("nextPoint")?e.courseApi.nextPoint=n:t.path.includes("previousPoint")?e.courseApi.previousPoint=n:t.path.includes("arrivalCircle")&&(e.courseApi.arrivalCircle=n);else if(t.path.startsWith("radars.")){let a=t.path.split("."),l=a.slice(2).join(".");e.radars[a[1]]||(e.radars[a[1]]={}),e.radars[a[1]][l]=n}let o=t.path.indexOf("course")!==-1?t.path.split(".").slice(0,2).join("."):t.path;wa.indexOf(o)!==-1&&(f.paths[o]=null)}else t.path==="navigation.distanceToSelf"&&(e.distanceToSelf=n),t.path==="navigation.closestApproach"&&(e.closestApproach=n);if(t.path==="")typeof n.name<"u"&&(e.name=n.name),typeof n.mmsi<"u"&&(e.mmsi=n.mmsi,e.lastUpdated=new Date),typeof n.registrations<"u"&&(e.registrations=n.registrations),typeof n.buddy<"u"&&(e.buddy=n.buddy),typeof n.communication<"u"&&(e.callsignVhf=n.communication.callsignVhf??"",e.callsignHf=n.communication.callsignHf??"");else if(t.path==="communication.callsignVhf")e.callsignVhf=n;else if(t.path==="communication.callsignHf")e.callsignHf=n;else if(t.path==="design.aisShipType")e.type=n;else if(t.path==="navigation.position"&&n){if(typeof n.latitude>"u"||typeof n.longitude>"u")return;e.position=j.normaliseCoords([n.longitude,n.latitude]),e.positionReceived=!0,e.positionTimestamp=vi??"",e.positionUpdatedAt=Date.now(),e.lastUpdated=new Date,r||jr(e)}else t.path==="navigation.state"?e.state=n:t.path==="navigation.speedOverGround"?e.sog=n:t.path==="environment.mode"?e.environment.mode=n:t.path==="environment.sun"?e.environment.sun=n:t.path==="environment.wind.angleApparent"?e.wind.awa=n:t.path==="environment.wind.speedApparent"?e.wind.aws=n:t.path==="environment.wind.speedTrue"?e.wind.speedTrue=n:t.path==="environment.wind.speedOverGround"?e.wind.sog=n:t.path==="environment.wind.directionTrue"?e.wind.twd=n:t.path==="environment.wind.directionMagnetic"?e.wind.mwd=n:t.path==="navigation.anchor.position"?e.anchor.position=n:t.path==="navigation.anchor.maxRadius"?e.anchor.maxRadius=n:t.path==="navigation.anchor.currentRadius"?e.anchor.radius=n:t.path==="steering.autopilot.state"&&V===ne?e.autopilot.state=n:t.path==="steering.autopilot.mode"&&V===ne?e.autopilot.mode=n:t.path==="steering.autopilot.target"&&V===ne?e.autopilot.target=n:t.path==="steering.autopilot.engaged"&&V===ne?e.autopilot.enabled=n:t.path==="steering.autopilot.defaultPilot"?(e.autopilot.default=n,ne=n):t.path==="steering.autopilot.availableActions"&&V===ne?e.autopilot.availableActions=n??[]:t.path==="navigation.courseOverGroundTrue"?e.cogTrue=n:t.path==="navigation.courseOverGroundMagnetic"?e.cogMagnetic=n:t.path==="navigation.headingTrue"?(e.headingTrue=n,e.headingTrueUpdatedAt=Date.now()):t.path==="navigation.headingMagnetic"&&(e.headingMagnetic=n,e.headingMagneticUpdatedAt=Date.now());let i=ie.heading;typeof i>"u"||i===oi?ai.has(t.path)&&ui(e):t.path===i&&(e.orientation=n),typeof ie.tws<"u"&&t.path===ie.tws&&(e.wind.tws=n),typeof ie.twd<"u"&&t.path===ie.twd&&(e.wind.direction=t.path==="environment.wind.angleTrueGround"||t.path==="environment.wind.angleTrueWater"?$.angleToDirection(n,e.orientation??0):n);let s=e.cogTrue??e.cogMagnetic??void 0;if(typeof s<"u"&&e.position){let o=r?Ir.selfLines.cog.length:Ir.aisCogLine,a=(e.sog??0)*(o*60);e.vectors.cog=[e.position,j.rhumbDestination(e.position,s,a)]}}function ja(e){let t=new Nt;t.playback=q,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function Ka(e){let t=new It;t.playback=q,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function di(e){if(e.path.includes("notifications.")){let t=new Et;t.playback=q,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}}function Ua(){let e=new Date().valueOf();f.aisTargets.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,f.aisTargets.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)}),f.aircraft.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,f.aircraft.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)}),f.sar.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,f.sar.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)})}function Va(e,t){let r=!1;if(e.indexOf("shore.basestations")!==-1&&(r=!0),!f.atons.has(e)){let i=new le;i.id=e,i.position=null,i.type.id=null,r&&(i.type.id=-2,i.type.name="Basestation"),f.atons.set(e,i)}let n=f.atons.get(e);return t.path===""?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.atonType<"u"&&(n.type=t.value.atonType)):t.path==="atonType"?n.type=t.value:t.path==="virtual"?n.virtual=t.value:t.path==="navigation.position"?(n.position=[t.value.longitude,t.value.latitude],n.positionReceived=!0):n.properties[t.path]=t.value,e}function Fa(e,t){if(!f.sar.has(e)){let n=new Le;n.id=e,n.position=null,n.type.id=-1,n.type.name="SaR Beacon",f.sar.set(e,n)}let r=f.sar.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value&&(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Wa(e,t){if(!f.meteo.has(e)){let n=new Ie;n.id=e,n.position=null,n.type.id=-1,n.type.name="Weather Station",f.meteo.set(e,n)}let r=f.meteo.get(e);if(t.path===""){if(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"){let n=e.split(":").slice(-2);r.mmsi=n.length===2?`${n[0]}:${n[1]}`:t.value.mmsi}typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")}else t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="environment.outside.temperature"?r.temperature=t.value:t.path==="environment.wind.directionTrue"?r.twd=t.value:t.path==="environment.wind.averageSpeed"?r.tws=t.value:t.path==="navigation.position"&&t.value&&(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Ba(e,t){if(!f.aircraft.has(e)){let n=new Ee;n.id=e,n.position=null,f.aircraft.set(e,n)}let r=f.aircraft.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value?(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0,jr(r)):t.path==="navigation.courseOverGroundTrue"?r.orientation=t.value:t.path==="navigation.speedOverGround"&&(r.sog=t.value)}function jr(e){if(e.track&&e.track.length===0)e.track.push([e.position]);else{let t=e.track[e.track.length-1].length,r=e.track[e.track.length-1][t-1];r[0]!==e.position[0]&&r[1]!==e.position[1]&&e.track[e.track.length-1].push(e.position)}e.track[e.track.length-1]=e.track[e.track.length-1].slice(0-U.maxTrack)}export{Se as apiGet,Kt as handleStreamEvent,Ca as initVessels,fi as processVessel};
@@ -1,3 +0,0 @@
1
- var wi=Object.create;var Wr=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Ri=Object.getOwnPropertyNames;var Li=Object.getPrototypeOf,Ti=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var qi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ri(t))!Ti.call(e,i)&&i!==r&&Wr(e,i,{get:()=>t[i],enumerable:!(n=Di(t,i))||n.enumerable});return e};var Br=(e,t,r)=>(r=e!=null?wi(Li(e)):{},qi(t||!e||!e.__esModule?Wr(r,"default",{value:e,enumerable:!0}):r,e));var x=u(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.timeConversion=p.sexagesimalPattern=p.longitudeKeys=p.latitudeKeys=p.earthRadius=p.distanceConversion=p.areaConversion=p.altitudeKeys=p.RAD_TO_DEG=p.MINLON=p.MINLAT=p.MAXLON=p.MAXLAT=p.DEG_TO_RAD=void 0;var Qu=p.sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/,el=p.earthRadius=6378137,tl=p.MINLAT=-90,rl=p.MAXLAT=90,nl=p.MINLON=-180,il=p.MAXLON=180,al=p.DEG_TO_RAD=Math.PI/180,ol=p.RAD_TO_DEG=180/Math.PI,sl=p.longitudeKeys=["lng","lon","longitude",0],ul=p.latitudeKeys=["lat","latitude",1],ll=p.altitudeKeys=["alt","altitude","elevation","elev",2],cl=p.distanceConversion={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144},fl=p.timeConversion={m:60,h:3600,d:86400},I=p.areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};I.sqm=I.m2;I.sqkm=I.km2;I.sqft=I.ft2;I.sqyd=I.yd2;I.sqin=I.in2});var fe=u(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=void 0;var Ki=(e,t)=>{if(e==null)throw new Error(`'${e}' is no valid coordinate.`);return t.reduce((r,n)=>Object.prototype.hasOwnProperty.call(e,n)&&n!==void 0&&r===void 0?(r=n,n):r,void 0)},ml=Ne.default=Ki});var de=u(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.default=void 0;var Wi=e=>{let t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},gl=je.default=Wi});var me=u(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.default=void 0;var Bi=x(),$i=e=>Bi.sexagesimalPattern.test(e.toString().trim()),bl=Fe.default=$i});var pe=u(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.default=void 0;var Gi=x(),Hi=e=>{let t=new RegExp(Gi.sexagesimalPattern).exec(e.toString().trim());if(t===null)throw new Error("Given value is not in sexagesimal format");let r=Number(t[2])/60||0,n=Number(t[4])/3600||0,i=parseFloat(t[1])+r+n;return["S","W"].includes(t[7])?-i:i},_l=Ue.default=Hi});var Ke=u(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.default=void 0;var tr=x(),rr=zi(fe());function zi(e){return e&&e.__esModule?e:{default:e}}var Xi=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:tr.longitudeKeys,latitude:tr.latitudeKeys,altitude:tr.altitudeKeys},r=(0,rr.default)(e,t.longitude),n=(0,rr.default)(e,t.latitude),i=(0,rr.default)(e,t.altitude);return{latitude:n,longitude:r,...i?{altitude:i}:{}}},xl=Ve.default=Xi});var ir=u(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.default=void 0;var Zi=nr(de()),Yi=nr(me()),Ji=nr(pe()),nn=x();function nr(e){return e&&e.__esModule?e:{default:e}}var an=e=>{if((0,Zi.default)(e)){let t=parseFloat(e);return!(t>nn.MAXLAT||t<nn.MINLAT)}return(0,Yi.default)(e)?an((0,Ji.default)(e)):!1},Pl=We.default=an});var or=u(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var Qi=ar(de()),ea=ar(me()),ta=ar(pe()),on=x();function ar(e){return e&&e.__esModule?e:{default:e}}var sn=e=>{if((0,Qi.default)(e)){let t=parseFloat(e);return!(t>on.MAXLON||t<on.MINLON)}return(0,ea.default)(e)?sn((0,ta.default)(e)):!1},Ol=Be.default=sn});var ur=u($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var ra=sr(Ke()),un=sr(ir()),ln=sr(or());function sr(e){return e&&e.__esModule?e:{default:e}}var na=e=>{let{latitude:t,longitude:r}=(0,ra.default)(e);if(Array.isArray(e)&&e.length>=2)return(0,ln.default)(e[0])&&(0,un.default)(e[1]);if(t===void 0||r===void 0)return!1;let n=e[r],i=e[t];return i===void 0||n===void 0?!1:(0,un.default)(i)&&(0,ln.default)(n)},wl=$e.default=na});var He=u(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.default=void 0;var ia=he(de()),aa=he(me()),oa=he(pe()),cn=he(ur()),sa=he(Ke());function he(e){return e&&e.__esModule?e:{default:e}}var ge=e=>{if((0,ia.default)(e))return Number(e);if((0,aa.default)(e))return(0,oa.default)(e);if((0,cn.default)(e)){let t=(0,sa.default)(e);return Array.isArray(e)?e.map((r,n)=>[0,1].includes(n)?ge(r):r):{...e,...t.latitude&&{[t.latitude]:ge(e[t.latitude])},...t.longitude&&{[t.longitude]:ge(e[t.longitude])}}}return Array.isArray(e)?e.map(t=>(0,cn.default)(t)?ge(t):t):e},Rl=Ge.default=ge});var R=u(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var ua=x(),la=fn(fe()),ca=fn(He());function fn(e){return e&&e.__esModule?e:{default:e}}var fa=(e,t)=>{let r=(0,la.default)(e,ua.latitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,ca.default)(n)},Tl=ze.default=fa});var L=u(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var da=x(),ma=dn(fe()),pa=dn(He());function dn(e){return e&&e.__esModule?e:{default:e}}var ga=(e,t)=>{let r=(0,ma.default)(e,da.longitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,pa.default)(n)},kl=Xe.default=ga});var N=u(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var ha=x(),ba=e=>e*ha.DEG_TO_RAD,El=Ze.default=ba});var H=u(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var ya=x(),_a=e=>e*ya.RAD_TO_DEG,Nl=Ye.default=_a});var pn=u(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var va=Je(R()),xa=Je(L()),lr=Je(N()),cr=Je(H()),mn=x();function Je(e){return e&&e.__esModule?e:{default:e}}var Ma=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,i=(0,va.default)(e),a=(0,xa.default)(e),o=t/n,s=(0,lr.default)(r),f=(0,lr.default)(i),v=(0,lr.default)(a),g=Math.asin(Math.sin(f)*Math.cos(o)+Math.cos(f)*Math.sin(o)*Math.cos(s)),h=v+Math.atan2(Math.sin(s)*Math.sin(o)*Math.cos(f),Math.cos(o)-Math.sin(f)*Math.sin(g)),m=(0,cr.default)(h);return(m<mn.MINLON||m>mn.MAXLON)&&(h=(h+3*Math.PI)%(2*Math.PI)-Math.PI,m=(0,cr.default)(h)),{latitude:(0,cr.default)(g),longitude:m}},Fl=Qe.default=Ma});var gn=u(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var Pa=x(),Sa=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=Pa.areaConversion[t];if(r)return e*r;throw new Error("Invalid unit used for area conversion.")},Vl=et.default=Sa});var hn=u(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var Oa=x(),Aa=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=Oa.distanceConversion[t];if(r)return e*r;throw new Error("Invalid unit used for distance conversion.")},Wl=tt.default=Aa});var bn=u(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var rt=x(),wa=function(e){switch(arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh"){case"kmh":return e*rt.timeConversion.h*rt.distanceConversion.km;case"mph":return e*rt.timeConversion.h*rt.distanceConversion.mi;default:return e}},$l=nt.default=wa});var yn=u(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var Da=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,r=Math.pow(10,t);return Math.round(e*r)/r},Ra=e=>{let[t,r]=e.toString().split("."),n=Math.abs(Number(t)),i=+("0."+(r||0))*60,a=i.toString().split("."),o=Math.floor(i),s=Da(+("0."+(a[1]||0))*60).toString(),[f,v="0"]=s.split(".");return n+"\xB0 "+o.toString().padStart(2,"0")+"' "+f.padStart(2,"0")+"."+v.padEnd(1,"0")+'"'},Hl=it.default=Ra});var fr=u(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var La=e=>e>1?1:e<-1?-1:e,Xl=at.default=La});var W=u(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var _n=ot(R()),vn=ot(L()),dr=ot(N()),Ta=ot(fr()),qa=x();function ot(e){return e&&e.__esModule?e:{default:e}}var ka=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,dr.default)((0,_n.default)(e)),i=(0,dr.default)((0,_n.default)(t)),a=(0,dr.default)((0,vn.default)(e)-(0,vn.default)(t)),o=Math.acos((0,Ta.default)(Math.sin(i)*Math.sin(n)+Math.cos(i)*Math.cos(n)*Math.cos(a)))*qa.earthRadius;return Math.round(o/r)*r},Yl=st.default=ka});var mr=u(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var xn=Ca(W());function Ca(e){return e&&e.__esModule?e:{default:e}}var Ea=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:xn.default;return r=typeof r=="function"?r:xn.default,t.slice().sort((n,i)=>r(e,n)-r(e,i))},Ql=ut.default=Ea});var Mn=u(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var Ia=Na(mr());function Na(e){return e&&e.__esModule?e:{default:e}}var ja=(e,t)=>(0,Ia.default)(e,t)[0],tc=lt.default=ja});var On=u(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var pr=gr(N()),Fa=gr(R()),Pn=gr(L()),Sn=x();function gr(e){return e&&e.__esModule?e:{default:e}}var Ua=e=>{let t=0;if(e.length>2){let r,n,i;for(let a=0;a<e.length;a++){a===e.length-2?(r=e.length-2,n=e.length-1,i=0):a===e.length-1?(r=e.length-1,n=0,i=1):(r=a,n=a+1,i=a+2);let o=(0,Pn.default)(e[r]),s=(0,Fa.default)(e[n]),f=(0,Pn.default)(e[i]);t+=((0,pr.default)(f)-(0,pr.default)(o))*Math.sin((0,pr.default)(s))}t=t*Sn.earthRadius*Sn.earthRadius/2}return Math.abs(t)},nc=ct.default=Ua});var hr=u(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var Va=An(R()),Ka=An(L());function An(e){return e&&e.__esModule?e:{default:e}}var Wa=e=>{if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce((t,r)=>{let n=(0,Va.default)(r),i=(0,Ka.default)(r);return{maxLat:Math.max(n,t.maxLat),minLat:Math.min(n,t.minLat),maxLng:Math.max(i,t.maxLng),minLng:Math.min(i,t.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})},ac=ft.default=Wa});var wn=u(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});pt.default=void 0;var Ba=mt(R()),$a=mt(L()),re=mt(N()),dt=mt(H()),be=x();function mt(e){return e&&e.__esModule?e:{default:e}}var Ga=(e,t)=>{let r=(0,Ba.default)(e),n=(0,$a.default)(e),i=(0,re.default)(r),a=(0,re.default)(n),o=t/be.earthRadius,s=i-o,f=i+o,v=(0,re.default)(be.MAXLAT),g=(0,re.default)(be.MINLAT),h=(0,re.default)(be.MAXLON),m=(0,re.default)(be.MINLON),P,y;if(s>g&&f<v){let w=Math.asin(Math.sin(o)/Math.cos(i));P=a-w,P<m&&(P+=Math.PI*2),y=a+w,y>h&&(y-=Math.PI*2)}else s=Math.max(s,g),f=Math.min(f,v),P=m,y=h;return[{latitude:(0,dt.default)(s),longitude:(0,dt.default)(P)},{latitude:(0,dt.default)(f),longitude:(0,dt.default)(y)}]},sc=pt.default=Ga});var Ln=u(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Ha=gt(R()),za=gt(L()),Dn=gt(N()),Rn=gt(H());function gt(e){return e&&e.__esModule?e:{default:e}}var Xa=e=>{if(Array.isArray(e)===!1||e.length===0)return!1;let t=e.length,r=e.reduce((o,s)=>{let f=(0,Dn.default)((0,Ha.default)(s)),v=(0,Dn.default)((0,za.default)(s));return{X:o.X+Math.cos(f)*Math.cos(v),Y:o.Y+Math.cos(f)*Math.sin(v),Z:o.Z+Math.sin(f)}},{X:0,Y:0,Z:0}),n=r.X/t,i=r.Y/t,a=r.Z/t;return{longitude:(0,Rn.default)(Math.atan2(i,n)),latitude:(0,Rn.default)(Math.atan2(a,Math.sqrt(n*n+i*i)))}},lc=ht.default=Xa});var Tn=u(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.default=void 0;var Za=Ya(hr());function Ya(e){return e&&e.__esModule?e:{default:e}}var Ja=e=>{let t=(0,Za.default)(e),r=t.minLat+(t.maxLat-t.minLat)/2,n=t.minLng+(t.maxLng-t.minLng)/2;return{latitude:parseFloat(r.toFixed(6)),longitude:parseFloat(n.toFixed(6))}},fc=bt.default=Ja});var br=u(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.default=void 0;var qn=_t(R()),kn=_t(L()),yt=_t(N()),Qa=_t(H());function _t(e){return e&&e.__esModule?e:{default:e}}var eo=(e,t)=>{let r=(0,yt.default)((0,kn.default)(t))-(0,yt.default)((0,kn.default)(e)),n=Math.log(Math.tan((0,yt.default)((0,qn.default)(t))/2+Math.PI/4)/Math.tan((0,yt.default)((0,qn.default)(e))/2+Math.PI/4));return Math.abs(r)>Math.PI&&(r>0?r=(Math.PI*2-r)*-1:r=Math.PI*2+r),((0,Qa.default)(Math.atan2(r,n))+360)%360},mc=vt.default=eo});var En=u(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Cn=to(br());function to(e){return e&&e.__esModule?e:{default:e}}var ro=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Cn.default,n=typeof r=="function"?r(e,t):(0,Cn.default)(e,t);if(isNaN(n))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(n/22.5)){case 1:return"NNE";case 2:return"NE";case 3:return"ENE";case 4:return"E";case 5:return"ESE";case 6:return"SE";case 7:return"SSE";case 8:return"S";case 9:return"SSW";case 10:return"SW";case 11:return"WSW";case 12:return"W";case 13:return"WNW";case 14:return"NW";case 15:return"NNW";default:return"N"}},gc=xt.default=ro});var _r=u(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var yr=Nn(W()),In=Nn(fr());function Nn(e){return e&&e.__esModule?e:{default:e}}var no=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,i=(0,yr.default)(t,e,n),a=(0,yr.default)(e,r,n),o=(0,yr.default)(t,r,n),s=Math.acos((0,In.default)((i*i+o*o-a*a)/(2*i*o))),f=Math.acos((0,In.default)((a*a+o*o-i*i)/(2*a*o)));return i===0||a===0?0:o===0||s>Math.PI/2?i:f>Math.PI/2?a:Math.sin(s)*i},bc=Mt.default=no});var Un=u(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.default=void 0;var jn=Pt(R()),Fn=Pt(L()),F=Pt(N()),io=Pt(H());function Pt(e){return e&&e.__esModule?e:{default:e}}var ao=(e,t)=>{let r=(0,jn.default)(t),n=(0,Fn.default)(t),i=(0,jn.default)(e),a=(0,Fn.default)(e);return((0,io.default)(Math.atan2(Math.sin((0,F.default)(n)-(0,F.default)(a))*Math.cos((0,F.default)(r)),Math.cos((0,F.default)(i))*Math.sin((0,F.default)(r))-Math.sin((0,F.default)(i))*Math.cos((0,F.default)(r))*Math.cos((0,F.default)(n)-(0,F.default)(a))))+360)%360},_c=St.default=ao});var Vn=u(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var oo=so(W());function so(e){return e&&e.__esModule?e:{default:e}}var uo=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:oo.default;return e.reduce((r,n)=>(typeof r=="object"&&r.last!==null&&(r.distance+=t(n,r.last)),r.last=n,r),{last:null,distance:0}).distance},xc=Ot.default=uo});var $n=u(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var Kn=xr(R()),Wn=xr(L()),vr=xr(N()),Bn=x();function xr(e){return e&&e.__esModule?e:{default:e}}var lo=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,Kn.default)(e),i=(0,Wn.default)(e),a=(0,Kn.default)(t),o=(0,Wn.default)(t),s=6356752314245e-6,f=1/298.257223563,v=(0,vr.default)(o-i),g,h,m,P,y,w,Fr=Math.atan((1-f)*Math.tan((0,vr.default)(parseFloat(n)))),Ur=Math.atan((1-f)*Math.tan((0,vr.default)(parseFloat(a)))),Se=Math.sin(Fr),Oe=Math.cos(Fr),Ae=Math.sin(Ur),Z=Math.cos(Ur),ae=v,Vr,Kr=100;do{let Wt=Math.sin(ae),Bt=Math.cos(ae);if(w=Math.sqrt(Z*Wt*(Z*Wt)+(Oe*Ae-Se*Z*Bt)*(Oe*Ae-Se*Z*Bt)),w===0)return 0;g=Se*Ae+Oe*Z*Bt,h=Math.atan2(w,g),m=Oe*Z*Wt/w,P=1-m*m,y=g-2*Se*Ae/P,isNaN(y)&&(y=0);let $t=f/16*P*(4+f*(4-3*P));Vr=ae,ae=v+(1-$t)*f*m*(h+$t*w*(y+$t*g*(-1+2*y*y)))}while(Math.abs(ae-Vr)>1e-12&&--Kr>0);if(Kr===0)return NaN;let K=P*(Bn.earthRadius*Bn.earthRadius-s*s)/(s*s),Si=1+K/16384*(4096+K*(-768+K*(320-175*K))),Kt=K/1024*(256+K*(-128+K*(74-47*K))),Oi=Kt*w*(y+Kt/4*(g*(-1+2*y*y)-Kt/6*y*(-3+4*w*w)*(-3+4*y*y))),Ai=s*Si*(h-Oi);return Math.round(Ai/r)*r},Pc=At.default=lo});var Gn=u(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.default=void 0;var co=e=>{if(/^(NNE|NE|NNW|N)$/.test(e))return"N";if(/^(ENE|E|ESE|SE)$/.test(e))return"E";if(/^(SSE|S|SSW|SW)$/.test(e))return"S";if(/^(WSW|W|WNW|NW)$/.test(e))return"W"},Oc=wt.default=co});var Hn=u(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var fo=mo(W());function mo(e){return e&&e.__esModule?e:{default:e}}var po=function(e,t){let n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:fo.default)(e,t),i=Number(t.time)-Number(e.time);return n/i*1e3},wc=Dt.default=po});var zn=u(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var Mr=go(W());function go(e){return e&&e.__esModule?e:{default:e}}var ho=(e,t,r)=>(0,Mr.default)(t,e)+(0,Mr.default)(e,r)===(0,Mr.default)(t,r),Rc=Rt.default=ho});var Zn=u(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var Lt=Xn(R()),T=Xn(L());function Xn(e){return e&&e.__esModule?e:{default:e}}var bo=(e,t)=>{let r=!1,n=t.length;for(let i=-1,a=n-1;++i<n;a=i)((0,T.default)(t[i])<=(0,T.default)(e)&&(0,T.default)(e)<(0,T.default)(t[a])||(0,T.default)(t[a])<=(0,T.default)(e)&&(0,T.default)(e)<(0,T.default)(t[i]))&&(0,Lt.default)(e)<((0,Lt.default)(t[a])-(0,Lt.default)(t[i]))*((0,T.default)(e)-(0,T.default)(t[i]))/((0,T.default)(t[a])-(0,T.default)(t[i]))+(0,Lt.default)(t[i])&&(r=!r);return r},Tc=Tt.default=bo});var Yn=u(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.default=void 0;var yo=_o(_r());function _o(e){return e&&e.__esModule?e:{default:e}}var vo=(e,t,r,n)=>(0,yo.default)(e,t,r)<n,kc=qt.default=vo});var Jn=u(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var xo=Mo(W());function Mo(e){return e&&e.__esModule?e:{default:e}}var Po=(e,t,r)=>(0,xo.default)(e,t,.01)<r,Ec=kt.default=Po});var Qn=u(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var So=e=>{if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");return e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", ").map(n=>{let[i,a]=n.split(" ");return{longitude:parseFloat(i),latitude:parseFloat(a)}})},Nc=Ct.default=So});var ei=u(l=>{"use strict";Object.defineProperty(l,"__esModule",{value:!0});var Oo={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(l,"computeDestinationPoint",{enumerable:!0,get:function(){return Ao.default}});Object.defineProperty(l,"convertArea",{enumerable:!0,get:function(){return wo.default}});Object.defineProperty(l,"convertDistance",{enumerable:!0,get:function(){return Do.default}});Object.defineProperty(l,"convertSpeed",{enumerable:!0,get:function(){return Ro.default}});Object.defineProperty(l,"decimalToSexagesimal",{enumerable:!0,get:function(){return Lo.default}});Object.defineProperty(l,"findNearest",{enumerable:!0,get:function(){return To.default}});Object.defineProperty(l,"getAreaOfPolygon",{enumerable:!0,get:function(){return qo.default}});Object.defineProperty(l,"getBounds",{enumerable:!0,get:function(){return ko.default}});Object.defineProperty(l,"getBoundsOfDistance",{enumerable:!0,get:function(){return Co.default}});Object.defineProperty(l,"getCenter",{enumerable:!0,get:function(){return Eo.default}});Object.defineProperty(l,"getCenterOfBounds",{enumerable:!0,get:function(){return Io.default}});Object.defineProperty(l,"getCompassDirection",{enumerable:!0,get:function(){return No.default}});Object.defineProperty(l,"getCoordinateKey",{enumerable:!0,get:function(){return jo.default}});Object.defineProperty(l,"getCoordinateKeys",{enumerable:!0,get:function(){return Fo.default}});Object.defineProperty(l,"getDistance",{enumerable:!0,get:function(){return Uo.default}});Object.defineProperty(l,"getDistanceFromLine",{enumerable:!0,get:function(){return Vo.default}});Object.defineProperty(l,"getGreatCircleBearing",{enumerable:!0,get:function(){return Ko.default}});Object.defineProperty(l,"getLatitude",{enumerable:!0,get:function(){return Wo.default}});Object.defineProperty(l,"getLongitude",{enumerable:!0,get:function(){return Bo.default}});Object.defineProperty(l,"getPathLength",{enumerable:!0,get:function(){return $o.default}});Object.defineProperty(l,"getPreciseDistance",{enumerable:!0,get:function(){return Go.default}});Object.defineProperty(l,"getRhumbLineBearing",{enumerable:!0,get:function(){return Ho.default}});Object.defineProperty(l,"getRoughCompassDirection",{enumerable:!0,get:function(){return zo.default}});Object.defineProperty(l,"getSpeed",{enumerable:!0,get:function(){return Xo.default}});Object.defineProperty(l,"isDecimal",{enumerable:!0,get:function(){return Zo.default}});Object.defineProperty(l,"isPointInLine",{enumerable:!0,get:function(){return Yo.default}});Object.defineProperty(l,"isPointInPolygon",{enumerable:!0,get:function(){return Jo.default}});Object.defineProperty(l,"isPointNearLine",{enumerable:!0,get:function(){return Qo.default}});Object.defineProperty(l,"isPointWithinRadius",{enumerable:!0,get:function(){return es.default}});Object.defineProperty(l,"isSexagesimal",{enumerable:!0,get:function(){return ts.default}});Object.defineProperty(l,"isValidCoordinate",{enumerable:!0,get:function(){return rs.default}});Object.defineProperty(l,"isValidLatitude",{enumerable:!0,get:function(){return ns.default}});Object.defineProperty(l,"isValidLongitude",{enumerable:!0,get:function(){return is.default}});Object.defineProperty(l,"orderByDistance",{enumerable:!0,get:function(){return as.default}});Object.defineProperty(l,"sexagesimalToDecimal",{enumerable:!0,get:function(){return os.default}});Object.defineProperty(l,"toDecimal",{enumerable:!0,get:function(){return ss.default}});Object.defineProperty(l,"toDeg",{enumerable:!0,get:function(){return ls.default}});Object.defineProperty(l,"toRad",{enumerable:!0,get:function(){return us.default}});Object.defineProperty(l,"wktToPolygon",{enumerable:!0,get:function(){return cs.default}});var Ao=d(pn()),wo=d(gn()),Do=d(hn()),Ro=d(bn()),Lo=d(yn()),To=d(Mn()),qo=d(On()),ko=d(hr()),Co=d(wn()),Eo=d(Ln()),Io=d(Tn()),No=d(En()),jo=d(fe()),Fo=d(Ke()),Uo=d(W()),Vo=d(_r()),Ko=d(Un()),Wo=d(R()),Bo=d(L()),$o=d(Vn()),Go=d($n()),Ho=d(br()),zo=d(Gn()),Xo=d(Hn()),Zo=d(de()),Yo=d(zn()),Jo=d(Zn()),Qo=d(Yn()),es=d(Jn()),ts=d(me()),rs=d(ur()),ns=d(ir()),is=d(or()),as=d(mr()),os=d(pe()),ss=d(He()),us=d(N()),ls=d(H()),cs=d(Qn()),Pr=x();Object.keys(Pr).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(Oo,e)||e in l&&l[e]===Pr[e]||Object.defineProperty(l,e,{enumerable:!0,get:function(){return Pr[e]}})});function d(e){return e&&e.__esModule?e:{default:e}}});var ti=u(wr=>{"use strict";wr.__esModule=!0;function Or(e,t){return e*e+t*t}function fs(e,t){return Or(e[0]-t[0],e[1]-t[1])}function ds(e,t,r){var n=t[0],i=t[1],a=r[0]-n,o=r[1]-i;if(a!==0||o!==0){var s=((e[0]-n)*a+(e[1]-i)*o)/Or(a,o);s>1?(n=r[0],i=r[1]):s>0&&(n+=a*s,i+=o*s)}return Or(e[0]-n,e[1]-i)}function ms(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],fs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Ar(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var f=ds(e[s],e[t],e[r]);f>a&&(o=s,a=f)}a>n&&(o-t>1&&Ar(e,t,o,n,i),i.push(e[o]),r-o>1&&Ar(e,o,r,n,i))}function ps(e,t){var r=e.length-1,n=[e[0]];return Ar(e,0,r,t,n),n.push(e[r]),n}function gs(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:ms(e,n),e=ps(e,n),e}wr.SimplifyAP=gs});var ri=u(Lr=>{"use strict";Lr.__esModule=!0;function Dr(e,t){return e*e+t*t}function hs(e,t){return Dr(e.longitude-t.longitude,e.latitude-t.latitude)}function bs(e,t,r){var n=t.longitude,i=t.latitude,a=r.longitude-n,o=r.latitude-i;if(a!==0||o!==0){var s=((e.longitude-n)*a+(e.latitude-i)*o)/Dr(a,o);s>1?(n=r.longitude,i=r.latitude):s>0&&(n+=a*s,i+=o*s)}return Dr(e.longitude-n,e.latitude-i)}function ys(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],hs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Rr(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var f=bs(e[s],e[t],e[r]);f>a&&(o=s,a=f)}a>n&&(o-t>1&&Rr(e,t,o,n,i),i.push(e[o]),r-o>1&&Rr(e,o,r,n,i))}function _s(e,t){var r=e.length-1,n=[e[0]];return Rr(e,0,r,t,n),n.push(e[r]),n}function vs(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:ys(e,n),e=_s(e,n),e}Lr.SimplifyLL=vs});var ni=u(kr=>{"use strict";kr.__esModule=!0;function Tr(e,t){return e*e+t*t}function xs(e,t){return Tr(e.x-t.x,e.y-t.y)}function Ms(e,t,r){var n=t.x,i=t.y,a=r.x-n,o=r.y-i;if(a!==0||o!==0){var s=((e.x-n)*a+(e.y-i)*o)/Tr(a,o);s>1?(n=r.x,i=r.y):s>0&&(n+=a*s,i+=o*s)}return Tr(e.x-n,e.y-i)}function Ps(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],xs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function qr(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var f=Ms(e[s],e[t],e[r]);f>a&&(o=s,a=f)}a>n&&(o-t>1&&qr(e,t,o,n,i),i.push(e[o]),r-o>1&&qr(e,o,r,n,i))}function Ss(e,t){var r=e.length-1,n=[e[0]];return qr(e,0,r,t,n),n.push(e[r]),n}function Os(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:Ps(e,n),e=Ss(e,n),e}kr.Simplify=Os});var ii=u(ye=>{"use strict";ye.__esModule=!0;var As=ti();ye.SimplifyAP=As.SimplifyAP;var ws=ri();ye.SimplifyLL=ws.SimplifyLL;var Ds=ni();ye.Simplify=Ds.Simplify});function D(e){return typeof e=="function"}function we(e){let r=e(n=>{Error.call(n),n.stack=new Error().stack});return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var De=we(e=>function(r){e(this),this.message=r?`${r.length} errors occurred during unsubscription:
2
- ${r.map((n,i)=>`${i+1}) ${n.toString()}`).join(`
3
- `)}`:"",this.name="UnsubscriptionError",this.errors=r});function oe(e,t){if(e){let r=e.indexOf(t);0<=r&&e.splice(r,1)}}var C=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:r}=this;if(r)if(this._parentage=null,Array.isArray(r))for(let a of r)a.remove(this);else r.remove(this);let{initialTeardown:n}=this;if(D(n))try{n()}catch(a){t=a instanceof De?a.errors:[a]}let{_finalizers:i}=this;if(i){this._finalizers=null;for(let a of i)try{$r(a)}catch(o){t=t??[],o instanceof De?t=[...t,...o.errors]:t.push(o)}}if(t)throw new De(t)}}add(t){var r;if(t&&t!==this)if(this.closed)$r(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}}_hasParent(t){let{_parentage:r}=this;return r===t||Array.isArray(r)&&r.includes(t)}_addParent(t){let{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t}_removeParent(t){let{_parentage:r}=this;r===t?this._parentage=null:Array.isArray(r)&&oe(r,t)}remove(t){let{_finalizers:r}=this;r&&oe(r,t),t instanceof e&&t._removeParent(this)}};C.EMPTY=(()=>{let e=new C;return e.closed=!0,e})();var Gt=C.EMPTY;function Re(e){return e instanceof C||e&&"closed"in e&&D(e.remove)&&D(e.add)&&D(e.unsubscribe)}function $r(e){D(e)?e():e.unsubscribe()}var q={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Y={setTimeout(e,t,...r){let{delegate:n}=Y;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){let{delegate:t}=Y;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Gr(e){Y.setTimeout(()=>{let{onUnhandledError:t}=q;if(t)t(e);else throw e})}function Ht(){}var Hr=zt("C",void 0,void 0);function zr(e){return zt("E",void 0,e)}function Xr(e){return zt("N",e,void 0)}function zt(e,t,r){return{kind:e,value:t,error:r}}var B=null;function J(e){if(q.useDeprecatedSynchronousErrorHandling){let t=!B;if(t&&(B={errorThrown:!1,error:null}),e(),t){let{errorThrown:r,error:n}=B;if(B=null,r)throw n}}else e()}function Zr(e){q.useDeprecatedSynchronousErrorHandling&&B&&(B.errorThrown=!0,B.error=e)}var se=class extends C{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Re(t)&&t.add(this)):this.destination=Ei}static create(t,r,n){return new Q(t,r,n)}next(t){this.isStopped?Zt(Xr(t),this):this._next(t)}error(t){this.isStopped?Zt(zr(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Zt(Hr,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},ki=Function.prototype.bind;function Xt(e,t){return ki.call(e,t)}var Yt=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:r}=this;if(r.next)try{r.next(t)}catch(n){Le(n)}}error(t){let{partialObserver:r}=this;if(r.error)try{r.error(t)}catch(n){Le(n)}else Le(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(r){Le(r)}}},Q=class extends se{constructor(t,r,n){super();let i;if(D(t)||!t)i={next:t??void 0,error:r??void 0,complete:n??void 0};else{let a;this&&q.useDeprecatedNextContext?(a=Object.create(t),a.unsubscribe=()=>this.unsubscribe(),i={next:t.next&&Xt(t.next,a),error:t.error&&Xt(t.error,a),complete:t.complete&&Xt(t.complete,a)}):i=t}this.destination=new Yt(i)}};function Le(e){q.useDeprecatedSynchronousErrorHandling?Zr(e):Gr(e)}function Ci(e){throw e}function Zt(e,t){let{onStoppedNotification:r}=q;r&&Y.setTimeout(()=>r(e,t))}var Ei={closed:!0,next:Ht,error:Ci,complete:Ht};var Yr=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Jr(e){return e}function Qr(e){return e.length===0?Jr:e.length===1?e[0]:function(r){return e.reduce((n,i)=>i(n),r)}}var $=class e{constructor(t){t&&(this._subscribe=t)}lift(t){let r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,n){let i=Ni(t)?t:new Q(t,r,n);return J(()=>{let{operator:a,source:o}=this;i.add(a?a.call(i,o):o?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return r=en(r),new r((n,i)=>{let a=new Q({next:o=>{try{t(o)}catch(s){i(s),a.unsubscribe()}},error:i,complete:n});this.subscribe(a)})}_subscribe(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)}[Yr](){return this}pipe(...t){return Qr(t)(this)}toPromise(t){return t=en(t),new t((r,n)=>{let i;this.subscribe(a=>i=a,a=>n(a),()=>r(i))})}};$.create=e=>new $(e);function en(e){var t;return(t=e??q.Promise)!==null&&t!==void 0?t:Promise}function Ii(e){return e&&D(e.next)&&D(e.error)&&D(e.complete)}function Ni(e){return e&&e instanceof se||Ii(e)&&Re(e)}var tn=we(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var E=class extends ${constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){let r=new Te(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new tn}next(t){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(t)}})}error(t){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;let{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){let{hasError:r,isStopped:n,observers:i}=this;return r||n?Gt:(this.currentObservers=null,i.push(t),new C(()=>{this.currentObservers=null,oe(i,t)}))}_checkFinalizedStatuses(t){let{hasError:r,thrownError:n,isStopped:i}=this;r?t.error(n):i&&t.complete()}asObservable(){let t=new $;return t.source=this,t}};E.create=(e,t)=>new Te(e,t);var Te=class extends E{constructor(t,r){super(),this.destination=t,this.source=r}next(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.next)===null||n===void 0||n.call(r,t)}error(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.error)===null||n===void 0||n.call(r,t)}complete(){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||r===void 0||r.call(t)}_subscribe(t){var r,n;return(n=(r=this.source)===null||r===void 0?void 0:r.subscribe(t))!==null&&n!==void 0?n:Gt}};var S=[];for(let e=0;e<256;++e)S.push((e+256).toString(16).slice(1));function rn(e,t=0){return(S[e[t+0]]+S[e[t+1]]+S[e[t+2]]+S[e[t+3]]+"-"+S[e[t+4]]+S[e[t+5]]+"-"+S[e[t+6]]+S[e[t+7]]+"-"+S[e[t+8]]+S[e[t+9]]+"-"+S[e[t+10]]+S[e[t+11]]+S[e[t+12]]+S[e[t+13]]+S[e[t+14]]+S[e[t+15]]).toLowerCase()}var ji=new Uint8Array(16);function Jt(){return crypto.getRandomValues(ji)}function Fi(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():Ui(e,t,r)}function Ui(e,t,r){e=e||{};let n=e.random??e.rng?.()??Jt();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)t[r+i]=n[i];return t}return rn(n)}var Qt=Fi;var qe=class{_connect;_close;_error;_message;ws;_filter="";_wsTimeout=2e4;_token="";_playbackMode=!1;onConnect;onClose;onError;onMessage;version=1;endpoint="";selfId="";_source=null;set source(t){this._source||(this._source={}),this._source.label=t}set authToken(t){this._token=t}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(t){this._wsTimeout=t<3e3?3e3:t>6e4?6e4:t}get isOpen(){return!!(this.ws&&this.ws.readyState!==1&&this.ws.readyState!==3)}get filter(){return this._filter}set filter(t){t&&t.indexOf("self")!==-1?this._filter=this.selfId?this.selfId:"":this._filter=t}get playbackMode(){return this._playbackMode}constructor(){this._connect=new E,this.onConnect=this._connect.asObservable(),this._close=new E,this.onClose=this._close.asObservable(),this._error=new E,this.onError=this._error.asObservable(),this._message=new E,this.onMessage=this._message.asObservable()}close(){this.ws&&(this.ws.close(),this.ws=null)}open(t,r,n){if(t=t||this.endpoint,!t)return;let i=t.indexOf("?")===-1?"?":"&";r&&(t+=`${i}subscribe=${r}`),(this._token||n)&&(t+=`${r?"&":"?"}token=${this._token||n}`),this.close(),this.ws=new WebSocket(t),setTimeout(()=>{this.ws&&this.ws.readyState!==1&&this.ws.readyState!==3&&(console.warn(`Connection watchdog expired (${this._wsTimeout/1e3} sec): ${this.ws.readyState}... aborting connection...`),this.close())},this._wsTimeout),this.ws.onopen=a=>{this._connect.next(a)},this.ws.onclose=a=>{this._close.next(a)},this.ws.onerror=a=>{this._error.next(a)},this.ws.onmessage=a=>{this.parseOnMessage(a)}}parseOnMessage(t){let r;if(typeof t.data=="string")try{r=JSON.parse(t.data)}catch{return}this.isHello(r)?(this.selfId=r.self,this._playbackMode=typeof r.startTime<"u",this._message.next(r)):this.isResponse(r)?(typeof r.login<"u"&&typeof r.login.token<"u"&&(this._token=r.login.token),this._message.next(r)):this._filter&&this.isDelta(r)?r.context===this._filter&&this._message.next(r):this._message.next(r)}sendRequest(t){if(typeof t!="object")return"";let r=ee.request();return typeof t.login>"u"&&this._token&&(r.token=this._token),Object.keys(t).forEach(i=>{r[i]=t[i]}),this.send(r),r.requestId}put(t,r,n){let i={context:t==="self"?"vessels.self":t,put:{path:r,value:n}};return this.sendRequest(i)}login(t,r){let n={login:{username:t,password:r}};return this.sendRequest(n)}send(t){this.ws&&(typeof t=="object"&&(t=JSON.stringify(t)),this.ws.send(t))}sendUpdate(t="self",r,n){let i=ee.updates();this._token&&(i.token=this._token),i.context=t==="self"?"vessels.self":t,this._token&&(i.token=this._token);let a=[];typeof r=="string"&&a.push({path:r,value:n}),typeof r=="object"&&Array.isArray(r)&&(a=r);let o={timestamp:new Date().toISOString(),values:a};this._source&&(o.source=this._source),i.updates.push(o),this.send(i)}subscribe(t="*",r="*",n){let i=ee.subscribe();if(this._token&&(i.token=this._token),i.context=t==="self"?"vessels.self":t,this._token&&(i.token=this._token),typeof r=="object"&&Array.isArray(r)&&(i.subscribe=r),typeof r=="string"){let a={};a.path=r,n&&typeof n=="object"&&(n.period&&(a.period=n.period),n.minPeriod&&(a.minPeriod=n.period),n.format&&(n.format==="delta"||n.format==="full")&&(a.format=n.format),n.policy&&(n.policy==="instant"||n.policy==="ideal"||n.policy==="fixed")&&(a.policy=n.policy)),i.subscribe.push(a)}this.send(i)}unsubscribe(t="*",r="*"){let n=ee.unsubscribe();this._token&&(n.token=this._token),n.context=t==="self"?"vessels.self":t,this._token&&(n.token=this._token),typeof r=="object"&&Array.isArray(r)&&(n.unsubscribe=r),typeof r=="string"&&n.unsubscribe.push({path:r}),this.send(n)}raiseAlarm(t="*",r,n){let i;typeof r=="string"?i=r.indexOf("notifications.")===-1?`notifications.${r}`:r:i=r,this.put(t,i,n.value)}clearAlarm(t="*",r){let n=r.indexOf("notifications.")===-1?`notifications.${r}`:r;this.put(t,n,null)}isSelf(t){return t.context===this.selfId}isDelta(t){return typeof t.context<"u"}isHello(t){return typeof t.version<"u"&&typeof t.self<"u"}isResponse(t){return typeof t.requestId<"u"}},ee=class{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:Qt()}}},ke=class{_state;_method=[];_message="";constructor(t,r,n,i){this._message=typeof t<"u"?t:"",this._state=typeof r<"u"?r:"alarm",n&&this._method.push("visual"),i&&this._method.push("sound")}get value(){return{message:this._message,state:this._state,method:this._method}}};var te=class{id;name;mmsi;position=[0,0];positionReceived=!1;positionTimestamp="";positionUpdatedAt=0;state;type={id:-1,name:""};properties={};lastUpdated=new Date;callsignVhf;callsignHf;orientation=0;virtual},ue=class extends te{anchor={maxRadius:null,radius:null,position:null};autopilot={state:null,mode:null,target:null,enabled:!1,default:null,availableActions:[]};buddy=!1;closestApproach={distance:null,timeTo:null};cog;cogTrue=null;cogMagnetic=null;courseApi={arrivalCircle:0,activeRoute:{},nextPoint:{},previousPoint:{}};courseCalcs={};distanceToSelf;environment={mode:null,sun:null};heading;headingTrue=null;headingMagnetic=null;headingTrueUpdatedAt=0;headingMagneticUpdatedAt=0;performance={beatAngle:null,gybeAngle:null};racing;radars={};registrations={};resourceUpdates=[];sog;track=[];vectors={cog:[]};wind={direction:null,mwd:null,twd:null,tws:null,speedTrue:null,sog:null,awa:null,aws:null};design={airHeight:null,beam:null,draft:{current:null,maximum:null},length:null};destination={name:null,eta:null};flag;port},Ce=class extends te{constructor(){super()}},Ee=class extends te{sog=0;track=[];constructor(){super()}},le=class extends te{constructor(){super()}},Ie=class extends le{twd;tws;temperature;constructor(){super()}};var er={K:{C:e=>e-273.15,F:e=>(e-273.15)*9/5+32},rad:{degree:e=>e*180/Math.PI},deg:{radian:e=>e*.0174532925199433},ratio:{percent:e=>e*100},"m/s":{kn:e=>e*1.94384,"km/h":e=>e*3.6,mph:e=>e*2.2369362920544025,Bf:e=>e/.836^.6666666666666666,fps:e=>e*3.280839895013124},"rad/s":{"deg/s":e=>e*57.2958,rpm:e=>e*9.549296585513723},Hz:{rpm:e=>e*60},m:{fathom:e=>e*.5467468562055768,league:e=>e*.0002071251035625518,kilometer:e=>e*.001,mile:e=>e*.000621371192237334,"naut-mile":e=>e*.0005399568034557236,foot:e=>e*3.280839895013124,yard:e=>e*1.0936132983377078},s:{hour:e=>e*.0002777777777777778,minute:e=>e*.016666666666666666,day:e=>e*11574074074074073e-21,year:e=>e*3168876461541279e-23},foot:{m:e=>e/3.280839895013124}},ce={degree:{symbol:"\xBA",name:"Degrees"},radian:{symbol:"rad",name:"Radians"},percent:{symbol:"%",name:"Percent"},kilometer:{symbol:"km",name:"Kilometer"},"naut-mile":{symbol:"nmi",name:"Nautical Mile"},foot:{symbol:"ft",name:"Feet"},yard:{symbol:"yd",name:"Yard"},fathom:{symbol:"fm",name:"Fathom"},hour:{symbol:"hr",name:"Hour"},minute:{symbol:"min",name:"Minute"},F:{symbol:"\xBAF",name:"Fahrenheit"},C:{symbol:"\xBAC",name:"Celcius"}},G=class{static transform(t,r,n){if(!Number.isFinite(t))return null;if(r===n)return t;try{return er[r][n](t)}catch{throw new Error("Transformation not found!")}}static setSymbol(t,r){t in ce&&(ce[t].symbol=r??ce[t].symbol)}static getSymbol(t){return t in ce?ce[t].symbol:t}static degreesToRadians(t){return er.deg.radian(t)}static radiansToDegrees(t=0){return er.rad.degree(t)}static nauticalMilesToKm(t=0){return t*1.852}static angleToDirection(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r+t;return i>n?i-n:i<0?n+i:i}static directionToAngle(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r-t,a;if(i>0)a=i>Math.PI?n-i:0-i;else if(i<0){let o=Math.abs(i);a=o>Math.PI?o-n:o}else a=i;return a}};var A=Br(ei()),j=class e{static R=6371e3;static rhumbDestination(t,r,n){let i=e.R,a=n/i,o=t[1]*Math.PI/180,s=t[0]*Math.PI/180,f=r,v=a*Math.cos(f),g=o+v,h=a,m=89*Math.PI/180;g>m&&o<m?(h=a*(m-o)/v,g=m):g<-m&&o>-m&&(h=a*(-m-o)/v,g=-m);let P=Math.log(Math.tan(Math.PI/4+g/2)/Math.tan(Math.PI/4+o/2)),y=Math.abs(P)>1e-12?(g-o)/P:Math.cos(o),w=h*Math.sin(f)/y;return[(s+w)*180/Math.PI,g*180/Math.PI]}static destCoordinate(t,r,n){let i=(0,A.computeDestinationPoint)(t,n,G.radiansToDegrees(r));return[i.longitude,i.latitude]}static distanceTo(t,r){return(0,A.getDistance)(t,r)}static routeLength(t){return(0,A.getPathLength)(t)}static routeLegs(t,r){if(t.length<2)return[];let n=[];r?n.push({bearing:(0,A.getGreatCircleBearing)(r,t[0]),distance:e.distanceTo(r,t[0])}):n.push({bearing:0,distance:0});for(let i=1;i<t.length;++i){let a={bearing:(0,A.getGreatCircleBearing)(t[i-1],t[i]),distance:e.distanceTo(t[i-1],t[i])};n.push(a)}return n}static closestForwardPoint(t,r,n){if(t.length<2||!r)return-1;let i={index:-1,distance:-1};for(let a=0;a<t.length;++a){let o=(0,A.getGreatCircleBearing)(r,t[a]),s=Sr.difference(n,o);if(s>-90&&s<90){let f=e.distanceTo(r,t[a]);(i.distance===-1||f<i.distance)&&(i.distance=f,i.index=a)}}return i.index}static centreOfPolygon(t){let r=(0,A.getCenter)(t);return[r.longitude,r.latitude]}static inDLCrossingZone(t,r=170){return Math.abs(t[0])>=r}static inBounds(t,r){return(0,A.isPointInPolygon)(t,[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]],[r[0],r[1]]])}static calcMapifiedExtent(t,r){let i=111111*Math.cos(G.degreesToRadians(t[1])),a=[0,0,0,0];return a[1]=t[1]+(0-Math.abs(r))/111111,a[3]=t[1]+Math.abs(r)/111111,a[0]=t[0]+(0-Math.abs(r))/i,a[2]=t[0]+Math.abs(r)/i,a}static normaliseCoords(t){if(!Array.isArray(t))return[0,0];if(typeof t[0]=="number"){if(t[0]>180)for(;t[0]>180;)t[0]=t[0]-360;else if(t[0]<-180)for(;t[0]<-180;)t[0]=360+t[0];return t}else if(Array.isArray(t[0]))return t.forEach(r=>this.normaliseCoords(r)),t}},Sr=class e{static difference(t,r){let n=360-r,i=t+n,a=e.normalise(i);return a<180?0-a:360-a}static add(t,r){return e.normalise(t+r)}static normalise(t){return t<0?t+360:t>=360?t-360:t}};var Et=class{action="notification";playback=!1;result=null;self=null;timestamp=new Date().toISOString();sourceRef},z=class{action;playback=!1;result=null;timestamp;self=null;watchDogAlarm;constructor(){this.action="update"}},It=class extends z{constructor(){super(),this.action="resource"}},Nt=class extends z{constructor(){super(),this.action="radar"}},jt=class extends z{constructor(){super(),this.action="trail"}};var mi=Br(ii());var oi="auto",ai=1e4,Rs=.2572,si=new Set(["navigation.headingTrue","navigation.headingMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.speedOverGround"]);function ui(e){let t=Date.now();if(e.headingTrue!==null&&t-e.headingTrueUpdatedAt<=ai){e.orientation=e.headingTrue;return}if(e.headingMagnetic!==null&&t-e.headingMagneticUpdatedAt<=ai){e.orientation=e.headingMagnetic;return}let r=e.cogTrue??e.cogMagnetic;typeof r=="number"&&(e.sog??0)>=Rs&&(e.orientation=r)}var Ls=["environment.wind.speedTrue","environment.wind.speedOverGround","environment.wind.angleTrueGround","environment.wind.angleTrueWater","environment.wind.directionTrue","environment.wind.directionMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"],b={active:!1,maxMsgIntervals:18,intervalCount:0,msgCount:0,alarm:!1},c,M,pi,Me=[],Ut=[],Cr=!1,Nr,Er=!1,_={signalk:{},aisState:[]},gi=[0,0,0,0],hi=60,_e=0,O,ie={},X=500,k=!1,bi,U={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},Ir={selfLines:{cog:{length:10}},aisCogLine:10},ve={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},V,yi,ne="freeboard-sk";function Ts(){c={self:new ue,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},c.self.positionReceived=!1,_i()}function _i(){O={updated:{},stale:{},expired:{}}}function Ft({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:k,result:t.target.readyState}),b.msgCount=0,b.intervalCount=0,b.alarm=!1,b.active=!0;break;case"onClose":vi(!1),li();break;case"onError":postMessage({action:"error",playback:k,result:"Connection error!"}),li();break;case"onMessage":b.msgCount++,Is(t);break}}function li(){b.msgCount=0,b.intervalCount=0,b.active=!0,b.alarm=!0,Vt(!0)}addEventListener("message",({data:e})=>{qs(e)});function qs(e){if(e.cmd)switch(e.cmd){case"open":ci(e.options),Cs(e.options);break;case"close":vi(!0);break;case"subscribe":M.subscribe(e.options.context,e.options.path);break;case"settings":ci(e.options);break;case"alarm":Es(e.options);break;case"vessel":if(e.options){let t;e.options.context==="self"?t=c.self:t=c.aisTargets.get(e.options.context),t&&e.options.name&&(t.name=e.options.name)}break;case"auth":e.options&&typeof e.options.token<"u"&&(pi=e.options.token);break;case"trail":e.options&&(ve.trailDuration=e.options.trailDuration??24,e.options.trailResolution&&(ve.trailResolution.lastHour=e.options.trailResolution.lastHour??"5s",ve.trailResolution.next23=e.options.trailResolution.next23??"1m",ve.trailResolution.beyond24=e.options.trailResolution.beyond24??"5m")),ks(ve);break}}function ci(e={config:{}}){e.interval&&typeof e.interval=="number"&&(X=e.interval,Pi(),Mi(),hi=1/(X/1e3)*60),k=!!e.playback,e.config&&(typeof e.config.units.preferredPaths<"u"&&(ie=e.config.units.preferredPaths),e.config.vessels.aisMaxAge&&typeof e.config.vessels.aisMaxAge=="number"&&(U.maxAge=e.config.vessels.aisMaxAge),e.config.vessels.aisStaleAge&&typeof e.config.vessels.aisStaleAge=="number"&&(U.staleAge=e.config.vessels.aisStaleAge),typeof e.config.signalk.maxRadius=="number"&&(_.signalk=e.config.signalk),typeof e.config.selections.aisState<"u"&&Array.isArray(e.config.selections.aisState)&&(_.aisState=e.config.selections.aisState),Ir=e.config.vessels)}function vi(e=!1){Pi(),Me.forEach(t=>t.unsubscribe()),M&&e&&M.close(),M=null,postMessage({action:"close",result:e,playback:k})}function Pe(e){return fetch(e).then(t=>t.json())}function xi(){let e=_&&_.signalk&&_.signalk.maxRadius?`?radius=${_.signalk.maxRadius}`:"?radius=10000";Pe(Nr+"/tracks"+e).then(t=>{Er=!0,Object.entries(t).forEach(r=>{if(c.aisTargets.has(r[0])){let n=c.aisTargets.get(r[0]);n.track=r[1].coordinates,jr(n)}})}).catch(()=>{Er=!1})}function ks(e){let t=Nr+"/self/track?",r=[],n=5e-4,i=!0;e.trailDuration>24&&(r.push(Pe(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}&timespanOffset=24`)),r.push(Pe(`${t}timespan=23h&resolution=${e.trailResolution.next23}&timespanOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&r.push(Pe(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}&timespanOffset=1`)),r.push(Pe(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let a=[],o=new jt;o.playback=k,Promise.all(r).then(s=>{let f=0,v=r.length-1,g=60;s.forEach(h=>{if(h.type&&h.type==="MultiLineString"&&h.coordinates&&Array.isArray(h.coordinates))if(f!==v){let m=[];for(h.coordinates.forEach(P=>{m=m.concat(P)}),m=(0,mi.SimplifyAP)(m,n,i);m.length>g;){let P=m.slice(0,g);a.push(P),m=m.slice(g-1),m[0]=[m[0][0]+5e-9,m[0][1]+5e-9]}m.length!==0&&a.push(m)}else a=a.concat(h.coordinates);f++}),o.result=a,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function Cs(e){if(M)return;if(!e.url){postMessage({action:"error",result:"Valid options not provided!"});return}let t=e.url.split("/");if(t.pop(),t.push("api"),t[0]=t[0]==="wss:"?"https:":"http:",Nr=t.join("/"),Ts(),M=new qe,Me.push(M.onConnect.subscribe(r=>Ft({action:"onConnect",msg:r}))),Me.push(M.onClose.subscribe(r=>Ft({action:"onClose",msg:r}))),Me.push(M.onError.subscribe(r=>Ft({action:"onError",msg:r}))),Me.push(M.onMessage.subscribe(r=>Ft({action:"onMessage",msg:r}))),M.authToken=pi,e.playback){let r=e.playbackOptions.startTime?`?startTime=${e.playbackOptions.startTime}`:null,n=e.playbackOptions.playbackRate?`playbackRate=${e.playbackOptions.playbackRate}`:null;n=n?r?"&"+n:"?"+n:null;let i=`${e.url}${r||""}${n||""}`;M.open(i,e.playbackOptions.subscribe,e.token)}else M.open(e.url,e.subscribe,e.token),xi()}function Es(e){let t=e.type.indexOf("notifications.")===-1?`notifications.${e.type}`:e.type;e.raise?M.raiseAlarm("self",t,new ke(e.message,e.state,!0,!0)):M.clearAlarm("self",t)}function Is(e){M.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:k}),X&&Mi()):M.isDelta(e)?(Cr=!0,e.updates.forEach(t=>{t.values&&(V=t.$source,yi=t.timestamp,t.values.forEach(r=>{if(bi=t.timestamp,!!e.context)switch(e.context.split(".")[0]){case"shore":case"atons":_?.signalk.atons&&Vs(e.context,r),xe(e.context,c.atons,_?.signalk.atons);break;case"sar":_?.signalk.sar&&Ks(e.context,r),xe(e.context,c.sar,_?.signalk.sar);break;case"aircraft":_?.signalk.aircraft&&Bs(e.context,r),xe(e.context,c.aircraft,_?.signalk.aircraft);break;case"meteo":_?.signalk.meteo&&(Ws(e.context,r),di(r)),xe(e.context,c.meteo,_?.signalk.meteo);break;case"vessels":if(M.isSelf(e))c.self.id||(c.self.id=e.context),fi(c.self,r,!0),di(r);else{if(_?.signalk.vessels){let n=Ns(e.context);fi(n,r)}xe(e.context,c.aisTargets,_?.signalk.vessels,_?.aisState)}break}}))}),Vt()):M.isResponse(e)&&postMessage({action:"response",result:e})}function xe(e,t,r=!0,n=[]){if(r){let i=t.get(e);i&&n.includes(i?.state)&&(O.expired[e]=!0,i=null),i&&_.signalk.maxRadius?i.positionReceived&&j.inBounds(i.position,gi)?O.updated[e]=!0:(t.delete(e),O.expired[e]=!0):O.updated[e]=!0}else t.size!==0&&(t.forEach((i,a)=>{O.expired[a]=!0}),t.clear())}function Vt(e=!1){if(!X||e){let t=new z;t.watchDogAlarm=b.alarm,t.playback=k,c.aisStatus.updated=Object.keys(O.updated),c.aisStatus.stale=Object.keys(O.stale),c.aisStatus.expired=Object.keys(O.expired),t.result=c,t.timestamp=k?bi:c.self.lastUpdated.toISOString(),postMessage(t),_i(),c.self.resourceUpdates=[],Us(),_e===0&&c.self.positionReceived&&_?.signalk.maxRadius&&(gi=j.calcMapifiedExtent(c.self.position,_.signalk.maxRadius),_e++),_e=_e>=hi?0:_e+1}}function Mi(){X&&typeof X=="number"&&Ut.push(setInterval(()=>{b.active&&!b.msgCount?(b.intervalCount=b.intervalCount+1,b.intervalCount>=b.maxMsgIntervals&&(b.intervalCount=0,b.alarm=!0,Vt(!0))):(b.intervalCount=0,b.msgCount=0,b.alarm=!1),Cr&&(Vt(!0),Cr=!1)},X)),Ut.push(setInterval(()=>{Er&&xi()},6e4))}function Pi(){Ut.forEach(e=>clearInterval(e)),Ut=[]}function Ns(e){if(!c.aisTargets.has(e)){let t=new ue;t.id=e,t.position=null,c.aisTargets.set(e,t)}return c.aisTargets.get(e)}function fi(e,t,r=!1){if(r){if(e.lastUpdated=new Date,t.path.startsWith("resources."))e.resourceUpdates.push(t),Fs(t);else if(t.path.startsWith("radars"))js(t);else if(t.path.startsWith("navigation.racing"))e.properties[t.path]=t.value;else if(t.path==="performance.beatAngle")e.performance.beatAngle=t.value;else if(t.path==="performance.gybeAngle")e.performance.gybeAngle=t.value;else if(t.path.startsWith("navigation.course."))if(t.path.startsWith("navigation.course.calcValues.")){let o=t.path.split(".").slice(3).join(".");e.courseCalcs[o]=t.value}else t.path.includes("activeRoute")?e.courseApi.activeRoute=t.value:t.path.includes("nextPoint")?e.courseApi.nextPoint=t.value:t.path.includes("previousPoint")?e.courseApi.previousPoint=t.value:t.path.includes("arrivalCircle")&&(e.courseApi.arrivalCircle=t.value);else if(t.path.startsWith("radars.")){let o=t.path.split("."),s=o.slice(2).join(".");e.radars[o[1]]||(e.radars[o[1]]={}),e.radars[o[1]][s]=t.value}let a=t.path.indexOf("course")!==-1?t.path.split(".").slice(0,2).join("."):t.path;Ls.indexOf(a)!==-1&&(c.paths[a]=null)}else t.path==="navigation.distanceToSelf"&&(e.distanceToSelf=t.value),t.path==="navigation.closestApproach"&&(e.closestApproach=t.value);if(t.path==="")typeof t.value.name<"u"&&(e.name=t.value.name),typeof t.value.mmsi<"u"&&(e.mmsi=t.value.mmsi,e.lastUpdated=new Date),typeof t.value.registrations<"u"&&(e.registrations=t.value.registrations),typeof t.value.buddy<"u"&&(e.buddy=t.value.buddy),typeof t.value.communication<"u"&&(e.callsignVhf=t.value.communication.callsignVhf??"",e.callsignHf=t.value.communication.callsignHf??"");else if(t.path==="communication.callsignVhf")e.callsignVhf=t.value;else if(t.path==="communication.callsignHf")e.callsignHf=t.value;else if(t.path==="design.aisShipType")e.type=t.value;else if(t.path==="navigation.position"&&t.value){if(typeof t.value.latitude>"u"||typeof t.value.longitude>"u")return;e.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),e.positionReceived=!0,e.positionTimestamp=yi??"",e.positionUpdatedAt=Date.now(),e.lastUpdated=new Date,r||jr(e)}else t.path==="navigation.state"?e.state=t.value:t.path==="navigation.speedOverGround"?e.sog=t.value:t.path==="environment.mode"?e.environment.mode=t.value:t.path==="environment.sun"?e.environment.sun=t.value:t.path==="environment.wind.angleApparent"?e.wind.awa=t.value:t.path==="environment.wind.speedApparent"?e.wind.aws=t.value:t.path==="environment.wind.speedTrue"?e.wind.speedTrue=t.value:t.path==="environment.wind.speedOverGround"?e.wind.sog=t.value:t.path==="environment.wind.directionTrue"?e.wind.twd=t.value:t.path==="environment.wind.directionMagnetic"?e.wind.mwd=t.value:t.path==="navigation.anchor.position"?e.anchor.position=t.value:t.path==="navigation.anchor.maxRadius"?e.anchor.maxRadius=t.value:t.path==="navigation.anchor.currentRadius"?e.anchor.radius=t.value:t.path==="steering.autopilot.state"&&V===ne?e.autopilot.state=t.value:t.path==="steering.autopilot.mode"&&V===ne?e.autopilot.mode=t.value:t.path==="steering.autopilot.target"&&V===ne?e.autopilot.target=t.value:t.path==="steering.autopilot.engaged"&&V===ne?e.autopilot.enabled=t.value:t.path==="steering.autopilot.defaultPilot"?(e.autopilot.default=t.value,ne=t.value):t.path==="steering.autopilot.availableActions"&&V===ne?e.autopilot.availableActions=t.value??[]:t.path==="navigation.courseOverGroundTrue"?e.cogTrue=t.value:t.path==="navigation.courseOverGroundMagnetic"?e.cogMagnetic=t.value:t.path==="navigation.headingTrue"?(e.headingTrue=t.value,e.headingTrueUpdatedAt=Date.now()):t.path==="navigation.headingMagnetic"&&(e.headingMagnetic=t.value,e.headingMagneticUpdatedAt=Date.now());let n=ie.heading;typeof n>"u"||n===oi?si.has(t.path)&&ui(e):t.path===n&&(e.orientation=t.value),typeof ie.tws<"u"&&t.path===ie.tws&&(e.wind.tws=t.value),typeof ie.twd<"u"&&t.path===ie.twd&&(e.wind.direction=t.path==="environment.wind.angleTrueGround"||t.path==="environment.wind.angleTrueWater"?G.angleToDirection(t.value,e.orientation??0):t.value);let i=e.cogTrue??e.cogMagnetic??void 0;if(typeof i<"u"&&e.position){let a=r?Ir.selfLines.cog.length:Ir.aisCogLine,o=(e.sog??0)*(a*60);e.vectors.cog=[e.position,j.rhumbDestination(e.position,i,o)]}}function js(e){let t=new Nt;t.playback=k,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function Fs(e){let t=new It;t.playback=k,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function di(e){if(e.path.includes("notifications.")){let t=new Et;t.playback=k,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}}function Us(){let e=new Date().valueOf();c.aisTargets.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,c.aisTargets.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)}),c.aircraft.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,c.aircraft.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)}),c.sar.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,c.sar.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)})}function Vs(e,t){let r=!1;if(e.indexOf("shore.basestations")!==-1&&(r=!0),!c.atons.has(e)){let i=new le;i.id=e,i.position=null,i.type.id=null,r&&(i.type.id=-2,i.type.name="Basestation"),c.atons.set(e,i)}let n=c.atons.get(e);return t.path===""?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.atonType<"u"&&(n.type=t.value.atonType)):t.path==="atonType"?n.type=t.value:t.path==="virtual"?n.virtual=t.value:t.path==="navigation.position"?(n.position=[t.value.longitude,t.value.latitude],n.positionReceived=!0):n.properties[t.path]=t.value,e}function Ks(e,t){if(!c.sar.has(e)){let n=new Ce;n.id=e,n.position=null,n.type.id=-1,n.type.name="SaR Beacon",c.sar.set(e,n)}let r=c.sar.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value&&(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Ws(e,t){if(!c.meteo.has(e)){let n=new Ie;n.id=e,n.position=null,n.type.id=-1,n.type.name="Weather Station",c.meteo.set(e,n)}let r=c.meteo.get(e);if(t.path===""){if(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"){let n=e.split(":").slice(-2);r.mmsi=n.length===2?`${n[0]}:${n[1]}`:t.value.mmsi}typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")}else t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="environment.outside.temperature"?r.temperature=t.value:t.path==="environment.wind.directionTrue"?r.twd=t.value:t.path==="environment.wind.averageSpeed"?r.tws=t.value:t.path==="navigation.position"&&t.value&&(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Bs(e,t){if(!c.aircraft.has(e)){let n=new Ee;n.id=e,n.position=null,c.aircraft.set(e,n)}let r=c.aircraft.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value?(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0,jr(r)):t.path==="navigation.courseOverGroundTrue"?r.orientation=t.value:t.path==="navigation.speedOverGround"&&(r.sog=t.value)}function jr(e){if(e.track&&e.track.length===0)e.track.push([e.position]);else{let t=e.track[e.track.length-1].length,r=e.track[e.track.length-1][t-1];r[0]!==e.position[0]&&r[1]!==e.position[1]&&e.track[e.track.length-1].push(e.position)}e.track[e.track.length-1]=e.track[e.track.length-1].slice(0-U.maxTrack)}export{Pe as apiGet,Ft as handleStreamEvent,Ts as initVessels,fi as processVessel};