@signalk/freeboard-sk 2.21.0 → 2.22.1
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 +1 -1
- package/public/assets/help/index.html +5 -2
- package/public/assets/img/atons/virtual-basestation.svg +52 -0
- package/public/index.html +1 -1
- package/public/{main-EZERJUU2.js → main-MEWGDMXY.js} +120 -128
- package/public/{worker-NREW3SD6.js → worker-NL6SZ7YW.js} +4 -4
- package/vitest-base.config.ts +0 -12
- package/vitest-setup.js +0 -16
- /package/public/assets/img/atons/{basestation.svg → real-basestation.svg} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var
|
|
2
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lo(t,e){if(t){if(typeof t=="string")return Pi(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Pi(t,e)}}function Pi(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r<e;r++)i[r]=t[r];return i}function fo(t,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(t)))){var r=[],i=!0,n=!1,a=void 0;try{for(var o=t[Symbol.iterator](),s;!(i=(s=o.next()).done)&&(r.push(s.value),!(e&&r.length===e));i=!0);}catch(u){n=!0,a=u}finally{try{!i&&o.return!=null&&o.return()}finally{if(n)throw a}}return r}}function co(t){if(Array.isArray(t))return t}var mo=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,i=Math.pow(10,r);return Math.round(e*i)/i},po=function(e){var r=e.toString().split("."),i=xi(r,2),n=i[0],a=i[1],o=Math.abs(Number(n)),s=+("0."+(a||0))*60,u=s.toString().split("."),p=Math.floor(s),S=mo(+("0."+(u[1]||0))*60).toString(),v=S.split("."),m=xi(v,2),x=m[0],w=m[1],y=w===void 0?"0":w;return o+"\xB0 "+p.toString().padStart(2,"0")+"' "+x.padStart(2,"0")+"."+y.padEnd(1,"0")+'"'},go=po;at.default=go});var hr=l(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.default=void 0;var ho=function(e){return e>1?1:e<-1?-1:e},vo=ho;ot.default=vo});var $=l(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var Si=st(L()),Oi=st(k()),ie=st(I()),yo=st(hr()),bo=M();function st(t){return t&&t.__esModule?t:{default:t}}var _o=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;i=typeof i<"u"&&!isNaN(i)?i:1;var n=(0,Si.default)(e),a=(0,Oi.default)(e),o=(0,Si.default)(r),s=(0,Oi.default)(r),u=Math.acos((0,yo.default)(Math.sin((0,ie.default)(o))*Math.sin((0,ie.default)(n))+Math.cos((0,ie.default)(o))*Math.cos((0,ie.default)(n))*Math.cos((0,ie.default)(a)-(0,ie.default)(s))))*bo.earthRadius;return Math.round(u/i)*i},xo=_o;ut.default=xo});var vr=l(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var wi=Po($());function Po(t){return t&&t.__esModule?t:{default:t}}var Mo=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:wi.default;return i=typeof i=="function"?i:wi.default,r.slice().sort(function(n,a){return i(e,n)-i(e,a)})},So=Mo;lt.default=So});var Ai=l(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var Oo=wo(vr());function wo(t){return t&&t.__esModule?t:{default:t}}var Ao=function(e,r){return(0,Oo.default)(e,r)[0]},Do=Ao;ft.default=Do});var ki=l(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var yr=br(I()),Lo=br(L()),Di=br(k()),Li=M();function br(t){return t&&t.__esModule?t:{default:t}}var ko=function(e){var r=0;if(e.length>2){for(var i,n,a,o=0;o<e.length;o++){o===e.length-2?(i=e.length-2,n=e.length-1,a=0):o===e.length-1?(i=e.length-1,n=0,a=1):(i=o,n=o+1,a=o+2);var s=(0,Di.default)(e[i]),u=(0,Lo.default)(e[n]),p=(0,Di.default)(e[a]);r+=((0,yr.default)(p)-(0,yr.default)(s))*Math.sin((0,yr.default)(u))}r=r*Li.earthRadius*Li.earthRadius/2}return Math.abs(r)},Ro=ko;ct.default=Ro});var _r=l(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.default=void 0;var qo=Ri(L()),To=Ri(k());function Ri(t){return t&&t.__esModule?t:{default:t}}var Co=function(e){if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce(function(r,i){var n=(0,qo.default)(i),a=(0,To.default)(i);return{maxLat:Math.max(n,r.maxLat),minLat:Math.min(n,r.minLat),maxLng:Math.max(a,r.maxLng),minLng:Math.min(a,r.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})},Eo=Co;dt.default=Eo});var qi=l(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.default=void 0;var No=pt(L()),Io=pt(k()),ne=pt(I()),mt=pt(z()),ye=M();function pt(t){return t&&t.__esModule?t:{default:t}}var Fo=function(e,r){var i=(0,No.default)(e),n=(0,Io.default)(e),a=(0,ne.default)(i),o=(0,ne.default)(n),s=r/ye.earthRadius,u=a-s,p=a+s,S=(0,ne.default)(ye.MAXLAT),v=(0,ne.default)(ye.MINLAT),m=(0,ne.default)(ye.MAXLON),x=(0,ne.default)(ye.MINLON),w,y;if(u>v&&p<S){var q=Math.asin(Math.sin(s)/Math.cos(a));w=o-q,w<x&&(w+=Math.PI*2),y=o+q,y>m&&(y-=Math.PI*2)}else u=Math.max(u,v),p=Math.min(p,S),w=x,y=m;return[{latitude:(0,mt.default)(u),longitude:(0,mt.default)(w)},{latitude:(0,mt.default)(p),longitude:(0,mt.default)(y)}]},Uo=Fo;gt.default=Uo});var Ei=l(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.default=void 0;var Vo=ht(L()),Ko=ht(k()),Ti=ht(I()),Ci=ht(z());function ht(t){return t&&t.__esModule?t:{default:t}}var Wo=function(e){if(Array.isArray(e)===!1||e.length===0)return!1;var r=e.length,i=e.reduce(function(s,u){var p=(0,Ti.default)((0,Vo.default)(u)),S=(0,Ti.default)((0,Ko.default)(u));return{X:s.X+Math.cos(p)*Math.cos(S),Y:s.Y+Math.cos(p)*Math.sin(S),Z:s.Z+Math.sin(p)}},{X:0,Y:0,Z:0}),n=i.X/r,a=i.Y/r,o=i.Z/r;return{longitude:(0,Ci.default)(Math.atan2(a,n)),latitude:(0,Ci.default)(Math.atan2(o,Math.sqrt(n*n+a*a)))}},$o=Wo;vt.default=$o});var Ni=l(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.default=void 0;var Bo=jo(_r());function jo(t){return t&&t.__esModule?t:{default:t}}var Ho=function(e){var r=(0,Bo.default)(e),i=r.minLat+(r.maxLat-r.minLat)/2,n=r.minLng+(r.maxLng-r.minLng)/2;return{latitude:parseFloat(i.toFixed(6)),longitude:parseFloat(n.toFixed(6))}},Go=Ho;yt.default=Go});var xr=l(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Ii=_t(L()),Fi=_t(k()),bt=_t(I()),zo=_t(z());function _t(t){return t&&t.__esModule?t:{default:t}}var Xo=function(e,r){var i=(0,bt.default)((0,Fi.default)(r))-(0,bt.default)((0,Fi.default)(e)),n=Math.log(Math.tan((0,bt.default)((0,Ii.default)(r))/2+Math.PI/4)/Math.tan((0,bt.default)((0,Ii.default)(e))/2+Math.PI/4));return Math.abs(i)>Math.PI&&(i>0?i=(Math.PI*2-i)*-1:i=Math.PI*2+i),((0,zo.default)(Math.atan2(i,n))+360)%360},Yo=Xo;xt.default=Yo});var Vi=l(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=void 0;var Ui=Zo(xr());function Zo(t){return t&&t.__esModule?t:{default:t}}var Jo=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ui.default,n=typeof i=="function"?i(e,r):(0,Ui.default)(e,r);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"}},Qo=Jo;Pt.default=Qo});var Mr=l(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var Pr=Wi($()),Ki=Wi(hr());function Wi(t){return t&&t.__esModule?t:{default:t}}var es=function(e,r,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,a=(0,Pr.default)(r,e,n),o=(0,Pr.default)(e,i,n),s=(0,Pr.default)(r,i,n),u=Math.acos((0,Ki.default)((a*a+s*s-o*o)/(2*a*s))),p=Math.acos((0,Ki.default)((o*o+s*s-a*a)/(2*o*s)));return u>Math.PI/2?a:p>Math.PI/2?o:Math.sin(u)*a},ts=es;Mt.default=ts});var ji=l(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var $i=St(L()),Bi=St(k()),V=St(I()),rs=St(z());function St(t){return t&&t.__esModule?t:{default:t}}var is=function(e,r){var i=(0,$i.default)(r),n=(0,Bi.default)(r),a=(0,$i.default)(e),o=(0,Bi.default)(e),s=((0,rs.default)(Math.atan2(Math.sin((0,V.default)(n)-(0,V.default)(o))*Math.cos((0,V.default)(i)),Math.cos((0,V.default)(a))*Math.sin((0,V.default)(i))-Math.sin((0,V.default)(a))*Math.cos((0,V.default)(i))*Math.cos((0,V.default)(n)-(0,V.default)(o))))+360)%360;return s},ns=is;Ot.default=ns});var Hi=l(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var as=os($());function os(t){return t&&t.__esModule?t:{default:t}}function wt(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?wt=function(r){return typeof r}:wt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},wt(t)}var ss=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:as.default;return e.reduce(function(i,n){return wt(i)==="object"&&i.last!==null&&(i.distance+=r(n,i.last)),i.last=n,i},{last:null,distance:0}).distance},us=ss;At.default=us});var Yi=l(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var Gi=Or(L()),zi=Or(k()),Sr=Or(I()),Xi=M();function Or(t){return t&&t.__esModule?t:{default:t}}var ls=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;i=typeof i<"u"&&!isNaN(i)?i:1;var n=(0,Gi.default)(e),a=(0,zi.default)(e),o=(0,Gi.default)(r),s=(0,zi.default)(r),u=6356752314245e-6,p=1/298.257223563,S=(0,Sr.default)(s-a),v,m,x,w,y,q,$r=Math.atan((1-p)*Math.tan((0,Sr.default)(parseFloat(n)))),Br=Math.atan((1-p)*Math.tan((0,Sr.default)(parseFloat(o)))),Oe=Math.sin($r),we=Math.cos($r),Ae=Math.sin(Br),Z=Math.cos(Br),se=S,jr,Hr=100;do{var $t=Math.sin(se),Bt=Math.cos(se);if(q=Math.sqrt(Z*$t*(Z*$t)+(we*Ae-Oe*Z*Bt)*(we*Ae-Oe*Z*Bt)),q===0)return 0;v=Oe*Ae+we*Z*Bt,m=Math.atan2(q,v),x=we*Z*$t/q,w=1-x*x,y=v-2*Oe*Ae/w,isNaN(y)&&(y=0);var jt=p/16*w*(4+p*(4-3*w));jr=se,se=S+(1-jt)*p*x*(m+jt*q*(y+jt*v*(-1+2*y*y)))}while(Math.abs(se-jr)>1e-12&&--Hr>0);if(Hr===0)return NaN;var W=w*(Xi.earthRadius*Xi.earthRadius-u*u)/(u*u),An=1+W/16384*(4096+W*(-768+W*(320-175*W))),Ht=W/1024*(256+W*(-128+W*(74-47*W))),Dn=Ht*q*(y+Ht/4*(v*(-1+2*y*y)-Ht/6*y*(-3+4*q*q)*(-3+4*y*y))),Ln=u*An*(m-Dn);return Math.round(Ln/i)*i},fs=ls;Dt.default=fs});var Zi=l(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.default=void 0;var cs=function(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"},ds=cs;Lt.default=ds});var Ji=l(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var ms=ps($());function ps(t){return t&&t.__esModule?t:{default:t}}var gs=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ms.default,n=i(e,r),a=Number(r.time)-Number(e.time),o=n/a*1e3;return o},hs=gs;kt.default=hs});var Qi=l(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var wr=vs($());function vs(t){return t&&t.__esModule?t:{default:t}}var ys=function(e,r,i){return(0,wr.default)(r,e)+(0,wr.default)(e,i)===(0,wr.default)(r,i)},bs=ys;Rt.default=bs});var tn=l(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var qt=en(L()),R=en(k());function en(t){return t&&t.__esModule?t:{default:t}}var _s=function(e,r){for(var i=!1,n=r.length,a=-1,o=n-1;++a<n;o=a)((0,R.default)(r[a])<=(0,R.default)(e)&&(0,R.default)(e)<(0,R.default)(r[o])||(0,R.default)(r[o])<=(0,R.default)(e)&&(0,R.default)(e)<(0,R.default)(r[a]))&&(0,qt.default)(e)<((0,qt.default)(r[o])-(0,qt.default)(r[a]))*((0,R.default)(e)-(0,R.default)(r[a]))/((0,R.default)(r[o])-(0,R.default)(r[a]))+(0,qt.default)(r[a])&&(i=!i);return i},xs=_s;Tt.default=xs});var rn=l(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var Ps=Ms(Mr());function Ms(t){return t&&t.__esModule?t:{default:t}}var Ss=function(e,r,i,n){return(0,Ps.default)(e,r,i)<n},Os=Ss;Ct.default=Os});var nn=l(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.default=void 0;var ws=As($());function As(t){return t&&t.__esModule?t:{default:t}}var Ds=function(e,r,i){var n=.01;return(0,ws.default)(e,r,n)<i},Ls=Ds;Et.default=Ls});var on=l(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.default=void 0;function ks(t,e){return Cs(t)||Ts(t,e)||qs(t,e)||Rs()}function Rs(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qs(t,e){if(t){if(typeof t=="string")return an(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return an(t,e)}}function an(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r<e;r++)i[r]=t[r];return i}function Ts(t,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(t)))){var r=[],i=!0,n=!1,a=void 0;try{for(var o=t[Symbol.iterator](),s;!(i=(s=o.next()).done)&&(r.push(s.value),!(e&&r.length===e));i=!0);}catch(u){n=!0,a=u}finally{try{!i&&o.return!=null&&o.return()}finally{if(n)throw a}}return r}}function Cs(t){if(Array.isArray(t))return t}var Es=function(e){if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");var r=e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", "),i=r.map(function(n){var a=n.split(" "),o=
|
|
1
|
+
var Ln=Object.create;var Gr=Object.defineProperty;var kn=Object.getOwnPropertyDescriptor;var qn=Object.getOwnPropertyNames;var Tn=Object.getPrototypeOf,Cn=Object.prototype.hasOwnProperty;var l=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var En=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of qn(e))!Cn.call(t,n)&&n!==r&&Gr(t,n,{get:()=>e[n],enumerable:!(i=kn(e,n))||i.enumerable});return t};var zr=(t,e,r)=>(r=t!=null?Ln(Tn(t)):{},En(e||!t||!t.__esModule?Gr(r,"default",{value:t,enumerable:!0}):r,t));var S=l(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});g.areaConversion=g.timeConversion=g.distanceConversion=g.altitudeKeys=g.latitudeKeys=g.longitudeKeys=g.MAXLON=g.MINLON=g.MAXLAT=g.MINLAT=g.earthRadius=g.sexagesimalPattern=void 0;var jn=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/;g.sexagesimalPattern=jn;var Hn=6378137;g.earthRadius=Hn;var Gn=-90;g.MINLAT=Gn;var zn=90;g.MAXLAT=zn;var Xn=-180;g.MINLON=Xn;var Yn=180;g.MAXLON=Yn;var Zn=["lng","lon","longitude",0];g.longitudeKeys=Zn;var Jn=["lat","latitude",1];g.latitudeKeys=Jn;var Qn=["alt","altitude","elevation","elev",2];g.altitudeKeys=Qn;var ea={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};g.distanceConversion=ea;var ta={m:60,h:3600,d:86400};g.timeConversion=ta;var C={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};g.areaConversion=C;C.sqm=C.m2;C.sqkm=C.km2;C.sqft=C.ft2;C.sqyd=C.yd2;C.sqin=C.in2});var me=l(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.default=void 0;var ra=function(e,r){return r.reduce(function(i,n){if(typeof e>"u"||e===null)throw new Error("'".concat(e,"' is no valid coordinate."));return Object.prototype.hasOwnProperty.call(e,n)&&typeof n<"u"&&typeof i>"u"?(i=n,n):i},void 0)},ia=ra;Fe.default=ia});var pe=l(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.default=void 0;var na=function(e){var r=e.toString().trim();return isNaN(parseFloat(r))?!1:parseFloat(r)===Number(r)},aa=na;Ue.default=aa});var ge=l(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.default=void 0;var oa=S(),sa=function(e){return oa.sexagesimalPattern.test(e.toString().trim())},ua=sa;Ve.default=ua});var he=l(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.default=void 0;var la=S(),fa=function(e){var r=new RegExp(la.sexagesimalPattern).exec(e.toString().trim());if(typeof r>"u"||r===null)throw new Error("Given value is not in sexagesimal format");var i=Number(r[2])/60||0,n=Number(r[4])/3600||0,a=parseFloat(r[1])+i+n;return["S","W"].includes(r[7])?-a:a},ca=fa;Ke.default=ca});var $e=l(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.default=void 0;var nr=S(),ar=da(me());function da(t){return t&&t.__esModule?t:{default:t}}function si(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function ma(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?si(Object(r),!0).forEach(function(i){pa(t,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):si(Object(r)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(r,i))})}return t}function pa(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var ga=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:nr.longitudeKeys,latitude:nr.latitudeKeys,altitude:nr.altitudeKeys},i=(0,ar.default)(e,r.longitude),n=(0,ar.default)(e,r.latitude),a=(0,ar.default)(e,r.altitude);return ma({latitude:n,longitude:i},a?{altitude:a}:{})},ha=ga;We.default=ha});var sr=l(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var va=or(pe()),ya=or(ge()),ba=or(he()),ui=S();function or(t){return t&&t.__esModule?t:{default:t}}var _a=function t(e){return(0,va.default)(e)?!(parseFloat(e)>ui.MAXLAT||e<ui.MINLAT):(0,ya.default)(e)?t((0,ba.default)(e)):!1},xa=_a;Be.default=xa});var lr=l(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.default=void 0;var Pa=ur(pe()),Ma=ur(ge()),Sa=ur(he()),li=S();function ur(t){return t&&t.__esModule?t:{default:t}}var Oa=function t(e){return(0,Pa.default)(e)?!(parseFloat(e)>li.MAXLON||e<li.MINLON):(0,Ma.default)(e)?t((0,Sa.default)(e)):!1},wa=Oa;je.default=wa});var cr=l(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.default=void 0;var Aa=fr($e()),fi=fr(sr()),ci=fr(lr());function fr(t){return t&&t.__esModule?t:{default:t}}var Da=function(e){var r=(0,Aa.default)(e),i=r.latitude,n=r.longitude;if(Array.isArray(e)&&e.length>=2)return(0,ci.default)(e[0])&&(0,fi.default)(e[1]);if(typeof i>"u"||typeof n>"u")return!1;var a=e[n],o=e[i];return!(typeof o>"u"||typeof a>"u"||(0,fi.default)(o)===!1||(0,ci.default)(a)===!1)},Ra=Da;He.default=Ra});var ze=l(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.default=void 0;var La=ve(pe()),ka=ve(ge()),qa=ve(he()),di=ve(cr()),Ta=ve($e());function ve(t){return t&&t.__esModule?t:{default:t}}function mi(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function dr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?mi(Object(r),!0).forEach(function(i){mr(t,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):mi(Object(r)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(r,i))})}return t}function mr(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Ca=function t(e){if((0,La.default)(e))return Number(e);if((0,ka.default)(e))return(0,qa.default)(e);if((0,di.default)(e)){var r=(0,Ta.default)(e);return Array.isArray(e)?e.map(function(i,n){return[0,1].includes(n)?t(i):i}):dr(dr(dr({},e),r.latitude&&mr({},r.latitude,t(e[r.latitude]))),r.longitude&&mr({},r.longitude,t(e[r.longitude])))}return Array.isArray(e)?e.map(function(i){return(0,di.default)(i)?t(i):i}):e},Ea=Ca;Ge.default=Ea});var R=l(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var Ia=S(),Na=pi(me()),Fa=pi(ze());function pi(t){return t&&t.__esModule?t:{default:t}}var Ua=function(e,r){var i=(0,Na.default)(e,Ia.latitudeKeys);if(!(typeof i>"u"||i===null)){var n=e[i];return r===!0?n:(0,Fa.default)(n)}},Va=Ua;Xe.default=Va});var L=l(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var Ka=S(),Wa=gi(me()),$a=gi(ze());function gi(t){return t&&t.__esModule?t:{default:t}}var Ba=function(e,r){var i=(0,Wa.default)(e,Ka.longitudeKeys);if(!(typeof i>"u"||i===null)){var n=e[i];return r===!0?n:(0,$a.default)(n)}},ja=Ba;Ye.default=ja});var N=l(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var Ha=function(e){return e*Math.PI/180},Ga=Ha;Ze.default=Ga});var z=l(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.default=void 0;var za=function(e){return e*180/Math.PI},Xa=za;Je.default=Xa});var vi=l(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var Ya=Qe(R()),Za=Qe(L()),pr=Qe(N()),gr=Qe(z()),hi=S();function Qe(t){return t&&t.__esModule?t:{default:t}}var Ja=function(e,r,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,a=(0,Ya.default)(e),o=(0,Za.default)(e),s=r/n,u=(0,pr.default)(i),p=(0,pr.default)(a),h=(0,pr.default)(o),v=Math.asin(Math.sin(p)*Math.cos(s)+Math.cos(p)*Math.sin(s)*Math.cos(u)),m=h+Math.atan2(Math.sin(u)*Math.sin(s)*Math.cos(p),Math.cos(s)-Math.sin(p)*Math.sin(v)),b=(0,gr.default)(m);return(b<hi.MINLON||b>hi.MAXLON)&&(m=(m+3*Math.PI)%(2*Math.PI)-Math.PI,b=(0,gr.default)(m)),{latitude:(0,gr.default)(v),longitude:b}},Qa=Ja;et.default=Qa});var yi=l(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var eo=S(),to=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",i=eo.areaConversion[r];if(i)return e*i;throw new Error("Invalid unit used for area conversion.")},ro=to;tt.default=ro});var bi=l(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.default=void 0;var io=S(),no=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",i=io.distanceConversion[r];if(i)return e*i;throw new Error("Invalid unit used for distance conversion.")},ao=no;rt.default=ao});var _i=l(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var it=S(),oo=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh";switch(r){case"kmh":return e*it.timeConversion.h*it.distanceConversion.km;case"mph":return e*it.timeConversion.h*it.distanceConversion.mi;default:return e}},so=oo;nt.default=so});var Mi=l(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;function xi(t,e){return co(t)||fo(t,e)||lo(t,e)||uo()}function uo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lo(t,e){if(t){if(typeof t=="string")return Pi(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Pi(t,e)}}function Pi(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r<e;r++)i[r]=t[r];return i}function fo(t,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(t)))){var r=[],i=!0,n=!1,a=void 0;try{for(var o=t[Symbol.iterator](),s;!(i=(s=o.next()).done)&&(r.push(s.value),!(e&&r.length===e));i=!0);}catch(u){n=!0,a=u}finally{try{!i&&o.return!=null&&o.return()}finally{if(n)throw a}}return r}}function co(t){if(Array.isArray(t))return t}var mo=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,i=Math.pow(10,r);return Math.round(e*i)/i},po=function(e){var r=e.toString().split("."),i=xi(r,2),n=i[0],a=i[1],o=Math.abs(Number(n)),s=+("0."+(a||0))*60,u=s.toString().split("."),p=Math.floor(s),h=mo(+("0."+(u[1]||0))*60).toString(),v=h.split("."),m=xi(v,2),b=m[0],O=m[1],y=O===void 0?"0":O;return o+"\xB0 "+p.toString().padStart(2,"0")+"' "+b.padStart(2,"0")+"."+y.padEnd(1,"0")+'"'},go=po;at.default=go});var hr=l(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.default=void 0;var ho=function(e){return e>1?1:e<-1?-1:e},vo=ho;ot.default=vo});var $=l(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var Si=st(R()),Oi=st(L()),ie=st(N()),yo=st(hr()),bo=S();function st(t){return t&&t.__esModule?t:{default:t}}var _o=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;i=typeof i<"u"&&!isNaN(i)?i:1;var n=(0,Si.default)(e),a=(0,Oi.default)(e),o=(0,Si.default)(r),s=(0,Oi.default)(r),u=Math.acos((0,yo.default)(Math.sin((0,ie.default)(o))*Math.sin((0,ie.default)(n))+Math.cos((0,ie.default)(o))*Math.cos((0,ie.default)(n))*Math.cos((0,ie.default)(a)-(0,ie.default)(s))))*bo.earthRadius;return Math.round(u/i)*i},xo=_o;ut.default=xo});var vr=l(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var wi=Po($());function Po(t){return t&&t.__esModule?t:{default:t}}var Mo=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:wi.default;return i=typeof i=="function"?i:wi.default,r.slice().sort(function(n,a){return i(e,n)-i(e,a)})},So=Mo;lt.default=So});var Ai=l(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var Oo=wo(vr());function wo(t){return t&&t.__esModule?t:{default:t}}var Ao=function(e,r){return(0,Oo.default)(e,r)[0]},Do=Ao;ft.default=Do});var Li=l(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var yr=br(N()),Ro=br(R()),Di=br(L()),Ri=S();function br(t){return t&&t.__esModule?t:{default:t}}var Lo=function(e){var r=0;if(e.length>2){for(var i,n,a,o=0;o<e.length;o++){o===e.length-2?(i=e.length-2,n=e.length-1,a=0):o===e.length-1?(i=e.length-1,n=0,a=1):(i=o,n=o+1,a=o+2);var s=(0,Di.default)(e[i]),u=(0,Ro.default)(e[n]),p=(0,Di.default)(e[a]);r+=((0,yr.default)(p)-(0,yr.default)(s))*Math.sin((0,yr.default)(u))}r=r*Ri.earthRadius*Ri.earthRadius/2}return Math.abs(r)},ko=Lo;ct.default=ko});var _r=l(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.default=void 0;var qo=ki(R()),To=ki(L());function ki(t){return t&&t.__esModule?t:{default:t}}var Co=function(e){if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce(function(r,i){var n=(0,qo.default)(i),a=(0,To.default)(i);return{maxLat:Math.max(n,r.maxLat),minLat:Math.min(n,r.minLat),maxLng:Math.max(a,r.maxLng),minLng:Math.min(a,r.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})},Eo=Co;dt.default=Eo});var qi=l(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.default=void 0;var Io=pt(R()),No=pt(L()),ne=pt(N()),mt=pt(z()),ye=S();function pt(t){return t&&t.__esModule?t:{default:t}}var Fo=function(e,r){var i=(0,Io.default)(e),n=(0,No.default)(e),a=(0,ne.default)(i),o=(0,ne.default)(n),s=r/ye.earthRadius,u=a-s,p=a+s,h=(0,ne.default)(ye.MAXLAT),v=(0,ne.default)(ye.MINLAT),m=(0,ne.default)(ye.MAXLON),b=(0,ne.default)(ye.MINLON),O,y;if(u>v&&p<h){var q=Math.asin(Math.sin(s)/Math.cos(a));O=o-q,O<b&&(O+=Math.PI*2),y=o+q,y>m&&(y-=Math.PI*2)}else u=Math.max(u,v),p=Math.min(p,h),O=b,y=m;return[{latitude:(0,mt.default)(u),longitude:(0,mt.default)(O)},{latitude:(0,mt.default)(p),longitude:(0,mt.default)(y)}]},Uo=Fo;gt.default=Uo});var Ei=l(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.default=void 0;var Vo=ht(R()),Ko=ht(L()),Ti=ht(N()),Ci=ht(z());function ht(t){return t&&t.__esModule?t:{default:t}}var Wo=function(e){if(Array.isArray(e)===!1||e.length===0)return!1;var r=e.length,i=e.reduce(function(s,u){var p=(0,Ti.default)((0,Vo.default)(u)),h=(0,Ti.default)((0,Ko.default)(u));return{X:s.X+Math.cos(p)*Math.cos(h),Y:s.Y+Math.cos(p)*Math.sin(h),Z:s.Z+Math.sin(p)}},{X:0,Y:0,Z:0}),n=i.X/r,a=i.Y/r,o=i.Z/r;return{longitude:(0,Ci.default)(Math.atan2(a,n)),latitude:(0,Ci.default)(Math.atan2(o,Math.sqrt(n*n+a*a)))}},$o=Wo;vt.default=$o});var Ii=l(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.default=void 0;var Bo=jo(_r());function jo(t){return t&&t.__esModule?t:{default:t}}var Ho=function(e){var r=(0,Bo.default)(e),i=r.minLat+(r.maxLat-r.minLat)/2,n=r.minLng+(r.maxLng-r.minLng)/2;return{latitude:parseFloat(i.toFixed(6)),longitude:parseFloat(n.toFixed(6))}},Go=Ho;yt.default=Go});var xr=l(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Ni=_t(R()),Fi=_t(L()),bt=_t(N()),zo=_t(z());function _t(t){return t&&t.__esModule?t:{default:t}}var Xo=function(e,r){var i=(0,bt.default)((0,Fi.default)(r))-(0,bt.default)((0,Fi.default)(e)),n=Math.log(Math.tan((0,bt.default)((0,Ni.default)(r))/2+Math.PI/4)/Math.tan((0,bt.default)((0,Ni.default)(e))/2+Math.PI/4));return Math.abs(i)>Math.PI&&(i>0?i=(Math.PI*2-i)*-1:i=Math.PI*2+i),((0,zo.default)(Math.atan2(i,n))+360)%360},Yo=Xo;xt.default=Yo});var Vi=l(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=void 0;var Ui=Zo(xr());function Zo(t){return t&&t.__esModule?t:{default:t}}var Jo=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ui.default,n=typeof i=="function"?i(e,r):(0,Ui.default)(e,r);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"}},Qo=Jo;Pt.default=Qo});var Mr=l(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var Pr=Wi($()),Ki=Wi(hr());function Wi(t){return t&&t.__esModule?t:{default:t}}var es=function(e,r,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,a=(0,Pr.default)(r,e,n),o=(0,Pr.default)(e,i,n),s=(0,Pr.default)(r,i,n),u=Math.acos((0,Ki.default)((a*a+s*s-o*o)/(2*a*s))),p=Math.acos((0,Ki.default)((o*o+s*s-a*a)/(2*o*s)));return u>Math.PI/2?a:p>Math.PI/2?o:Math.sin(u)*a},ts=es;Mt.default=ts});var ji=l(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var $i=St(R()),Bi=St(L()),V=St(N()),rs=St(z());function St(t){return t&&t.__esModule?t:{default:t}}var is=function(e,r){var i=(0,$i.default)(r),n=(0,Bi.default)(r),a=(0,$i.default)(e),o=(0,Bi.default)(e),s=((0,rs.default)(Math.atan2(Math.sin((0,V.default)(n)-(0,V.default)(o))*Math.cos((0,V.default)(i)),Math.cos((0,V.default)(a))*Math.sin((0,V.default)(i))-Math.sin((0,V.default)(a))*Math.cos((0,V.default)(i))*Math.cos((0,V.default)(n)-(0,V.default)(o))))+360)%360;return s},ns=is;Ot.default=ns});var Hi=l(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var as=os($());function os(t){return t&&t.__esModule?t:{default:t}}function wt(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?wt=function(r){return typeof r}:wt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},wt(t)}var ss=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:as.default;return e.reduce(function(i,n){return wt(i)==="object"&&i.last!==null&&(i.distance+=r(n,i.last)),i.last=n,i},{last:null,distance:0}).distance},us=ss;At.default=us});var Yi=l(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var Gi=Or(R()),zi=Or(L()),Sr=Or(N()),Xi=S();function Or(t){return t&&t.__esModule?t:{default:t}}var ls=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;i=typeof i<"u"&&!isNaN(i)?i:1;var n=(0,Gi.default)(e),a=(0,zi.default)(e),o=(0,Gi.default)(r),s=(0,zi.default)(r),u=6356752314245e-6,p=1/298.257223563,h=(0,Sr.default)(s-a),v,m,b,O,y,q,$r=Math.atan((1-p)*Math.tan((0,Sr.default)(parseFloat(n)))),Br=Math.atan((1-p)*Math.tan((0,Sr.default)(parseFloat(o)))),Oe=Math.sin($r),we=Math.cos($r),Ae=Math.sin(Br),Z=Math.cos(Br),se=h,jr,Hr=100;do{var $t=Math.sin(se),Bt=Math.cos(se);if(q=Math.sqrt(Z*$t*(Z*$t)+(we*Ae-Oe*Z*Bt)*(we*Ae-Oe*Z*Bt)),q===0)return 0;v=Oe*Ae+we*Z*Bt,m=Math.atan2(q,v),b=we*Z*$t/q,O=1-b*b,y=v-2*Oe*Ae/O,isNaN(y)&&(y=0);var jt=p/16*O*(4+p*(4-3*O));jr=se,se=h+(1-jt)*p*b*(m+jt*q*(y+jt*v*(-1+2*y*y)))}while(Math.abs(se-jr)>1e-12&&--Hr>0);if(Hr===0)return NaN;var W=O*(Xi.earthRadius*Xi.earthRadius-u*u)/(u*u),An=1+W/16384*(4096+W*(-768+W*(320-175*W))),Ht=W/1024*(256+W*(-128+W*(74-47*W))),Dn=Ht*q*(y+Ht/4*(v*(-1+2*y*y)-Ht/6*y*(-3+4*q*q)*(-3+4*y*y))),Rn=u*An*(m-Dn);return Math.round(Rn/i)*i},fs=ls;Dt.default=fs});var Zi=l(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var cs=function(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"},ds=cs;Rt.default=ds});var Ji=l(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.default=void 0;var ms=ps($());function ps(t){return t&&t.__esModule?t:{default:t}}var gs=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ms.default,n=i(e,r),a=Number(r.time)-Number(e.time),o=n/a*1e3;return o},hs=gs;Lt.default=hs});var Qi=l(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var wr=vs($());function vs(t){return t&&t.__esModule?t:{default:t}}var ys=function(e,r,i){return(0,wr.default)(r,e)+(0,wr.default)(e,i)===(0,wr.default)(r,i)},bs=ys;kt.default=bs});var tn=l(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var qt=en(R()),k=en(L());function en(t){return t&&t.__esModule?t:{default:t}}var _s=function(e,r){for(var i=!1,n=r.length,a=-1,o=n-1;++a<n;o=a)((0,k.default)(r[a])<=(0,k.default)(e)&&(0,k.default)(e)<(0,k.default)(r[o])||(0,k.default)(r[o])<=(0,k.default)(e)&&(0,k.default)(e)<(0,k.default)(r[a]))&&(0,qt.default)(e)<((0,qt.default)(r[o])-(0,qt.default)(r[a]))*((0,k.default)(e)-(0,k.default)(r[a]))/((0,k.default)(r[o])-(0,k.default)(r[a]))+(0,qt.default)(r[a])&&(i=!i);return i},xs=_s;Tt.default=xs});var rn=l(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var Ps=Ms(Mr());function Ms(t){return t&&t.__esModule?t:{default:t}}var Ss=function(e,r,i,n){return(0,Ps.default)(e,r,i)<n},Os=Ss;Ct.default=Os});var nn=l(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.default=void 0;var ws=As($());function As(t){return t&&t.__esModule?t:{default:t}}var Ds=function(e,r,i){var n=.01;return(0,ws.default)(e,r,n)<i},Rs=Ds;Et.default=Rs});var on=l(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.default=void 0;function Ls(t,e){return Cs(t)||Ts(t,e)||qs(t,e)||ks()}function ks(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qs(t,e){if(t){if(typeof t=="string")return an(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return an(t,e)}}function an(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r<e;r++)i[r]=t[r];return i}function Ts(t,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(t)))){var r=[],i=!0,n=!1,a=void 0;try{for(var o=t[Symbol.iterator](),s;!(i=(s=o.next()).done)&&(r.push(s.value),!(e&&r.length===e));i=!0);}catch(u){n=!0,a=u}finally{try{!i&&o.return!=null&&o.return()}finally{if(n)throw a}}return r}}function Cs(t){if(Array.isArray(t))return t}var Es=function(e){if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");var r=e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", "),i=r.map(function(n){var a=n.split(" "),o=Ls(a,2),s=o[0],u=o[1];return{longitude:parseFloat(s),latitude:parseFloat(u)}});return i},Is=Es;It.default=Is});var un=l(c=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var Ns={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(c,"computeDestinationPoint",{enumerable:!0,get:function(){return Fs.default}});Object.defineProperty(c,"convertArea",{enumerable:!0,get:function(){return Us.default}});Object.defineProperty(c,"convertDistance",{enumerable:!0,get:function(){return Vs.default}});Object.defineProperty(c,"convertSpeed",{enumerable:!0,get:function(){return Ks.default}});Object.defineProperty(c,"decimalToSexagesimal",{enumerable:!0,get:function(){return Ws.default}});Object.defineProperty(c,"findNearest",{enumerable:!0,get:function(){return $s.default}});Object.defineProperty(c,"getAreaOfPolygon",{enumerable:!0,get:function(){return Bs.default}});Object.defineProperty(c,"getBounds",{enumerable:!0,get:function(){return js.default}});Object.defineProperty(c,"getBoundsOfDistance",{enumerable:!0,get:function(){return Hs.default}});Object.defineProperty(c,"getCenter",{enumerable:!0,get:function(){return Gs.default}});Object.defineProperty(c,"getCenterOfBounds",{enumerable:!0,get:function(){return zs.default}});Object.defineProperty(c,"getCompassDirection",{enumerable:!0,get:function(){return Xs.default}});Object.defineProperty(c,"getCoordinateKey",{enumerable:!0,get:function(){return Ys.default}});Object.defineProperty(c,"getCoordinateKeys",{enumerable:!0,get:function(){return Zs.default}});Object.defineProperty(c,"getDistance",{enumerable:!0,get:function(){return Js.default}});Object.defineProperty(c,"getDistanceFromLine",{enumerable:!0,get:function(){return Qs.default}});Object.defineProperty(c,"getGreatCircleBearing",{enumerable:!0,get:function(){return eu.default}});Object.defineProperty(c,"getLatitude",{enumerable:!0,get:function(){return tu.default}});Object.defineProperty(c,"getLongitude",{enumerable:!0,get:function(){return ru.default}});Object.defineProperty(c,"getPathLength",{enumerable:!0,get:function(){return iu.default}});Object.defineProperty(c,"getPreciseDistance",{enumerable:!0,get:function(){return nu.default}});Object.defineProperty(c,"getRhumbLineBearing",{enumerable:!0,get:function(){return au.default}});Object.defineProperty(c,"getRoughCompassDirection",{enumerable:!0,get:function(){return ou.default}});Object.defineProperty(c,"getSpeed",{enumerable:!0,get:function(){return su.default}});Object.defineProperty(c,"isDecimal",{enumerable:!0,get:function(){return uu.default}});Object.defineProperty(c,"isPointInLine",{enumerable:!0,get:function(){return lu.default}});Object.defineProperty(c,"isPointInPolygon",{enumerable:!0,get:function(){return fu.default}});Object.defineProperty(c,"isPointNearLine",{enumerable:!0,get:function(){return cu.default}});Object.defineProperty(c,"isPointWithinRadius",{enumerable:!0,get:function(){return du.default}});Object.defineProperty(c,"isSexagesimal",{enumerable:!0,get:function(){return mu.default}});Object.defineProperty(c,"isValidCoordinate",{enumerable:!0,get:function(){return pu.default}});Object.defineProperty(c,"isValidLatitude",{enumerable:!0,get:function(){return gu.default}});Object.defineProperty(c,"isValidLongitude",{enumerable:!0,get:function(){return hu.default}});Object.defineProperty(c,"orderByDistance",{enumerable:!0,get:function(){return vu.default}});Object.defineProperty(c,"sexagesimalToDecimal",{enumerable:!0,get:function(){return yu.default}});Object.defineProperty(c,"toDecimal",{enumerable:!0,get:function(){return bu.default}});Object.defineProperty(c,"toRad",{enumerable:!0,get:function(){return _u.default}});Object.defineProperty(c,"toDeg",{enumerable:!0,get:function(){return xu.default}});Object.defineProperty(c,"wktToPolygon",{enumerable:!0,get:function(){return Pu.default}});var Fs=d(vi()),Us=d(yi()),Vs=d(bi()),Ks=d(_i()),Ws=d(Mi()),$s=d(Ai()),Bs=d(Li()),js=d(_r()),Hs=d(qi()),Gs=d(Ei()),zs=d(Ii()),Xs=d(Vi()),Ys=d(me()),Zs=d($e()),Js=d($()),Qs=d(Mr()),eu=d(ji()),tu=d(R()),ru=d(L()),iu=d(Hi()),nu=d(Yi()),au=d(xr()),ou=d(Zi()),su=d(Ji()),uu=d(pe()),lu=d(Qi()),fu=d(tn()),cu=d(rn()),du=d(nn()),mu=d(ge()),pu=d(cr()),gu=d(sr()),hu=d(lr()),vu=d(vr()),yu=d(he()),bu=d(ze()),_u=d(N()),xu=d(z()),Pu=d(on()),sn=S();Object.keys(sn).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(Ns,t)||Object.defineProperty(c,t,{enumerable:!0,get:function(){return sn[t]}})});function d(t){return t&&t.__esModule?t:{default:t}}});var ln=l(Lr=>{"use strict";Lr.__esModule=!0;function Dr(t,e){return t*t+e*e}function Mu(t,e){return Dr(t[0]-e[0],t[1]-e[1])}function Su(t,e,r){var i=e[0],n=e[1],a=r[0]-i,o=r[1]-n;if(a!==0||o!==0){var s=((t[0]-i)*a+(t[1]-n)*o)/Dr(a,o);s>1?(i=r[0],n=r[1]):s>0&&(i+=a*s,n+=o*s)}return Dr(t[0]-i,t[1]-n)}function Ou(t,e){for(var r=t[0],i,n=[r],a=1,o=t.length;a<o;a++)i=t[a],Mu(i,r)>e&&(n.push(i),r=i);return r!==i&&n.push(i),n}function Rr(t,e,r,i,n){for(var a=i,o,s=e+1;s<r;s++){var u=Su(t[s],t[e],t[r]);u>a&&(o=s,a=u)}a>i&&(o-e>1&&Rr(t,e,o,i,n),n.push(t[o]),r-o>1&&Rr(t,o,r,i,n))}function wu(t,e){var r=t.length-1,i=[t[0]];return Rr(t,0,r,e,i),i.push(t[r]),i}function Au(t,e,r){if(e===void 0&&(e=1),r===void 0&&(r=!1),t.length<=2)return t;var i=e*e;return t=r?t:Ou(t,i),t=wu(t,i),t}Lr.SimplifyAP=Au});var fn=l(Tr=>{"use strict";Tr.__esModule=!0;function kr(t,e){return t*t+e*e}function Du(t,e){return kr(t.longitude-e.longitude,t.latitude-e.latitude)}function Ru(t,e,r){var i=e.longitude,n=e.latitude,a=r.longitude-i,o=r.latitude-n;if(a!==0||o!==0){var s=((t.longitude-i)*a+(t.latitude-n)*o)/kr(a,o);s>1?(i=r.longitude,n=r.latitude):s>0&&(i+=a*s,n+=o*s)}return kr(t.longitude-i,t.latitude-n)}function Lu(t,e){for(var r=t[0],i,n=[r],a=1,o=t.length;a<o;a++)i=t[a],Du(i,r)>e&&(n.push(i),r=i);return r!==i&&n.push(i),n}function qr(t,e,r,i,n){for(var a=i,o,s=e+1;s<r;s++){var u=Ru(t[s],t[e],t[r]);u>a&&(o=s,a=u)}a>i&&(o-e>1&&qr(t,e,o,i,n),n.push(t[o]),r-o>1&&qr(t,o,r,i,n))}function ku(t,e){var r=t.length-1,i=[t[0]];return qr(t,0,r,e,i),i.push(t[r]),i}function qu(t,e,r){if(e===void 0&&(e=1),r===void 0&&(r=!1),t.length<=2)return t;var i=e*e;return t=r?t:Lu(t,i),t=ku(t,i),t}Tr.SimplifyLL=qu});var cn=l(Ir=>{"use strict";Ir.__esModule=!0;function Cr(t,e){return t*t+e*e}function Tu(t,e){return Cr(t.x-e.x,t.y-e.y)}function Cu(t,e,r){var i=e.x,n=e.y,a=r.x-i,o=r.y-n;if(a!==0||o!==0){var s=((t.x-i)*a+(t.y-n)*o)/Cr(a,o);s>1?(i=r.x,n=r.y):s>0&&(i+=a*s,n+=o*s)}return Cr(t.x-i,t.y-n)}function Eu(t,e){for(var r=t[0],i,n=[r],a=1,o=t.length;a<o;a++)i=t[a],Tu(i,r)>e&&(n.push(i),r=i);return r!==i&&n.push(i),n}function Er(t,e,r,i,n){for(var a=i,o,s=e+1;s<r;s++){var u=Cu(t[s],t[e],t[r]);u>a&&(o=s,a=u)}a>i&&(o-e>1&&Er(t,e,o,i,n),n.push(t[o]),r-o>1&&Er(t,o,r,i,n))}function Iu(t,e){var r=t.length-1,i=[t[0]];return Er(t,0,r,e,i),i.push(t[r]),i}function Nu(t,e,r){if(e===void 0&&(e=1),r===void 0&&(r=!1),t.length<=2)return t;var i=e*e;return t=r?t:Eu(t,i),t=Iu(t,i),t}Ir.Simplify=Nu});var dn=l(be=>{"use strict";be.__esModule=!0;var Fu=ln();be.SimplifyAP=Fu.SimplifyAP;var Uu=fn();be.SimplifyLL=Uu.SimplifyLL;var Vu=cn();be.Simplify=Vu.Simplify});function D(t){return typeof t=="function"}function De(t){let r=t(i=>{Error.call(i),i.stack=new Error().stack});return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var Re=De(t=>function(r){t(this),this.message=r?`${r.length} errors occurred during unsubscription:
|
|
4
4
|
${r.map((i,n)=>`${n+1}) ${i.toString()}`).join(`
|
|
5
|
-
`)}`:"",this.name="UnsubscriptionError",this.errors=r});function ue(t,e){if(t){let r=t.indexOf(e);0<=r&&t.splice(r,1)}}var E=class t{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;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:i}=this;if(D(i))try{i()}catch(a){e=a instanceof Le?a.errors:[a]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let a of n)try{Xr(a)}catch(o){e=e??[],o instanceof Le?e=[...e,...o.errors]:e.push(o)}}if(e)throw new Le(e)}}add(e){var r;if(e&&e!==this)if(this.closed)Xr(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(e)}}_hasParent(e){let{_parentage:r}=this;return r===e||Array.isArray(r)&&r.includes(e)}_addParent(e){let{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(e),r):r?[r,e]:e}_removeParent(e){let{_parentage:r}=this;r===e?this._parentage=null:Array.isArray(r)&&ue(r,e)}remove(e){let{_finalizers:r}=this;r&&ue(r,e),e instanceof t&&e._removeParent(this)}};E.EMPTY=(()=>{let t=new E;return t.closed=!0,t})();var Gt=E.EMPTY;function ke(t){return t instanceof E||t&&"closed"in t&&D(t.remove)&&D(t.add)&&D(t.unsubscribe)}function Xr(t){D(t)?t():t.unsubscribe()}var T={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var J={setTimeout(t,e,...r){let{delegate:i}=J;return i?.setTimeout?i.setTimeout(t,e,...r):setTimeout(t,e,...r)},clearTimeout(t){let{delegate:e}=J;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Yr(t){J.setTimeout(()=>{let{onUnhandledError:e}=T;if(e)e(t);else throw t})}function zt(){}var Zr=Xt("C",void 0,void 0);function Jr(t){return Xt("E",void 0,t)}function Qr(t){return Xt("N",t,void 0)}function Xt(t,e,r){return{kind:t,value:e,error:r}}var j=null;function Q(t){if(T.useDeprecatedSynchronousErrorHandling){let e=!j;if(e&&(j={errorThrown:!1,error:null}),t(),e){let{errorThrown:r,error:i}=j;if(j=null,r)throw i}}else t()}function ei(t){T.useDeprecatedSynchronousErrorHandling&&j&&(j.errorThrown=!0,j.error=t)}var le=class extends E{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,ke(e)&&e.add(this)):this.destination=Fn}static create(e,r,i){return new ee(e,r,i)}next(e){this.isStopped?Zt(Qr(e),this):this._next(e)}error(e){this.isStopped?Zt(Jr(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Zt(Zr,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},Nn=Function.prototype.bind;function Yt(t,e){return Nn.call(t,e)}var Jt=class{constructor(e){this.partialObserver=e}next(e){let{partialObserver:r}=this;if(r.next)try{r.next(e)}catch(i){Re(i)}}error(e){let{partialObserver:r}=this;if(r.error)try{r.error(e)}catch(i){Re(i)}else Re(e)}complete(){let{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(r){Re(r)}}},ee=class extends le{constructor(e,r,i){super();let n;if(D(e)||!e)n={next:e??void 0,error:r??void 0,complete:i??void 0};else{let a;this&&T.useDeprecatedNextContext?(a=Object.create(e),a.unsubscribe=()=>this.unsubscribe(),n={next:e.next&&Yt(e.next,a),error:e.error&&Yt(e.error,a),complete:e.complete&&Yt(e.complete,a)}):n=e}this.destination=new Jt(n)}};function Re(t){T.useDeprecatedSynchronousErrorHandling?ei(t):Yr(t)}function In(t){throw t}function Zt(t,e){let{onStoppedNotification:r}=T;r&&J.setTimeout(()=>r(t,e))}var Fn={closed:!0,next:zt,error:In,complete:zt};var ti=typeof Symbol=="function"&&Symbol.observable||"@@observable";function ri(t){return t}function ii(t){return t.length===0?ri:t.length===1?t[0]:function(r){return t.reduce((i,n)=>n(i),r)}}var H=class t{constructor(e){e&&(this._subscribe=e)}lift(e){let r=new t;return r.source=this,r.operator=e,r}subscribe(e,r,i){let n=Vn(e)?e:new ee(e,r,i);return Q(()=>{let{operator:a,source:o}=this;n.add(a?a.call(n,o):o?this._subscribe(n):this._trySubscribe(n))}),n}_trySubscribe(e){try{return this._subscribe(e)}catch(r){e.error(r)}}forEach(e,r){return r=ni(r),new r((i,n)=>{let a=new ee({next:o=>{try{e(o)}catch(s){n(s),a.unsubscribe()}},error:n,complete:i});this.subscribe(a)})}_subscribe(e){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(e)}[ti](){return this}pipe(...e){return ii(e)(this)}toPromise(e){return e=ni(e),new e((r,i)=>{let n;this.subscribe(a=>n=a,a=>i(a),()=>r(n))})}};H.create=t=>new H(t);function ni(t){var e;return(e=t??T.Promise)!==null&&e!==void 0?e:Promise}function Un(t){return t&&D(t.next)&&D(t.error)&&D(t.complete)}function Vn(t){return t&&t instanceof le||Un(t)&&ke(t)}var ai=De(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var N=class extends H{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){let r=new qe(this,this);return r.operator=e,r}_throwIfClosed(){if(this.closed)throw new ai}next(e){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(e)}})}error(e){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;let{observers:r}=this;for(;r.length;)r.shift().error(e)}})}complete(){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){let{hasError:r,isStopped:i,observers:n}=this;return r||i?Gt:(this.currentObservers=null,n.push(e),new E(()=>{this.currentObservers=null,ue(n,e)}))}_checkFinalizedStatuses(e){let{hasError:r,thrownError:i,isStopped:n}=this;r?e.error(i):n&&e.complete()}asObservable(){let e=new H;return e.source=this,e}};N.create=(t,e)=>new qe(t,e);var qe=class extends N{constructor(e,r){super(),this.destination=e,this.source=r}next(e){var r,i;(i=(r=this.destination)===null||r===void 0?void 0:r.next)===null||i===void 0||i.call(r,e)}error(e){var r,i;(i=(r=this.destination)===null||r===void 0?void 0:r.error)===null||i===void 0||i.call(r,e)}complete(){var e,r;(r=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||r===void 0||r.call(e)}_subscribe(e){var r,i;return(i=(r=this.source)===null||r===void 0?void 0:r.subscribe(e))!==null&&i!==void 0?i:Gt}};var P=[];for(let t=0;t<256;++t)P.push((t+256).toString(16).slice(1));function oi(t,e=0){return(P[t[e+0]]+P[t[e+1]]+P[t[e+2]]+P[t[e+3]]+"-"+P[t[e+4]]+P[t[e+5]]+"-"+P[t[e+6]]+P[t[e+7]]+"-"+P[t[e+8]]+P[t[e+9]]+"-"+P[t[e+10]]+P[t[e+11]]+P[t[e+12]]+P[t[e+13]]+P[t[e+14]]+P[t[e+15]]).toLowerCase()}var Qt,Kn=new Uint8Array(16);function er(){if(!Qt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Qt=crypto.getRandomValues.bind(crypto)}return Qt(Kn)}var Wn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),tr={randomUUID:Wn};function $n(t,e,r){if(tr.randomUUID&&!e&&!t)return tr.randomUUID();t=t||{};let i=t.random??t.rng?.()??er();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){if(r=r||0,r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)e[r+n]=i[n];return e}return oi(i)}var rr=$n;var Te=class{_connect;_close;_error;_message;ws;_filter="";_wsTimeout=2e4;_token="";_playbackMode=!1;onConnect;onClose;onError;onMessage;version=1;endpoint="";selfId="";_source=null;set source(e){this._source||(this._source={}),this._source.label=e}set authToken(e){this._token=e}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(e){this._wsTimeout=e<3e3?3e3:e>6e4?6e4:e}get isOpen(){return!!(this.ws&&this.ws.readyState!=1&&this.ws.readyState!=3)}get filter(){return this._filter}set filter(e){e&&e.indexOf("self")!=-1?this._filter=this.selfId?this.selfId:"":this._filter=e}get playbackMode(){return this._playbackMode}constructor(){this._connect=new N,this.onConnect=this._connect.asObservable(),this._close=new N,this.onClose=this._close.asObservable(),this._error=new N,this.onError=this._error.asObservable(),this._message=new N,this.onMessage=this._message.asObservable()}close(){this.ws&&(this.ws.close(),this.ws=null)}open(e,r,i){if(e=e||this.endpoint,!e)return;let n=e.indexOf("?")==-1?"?":"&";r&&(e+=`${n}subscribe=${r}`),(this._token||i)&&(e+=`${r?"&":"?"}token=${this._token||i}`),this.close(),this.ws=new WebSocket(e),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(e){let r;if(typeof e.data=="string")try{r=JSON.parse(e.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(e){if(typeof e!="object")return"";let r=te.request();return typeof e.login>"u"&&this._token&&(r.token=this._token),Object.keys(e).forEach(n=>{r[n]=e[n]}),this.send(r),r.requestId}put(e,r,i){let n={context:e=="self"?"vessels.self":e,put:{path:r,value:i}};return this.sendRequest(n)}login(e,r){let i={login:{username:e,password:r}};return this.sendRequest(i)}send(e){this.ws&&(typeof e=="object"&&(e=JSON.stringify(e)),this.ws.send(e))}sendUpdate(e="self",r,i){let n=te.updates();this._token&&(n.token=this._token),n.context=e=="self"?"vessels.self":e,this._token&&(n.token=this._token);let a=[];typeof r=="string"&&a.push({path:r,value:i}),typeof r=="object"&&Array.isArray(r)&&(a=r);let o={timestamp:new Date().toISOString(),values:a};this._source&&(o.source=this._source),n.updates.push(o),this.send(n)}subscribe(e="*",r="*",i){let n=te.subscribe();if(this._token&&(n.token=this._token),n.context=e=="self"?"vessels.self":e,this._token&&(n.token=this._token),typeof r=="object"&&Array.isArray(r)&&(n.subscribe=r),typeof r=="string"){let a={};a.path=r,i&&typeof i=="object"&&(i.period&&(a.period=i.period),i.minPeriod&&(a.minPeriod=i.period),i.format&&(i.format=="delta"||i.format=="full")&&(a.format=i.format),i.policy&&(i.policy=="instant"||i.policy=="ideal"||i.policy=="fixed")&&(a.policy=i.policy)),n.subscribe.push(a)}this.send(n)}unsubscribe(e="*",r="*"){let i=te.unsubscribe();this._token&&(i.token=this._token),i.context=e=="self"?"vessels.self":e,this._token&&(i.token=this._token),typeof r=="object"&&Array.isArray(r)&&(i.unsubscribe=r),typeof r=="string"&&i.unsubscribe.push({path:r}),this.send(i)}raiseAlarm(e="*",r,i){let n;typeof r=="string"?n=r.indexOf("notifications.")==-1?`notifications.${r}`:r:n=r,this.put(e,n,i.value)}clearAlarm(e="*",r){let i=r.indexOf("notifications.")==-1?`notifications.${r}`:r;this.put(e,i,null)}isSelf(e){return e.context==this.selfId}isDelta(e){return typeof e.context<"u"}isHello(e){return typeof e.version<"u"&&typeof e.self<"u"}isResponse(e){return typeof e.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:rr()}}},Ce=class{_state;_method=[];_message="";constructor(e,r,i,n){this._message=typeof e<"u"?e:"",this._state=typeof r<"u"?r:"alarm",i&&this._method.push("visual"),n&&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},fe=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;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},Ee=class extends re{constructor(){super()}},Ne=class extends re{sog=0;track=[];constructor(){super()}},ce=class extends re{constructor(){super()}},Ie=class extends ce{twd;tws;temperature;constructor(){super()}};var ir={K:{C:t=>t-273.15,F:t=>(t-273.15)*9/5+32},rad:{degree:t=>t*180/Math.PI},deg:{radian:t=>t*.0174532925199433},ratio:{percent:t=>t*100},"m/s":{kn:t=>t*1.94384,"km/h":t=>t*3.6,mph:t=>t*2.2369362920544025,Bf:t=>t/.836^.6666666666666666,fps:t=>t*3.280839895013124},"rad/s":{"deg/s":t=>t*57.2958,rpm:t=>t*9.549296585513723},Hz:{rpm:t=>t*60},m:{fathom:t=>t*.5467468562055768,league:t=>t*.0002071251035625518,kilometer:t=>t*.001,mile:t=>t*.000621371192237334,"naut-mile":t=>t*.0005399568034557236,foot:t=>t*3.280839895013124,yard:t=>t*1.0936132983377078},s:{hour:t=>t*.0002777777777777778,minute:t=>t*.016666666666666666,day:t=>t*11574074074074073e-21,year:t=>t*3168876461541279e-23},foot:{m:t=>t/3.280839895013124}},de={degree:{symbol:"\xBA",name:"Degrees"},radian:{symbol:"rad",name:"Radians"},percent:{symbol:"%",name:"Percent"},kilometer:{symbol:"km",name:"Kilometer"},"naut-mile":{symbol:"nmi",name:"Nautical Mile"},foot:{symbol:"ft",name:"Feet"},yard:{symbol:"yd",name:"Yard"},fathom:{symbol:"fm",name:"Fathom"},hour:{symbol:"hr",name:"Hour"},minute:{symbol:"min",name:"Minute"},F:{symbol:"\xBAF",name:"Fahrenheit"},C:{symbol:"\xBAC",name:"Celcius"}},G=class{static transform(e,r,i){if(!Number.isFinite(e))return null;if(r===i)return e;try{return ir[r][i](e)}catch{throw new Error("Transformation not found!")}}static setSymbol(e,r){e in de&&(de[e].symbol=r??de[e].symbol)}static getSymbol(e){return e in de?de[e].symbol:e}static degreesToRadians(e){return ir.deg.radian(e)}static radiansToDegrees(e=0){return ir.rad.degree(e)}static nauticalMilesToKm(e=0){return e*1.852}static angleToDirection(e,r){let i=Math.PI*2;if(r||(r=0),e||(e=0),!Number.isFinite(r)||!Number.isFinite(e))return null;let n=r+e;return n>i?n-i:n<0?i+n:n}static directionToAngle(e,r){let i=Math.PI*2;if(r||(r=0),e||(e=0),!Number.isFinite(r)||!Number.isFinite(e))return null;let n=r-e,a;if(n>0)a=n>Math.PI?i-n:0-n;else if(n<0){let o=Math.abs(n);a=o>Math.PI?o-i:o}else a=n;return a}};var A=zr(un()),F=class t{static destCoordinate(e,r,i){let n=(0,A.computeDestinationPoint)(e,i,G.radiansToDegrees(r));return[n.longitude,n.latitude]}static distanceTo(e,r){return(0,A.getDistance)(e,r)}static routeLength(e){return(0,A.getPathLength)(e)}static routeLegs(e,r){if(e.length<2)return[];let i=[];r?i.push({bearing:(0,A.getGreatCircleBearing)(r,e[0]),distance:t.distanceTo(r,e[0])}):i.push({bearing:0,distance:0});for(let n=1;n<e.length;++n){let a={bearing:(0,A.getGreatCircleBearing)(e[n-1],e[n]),distance:t.distanceTo(e[n-1],e[n])};i.push(a)}return i}static closestForwardPoint(e,r,i){if(e.length<2||!r)return-1;let n={index:-1,distance:-1};for(let a=0;a<e.length;++a){let o=(0,A.getGreatCircleBearing)(r,e[a]),s=Ar.difference(i,o);if(s>-90&&s<90){let u=t.distanceTo(r,e[a]);(n.distance===-1||u<n.distance)&&(n.distance=u,n.index=a)}}return n.index}static centreOfPolygon(e){let r=(0,A.getCenter)(e);return[r.longitude,r.latitude]}static inDLCrossingZone(e,r=170){return Math.abs(e[0])>=r}static inBounds(e,r){return(0,A.isPointInPolygon)(e,[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]],[r[0],r[1]]])}static calcMapifiedExtent(e,r){let n=111111*Math.cos(G.degreesToRadians(e[1])),a=[0,0,0,0];return a[1]=e[1]+(0-Math.abs(r))/111111,a[3]=e[1]+Math.abs(r)/111111,a[0]=e[0]+(0-Math.abs(r))/n,a[2]=e[0]+Math.abs(r)/n,a}static normaliseCoords(e){if(!Array.isArray(e))return[0,0];if(typeof e[0]=="number"){if(e[0]>180)for(;e[0]>180;)e[0]=e[0]-360;else if(e[0]<-180)for(;e[0]<-180;)e[0]=360+e[0];return e}else if(Array.isArray(e[0]))return e.forEach(r=>r=this.normaliseCoords(r)),e}},Ar=class t{static difference(e,r){let i=360-r,n=e+i,a=t.normalise(n);return a<180?0-a:360-a}static add(e,r){return t.normalise(e+r)}static normalise(e){return e<0?e+360:e>=360?e-360:e}};var It=class{action="notification";playback=!1;result=null;self=null;timestamp=new Date().toISOString();sourceRef},ae=class{action;playback=!1;result=null;timestamp;self=null;watchDogAlarm;constructor(){this.action="update"}},Ft=class extends ae{constructor(){super(),this.action="resource"}},Ut=class extends ae{constructor(){super(),this.action="trail"}};var hn=zr(dn());var Ku=["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"],h={active:!1,maxMsgIntervals:18,intervalCount:0,msgCount:0,alarm:!1},f,_,vn,Me=[],Wt=[],Ir=!1,Kr,Fr=!1,b={signalk:{},aisState:[]},yn=[0,0,0,0],bn=60,_e=0,O,X={},Y=500,U=!1,_n,K={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},Ur={cogLine:10,aisCogLine:10},xe={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},B,xn,oe="freeboard-sk";function Wu(){f={self:new fe,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},f.self.positionReceived=!1,Pn()}function Pn(){O={updated:{},stale:{},expired:{}}}function Vt({action:t,msg:e}){switch(t){case"onConnect":postMessage({action:"open",playback:U,result:e.target.readyState}),h.msgCount=0,h.intervalCount=0,h.alarm=!1,h.active=!0;break;case"onClose":Mn(!1),h.active=!1;break;case"onError":postMessage({action:"error",playback:U,result:"Connection error!"}),h.msgCount=0,h.intervalCount=0,h.active=!1;break;case"onMessage":h.msgCount++,Gu(e);break}}addEventListener("message",({data:t})=>{$u(t)});function $u(t){if(t.cmd)switch(t.cmd){case"open":mn(t.options),ju(t.options);break;case"close":Mn(!0);break;case"subscribe":_.subscribe(t.options.context,t.options.path);break;case"settings":mn(t.options);break;case"alarm":Hu(t.options);break;case"vessel":if(t.options){let e;t.options.context==="self"?e=f.self:e=f.aisTargets.get(t.options.context),e&&t.options.name&&(e.name=t.options.name)}break;case"auth":t.options&&typeof t.options.token<"u"&&(vn=t.options.token);break;case"trail":t.options&&(xe.trailDuration=t.options.trailDuration??24,t.options.trailResolution&&(xe.trailResolution.lastHour=t.options.trailResolution.lastHour??"5s",xe.trailResolution.next23=t.options.trailResolution.next23??"1m",xe.trailResolution.beyond24=t.options.trailResolution.beyond24??"5m")),Bu(xe);break}}function mn(t={config:{}}){t.interval&&typeof t.interval=="number"&&(Y=t.interval,wn(),On(),bn=1/(Y/1e3)*60),U=!!t.playback,t.config&&(typeof t.config.units.preferredPaths<"u"&&(X=t.config.units.preferredPaths),t.config.vessels.aisMaxAge&&typeof t.config.vessels.aisMaxAge=="number"&&(K.maxAge=t.config.vessels.aisMaxAge),t.config.vessels.aisStaleAge&&typeof t.config.vessels.aisStaleAge=="number"&&(K.staleAge=t.config.vessels.aisStaleAge),typeof t.config.signalk.maxRadius=="number"&&(b.signalk=t.config.signalk),typeof t.config.selections.aisState<"u"&&Array.isArray(t.config.selections.aisState)&&(b.aisState=t.config.selections.aisState),Ur=t.config.vessels)}function Mn(t=!1){wn(),Me.forEach(e=>e.unsubscribe()),_&&t&&_.close(),_=null,postMessage({action:"close",result:t,playback:U})}var Kt=!1;function Se(t){if(!Kt)return new Promise((e,r)=>{Kt=!0,fetch(`${t}`).then(i=>{Kt=!1,i.json().then(n=>e(n)).catch(n=>r(n))}).catch(i=>{Kt=!1,r(i)})})}function Sn(){let t=b&&b.signalk&&b.signalk.maxRadius?`?radius=${b.signalk.maxRadius}`:"?radius=10000";Se(Kr+"/tracks"+t).then(e=>{Fr=!0,Object.entries(e).forEach(r=>{if(f.aisTargets.has(r[0])){let i=f.aisTargets.get(r[0]);i.track=r[1].coordinates,Wr(i)}})}).catch(()=>{Fr=!1})}function Bu(t){let e=Kr+"/self/track?",r=[],i=5e-4,n=!0;t.trailDuration>24&&(r.push(Se(`${e}timespan=${t.trailDuration-24}h&resolution=${t.trailResolution.beyond24}×panOffset=24`)),r.push(Se(`${e}timespan=23h&resolution=${t.trailResolution.next23}×panOffset=1`))),t.trailDuration>1&&t.trailDuration<25&&r.push(Se(`${e}timespan=${t.trailDuration-1}h&resolution=${t.trailResolution.next23}×panOffset=1`)),r.push(Se(`${e}timespan=1h&resolution=${t.trailResolution.lastHour}`));let a=[],o=new Ut;o.playback=U,Promise.all(r).then(s=>{let u=0,p=r.length-1,S=60;s.forEach(v=>{if(v.type&&v.type==="MultiLineString"&&v.coordinates&&Array.isArray(v.coordinates))if(u!==p){let m=[];for(v.coordinates.forEach(x=>{m=m.concat(x)}),m=(0,hn.SimplifyAP)(m,i,n);m.length>S;){let x=m.slice(0,S);a.push(x),m=m.slice(S-1),m[0]=[m[0][0]+5e-9,m[0][1]+5e-9]}m.length!==0&&a.push(m)}else a=a.concat(v.coordinates);u++}),o.result=a,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function ju(t){if(_)return;if(!t.url){postMessage({action:"error",result:"Valid options not provided!"});return}let e=t.url.split("/");if(e.pop(),e.push("api"),e[0]=e[0]==="wss:"?"https:":"http:",Kr=e.join("/"),Wu(),_=new Te,Me.push(_.onConnect.subscribe(r=>Vt({action:"onConnect",msg:r}))),Me.push(_.onClose.subscribe(r=>Vt({action:"onClose",msg:r}))),Me.push(_.onError.subscribe(r=>Vt({action:"onError",msg:r}))),Me.push(_.onMessage.subscribe(r=>Vt({action:"onMessage",msg:r}))),_.authToken=vn,t.playback){let r=t.playbackOptions.startTime?`?startTime=${t.playbackOptions.startTime}`:null,i=t.playbackOptions.playbackRate?`playbackRate=${t.playbackOptions.playbackRate}`:null;i=i?r?"&"+i:"?"+i:null;let n=`${t.url}${r||""}${i||""}`;_.open(n,t.playbackOptions.subscribe,t.token)}else _.open(t.url,t.subscribe,t.token),Sn()}function Hu(t){let e=t.type.indexOf("notifications.")===-1?`notifications.${t.type}`:t.type;t.raise?_.raiseAlarm("self",e,new Ce(t.message,t.state,!0,!0)):_.clearAlarm("self",e)}function Gu(t){_.isHello(t)?(postMessage({action:"hello",result:t,self:t.self,playback:U}),Y&&On()):_.isDelta(t)?(Ir=!0,t.updates.forEach(e=>{e.values&&(B=e.$source,xn=e.timestamp,e.values.forEach(r=>{if(_n=e.timestamp,!!t.context)switch(t.context.split(".")[0]){case"shore":case"atons":b?.signalk.atons&&Zu(t.context,r),Pe(t.context,f.atons,b?.signalk.atons);break;case"sar":b?.signalk.sar&&Ju(t.context,r),Pe(t.context,f.sar,b?.signalk.sar);break;case"aircraft":b?.signalk.aircraft&&el(t.context,r),Pe(t.context,f.aircraft,b?.signalk.aircraft);break;case"meteo":b?.signalk.meteo&&(Qu(t.context,r),gn(r)),Pe(t.context,f.meteo,b?.signalk.meteo);break;case"vessels":if(_.isSelf(t))f.self.id||(f.self.id=t.context),pn(f.self,r,!0),gn(r);else{if(b?.signalk.vessels){let i=zu(t.context);pn(i,r)}Pe(t.context,f.aisTargets,b?.signalk.vessels,b?.aisState)}break}}))}),Vr()):_.isResponse(t)&&postMessage({action:"response",result:t})}function Pe(t,e,r=!0,i=[]){if(r){let n=e.get(t);n&&i.includes(n?.state)&&(O.expired[t]=!0,n=null),n&&b.signalk.maxRadius?n.positionReceived&&F.inBounds(n.position,yn)?O.updated[t]=!0:(e.delete(t),O.expired[t]=!0):O.updated[t]=!0}else e.size!==0&&(e.forEach((n,a)=>{O.expired[a]=!0}),e.clear())}function Vr(t=!1){if(!Y||t){let e=new ae;e.watchDogAlarm=h.alarm,e.playback=U,f.aisStatus.updated=Object.keys(O.updated),f.aisStatus.stale=Object.keys(O.stale),f.aisStatus.expired=Object.keys(O.expired),e.result=f,e.timestamp=U?_n:f.self.lastUpdated.toISOString(),postMessage(e),Pn(),f.self.resourceUpdates=[],Yu(),_e===0&&f.self.positionReceived&&b?.signalk.maxRadius&&(yn=F.calcMapifiedExtent(f.self.position,b.signalk.maxRadius),_e++),_e=_e>=bn?0:_e+1}}function On(){Y&&typeof Y=="number"&&Wt.push(setInterval(()=>{h.active&&!h.msgCount?(h.intervalCount=h.intervalCount+1,h.intervalCount>=h.maxMsgIntervals&&(h.intervalCount=0,h.alarm=!0,Vr(!0))):(h.intervalCount=0,h.msgCount=0,h.alarm=!1),Ir&&(Vr(!0),Ir=!1)},Y)),Wt.push(setInterval(()=>{Fr&&Sn()},6e4))}function wn(){Wt.forEach(t=>clearInterval(t)),Wt=[]}function zu(t){if(!f.aisTargets.has(t)){let e=new fe;e.id=t,e.position=null,f.aisTargets.set(t,e)}return f.aisTargets.get(t)}function pn(t,e,r=!1){if(r){if(t.lastUpdated=new Date,e.path.startsWith("resources."))t.resourceUpdates.push(e),Xu(e);else if(e.path.startsWith("navigation.racing"))t.properties[e.path]=e.value;else if(e.path==="performance.beatAngle")t.performance.beatAngle=e.value;else if(e.path==="performance.gybeAngle")t.performance.gybeAngle=e.value;else if(e.path.startsWith("navigation.course."))if(e.path.startsWith("navigation.course.calcValues.")){let a=e.path.split(".").slice(3).join(".");t.courseCalcs[a]=e.value}else e.path.includes("activeRoute")?t.courseApi.activeRoute=e.value:e.path.includes("nextPoint")?t.courseApi.nextPoint=e.value:e.path.includes("previousPoint")?t.courseApi.previousPoint=e.value:e.path.includes("arrivalCircle")&&(t.courseApi.arrivalCircle=e.value);let n=e.path.indexOf("course")!==-1?e.path.split(".").slice(0,2).join("."):e.path;Ku.indexOf(n)!==-1&&(f.paths[n]=null)}else e.path==="navigation.distanceToSelf"&&(t.distanceToSelf=e.value),e.path==="navigation.closestApproach"&&(t.closestApproach=e.value);if(e.path==="")typeof e.value.name<"u"&&(t.name=e.value.name),typeof e.value.mmsi<"u"&&(t.mmsi=e.value.mmsi,t.lastUpdated=new Date),typeof e.value.registrations<"u"&&(t.registrations=e.value.registrations),typeof e.value.buddy<"u"&&(t.buddy=e.value.buddy),typeof e.value.communication<"u"&&(t.callsignVhf=e.value.communication.callsignVhf??"",t.callsignHf=e.value.communication.callsignHf??"");else if(e.path==="communication.callsignVhf")t.callsignVhf=e.value;else if(e.path==="communication.callsignHf")t.callsignHf=e.value;else if(e.path==="design.aisShipType")t.type=e.value;else if(e.path==="navigation.position"&&e.value){if(typeof e.value.latitude>"u"||typeof e.value.longitude>"u")return;t.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),t.positionReceived=!0,t.positionTimestamp=xn??"",t.lastUpdated=new Date,r||Wr(t)}else e.path==="navigation.state"?t.state=e.value:e.path==="navigation.speedOverGround"?t.sog=e.value:e.path==="environment.mode"?t.environment.mode=e.value:e.path==="environment.sun"?t.environment.sun=e.value:e.path==="environment.wind.angleApparent"?t.wind.awa=e.value:e.path==="environment.wind.speedApparent"?t.wind.aws=e.value:e.path==="environment.wind.speedTrue"?t.wind.speedTrue=e.value:e.path==="environment.wind.speedOverGround"?t.wind.sog=e.value:e.path==="environment.wind.directionTrue"?t.wind.twd=e.value:e.path==="environment.wind.directionMagnetic"?t.wind.mwd=e.value:e.path==="navigation.anchor.position"?t.anchor.position=e.value:e.path==="navigation.anchor.maxRadius"?t.anchor.maxRadius=e.value:e.path==="navigation.anchor.currentRadius"?t.anchor.radius=e.value:e.path==="steering.autopilot.state"&&B===oe?t.autopilot.state=e.value:e.path==="steering.autopilot.mode"&&B===oe?t.autopilot.mode=e.value:e.path==="steering.autopilot.target"&&B===oe?t.autopilot.target=e.value:e.path==="steering.autopilot.engaged"&&B===oe?t.autopilot.enabled=e.value:e.path==="steering.autopilot.defaultPilot"?(t.autopilot.default=e.value,oe=e.value):e.path==="steering.autopilot.availableActions"&&B===oe?t.autopilot.availableActions=e.value??[]:e.path==="navigation.courseOverGroundTrue"?t.cogTrue=e.value:e.path==="navigation.courseOverGroundMagnetic"?t.cogMagnetic=e.value:e.path==="navigation.headingTrue"?t.headingTrue=e.value:e.path==="navigation.headingMagnetic"&&(t.headingMagnetic=e.value);typeof X.heading<"u"&&e.path===X.heading&&(t.orientation=e.value),typeof X.tws<"u"&&e.path===X.tws&&(t.wind.tws=e.value),typeof X.twd<"u"&&e.path===X.twd&&(t.wind.direction=e.path==="environment.wind.angleTrueGround"||e.path==="environment.wind.angleTrueWater"?G.angleToDirection(e.value,t.orientation??0):e.value);let i=t.cogTrue??t.cogMagnetic??void 0;if(typeof i<"u"&&t.position){let n=r?Ur.cogLine:Ur.aisCogLine,a=(t.sog??0)*(n*60);t.vectors.cog=[t.position,F.destCoordinate(t.position,i,a)]}}function Xu(t){let e=new Ft;e.playback=U,e.result={path:t.path,value:t.value,sourceRef:B},postMessage(e)}function gn(t){if(t.path.includes("notifications.")){let e=new It;e.playback=U,e.result={path:t.path,value:t.value,sourceRef:B},postMessage(e)}}function Yu(){let t=new Date().valueOf();f.aisTargets.forEach((e,r)=>{e.lastUpdated.valueOf()<t-K.maxAge?(O.expired[r]=!0,f.aisTargets.delete(r)):e.lastUpdated.valueOf()<t-K.staleAge&&(O.stale[r]=!0)}),f.aircraft.forEach((e,r)=>{e.lastUpdated.valueOf()<t-K.maxAge?(O.expired[r]=!0,f.aircraft.delete(r)):e.lastUpdated.valueOf()<t-K.staleAge&&(O.stale[r]=!0)}),f.sar.forEach((e,r)=>{e.lastUpdated.valueOf()<t-K.maxAge?(O.expired[r]=!0,f.sar.delete(r)):e.lastUpdated.valueOf()<t-K.staleAge&&(O.stale[r]=!0)})}function Zu(t,e){let r=!1;if(t.indexOf("shore.basestations")!==-1&&(r=!0),!f.atons.has(t)){let n=new ce;n.id=t,n.position=null,r&&(n.type.id=-1,n.type.name="Basestation"),f.atons.set(t,n)}let i=f.atons.get(t);return e.path===""?(typeof e.value.name<"u"&&(i.name=e.value.name),typeof e.value.mmsi<"u"&&(i.mmsi=e.value.mmsi),typeof e.value.atonType<"u"&&(i.type=e.value.atonType)):e.path==="atonType"?i.type=e.value:e.path==="virtual"?i.virtual=e.value:e.path==="navigation.position"?(i.position=[e.value.longitude,e.value.latitude],i.positionReceived=!0):i.properties[e.path]=e.value,t}function Ju(t,e){if(!f.sar.has(t)){let i=new Ee;i.id=t,i.position=null,i.type.id=-1,i.type.name="SaR Beacon",f.sar.set(t,i)}let r=f.sar.get(t);e.path===""?(typeof e.value.name<"u"&&(r.name=e.value.name),typeof e.value.mmsi<"u"&&(r.mmsi=e.value.mmsi),typeof e.value.communication<"u"&&(r.callsignVhf=e.value.communication.callsignVhf??"",r.callsignHf=e.value.communication.callsignHf??"")):e.path==="communication.callsignVhf"?r.callsignVhf=e.value:e.path==="communication.callsignHf"?r.callsignHf=e.value:e.path==="navigation.position"&&e.value&&(r.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0)}function Qu(t,e){if(!f.meteo.has(t)){let i=new Ie;i.id=t,i.position=null,i.type.id=-1,i.type.name="Weather Station",f.meteo.set(t,i)}let r=f.meteo.get(t);if(e.path===""){if(typeof e.value.name<"u"&&(r.name=e.value.name),typeof e.value.mmsi<"u"){let i=t.split(":").slice(-2);r.mmsi=i.length===2?`${i[0]}:${i[1]}`:e.value.mmsi}typeof e.value.communication<"u"&&(r.callsignVhf=e.value.communication.callsignVhf??"",r.callsignHf=e.value.communication.callsignHf??"")}else e.path==="communication.callsignVhf"?r.callsignVhf=e.value:e.path==="communication.callsignHf"?r.callsignHf=e.value:e.path==="environment.outside.temperature"?r.temperature=e.value:e.path==="environment.wind.directionTrue"?r.twd=e.value:e.path==="environment.wind.averageSpeed"?r.tws=e.value:e.path==="navigation.position"&&e.value&&(r.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0)}function el(t,e){if(!f.aircraft.has(t)){let i=new Ne;i.id=t,i.position=null,f.aircraft.set(t,i)}let r=f.aircraft.get(t);e.path===""?(typeof e.value.name<"u"&&(r.name=e.value.name),typeof e.value.mmsi<"u"&&(r.mmsi=e.value.mmsi),typeof e.value.communication<"u"&&(r.callsignVhf=e.value.communication.callsignVhf??"",r.callsignHf=e.value.communication.callsignHf??"")):e.path==="communication.callsignVhf"?r.callsignVhf=e.value:e.path==="communication.callsignHf"?r.callsignHf=e.value:e.path==="navigation.position"&&e.value?(r.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0,Wr(r)):e.path==="navigation.courseOverGroundTrue"?r.orientation=e.value:e.path==="navigation.speedOverGround"&&(r.sog=e.value)}function Wr(t){if(t.track&&t.track.length===0)t.track.push([t.position]);else{let e=t.track[t.track.length-1].length,r=t.track[t.track.length-1][e-1];r[0]!==t.position[0]&&r[1]!==t.position[1]&&t.track[t.track.length-1].push(t.position)}t.track[t.track.length-1]=t.track[t.track.length-1].slice(0-K.maxTrack)}
|
|
5
|
+
`)}`:"",this.name="UnsubscriptionError",this.errors=r});function ue(t,e){if(t){let r=t.indexOf(e);0<=r&&t.splice(r,1)}}var E=class t{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;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:i}=this;if(D(i))try{i()}catch(a){e=a instanceof Re?a.errors:[a]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let a of n)try{Xr(a)}catch(o){e=e??[],o instanceof Re?e=[...e,...o.errors]:e.push(o)}}if(e)throw new Re(e)}}add(e){var r;if(e&&e!==this)if(this.closed)Xr(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(e)}}_hasParent(e){let{_parentage:r}=this;return r===e||Array.isArray(r)&&r.includes(e)}_addParent(e){let{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(e),r):r?[r,e]:e}_removeParent(e){let{_parentage:r}=this;r===e?this._parentage=null:Array.isArray(r)&&ue(r,e)}remove(e){let{_finalizers:r}=this;r&&ue(r,e),e instanceof t&&e._removeParent(this)}};E.EMPTY=(()=>{let t=new E;return t.closed=!0,t})();var Gt=E.EMPTY;function Le(t){return t instanceof E||t&&"closed"in t&&D(t.remove)&&D(t.add)&&D(t.unsubscribe)}function Xr(t){D(t)?t():t.unsubscribe()}var T={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var J={setTimeout(t,e,...r){let{delegate:i}=J;return i?.setTimeout?i.setTimeout(t,e,...r):setTimeout(t,e,...r)},clearTimeout(t){let{delegate:e}=J;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Yr(t){J.setTimeout(()=>{let{onUnhandledError:e}=T;if(e)e(t);else throw t})}function zt(){}var Zr=Xt("C",void 0,void 0);function Jr(t){return Xt("E",void 0,t)}function Qr(t){return Xt("N",t,void 0)}function Xt(t,e,r){return{kind:t,value:e,error:r}}var j=null;function Q(t){if(T.useDeprecatedSynchronousErrorHandling){let e=!j;if(e&&(j={errorThrown:!1,error:null}),t(),e){let{errorThrown:r,error:i}=j;if(j=null,r)throw i}}else t()}function ei(t){T.useDeprecatedSynchronousErrorHandling&&j&&(j.errorThrown=!0,j.error=t)}var le=class extends E{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,Le(e)&&e.add(this)):this.destination=Fn}static create(e,r,i){return new ee(e,r,i)}next(e){this.isStopped?Zt(Qr(e),this):this._next(e)}error(e){this.isStopped?Zt(Jr(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Zt(Zr,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},In=Function.prototype.bind;function Yt(t,e){return In.call(t,e)}var Jt=class{constructor(e){this.partialObserver=e}next(e){let{partialObserver:r}=this;if(r.next)try{r.next(e)}catch(i){ke(i)}}error(e){let{partialObserver:r}=this;if(r.error)try{r.error(e)}catch(i){ke(i)}else ke(e)}complete(){let{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(r){ke(r)}}},ee=class extends le{constructor(e,r,i){super();let n;if(D(e)||!e)n={next:e??void 0,error:r??void 0,complete:i??void 0};else{let a;this&&T.useDeprecatedNextContext?(a=Object.create(e),a.unsubscribe=()=>this.unsubscribe(),n={next:e.next&&Yt(e.next,a),error:e.error&&Yt(e.error,a),complete:e.complete&&Yt(e.complete,a)}):n=e}this.destination=new Jt(n)}};function ke(t){T.useDeprecatedSynchronousErrorHandling?ei(t):Yr(t)}function Nn(t){throw t}function Zt(t,e){let{onStoppedNotification:r}=T;r&&J.setTimeout(()=>r(t,e))}var Fn={closed:!0,next:zt,error:Nn,complete:zt};var ti=typeof Symbol=="function"&&Symbol.observable||"@@observable";function ri(t){return t}function ii(t){return t.length===0?ri:t.length===1?t[0]:function(r){return t.reduce((i,n)=>n(i),r)}}var H=class t{constructor(e){e&&(this._subscribe=e)}lift(e){let r=new t;return r.source=this,r.operator=e,r}subscribe(e,r,i){let n=Vn(e)?e:new ee(e,r,i);return Q(()=>{let{operator:a,source:o}=this;n.add(a?a.call(n,o):o?this._subscribe(n):this._trySubscribe(n))}),n}_trySubscribe(e){try{return this._subscribe(e)}catch(r){e.error(r)}}forEach(e,r){return r=ni(r),new r((i,n)=>{let a=new ee({next:o=>{try{e(o)}catch(s){n(s),a.unsubscribe()}},error:n,complete:i});this.subscribe(a)})}_subscribe(e){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(e)}[ti](){return this}pipe(...e){return ii(e)(this)}toPromise(e){return e=ni(e),new e((r,i)=>{let n;this.subscribe(a=>n=a,a=>i(a),()=>r(n))})}};H.create=t=>new H(t);function ni(t){var e;return(e=t??T.Promise)!==null&&e!==void 0?e:Promise}function Un(t){return t&&D(t.next)&&D(t.error)&&D(t.complete)}function Vn(t){return t&&t instanceof le||Un(t)&&Le(t)}var ai=De(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var I=class extends H{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){let r=new qe(this,this);return r.operator=e,r}_throwIfClosed(){if(this.closed)throw new ai}next(e){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(e)}})}error(e){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;let{observers:r}=this;for(;r.length;)r.shift().error(e)}})}complete(){Q(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){let{hasError:r,isStopped:i,observers:n}=this;return r||i?Gt:(this.currentObservers=null,n.push(e),new E(()=>{this.currentObservers=null,ue(n,e)}))}_checkFinalizedStatuses(e){let{hasError:r,thrownError:i,isStopped:n}=this;r?e.error(i):n&&e.complete()}asObservable(){let e=new H;return e.source=this,e}};I.create=(t,e)=>new qe(t,e);var qe=class extends I{constructor(e,r){super(),this.destination=e,this.source=r}next(e){var r,i;(i=(r=this.destination)===null||r===void 0?void 0:r.next)===null||i===void 0||i.call(r,e)}error(e){var r,i;(i=(r=this.destination)===null||r===void 0?void 0:r.error)===null||i===void 0||i.call(r,e)}complete(){var e,r;(r=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||r===void 0||r.call(e)}_subscribe(e){var r,i;return(i=(r=this.source)===null||r===void 0?void 0:r.subscribe(e))!==null&&i!==void 0?i:Gt}};var M=[];for(let t=0;t<256;++t)M.push((t+256).toString(16).slice(1));function oi(t,e=0){return(M[t[e+0]]+M[t[e+1]]+M[t[e+2]]+M[t[e+3]]+"-"+M[t[e+4]]+M[t[e+5]]+"-"+M[t[e+6]]+M[t[e+7]]+"-"+M[t[e+8]]+M[t[e+9]]+"-"+M[t[e+10]]+M[t[e+11]]+M[t[e+12]]+M[t[e+13]]+M[t[e+14]]+M[t[e+15]]).toLowerCase()}var Qt,Kn=new Uint8Array(16);function er(){if(!Qt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Qt=crypto.getRandomValues.bind(crypto)}return Qt(Kn)}var Wn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),tr={randomUUID:Wn};function $n(t,e,r){if(tr.randomUUID&&!e&&!t)return tr.randomUUID();t=t||{};let i=t.random??t.rng?.()??er();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){if(r=r||0,r<0||r+16>e.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)e[r+n]=i[n];return e}return oi(i)}var rr=$n;var Te=class{_connect;_close;_error;_message;ws;_filter="";_wsTimeout=2e4;_token="";_playbackMode=!1;onConnect;onClose;onError;onMessage;version=1;endpoint="";selfId="";_source=null;set source(e){this._source||(this._source={}),this._source.label=e}set authToken(e){this._token=e}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(e){this._wsTimeout=e<3e3?3e3:e>6e4?6e4:e}get isOpen(){return!!(this.ws&&this.ws.readyState!=1&&this.ws.readyState!=3)}get filter(){return this._filter}set filter(e){e&&e.indexOf("self")!=-1?this._filter=this.selfId?this.selfId:"":this._filter=e}get playbackMode(){return this._playbackMode}constructor(){this._connect=new I,this.onConnect=this._connect.asObservable(),this._close=new I,this.onClose=this._close.asObservable(),this._error=new I,this.onError=this._error.asObservable(),this._message=new I,this.onMessage=this._message.asObservable()}close(){this.ws&&(this.ws.close(),this.ws=null)}open(e,r,i){if(e=e||this.endpoint,!e)return;let n=e.indexOf("?")==-1?"?":"&";r&&(e+=`${n}subscribe=${r}`),(this._token||i)&&(e+=`${r?"&":"?"}token=${this._token||i}`),this.close(),this.ws=new WebSocket(e),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(e){let r;if(typeof e.data=="string")try{r=JSON.parse(e.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(e){if(typeof e!="object")return"";let r=te.request();return typeof e.login>"u"&&this._token&&(r.token=this._token),Object.keys(e).forEach(n=>{r[n]=e[n]}),this.send(r),r.requestId}put(e,r,i){let n={context:e=="self"?"vessels.self":e,put:{path:r,value:i}};return this.sendRequest(n)}login(e,r){let i={login:{username:e,password:r}};return this.sendRequest(i)}send(e){this.ws&&(typeof e=="object"&&(e=JSON.stringify(e)),this.ws.send(e))}sendUpdate(e="self",r,i){let n=te.updates();this._token&&(n.token=this._token),n.context=e=="self"?"vessels.self":e,this._token&&(n.token=this._token);let a=[];typeof r=="string"&&a.push({path:r,value:i}),typeof r=="object"&&Array.isArray(r)&&(a=r);let o={timestamp:new Date().toISOString(),values:a};this._source&&(o.source=this._source),n.updates.push(o),this.send(n)}subscribe(e="*",r="*",i){let n=te.subscribe();if(this._token&&(n.token=this._token),n.context=e=="self"?"vessels.self":e,this._token&&(n.token=this._token),typeof r=="object"&&Array.isArray(r)&&(n.subscribe=r),typeof r=="string"){let a={};a.path=r,i&&typeof i=="object"&&(i.period&&(a.period=i.period),i.minPeriod&&(a.minPeriod=i.period),i.format&&(i.format=="delta"||i.format=="full")&&(a.format=i.format),i.policy&&(i.policy=="instant"||i.policy=="ideal"||i.policy=="fixed")&&(a.policy=i.policy)),n.subscribe.push(a)}this.send(n)}unsubscribe(e="*",r="*"){let i=te.unsubscribe();this._token&&(i.token=this._token),i.context=e=="self"?"vessels.self":e,this._token&&(i.token=this._token),typeof r=="object"&&Array.isArray(r)&&(i.unsubscribe=r),typeof r=="string"&&i.unsubscribe.push({path:r}),this.send(i)}raiseAlarm(e="*",r,i){let n;typeof r=="string"?n=r.indexOf("notifications.")==-1?`notifications.${r}`:r:n=r,this.put(e,n,i.value)}clearAlarm(e="*",r){let i=r.indexOf("notifications.")==-1?`notifications.${r}`:r;this.put(e,i,null)}isSelf(e){return e.context==this.selfId}isDelta(e){return typeof e.context<"u"}isHello(e){return typeof e.version<"u"&&typeof e.self<"u"}isResponse(e){return typeof e.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:rr()}}},Ce=class{_state;_method=[];_message="";constructor(e,r,i,n){this._message=typeof e<"u"?e:"",this._state=typeof r<"u"?r:"alarm",i&&this._method.push("visual"),n&&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},fe=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;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},Ee=class extends re{constructor(){super()}},Ie=class extends re{sog=0;track=[];constructor(){super()}},ce=class extends re{constructor(){super()}},Ne=class extends ce{twd;tws;temperature;constructor(){super()}};var ir={K:{C:t=>t-273.15,F:t=>(t-273.15)*9/5+32},rad:{degree:t=>t*180/Math.PI},deg:{radian:t=>t*.0174532925199433},ratio:{percent:t=>t*100},"m/s":{kn:t=>t*1.94384,"km/h":t=>t*3.6,mph:t=>t*2.2369362920544025,Bf:t=>t/.836^.6666666666666666,fps:t=>t*3.280839895013124},"rad/s":{"deg/s":t=>t*57.2958,rpm:t=>t*9.549296585513723},Hz:{rpm:t=>t*60},m:{fathom:t=>t*.5467468562055768,league:t=>t*.0002071251035625518,kilometer:t=>t*.001,mile:t=>t*.000621371192237334,"naut-mile":t=>t*.0005399568034557236,foot:t=>t*3.280839895013124,yard:t=>t*1.0936132983377078},s:{hour:t=>t*.0002777777777777778,minute:t=>t*.016666666666666666,day:t=>t*11574074074074073e-21,year:t=>t*3168876461541279e-23},foot:{m:t=>t/3.280839895013124}},de={degree:{symbol:"\xBA",name:"Degrees"},radian:{symbol:"rad",name:"Radians"},percent:{symbol:"%",name:"Percent"},kilometer:{symbol:"km",name:"Kilometer"},"naut-mile":{symbol:"nmi",name:"Nautical Mile"},foot:{symbol:"ft",name:"Feet"},yard:{symbol:"yd",name:"Yard"},fathom:{symbol:"fm",name:"Fathom"},hour:{symbol:"hr",name:"Hour"},minute:{symbol:"min",name:"Minute"},F:{symbol:"\xBAF",name:"Fahrenheit"},C:{symbol:"\xBAC",name:"Celcius"}},G=class{static transform(e,r,i){if(!Number.isFinite(e))return null;if(r===i)return e;try{return ir[r][i](e)}catch{throw new Error("Transformation not found!")}}static setSymbol(e,r){e in de&&(de[e].symbol=r??de[e].symbol)}static getSymbol(e){return e in de?de[e].symbol:e}static degreesToRadians(e){return ir.deg.radian(e)}static radiansToDegrees(e=0){return ir.rad.degree(e)}static nauticalMilesToKm(e=0){return e*1.852}static angleToDirection(e,r){let i=Math.PI*2;if(r||(r=0),e||(e=0),!Number.isFinite(r)||!Number.isFinite(e))return null;let n=r+e;return n>i?n-i:n<0?i+n:n}static directionToAngle(e,r){let i=Math.PI*2;if(r||(r=0),e||(e=0),!Number.isFinite(r)||!Number.isFinite(e))return null;let n=r-e,a;if(n>0)a=n>Math.PI?i-n:0-n;else if(n<0){let o=Math.abs(n);a=o>Math.PI?o-i:o}else a=n;return a}};var A=zr(un()),F=class t{static R=6371e3;static rhumbDestination(e,r,i){let n=t.R,a=i/n,o=e[1]*Math.PI/180,s=e[0]*Math.PI/180,u=r,p=a*Math.cos(u),h=o+p,v=a,m=89*Math.PI/180;h>m&&o<m?(v=a*(m-o)/p,h=m):h<-m&&o>-m&&(v=a*(-m-o)/p,h=-m);let b=Math.log(Math.tan(Math.PI/4+h/2)/Math.tan(Math.PI/4+o/2)),O=Math.abs(b)>1e-12?(h-o)/b:Math.cos(o),y=v*Math.sin(u)/O;return[(s+y)*180/Math.PI,h*180/Math.PI]}static destCoordinate(e,r,i){let n=(0,A.computeDestinationPoint)(e,i,G.radiansToDegrees(r));return[n.longitude,n.latitude]}static distanceTo(e,r){return(0,A.getDistance)(e,r)}static routeLength(e){return(0,A.getPathLength)(e)}static routeLegs(e,r){if(e.length<2)return[];let i=[];r?i.push({bearing:(0,A.getGreatCircleBearing)(r,e[0]),distance:t.distanceTo(r,e[0])}):i.push({bearing:0,distance:0});for(let n=1;n<e.length;++n){let a={bearing:(0,A.getGreatCircleBearing)(e[n-1],e[n]),distance:t.distanceTo(e[n-1],e[n])};i.push(a)}return i}static closestForwardPoint(e,r,i){if(e.length<2||!r)return-1;let n={index:-1,distance:-1};for(let a=0;a<e.length;++a){let o=(0,A.getGreatCircleBearing)(r,e[a]),s=Ar.difference(i,o);if(s>-90&&s<90){let u=t.distanceTo(r,e[a]);(n.distance===-1||u<n.distance)&&(n.distance=u,n.index=a)}}return n.index}static centreOfPolygon(e){let r=(0,A.getCenter)(e);return[r.longitude,r.latitude]}static inDLCrossingZone(e,r=170){return Math.abs(e[0])>=r}static inBounds(e,r){return(0,A.isPointInPolygon)(e,[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]],[r[0],r[1]]])}static calcMapifiedExtent(e,r){let n=111111*Math.cos(G.degreesToRadians(e[1])),a=[0,0,0,0];return a[1]=e[1]+(0-Math.abs(r))/111111,a[3]=e[1]+Math.abs(r)/111111,a[0]=e[0]+(0-Math.abs(r))/n,a[2]=e[0]+Math.abs(r)/n,a}static normaliseCoords(e){if(!Array.isArray(e))return[0,0];if(typeof e[0]=="number"){if(e[0]>180)for(;e[0]>180;)e[0]=e[0]-360;else if(e[0]<-180)for(;e[0]<-180;)e[0]=360+e[0];return e}else if(Array.isArray(e[0]))return e.forEach(r=>r=this.normaliseCoords(r)),e}},Ar=class t{static difference(e,r){let i=360-r,n=e+i,a=t.normalise(n);return a<180?0-a:360-a}static add(e,r){return t.normalise(e+r)}static normalise(e){return e<0?e+360:e>=360?e-360:e}};var Nt=class{action="notification";playback=!1;result=null;self=null;timestamp=new Date().toISOString();sourceRef},ae=class{action;playback=!1;result=null;timestamp;self=null;watchDogAlarm;constructor(){this.action="update"}},Ft=class extends ae{constructor(){super(),this.action="resource"}},Ut=class extends ae{constructor(){super(),this.action="trail"}};var hn=zr(dn());var Ku=["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"],_={active:!1,maxMsgIntervals:18,intervalCount:0,msgCount:0,alarm:!1},f,P,vn,Me=[],Wt=[],Nr=!1,Kr,Fr=!1,x={signalk:{},aisState:[]},yn=[0,0,0,0],bn=60,_e=0,w,X={},Y=500,U=!1,_n,K={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},Ur={cogLine:10,aisCogLine:10},xe={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},B,xn,oe="freeboard-sk";function Wu(){f={self:new fe,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},f.self.positionReceived=!1,Pn()}function Pn(){w={updated:{},stale:{},expired:{}}}function Vt({action:t,msg:e}){switch(t){case"onConnect":postMessage({action:"open",playback:U,result:e.target.readyState}),_.msgCount=0,_.intervalCount=0,_.alarm=!1,_.active=!0;break;case"onClose":Mn(!1),_.active=!1;break;case"onError":postMessage({action:"error",playback:U,result:"Connection error!"}),_.msgCount=0,_.intervalCount=0,_.active=!1;break;case"onMessage":_.msgCount++,Gu(e);break}}addEventListener("message",({data:t})=>{$u(t)});function $u(t){if(t.cmd)switch(t.cmd){case"open":mn(t.options),ju(t.options);break;case"close":Mn(!0);break;case"subscribe":P.subscribe(t.options.context,t.options.path);break;case"settings":mn(t.options);break;case"alarm":Hu(t.options);break;case"vessel":if(t.options){let e;t.options.context==="self"?e=f.self:e=f.aisTargets.get(t.options.context),e&&t.options.name&&(e.name=t.options.name)}break;case"auth":t.options&&typeof t.options.token<"u"&&(vn=t.options.token);break;case"trail":t.options&&(xe.trailDuration=t.options.trailDuration??24,t.options.trailResolution&&(xe.trailResolution.lastHour=t.options.trailResolution.lastHour??"5s",xe.trailResolution.next23=t.options.trailResolution.next23??"1m",xe.trailResolution.beyond24=t.options.trailResolution.beyond24??"5m")),Bu(xe);break}}function mn(t={config:{}}){t.interval&&typeof t.interval=="number"&&(Y=t.interval,wn(),On(),bn=1/(Y/1e3)*60),U=!!t.playback,t.config&&(typeof t.config.units.preferredPaths<"u"&&(X=t.config.units.preferredPaths),t.config.vessels.aisMaxAge&&typeof t.config.vessels.aisMaxAge=="number"&&(K.maxAge=t.config.vessels.aisMaxAge),t.config.vessels.aisStaleAge&&typeof t.config.vessels.aisStaleAge=="number"&&(K.staleAge=t.config.vessels.aisStaleAge),typeof t.config.signalk.maxRadius=="number"&&(x.signalk=t.config.signalk),typeof t.config.selections.aisState<"u"&&Array.isArray(t.config.selections.aisState)&&(x.aisState=t.config.selections.aisState),Ur=t.config.vessels)}function Mn(t=!1){wn(),Me.forEach(e=>e.unsubscribe()),P&&t&&P.close(),P=null,postMessage({action:"close",result:t,playback:U})}var Kt=!1;function Se(t){if(!Kt)return new Promise((e,r)=>{Kt=!0,fetch(`${t}`).then(i=>{Kt=!1,i.json().then(n=>e(n)).catch(n=>r(n))}).catch(i=>{Kt=!1,r(i)})})}function Sn(){let t=x&&x.signalk&&x.signalk.maxRadius?`?radius=${x.signalk.maxRadius}`:"?radius=10000";Se(Kr+"/tracks"+t).then(e=>{Fr=!0,Object.entries(e).forEach(r=>{if(f.aisTargets.has(r[0])){let i=f.aisTargets.get(r[0]);i.track=r[1].coordinates,Wr(i)}})}).catch(()=>{Fr=!1})}function Bu(t){let e=Kr+"/self/track?",r=[],i=5e-4,n=!0;t.trailDuration>24&&(r.push(Se(`${e}timespan=${t.trailDuration-24}h&resolution=${t.trailResolution.beyond24}×panOffset=24`)),r.push(Se(`${e}timespan=23h&resolution=${t.trailResolution.next23}×panOffset=1`))),t.trailDuration>1&&t.trailDuration<25&&r.push(Se(`${e}timespan=${t.trailDuration-1}h&resolution=${t.trailResolution.next23}×panOffset=1`)),r.push(Se(`${e}timespan=1h&resolution=${t.trailResolution.lastHour}`));let a=[],o=new Ut;o.playback=U,Promise.all(r).then(s=>{let u=0,p=r.length-1,h=60;s.forEach(v=>{if(v.type&&v.type==="MultiLineString"&&v.coordinates&&Array.isArray(v.coordinates))if(u!==p){let m=[];for(v.coordinates.forEach(b=>{m=m.concat(b)}),m=(0,hn.SimplifyAP)(m,i,n);m.length>h;){let b=m.slice(0,h);a.push(b),m=m.slice(h-1),m[0]=[m[0][0]+5e-9,m[0][1]+5e-9]}m.length!==0&&a.push(m)}else a=a.concat(v.coordinates);u++}),o.result=a,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function ju(t){if(P)return;if(!t.url){postMessage({action:"error",result:"Valid options not provided!"});return}let e=t.url.split("/");if(e.pop(),e.push("api"),e[0]=e[0]==="wss:"?"https:":"http:",Kr=e.join("/"),Wu(),P=new Te,Me.push(P.onConnect.subscribe(r=>Vt({action:"onConnect",msg:r}))),Me.push(P.onClose.subscribe(r=>Vt({action:"onClose",msg:r}))),Me.push(P.onError.subscribe(r=>Vt({action:"onError",msg:r}))),Me.push(P.onMessage.subscribe(r=>Vt({action:"onMessage",msg:r}))),P.authToken=vn,t.playback){let r=t.playbackOptions.startTime?`?startTime=${t.playbackOptions.startTime}`:null,i=t.playbackOptions.playbackRate?`playbackRate=${t.playbackOptions.playbackRate}`:null;i=i?r?"&"+i:"?"+i:null;let n=`${t.url}${r||""}${i||""}`;P.open(n,t.playbackOptions.subscribe,t.token)}else P.open(t.url,t.subscribe,t.token),Sn()}function Hu(t){let e=t.type.indexOf("notifications.")===-1?`notifications.${t.type}`:t.type;t.raise?P.raiseAlarm("self",e,new Ce(t.message,t.state,!0,!0)):P.clearAlarm("self",e)}function Gu(t){P.isHello(t)?(postMessage({action:"hello",result:t,self:t.self,playback:U}),Y&&On()):P.isDelta(t)?(Nr=!0,t.updates.forEach(e=>{e.values&&(B=e.$source,xn=e.timestamp,e.values.forEach(r=>{if(_n=e.timestamp,!!t.context)switch(t.context.split(".")[0]){case"shore":case"atons":x?.signalk.atons&&Zu(t.context,r),Pe(t.context,f.atons,x?.signalk.atons);break;case"sar":x?.signalk.sar&&Ju(t.context,r),Pe(t.context,f.sar,x?.signalk.sar);break;case"aircraft":x?.signalk.aircraft&&el(t.context,r),Pe(t.context,f.aircraft,x?.signalk.aircraft);break;case"meteo":x?.signalk.meteo&&(Qu(t.context,r),gn(r)),Pe(t.context,f.meteo,x?.signalk.meteo);break;case"vessels":if(P.isSelf(t))f.self.id||(f.self.id=t.context),pn(f.self,r,!0),gn(r);else{if(x?.signalk.vessels){let i=zu(t.context);pn(i,r)}Pe(t.context,f.aisTargets,x?.signalk.vessels,x?.aisState)}break}}))}),Vr()):P.isResponse(t)&&postMessage({action:"response",result:t})}function Pe(t,e,r=!0,i=[]){if(r){let n=e.get(t);n&&i.includes(n?.state)&&(w.expired[t]=!0,n=null),n&&x.signalk.maxRadius?n.positionReceived&&F.inBounds(n.position,yn)?w.updated[t]=!0:(e.delete(t),w.expired[t]=!0):w.updated[t]=!0}else e.size!==0&&(e.forEach((n,a)=>{w.expired[a]=!0}),e.clear())}function Vr(t=!1){if(!Y||t){let e=new ae;e.watchDogAlarm=_.alarm,e.playback=U,f.aisStatus.updated=Object.keys(w.updated),f.aisStatus.stale=Object.keys(w.stale),f.aisStatus.expired=Object.keys(w.expired),e.result=f,e.timestamp=U?_n:f.self.lastUpdated.toISOString(),postMessage(e),Pn(),f.self.resourceUpdates=[],Yu(),_e===0&&f.self.positionReceived&&x?.signalk.maxRadius&&(yn=F.calcMapifiedExtent(f.self.position,x.signalk.maxRadius),_e++),_e=_e>=bn?0:_e+1}}function On(){Y&&typeof Y=="number"&&Wt.push(setInterval(()=>{_.active&&!_.msgCount?(_.intervalCount=_.intervalCount+1,_.intervalCount>=_.maxMsgIntervals&&(_.intervalCount=0,_.alarm=!0,Vr(!0))):(_.intervalCount=0,_.msgCount=0,_.alarm=!1),Nr&&(Vr(!0),Nr=!1)},Y)),Wt.push(setInterval(()=>{Fr&&Sn()},6e4))}function wn(){Wt.forEach(t=>clearInterval(t)),Wt=[]}function zu(t){if(!f.aisTargets.has(t)){let e=new fe;e.id=t,e.position=null,f.aisTargets.set(t,e)}return f.aisTargets.get(t)}function pn(t,e,r=!1){if(r){if(t.lastUpdated=new Date,e.path.startsWith("resources."))t.resourceUpdates.push(e),Xu(e);else if(e.path.startsWith("navigation.racing"))t.properties[e.path]=e.value;else if(e.path==="performance.beatAngle")t.performance.beatAngle=e.value;else if(e.path==="performance.gybeAngle")t.performance.gybeAngle=e.value;else if(e.path.startsWith("navigation.course."))if(e.path.startsWith("navigation.course.calcValues.")){let a=e.path.split(".").slice(3).join(".");t.courseCalcs[a]=e.value}else e.path.includes("activeRoute")?t.courseApi.activeRoute=e.value:e.path.includes("nextPoint")?t.courseApi.nextPoint=e.value:e.path.includes("previousPoint")?t.courseApi.previousPoint=e.value:e.path.includes("arrivalCircle")&&(t.courseApi.arrivalCircle=e.value);let n=e.path.indexOf("course")!==-1?e.path.split(".").slice(0,2).join("."):e.path;Ku.indexOf(n)!==-1&&(f.paths[n]=null)}else e.path==="navigation.distanceToSelf"&&(t.distanceToSelf=e.value),e.path==="navigation.closestApproach"&&(t.closestApproach=e.value);if(e.path==="")typeof e.value.name<"u"&&(t.name=e.value.name),typeof e.value.mmsi<"u"&&(t.mmsi=e.value.mmsi,t.lastUpdated=new Date),typeof e.value.registrations<"u"&&(t.registrations=e.value.registrations),typeof e.value.buddy<"u"&&(t.buddy=e.value.buddy),typeof e.value.communication<"u"&&(t.callsignVhf=e.value.communication.callsignVhf??"",t.callsignHf=e.value.communication.callsignHf??"");else if(e.path==="communication.callsignVhf")t.callsignVhf=e.value;else if(e.path==="communication.callsignHf")t.callsignHf=e.value;else if(e.path==="design.aisShipType")t.type=e.value;else if(e.path==="navigation.position"&&e.value){if(typeof e.value.latitude>"u"||typeof e.value.longitude>"u")return;t.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),t.positionReceived=!0,t.positionTimestamp=xn??"",t.lastUpdated=new Date,r||Wr(t)}else e.path==="navigation.state"?t.state=e.value:e.path==="navigation.speedOverGround"?t.sog=e.value:e.path==="environment.mode"?t.environment.mode=e.value:e.path==="environment.sun"?t.environment.sun=e.value:e.path==="environment.wind.angleApparent"?t.wind.awa=e.value:e.path==="environment.wind.speedApparent"?t.wind.aws=e.value:e.path==="environment.wind.speedTrue"?t.wind.speedTrue=e.value:e.path==="environment.wind.speedOverGround"?t.wind.sog=e.value:e.path==="environment.wind.directionTrue"?t.wind.twd=e.value:e.path==="environment.wind.directionMagnetic"?t.wind.mwd=e.value:e.path==="navigation.anchor.position"?t.anchor.position=e.value:e.path==="navigation.anchor.maxRadius"?t.anchor.maxRadius=e.value:e.path==="navigation.anchor.currentRadius"?t.anchor.radius=e.value:e.path==="steering.autopilot.state"&&B===oe?t.autopilot.state=e.value:e.path==="steering.autopilot.mode"&&B===oe?t.autopilot.mode=e.value:e.path==="steering.autopilot.target"&&B===oe?t.autopilot.target=e.value:e.path==="steering.autopilot.engaged"&&B===oe?t.autopilot.enabled=e.value:e.path==="steering.autopilot.defaultPilot"?(t.autopilot.default=e.value,oe=e.value):e.path==="steering.autopilot.availableActions"&&B===oe?t.autopilot.availableActions=e.value??[]:e.path==="navigation.courseOverGroundTrue"?t.cogTrue=e.value:e.path==="navigation.courseOverGroundMagnetic"?t.cogMagnetic=e.value:e.path==="navigation.headingTrue"?t.headingTrue=e.value:e.path==="navigation.headingMagnetic"&&(t.headingMagnetic=e.value);typeof X.heading<"u"&&e.path===X.heading&&(t.orientation=e.value),typeof X.tws<"u"&&e.path===X.tws&&(t.wind.tws=e.value),typeof X.twd<"u"&&e.path===X.twd&&(t.wind.direction=e.path==="environment.wind.angleTrueGround"||e.path==="environment.wind.angleTrueWater"?G.angleToDirection(e.value,t.orientation??0):e.value);let i=t.cogTrue??t.cogMagnetic??void 0;if(typeof i<"u"&&t.position){let n=r?Ur.cogLine:Ur.aisCogLine,a=(t.sog??0)*(n*60);t.vectors.cog=[t.position,F.rhumbDestination(t.position,i,a)]}}function Xu(t){let e=new Ft;e.playback=U,e.result={path:t.path,value:t.value,sourceRef:B},postMessage(e)}function gn(t){if(t.path.includes("notifications.")){let e=new Nt;e.playback=U,e.result={path:t.path,value:t.value,sourceRef:B},postMessage(e)}}function Yu(){let t=new Date().valueOf();f.aisTargets.forEach((e,r)=>{e.lastUpdated.valueOf()<t-K.maxAge?(w.expired[r]=!0,f.aisTargets.delete(r)):e.lastUpdated.valueOf()<t-K.staleAge&&(w.stale[r]=!0)}),f.aircraft.forEach((e,r)=>{e.lastUpdated.valueOf()<t-K.maxAge?(w.expired[r]=!0,f.aircraft.delete(r)):e.lastUpdated.valueOf()<t-K.staleAge&&(w.stale[r]=!0)}),f.sar.forEach((e,r)=>{e.lastUpdated.valueOf()<t-K.maxAge?(w.expired[r]=!0,f.sar.delete(r)):e.lastUpdated.valueOf()<t-K.staleAge&&(w.stale[r]=!0)})}function Zu(t,e){let r=!1;if(t.indexOf("shore.basestations")!==-1&&(r=!0),!f.atons.has(t)){let n=new ce;n.id=t,n.position=null,n.type.id=null,r&&(n.type.id=-2,n.type.name="Basestation"),f.atons.set(t,n)}let i=f.atons.get(t);return e.path===""?(typeof e.value.name<"u"&&(i.name=e.value.name),typeof e.value.mmsi<"u"&&(i.mmsi=e.value.mmsi),typeof e.value.atonType<"u"&&(i.type=e.value.atonType)):e.path==="atonType"?i.type=e.value:e.path==="virtual"?i.virtual=e.value:e.path==="navigation.position"?(i.position=[e.value.longitude,e.value.latitude],i.positionReceived=!0):i.properties[e.path]=e.value,t}function Ju(t,e){if(!f.sar.has(t)){let i=new Ee;i.id=t,i.position=null,i.type.id=-1,i.type.name="SaR Beacon",f.sar.set(t,i)}let r=f.sar.get(t);e.path===""?(typeof e.value.name<"u"&&(r.name=e.value.name),typeof e.value.mmsi<"u"&&(r.mmsi=e.value.mmsi),typeof e.value.communication<"u"&&(r.callsignVhf=e.value.communication.callsignVhf??"",r.callsignHf=e.value.communication.callsignHf??"")):e.path==="communication.callsignVhf"?r.callsignVhf=e.value:e.path==="communication.callsignHf"?r.callsignHf=e.value:e.path==="navigation.position"&&e.value&&(r.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0)}function Qu(t,e){if(!f.meteo.has(t)){let i=new Ne;i.id=t,i.position=null,i.type.id=-1,i.type.name="Weather Station",f.meteo.set(t,i)}let r=f.meteo.get(t);if(e.path===""){if(typeof e.value.name<"u"&&(r.name=e.value.name),typeof e.value.mmsi<"u"){let i=t.split(":").slice(-2);r.mmsi=i.length===2?`${i[0]}:${i[1]}`:e.value.mmsi}typeof e.value.communication<"u"&&(r.callsignVhf=e.value.communication.callsignVhf??"",r.callsignHf=e.value.communication.callsignHf??"")}else e.path==="communication.callsignVhf"?r.callsignVhf=e.value:e.path==="communication.callsignHf"?r.callsignHf=e.value:e.path==="environment.outside.temperature"?r.temperature=e.value:e.path==="environment.wind.directionTrue"?r.twd=e.value:e.path==="environment.wind.averageSpeed"?r.tws=e.value:e.path==="navigation.position"&&e.value&&(r.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0)}function el(t,e){if(!f.aircraft.has(t)){let i=new Ie;i.id=t,i.position=null,f.aircraft.set(t,i)}let r=f.aircraft.get(t);e.path===""?(typeof e.value.name<"u"&&(r.name=e.value.name),typeof e.value.mmsi<"u"&&(r.mmsi=e.value.mmsi),typeof e.value.communication<"u"&&(r.callsignVhf=e.value.communication.callsignVhf??"",r.callsignHf=e.value.communication.callsignHf??"")):e.path==="communication.callsignVhf"?r.callsignVhf=e.value:e.path==="communication.callsignHf"?r.callsignHf=e.value:e.path==="navigation.position"&&e.value?(r.position=F.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0,Wr(r)):e.path==="navigation.courseOverGroundTrue"?r.orientation=e.value:e.path==="navigation.speedOverGround"&&(r.sog=e.value)}function Wr(t){if(t.track&&t.track.length===0)t.track.push([t.position]);else{let e=t.track[t.track.length-1].length,r=t.track[t.track.length-1][e-1];r[0]!==t.position[0]&&r[1]!==t.position[1]&&t.track[t.track.length-1].push(t.position)}t.track[t.track.length-1]=t.track[t.track.length-1].slice(0-K.maxTrack)}
|
package/vitest-base.config.ts
DELETED
package/vitest-setup.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// In a file like vitest.setup.js or similar
|
|
2
|
-
class AudioContextMock {
|
|
3
|
-
createOscillator() {}
|
|
4
|
-
createGain() {
|
|
5
|
-
return {
|
|
6
|
-
connect: () => {},
|
|
7
|
-
disconnect: () => {}
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
// Add other methods that your code uses
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// Assign the mock to the global window object
|
|
14
|
-
global.AudioContext = AudioContextMock;
|
|
15
|
-
// Also handle the vendor-prefixed version if your code uses it
|
|
16
|
-
global.webkitAudioContext = AudioContextMock;
|
|
File without changes
|