@signalk/freeboard-sk 3.2.0-beta.5 → 3.2.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 -2
- package/public/assets/features/route-following-1.jpg +0 -0
- package/public/assets/features/route-following-2.jpg +0 -0
- package/public/assets/features/route-following-3.jpg +0 -0
- package/public/assets/features-corpus.json +1 -1
- package/public/assets/help/index.html +7 -5
- package/public/{chunk-ZXIUZMA7.js → chunk-3HO5JDYF.js} +1 -1
- package/public/{chunk-RRFDJNNT.js → chunk-3UKG3D3M.js} +1 -1
- package/public/{chunk-VJLDZ4NI.js → chunk-4UBQTQSK.js} +1 -1
- package/public/{chunk-PU7NCPYW.js → chunk-5SYZI253.js} +1 -1
- package/public/{chunk-DFAGTODX.js → chunk-6ZXMFU55.js} +1 -1
- package/public/{chunk-JEAAYERI.js → chunk-7OBOGNNY.js} +1 -1
- package/public/chunk-A2UDMCI5.js +1 -0
- package/public/{chunk-OPNUYGIO.js → chunk-BCS6VHKX.js} +1 -1
- package/public/{chunk-N4UL6N3G.js → chunk-BJKB23AZ.js} +1 -1
- package/public/{chunk-WYYDGUIZ.js → chunk-BNCDJR4Z.js} +1 -1
- package/public/{chunk-AA62TGOR.js → chunk-D4A5NW5G.js} +1 -1
- package/public/{chunk-6QJRUI6F.js → chunk-DD47QU4L.js} +1 -1
- package/public/chunk-EDKY4MXN.js +1 -0
- package/public/{chunk-WCLDE6BT.js → chunk-GBMW6IJP.js} +1 -1
- package/public/{chunk-VEGUHS2I.js → chunk-GFDZNVNU.js} +79 -79
- package/public/{chunk-DBYANQFC.js → chunk-GVRPUNRX.js} +1 -1
- package/public/chunk-H54CRRPU.js +1 -0
- package/public/chunk-HT6GODHM.js +1 -0
- package/public/{chunk-RZEZX533.js → chunk-L4ONBCRR.js} +1 -1
- package/public/{chunk-HWRLJ3DL.js → chunk-LFAWLMM4.js} +1 -1
- package/public/{chunk-GODGWAVZ.js → chunk-LNU63734.js} +1 -1
- package/public/chunk-NCEQPEJE.js +1 -0
- package/public/{chunk-6PWYCIYX.js → chunk-OVB2ZLN5.js} +1 -1
- package/public/{chunk-TUQRCX5V.js → chunk-P57WKW3G.js} +1 -1
- package/public/{chunk-SUT6O77L.js → chunk-QWUBBFQO.js} +1 -1
- package/public/{chunk-TK54SKYF.js → chunk-R7YVRRY3.js} +1 -1
- package/public/{chunk-Q4NBIMTT.js → chunk-RQKGK2KO.js} +1 -1
- package/public/{chunk-WTDLBURC.js → chunk-RRYFRHFP.js} +1 -1
- package/public/{chunk-6WPO4OMT.js → chunk-UBTZRPVO.js} +1 -1
- package/public/{chunk-7TRKAN4B.js → chunk-USYMWMPO.js} +1 -1
- package/public/{chunk-4JRVRHO7.js → chunk-VQDXDSU7.js} +1 -1
- package/public/chunk-XXGLBGHG.js +1 -0
- package/public/{chunk-4ZE2OKZZ.js → chunk-XZM7Q5WP.js} +1 -1
- package/public/{chunk-PG6RM7YJ.js → chunk-YB4RBYE2.js} +1 -1
- package/public/index.html +1 -1
- package/public/main-LYWXFV5I.js +468 -0
- package/public/worker-DYC3TMVW.js +3 -0
- package/public/chunk-6H3I7D5M.js +0 -1
- package/public/chunk-AMDY4THY.js +0 -1
- package/public/chunk-CCTZD6S5.js +0 -1
- package/public/chunk-SGKVAYBG.js +0 -1
- package/public/chunk-U67UWQ7C.js +0 -1
- package/public/chunk-XVRRHA2K.js +0 -1
- package/public/main-BW35DEQ6.js +0 -468
- package/public/worker-GBKY4SNO.js +0 -3
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var bo=Object.create;var un=Object.defineProperty;var xo=Object.getOwnPropertyDescriptor;var yo=Object.getOwnPropertyNames;var vo=Object.getPrototypeOf,_o=Object.prototype.hasOwnProperty;var c=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var Mo=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of yo(t))!_o.call(e,i)&&i!==r&&un(e,i,{get:()=>t[i],enumerable:!(n=xo(t,i))||n.enumerable});return e};var ln=(e,t,r)=>(r=e!=null?bo(vo(e)):{},Mo(t||!e||!e.__esModule?un(r,"default",{value:e,enumerable:!0}):r,e));var _=c(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 ac=p.sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/,uc=p.earthRadius=6378137,lc=p.MINLAT=-90,cc=p.MAXLAT=90,fc=p.MINLON=-180,dc=p.MAXLON=180,mc=p.DEG_TO_RAD=Math.PI/180,pc=p.RAD_TO_DEG=180/Math.PI,gc=p.longitudeKeys=["lng","lon","longitude",0],hc=p.latitudeKeys=["lat","latitude",1],bc=p.altitudeKeys=["alt","altitude","elevation","elev",2],xc=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},yc=p.timeConversion={m:60,h:3600,d:86400},N=p.areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};N.sqm=N.m2;N.sqkm=N.km2;N.sqft=N.ft2;N.sqyd=N.yd2;N.sqin=N.in2});var be=c(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var Do=(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)},_c=Be.default=Do});var xe=c($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var Io=e=>{let t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},Sc=$e.default=Io});var ye=c(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.default=void 0;var Eo=_(),Co=e=>Eo.sexagesimalPattern.test(e.toString().trim()),kc=We.default=Co});var ve=c(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.default=void 0;var qo=_(),No=e=>{let t=new RegExp(qo.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},Ac=Ge.default=No});var Xe=c(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var gr=_(),hr=jo(be());function jo(e){return e&&e.__esModule?e:{default:e}}var Ko=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:gr.longitudeKeys,latitude:gr.latitudeKeys,altitude:gr.altitudeKeys},r=(0,hr.default)(e,t.longitude),n=(0,hr.default)(e,t.latitude),i=(0,hr.default)(e,t.altitude);return{latitude:n,longitude:r,...i?{altitude:i}:{}}},Rc=ze.default=Ko});var xr=c(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var Uo=br(xe()),Fo=br(ye()),Ho=br(ve()),Mn=_();function br(e){return e&&e.__esModule?e:{default:e}}var Sn=e=>{if((0,Uo.default)(e)){let t=parseFloat(e);return!(t>Mn.MAXLAT||t<Mn.MINLAT)}return(0,Fo.default)(e)?Sn((0,Ho.default)(e)):!1},Lc=Ze.default=Sn});var vr=c(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var Vo=yr(xe()),Bo=yr(ye()),$o=yr(ve()),Pn=_();function yr(e){return e&&e.__esModule?e:{default:e}}var kn=e=>{if((0,Vo.default)(e)){let t=parseFloat(e);return!(t>Pn.MAXLON||t<Pn.MINLON)}return(0,Bo.default)(e)?kn((0,$o.default)(e)):!1},Ic=Ye.default=kn});var Mr=c(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.default=void 0;var Wo=_r(Xe()),Tn=_r(xr()),An=_r(vr());function _r(e){return e&&e.__esModule?e:{default:e}}var Go=e=>{let{latitude:t,longitude:r}=(0,Wo.default)(e);if(Array.isArray(e)&&e.length>=2)return(0,An.default)(e[0])&&(0,Tn.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,Tn.default)(i)&&(0,An.default)(n)},Cc=Je.default=Go});var et=c(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var zo=Me(xe()),Xo=Me(ye()),Zo=Me(ve()),On=Me(Mr()),Yo=Me(Xe());function Me(e){return e&&e.__esModule?e:{default:e}}var _e=e=>{if((0,zo.default)(e))return Number(e);if((0,Xo.default)(e))return(0,Zo.default)(e);if((0,On.default)(e)){let t=(0,Yo.default)(e);return Array.isArray(e)?e.map((r,n)=>[0,1].includes(n)?_e(r):r):{...e,...t.latitude&&{[t.latitude]:_e(e[t.latitude])},...t.longitude&&{[t.longitude]:_e(e[t.longitude])}}}return Array.isArray(e)?e.map(t=>(0,On.default)(t)?_e(t):t):e},Nc=Qe.default=_e});var w=c(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var Jo=_(),Qo=Rn(be()),es=Rn(et());function Rn(e){return e&&e.__esModule?e:{default:e}}var ts=(e,t)=>{let r=(0,Qo.default)(e,Jo.latitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,es.default)(n)},Kc=tt.default=ts});var L=c(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.default=void 0;var rs=_(),ns=wn(be()),is=wn(et());function wn(e){return e&&e.__esModule?e:{default:e}}var os=(e,t)=>{let r=(0,ns.default)(e,rs.longitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,is.default)(n)},Fc=rt.default=os});var j=c(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var ss=_(),as=e=>e*ss.DEG_TO_RAD,Vc=nt.default=as});var G=c(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var us=_(),ls=e=>e*us.RAD_TO_DEG,$c=it.default=ls});var Dn=c(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var cs=ot(w()),fs=ot(L()),Sr=ot(j()),Pr=ot(G()),Ln=_();function ot(e){return e&&e.__esModule?e:{default:e}}var ds=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,i=(0,cs.default)(e),o=(0,fs.default)(e),s=t/n,a=(0,Sr.default)(r),u=(0,Sr.default)(i),m=(0,Sr.default)(o),g=Math.asin(Math.sin(u)*Math.cos(s)+Math.cos(u)*Math.sin(s)*Math.cos(a)),h=m+Math.atan2(Math.sin(a)*Math.sin(s)*Math.cos(u),Math.cos(s)-Math.sin(u)*Math.sin(g)),x=(0,Pr.default)(h);return(x<Ln.MINLON||x>Ln.MAXLON)&&(h=(h+3*Math.PI)%(2*Math.PI)-Math.PI,x=(0,Pr.default)(h)),{latitude:(0,Pr.default)(g),longitude:x}},Gc=st.default=ds});var In=c(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var ms=_(),ps=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=ms.areaConversion[t];if(r)return e*r;throw new Error("Invalid unit used for area conversion.")},Xc=at.default=ps});var En=c(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var gs=_(),hs=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=gs.distanceConversion[t];if(r)return e*r;throw new Error("Invalid unit used for distance conversion.")},Yc=ut.default=hs});var Cn=c(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var lt=_(),bs=function(e){switch(arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh"){case"kmh":return e*lt.timeConversion.h*lt.distanceConversion.km;case"mph":return e*lt.timeConversion.h*lt.distanceConversion.mi;default:return e}},Qc=ct.default=bs});var qn=c(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var xs=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},ys=e=>{let[t,r]=e.toString().split("."),n=Math.abs(Number(t)),i=+("0."+(r||0))*60,o=i.toString().split("."),s=Math.floor(i),a=xs(+("0."+(o[1]||0))*60).toString(),[u,m="0"]=a.split(".");return n+"\xB0 "+s.toString().padStart(2,"0")+"' "+u.padStart(2,"0")+"."+m.padEnd(1,"0")+'"'},tf=ft.default=ys});var kr=c(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.default=void 0;var vs=e=>e>1?1:e<-1?-1:e,nf=dt.default=vs});var V=c(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});pt.default=void 0;var Nn=mt(w()),jn=mt(L()),Tr=mt(j()),_s=mt(kr()),Ms=_();function mt(e){return e&&e.__esModule?e:{default:e}}var Ss=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,Tr.default)((0,Nn.default)(e)),i=(0,Tr.default)((0,Nn.default)(t)),o=(0,Tr.default)((0,jn.default)(e)-(0,jn.default)(t)),s=Math.acos((0,_s.default)(Math.sin(i)*Math.sin(n)+Math.cos(i)*Math.cos(n)*Math.cos(o)))*Ms.earthRadius;return Math.round(s/r)*r},sf=pt.default=Ss});var Ar=c(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.default=void 0;var Kn=Ps(V());function Ps(e){return e&&e.__esModule?e:{default:e}}var ks=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Kn.default;return r=typeof r=="function"?r:Kn.default,t.slice().sort((n,i)=>r(e,n)-r(e,i))},uf=gt.default=ks});var Un=c(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Ts=As(Ar());function As(e){return e&&e.__esModule?e:{default:e}}var Os=(e,t)=>(0,Ts.default)(e,t)[0],cf=ht.default=Os});var Vn=c(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.default=void 0;var Or=Rr(j()),Rs=Rr(w()),Fn=Rr(L()),Hn=_();function Rr(e){return e&&e.__esModule?e:{default:e}}var ws=e=>{let t=0;if(e.length>2){let r,n,i;for(let o=0;o<e.length;o++){o===e.length-2?(r=e.length-2,n=e.length-1,i=0):o===e.length-1?(r=e.length-1,n=0,i=1):(r=o,n=o+1,i=o+2);let s=(0,Fn.default)(e[r]),a=(0,Rs.default)(e[n]),u=(0,Fn.default)(e[i]);t+=((0,Or.default)(u)-(0,Or.default)(s))*Math.sin((0,Or.default)(a))}t=t*Hn.earthRadius*Hn.earthRadius/2}return Math.abs(t)},df=bt.default=ws});var wr=c(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Ls=Bn(w()),Ds=Bn(L());function Bn(e){return e&&e.__esModule?e:{default:e}}var Is=e=>{if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce((t,r)=>{let n=(0,Ls.default)(r),i=(0,Ds.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})},pf=xt.default=Is});var $n=c(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});_t.default=void 0;var Es=vt(w()),Cs=vt(L()),ie=vt(j()),yt=vt(G()),Se=_();function vt(e){return e&&e.__esModule?e:{default:e}}var qs=(e,t)=>{let r=(0,Es.default)(e),n=(0,Cs.default)(e),i=(0,ie.default)(r),o=(0,ie.default)(n),s=t/Se.earthRadius,a=i-s,u=i+s,m=(0,ie.default)(Se.MAXLAT),g=(0,ie.default)(Se.MINLAT),h=(0,ie.default)(Se.MAXLON),x=(0,ie.default)(Se.MINLON),T,v;if(a>g&&u<m){let O=Math.asin(Math.sin(s)/Math.cos(i));T=o-O,T<x&&(T+=Math.PI*2),v=o+O,v>h&&(v-=Math.PI*2)}else a=Math.max(a,g),u=Math.min(u,m),T=x,v=h;return[{latitude:(0,yt.default)(a),longitude:(0,yt.default)(T)},{latitude:(0,yt.default)(u),longitude:(0,yt.default)(v)}]},hf=_t.default=qs});var zn=c(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.default=void 0;var Ns=Mt(w()),js=Mt(L()),Wn=Mt(j()),Gn=Mt(G());function Mt(e){return e&&e.__esModule?e:{default:e}}var Ks=e=>{if(Array.isArray(e)===!1||e.length===0)return!1;let t=e.length,r=e.reduce((s,a)=>{let u=(0,Wn.default)((0,Ns.default)(a)),m=(0,Wn.default)((0,js.default)(a));return{X:s.X+Math.cos(u)*Math.cos(m),Y:s.Y+Math.cos(u)*Math.sin(m),Z:s.Z+Math.sin(u)}},{X:0,Y:0,Z:0}),n=r.X/t,i=r.Y/t,o=r.Z/t;return{longitude:(0,Gn.default)(Math.atan2(i,n)),latitude:(0,Gn.default)(Math.atan2(o,Math.sqrt(n*n+i*i)))}},xf=St.default=Ks});var Xn=c(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=void 0;var Us=Fs(wr());function Fs(e){return e&&e.__esModule?e:{default:e}}var Hs=e=>{let t=(0,Us.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))}},vf=Pt.default=Hs});var Lr=c(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var Zn=Tt(w()),Yn=Tt(L()),kt=Tt(j()),Vs=Tt(G());function Tt(e){return e&&e.__esModule?e:{default:e}}var Bs=(e,t)=>{let r=(0,kt.default)((0,Yn.default)(t))-(0,kt.default)((0,Yn.default)(e)),n=Math.log(Math.tan((0,kt.default)((0,Zn.default)(t))/2+Math.PI/4)/Math.tan((0,kt.default)((0,Zn.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,Vs.default)(Math.atan2(r,n))+360)%360},Mf=At.default=Bs});var Qn=c(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var Jn=$s(Lr());function $s(e){return e&&e.__esModule?e:{default:e}}var Ws=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Jn.default,n=typeof r=="function"?r(e,t):(0,Jn.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"}},Pf=Ot.default=Ws});var Ir=c(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var Dr=ti(V()),ei=ti(kr());function ti(e){return e&&e.__esModule?e:{default:e}}var Gs=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,i=(0,Dr.default)(t,e,n),o=(0,Dr.default)(e,r,n),s=(0,Dr.default)(t,r,n),a=Math.acos((0,ei.default)((i*i+s*s-o*o)/(2*i*s))),u=Math.acos((0,ei.default)((o*o+s*s-i*i)/(2*o*s)));return i===0||o===0?0:s===0||a>Math.PI/2?i:u>Math.PI/2?o:Math.sin(a)*i},Tf=Rt.default=Gs});var ii=c(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.default=void 0;var ri=wt(w()),ni=wt(L()),U=wt(j()),zs=wt(G());function wt(e){return e&&e.__esModule?e:{default:e}}var Xs=(e,t)=>{let r=(0,ri.default)(t),n=(0,ni.default)(t),i=(0,ri.default)(e),o=(0,ni.default)(e);return((0,zs.default)(Math.atan2(Math.sin((0,U.default)(n)-(0,U.default)(o))*Math.cos((0,U.default)(r)),Math.cos((0,U.default)(i))*Math.sin((0,U.default)(r))-Math.sin((0,U.default)(i))*Math.cos((0,U.default)(r))*Math.cos((0,U.default)(n)-(0,U.default)(o))))+360)%360},Of=Lt.default=Xs});var oi=c(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var Zs=Ys(V());function Ys(e){return e&&e.__esModule?e:{default:e}}var Js=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zs.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},wf=Dt.default=Js});var li=c(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.default=void 0;var si=Cr(w()),ai=Cr(L()),Er=Cr(j()),ui=_();function Cr(e){return e&&e.__esModule?e:{default:e}}var Qs=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,si.default)(e),i=(0,ai.default)(e),o=(0,si.default)(t),s=(0,ai.default)(t),a=6356752314245e-6,u=1/298.257223563,m=(0,Er.default)(s-i),g,h,x,T,v,O,nn=Math.atan((1-u)*Math.tan((0,Er.default)(parseFloat(n)))),on=Math.atan((1-u)*Math.tan((0,Er.default)(parseFloat(o)))),Le=Math.sin(nn),De=Math.cos(nn),Ie=Math.sin(on),J=Math.cos(on),fe=m,sn,an=100;do{let nr=Math.sin(fe),ir=Math.cos(fe);if(O=Math.sqrt(J*nr*(J*nr)+(De*Ie-Le*J*ir)*(De*Ie-Le*J*ir)),O===0)return 0;g=Le*Ie+De*J*ir,h=Math.atan2(O,g),x=De*J*nr/O,T=1-x*x,v=g-2*Le*Ie/T,isNaN(v)&&(v=0);let or=u/16*T*(4+u*(4-3*T));sn=fe,fe=m+(1-or)*u*x*(h+or*O*(v+or*g*(-1+2*v*v)))}while(Math.abs(fe-sn)>1e-12&&--an>0);if(an===0)return NaN;let H=T*(ui.earthRadius*ui.earthRadius-a*a)/(a*a),po=1+H/16384*(4096+H*(-768+H*(320-175*H))),rr=H/1024*(256+H*(-128+H*(74-47*H))),go=rr*O*(v+rr/4*(g*(-1+2*v*v)-rr/6*v*(-3+4*O*O)*(-3+4*v*v))),ho=a*po*(h-go);return Math.round(ho/r)*r},Df=It.default=Qs});var ci=c(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.default=void 0;var ea=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"},Ef=Et.default=ea});var fi=c(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var ta=ra(V());function ra(e){return e&&e.__esModule?e:{default:e}}var na=function(e,t){let n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:ta.default)(e,t),i=Number(t.time)-Number(e.time);return n/i*1e3},qf=Ct.default=na});var di=c(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.default=void 0;var qr=ia(V());function ia(e){return e&&e.__esModule?e:{default:e}}var oa=(e,t,r)=>(0,qr.default)(t,e)+(0,qr.default)(e,r)===(0,qr.default)(t,r),jf=qt.default=oa});var pi=c(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.default=void 0;var Nt=mi(w()),D=mi(L());function mi(e){return e&&e.__esModule?e:{default:e}}var sa=(e,t)=>{let r=!1,n=t.length;for(let i=-1,o=n-1;++i<n;o=i)((0,D.default)(t[i])<=(0,D.default)(e)&&(0,D.default)(e)<(0,D.default)(t[o])||(0,D.default)(t[o])<=(0,D.default)(e)&&(0,D.default)(e)<(0,D.default)(t[i]))&&(0,Nt.default)(e)<((0,Nt.default)(t[o])-(0,Nt.default)(t[i]))*((0,D.default)(e)-(0,D.default)(t[i]))/((0,D.default)(t[o])-(0,D.default)(t[i]))+(0,Nt.default)(t[i])&&(r=!r);return r},Uf=jt.default=sa});var gi=c(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.default=void 0;var aa=ua(Ir());function ua(e){return e&&e.__esModule?e:{default:e}}var la=(e,t,r,n)=>(0,aa.default)(e,t,r)<n,Hf=Kt.default=la});var hi=c(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.default=void 0;var ca=fa(V());function fa(e){return e&&e.__esModule?e:{default:e}}var da=(e,t,r)=>(0,ca.default)(e,t,.01)<r,Bf=Ut.default=da});var bi=c(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.default=void 0;var ma=e=>{if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");return e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", ").map(n=>{let[i,o]=n.split(" ");return{longitude:parseFloat(i),latitude:parseFloat(o)}})},Wf=Ft.default=ma});var xi=c(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});var pa={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(f,"computeDestinationPoint",{enumerable:!0,get:function(){return ga.default}});Object.defineProperty(f,"convertArea",{enumerable:!0,get:function(){return ha.default}});Object.defineProperty(f,"convertDistance",{enumerable:!0,get:function(){return ba.default}});Object.defineProperty(f,"convertSpeed",{enumerable:!0,get:function(){return xa.default}});Object.defineProperty(f,"decimalToSexagesimal",{enumerable:!0,get:function(){return ya.default}});Object.defineProperty(f,"findNearest",{enumerable:!0,get:function(){return va.default}});Object.defineProperty(f,"getAreaOfPolygon",{enumerable:!0,get:function(){return _a.default}});Object.defineProperty(f,"getBounds",{enumerable:!0,get:function(){return Ma.default}});Object.defineProperty(f,"getBoundsOfDistance",{enumerable:!0,get:function(){return Sa.default}});Object.defineProperty(f,"getCenter",{enumerable:!0,get:function(){return Pa.default}});Object.defineProperty(f,"getCenterOfBounds",{enumerable:!0,get:function(){return ka.default}});Object.defineProperty(f,"getCompassDirection",{enumerable:!0,get:function(){return Ta.default}});Object.defineProperty(f,"getCoordinateKey",{enumerable:!0,get:function(){return Aa.default}});Object.defineProperty(f,"getCoordinateKeys",{enumerable:!0,get:function(){return Oa.default}});Object.defineProperty(f,"getDistance",{enumerable:!0,get:function(){return Ra.default}});Object.defineProperty(f,"getDistanceFromLine",{enumerable:!0,get:function(){return wa.default}});Object.defineProperty(f,"getGreatCircleBearing",{enumerable:!0,get:function(){return La.default}});Object.defineProperty(f,"getLatitude",{enumerable:!0,get:function(){return Da.default}});Object.defineProperty(f,"getLongitude",{enumerable:!0,get:function(){return Ia.default}});Object.defineProperty(f,"getPathLength",{enumerable:!0,get:function(){return Ea.default}});Object.defineProperty(f,"getPreciseDistance",{enumerable:!0,get:function(){return Ca.default}});Object.defineProperty(f,"getRhumbLineBearing",{enumerable:!0,get:function(){return qa.default}});Object.defineProperty(f,"getRoughCompassDirection",{enumerable:!0,get:function(){return Na.default}});Object.defineProperty(f,"getSpeed",{enumerable:!0,get:function(){return ja.default}});Object.defineProperty(f,"isDecimal",{enumerable:!0,get:function(){return Ka.default}});Object.defineProperty(f,"isPointInLine",{enumerable:!0,get:function(){return Ua.default}});Object.defineProperty(f,"isPointInPolygon",{enumerable:!0,get:function(){return Fa.default}});Object.defineProperty(f,"isPointNearLine",{enumerable:!0,get:function(){return Ha.default}});Object.defineProperty(f,"isPointWithinRadius",{enumerable:!0,get:function(){return Va.default}});Object.defineProperty(f,"isSexagesimal",{enumerable:!0,get:function(){return Ba.default}});Object.defineProperty(f,"isValidCoordinate",{enumerable:!0,get:function(){return $a.default}});Object.defineProperty(f,"isValidLatitude",{enumerable:!0,get:function(){return Wa.default}});Object.defineProperty(f,"isValidLongitude",{enumerable:!0,get:function(){return Ga.default}});Object.defineProperty(f,"orderByDistance",{enumerable:!0,get:function(){return za.default}});Object.defineProperty(f,"sexagesimalToDecimal",{enumerable:!0,get:function(){return Xa.default}});Object.defineProperty(f,"toDecimal",{enumerable:!0,get:function(){return Za.default}});Object.defineProperty(f,"toDeg",{enumerable:!0,get:function(){return Ja.default}});Object.defineProperty(f,"toRad",{enumerable:!0,get:function(){return Ya.default}});Object.defineProperty(f,"wktToPolygon",{enumerable:!0,get:function(){return Qa.default}});var ga=d(Dn()),ha=d(In()),ba=d(En()),xa=d(Cn()),ya=d(qn()),va=d(Un()),_a=d(Vn()),Ma=d(wr()),Sa=d($n()),Pa=d(zn()),ka=d(Xn()),Ta=d(Qn()),Aa=d(be()),Oa=d(Xe()),Ra=d(V()),wa=d(Ir()),La=d(ii()),Da=d(w()),Ia=d(L()),Ea=d(oi()),Ca=d(li()),qa=d(Lr()),Na=d(ci()),ja=d(fi()),Ka=d(xe()),Ua=d(di()),Fa=d(pi()),Ha=d(gi()),Va=d(hi()),Ba=d(ye()),$a=d(Mr()),Wa=d(xr()),Ga=d(vr()),za=d(Ar()),Xa=d(ve()),Za=d(et()),Ya=d(j()),Ja=d(G()),Qa=d(bi()),Nr=_();Object.keys(Nr).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(pa,e)||e in f&&f[e]===Nr[e]||Object.defineProperty(f,e,{enumerable:!0,get:function(){return Nr[e]}})});function d(e){return e&&e.__esModule?e:{default:e}}});var yi=c(Fr=>{"use strict";Fr.__esModule=!0;function Kr(e,t){return e*e+t*t}function eu(e,t){return Kr(e[0]-t[0],e[1]-t[1])}function tu(e,t,r){var n=t[0],i=t[1],o=r[0]-n,s=r[1]-i;if(o!==0||s!==0){var a=((e[0]-n)*o+(e[1]-i)*s)/Kr(o,s);a>1?(n=r[0],i=r[1]):a>0&&(n+=o*a,i+=s*a)}return Kr(e[0]-n,e[1]-i)}function ru(e,t){for(var r=e[0],n,i=[r],o=1,s=e.length;o<s;o++)n=e[o],eu(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Ur(e,t,r,n,i){for(var o=n,s,a=t+1;a<r;a++){var u=tu(e[a],e[t],e[r]);u>o&&(s=a,o=u)}o>n&&(s-t>1&&Ur(e,t,s,n,i),i.push(e[s]),r-s>1&&Ur(e,s,r,n,i))}function nu(e,t){var r=e.length-1,n=[e[0]];return Ur(e,0,r,t,n),n.push(e[r]),n}function iu(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:ru(e,n),e=nu(e,n),e}Fr.SimplifyAP=iu});var vi=c(Br=>{"use strict";Br.__esModule=!0;function Hr(e,t){return e*e+t*t}function ou(e,t){return Hr(e.longitude-t.longitude,e.latitude-t.latitude)}function su(e,t,r){var n=t.longitude,i=t.latitude,o=r.longitude-n,s=r.latitude-i;if(o!==0||s!==0){var a=((e.longitude-n)*o+(e.latitude-i)*s)/Hr(o,s);a>1?(n=r.longitude,i=r.latitude):a>0&&(n+=o*a,i+=s*a)}return Hr(e.longitude-n,e.latitude-i)}function au(e,t){for(var r=e[0],n,i=[r],o=1,s=e.length;o<s;o++)n=e[o],ou(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Vr(e,t,r,n,i){for(var o=n,s,a=t+1;a<r;a++){var u=su(e[a],e[t],e[r]);u>o&&(s=a,o=u)}o>n&&(s-t>1&&Vr(e,t,s,n,i),i.push(e[s]),r-s>1&&Vr(e,s,r,n,i))}function uu(e,t){var r=e.length-1,n=[e[0]];return Vr(e,0,r,t,n),n.push(e[r]),n}function lu(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:au(e,n),e=uu(e,n),e}Br.SimplifyLL=lu});var _i=c(Gr=>{"use strict";Gr.__esModule=!0;function $r(e,t){return e*e+t*t}function cu(e,t){return $r(e.x-t.x,e.y-t.y)}function fu(e,t,r){var n=t.x,i=t.y,o=r.x-n,s=r.y-i;if(o!==0||s!==0){var a=((e.x-n)*o+(e.y-i)*s)/$r(o,s);a>1?(n=r.x,i=r.y):a>0&&(n+=o*a,i+=s*a)}return $r(e.x-n,e.y-i)}function du(e,t){for(var r=e[0],n,i=[r],o=1,s=e.length;o<s;o++)n=e[o],cu(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Wr(e,t,r,n,i){for(var o=n,s,a=t+1;a<r;a++){var u=fu(e[a],e[t],e[r]);u>o&&(s=a,o=u)}o>n&&(s-t>1&&Wr(e,t,s,n,i),i.push(e[s]),r-s>1&&Wr(e,s,r,n,i))}function mu(e,t){var r=e.length-1,n=[e[0]];return Wr(e,0,r,t,n),n.push(e[r]),n}function pu(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:du(e,n),e=mu(e,n),e}Gr.Simplify=pu});var Mi=c(Pe=>{"use strict";Pe.__esModule=!0;var gu=yi();Pe.SimplifyAP=gu.SimplifyAP;var hu=vi();Pe.SimplifyLL=hu.SimplifyLL;var bu=_i();Pe.Simplify=bu.Simplify});function R(e){return typeof e=="function"}function Ee(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 Ce=Ee(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 de(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 o of r)o.remove(this);else r.remove(this);let{initialTeardown:n}=this;if(R(n))try{n()}catch(o){t=o instanceof Ce?o.errors:[o]}let{_finalizers:i}=this;if(i){this._finalizers=null;for(let o of i)try{cn(o)}catch(s){t=t??[],s instanceof Ce?t=[...t,...s.errors]:t.push(s)}}if(t)throw new Ce(t)}}add(t){var r;if(t&&t!==this)if(this.closed)cn(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)&&de(r,t)}remove(t){let{_finalizers:r}=this;r&&de(r,t),t instanceof e&&t._removeParent(this)}};C.EMPTY=(()=>{let e=new C;return e.closed=!0,e})();var sr=C.EMPTY;function qe(e){return e instanceof C||e&&"closed"in e&&R(e.remove)&&R(e.add)&&R(e.unsubscribe)}function cn(e){R(e)?e():e.unsubscribe()}var I={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Q={setTimeout(e,t,...r){let{delegate:n}=Q;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){let{delegate:t}=Q;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function fn(e){Q.setTimeout(()=>{let{onUnhandledError:t}=I;if(t)t(e);else throw e})}function ar(){}var dn=ur("C",void 0,void 0);function mn(e){return ur("E",void 0,e)}function pn(e){return ur("N",e,void 0)}function ur(e,t,r){return{kind:e,value:t,error:r}}var B=null;function ee(e){if(I.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 gn(e){I.useDeprecatedSynchronousErrorHandling&&B&&(B.errorThrown=!0,B.error=e)}var me=class extends C{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,qe(t)&&t.add(this)):this.destination=ko}static create(t,r,n){return new te(t,r,n)}next(t){this.isStopped?cr(pn(t),this):this._next(t)}error(t){this.isStopped?cr(mn(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?cr(dn,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()}}},So=Function.prototype.bind;function lr(e,t){return So.call(e,t)}var fr=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:r}=this;if(r.next)try{r.next(t)}catch(n){Ne(n)}}error(t){let{partialObserver:r}=this;if(r.error)try{r.error(t)}catch(n){Ne(n)}else Ne(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(r){Ne(r)}}},te=class extends me{constructor(t,r,n){super();let i;if(R(t)||!t)i={next:t??void 0,error:r??void 0,complete:n??void 0};else{let o;this&&I.useDeprecatedNextContext?(o=Object.create(t),o.unsubscribe=()=>this.unsubscribe(),i={next:t.next&&lr(t.next,o),error:t.error&&lr(t.error,o),complete:t.complete&&lr(t.complete,o)}):i=t}this.destination=new fr(i)}};function Ne(e){I.useDeprecatedSynchronousErrorHandling?gn(e):fn(e)}function Po(e){throw e}function cr(e,t){let{onStoppedNotification:r}=I;r&&Q.setTimeout(()=>r(e,t))}var ko={closed:!0,next:ar,error:Po,complete:ar};var hn=typeof Symbol=="function"&&Symbol.observable||"@@observable";function bn(e){return e}function xn(e){return e.length===0?bn: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=Ao(t)?t:new te(t,r,n);return ee(()=>{let{operator:o,source:s}=this;i.add(o?o.call(i,s):s?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return r=yn(r),new r((n,i)=>{let o=new te({next:s=>{try{t(s)}catch(a){i(a),o.unsubscribe()}},error:i,complete:n});this.subscribe(o)})}_subscribe(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)}[hn](){return this}pipe(...t){return xn(t)(this)}toPromise(t){return t=yn(t),new t((r,n)=>{let i;this.subscribe(o=>i=o,o=>n(o),()=>r(i))})}};$.create=e=>new $(e);function yn(e){var t;return(t=e??I.Promise)!==null&&t!==void 0?t:Promise}function To(e){return e&&R(e.next)&&R(e.error)&&R(e.complete)}function Ao(e){return e&&e instanceof me||To(e)&&qe(e)}var vn=Ee(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var q=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 je(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new vn}next(t){ee(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(t)}})}error(t){ee(()=>{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(){ee(()=>{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?sr:(this.currentObservers=null,i.push(t),new C(()=>{this.currentObservers=null,de(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}};q.create=(e,t)=>new je(e,t);var je=class extends q{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:sr}};var S=[];for(let e=0;e<256;++e)S.push((e+256).toString(16).slice(1));function _n(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 Oo=new Uint8Array(16);function dr(){return crypto.getRandomValues(Oo)}function Ro(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():wo(e,t,r)}function wo(e,t,r){e=e||{};let n=e.random??e.rng?.()??dr();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 _n(n)}var mr=Ro;var Ke=class{_connect;_close;_error;_message;ws;_filter="";_wsTimeout=2e4;_token="";_playbackMode=!1;onConnect;onClose;onError;onMessage;version=1;endpoint="";selfId="";_source=null;set source(t){this._source?this._source.label=t:this._source={label:t}}set authToken(t){this._token=t}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(t){this._wsTimeout=t<3e3?3e3:t>6e4?6e4:t}get isOpen(){return!!(this.ws&&this.ws.readyState!==1&&this.ws.readyState!==3)}get filter(){return this._filter}set filter(t){t&&t.indexOf("self")!==-1?this._filter=this.selfId?this.selfId:"":this._filter=t}get playbackMode(){return this._playbackMode}constructor(){this._connect=new q,this.onConnect=this._connect.asObservable(),this._close=new q,this.onClose=this._close.asObservable(),this._error=new q,this.onError=this._error.asObservable(),this._message=new q,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=o=>{this._connect.next(o)},this.ws.onclose=o=>{this._close.next(o)},this.ws.onerror=o=>{this._error.next(o)},this.ws.onmessage=o=>{this.parseOnMessage(o)}}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=re.request();return typeof t.login>"u"&&this._token&&(r.token=this._token),Object.keys(t).forEach(i=>{r[i]=t[i]}),this.send(r),r.requestId}put(t,r,n){let i={context:t==="self"?"vessels.self":t,put:{path:r,value:n}};return this.sendRequest(i)}login(t,r){let n={login:{username:t,password:r}};return this.sendRequest(n)}send(t){this.ws&&this.ws.send(typeof t=="object"?JSON.stringify(t):t)}sendUpdate(t="self",r,n){let i=re.updates();this._token&&(i.token=this._token),i.context=t==="self"?"vessels.self":t,this._token&&(i.token=this._token);let o=[];typeof r=="string"&&o.push({path:r,value:n}),typeof r=="object"&&Array.isArray(r)&&(o=r);let s={timestamp:new Date().toISOString(),values:o};this._source&&(s.source=this._source),i.updates.push(s),this.send(i)}subscribe(t="*",r="*",n){let i=re.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 o={path:r};n&&typeof n=="object"&&(n.period&&(o.period=n.period),n.minPeriod&&(o.minPeriod=n.minPeriod),n.format&&(n.format==="delta"||n.format==="full")&&(o.format=n.format),n.policy&&(n.policy==="instant"||n.policy==="ideal"||n.policy==="fixed")&&(o.policy=n.policy)),i.subscribe.push(o)}this.send(i)}unsubscribe(t="*",r="*"){let n=re.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"}},re=class{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:mr()}}},Ue=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 ne=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},pe=class extends ne{anchor={maxRadius:null,radius:null,position:null};autopilot={state:null,mode:null,target:null,enabled:!1,default:null,availableActions:[]};buddy=!1;closestApproach={distance:null,timeTo:null};cog;cogTrue=null;cogMagnetic=null;courseApi={arrivalCircle:0,activeRoute:{},nextPoint:{},previousPoint:{}};courseCalcs={};distanceToSelf;environment={mode:null,sun:null};heading;headingTrue=null;headingMagnetic=null;headingTrueUpdatedAt=0;headingMagneticUpdatedAt=0;performance={beatAngle:null,gybeAngle:null};radars={};registrations={};resourceUpdates=[];sog;track=[];vectors={cog:[]};wind={direction:null,mwd:null,twd:null,tws:null,speedTrue:null,sog:null,awa:null,aws:null};design={airHeight:null,beam:null,draft:{current:null,maximum:null},length:null};destination={name:null,eta:null};flag;port},Fe=class extends ne{constructor(){super()}},He=class extends ne{sog=0;track=[];constructor(){super()}},ge=class extends ne{constructor(){super()}},Ve=class extends ge{twd;tws;temperature;constructor(){super()}};var pr={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}},he={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"}},W=class{static transform(t,r,n){if(!Number.isFinite(t))return null;if(r===n)return t;try{return pr[r][n](t)}catch{throw new Error("Transformation not found!")}}static setSymbol(t,r){t in he&&(he[t].symbol=r??he[t].symbol)}static getSymbol(t){return t in he?he[t].symbol:t}static degreesToRadians(t){return pr.deg.radian(t)}static radiansToDegrees(t=0){return pr.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,o;if(i>0)o=i>Math.PI?n-i:0-i;else if(i<0){let s=Math.abs(i);o=s>Math.PI?s-n:s}else o=i;return o}};var A=ln(xi()),E=class e{static R=6371e3;static rhumbDestination(t,r,n){let i=e.R,o=n/i,s=t[1]*Math.PI/180,a=t[0]*Math.PI/180,u=r,m=o*Math.cos(u),g=s+m,h=o,x=89*Math.PI/180;g>x&&s<x?(h=o*(x-s)/m,g=x):g<-x&&s>-x&&(h=o*(-x-s)/m,g=-x);let T=Math.log(Math.tan(Math.PI/4+g/2)/Math.tan(Math.PI/4+s/2)),v=Math.abs(T)>1e-12?(g-s)/T:Math.cos(s),O=h*Math.sin(u)/v;return[(a+O)*180/Math.PI,g*180/Math.PI]}static destCoordinate(t,r,n){let i=(0,A.computeDestinationPoint)(t,n,W.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 o={bearing:(0,A.getGreatCircleBearing)(t[i-1],t[i]),distance:e.distanceTo(t[i-1],t[i])};n.push(o)}return n}static closestForwardPoint(t,r,n){if(t.length<2||!r)return-1;let i={index:-1,distance:-1};for(let o=0;o<t.length;++o){let s=(0,A.getGreatCircleBearing)(r,t[o]),a=jr.difference(n,s);if(a>-90&&a<90){let u=e.distanceTo(r,t[o]);(i.distance===-1||u<i.distance)&&(i.distance=u,i.index=o)}}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(W.degreesToRadians(t[1])),o=[0,0,0,0];return o[1]=t[1]+(0-Math.abs(r))/111111,o[3]=t[1]+Math.abs(r)/111111,o[0]=t[0]+(0-Math.abs(r))/i,o[2]=t[0]+Math.abs(r)/i,o}static normaliseCoords(t){if(!Array.isArray(t))return[0,0];if(typeof t[0]=="number"){if(t[0]>180)for(;t[0]>180;)t[0]=t[0]-360;else if(t[0]<-180)for(;t[0]<-180;)t[0]=360+t[0];return t}else if(Array.isArray(t[0]))return t.forEach(r=>this.normaliseCoords(r)),t}},jr=class e{static difference(t,r){let n=360-r,i=t+n,o=e.normalise(i);return o<180?0-o:360-o}static add(t,r){return e.normalise(t+r)}static normalise(t){return t<0?t+360:t>=360?t-360:t}};var Ht=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"}},Vt=class extends z{constructor(){super(),this.action="resource"}},Bt=class extends z{constructor(){super(),this.action="radar"}},oe=class extends z{timed;constructor(){super(),this.action="trail"}};var Ji=ln(Mi());var Pi="auto",Si=1e4,xu=.2572,ki=new Set(["navigation.headingTrue","navigation.headingMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.speedOverGround"]);function Ti(e){let t=Date.now();if(e.headingTrue!==null&&t-e.headingTrueUpdatedAt<=Si){e.orientation=e.headingTrue;return}if(e.headingMagnetic!==null&&t-e.headingMagneticUpdatedAt<=Si){e.orientation=e.headingMagnetic;return}let r=e.cogTrue??e.cogMagnetic;typeof r=="number"&&(e.sog??0)>=xu&&(e.orientation=r)}var Gt={api:"none",serverHasTracksApi:!1,v1SelfTrack:!1,v1AisTracks:!1},yu="PT2H",vu=120,_u=10,Mu=1e3,zt=12;function wi(e){let t=e.replace(/\/v1\/api\/?$/,"");return{features:`${t}/v2/features`,providers:`${t}/v2/api/tracks/_providers`,v1SelfTrack:`${e}/self/track?timespan=1h`,v1Tracks:`${e}/tracks`}}function Xr(e){return`${e.replace(/\/v1\/api\/?$/,"")}/v2/api/tracks`}var Ai=async(e,t)=>{try{return(await e(t)).ok}catch{return!1}},Oi=async(e,t)=>{try{let r=await e(t);return r.ok?await r.json():void 0}catch{return}};function Su(e){if(!e||typeof e!="object")return;let t=Object.entries(e);if(t.length!==0)return(t.find(([,r])=>r?.isDefault)??t[0])[0]}async function Li(e,t){let r=await Oi(e,t.features),n=Array.isArray(r?.apis)&&r.apis.includes("tracks");if(n){let s=Su(await Oi(e,t.providers));if(s)return{api:"v2",serverHasTracksApi:n,provider:s,v1SelfTrack:!1,v1AisTracks:!1}}let[i,o]=await Promise.all([Ai(e,t.v1SelfTrack),Ai(e,t.v1Tracks)]);return{api:i||o?"v1":"none",serverHasTracksApi:n,v1SelfTrack:i,v1AisTracks:o}}function $t(e){if(typeof e!="string")return;let t=e.trim();if(/^P/i.test(t))return t.toUpperCase();let r=/^(\d+)\s*([smh])$/i.exec(t);return r?`PT${Number(r[1])}${r[2].toUpperCase()}`:void 0}var X=36e5;function Di(e,t,r){let n=o=>new Date(o).toISOString(),i=[];return e>24?(i.push({from:n(r-e*X),to:n(r-24*X),resolution:$t(t.beyond24)}),i.push({from:n(r-24*X),to:n(r-X),resolution:$t(t.next23)})):e>1&&i.push({from:n(r-e*X),to:n(r-X),resolution:$t(t.next23)}),i.push({from:n(r-X),resolution:$t(t.lastHour)}),i}function Wt(e){return Object.entries(e).filter(([,t])=>t!==void 0&&t!=="").map(([t,r])=>`${t}=${encodeURIComponent(String(r))}`).join("&")}function Ii(e,t,r){return`${e}?${Wt({context:"self",from:t.from,to:t.to,resolution:t.resolution,times:"true",provider:r})}`}var Ei=e=>{let t=e?.features;return Array.isArray(t)?t:[]},zr=e=>e.geometry?.type==="MultiLineString"&&Array.isArray(e.geometry.coordinates)?e.geometry.coordinates:void 0;function Ci(e){let t=Ei(e).filter(n=>n.properties?.isSelf&&zr(n));if(t.length===0)return;let r=t[0].properties?.providerId;return t.filter(n=>n.properties?.providerId===r).flatMap(n=>zr(n))}function qi(e,t){let r=new Map,n=new Map;return Ei(e).forEach(i=>{let o=i.properties?.context,s=zr(i);if(!o||i.properties?.isSelf||!s)return;let a=i.properties?.providerId;(!r.has(o)||a===t&&n.get(o)!==t)&&(r.set(o,s),n.set(o,a))}),r}function Ri(e){let t=((e+180)%360+360)%360-180;return t===-180&&e>0?180:t}function Pu(e,t){if(!Array.isArray(e)||e.length!==4)return null;let[r,n,i,o]=e;if(![r,n,i,o].every(Number.isFinite)||i<r)return null;if(Array.isArray(t)&&t.length===4){let[a,u,m,g]=t,h=Math.round(((r+i)/2-(a+m)/2)/360)*360;if(r=Math.max(r,a+h),i=Math.min(i,m+h),n=Math.max(n,u),o=Math.min(o,g),r>=i||n>=o)return null}let s=a=>Math.round(a*1e6)/1e6;return n=s(Math.max(-90,n)),o=s(Math.min(90,o)),i-r>=360?[-180,n,180,o]:[s(Ri(r)),n,s(Ri(i)),o]}function Ni(e){if(e.showAll){if(!e.view||!(e.view.zoom>=_u))return null;let n=Pu(e.view.extent,e.radiusBox);return n?Wt({bbox:n.join(","),duration:yu,maxPoints:vu,times:"true",provider:e.provider}):null}let t=e.picks.filter(n=>e.targets.has(n));if(t.length===0)return null;let r=Number.isFinite(e.pickHours)&&e.pickHours>0?e.pickHours:zt;return Wt({contexts:t.join(","),duration:`PT${r}H`,maxPoints:Mu,times:"true",provider:e.provider})}var ji=.5;function Ki(e,t){let[r,n,i,o]=e,s=(i-r)*t,a=(o-n)*t;return[r-s,n-a,i+s,o+a]}function Ui(e,t){if(!e||Math.floor(e.zoom)!==Math.floor(t.zoom))return!0;let[r,n,i,o]=t.extent,[s,a,u,m]=e.extent;return r<s||n<a||i>u||o>m}function Fi(){let e=0;return{begin:()=>++e,invalidate:()=>{e++},isCurrent:t=>t===e}}var ku=6378137,Tu=2*Math.PI*ku/256;var Zr=6e4,Yr=60*Zr,Hi=24*Yr;var Bi=e=>{let t=e?.features;return Array.isArray(t)?t:[]},Au=(e,t)=>{if(e.length===0)return[];let r=e.some(n=>n.properties?.providerId===t)?t:e[0].properties?.providerId;return e.filter(n=>n.properties?.providerId===r)};function Jr(e,t,r){let n=[],i=[],o=!0;if(Au(Bi(t),r).forEach(s=>{let a=s.geometry?.type==="MultiLineString"&&Array.isArray(s.geometry.coordinates)?s.geometry.coordinates:[],u=s.properties?.coordTimes;a.forEach((m,g)=>{if(!Array.isArray(m)||m.length===0)return;n.push(m);let h=Array.isArray(u)?u[g]:void 0;Array.isArray(h)&&h.length===m.length?i.push(h):o=!1})}),n.length!==0)return o?{context:e,lines:n,times:i}:{context:e,lines:n}}function $i(e,t){let r=new Map;Bi(e).forEach(i=>{let o=i.properties?.context;o&&r.set(o,[...r.get(o)??[],i])});let n=new Map;return r.forEach((i,o)=>{let s=Jr(o,{features:i},t);s?.times&&n.set(o,{lines:s.lines,times:s.times})}),n}var ld=[5*Zr,15*Zr,Yr,6*Yr,Hi,7*Hi];var Vi=e=>e?Date.parse(e):NaN;var Ou=10*6e4;function Wi(e,t){let r=[...e.lines],n=[...e.times];return t.lines.forEach((i,o)=>{let s=n[n.length-1],a=s?Vi(t.times[o][0])-Vi(s[s.length-1]):NaN;o===0&&a>=0&&a<=Ou?(r[r.length-1]=r[r.length-1].concat(i),n[n.length-1]=s.concat(t.times[o])):(r.push(i),n.push(t.times[o]))}),{lines:r,times:n}}var Ru=["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"],y={active:!1,maxMsgIntervals:18,intervalCount:0,msgCount:0,alarm:!1},l,M,Zt,Ae=[],Yt=[],Qr=!1,Y,ue=Gt,Qi=Promise.resolve(Gt),Re=null,eo=null,to=[],Jt=!1,en=zt,Gi,wu=1e3,le=new Set,we=Fi(),Lu=5e3,b={signalk:{},aisState:[]},ro=[0,0,0,0],no=60,ke=0,k,ae={},Z=500,P=!1,io,K={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},tn={selfLines:{cog:{length:10}},aisCogLine:10},ce={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},F,oo,se="freeboard-sk";function Du(){l={self:new pe,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},l.self.positionReceived=!1,le.clear(),we.invalidate(),so()}function so(){k={updated:{},stale:{},expired:{}}}function Xt({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:P,result:t.target.readyState}),Eu(),y.msgCount=0,y.intervalCount=0,y.alarm=!1,y.active=!0;break;case"onClose":ao(!1),zi();break;case"onError":postMessage({action:"error",playback:P,result:"Connection error!"}),zi();break;case"onMessage":y.msgCount++,Bu(t);break}}function zi(){y.msgCount=0,y.intervalCount=0,y.active=!0,y.alarm=!0,er(!0)}addEventListener("message",({data:e})=>{Iu(e)});function Iu(e){if(e.cmd)switch(e.cmd){case"open":Xi(e.options),Hu(e.options);break;case"close":ao(!0);break;case"subscribe":M.subscribe(e.options.context,e.options.path);break;case"settings":Xi(e.options);break;case"alarm":Vu(e.options);break;case"vessel":if(e.options){let t;e.options.context==="self"?t=l.self:t=l.aisTargets.get(e.options.context),t&&e.options.name&&(t.name=e.options.name)}break;case"auth":e.options&&typeof e.options.token<"u"&&(Zt=e.options.token);break;case"trail":e.options&&(ce.trailDuration=e.options.trailDuration??24,e.options.trailResolution&&(ce.trailResolution.lastHour=e.options.trailResolution.lastHour??"5s",ce.trailResolution.next23=e.options.trailResolution.next23??"1m",ce.trailResolution.beyond24=e.options.trailResolution.beyond24??"5m")),Cu();break;case"view":e.options?.extent&&(Re={extent:e.options.extent,zoom:e.options.zoom},Jt&&Ui(eo,Re)&&Qt());break;case"trackSelection":to=Array.isArray(e.options?.ids)?e.options.ids:[],Qt();break}}function Xi(e={}){if(e.interval&&typeof e.interval=="number"&&(Z=e.interval,mo(),fo(),no=1/(Z/1e3)*60),P=!!e.playback,e.config){typeof e.config.units.preferredPaths<"u"&&(ae=e.config.units.preferredPaths),e.config.vessels.aisMaxAge&&typeof e.config.vessels.aisMaxAge=="number"&&(K.maxAge=e.config.vessels.aisMaxAge),e.config.vessels.aisStaleAge&&typeof e.config.vessels.aisStaleAge=="number"&&(K.staleAge=e.config.vessels.aisStaleAge),typeof e.config.signalk.maxRadius=="number"&&(b.signalk=e.config.signalk),typeof e.config.selections.aisState<"u"&&Array.isArray(e.config.selections.aisState)&&(b.aisState=e.config.selections.aisState),tn=e.config.vessels,e.config.vessels.aisShowTrack!==Jt&&(Jt=e.config.vessels.aisShowTrack,Qt());let t=e.config.vessels.aisTrackLength??zt;t!==en&&(en=t,Qt())}}function ao(e=!1){mo(),Ae.forEach(t=>t.unsubscribe()),M&&e&&M.close(),M=null,postMessage({action:"close",result:e,playback:P})}function Oe(e){return fetch(e).then(t=>t.json())}function uo(e){return fetch(e,Zt?{headers:{Authorization:`Bearer ${Zt}`}}:void 0)}function lo(e){return uo(e).then(t=>{if(!t.ok)throw new Error(`${t.status}`);return t.json()})}function Eu(){Y&&(Qi=Li(uo,wi(Y)).catch(()=>Gt).then(e=>(ue=e,postMessage({action:"trackSource",playback:P,result:e}),rn(),e)))}function Cu(){Qi.then(e=>{if(e.api==="v2")qu(ce,e.provider);else if(e.api==="v1"&&e.v1SelfTrack)Fu(ce);else{let t=new oe;t.playback=P,t.result=null,postMessage(t)}})}function qu(e,t){let r=Xr(Y),n=Di(e.trailDuration,e.trailResolution,Date.now()),i=new oe;i.playback=P,Promise.all(n.map(o=>lo(Ii(r,o,t)))).then(o=>{i.result=co(o.map(s=>Ci(s)??null)),i.timed=Nu(o,t),postMessage(i)}).catch(()=>{i.result=null,postMessage(i)})}function Nu(e,t){let r={lines:[],times:[]};for(let n of e){let i=Jr("self",n,t);if(i&&!i.times)return;i&&(r=Wi(r,{lines:i.lines,times:i.times}))}return r.lines.length?r:void 0}function Qt(){we.invalidate(),clearTimeout(Gi),Gi=setTimeout(()=>{ue.api==="v2"&&rn()},wu)}function rn(){P||!l||(ue.api==="v2"?ju(ue.provider):ue.api==="v1"&&ue.v1AisTracks&&Uu())}function ju(e){let t=Re&&{extent:Ki(Re.extent,ji),zoom:Re.zoom};eo=t;let r=Ni({view:t,showAll:Jt,picks:to,targets:l.aisTargets,radiusBox:b.signalk.maxRadius&&l.self.positionReceived?E.calcMapifiedExtent(l.self.position,b.signalk.maxRadius):void 0,pickHours:en,provider:e});if(!r){we.invalidate();return}let n=we.begin();lo(`${Xr(Y)}?${r}`).then(i=>{we.isCurrent(n)&&!P&&(Ku(l.aisTargets,qi(i,e)),postMessage({action:"aisTracksTimed",playback:P,result:$i(i,e)}))}).catch(()=>{})}function Ku(e,t){let r=[...le];le.clear(),t.forEach((n,i)=>{let o=e.get(i),s=n.filter(a=>Array.isArray(a)&&a.length>0);o?.positionReceived&&o.position&&s.length>0&&(o.track=s,le.add(i),tr(o))}),r.filter(n=>!le.has(n)).forEach(n=>{let i=e.get(n),o=i?.track?.[i.track.length-1];o&&(i.track=[o.slice(0-K.maxTrack)])})}function Uu(){let e=b&&b.signalk&&b.signalk.maxRadius?`?radius=${b.signalk.maxRadius}`:"?radius=10000";Oe(Y+"/tracks"+e).then(t=>{Object.entries(t).forEach(r=>{if(l.aisTargets.has(r[0])){let n=l.aisTargets.get(r[0]);n.track=r[1].coordinates,tr(n)}})}).catch(()=>{})}function Fu(e){let t=Y+"/self/track?",r=[];e.trailDuration>24&&(r.push(Oe(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}×panOffset=24`)),r.push(Oe(`${t}timespan=23h&resolution=${e.trailResolution.next23}×panOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&r.push(Oe(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}×panOffset=1`)),r.push(Oe(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let n=new oe;n.playback=P,Promise.all(r).then(i=>{n.result=co(i.map(o=>o?.type==="MultiLineString"&&Array.isArray(o.coordinates)?o.coordinates:null)),postMessage(n)}).catch(()=>{n.result=null,postMessage(n)})}function co(e){let i=e.length-1,o=[];return e.forEach((s,a)=>{if(s)if(a!==i){let u=[];for(s.forEach(m=>{u=u.concat(m)}),u=(0,Ji.SimplifyAP)(u,5e-4,!0);u.length>60;){let m=u.slice(0,60);o.push(m),u=u.slice(59),u[0]=[u[0][0]+5e-9,u[0][1]+5e-9]}u.length!==0&&o.push(u)}else o=o.concat(s)}),o}function Hu(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:",Y=t.join("/"),Du(),M=new Ke,Ae.push(M.onConnect.subscribe(r=>Xt({action:"onConnect",msg:r}))),Ae.push(M.onClose.subscribe(r=>Xt({action:"onClose",msg:r}))),Ae.push(M.onError.subscribe(r=>Xt({action:"onError",msg:r}))),Ae.push(M.onMessage.subscribe(r=>Xt({action:"onMessage",msg:r}))),M.authToken=Zt,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)}function Vu(e){let t=e.type.indexOf("notifications.")===-1?`notifications.${e.type}`:e.type;e.raise?M.raiseAlarm("self",t,new Ue(e.message,e.state,!0,!0)):M.clearAlarm("self",t)}function Bu(e){M.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:P}),Z&&fo()):M.isDelta(e)?(Qr=!0,e.updates.forEach(t=>{!("values"in t)||!t.values||(F=t.$source,oo=t.timestamp,t.values.forEach(r=>{if(io=t.timestamp,!!e.context)switch(e.context.split(".")[0]){case"shore":case"atons":b?.signalk.atons&&Xu(e.context,r),Te(e.context,l.atons,b?.signalk.atons);break;case"sar":b?.signalk.sar&&Zu(e.context,r),Te(e.context,l.sar,b?.signalk.sar);break;case"aircraft":b?.signalk.aircraft&&Ju(e.context,r),Te(e.context,l.aircraft,b?.signalk.aircraft);break;case"meteo":b?.signalk.meteo&&(Yu(e.context,r),Yi(r)),Te(e.context,l.meteo,b?.signalk.meteo);break;case"vessels":if(M.isSelf(e))l.self.id||(l.self.id=e.context),Zi(l.self,r,!0),Yi(r);else{if(b?.signalk.vessels){let n=$u(e.context);Zi(n,r)}Te(e.context,l.aisTargets,b?.signalk.vessels,b?.aisState)}break}}))}),er()):M.isResponse(e)&&postMessage({action:"response",result:e})}function Te(e,t,r=!0,n=[]){if(r){let i=t.get(e);i&&n.includes(i?.state)&&(k.expired[e]=!0,i=null),i&&b.signalk.maxRadius?i.positionReceived&&E.inBounds(i.position,ro)?k.updated[e]=!0:(t.delete(e),k.expired[e]=!0):k.updated[e]=!0}else t.size!==0&&(t.forEach((i,o)=>{k.expired[o]=!0}),t.clear())}function er(e=!1){if(!Z||e){let t=new z;t.watchDogAlarm=y.alarm,t.playback=P,l.aisStatus.updated=Object.keys(k.updated),l.aisStatus.stale=Object.keys(k.stale),l.aisStatus.expired=Object.keys(k.expired),t.result=l,t.timestamp=P?io:l.self.lastUpdated.toISOString(),postMessage(t),so(),l.self.resourceUpdates=[],zu(),ke===0&&l.self.positionReceived&&b?.signalk.maxRadius&&(ro=E.calcMapifiedExtent(l.self.position,b.signalk.maxRadius),ke++),ke=ke>=no?0:ke+1}}function fo(){Z&&typeof Z=="number"&&Yt.push(setInterval(()=>{y.active&&!y.msgCount?(y.intervalCount=y.intervalCount+1,y.intervalCount>=y.maxMsgIntervals&&(y.intervalCount=0,y.alarm=!0,er(!0))):(y.intervalCount=0,y.msgCount=0,y.alarm=!1),Qr&&(er(!0),Qr=!1)},Z)),Yt.push(setInterval(()=>rn(),6e4))}function mo(){Yt.forEach(e=>clearInterval(e)),Yt=[]}function $u(e){if(!l.aisTargets.has(e)){let t=new pe;t.id=e,t.position=null,l.aisTargets.set(e,t)}return l.aisTargets.get(e)}function Zi(e,t,r=!1){let n=t.value;if(r){if(e.lastUpdated=new Date,t.path.startsWith("resources."))e.resourceUpdates.push(t),Gu(t);else if(t.path.startsWith("radars"))Wu(t);else if(t.path.startsWith("navigation.racing"))e.properties[t.path]=n;else if(t.path==="performance.beatAngle")e.performance.beatAngle=n;else if(t.path==="performance.gybeAngle")e.performance.gybeAngle=n;else if(t.path.startsWith("navigation.course."))if(t.path.startsWith("navigation.course.calcValues.")){let a=t.path.split(".").slice(3).join(".");e.courseCalcs[a]=n}else t.path.includes("activeRoute")?e.courseApi.activeRoute=n:t.path.includes("nextPoint")?e.courseApi.nextPoint=n:t.path.includes("previousPoint")?e.courseApi.previousPoint=n:t.path.includes("arrivalCircle")&&(e.courseApi.arrivalCircle=n);else if(t.path.startsWith("radars.")){let a=t.path.split("."),u=a.slice(2).join(".");e.radars[a[1]]||(e.radars[a[1]]={}),e.radars[a[1]][u]=n}let s=t.path.indexOf("course")!==-1?t.path.split(".").slice(0,2).join("."):t.path;Ru.indexOf(s)!==-1&&(l.paths[s]=null)}else t.path==="navigation.distanceToSelf"&&(e.distanceToSelf=n),t.path==="navigation.closestApproach"&&(e.closestApproach=n);if(t.path==="")typeof n.name<"u"&&(e.name=n.name),typeof n.mmsi<"u"&&(e.mmsi=n.mmsi,e.lastUpdated=new Date),typeof n.registrations<"u"&&(e.registrations=n.registrations),typeof n.buddy<"u"&&(e.buddy=n.buddy),typeof n.communication<"u"&&(e.callsignVhf=n.communication.callsignVhf??"",e.callsignHf=n.communication.callsignHf??"");else if(t.path==="communication.callsignVhf")e.callsignVhf=n;else if(t.path==="communication.callsignHf")e.callsignHf=n;else if(t.path==="design.aisShipType")e.type=n;else if(t.path==="navigation.position"&&n){if(typeof n.latitude>"u"||typeof n.longitude>"u")return;e.position=E.normaliseCoords([n.longitude,n.latitude]),e.positionReceived=!0,e.positionTimestamp=oo??"",e.positionUpdatedAt=Date.now(),e.lastUpdated=new Date,r||tr(e)}else t.path==="navigation.state"?e.state=n:t.path==="navigation.speedOverGround"?e.sog=n:t.path==="environment.mode"?e.environment.mode=n:t.path==="environment.sun"?e.environment.sun=n:t.path==="environment.wind.angleApparent"?e.wind.awa=n:t.path==="environment.wind.speedApparent"?e.wind.aws=n:t.path==="environment.wind.speedTrue"?e.wind.speedTrue=n:t.path==="environment.wind.speedOverGround"?e.wind.sog=n:t.path==="environment.wind.directionTrue"?e.wind.twd=n:t.path==="environment.wind.directionMagnetic"?e.wind.mwd=n:t.path==="navigation.anchor.position"?e.anchor.position=n:t.path==="navigation.anchor.maxRadius"?e.anchor.maxRadius=n:t.path==="navigation.anchor.currentRadius"?e.anchor.radius=n:t.path==="steering.autopilot.state"&&F===se?e.autopilot.state=n:t.path==="steering.autopilot.mode"&&F===se?e.autopilot.mode=n:t.path==="steering.autopilot.target"&&F===se?e.autopilot.target=n:t.path==="steering.autopilot.engaged"&&F===se?e.autopilot.enabled=n:t.path==="steering.autopilot.defaultPilot"?(e.autopilot.default=n,se=n):t.path==="steering.autopilot.availableActions"&&F===se?e.autopilot.availableActions=n??[]:t.path==="navigation.courseOverGroundTrue"?e.cogTrue=n:t.path==="navigation.courseOverGroundMagnetic"?e.cogMagnetic=n:t.path==="navigation.headingTrue"?(e.headingTrue=n,e.headingTrueUpdatedAt=Date.now()):t.path==="navigation.headingMagnetic"&&(e.headingMagnetic=n,e.headingMagneticUpdatedAt=Date.now());let i=ae.heading;typeof i>"u"||i===Pi?ki.has(t.path)&&Ti(e):t.path===i&&(e.orientation=n),typeof ae.tws<"u"&&t.path===ae.tws&&(e.wind.tws=n),typeof ae.twd<"u"&&t.path===ae.twd&&(e.wind.direction=t.path==="environment.wind.angleTrueGround"||t.path==="environment.wind.angleTrueWater"?W.angleToDirection(n,e.orientation??0):n);let o=e.cogTrue??e.cogMagnetic??void 0;if(typeof o<"u"&&e.position){let s=r?tn.selfLines.cog.length:tn.aisCogLine,a=(e.sog??0)*(s*60);e.vectors.cog=[e.position,E.rhumbDestination(e.position,o,a)]}}function Wu(e){let t=new Bt;t.playback=P,t.result={path:e.path,value:e.value,sourceRef:F},postMessage(t)}function Gu(e){let t=new Vt;t.playback=P,t.result={path:e.path,value:e.value,sourceRef:F},postMessage(t)}function Yi(e){if(e.path.includes("notifications.")){let t=new Ht;t.playback=P,t.result={path:e.path,value:e.value,sourceRef:F},postMessage(t)}}function zu(){let e=new Date().valueOf();l.aisTargets.forEach((t,r)=>{t.lastUpdated.valueOf()<e-K.maxAge?(k.expired[r]=!0,l.aisTargets.delete(r)):t.lastUpdated.valueOf()<e-K.staleAge&&(k.stale[r]=!0)}),l.aircraft.forEach((t,r)=>{t.lastUpdated.valueOf()<e-K.maxAge?(k.expired[r]=!0,l.aircraft.delete(r)):t.lastUpdated.valueOf()<e-K.staleAge&&(k.stale[r]=!0)}),l.sar.forEach((t,r)=>{t.lastUpdated.valueOf()<e-K.maxAge?(k.expired[r]=!0,l.sar.delete(r)):t.lastUpdated.valueOf()<e-K.staleAge&&(k.stale[r]=!0)})}function Xu(e,t){let r=!1;if(e.indexOf("shore.basestations")!==-1&&(r=!0),!l.atons.has(e)){let i=new ge;i.id=e,i.position=null,i.type.id=null,r&&(i.type.id=-2,i.type.name="Basestation"),l.atons.set(e,i)}let n=l.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 Zu(e,t){if(!l.sar.has(e)){let n=new Fe;n.id=e,n.position=null,n.type.id=-1,n.type.name="SaR Beacon",l.sar.set(e,n)}let r=l.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=E.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Yu(e,t){if(!l.meteo.has(e)){let n=new Ve;n.id=e,n.position=null,n.type.id=-1,n.type.name="Weather Station",l.meteo.set(e,n)}let r=l.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=E.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Ju(e,t){if(!l.aircraft.has(e)){let n=new He;n.id=e,n.position=null,l.aircraft.set(e,n)}let r=l.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=E.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0,tr(r)):t.path==="navigation.courseOverGroundTrue"?r.orientation=t.value:t.path==="navigation.speedOverGround"&&(r.sog=t.value)}function tr(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-(le.has(e.id)?Lu:K.maxTrack))}export{Oe as apiGet,Ku as applyServerAisTracks,Xt as handleStreamEvent,Du as initVessels,Zi as processVessel,Nu as timedTrail,uo as trackFetch};
|