@signalk/freeboard-sk 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ var kn=Object.create;var Gr=Object.defineProperty;var Rn=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=Rn(e,n))||i.enumerable});return t};var zr=(t,e,r)=>(r=t!=null?kn(Tn(t)):{},En(e||!t||!t.__esModule?Gr(r,"default",{value:t,enumerable:!0}):r,t));var M=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=M(),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=M(),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=M(),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=M();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=M();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)},La=Da;He.default=La});var ze=l(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.default=void 0;var ka=ve(pe()),Ra=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,ka.default)(e))return Number(e);if((0,Ra.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 L=l(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var Na=M(),Ia=pi(me()),Fa=pi(ze());function pi(t){return t&&t.__esModule?t:{default:t}}var Ua=function(e,r){var i=(0,Ia.default)(e,Na.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 k=l(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var Ka=M(),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 I=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(L()),Za=Qe(k()),pr=Qe(I()),gr=Qe(z()),hi=M();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),S=(0,pr.default)(o),v=Math.asin(Math.sin(p)*Math.cos(s)+Math.cos(p)*Math.sin(s)*Math.cos(u)),m=S+Math.atan2(Math.sin(u)*Math.sin(s)*Math.cos(p),Math.cos(s)-Math.sin(p)*Math.sin(v)),x=(0,gr.default)(m);return(x<hi.MINLON||x>hi.MAXLON)&&(m=(m+3*Math.PI)%(2*Math.PI)-Math.PI,x=(0,gr.default)(m)),{latitude:(0,gr.default)(v),longitude:x}},Qa=Ja;et.default=Qa});var yi=l(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var eo=M(),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=M(),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=M(),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),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=ks(a,2),s=o[0],u=o[1];return{longitude:parseFloat(s),latitude:parseFloat(u)}});return i},Ns=Es;Nt.default=Ns});var un=l(c=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var Is={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(ki()),js=d(_r()),Hs=d(qi()),Gs=d(Ei()),zs=d(Ni()),Xs=d(Vi()),Ys=d(me()),Zs=d($e()),Js=d($()),Qs=d(Mr()),eu=d(ji()),tu=d(L()),ru=d(k()),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(I()),xu=d(z()),Pu=d(on()),sn=M();Object.keys(sn).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(Is,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(kr=>{"use strict";kr.__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 Lr(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&&Lr(t,e,o,i,n),n.push(t[o]),r-o>1&&Lr(t,o,r,i,n))}function wu(t,e){var r=t.length-1,i=[t[0]];return Lr(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}kr.SimplifyAP=Au});var fn=l(Tr=>{"use strict";Tr.__esModule=!0;function Rr(t,e){return t*t+e*e}function Du(t,e){return Rr(t.longitude-e.longitude,t.latitude-e.latitude)}function Lu(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)/Rr(a,o);s>1?(i=r.longitude,n=r.latitude):s>0&&(i+=a*s,n+=o*s)}return Rr(t.longitude-i,t.latitude-n)}function ku(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=Lu(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 Ru(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:ku(t,i),t=Ru(t,i),t}Tr.SimplifyLL=qu});var cn=l(Nr=>{"use strict";Nr.__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 Nu(t,e){var r=t.length-1,i=[t[0]];return Er(t,0,r,e,i),i.push(t[r]),i}function Iu(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=Nu(t,i),t}Nr.Simplify=Iu});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 Le=De(t=>function(r){t(this),this.message=r?`${r.length} errors occurred during unsubscription:
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}&timespanOffset=24`)),r.push(Se(`${e}timespan=23h&resolution=${t.trailResolution.next23}&timespanOffset=1`))),t.trailDuration>1&&t.trailDuration<25&&r.push(Se(`${e}timespan=${t.trailDuration-1}h&resolution=${t.trailResolution.next23}&timespanOffset=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)}
@@ -1,5 +0,0 @@
1
- var An=Object.create;var jr=Object.defineProperty;var Dn=Object.getOwnPropertyDescriptor;var Ln=Object.getOwnPropertyNames;var kn=Object.getPrototypeOf,qn=Object.prototype.hasOwnProperty;var l=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Rn=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ln(e))!qn.call(t,n)&&n!==r&&jr(t,n,{get:()=>e[n],enumerable:!(i=Dn(e,n))||i.enumerable});return t};var Br=(t,e,r)=>(r=t!=null?An(kn(t)):{},Rn(e||!t||!t.__esModule?jr(r,"default",{value:t,enumerable:!0}):r,t));var M=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 Wn=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/;g.sexagesimalPattern=Wn;var $n=6378137;g.earthRadius=$n;var jn=-90;g.MINLAT=jn;var Bn=90;g.MAXLAT=Bn;var Hn=-180;g.MINLON=Hn;var Gn=180;g.MAXLON=Gn;var zn=["lng","lon","longitude",0];g.longitudeKeys=zn;var Xn=["lat","latitude",1];g.latitudeKeys=Xn;var Yn=["alt","altitude","elevation","elev",2];g.altitudeKeys=Yn;var Zn={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=Zn;var Jn={m:60,h:3600,d:86400};g.timeConversion=Jn;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 de=l(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.default=void 0;var Qn=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)},ea=Qn;Ie.default=ea});var pe=l(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.default=void 0;var ta=function(e){var r=e.toString().trim();return isNaN(parseFloat(r))?!1:parseFloat(r)===Number(r)},ra=ta;Ve.default=ra});var me=l(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.default=void 0;var ia=M(),na=function(e){return ia.sexagesimalPattern.test(e.toString().trim())},aa=na;Fe.default=aa});var ge=l(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.default=void 0;var oa=M(),sa=function(e){var r=new RegExp(oa.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},ua=sa;Ue.default=ua});var We=l(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.default=void 0;var tr=M(),rr=la(de());function la(t){return t&&t.__esModule?t:{default:t}}function ni(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 fa(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?ni(Object(r),!0).forEach(function(i){ca(t,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ni(Object(r)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(r,i))})}return t}function ca(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var da=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:tr.longitudeKeys,latitude:tr.latitudeKeys,altitude:tr.altitudeKeys},i=(0,rr.default)(e,r.longitude),n=(0,rr.default)(e,r.latitude),a=(0,rr.default)(e,r.altitude);return fa({latitude:n,longitude:i},a?{altitude:a}:{})},pa=da;Ke.default=pa});var nr=l($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var ma=ir(pe()),ga=ir(me()),ha=ir(ge()),ai=M();function ir(t){return t&&t.__esModule?t:{default:t}}var va=function t(e){return(0,ma.default)(e)?!(parseFloat(e)>ai.MAXLAT||e<ai.MINLAT):(0,ga.default)(e)?t((0,ha.default)(e)):!1},ya=va;$e.default=ya});var or=l(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.default=void 0;var ba=ar(pe()),_a=ar(me()),xa=ar(ge()),oi=M();function ar(t){return t&&t.__esModule?t:{default:t}}var Pa=function t(e){return(0,ba.default)(e)?!(parseFloat(e)>oi.MAXLON||e<oi.MINLON):(0,_a.default)(e)?t((0,xa.default)(e)):!1},Ma=Pa;je.default=Ma});var ur=l(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var Sa=sr(We()),si=sr(nr()),ui=sr(or());function sr(t){return t&&t.__esModule?t:{default:t}}var Oa=function(e){var r=(0,Sa.default)(e),i=r.latitude,n=r.longitude;if(Array.isArray(e)&&e.length>=2)return(0,ui.default)(e[0])&&(0,si.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,si.default)(o)===!1||(0,ui.default)(a)===!1)},wa=Oa;Be.default=wa});var Ge=l(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.default=void 0;var Aa=he(pe()),Da=he(me()),La=he(ge()),li=he(ur()),ka=he(We());function he(t){return t&&t.__esModule?t:{default:t}}function fi(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 lr(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?fi(Object(r),!0).forEach(function(i){fr(t,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):fi(Object(r)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(r,i))})}return t}function fr(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var qa=function t(e){if((0,Aa.default)(e))return Number(e);if((0,Da.default)(e))return(0,La.default)(e);if((0,li.default)(e)){var r=(0,ka.default)(e);return Array.isArray(e)?e.map(function(i,n){return[0,1].includes(n)?t(i):i}):lr(lr(lr({},e),r.latitude&&fr({},r.latitude,t(e[r.latitude]))),r.longitude&&fr({},r.longitude,t(e[r.longitude])))}return Array.isArray(e)?e.map(function(i){return(0,li.default)(i)?t(i):i}):e},Ra=qa;He.default=Ra});var L=l(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var Ta=M(),Ca=ci(de()),Ea=ci(Ge());function ci(t){return t&&t.__esModule?t:{default:t}}var Na=function(e,r){var i=(0,Ca.default)(e,Ta.latitudeKeys);if(!(typeof i>"u"||i===null)){var n=e[i];return r===!0?n:(0,Ea.default)(n)}},Ia=Na;ze.default=Ia});var k=l(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var Va=M(),Fa=di(de()),Ua=di(Ge());function di(t){return t&&t.__esModule?t:{default:t}}var Ka=function(e,r){var i=(0,Fa.default)(e,Va.longitudeKeys);if(!(typeof i>"u"||i===null)){var n=e[i];return r===!0?n:(0,Ua.default)(n)}},Wa=Ka;Xe.default=Wa});var I=l(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var $a=function(e){return e*Math.PI/180},ja=$a;Ye.default=ja});var z=l(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var Ba=function(e){return e*180/Math.PI},Ha=Ba;Ze.default=Ha});var mi=l(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var Ga=Je(L()),za=Je(k()),cr=Je(I()),dr=Je(z()),pi=M();function Je(t){return t&&t.__esModule?t:{default:t}}var Xa=function(e,r,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,a=(0,Ga.default)(e),o=(0,za.default)(e),s=r/n,u=(0,cr.default)(i),m=(0,cr.default)(a),S=(0,cr.default)(o),v=Math.asin(Math.sin(m)*Math.cos(s)+Math.cos(m)*Math.sin(s)*Math.cos(u)),p=S+Math.atan2(Math.sin(u)*Math.sin(s)*Math.cos(m),Math.cos(s)-Math.sin(m)*Math.sin(v)),x=(0,dr.default)(p);return(x<pi.MINLON||x>pi.MAXLON)&&(p=(p+3*Math.PI)%(2*Math.PI)-Math.PI,x=(0,dr.default)(p)),{latitude:(0,dr.default)(v),longitude:x}},Ya=Xa;Qe.default=Ya});var gi=l(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var Za=M(),Ja=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",i=Za.areaConversion[r];if(i)return e*i;throw new Error("Invalid unit used for area conversion.")},Qa=Ja;et.default=Qa});var hi=l(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var eo=M(),to=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",i=eo.distanceConversion[r];if(i)return e*i;throw new Error("Invalid unit used for distance conversion.")},ro=to;tt.default=ro});var vi=l(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var rt=M(),io=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh";switch(r){case"kmh":return e*rt.timeConversion.h*rt.distanceConversion.km;case"mph":return e*rt.timeConversion.h*rt.distanceConversion.mi;default:return e}},no=io;it.default=no});var _i=l(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;function yi(t,e){return uo(t)||so(t,e)||oo(t,e)||ao()}function ao(){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 oo(t,e){if(t){if(typeof t=="string")return bi(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 bi(t,e)}}function bi(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 so(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 uo(t){if(Array.isArray(t))return t}var lo=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},fo=function(e){var r=e.toString().split("."),i=yi(r,2),n=i[0],a=i[1],o=Math.abs(Number(n)),s=+("0."+(a||0))*60,u=s.toString().split("."),m=Math.floor(s),S=lo(+("0."+(u[1]||0))*60).toString(),v=S.split("."),p=yi(v,2),x=p[0],w=p[1],y=w===void 0?"0":w;return o+"\xB0 "+m.toString().padStart(2,"0")+"' "+x.padStart(2,"0")+"."+y.padEnd(1,"0")+'"'},co=fo;nt.default=co});var pr=l(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var po=function(e){return e>1?1:e<-1?-1:e},mo=po;at.default=mo});var $=l(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var xi=ot(L()),Pi=ot(k()),ie=ot(I()),go=ot(pr()),ho=M();function ot(t){return t&&t.__esModule?t:{default:t}}var vo=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,xi.default)(e),a=(0,Pi.default)(e),o=(0,xi.default)(r),s=(0,Pi.default)(r),u=Math.acos((0,go.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))))*ho.earthRadius;return Math.round(u/i)*i},yo=vo;st.default=yo});var mr=l(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var Mi=bo($());function bo(t){return t&&t.__esModule?t:{default:t}}var _o=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Mi.default;return i=typeof i=="function"?i:Mi.default,r.slice().sort(function(n,a){return i(e,n)-i(e,a)})},xo=_o;ut.default=xo});var Si=l(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var Po=Mo(mr());function Mo(t){return t&&t.__esModule?t:{default:t}}var So=function(e,r){return(0,Po.default)(e,r)[0]},Oo=So;lt.default=Oo});var Ai=l(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var gr=hr(I()),wo=hr(L()),Oi=hr(k()),wi=M();function hr(t){return t&&t.__esModule?t:{default:t}}var Ao=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,Oi.default)(e[i]),u=(0,wo.default)(e[n]),m=(0,Oi.default)(e[a]);r+=((0,gr.default)(m)-(0,gr.default)(s))*Math.sin((0,gr.default)(u))}r=r*wi.earthRadius*wi.earthRadius/2}return Math.abs(r)},Do=Ao;ft.default=Do});var vr=l(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var Lo=Di(L()),ko=Di(k());function Di(t){return t&&t.__esModule?t:{default:t}}var qo=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,Lo.default)(i),a=(0,ko.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})},Ro=qo;ct.default=Ro});var Li=l(mt=>{"use strict";Object.defineProperty(mt,"__esModule",{value:!0});mt.default=void 0;var To=pt(L()),Co=pt(k()),ne=pt(I()),dt=pt(z()),ve=M();function pt(t){return t&&t.__esModule?t:{default:t}}var Eo=function(e,r){var i=(0,To.default)(e),n=(0,Co.default)(e),a=(0,ne.default)(i),o=(0,ne.default)(n),s=r/ve.earthRadius,u=a-s,m=a+s,S=(0,ne.default)(ve.MAXLAT),v=(0,ne.default)(ve.MINLAT),p=(0,ne.default)(ve.MAXLON),x=(0,ne.default)(ve.MINLON),w,y;if(u>v&&m<S){var R=Math.asin(Math.sin(s)/Math.cos(a));w=o-R,w<x&&(w+=Math.PI*2),y=o+R,y>p&&(y-=Math.PI*2)}else u=Math.max(u,v),m=Math.min(m,S),w=x,y=p;return[{latitude:(0,dt.default)(u),longitude:(0,dt.default)(w)},{latitude:(0,dt.default)(m),longitude:(0,dt.default)(y)}]},No=Eo;mt.default=No});var Ri=l(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Io=gt(L()),Vo=gt(k()),ki=gt(I()),qi=gt(z());function gt(t){return t&&t.__esModule?t:{default:t}}var Fo=function(e){if(Array.isArray(e)===!1||e.length===0)return!1;var r=e.length,i=e.reduce(function(s,u){var m=(0,ki.default)((0,Io.default)(u)),S=(0,ki.default)((0,Vo.default)(u));return{X:s.X+Math.cos(m)*Math.cos(S),Y:s.Y+Math.cos(m)*Math.sin(S),Z:s.Z+Math.sin(m)}},{X:0,Y:0,Z:0}),n=i.X/r,a=i.Y/r,o=i.Z/r;return{longitude:(0,qi.default)(Math.atan2(a,n)),latitude:(0,qi.default)(Math.atan2(o,Math.sqrt(n*n+a*a)))}},Uo=Fo;ht.default=Uo});var Ti=l(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.default=void 0;var Ko=Wo(vr());function Wo(t){return t&&t.__esModule?t:{default:t}}var $o=function(e){var r=(0,Ko.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))}},jo=$o;vt.default=jo});var yr=l(_t=>{"use strict";Object.defineProperty(_t,"__esModule",{value:!0});_t.default=void 0;var Ci=bt(L()),Ei=bt(k()),yt=bt(I()),Bo=bt(z());function bt(t){return t&&t.__esModule?t:{default:t}}var Ho=function(e,r){var i=(0,yt.default)((0,Ei.default)(r))-(0,yt.default)((0,Ei.default)(e)),n=Math.log(Math.tan((0,yt.default)((0,Ci.default)(r))/2+Math.PI/4)/Math.tan((0,yt.default)((0,Ci.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,Bo.default)(Math.atan2(i,n))+360)%360},Go=Ho;_t.default=Go});var Ii=l(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Ni=zo(yr());function zo(t){return t&&t.__esModule?t:{default:t}}var Xo=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ni.default,n=typeof i=="function"?i(e,r):(0,Ni.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"}},Yo=Xo;xt.default=Yo});var _r=l(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=void 0;var br=Fi($()),Vi=Fi(pr());function Fi(t){return t&&t.__esModule?t:{default:t}}var Zo=function(e,r,i){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,a=(0,br.default)(r,e,n),o=(0,br.default)(e,i,n),s=(0,br.default)(r,i,n),u=Math.acos((0,Vi.default)((a*a+s*s-o*o)/(2*a*s))),m=Math.acos((0,Vi.default)((o*o+s*s-a*a)/(2*o*s)));return u>Math.PI/2?a:m>Math.PI/2?o:Math.sin(u)*a},Jo=Zo;Pt.default=Jo});var Wi=l(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.default=void 0;var Ui=Mt(L()),Ki=Mt(k()),U=Mt(I()),Qo=Mt(z());function Mt(t){return t&&t.__esModule?t:{default:t}}var es=function(e,r){var i=(0,Ui.default)(r),n=(0,Ki.default)(r),a=(0,Ui.default)(e),o=(0,Ki.default)(e),s=((0,Qo.default)(Math.atan2(Math.sin((0,U.default)(n)-(0,U.default)(o))*Math.cos((0,U.default)(i)),Math.cos((0,U.default)(a))*Math.sin((0,U.default)(i))-Math.sin((0,U.default)(a))*Math.cos((0,U.default)(i))*Math.cos((0,U.default)(n)-(0,U.default)(o))))+360)%360;return s},ts=es;St.default=ts});var $i=l(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.default=void 0;var rs=is($());function is(t){return t&&t.__esModule?t:{default:t}}function Ot(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ot=function(r){return typeof r}:Ot=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Ot(t)}var ns=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rs.default;return e.reduce(function(i,n){return Ot(i)==="object"&&i.last!==null&&(i.distance+=r(n,i.last)),i.last=n,i},{last:null,distance:0}).distance},as=ns;wt.default=as});var Gi=l(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var ji=Pr(L()),Bi=Pr(k()),xr=Pr(I()),Hi=M();function Pr(t){return t&&t.__esModule?t:{default:t}}var os=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,ji.default)(e),a=(0,Bi.default)(e),o=(0,ji.default)(r),s=(0,Bi.default)(r),u=6356752314245e-6,m=1/298.257223563,S=(0,xr.default)(s-a),v,p,x,w,y,R,Ur=Math.atan((1-m)*Math.tan((0,xr.default)(parseFloat(n)))),Kr=Math.atan((1-m)*Math.tan((0,xr.default)(parseFloat(o)))),Se=Math.sin(Ur),Oe=Math.cos(Ur),we=Math.sin(Kr),Z=Math.cos(Kr),se=S,Wr,$r=100;do{var Kt=Math.sin(se),Wt=Math.cos(se);if(R=Math.sqrt(Z*Kt*(Z*Kt)+(Oe*we-Se*Z*Wt)*(Oe*we-Se*Z*Wt)),R===0)return 0;v=Se*we+Oe*Z*Wt,p=Math.atan2(R,v),x=Oe*Z*Kt/R,w=1-x*x,y=v-2*Se*we/w,isNaN(y)&&(y=0);var $t=m/16*w*(4+m*(4-3*w));Wr=se,se=S+(1-$t)*m*x*(p+$t*R*(y+$t*v*(-1+2*y*y)))}while(Math.abs(se-Wr)>1e-12&&--$r>0);if($r===0)return NaN;var W=w*(Hi.earthRadius*Hi.earthRadius-u*u)/(u*u),Sn=1+W/16384*(4096+W*(-768+W*(320-175*W))),jt=W/1024*(256+W*(-128+W*(74-47*W))),On=jt*R*(y+jt/4*(v*(-1+2*y*y)-jt/6*y*(-3+4*R*R)*(-3+4*y*y))),wn=u*Sn*(p-On);return Math.round(wn/i)*i},ss=os;At.default=ss});var zi=l(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var us=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"},ls=us;Dt.default=ls});var Xi=l(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.default=void 0;var fs=cs($());function cs(t){return t&&t.__esModule?t:{default:t}}var ds=function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:fs.default,n=i(e,r),a=Number(r.time)-Number(e.time),o=n/a*1e3;return o},ps=ds;Lt.default=ps});var Yi=l(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var Mr=ms($());function ms(t){return t&&t.__esModule?t:{default:t}}var gs=function(e,r,i){return(0,Mr.default)(r,e)+(0,Mr.default)(e,i)===(0,Mr.default)(r,i)},hs=gs;kt.default=hs});var Ji=l(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var qt=Zi(L()),q=Zi(k());function Zi(t){return t&&t.__esModule?t:{default:t}}var vs=function(e,r){for(var i=!1,n=r.length,a=-1,o=n-1;++a<n;o=a)((0,q.default)(r[a])<=(0,q.default)(e)&&(0,q.default)(e)<(0,q.default)(r[o])||(0,q.default)(r[o])<=(0,q.default)(e)&&(0,q.default)(e)<(0,q.default)(r[a]))&&(0,qt.default)(e)<((0,qt.default)(r[o])-(0,qt.default)(r[a]))*((0,q.default)(e)-(0,q.default)(r[a]))/((0,q.default)(r[o])-(0,q.default)(r[a]))+(0,qt.default)(r[a])&&(i=!i);return i},ys=vs;Rt.default=ys});var Qi=l(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var bs=_s(_r());function _s(t){return t&&t.__esModule?t:{default:t}}var xs=function(e,r,i,n){return(0,bs.default)(e,r,i)<n},Ps=xs;Tt.default=Ps});var en=l(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var Ms=Ss($());function Ss(t){return t&&t.__esModule?t:{default:t}}var Os=function(e,r,i){var n=.01;return(0,Ms.default)(e,r,n)<i},ws=Os;Ct.default=ws});var rn=l(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.default=void 0;function As(t,e){return qs(t)||ks(t,e)||Ls(t,e)||Ds()}function Ds(){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 Ls(t,e){if(t){if(typeof t=="string")return tn(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 tn(t,e)}}function tn(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 ks(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 qs(t){if(Array.isArray(t))return t}var Rs=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=As(a,2),s=o[0],u=o[1];return{longitude:parseFloat(s),latitude:parseFloat(u)}});return i},Ts=Rs;Et.default=Ts});var an=l(c=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var Cs={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 Es.default}});Object.defineProperty(c,"convertArea",{enumerable:!0,get:function(){return Ns.default}});Object.defineProperty(c,"convertDistance",{enumerable:!0,get:function(){return Is.default}});Object.defineProperty(c,"convertSpeed",{enumerable:!0,get:function(){return Vs.default}});Object.defineProperty(c,"decimalToSexagesimal",{enumerable:!0,get:function(){return Fs.default}});Object.defineProperty(c,"findNearest",{enumerable:!0,get:function(){return Us.default}});Object.defineProperty(c,"getAreaOfPolygon",{enumerable:!0,get:function(){return Ks.default}});Object.defineProperty(c,"getBounds",{enumerable:!0,get:function(){return Ws.default}});Object.defineProperty(c,"getBoundsOfDistance",{enumerable:!0,get:function(){return $s.default}});Object.defineProperty(c,"getCenter",{enumerable:!0,get:function(){return js.default}});Object.defineProperty(c,"getCenterOfBounds",{enumerable:!0,get:function(){return Bs.default}});Object.defineProperty(c,"getCompassDirection",{enumerable:!0,get:function(){return Hs.default}});Object.defineProperty(c,"getCoordinateKey",{enumerable:!0,get:function(){return Gs.default}});Object.defineProperty(c,"getCoordinateKeys",{enumerable:!0,get:function(){return zs.default}});Object.defineProperty(c,"getDistance",{enumerable:!0,get:function(){return Xs.default}});Object.defineProperty(c,"getDistanceFromLine",{enumerable:!0,get:function(){return Ys.default}});Object.defineProperty(c,"getGreatCircleBearing",{enumerable:!0,get:function(){return Zs.default}});Object.defineProperty(c,"getLatitude",{enumerable:!0,get:function(){return Js.default}});Object.defineProperty(c,"getLongitude",{enumerable:!0,get:function(){return Qs.default}});Object.defineProperty(c,"getPathLength",{enumerable:!0,get:function(){return eu.default}});Object.defineProperty(c,"getPreciseDistance",{enumerable:!0,get:function(){return tu.default}});Object.defineProperty(c,"getRhumbLineBearing",{enumerable:!0,get:function(){return ru.default}});Object.defineProperty(c,"getRoughCompassDirection",{enumerable:!0,get:function(){return iu.default}});Object.defineProperty(c,"getSpeed",{enumerable:!0,get:function(){return nu.default}});Object.defineProperty(c,"isDecimal",{enumerable:!0,get:function(){return au.default}});Object.defineProperty(c,"isPointInLine",{enumerable:!0,get:function(){return ou.default}});Object.defineProperty(c,"isPointInPolygon",{enumerable:!0,get:function(){return su.default}});Object.defineProperty(c,"isPointNearLine",{enumerable:!0,get:function(){return uu.default}});Object.defineProperty(c,"isPointWithinRadius",{enumerable:!0,get:function(){return lu.default}});Object.defineProperty(c,"isSexagesimal",{enumerable:!0,get:function(){return fu.default}});Object.defineProperty(c,"isValidCoordinate",{enumerable:!0,get:function(){return cu.default}});Object.defineProperty(c,"isValidLatitude",{enumerable:!0,get:function(){return du.default}});Object.defineProperty(c,"isValidLongitude",{enumerable:!0,get:function(){return pu.default}});Object.defineProperty(c,"orderByDistance",{enumerable:!0,get:function(){return mu.default}});Object.defineProperty(c,"sexagesimalToDecimal",{enumerable:!0,get:function(){return gu.default}});Object.defineProperty(c,"toDecimal",{enumerable:!0,get:function(){return hu.default}});Object.defineProperty(c,"toRad",{enumerable:!0,get:function(){return vu.default}});Object.defineProperty(c,"toDeg",{enumerable:!0,get:function(){return yu.default}});Object.defineProperty(c,"wktToPolygon",{enumerable:!0,get:function(){return bu.default}});var Es=d(mi()),Ns=d(gi()),Is=d(hi()),Vs=d(vi()),Fs=d(_i()),Us=d(Si()),Ks=d(Ai()),Ws=d(vr()),$s=d(Li()),js=d(Ri()),Bs=d(Ti()),Hs=d(Ii()),Gs=d(de()),zs=d(We()),Xs=d($()),Ys=d(_r()),Zs=d(Wi()),Js=d(L()),Qs=d(k()),eu=d($i()),tu=d(Gi()),ru=d(yr()),iu=d(zi()),nu=d(Xi()),au=d(pe()),ou=d(Yi()),su=d(Ji()),uu=d(Qi()),lu=d(en()),fu=d(me()),cu=d(ur()),du=d(nr()),pu=d(or()),mu=d(mr()),gu=d(ge()),hu=d(Ge()),vu=d(I()),yu=d(z()),bu=d(rn()),nn=M();Object.keys(nn).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(Cs,t)||Object.defineProperty(c,t,{enumerable:!0,get:function(){return nn[t]}})});function d(t){return t&&t.__esModule?t:{default:t}}});var on=l(Ar=>{"use strict";Ar.__esModule=!0;function Or(t,e){return t*t+e*e}function _u(t,e){return Or(t[0]-e[0],t[1]-e[1])}function xu(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)/Or(a,o);s>1?(i=r[0],n=r[1]):s>0&&(i+=a*s,n+=o*s)}return Or(t[0]-i,t[1]-n)}function Pu(t,e){for(var r=t[0],i,n=[r],a=1,o=t.length;a<o;a++)i=t[a],_u(i,r)>e&&(n.push(i),r=i);return r!==i&&n.push(i),n}function wr(t,e,r,i,n){for(var a=i,o,s=e+1;s<r;s++){var u=xu(t[s],t[e],t[r]);u>a&&(o=s,a=u)}a>i&&(o-e>1&&wr(t,e,o,i,n),n.push(t[o]),r-o>1&&wr(t,o,r,i,n))}function Mu(t,e){var r=t.length-1,i=[t[0]];return wr(t,0,r,e,i),i.push(t[r]),i}function Su(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:Pu(t,i),t=Mu(t,i),t}Ar.SimplifyAP=Su});var sn=l(kr=>{"use strict";kr.__esModule=!0;function Dr(t,e){return t*t+e*e}function Ou(t,e){return Dr(t.longitude-e.longitude,t.latitude-e.latitude)}function wu(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)/Dr(a,o);s>1?(i=r.longitude,n=r.latitude):s>0&&(i+=a*s,n+=o*s)}return Dr(t.longitude-i,t.latitude-n)}function Au(t,e){for(var r=t[0],i,n=[r],a=1,o=t.length;a<o;a++)i=t[a],Ou(i,r)>e&&(n.push(i),r=i);return r!==i&&n.push(i),n}function Lr(t,e,r,i,n){for(var a=i,o,s=e+1;s<r;s++){var u=wu(t[s],t[e],t[r]);u>a&&(o=s,a=u)}a>i&&(o-e>1&&Lr(t,e,o,i,n),n.push(t[o]),r-o>1&&Lr(t,o,r,i,n))}function Du(t,e){var r=t.length-1,i=[t[0]];return Lr(t,0,r,e,i),i.push(t[r]),i}function Lu(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:Au(t,i),t=Du(t,i),t}kr.SimplifyLL=Lu});var un=l(Tr=>{"use strict";Tr.__esModule=!0;function qr(t,e){return t*t+e*e}function ku(t,e){return qr(t.x-e.x,t.y-e.y)}function qu(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)/qr(a,o);s>1?(i=r.x,n=r.y):s>0&&(i+=a*s,n+=o*s)}return qr(t.x-i,t.y-n)}function Ru(t,e){for(var r=t[0],i,n=[r],a=1,o=t.length;a<o;a++)i=t[a],ku(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=qu(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 Tu(t,e){var r=t.length-1,i=[t[0]];return Rr(t,0,r,e,i),i.push(t[r]),i}function Cu(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:Ru(t,i),t=Tu(t,i),t}Tr.Simplify=Cu});var ln=l(ye=>{"use strict";ye.__esModule=!0;var Eu=on();ye.SimplifyAP=Eu.SimplifyAP;var Nu=sn();ye.SimplifyLL=Nu.SimplifyLL;var Iu=un();ye.Simplify=Iu.Simplify});function D(t){return typeof t=="function"}function Ae(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 De=Ae(t=>function(r){t(this),this.message=r?`${r.length} errors occurred during unsubscription:
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 De?a.errors:[a]}let{_finalizers:n}=this;if(n){this._finalizers=null;for(let a of n)try{Hr(a)}catch(o){e=e??[],o instanceof De?e=[...e,...o.errors]:e.push(o)}}if(e)throw new De(e)}}add(e){var r;if(e&&e!==this)if(this.closed)Hr(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 Bt=E.EMPTY;function Le(t){return t instanceof E||t&&"closed"in t&&D(t.remove)&&D(t.add)&&D(t.unsubscribe)}function Hr(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 Gr(t){J.setTimeout(()=>{let{onUnhandledError:e}=T;if(e)e(t);else throw t})}function Ht(){}var zr=Gt("C",void 0,void 0);function Xr(t){return Gt("E",void 0,t)}function Yr(t){return Gt("N",t,void 0)}function Gt(t,e,r){return{kind:t,value:e,error:r}}var B=null;function Q(t){if(T.useDeprecatedSynchronousErrorHandling){let e=!B;if(e&&(B={errorThrown:!1,error:null}),t(),e){let{errorThrown:r,error:i}=B;if(B=null,r)throw i}}else t()}function Zr(t){T.useDeprecatedSynchronousErrorHandling&&B&&(B.errorThrown=!0,B.error=t)}var le=class extends E{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,Le(e)&&e.add(this)):this.destination=En}static create(e,r,i){return new ee(e,r,i)}next(e){this.isStopped?Xt(Yr(e),this):this._next(e)}error(e){this.isStopped?Xt(Xr(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Xt(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()}}},Tn=Function.prototype.bind;function zt(t,e){return Tn.call(t,e)}var Yt=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&&zt(e.next,a),error:e.error&&zt(e.error,a),complete:e.complete&&zt(e.complete,a)}):n=e}this.destination=new Yt(n)}};function ke(t){T.useDeprecatedSynchronousErrorHandling?Zr(t):Gr(t)}function Cn(t){throw t}function Xt(t,e){let{onStoppedNotification:r}=T;r&&J.setTimeout(()=>r(t,e))}var En={closed:!0,next:Ht,error:Cn,complete:Ht};var Jr=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Qr(t){return t}function ei(t){return t.length===0?Qr: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=In(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=ti(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)}[Jr](){return this}pipe(...e){return ei(e)(this)}toPromise(e){return e=ti(e),new e((r,i)=>{let n;this.subscribe(a=>n=a,a=>i(a),()=>r(n))})}};H.create=t=>new H(t);function ti(t){var e;return(e=t??T.Promise)!==null&&e!==void 0?e:Promise}function Nn(t){return t&&D(t.next)&&D(t.error)&&D(t.complete)}function In(t){return t&&t instanceof le||Nn(t)&&Le(t)}var ri=Ae(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 ri}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?Bt:(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:Bt}};var P=[];for(let t=0;t<256;++t)P.push((t+256).toString(16).slice(1));function ii(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 Zt,Vn=new Uint8Array(16);function Jt(){if(!Zt){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Zt=crypto.getRandomValues.bind(crypto)}return Zt(Vn)}var Fn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Qt={randomUUID:Fn};function Un(t,e,r){if(Qt.randomUUID&&!e&&!t)return Qt.randomUUID();t=t||{};let i=t.random??t.rng?.()??Jt();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 ii(i)}var er=Un;var Re=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:er()}}},Te=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},Ce=class extends re{constructor(){super()}},Ee=class extends re{sog=0;track=[];constructor(){super()}},ce=class extends re{constructor(){super()}},Ne=class extends ce{twd;tws;temperature;constructor(){super()}};var G=class{static celsiusToKelvin(e=0){return e+273.15}static kelvinToCelsius(e=0){return e-273.15}static kelvinToFarenheit(e=0){return e*(9/5)-459.67}static degreesToRadians(e=0){return e*Math.PI/180}static radiansToDegrees(e=0){return e*180/Math.PI}static angleToDirection(e,r){let i=Math.PI*2;if(r||(r=0),e||(e=0),isNaN(r)||isNaN(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),isNaN(r)||isNaN(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}static knotsToKm(e){return e*1.852}static nauticalMilesToKm(e){return e*1.852}static knotsToMSec(e){return e*.51444325460445}static kmToKnots(e){return e*.539957}static kmToNauticalMiles(e){return e*.539957}static kmToMiles(e){return e*.621371}static metersToFeet(e){return e*3.28084}static msecToKnots(e){return e*1.94384}static msecToKmh(e){return e*3.6}static msecToMph(e){return e*2.23694}static nauticalMilesToMiles(e){return e*1.15078}static milesToKm(e){return e*1.60934}static milesToNauticalMiles(e){return e*.868976}static rpmToHertz(e){return e/60}};var A=Br(an()),V=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=Sr.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}},Sr=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"}},It=class extends ae{constructor(){super(),this.action="resource"}},Vt=class extends ae{constructor(){super(),this.action="trail"}};var pn=Br(ln());var Vu=["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,_,mn,Pe=[],Ut=[],Cr=!1,Vr,Er=!1,b={signalk:{},aisState:[]},gn=[0,0,0,0],hn=60,be=0,O,X={},Y=500,F=!1,vn,K={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},Nr={cogLine:10,aisCogLine:10},_e={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},j,yn,oe="freeboard-sk";function Fu(){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,bn()}function bn(){O={updated:{},stale:{},expired:{}}}function Ft({action:t,msg:e}){switch(t){case"onConnect":postMessage({action:"open",playback:F,result:e.target.readyState}),h.msgCount=0,h.intervalCount=0,h.alarm=!1,h.active=!0;break;case"onClose":_n(!1),h.active=!1;break;case"onError":postMessage({action:"error",playback:F,result:"Connection error!"}),h.msgCount=0,h.intervalCount=0,h.active=!1;break;case"onMessage":h.msgCount++,ju(e);break}}addEventListener("message",({data:t})=>{Uu(t)});function Uu(t){if(t.cmd)switch(t.cmd){case"open":fn(t.options),Wu(t.options);break;case"close":_n(!0);break;case"subscribe":_.subscribe(t.options.context,t.options.path);break;case"settings":fn(t.options);break;case"alarm":$u(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"&&(mn=t.options.token);break;case"trail":t.options&&(_e.trailDuration=t.options.trailDuration??24,t.options.trailResolution&&(_e.trailResolution.lastHour=t.options.trailResolution.lastHour??"5s",_e.trailResolution.next23=t.options.trailResolution.next23??"1m",_e.trailResolution.beyond24=t.options.trailResolution.beyond24??"5m")),Ku(_e);break}}function fn(t={config:{}}){t.interval&&typeof t.interval=="number"&&(Y=t.interval,Mn(),Pn(),hn=1/(Y/1e3)*60),F=!!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),Nr=t.config.vessels)}function _n(t=!1){Mn(),Pe.forEach(e=>e.unsubscribe()),_&&t&&_.close(),_=null,postMessage({action:"close",result:t,playback:F})}function Me(t){return new Promise((e,r)=>{fetch(`${t}`).then(i=>{i.json().then(n=>e(n)).catch(n=>r(n))}).catch(i=>{r(i)})})}function xn(){let t=b&&b.signalk&&b.signalk.maxRadius?`?radius=${b.signalk.maxRadius}`:"?radius=10000";Me(Vr+"/tracks"+t).then(e=>{Er=!0,Object.entries(e).forEach(r=>{if(f.aisTargets.has(r[0])){let i=f.aisTargets.get(r[0]);i.track=r[1].coordinates,Fr(i)}})}).catch(()=>{Er=!1})}function Ku(t){let e=Vr+"/self/track?",r=[],i=5e-4,n=!0;t.trailDuration>24&&(r.push(Me(`${e}timespan=${t.trailDuration-24}h&resolution=${t.trailResolution.beyond24}&timespanOffset=24`)),r.push(Me(`${e}timespan=23h&resolution=${t.trailResolution.next23}&timespanOffset=1`))),t.trailDuration>1&&t.trailDuration<25&&r.push(Me(`${e}timespan=${t.trailDuration-1}h&resolution=${t.trailResolution.next23}&timespanOffset=1`)),r.push(Me(`${e}timespan=1h&resolution=${t.trailResolution.lastHour}`));let a=[],o=new Vt;o.playback=F,Promise.all(r).then(s=>{let u=0,m=r.length-1,S=60;s.forEach(v=>{if(v.type&&v.type==="MultiLineString"&&v.coordinates&&Array.isArray(v.coordinates))if(u!==m){let p=[];for(v.coordinates.forEach(x=>{p=p.concat(x)}),p=(0,pn.SimplifyAP)(p,i,n);p.length>S;){let x=p.slice(0,S);a.push(x),p=p.slice(S-1),p[0]=[p[0][0]+5e-9,p[0][1]+5e-9]}p.length!==0&&a.push(p)}else a=a.concat(v.coordinates);u++}),o.result=a,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function Wu(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:",Vr=e.join("/"),Fu(),_=new Re,Pe.push(_.onConnect.subscribe(r=>Ft({action:"onConnect",msg:r}))),Pe.push(_.onClose.subscribe(r=>Ft({action:"onClose",msg:r}))),Pe.push(_.onError.subscribe(r=>Ft({action:"onError",msg:r}))),Pe.push(_.onMessage.subscribe(r=>Ft({action:"onMessage",msg:r}))),_.authToken=mn,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),xn()}function $u(t){let e=t.type.indexOf("notifications.")===-1?`notifications.${t.type}`:t.type;t.raise?_.raiseAlarm("self",e,new Te(t.message,t.state,!0,!0)):_.clearAlarm("self",e)}function ju(t){_.isHello(t)?(postMessage({action:"hello",result:t,self:t.self,playback:F}),Y&&Pn()):_.isDelta(t)?(Cr=!0,t.updates.forEach(e=>{e.values&&(j=e.$source,yn=e.timestamp,e.values.forEach(r=>{if(vn=e.timestamp,!!t.context)switch(t.context.split(".")[0]){case"shore":case"atons":b?.signalk.atons&&zu(t.context,r),xe(t.context,f.atons,b?.signalk.atons);break;case"sar":b?.signalk.sar&&Xu(t.context,r),xe(t.context,f.sar,b?.signalk.sar);break;case"aircraft":b?.signalk.aircraft&&Zu(t.context,r),xe(t.context,f.aircraft,b?.signalk.aircraft);break;case"meteo":b?.signalk.meteo&&(Yu(t.context,r),dn(r)),xe(t.context,f.meteo,b?.signalk.meteo);break;case"vessels":if(_.isSelf(t))f.self.id||(f.self.id=t.context),cn(f.self,r,!0),dn(r);else{if(b?.signalk.vessels){let i=Bu(t.context);cn(i,r)}xe(t.context,f.aisTargets,b?.signalk.vessels,b?.aisState)}break}}))}),Ir()):_.isResponse(t)&&postMessage({action:"response",result:t})}function xe(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&&V.inBounds(n.position,gn)?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 Ir(t=!1){if(!Y||t){let e=new ae;e.watchDogAlarm=h.alarm,e.playback=F,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=F?vn:f.self.lastUpdated.toISOString(),postMessage(e),bn(),f.self.resourceUpdates=[],Gu(),be===0&&f.self.positionReceived&&b?.signalk.maxRadius&&(gn=V.calcMapifiedExtent(f.self.position,b.signalk.maxRadius),be++),be=be>=hn?0:be+1}}function Pn(){Y&&typeof Y=="number"&&Ut.push(setInterval(()=>{h.active&&!h.msgCount?(h.intervalCount=h.intervalCount+1,h.intervalCount>=h.maxMsgIntervals&&(h.intervalCount=0,h.alarm=!0,Ir(!0))):(h.intervalCount=0,h.msgCount=0,h.alarm=!1),Cr&&(Ir(!0),Cr=!1)},Y)),Ut.push(setInterval(()=>{Er&&xn()},6e4))}function Mn(){Ut.forEach(t=>clearInterval(t)),Ut=[]}function Bu(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 cn(t,e,r=!1){if(r){if(t.lastUpdated=new Date,e.path.startsWith("resources."))t.resourceUpdates.push(e),Hu(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;Vu.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=V.normaliseCoords([e.value.longitude,e.value.latitude]),t.positionReceived=!0,t.positionTimestamp=yn??"",t.lastUpdated=new Date,r||Fr(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"&&j===oe?t.autopilot.state=e.value:e.path==="steering.autopilot.mode"&&j===oe?t.autopilot.mode=e.value:e.path==="steering.autopilot.target"&&j===oe?t.autopilot.target=e.value:e.path==="steering.autopilot.engaged"&&j===oe?t.autopilot.enabled=e.value:e.path==="steering.autopilot.defaultPilot"?(t.autopilot.default=e.value,oe=e.value):e.path==="steering.autopilot.availableActions"&&j===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?Nr.cogLine:Nr.aisCogLine,a=(t.sog??0)*(n*60);t.vectors.cog=[t.position,V.destCoordinate(t.position,i,a)]}}function Hu(t){let e=new It;e.playback=F,e.result={path:t.path,value:t.value,sourceRef:j},postMessage(e)}function dn(t){if(t.path.includes("notifications.")){let e=new Nt;e.playback=F,e.result={path:t.path,value:t.value,sourceRef:j},postMessage(e)}}function Gu(){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 Xu(t,e){if(!f.sar.has(t)){let i=new Ce;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=V.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0)}function Yu(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=V.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0)}function Zu(t,e){if(!f.aircraft.has(t)){let i=new Ee;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=V.normaliseCoords([e.value.longitude,e.value.latitude]),r.positionReceived=!0,Fr(r)):e.path==="navigation.courseOverGroundTrue"?r.orientation=e.value:e.path==="navigation.speedOverGround"&&(r.sog=e.value)}function Fr(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)}