@signalk/freeboard-sk 3.1.0-beta.3 → 3.1.0
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.
- package/package.json +3 -1
- package/public/assets/features/chart-list-2.jpg +0 -0
- package/public/assets/features/chart-zoom-limits-1.jpg +0 -0
- package/public/assets/features/own-vessel-display-1.jpg +0 -0
- package/public/assets/features/own-vessel-display-2.jpg +0 -0
- package/public/assets/features-corpus.json +1 -1
- package/public/assets/help/index.html +19 -6
- package/public/{chunk-UATYGAIS.js → chunk-2BZ663DE.js} +1 -1
- package/public/{chunk-BHGIETCW.js → chunk-4WQJ5OCH.js} +77 -77
- package/public/{chunk-5OQQQTPH.js → chunk-5FQJDXLT.js} +1 -1
- package/public/{chunk-D2ACPCO4.js → chunk-DN47TOA6.js} +1 -1
- package/public/{chunk-KTO5XWO6.js → chunk-DXGM3UI4.js} +1 -1
- package/public/{chunk-KOIC7NDY.js → chunk-JWF7HEH3.js} +1 -1
- package/public/{chunk-XNTG5XBY.js → chunk-KOKEUVWV.js} +1 -1
- package/public/{chunk-QK35Q564.js → chunk-R2B7EL5S.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-MCLD5M3H.js → main-L4CGDOIX.js} +5 -5
- package/public/worker-RQRJAJAB.js +3 -0
- package/CHANGELOG.md +0 -19
- package/public/worker-YFVOS4A6.js +0 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var Pi=Object.create;var Kr=Object.defineProperty;var Si=Object.getOwnPropertyDescriptor;var Oi=Object.getOwnPropertyNames;var Ai=Object.getPrototypeOf,wi=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var Di=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Oi(t))!wi.call(e,i)&&i!==r&&Kr(e,i,{get:()=>t[i],enumerable:!(n=Si(t,i))||n.enumerable});return e};var Br=(e,t,r)=>(r=e!=null?Pi(Ai(e)):{},Di(t||!e||!e.__esModule?Kr(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 zu=p.sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/,Xu=p.earthRadius=6378137,Zu=p.MINLAT=-90,Yu=p.MAXLAT=90,Ju=p.MINLON=-180,Qu=p.MAXLON=180,el=p.DEG_TO_RAD=Math.PI/180,tl=p.RAD_TO_DEG=180/Math.PI,rl=p.longitudeKeys=["lng","lon","longitude",0],nl=p.latitudeKeys=["lat","latitude",1],il=p.altitudeKeys=["alt","altitude","elevation","elev",2],al=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},ol=p.timeConversion={m:60,h:3600,d:86400},j=p.areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};j.sqm=j.m2;j.sqkm=j.km2;j.sqft=j.ft2;j.sqyd=j.yd2;j.sqin=j.in2});var ce=u(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.default=void 0;var Ni=(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)},ul=Ie.default=Ni});var de=u(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=void 0;var Fi=e=>{let t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},fl=Ne.default=Fi});var me=u(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.default=void 0;var Vi=x(),Ui=e=>Vi.sexagesimalPattern.test(e.toString().trim()),dl=Fe.default=Ui});var pe=u(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.default=void 0;var Wi=x(),Ki=e=>{let t=new RegExp(Wi.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},pl=Ve.default=Ki});var We=u(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.default=void 0;var tr=x(),rr=Bi(ce());function Bi(e){return e&&e.__esModule?e:{default:e}}var $i=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}:{}}},hl=Ue.default=$i});var ir=u(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.default=void 0;var Hi=nr(de()),Gi=nr(me()),zi=nr(pe()),nn=x();function nr(e){return e&&e.__esModule?e:{default:e}}var an=e=>{if((0,Hi.default)(e)){let t=parseFloat(e);return!(t>nn.MAXLAT||t<nn.MINLAT)}return(0,Gi.default)(e)?an((0,zi.default)(e)):!1},yl=Ke.default=an});var or=u(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var Xi=ar(de()),Zi=ar(me()),Yi=ar(pe()),on=x();function ar(e){return e&&e.__esModule?e:{default:e}}var sn=e=>{if((0,Xi.default)(e)){let t=parseFloat(e);return!(t>on.MAXLON||t<on.MINLON)}return(0,Zi.default)(e)?sn((0,Yi.default)(e)):!1},vl=Be.default=sn});var ur=u($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var Ji=sr(We()),un=sr(ir()),ln=sr(or());function sr(e){return e&&e.__esModule?e:{default:e}}var Qi=e=>{let{latitude:t,longitude:r}=(0,Ji.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)},Ml=$e.default=Qi});var Ge=u(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.default=void 0;var ea=he(de()),ta=he(me()),ra=he(pe()),fn=he(ur()),na=he(We());function he(e){return e&&e.__esModule?e:{default:e}}var ge=e=>{if((0,ea.default)(e))return Number(e);if((0,ta.default)(e))return(0,ra.default)(e);if((0,fn.default)(e)){let t=(0,na.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,fn.default)(t)?ge(t):t):e},Sl=He.default=ge});var R=u(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var ia=x(),aa=cn(ce()),oa=cn(Ge());function cn(e){return e&&e.__esModule?e:{default:e}}var sa=(e,t)=>{let r=(0,aa.default)(e,ia.latitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,oa.default)(n)},Al=ze.default=sa});var L=u(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var ua=x(),la=dn(ce()),fa=dn(Ge());function dn(e){return e&&e.__esModule?e:{default:e}}var ca=(e,t)=>{let r=(0,la.default)(e,ua.longitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,fa.default)(n)},Dl=Xe.default=ca});var I=u(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var da=x(),ma=e=>e*da.DEG_TO_RAD,Ll=Ze.default=ma});var G=u(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var pa=x(),ga=e=>e*pa.RAD_TO_DEG,kl=Ye.default=ga});var pn=u(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var ha=Je(R()),ba=Je(L()),lr=Je(I()),fr=Je(G()),mn=x();function Je(e){return e&&e.__esModule?e:{default:e}}var ya=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,i=(0,ha.default)(e),a=(0,ba.default)(e),o=t/n,s=(0,lr.default)(r),c=(0,lr.default)(i),v=(0,lr.default)(a),g=Math.asin(Math.sin(c)*Math.cos(o)+Math.cos(c)*Math.sin(o)*Math.cos(s)),h=v+Math.atan2(Math.sin(s)*Math.sin(o)*Math.cos(c),Math.cos(o)-Math.sin(c)*Math.sin(g)),m=(0,fr.default)(h);return(m<mn.MINLON||m>mn.MAXLON)&&(h=(h+3*Math.PI)%(2*Math.PI)-Math.PI,m=(0,fr.default)(h)),{latitude:(0,fr.default)(g),longitude:m}},Cl=Qe.default=ya});var gn=u(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var _a=x(),va=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=_a.areaConversion[t];if(r)return e*r;throw new Error("Invalid unit used for area conversion.")},jl=et.default=va});var hn=u(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var xa=x(),Ma=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=xa.distanceConversion[t];if(r)return e*r;throw new Error("Invalid unit used for distance conversion.")},Nl=tt.default=Ma});var bn=u(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var rt=x(),Pa=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}},Vl=nt.default=Pa});var yn=u(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var Sa=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},Oa=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=Sa(+("0."+(a[1]||0))*60).toString(),[c,v="0"]=s.split(".");return n+"\xB0 "+o.toString().padStart(2,"0")+"' "+c.padStart(2,"0")+"."+v.padEnd(1,"0")+'"'},Wl=it.default=Oa});var cr=u(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var Aa=e=>e>1?1:e<-1?-1:e,Bl=at.default=Aa});var K=u(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var _n=ot(R()),vn=ot(L()),dr=ot(I()),wa=ot(cr()),Da=x();function ot(e){return e&&e.__esModule?e:{default:e}}var Ra=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,wa.default)(Math.sin(i)*Math.sin(n)+Math.cos(i)*Math.cos(n)*Math.cos(a)))*Da.earthRadius;return Math.round(o/r)*r},Hl=st.default=Ra});var mr=u(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var xn=La(K());function La(e){return e&&e.__esModule?e:{default:e}}var qa=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))},zl=ut.default=qa});var Mn=u(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var ka=Ta(mr());function Ta(e){return e&&e.__esModule?e:{default:e}}var Ca=(e,t)=>(0,ka.default)(e,t)[0],Zl=lt.default=Ca});var On=u(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var pr=gr(I()),Ea=gr(R()),Pn=gr(L()),Sn=x();function gr(e){return e&&e.__esModule?e:{default:e}}var ja=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,Ea.default)(e[n]),c=(0,Pn.default)(e[i]);t+=((0,pr.default)(c)-(0,pr.default)(o))*Math.sin((0,pr.default)(s))}t=t*Sn.earthRadius*Sn.earthRadius/2}return Math.abs(t)},Jl=ft.default=ja});var hr=u(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var Ia=An(R()),Na=An(L());function An(e){return e&&e.__esModule?e:{default:e}}var Fa=e=>{if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce((t,r)=>{let n=(0,Ia.default)(r),i=(0,Na.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})},ef=ct.default=Fa});var wn=u(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});pt.default=void 0;var Va=mt(R()),Ua=mt(L()),ne=mt(I()),dt=mt(G()),be=x();function mt(e){return e&&e.__esModule?e:{default:e}}var Wa=(e,t)=>{let r=(0,Va.default)(e),n=(0,Ua.default)(e),i=(0,ne.default)(r),a=(0,ne.default)(n),o=t/be.earthRadius,s=i-o,c=i+o,v=(0,ne.default)(be.MAXLAT),g=(0,ne.default)(be.MINLAT),h=(0,ne.default)(be.MAXLON),m=(0,ne.default)(be.MINLON),P,y;if(s>g&&c<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),c=Math.min(c,v),P=m,y=h;return[{latitude:(0,dt.default)(s),longitude:(0,dt.default)(P)},{latitude:(0,dt.default)(c),longitude:(0,dt.default)(y)}]},rf=pt.default=Wa});var Ln=u(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Ka=gt(R()),Ba=gt(L()),Dn=gt(I()),Rn=gt(G());function gt(e){return e&&e.__esModule?e:{default:e}}var $a=e=>{if(Array.isArray(e)===!1||e.length===0)return!1;let t=e.length,r=e.reduce((o,s)=>{let c=(0,Dn.default)((0,Ka.default)(s)),v=(0,Dn.default)((0,Ba.default)(s));return{X:o.X+Math.cos(c)*Math.cos(v),Y:o.Y+Math.cos(c)*Math.sin(v),Z:o.Z+Math.sin(c)}},{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)))}},af=ht.default=$a});var qn=u(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.default=void 0;var Ha=Ga(hr());function Ga(e){return e&&e.__esModule?e:{default:e}}var za=e=>{let t=(0,Ha.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))}},sf=bt.default=za});var br=u(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.default=void 0;var kn=_t(R()),Tn=_t(L()),yt=_t(I()),Xa=_t(G());function _t(e){return e&&e.__esModule?e:{default:e}}var Za=(e,t)=>{let r=(0,yt.default)((0,Tn.default)(t))-(0,yt.default)((0,Tn.default)(e)),n=Math.log(Math.tan((0,yt.default)((0,kn.default)(t))/2+Math.PI/4)/Math.tan((0,yt.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,Xa.default)(Math.atan2(r,n))+360)%360},lf=vt.default=Za});var En=u(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Cn=Ya(br());function Ya(e){return e&&e.__esModule?e:{default:e}}var Ja=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"}},cf=xt.default=Ja});var _r=u(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var yr=In(K()),jn=In(cr());function In(e){return e&&e.__esModule?e:{default:e}}var Qa=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,jn.default)((i*i+o*o-a*a)/(2*i*o))),c=Math.acos((0,jn.default)((a*a+o*o-i*i)/(2*a*o)));return i===0||a===0?0:o===0||s>Math.PI/2?i:c>Math.PI/2?a:Math.sin(s)*i},mf=Mt.default=Qa});var Vn=u(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.default=void 0;var Nn=Pt(R()),Fn=Pt(L()),F=Pt(I()),eo=Pt(G());function Pt(e){return e&&e.__esModule?e:{default:e}}var to=(e,t)=>{let r=(0,Nn.default)(t),n=(0,Fn.default)(t),i=(0,Nn.default)(e),a=(0,Fn.default)(e);return((0,eo.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},gf=St.default=to});var Un=u(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var ro=no(K());function no(e){return e&&e.__esModule?e:{default:e}}var io=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ro.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},bf=Ot.default=io});var $n=u(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var Wn=xr(R()),Kn=xr(L()),vr=xr(I()),Bn=x();function xr(e){return e&&e.__esModule?e:{default:e}}var ao=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,Wn.default)(e),i=(0,Kn.default)(e),a=(0,Wn.default)(t),o=(0,Kn.default)(t),s=6356752314245e-6,c=1/298.257223563,v=(0,vr.default)(o-i),g,h,m,P,y,w,Fr=Math.atan((1-c)*Math.tan((0,vr.default)(parseFloat(n)))),Vr=Math.atan((1-c)*Math.tan((0,vr.default)(parseFloat(a)))),Se=Math.sin(Fr),Oe=Math.cos(Fr),Ae=Math.sin(Vr),Y=Math.cos(Vr),ae=v,Ur,Wr=100;do{let Kt=Math.sin(ae),Bt=Math.cos(ae);if(w=Math.sqrt(Y*Kt*(Y*Kt)+(Oe*Ae-Se*Y*Bt)*(Oe*Ae-Se*Y*Bt)),w===0)return 0;g=Se*Ae+Oe*Y*Bt,h=Math.atan2(w,g),m=Oe*Y*Kt/w,P=1-m*m,y=g-2*Se*Ae/P,isNaN(y)&&(y=0);let $t=c/16*P*(4+c*(4-3*P));Ur=ae,ae=v+(1-$t)*c*m*(h+$t*w*(y+$t*g*(-1+2*y*y)))}while(Math.abs(ae-Ur)>1e-12&&--Wr>0);if(Wr===0)return NaN;let W=P*(Bn.earthRadius*Bn.earthRadius-s*s)/(s*s),vi=1+W/16384*(4096+W*(-768+W*(320-175*W))),Wt=W/1024*(256+W*(-128+W*(74-47*W))),xi=Wt*w*(y+Wt/4*(g*(-1+2*y*y)-Wt/6*y*(-3+4*w*w)*(-3+4*y*y))),Mi=s*vi*(h-xi);return Math.round(Mi/r)*r},_f=At.default=ao});var Hn=u(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.default=void 0;var oo=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"},xf=wt.default=oo});var Gn=u(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var so=uo(K());function uo(e){return e&&e.__esModule?e:{default:e}}var lo=function(e,t){let n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:so.default)(e,t),i=Number(t.time)-Number(e.time);return n/i*1e3},Pf=Dt.default=lo});var zn=u(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var Mr=fo(K());function fo(e){return e&&e.__esModule?e:{default:e}}var co=(e,t,r)=>(0,Mr.default)(t,e)+(0,Mr.default)(e,r)===(0,Mr.default)(t,r),Of=Rt.default=co});var Zn=u(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.default=void 0;var Lt=Xn(R()),q=Xn(L());function Xn(e){return e&&e.__esModule?e:{default:e}}var mo=(e,t)=>{let r=!1,n=t.length;for(let i=-1,a=n-1;++i<n;a=i)((0,q.default)(t[i])<=(0,q.default)(e)&&(0,q.default)(e)<(0,q.default)(t[a])||(0,q.default)(t[a])<=(0,q.default)(e)&&(0,q.default)(e)<(0,q.default)(t[i]))&&(0,Lt.default)(e)<((0,Lt.default)(t[a])-(0,Lt.default)(t[i]))*((0,q.default)(e)-(0,q.default)(t[i]))/((0,q.default)(t[a])-(0,q.default)(t[i]))+(0,Lt.default)(t[i])&&(r=!r);return r},wf=qt.default=mo});var Yn=u(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var po=go(_r());function go(e){return e&&e.__esModule?e:{default:e}}var ho=(e,t,r,n)=>(0,po.default)(e,t,r)<n,Rf=kt.default=ho});var Jn=u(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var bo=yo(K());function yo(e){return e&&e.__esModule?e:{default:e}}var _o=(e,t,r)=>(0,bo.default)(e,t,.01)<r,qf=Tt.default=_o});var Qn=u(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var vo=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)}})},Tf=Ct.default=vo});var ei=u(l=>{"use strict";Object.defineProperty(l,"__esModule",{value:!0});var xo={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 Mo.default}});Object.defineProperty(l,"convertArea",{enumerable:!0,get:function(){return Po.default}});Object.defineProperty(l,"convertDistance",{enumerable:!0,get:function(){return So.default}});Object.defineProperty(l,"convertSpeed",{enumerable:!0,get:function(){return Oo.default}});Object.defineProperty(l,"decimalToSexagesimal",{enumerable:!0,get:function(){return Ao.default}});Object.defineProperty(l,"findNearest",{enumerable:!0,get:function(){return wo.default}});Object.defineProperty(l,"getAreaOfPolygon",{enumerable:!0,get:function(){return Do.default}});Object.defineProperty(l,"getBounds",{enumerable:!0,get:function(){return Ro.default}});Object.defineProperty(l,"getBoundsOfDistance",{enumerable:!0,get:function(){return Lo.default}});Object.defineProperty(l,"getCenter",{enumerable:!0,get:function(){return qo.default}});Object.defineProperty(l,"getCenterOfBounds",{enumerable:!0,get:function(){return ko.default}});Object.defineProperty(l,"getCompassDirection",{enumerable:!0,get:function(){return To.default}});Object.defineProperty(l,"getCoordinateKey",{enumerable:!0,get:function(){return Co.default}});Object.defineProperty(l,"getCoordinateKeys",{enumerable:!0,get:function(){return Eo.default}});Object.defineProperty(l,"getDistance",{enumerable:!0,get:function(){return jo.default}});Object.defineProperty(l,"getDistanceFromLine",{enumerable:!0,get:function(){return Io.default}});Object.defineProperty(l,"getGreatCircleBearing",{enumerable:!0,get:function(){return No.default}});Object.defineProperty(l,"getLatitude",{enumerable:!0,get:function(){return Fo.default}});Object.defineProperty(l,"getLongitude",{enumerable:!0,get:function(){return Vo.default}});Object.defineProperty(l,"getPathLength",{enumerable:!0,get:function(){return Uo.default}});Object.defineProperty(l,"getPreciseDistance",{enumerable:!0,get:function(){return Wo.default}});Object.defineProperty(l,"getRhumbLineBearing",{enumerable:!0,get:function(){return Ko.default}});Object.defineProperty(l,"getRoughCompassDirection",{enumerable:!0,get:function(){return Bo.default}});Object.defineProperty(l,"getSpeed",{enumerable:!0,get:function(){return $o.default}});Object.defineProperty(l,"isDecimal",{enumerable:!0,get:function(){return Ho.default}});Object.defineProperty(l,"isPointInLine",{enumerable:!0,get:function(){return Go.default}});Object.defineProperty(l,"isPointInPolygon",{enumerable:!0,get:function(){return zo.default}});Object.defineProperty(l,"isPointNearLine",{enumerable:!0,get:function(){return Xo.default}});Object.defineProperty(l,"isPointWithinRadius",{enumerable:!0,get:function(){return Zo.default}});Object.defineProperty(l,"isSexagesimal",{enumerable:!0,get:function(){return Yo.default}});Object.defineProperty(l,"isValidCoordinate",{enumerable:!0,get:function(){return Jo.default}});Object.defineProperty(l,"isValidLatitude",{enumerable:!0,get:function(){return Qo.default}});Object.defineProperty(l,"isValidLongitude",{enumerable:!0,get:function(){return es.default}});Object.defineProperty(l,"orderByDistance",{enumerable:!0,get:function(){return ts.default}});Object.defineProperty(l,"sexagesimalToDecimal",{enumerable:!0,get:function(){return rs.default}});Object.defineProperty(l,"toDecimal",{enumerable:!0,get:function(){return ns.default}});Object.defineProperty(l,"toDeg",{enumerable:!0,get:function(){return as.default}});Object.defineProperty(l,"toRad",{enumerable:!0,get:function(){return is.default}});Object.defineProperty(l,"wktToPolygon",{enumerable:!0,get:function(){return os.default}});var Mo=d(pn()),Po=d(gn()),So=d(hn()),Oo=d(bn()),Ao=d(yn()),wo=d(Mn()),Do=d(On()),Ro=d(hr()),Lo=d(wn()),qo=d(Ln()),ko=d(qn()),To=d(En()),Co=d(ce()),Eo=d(We()),jo=d(K()),Io=d(_r()),No=d(Vn()),Fo=d(R()),Vo=d(L()),Uo=d(Un()),Wo=d($n()),Ko=d(br()),Bo=d(Hn()),$o=d(Gn()),Ho=d(de()),Go=d(zn()),zo=d(Zn()),Xo=d(Yn()),Zo=d(Jn()),Yo=d(me()),Jo=d(ur()),Qo=d(ir()),es=d(or()),ts=d(mr()),rs=d(pe()),ns=d(Ge()),is=d(I()),as=d(G()),os=d(Qn()),Pr=x();Object.keys(Pr).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(xo,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 ss(e,t){return Or(e[0]-t[0],e[1]-t[1])}function us(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 ls(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],ss(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 c=us(e[s],e[t],e[r]);c>a&&(o=s,a=c)}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 fs(e,t){var r=e.length-1,n=[e[0]];return Ar(e,0,r,t,n),n.push(e[r]),n}function cs(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:ls(e,n),e=fs(e,n),e}wr.SimplifyAP=cs});var ri=u(Lr=>{"use strict";Lr.__esModule=!0;function Dr(e,t){return e*e+t*t}function ds(e,t){return Dr(e.longitude-t.longitude,e.latitude-t.latitude)}function ms(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 ps(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],ds(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 c=ms(e[s],e[t],e[r]);c>a&&(o=s,a=c)}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 gs(e,t){var r=e.length-1,n=[e[0]];return Rr(e,0,r,t,n),n.push(e[r]),n}function hs(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=gs(e,n),e}Lr.SimplifyLL=hs});var ni=u(Tr=>{"use strict";Tr.__esModule=!0;function qr(e,t){return e*e+t*t}function bs(e,t){return qr(e.x-t.x,e.y-t.y)}function ys(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)/qr(a,o);s>1?(n=r.x,i=r.y):s>0&&(n+=a*s,i+=o*s)}return qr(e.x-n,e.y-i)}function _s(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],bs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function kr(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var c=ys(e[s],e[t],e[r]);c>a&&(o=s,a=c)}a>n&&(o-t>1&&kr(e,t,o,n,i),i.push(e[o]),r-o>1&&kr(e,o,r,n,i))}function vs(e,t){var r=e.length-1,n=[e[0]];return kr(e,0,r,t,n),n.push(e[r]),n}function xs(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:_s(e,n),e=vs(e,n),e}Tr.Simplify=xs});var ii=u(ye=>{"use strict";ye.__esModule=!0;var Ms=ti();ye.SimplifyAP=Ms.SimplifyAP;var Ps=ri();ye.SimplifyLL=Ps.SimplifyLL;var Ss=ni();ye.Simplify=Ss.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 Ht=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 k={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var J={setTimeout(e,t,...r){let{delegate:n}=J;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){let{delegate:t}=J;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Hr(e){J.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 Xr(e){return zt("N",e,void 0)}function zt(e,t,r){return{kind:e,value:t,error:r}}var B=null;function Q(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 Zr(e){k.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=qi}static create(t,r,n){return new ee(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(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()}}},Ri=Function.prototype.bind;function Xt(e,t){return Ri.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)}}},ee=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&&k.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){k.useDeprecatedSynchronousErrorHandling?Zr(e):Hr(e)}function Li(e){throw e}function Zt(e,t){let{onStoppedNotification:r}=k;r&&J.setTimeout(()=>r(e,t))}var qi={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 $=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=Ti(t)?t:new ee(t,r,n);return Q(()=>{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 ee({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??k.Promise)!==null&&t!==void 0?t:Promise}function ki(e){return e&&D(e.next)&&D(e.error)&&D(e.complete)}function Ti(e){return e&&e instanceof se||ki(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 qe(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new tn}next(t){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(t)}})}error(t){Q(()=>{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(){Q(()=>{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?Ht:(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 qe(e,t);var qe=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:Ht}};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 Ci=new Uint8Array(16);function Jt(){return crypto.getRandomValues(Ci)}function Ei(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():ji(e,t,r)}function ji(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=Ei;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={}),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=te.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=te.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=te.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=te.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"}},te=class{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:Qt()}}},Te=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 re=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 re{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;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 re{constructor(){super()}},Ee=class extends re{sog=0;track=[];constructor(){super()}},le=class extends re{constructor(){super()}},je=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}},fe={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"}},H=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 fe&&(fe[t].symbol=r??fe[t].symbol)}static getSymbol(t){return t in fe?fe[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()),N=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,c=r,v=a*Math.cos(c),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(c)/y;return[(s+w)*180/Math.PI,g*180/Math.PI]}static destCoordinate(t,r,n){let i=(0,A.computeDestinationPoint)(t,n,H.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 c=e.distanceTo(r,t[a]);(i.distance===-1||c<i.distance)&&(i.distance=c,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(H.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=>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"}},jt=class extends z{constructor(){super(),this.action="resource"}},It=class extends z{constructor(){super(),this.action="radar"}},Nt=class extends z{constructor(){super(),this.action="trail"}};var li=Br(ii());var Os=["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,fi,Me=[],Vt=[],Cr=!1,Ir,Er=!1,_={signalk:{},aisState:[]},ci=[0,0,0,0],di=60,_e=0,O,X={},Z=500,T=!1,mi,V={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},jr={selfLines:{cog:{length:10}},aisCogLine:10},ve={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},U,pi,ie="freeboard-sk";function As(){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,gi()}function gi(){O={updated:{},stale:{},expired:{}}}function Ft({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:T,result:t.target.readyState}),b.msgCount=0,b.intervalCount=0,b.alarm=!1,b.active=!0;break;case"onClose":hi(!1),ai();break;case"onError":postMessage({action:"error",playback:T,result:"Connection error!"}),ai();break;case"onMessage":b.msgCount++,qs(t);break}}function ai(){b.msgCount=0,b.intervalCount=0,b.active=!0,b.alarm=!0,Ut(!0)}addEventListener("message",({data:e})=>{ws(e)});function ws(e){if(e.cmd)switch(e.cmd){case"open":oi(e.options),Rs(e.options);break;case"close":hi(!0);break;case"subscribe":M.subscribe(e.options.context,e.options.path);break;case"settings":oi(e.options);break;case"alarm":Ls(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"&&(fi=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")),Ds(ve);break}}function oi(e={config:{}}){e.interval&&typeof e.interval=="number"&&(Z=e.interval,_i(),yi(),di=1/(Z/1e3)*60),T=!!e.playback,e.config&&(typeof e.config.units.preferredPaths<"u"&&(X=e.config.units.preferredPaths),e.config.vessels.aisMaxAge&&typeof e.config.vessels.aisMaxAge=="number"&&(V.maxAge=e.config.vessels.aisMaxAge),e.config.vessels.aisStaleAge&&typeof e.config.vessels.aisStaleAge=="number"&&(V.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),jr=e.config.vessels)}function hi(e=!1){_i(),Me.forEach(t=>t.unsubscribe()),M&&e&&M.close(),M=null,postMessage({action:"close",result:e,playback:T})}function Pe(e){return fetch(e).then(t=>t.json())}function bi(){let e=_&&_.signalk&&_.signalk.maxRadius?`?radius=${_.signalk.maxRadius}`:"?radius=10000";Pe(Ir+"/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,Nr(n)}})}).catch(()=>{Er=!1})}function Ds(e){let t=Ir+"/self/track?",r=[],n=5e-4,i=!0;e.trailDuration>24&&(r.push(Pe(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}×panOffset=24`)),r.push(Pe(`${t}timespan=23h&resolution=${e.trailResolution.next23}×panOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&r.push(Pe(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}×panOffset=1`)),r.push(Pe(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let a=[],o=new Nt;o.playback=T,Promise.all(r).then(s=>{let c=0,v=r.length-1,g=60;s.forEach(h=>{if(h.type&&h.type==="MultiLineString"&&h.coordinates&&Array.isArray(h.coordinates))if(c!==v){let m=[];for(h.coordinates.forEach(P=>{m=m.concat(P)}),m=(0,li.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);c++}),o.result=a,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function Rs(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:",Ir=t.join("/"),As(),M=new ke,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=fi,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),bi()}function Ls(e){let t=e.type.indexOf("notifications.")===-1?`notifications.${e.type}`:e.type;e.raise?M.raiseAlarm("self",t,new Te(e.message,e.state,!0,!0)):M.clearAlarm("self",t)}function qs(e){M.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:T}),Z&&yi()):M.isDelta(e)?(Cr=!0,e.updates.forEach(t=>{t.values&&(U=t.$source,pi=t.timestamp,t.values.forEach(r=>{if(mi=t.timestamp,!!e.context)switch(e.context.split(".")[0]){case"shore":case"atons":_?.signalk.atons&&js(e.context,r),xe(e.context,f.atons,_?.signalk.atons);break;case"sar":_?.signalk.sar&&Is(e.context,r),xe(e.context,f.sar,_?.signalk.sar);break;case"aircraft":_?.signalk.aircraft&&Fs(e.context,r),xe(e.context,f.aircraft,_?.signalk.aircraft);break;case"meteo":_?.signalk.meteo&&(Ns(e.context,r),ui(r)),xe(e.context,f.meteo,_?.signalk.meteo);break;case"vessels":if(M.isSelf(e))f.self.id||(f.self.id=e.context),si(f.self,r,!0),ui(r);else{if(_?.signalk.vessels){let n=ks(e.context);si(n,r)}xe(e.context,f.aisTargets,_?.signalk.vessels,_?.aisState)}break}}))}),Ut()):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&&N.inBounds(i.position,ci)?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 Ut(e=!1){if(!Z||e){let t=new z;t.watchDogAlarm=b.alarm,t.playback=T,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=T?mi:f.self.lastUpdated.toISOString(),postMessage(t),gi(),f.self.resourceUpdates=[],Es(),_e===0&&f.self.positionReceived&&_?.signalk.maxRadius&&(ci=N.calcMapifiedExtent(f.self.position,_.signalk.maxRadius),_e++),_e=_e>=di?0:_e+1}}function yi(){Z&&typeof Z=="number"&&Vt.push(setInterval(()=>{b.active&&!b.msgCount?(b.intervalCount=b.intervalCount+1,b.intervalCount>=b.maxMsgIntervals&&(b.intervalCount=0,b.alarm=!0,Ut(!0))):(b.intervalCount=0,b.msgCount=0,b.alarm=!1),Cr&&(Ut(!0),Cr=!1)},Z)),Vt.push(setInterval(()=>{Er&&bi()},6e4))}function _i(){Vt.forEach(e=>clearInterval(e)),Vt=[]}function ks(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 si(e,t,r=!1){if(r){if(e.lastUpdated=new Date,t.path.startsWith("resources."))e.resourceUpdates.push(t),Cs(t);else if(t.path.startsWith("radars"))Ts(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 a=t.path.split(".").slice(3).join(".");e.courseCalcs[a]=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 a=t.path.split("."),o=a.slice(2).join(".");e.radars[a[1]]||(e.radars[a[1]]={}),e.radars[a[1]][o]=t.value}let i=t.path.indexOf("course")!==-1?t.path.split(".").slice(0,2).join("."):t.path;Os.indexOf(i)!==-1&&(f.paths[i]=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=N.normaliseCoords([t.value.longitude,t.value.latitude]),e.positionReceived=!0,e.positionTimestamp=pi??"",e.positionUpdatedAt=Date.now(),e.lastUpdated=new Date,r||Nr(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"&&U===ie?e.autopilot.state=t.value:t.path==="steering.autopilot.mode"&&U===ie?e.autopilot.mode=t.value:t.path==="steering.autopilot.target"&&U===ie?e.autopilot.target=t.value:t.path==="steering.autopilot.engaged"&&U===ie?e.autopilot.enabled=t.value:t.path==="steering.autopilot.defaultPilot"?(e.autopilot.default=t.value,ie=t.value):t.path==="steering.autopilot.availableActions"&&U===ie?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:t.path==="navigation.headingMagnetic"&&(e.headingMagnetic=t.value);typeof X.heading<"u"&&t.path===X.heading&&(e.orientation=t.value),typeof X.tws<"u"&&t.path===X.tws&&(e.wind.tws=t.value),typeof X.twd<"u"&&t.path===X.twd&&(e.wind.direction=t.path==="environment.wind.angleTrueGround"||t.path==="environment.wind.angleTrueWater"?H.angleToDirection(t.value,e.orientation??0):t.value);let n=e.cogTrue??e.cogMagnetic??void 0;if(typeof n<"u"&&e.position){let i=r?jr.selfLines.cog.length:jr.aisCogLine,a=(e.sog??0)*(i*60);e.vectors.cog=[e.position,N.rhumbDestination(e.position,n,a)]}}function Ts(e){let t=new It;t.playback=T,t.result={path:e.path,value:e.value,sourceRef:U},postMessage(t)}function Cs(e){let t=new jt;t.playback=T,t.result={path:e.path,value:e.value,sourceRef:U},postMessage(t)}function ui(e){if(e.path.includes("notifications.")){let t=new Et;t.playback=T,t.result={path:e.path,value:e.value,sourceRef:U},postMessage(t)}}function Es(){let e=new Date().valueOf();f.aisTargets.forEach((t,r)=>{t.lastUpdated.valueOf()<e-V.maxAge?(O.expired[r]=!0,f.aisTargets.delete(r)):t.lastUpdated.valueOf()<e-V.staleAge&&(O.stale[r]=!0)}),f.aircraft.forEach((t,r)=>{t.lastUpdated.valueOf()<e-V.maxAge?(O.expired[r]=!0,f.aircraft.delete(r)):t.lastUpdated.valueOf()<e-V.staleAge&&(O.stale[r]=!0)}),f.sar.forEach((t,r)=>{t.lastUpdated.valueOf()<e-V.maxAge?(O.expired[r]=!0,f.sar.delete(r)):t.lastUpdated.valueOf()<e-V.staleAge&&(O.stale[r]=!0)})}function js(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 Is(e,t){if(!f.sar.has(e)){let n=new Ce;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=N.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Ns(e,t){if(!f.meteo.has(e)){let n=new je;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=N.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Fs(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=N.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0,Nr(r)):t.path==="navigation.courseOverGroundTrue"?r.orientation=t.value:t.path==="navigation.speedOverGround"&&(r.sog=t.value)}function Nr(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-V.maxTrack)}export{Pe as apiGet,Ft as handleStreamEvent,As as initVessels,si as processVessel};
|
package/CHANGELOG.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# CHANGELOG: Freeboard
|
|
2
|
-
|
|
3
|
-
### v2.24.0
|
|
4
|
-
|
|
5
|
-
- **Added**: Radar API support - Enable toggle on/off of radar overlay.
|
|
6
|
-
- **Update**: Improve custom resource selection probes after connection to server (#377)
|
|
7
|
-
- **Added**: Ability to select waypoint icon for more waypoint types (#378)
|
|
8
|
-
- **Update**: Add `dive-site` POI icon (#379)
|
|
9
|
-
- **Update**: Remove backdrop from chart opacity slider and set opacity as slider moves (#380)
|
|
10
|
-
- **Update**: Include "Go fullscreen" button in items hidden when hosted in iframe (#382)
|
|
11
|
-
- **Fix**: Updated S57 attribute regex to include underscore in match criteria to stop objects rendering as black (#383)
|
|
12
|
-
- **Update**: Lazy-load dialog components on demand (#384)
|
|
13
|
-
- **Update**: Adopt `takeUntilDestroyed` for Observable subscriptions outside of lifecycle hooks (#385)
|
|
14
|
-
- **Update**: Cache S57 derived text-style config across features (#388)
|
|
15
|
-
- **Fix**: Issue where multiple chart opacity dialogs could be opened (#390)
|
|
16
|
-
- **update**: Refactor info-panel open / close triggers (#391)
|
|
17
|
-
- **Update**: Re-position info-panel to right side of screen.
|
|
18
|
-
- **Added**: Configuration setting to prefer use of info-panel. (#397)
|
|
19
|
-
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var Mi=Object.create;var Kr=Object.defineProperty;var Pi=Object.getOwnPropertyDescriptor;var Si=Object.getOwnPropertyNames;var Oi=Object.getPrototypeOf,Ai=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var wi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Si(t))!Ai.call(e,i)&&i!==r&&Kr(e,i,{get:()=>t[i],enumerable:!(n=Pi(t,i))||n.enumerable});return e};var Br=(e,t,r)=>(r=e!=null?Mi(Oi(e)):{},wi(t||!e||!e.__esModule?Kr(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 Gu=p.sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/,zu=p.earthRadius=6378137,Xu=p.MINLAT=-90,Zu=p.MAXLAT=90,Yu=p.MINLON=-180,Ju=p.MAXLON=180,Qu=p.DEG_TO_RAD=Math.PI/180,el=p.RAD_TO_DEG=180/Math.PI,tl=p.longitudeKeys=["lng","lon","longitude",0],rl=p.latitudeKeys=["lat","latitude",1],nl=p.altitudeKeys=["alt","altitude","elevation","elev",2],il=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},al=p.timeConversion={m:60,h:3600,d:86400},j=p.areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};j.sqm=j.m2;j.sqkm=j.km2;j.sqft=j.ft2;j.sqyd=j.yd2;j.sqin=j.in2});var ce=u(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.default=void 0;var Ii=(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)},sl=Ie.default=Ii});var de=u(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=void 0;var Ni=e=>{let t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},ll=Ne.default=Ni});var me=u(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.default=void 0;var Fi=x(),Vi=e=>Fi.sexagesimalPattern.test(e.toString().trim()),cl=Fe.default=Vi});var pe=u(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.default=void 0;var Ui=x(),Wi=e=>{let t=new RegExp(Ui.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=Ve.default=Wi});var We=u(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.default=void 0;var er=x(),tr=Ki(ce());function Ki(e){return e&&e.__esModule?e:{default:e}}var Bi=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:er.longitudeKeys,latitude:er.latitudeKeys,altitude:er.altitudeKeys},r=(0,tr.default)(e,t.longitude),n=(0,tr.default)(e,t.latitude),i=(0,tr.default)(e,t.altitude);return{latitude:n,longitude:r,...i?{altitude:i}:{}}},gl=Ue.default=Bi});var nr=u(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.default=void 0;var $i=rr(de()),Hi=rr(me()),Gi=rr(pe()),nn=x();function rr(e){return e&&e.__esModule?e:{default:e}}var an=e=>{if((0,$i.default)(e)){let t=parseFloat(e);return!(t>nn.MAXLAT||t<nn.MINLAT)}return(0,Hi.default)(e)?an((0,Gi.default)(e)):!1},bl=Ke.default=an});var ar=u(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var zi=ir(de()),Xi=ir(me()),Zi=ir(pe()),on=x();function ir(e){return e&&e.__esModule?e:{default:e}}var sn=e=>{if((0,zi.default)(e)){let t=parseFloat(e);return!(t>on.MAXLON||t<on.MINLON)}return(0,Xi.default)(e)?sn((0,Zi.default)(e)):!1},_l=Be.default=sn});var sr=u($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var Yi=or(We()),un=or(nr()),ln=or(ar());function or(e){return e&&e.__esModule?e:{default:e}}var Ji=e=>{let{latitude:t,longitude:r}=(0,Yi.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)},xl=$e.default=Ji});var Ge=u(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.default=void 0;var Qi=he(de()),ea=he(me()),ta=he(pe()),fn=he(sr()),ra=he(We());function he(e){return e&&e.__esModule?e:{default:e}}var ge=e=>{if((0,Qi.default)(e))return Number(e);if((0,ea.default)(e))return(0,ta.default)(e);if((0,fn.default)(e)){let t=(0,ra.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,fn.default)(t)?ge(t):t):e},Pl=He.default=ge});var R=u(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var na=x(),ia=cn(ce()),aa=cn(Ge());function cn(e){return e&&e.__esModule?e:{default:e}}var oa=(e,t)=>{let r=(0,ia.default)(e,na.latitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,aa.default)(n)},Ol=ze.default=oa});var L=u(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var sa=x(),ua=dn(ce()),la=dn(Ge());function dn(e){return e&&e.__esModule?e:{default:e}}var fa=(e,t)=>{let r=(0,ua.default)(e,sa.longitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,la.default)(n)},wl=Xe.default=fa});var I=u(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var ca=x(),da=e=>e*ca.DEG_TO_RAD,Rl=Ze.default=da});var G=u(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var ma=x(),pa=e=>e*ma.RAD_TO_DEG,ql=Ye.default=pa});var pn=u(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var ga=Je(R()),ha=Je(L()),ur=Je(I()),lr=Je(G()),mn=x();function Je(e){return e&&e.__esModule?e:{default:e}}var ba=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,i=(0,ga.default)(e),a=(0,ha.default)(e),o=t/n,s=(0,ur.default)(r),c=(0,ur.default)(i),v=(0,ur.default)(a),g=Math.asin(Math.sin(c)*Math.cos(o)+Math.cos(c)*Math.sin(o)*Math.cos(s)),h=v+Math.atan2(Math.sin(s)*Math.sin(o)*Math.cos(c),Math.cos(o)-Math.sin(c)*Math.sin(g)),m=(0,lr.default)(h);return(m<mn.MINLON||m>mn.MAXLON)&&(h=(h+3*Math.PI)%(2*Math.PI)-Math.PI,m=(0,lr.default)(h)),{latitude:(0,lr.default)(g),longitude:m}},Tl=Qe.default=ba});var gn=u(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var ya=x(),_a=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=ya.areaConversion[t];if(r)return e*r;throw new Error("Invalid unit used for area conversion.")},El=et.default=_a});var hn=u(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var va=x(),xa=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=va.distanceConversion[t];if(r)return e*r;throw new Error("Invalid unit used for distance conversion.")},Il=tt.default=xa});var bn=u(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var rt=x(),Ma=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}},Fl=nt.default=Ma});var yn=u(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var Pa=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},Sa=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=Pa(+("0."+(a[1]||0))*60).toString(),[c,v="0"]=s.split(".");return n+"\xB0 "+o.toString().padStart(2,"0")+"' "+c.padStart(2,"0")+"."+v.padEnd(1,"0")+'"'},Ul=it.default=Sa});var fr=u(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var Oa=e=>e>1?1:e<-1?-1:e,Kl=at.default=Oa});var K=u(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var _n=ot(R()),vn=ot(L()),cr=ot(I()),Aa=ot(fr()),wa=x();function ot(e){return e&&e.__esModule?e:{default:e}}var Da=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,cr.default)((0,_n.default)(e)),i=(0,cr.default)((0,_n.default)(t)),a=(0,cr.default)((0,vn.default)(e)-(0,vn.default)(t)),o=Math.acos((0,Aa.default)(Math.sin(i)*Math.sin(n)+Math.cos(i)*Math.cos(n)*Math.cos(a)))*wa.earthRadius;return Math.round(o/r)*r},$l=st.default=Da});var dr=u(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var xn=Ra(K());function Ra(e){return e&&e.__esModule?e:{default:e}}var La=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))},Gl=ut.default=La});var Mn=u(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var qa=ka(dr());function ka(e){return e&&e.__esModule?e:{default:e}}var Ta=(e,t)=>(0,qa.default)(e,t)[0],Xl=lt.default=Ta});var On=u(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var mr=pr(I()),Ca=pr(R()),Pn=pr(L()),Sn=x();function pr(e){return e&&e.__esModule?e:{default:e}}var Ea=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,Ca.default)(e[n]),c=(0,Pn.default)(e[i]);t+=((0,mr.default)(c)-(0,mr.default)(o))*Math.sin((0,mr.default)(s))}t=t*Sn.earthRadius*Sn.earthRadius/2}return Math.abs(t)},Yl=ft.default=Ea});var gr=u(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var ja=An(R()),Ia=An(L());function An(e){return e&&e.__esModule?e:{default:e}}var Na=e=>{if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce((t,r)=>{let n=(0,ja.default)(r),i=(0,Ia.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})},Ql=ct.default=Na});var wn=u(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});pt.default=void 0;var Fa=mt(R()),Va=mt(L()),ne=mt(I()),dt=mt(G()),be=x();function mt(e){return e&&e.__esModule?e:{default:e}}var Ua=(e,t)=>{let r=(0,Fa.default)(e),n=(0,Va.default)(e),i=(0,ne.default)(r),a=(0,ne.default)(n),o=t/be.earthRadius,s=i-o,c=i+o,v=(0,ne.default)(be.MAXLAT),g=(0,ne.default)(be.MINLAT),h=(0,ne.default)(be.MAXLON),m=(0,ne.default)(be.MINLON),P,y;if(s>g&&c<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),c=Math.min(c,v),P=m,y=h;return[{latitude:(0,dt.default)(s),longitude:(0,dt.default)(P)},{latitude:(0,dt.default)(c),longitude:(0,dt.default)(y)}]},tf=pt.default=Ua});var Ln=u(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Wa=gt(R()),Ka=gt(L()),Dn=gt(I()),Rn=gt(G());function gt(e){return e&&e.__esModule?e:{default:e}}var Ba=e=>{if(Array.isArray(e)===!1||e.length===0)return!1;let t=e.length,r=e.reduce((o,s)=>{let c=(0,Dn.default)((0,Wa.default)(s)),v=(0,Dn.default)((0,Ka.default)(s));return{X:o.X+Math.cos(c)*Math.cos(v),Y:o.Y+Math.cos(c)*Math.sin(v),Z:o.Z+Math.sin(c)}},{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)))}},nf=ht.default=Ba});var qn=u(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.default=void 0;var $a=Ha(gr());function Ha(e){return e&&e.__esModule?e:{default:e}}var Ga=e=>{let t=(0,$a.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))}},of=bt.default=Ga});var hr=u(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.default=void 0;var kn=_t(R()),Tn=_t(L()),yt=_t(I()),za=_t(G());function _t(e){return e&&e.__esModule?e:{default:e}}var Xa=(e,t)=>{let r=(0,yt.default)((0,Tn.default)(t))-(0,yt.default)((0,Tn.default)(e)),n=Math.log(Math.tan((0,yt.default)((0,kn.default)(t))/2+Math.PI/4)/Math.tan((0,yt.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,za.default)(Math.atan2(r,n))+360)%360},uf=vt.default=Xa});var En=u(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Cn=Za(hr());function Za(e){return e&&e.__esModule?e:{default:e}}var Ya=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"}},ff=xt.default=Ya});var yr=u(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var br=In(K()),jn=In(fr());function In(e){return e&&e.__esModule?e:{default:e}}var Ja=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,i=(0,br.default)(t,e,n),a=(0,br.default)(e,r,n),o=(0,br.default)(t,r,n),s=Math.acos((0,jn.default)((i*i+o*o-a*a)/(2*i*o))),c=Math.acos((0,jn.default)((a*a+o*o-i*i)/(2*a*o)));return i===0||a===0?0:o===0||s>Math.PI/2?i:c>Math.PI/2?a:Math.sin(s)*i},df=Mt.default=Ja});var Vn=u(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.default=void 0;var Nn=Pt(R()),Fn=Pt(L()),F=Pt(I()),Qa=Pt(G());function Pt(e){return e&&e.__esModule?e:{default:e}}var eo=(e,t)=>{let r=(0,Nn.default)(t),n=(0,Fn.default)(t),i=(0,Nn.default)(e),a=(0,Fn.default)(e);return((0,Qa.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},pf=St.default=eo});var Un=u(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var to=ro(K());function ro(e){return e&&e.__esModule?e:{default:e}}var no=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:to.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},hf=Ot.default=no});var $n=u(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var Wn=vr(R()),Kn=vr(L()),_r=vr(I()),Bn=x();function vr(e){return e&&e.__esModule?e:{default:e}}var io=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,Wn.default)(e),i=(0,Kn.default)(e),a=(0,Wn.default)(t),o=(0,Kn.default)(t),s=6356752314245e-6,c=1/298.257223563,v=(0,_r.default)(o-i),g,h,m,P,y,w,Fr=Math.atan((1-c)*Math.tan((0,_r.default)(parseFloat(n)))),Vr=Math.atan((1-c)*Math.tan((0,_r.default)(parseFloat(a)))),Se=Math.sin(Fr),Oe=Math.cos(Fr),Ae=Math.sin(Vr),Y=Math.cos(Vr),ae=v,Ur,Wr=100;do{let Wt=Math.sin(ae),Kt=Math.cos(ae);if(w=Math.sqrt(Y*Wt*(Y*Wt)+(Oe*Ae-Se*Y*Kt)*(Oe*Ae-Se*Y*Kt)),w===0)return 0;g=Se*Ae+Oe*Y*Kt,h=Math.atan2(w,g),m=Oe*Y*Wt/w,P=1-m*m,y=g-2*Se*Ae/P,isNaN(y)&&(y=0);let Bt=c/16*P*(4+c*(4-3*P));Ur=ae,ae=v+(1-Bt)*c*m*(h+Bt*w*(y+Bt*g*(-1+2*y*y)))}while(Math.abs(ae-Ur)>1e-12&&--Wr>0);if(Wr===0)return NaN;let W=P*(Bn.earthRadius*Bn.earthRadius-s*s)/(s*s),_i=1+W/16384*(4096+W*(-768+W*(320-175*W))),Ut=W/1024*(256+W*(-128+W*(74-47*W))),vi=Ut*w*(y+Ut/4*(g*(-1+2*y*y)-Ut/6*y*(-3+4*w*w)*(-3+4*y*y))),xi=s*_i*(h-vi);return Math.round(xi/r)*r},yf=At.default=io});var Hn=u(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.default=void 0;var ao=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"},vf=wt.default=ao});var Gn=u(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var oo=so(K());function so(e){return e&&e.__esModule?e:{default:e}}var uo=function(e,t){let n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:oo.default)(e,t),i=Number(t.time)-Number(e.time);return n/i*1e3},Mf=Dt.default=uo});var zn=u(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var xr=lo(K());function lo(e){return e&&e.__esModule?e:{default:e}}var fo=(e,t,r)=>(0,xr.default)(t,e)+(0,xr.default)(e,r)===(0,xr.default)(t,r),Sf=Rt.default=fo});var Zn=u(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.default=void 0;var Lt=Xn(R()),q=Xn(L());function Xn(e){return e&&e.__esModule?e:{default:e}}var co=(e,t)=>{let r=!1,n=t.length;for(let i=-1,a=n-1;++i<n;a=i)((0,q.default)(t[i])<=(0,q.default)(e)&&(0,q.default)(e)<(0,q.default)(t[a])||(0,q.default)(t[a])<=(0,q.default)(e)&&(0,q.default)(e)<(0,q.default)(t[i]))&&(0,Lt.default)(e)<((0,Lt.default)(t[a])-(0,Lt.default)(t[i]))*((0,q.default)(e)-(0,q.default)(t[i]))/((0,q.default)(t[a])-(0,q.default)(t[i]))+(0,Lt.default)(t[i])&&(r=!r);return r},Af=qt.default=co});var Yn=u(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var mo=po(yr());function po(e){return e&&e.__esModule?e:{default:e}}var go=(e,t,r,n)=>(0,mo.default)(e,t,r)<n,Df=kt.default=go});var Jn=u(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var ho=bo(K());function bo(e){return e&&e.__esModule?e:{default:e}}var yo=(e,t,r)=>(0,ho.default)(e,t,.01)<r,Lf=Tt.default=yo});var Qn=u(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var _o=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)}})},kf=Ct.default=_o});var ei=u(l=>{"use strict";Object.defineProperty(l,"__esModule",{value:!0});var vo={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 xo.default}});Object.defineProperty(l,"convertArea",{enumerable:!0,get:function(){return Mo.default}});Object.defineProperty(l,"convertDistance",{enumerable:!0,get:function(){return Po.default}});Object.defineProperty(l,"convertSpeed",{enumerable:!0,get:function(){return So.default}});Object.defineProperty(l,"decimalToSexagesimal",{enumerable:!0,get:function(){return Oo.default}});Object.defineProperty(l,"findNearest",{enumerable:!0,get:function(){return Ao.default}});Object.defineProperty(l,"getAreaOfPolygon",{enumerable:!0,get:function(){return wo.default}});Object.defineProperty(l,"getBounds",{enumerable:!0,get:function(){return Do.default}});Object.defineProperty(l,"getBoundsOfDistance",{enumerable:!0,get:function(){return Ro.default}});Object.defineProperty(l,"getCenter",{enumerable:!0,get:function(){return Lo.default}});Object.defineProperty(l,"getCenterOfBounds",{enumerable:!0,get:function(){return qo.default}});Object.defineProperty(l,"getCompassDirection",{enumerable:!0,get:function(){return ko.default}});Object.defineProperty(l,"getCoordinateKey",{enumerable:!0,get:function(){return To.default}});Object.defineProperty(l,"getCoordinateKeys",{enumerable:!0,get:function(){return Co.default}});Object.defineProperty(l,"getDistance",{enumerable:!0,get:function(){return Eo.default}});Object.defineProperty(l,"getDistanceFromLine",{enumerable:!0,get:function(){return jo.default}});Object.defineProperty(l,"getGreatCircleBearing",{enumerable:!0,get:function(){return Io.default}});Object.defineProperty(l,"getLatitude",{enumerable:!0,get:function(){return No.default}});Object.defineProperty(l,"getLongitude",{enumerable:!0,get:function(){return Fo.default}});Object.defineProperty(l,"getPathLength",{enumerable:!0,get:function(){return Vo.default}});Object.defineProperty(l,"getPreciseDistance",{enumerable:!0,get:function(){return Uo.default}});Object.defineProperty(l,"getRhumbLineBearing",{enumerable:!0,get:function(){return Wo.default}});Object.defineProperty(l,"getRoughCompassDirection",{enumerable:!0,get:function(){return Ko.default}});Object.defineProperty(l,"getSpeed",{enumerable:!0,get:function(){return Bo.default}});Object.defineProperty(l,"isDecimal",{enumerable:!0,get:function(){return $o.default}});Object.defineProperty(l,"isPointInLine",{enumerable:!0,get:function(){return Ho.default}});Object.defineProperty(l,"isPointInPolygon",{enumerable:!0,get:function(){return Go.default}});Object.defineProperty(l,"isPointNearLine",{enumerable:!0,get:function(){return zo.default}});Object.defineProperty(l,"isPointWithinRadius",{enumerable:!0,get:function(){return Xo.default}});Object.defineProperty(l,"isSexagesimal",{enumerable:!0,get:function(){return Zo.default}});Object.defineProperty(l,"isValidCoordinate",{enumerable:!0,get:function(){return Yo.default}});Object.defineProperty(l,"isValidLatitude",{enumerable:!0,get:function(){return Jo.default}});Object.defineProperty(l,"isValidLongitude",{enumerable:!0,get:function(){return Qo.default}});Object.defineProperty(l,"orderByDistance",{enumerable:!0,get:function(){return es.default}});Object.defineProperty(l,"sexagesimalToDecimal",{enumerable:!0,get:function(){return ts.default}});Object.defineProperty(l,"toDecimal",{enumerable:!0,get:function(){return rs.default}});Object.defineProperty(l,"toDeg",{enumerable:!0,get:function(){return is.default}});Object.defineProperty(l,"toRad",{enumerable:!0,get:function(){return ns.default}});Object.defineProperty(l,"wktToPolygon",{enumerable:!0,get:function(){return as.default}});var xo=d(pn()),Mo=d(gn()),Po=d(hn()),So=d(bn()),Oo=d(yn()),Ao=d(Mn()),wo=d(On()),Do=d(gr()),Ro=d(wn()),Lo=d(Ln()),qo=d(qn()),ko=d(En()),To=d(ce()),Co=d(We()),Eo=d(K()),jo=d(yr()),Io=d(Vn()),No=d(R()),Fo=d(L()),Vo=d(Un()),Uo=d($n()),Wo=d(hr()),Ko=d(Hn()),Bo=d(Gn()),$o=d(de()),Ho=d(zn()),Go=d(Zn()),zo=d(Yn()),Xo=d(Jn()),Zo=d(me()),Yo=d(sr()),Jo=d(nr()),Qo=d(ar()),es=d(dr()),ts=d(pe()),rs=d(Ge()),ns=d(I()),is=d(G()),as=d(Qn()),Mr=x();Object.keys(Mr).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(vo,e)||e in l&&l[e]===Mr[e]||Object.defineProperty(l,e,{enumerable:!0,get:function(){return Mr[e]}})});function d(e){return e&&e.__esModule?e:{default:e}}});var ti=u(Ar=>{"use strict";Ar.__esModule=!0;function Sr(e,t){return e*e+t*t}function os(e,t){return Sr(e[0]-t[0],e[1]-t[1])}function ss(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)/Sr(a,o);s>1?(n=r[0],i=r[1]):s>0&&(n+=a*s,i+=o*s)}return Sr(e[0]-n,e[1]-i)}function us(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],os(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Or(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var c=ss(e[s],e[t],e[r]);c>a&&(o=s,a=c)}a>n&&(o-t>1&&Or(e,t,o,n,i),i.push(e[o]),r-o>1&&Or(e,o,r,n,i))}function ls(e,t){var r=e.length-1,n=[e[0]];return Or(e,0,r,t,n),n.push(e[r]),n}function fs(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:us(e,n),e=ls(e,n),e}Ar.SimplifyAP=fs});var ri=u(Rr=>{"use strict";Rr.__esModule=!0;function wr(e,t){return e*e+t*t}function cs(e,t){return wr(e.longitude-t.longitude,e.latitude-t.latitude)}function ds(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)/wr(a,o);s>1?(n=r.longitude,i=r.latitude):s>0&&(n+=a*s,i+=o*s)}return wr(e.longitude-n,e.latitude-i)}function ms(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],cs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Dr(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var c=ds(e[s],e[t],e[r]);c>a&&(o=s,a=c)}a>n&&(o-t>1&&Dr(e,t,o,n,i),i.push(e[o]),r-o>1&&Dr(e,o,r,n,i))}function ps(e,t){var r=e.length-1,n=[e[0]];return Dr(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}Rr.SimplifyLL=gs});var ni=u(kr=>{"use strict";kr.__esModule=!0;function Lr(e,t){return e*e+t*t}function hs(e,t){return Lr(e.x-t.x,e.y-t.y)}function bs(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)/Lr(a,o);s>1?(n=r.x,i=r.y):s>0&&(n+=a*s,i+=o*s)}return Lr(e.x-n,e.y-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 qr(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var c=bs(e[s],e[t],e[r]);c>a&&(o=s,a=c)}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 _s(e,t){var r=e.length-1,n=[e[0]];return qr(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}kr.Simplify=vs});var ii=u(ye=>{"use strict";ye.__esModule=!0;var xs=ti();ye.SimplifyAP=xs.SimplifyAP;var Ms=ri();ye.SimplifyLL=Ms.SimplifyLL;var Ps=ni();ye.Simplify=Ps.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 $t=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 k={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var J={setTimeout(e,t,...r){let{delegate:n}=J;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){let{delegate:t}=J;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Hr(e){J.setTimeout(()=>{let{onUnhandledError:t}=k;if(t)t(e);else throw e})}function Ht(){}var Gr=Gt("C",void 0,void 0);function zr(e){return Gt("E",void 0,e)}function Xr(e){return Gt("N",e,void 0)}function Gt(e,t,r){return{kind:e,value:t,error:r}}var B=null;function Q(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 Zr(e){k.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=Li}static create(t,r,n){return new ee(t,r,n)}next(t){this.isStopped?Xt(Xr(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()}}},Di=Function.prototype.bind;function zt(e,t){return Di.call(e,t)}var Zt=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)}}},ee=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&&k.useDeprecatedNextContext?(a=Object.create(t),a.unsubscribe=()=>this.unsubscribe(),i={next:t.next&&zt(t.next,a),error:t.error&&zt(t.error,a),complete:t.complete&&zt(t.complete,a)}):i=t}this.destination=new Zt(i)}};function Le(e){k.useDeprecatedSynchronousErrorHandling?Zr(e):Hr(e)}function Ri(e){throw e}function Xt(e,t){let{onStoppedNotification:r}=k;r&&J.setTimeout(()=>r(e,t))}var Li={closed:!0,next:Ht,error:Ri,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=ki(t)?t:new ee(t,r,n);return Q(()=>{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 ee({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??k.Promise)!==null&&t!==void 0?t:Promise}function qi(e){return e&&D(e.next)&&D(e.error)&&D(e.complete)}function ki(e){return e&&e instanceof se||qi(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 qe(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new tn}next(t){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(t)}})}error(t){Q(()=>{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(){Q(()=>{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 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 qe(e,t);var qe=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 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 Ti=new Uint8Array(16);function Yt(){return crypto.getRandomValues(Ti)}function Ci(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():Ei(e,t,r)}function Ei(e,t,r){e=e||{};let n=e.random??e.rng?.()??Yt();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 Jt=Ci;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={}),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=te.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=te.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=te.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=te.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"}},te=class{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:Jt()}}},Te=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 re=class{id;name;mmsi;position=[0,0];positionReceived=!1;positionTimestamp="";state;type={id:-1,name:""};properties={};lastUpdated=new Date;callsignVhf;callsignHf;orientation=0;virtual},ue=class extends re{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;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 re{constructor(){super()}},Ee=class extends re{sog=0;track=[];constructor(){super()}},le=class extends re{constructor(){super()}},je=class extends le{twd;tws;temperature;constructor(){super()}};var Qt={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}},fe={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"}},H=class{static transform(t,r,n){if(!Number.isFinite(t))return null;if(r===n)return t;try{return Qt[r][n](t)}catch{throw new Error("Transformation not found!")}}static setSymbol(t,r){t in fe&&(fe[t].symbol=r??fe[t].symbol)}static getSymbol(t){return t in fe?fe[t].symbol:t}static degreesToRadians(t){return Qt.deg.radian(t)}static radiansToDegrees(t=0){return Qt.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()),N=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,c=r,v=a*Math.cos(c),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(c)/y;return[(s+w)*180/Math.PI,g*180/Math.PI]}static destCoordinate(t,r,n){let i=(0,A.computeDestinationPoint)(t,n,H.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=Pr.difference(n,o);if(s>-90&&s<90){let c=e.distanceTo(r,t[a]);(i.distance===-1||c<i.distance)&&(i.distance=c,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(H.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=>r=this.normaliseCoords(r)),t}},Pr=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"}},jt=class extends z{constructor(){super(),this.action="resource"}},It=class extends z{constructor(){super(),this.action="radar"}},Nt=class extends z{constructor(){super(),this.action="trail"}};var ui=Br(ii());var Ss=["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,li,Me=[],Vt=[],Tr=!1,Ir,Cr=!1,_={signalk:{},aisState:[]},fi=[0,0,0,0],ci=60,_e=0,O,X={},Z=500,T=!1,di,V={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},Er={selfLines:{cog:{length:10}},aisCogLine:10},ve={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},U,mi,ie="freeboard-sk";function Os(){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,pi()}function pi(){O={updated:{},stale:{},expired:{}}}function Ft({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:T,result:t.target.readyState}),b.msgCount=0,b.intervalCount=0,b.alarm=!1,b.active=!0;break;case"onClose":gi(!1),b.active=!1;break;case"onError":postMessage({action:"error",playback:T,result:"Connection error!"}),b.msgCount=0,b.intervalCount=0,b.active=!1;break;case"onMessage":b.msgCount++,Ls(t);break}}addEventListener("message",({data:e})=>{As(e)});function As(e){if(e.cmd)switch(e.cmd){case"open":ai(e.options),Ds(e.options);break;case"close":gi(!0);break;case"subscribe":M.subscribe(e.options.context,e.options.path);break;case"settings":ai(e.options);break;case"alarm":Rs(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"&&(li=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")),ws(ve);break}}function ai(e={config:{}}){e.interval&&typeof e.interval=="number"&&(Z=e.interval,yi(),bi(),ci=1/(Z/1e3)*60),T=!!e.playback,e.config&&(typeof e.config.units.preferredPaths<"u"&&(X=e.config.units.preferredPaths),e.config.vessels.aisMaxAge&&typeof e.config.vessels.aisMaxAge=="number"&&(V.maxAge=e.config.vessels.aisMaxAge),e.config.vessels.aisStaleAge&&typeof e.config.vessels.aisStaleAge=="number"&&(V.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),Er=e.config.vessels)}function gi(e=!1){yi(),Me.forEach(t=>t.unsubscribe()),M&&e&&M.close(),M=null,postMessage({action:"close",result:e,playback:T})}function Pe(e){return fetch(e).then(t=>t.json())}function hi(){let e=_&&_.signalk&&_.signalk.maxRadius?`?radius=${_.signalk.maxRadius}`:"?radius=10000";Pe(Ir+"/tracks"+e).then(t=>{Cr=!0,Object.entries(t).forEach(r=>{if(f.aisTargets.has(r[0])){let n=f.aisTargets.get(r[0]);n.track=r[1].coordinates,Nr(n)}})}).catch(()=>{Cr=!1})}function ws(e){let t=Ir+"/self/track?",r=[],n=5e-4,i=!0;e.trailDuration>24&&(r.push(Pe(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}×panOffset=24`)),r.push(Pe(`${t}timespan=23h&resolution=${e.trailResolution.next23}×panOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&r.push(Pe(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}×panOffset=1`)),r.push(Pe(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let a=[],o=new Nt;o.playback=T,Promise.all(r).then(s=>{let c=0,v=r.length-1,g=60;s.forEach(h=>{if(h.type&&h.type==="MultiLineString"&&h.coordinates&&Array.isArray(h.coordinates))if(c!==v){let m=[];for(h.coordinates.forEach(P=>{m=m.concat(P)}),m=(0,ui.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);c++}),o.result=a,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function Ds(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:",Ir=t.join("/"),Os(),M=new ke,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=li,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),hi()}function Rs(e){let t=e.type.indexOf("notifications.")===-1?`notifications.${e.type}`:e.type;e.raise?M.raiseAlarm("self",t,new Te(e.message,e.state,!0,!0)):M.clearAlarm("self",t)}function Ls(e){M.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:T}),Z&&bi()):M.isDelta(e)?(Tr=!0,e.updates.forEach(t=>{t.values&&(U=t.$source,mi=t.timestamp,t.values.forEach(r=>{if(di=t.timestamp,!!e.context)switch(e.context.split(".")[0]){case"shore":case"atons":_?.signalk.atons&&Es(e.context,r),xe(e.context,f.atons,_?.signalk.atons);break;case"sar":_?.signalk.sar&&js(e.context,r),xe(e.context,f.sar,_?.signalk.sar);break;case"aircraft":_?.signalk.aircraft&&Ns(e.context,r),xe(e.context,f.aircraft,_?.signalk.aircraft);break;case"meteo":_?.signalk.meteo&&(Is(e.context,r),si(r)),xe(e.context,f.meteo,_?.signalk.meteo);break;case"vessels":if(M.isSelf(e))f.self.id||(f.self.id=e.context),oi(f.self,r,!0),si(r);else{if(_?.signalk.vessels){let n=qs(e.context);oi(n,r)}xe(e.context,f.aisTargets,_?.signalk.vessels,_?.aisState)}break}}))}),jr()):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&&N.inBounds(i.position,fi)?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 jr(e=!1){if(!Z||e){let t=new z;t.watchDogAlarm=b.alarm,t.playback=T,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=T?di:f.self.lastUpdated.toISOString(),postMessage(t),pi(),f.self.resourceUpdates=[],Cs(),_e===0&&f.self.positionReceived&&_?.signalk.maxRadius&&(fi=N.calcMapifiedExtent(f.self.position,_.signalk.maxRadius),_e++),_e=_e>=ci?0:_e+1}}function bi(){Z&&typeof Z=="number"&&Vt.push(setInterval(()=>{b.active&&!b.msgCount?(b.intervalCount=b.intervalCount+1,b.intervalCount>=b.maxMsgIntervals&&(b.intervalCount=0,b.alarm=!0,jr(!0))):(b.intervalCount=0,b.msgCount=0,b.alarm=!1),Tr&&(jr(!0),Tr=!1)},Z)),Vt.push(setInterval(()=>{Cr&&hi()},6e4))}function yi(){Vt.forEach(e=>clearInterval(e)),Vt=[]}function qs(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 oi(e,t,r=!1){if(r){if(e.lastUpdated=new Date,t.path.startsWith("resources."))e.resourceUpdates.push(t),Ts(t);else if(t.path.startsWith("radars"))ks(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 a=t.path.split(".").slice(3).join(".");e.courseCalcs[a]=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 a=t.path.split("."),o=a.slice(2).join(".");e.radars[a[1]]||(e.radars[a[1]]={}),e.radars[a[1]][o]=t.value}let i=t.path.indexOf("course")!==-1?t.path.split(".").slice(0,2).join("."):t.path;Ss.indexOf(i)!==-1&&(f.paths[i]=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=N.normaliseCoords([t.value.longitude,t.value.latitude]),e.positionReceived=!0,e.positionTimestamp=mi??"",e.lastUpdated=new Date,r||Nr(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"&&U===ie?e.autopilot.state=t.value:t.path==="steering.autopilot.mode"&&U===ie?e.autopilot.mode=t.value:t.path==="steering.autopilot.target"&&U===ie?e.autopilot.target=t.value:t.path==="steering.autopilot.engaged"&&U===ie?e.autopilot.enabled=t.value:t.path==="steering.autopilot.defaultPilot"?(e.autopilot.default=t.value,ie=t.value):t.path==="steering.autopilot.availableActions"&&U===ie?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:t.path==="navigation.headingMagnetic"&&(e.headingMagnetic=t.value);typeof X.heading<"u"&&t.path===X.heading&&(e.orientation=t.value),typeof X.tws<"u"&&t.path===X.tws&&(e.wind.tws=t.value),typeof X.twd<"u"&&t.path===X.twd&&(e.wind.direction=t.path==="environment.wind.angleTrueGround"||t.path==="environment.wind.angleTrueWater"?H.angleToDirection(t.value,e.orientation??0):t.value);let n=e.cogTrue??e.cogMagnetic??void 0;if(typeof n<"u"&&e.position){let i=r?Er.selfLines.cog.length:Er.aisCogLine,a=(e.sog??0)*(i*60);e.vectors.cog=[e.position,N.rhumbDestination(e.position,n,a)]}}function ks(e){let t=new It;t.playback=T,t.result={path:e.path,value:e.value,sourceRef:U},postMessage(t)}function Ts(e){let t=new jt;t.playback=T,t.result={path:e.path,value:e.value,sourceRef:U},postMessage(t)}function si(e){if(e.path.includes("notifications.")){let t=new Et;t.playback=T,t.result={path:e.path,value:e.value,sourceRef:U},postMessage(t)}}function Cs(){let e=new Date().valueOf();f.aisTargets.forEach((t,r)=>{t.lastUpdated.valueOf()<e-V.maxAge?(O.expired[r]=!0,f.aisTargets.delete(r)):t.lastUpdated.valueOf()<e-V.staleAge&&(O.stale[r]=!0)}),f.aircraft.forEach((t,r)=>{t.lastUpdated.valueOf()<e-V.maxAge?(O.expired[r]=!0,f.aircraft.delete(r)):t.lastUpdated.valueOf()<e-V.staleAge&&(O.stale[r]=!0)}),f.sar.forEach((t,r)=>{t.lastUpdated.valueOf()<e-V.maxAge?(O.expired[r]=!0,f.sar.delete(r)):t.lastUpdated.valueOf()<e-V.staleAge&&(O.stale[r]=!0)})}function Es(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 js(e,t){if(!f.sar.has(e)){let n=new Ce;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=N.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Is(e,t){if(!f.meteo.has(e)){let n=new je;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=N.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Ns(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=N.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0,Nr(r)):t.path==="navigation.courseOverGroundTrue"?r.orientation=t.value:t.path==="navigation.speedOverGround"&&(r.sog=t.value)}function Nr(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-V.maxTrack)}export{Pe as apiGet};
|