@signalk/freeboard-sk 2.14.1 → 2.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG: Freeboard
2
2
 
3
+ ### v2.14.2
4
+
5
+ - **Update**: Hide More / Less buttoon when Alert does not have addittional properties (#272)
6
+ - **Fixed**: Refresh of charts list after the addition of a new chart source. (#266)
7
+
8
+
3
9
  ### v2.14.1
4
10
 
5
11
  - **Fixed**: Unhandled error when Track resource has an undefined name property. (#262)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signalk/freeboard-sk",
3
- "version": "2.14.1",
3
+ "version": "2.14.2",
4
4
  "description": "Openlayers chart plotter implementation for Signal K",
5
5
  "keywords": [
6
6
  "signalk-webapp",
@@ -1 +1 @@
1
- (()=>{"use strict";var nb={179:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){var u=r.areaConversion[arguments.length>1&&void 0!==arguments[1]?arguments[1]:"m"];if(u)return a*u;throw new Error("Invalid unit used for area conversion.")}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(7029)),o=l(n(3100)),i=l(n(5705)),s=l(n(942)),a=n(7636);function l(d){return d&&d.__esModule?d:{default:d}}t.default=function(f,p){var oe,Ee,h=(0,r.default)(f),g=(0,o.default)(f),m=(0,i.default)(h),y=(0,i.default)(g),v=p/a.earthRadius,M=m-v,S=m+v,P=(0,i.default)(a.MAXLAT),fe=(0,i.default)(a.MINLAT),ee=(0,i.default)(a.MAXLON),he=(0,i.default)(a.MINLON);if(M>fe&&S<P){var Hn=Math.asin(Math.sin(v)/Math.cos(m));(oe=y-Hn)<he&&(oe+=2*Math.PI),(Ee=y+Hn)>ee&&(Ee-=2*Math.PI)}else M=Math.max(M,fe),S=Math.min(S,P),oe=he,Ee=ee;return[{latitude:(0,s.default)(M),longitude:(0,s.default)(oe)},{latitude:(0,s.default)(S),longitude:(0,s.default)(Ee)}]}},202:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u,c){return(0,r.default)(l,u,.01)<c}},266:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(3026)),o=a(n(4902)),i=a(n(1532)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function c(d){return(0,r.default)(d)?!(parseFloat(d)>s.MAXLON||d<s.MINLON):!!(0,o.default)(d)&&c((0,i.default)(d))}},354:(e,t)=>{function i(c,d){(null==d||d>c.length)&&(d=c.length);for(var f=0,p=new Array(d);f<d;f++)p[f]=c[f];return p}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(d){if(!d.startsWith("POLYGON"))throw new Error("Invalid wkt.");return d.slice(d.indexOf("(")+2,d.indexOf(")")).split(", ").map(function(h){var m=function n(c,d){return function a(c){if(Array.isArray(c))return c}(c)||function s(c,d){if(!(typeof Symbol>"u")&&Symbol.iterator in Object(c)){var f=[],p=!0,h=!1,g=void 0;try{for(var y,m=c[Symbol.iterator]();!(p=(y=m.next()).done)&&(f.push(y.value),!d||f.length!==d);p=!0);}catch(v){h=!0,g=v}finally{try{!p&&null!=m.return&&m.return()}finally{if(h)throw g}}return f}}(c,d)||function o(c,d){if(c){if("string"==typeof c)return i(c,d);var f=Object.prototype.toString.call(c).slice(8,-1);if("Object"===f&&c.constructor&&(f=c.constructor.name),"Map"===f||"Set"===f)return Array.from(c);if("Arguments"===f||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(f))return i(c,d)}}(c,d)||function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(h.split(" "),2),v=m[1];return{longitude:parseFloat(m[0]),latitude:parseFloat(v)}})}},884:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=a(n(942));function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d,f){var p=(0,r.default)(f),h=(0,o.default)(f),g=(0,r.default)(d),m=(0,o.default)(d);return((0,s.default)(Math.atan2(Math.sin((0,i.default)(h)-(0,i.default)(m))*Math.cos((0,i.default)(p)),Math.cos((0,i.default)(g))*Math.sin((0,i.default)(p))-Math.sin((0,i.default)(g))*Math.cos((0,i.default)(p))*Math.cos((0,i.default)(h)-(0,i.default)(m))))+360)%360}},917:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){var u=r.distanceConversion[arguments.length>1&&void 0!==arguments[1]?arguments[1]:"m"];if(u)return a*u;throw new Error("Invalid unit used for distance conversion.")}},939:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=a(n(942));function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d,f){var p=(0,i.default)((0,o.default)(f))-(0,i.default)((0,o.default)(d)),h=Math.log(Math.tan((0,i.default)((0,r.default)(f))/2+Math.PI/4)/Math.tan((0,i.default)((0,r.default)(d))/2+Math.PI/4));return Math.abs(p)>Math.PI&&(p=p>0?-1*(2*Math.PI-p):2*Math.PI+p),((0,s.default)(Math.atan2(p,h))+360)%360}},942:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return 180*i/Math.PI}},1118:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(2447));t.default=function(l,u){return(0,r.default)(l,u)[0]}},1167:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){switch(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"kmh"){case"kmh":return a*r.timeConversion.h*r.distanceConversion.km;case"mph":return a*r.timeConversion.h*r.distanceConversion.mi;default:return a}}},1532:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){var l=new RegExp(r.sexagesimalPattern).exec(a.toString().trim());if(typeof l>"u"||null===l)throw new Error("Given value is not in sexagesimal format");var u=Number(l[2])/60||0,c=Number(l[4])/3600||0,d=parseFloat(l[1])+u+c;return["S","W"].includes(l[7])?-d:d}},1691:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(5705)),o=a(n(7029)),i=a(n(3100)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d){var f=0;if(d.length>2){for(var p,h,g,m=0;m<d.length;m++){m===d.length-2?(p=d.length-2,h=d.length-1,g=0):m===d.length-1?(p=d.length-1,h=0,g=1):(p=m,h=m+1,g=m+2);var y=(0,i.default)(d[p]),v=(0,o.default)(d[h]),M=(0,i.default)(d[g]);f+=((0,r.default)(M)-(0,r.default)(y))*Math.sin((0,r.default)(v))}f=f*s.earthRadius*s.earthRadius/2}return Math.abs(f)}},2222:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(7029)),o=l(n(3100)),i=l(n(5705)),s=l(n(942)),a=n(7636);function l(d){return d&&d.__esModule?d:{default:d}}t.default=function(f,p,h){var g=arguments.length>3&&void 0!==arguments[3]?arguments[3]:6371e3,m=(0,r.default)(f),y=(0,o.default)(f),v=p/g,M=(0,i.default)(h),S=(0,i.default)(m),P=(0,i.default)(y),fe=Math.asin(Math.sin(S)*Math.cos(v)+Math.cos(S)*Math.sin(v)*Math.cos(M)),ee=P+Math.atan2(Math.sin(M)*Math.sin(v)*Math.cos(S),Math.cos(v)-Math.sin(S)*Math.sin(fe)),he=(0,s.default)(ee);return(he<a.MINLON||he>a.MAXLON)&&(ee=(ee+3*Math.PI)%(2*Math.PI)-Math.PI,he=(0,s.default)(ee)),{latitude:(0,s.default)(fe),longitude:he}}},2447:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r.default;return c="function"==typeof c?c:r.default,u.slice().sort(function(d,f){return c(l,d)-c(l,f)})}},2541:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r={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(t,"computeDestinationPoint",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"convertArea",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"convertDistance",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"convertSpeed",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"decimalToSexagesimal",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"findNearest",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"getAreaOfPolygon",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"getBounds",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"getBoundsOfDistance",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"getCenter",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,"getCenterOfBounds",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,"getCompassDirection",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(t,"getCoordinateKey",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(t,"getCoordinateKeys",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(t,"getDistance",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(t,"getDistanceFromLine",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(t,"getGreatCircleBearing",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(t,"getLatitude",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,"getLongitude",{enumerable:!0,get:function(){return fe.default}}),Object.defineProperty(t,"getPathLength",{enumerable:!0,get:function(){return ee.default}}),Object.defineProperty(t,"getPreciseDistance",{enumerable:!0,get:function(){return he.default}}),Object.defineProperty(t,"getRhumbLineBearing",{enumerable:!0,get:function(){return oe.default}}),Object.defineProperty(t,"getRoughCompassDirection",{enumerable:!0,get:function(){return Ee.default}}),Object.defineProperty(t,"getSpeed",{enumerable:!0,get:function(){return Hn.default}}),Object.defineProperty(t,"isDecimal",{enumerable:!0,get:function(){return ja.default}}),Object.defineProperty(t,"isPointInLine",{enumerable:!0,get:function(){return Yr.default}}),Object.defineProperty(t,"isPointInPolygon",{enumerable:!0,get:function(){return Jr.default}}),Object.defineProperty(t,"isPointNearLine",{enumerable:!0,get:function(){return Xr.default}}),Object.defineProperty(t,"isPointWithinRadius",{enumerable:!0,get:function(){return an.default}}),Object.defineProperty(t,"isSexagesimal",{enumerable:!0,get:function(){return $n.default}}),Object.defineProperty(t,"isValidCoordinate",{enumerable:!0,get:function(){return Ha.default}}),Object.defineProperty(t,"isValidLatitude",{enumerable:!0,get:function(){return $a.default}}),Object.defineProperty(t,"isValidLongitude",{enumerable:!0,get:function(){return Si.default}}),Object.defineProperty(t,"orderByDistance",{enumerable:!0,get:function(){return ki.default}}),Object.defineProperty(t,"sexagesimalToDecimal",{enumerable:!0,get:function(){return xi.default}}),Object.defineProperty(t,"toDecimal",{enumerable:!0,get:function(){return Tt.default}}),Object.defineProperty(t,"toRad",{enumerable:!0,get:function(){return qd.default}}),Object.defineProperty(t,"toDeg",{enumerable:!0,get:function(){return Ri.default}}),Object.defineProperty(t,"wktToPolygon",{enumerable:!0,get:function(){return zd.default}});var o=H(n(2222)),i=H(n(179)),s=H(n(917)),a=H(n(1167)),l=H(n(8948)),u=H(n(1118)),c=H(n(1691)),d=H(n(9144)),f=H(n(190)),p=H(n(5524)),h=H(n(7088)),g=H(n(9952)),m=H(n(8744)),y=H(n(4695)),v=H(n(8674)),M=H(n(7504)),S=H(n(884)),P=H(n(7029)),fe=H(n(3100)),ee=H(n(5378)),he=H(n(2671)),oe=H(n(939)),Ee=H(n(2845)),Hn=H(n(8950)),ja=H(n(3026)),Yr=H(n(4194)),Jr=H(n(3536)),Xr=H(n(2787)),an=H(n(202)),$n=H(n(4902)),Ha=H(n(7637)),$a=H(n(6563)),Si=H(n(266)),ki=H(n(2447)),xi=H(n(1532)),Tt=H(n(5101)),qd=H(n(5705)),Ri=H(n(942)),zd=H(n(354)),Ba=n(7636);function H(x){return x&&x.__esModule?x:{default:x}}Object.keys(Ba).forEach(function(x){"default"===x||"__esModule"===x||Object.prototype.hasOwnProperty.call(r,x)||Object.defineProperty(t,x,{enumerable:!0,get:function(){return Ba[x]}})})},2671:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d,f){var p=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;p=typeof p<"u"&&!isNaN(p)?p:1;var P,fe,ee,he,oe,Ee,Ha,h=(0,r.default)(d),g=(0,o.default)(d),m=(0,r.default)(f),y=(0,o.default)(f),v=6356752.314245,M=1/298.257223563,S=(0,i.default)(y-g),Hn=Math.atan((1-M)*Math.tan((0,i.default)(parseFloat(h)))),ja=Math.atan((1-M)*Math.tan((0,i.default)(parseFloat(m)))),Yr=Math.sin(Hn),Jr=Math.cos(Hn),Xr=Math.sin(ja),an=Math.cos(ja),$n=S,$a=100;do{var Si=Math.sin($n),ki=Math.cos($n);if(0===(Ee=Math.sqrt(an*Si*(an*Si)+(Jr*Xr-Yr*an*ki)*(Jr*Xr-Yr*an*ki))))return 0;P=Yr*Xr+Jr*an*ki,fe=Math.atan2(Ee,P),oe=P-2*Yr*Xr/(he=1-(ee=Jr*an*Si/Ee)*ee),isNaN(oe)&&(oe=0);var xi=M/16*he*(4+M*(4-3*he));Ha=$n,$n=S+(1-xi)*M*ee*(fe+xi*Ee*(oe+xi*P*(2*oe*oe-1)))}while(Math.abs($n-Ha)>1e-12&&--$a>0);if(0===$a)return NaN;var Tt=he*(s.earthRadius*s.earthRadius-v*v)/(v*v),Ri=Tt/1024*(256+Tt*(Tt*(74-47*Tt)-128));return Math.round(v*(1+Tt/16384*(4096+Tt*(Tt*(320-175*Tt)-768)))*(fe-Ri*Ee*(oe+Ri/4*(P*(2*oe*oe-1)-Ri/6*oe*(4*Ee*Ee-3)*(4*oe*oe-3))))/p)*p}},2787:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(7504));t.default=function(l,u,c,d){return(0,r.default)(l,u,c)<d}},2845:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return/^(NNE|NE|NNW|N)$/.test(i)?"N":/^(ENE|E|ESE|SE)$/.test(i)?"E":/^(SSE|S|SSW|SW)$/.test(i)?"S":/^(WSW|W|WNW|NW)$/.test(i)?"W":void 0}},3026:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){var s=i.toString().trim();return!isNaN(parseFloat(s))&&parseFloat(s)===Number(s)}},3100:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636),o=s(n(8744)),i=s(n(5101));function s(u){return u&&u.__esModule?u:{default:u}}t.default=function(c,d){var f=(0,o.default)(c,r.longitudeKeys);if(!(typeof f>"u"||null===f)){var p=c[f];return!0===d?p:(0,i.default)(p)}}},3536:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(7029)),o=i(n(3100));function i(l){return l&&l.__esModule?l:{default:l}}t.default=function(u,c){for(var d=!1,f=c.length,p=-1,h=f-1;++p<f;h=p)((0,o.default)(c[p])<=(0,o.default)(u)&&(0,o.default)(u)<(0,o.default)(c[h])||(0,o.default)(c[h])<=(0,o.default)(u)&&(0,o.default)(u)<(0,o.default)(c[p]))&&(0,r.default)(u)<((0,r.default)(c[h])-(0,r.default)(c[p]))*((0,o.default)(u)-(0,o.default)(c[p]))/((0,o.default)(c[h])-(0,o.default)(c[p]))+(0,r.default)(c[p])&&(d=!d);return d}},4194:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u,c){return(0,r.default)(u,l)+(0,r.default)(l,c)===(0,r.default)(u,c)}},4695:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636),o=function i(d){return d&&d.__esModule?d:{default:d}}(n(8744));function s(d,f){var p=Object.keys(d);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(d);f&&(h=h.filter(function(g){return Object.getOwnPropertyDescriptor(d,g).enumerable})),p.push.apply(p,h)}return p}function l(d,f,p){return f in d?Object.defineProperty(d,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):d[f]=p,d}t.default=function(f){var p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{longitude:r.longitudeKeys,latitude:r.latitudeKeys,altitude:r.altitudeKeys},h=(0,o.default)(f,p.longitude),g=(0,o.default)(f,p.latitude),m=(0,o.default)(f,p.altitude);return function a(d){for(var f=1;f<arguments.length;f++){var p=null!=arguments[f]?arguments[f]:{};f%2?s(Object(p),!0).forEach(function(h){l(d,h,p[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(p)):s(Object(p)).forEach(function(h){Object.defineProperty(d,h,Object.getOwnPropertyDescriptor(p,h))})}return d}({latitude:g,longitude:h},m?{altitude:m}:{})}},4902:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){return r.sexagesimalPattern.test(a.toString().trim())}},5101:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(3026)),o=l(n(4902)),i=l(n(1532)),s=l(n(7637)),a=l(n(4695));function l(h){return h&&h.__esModule?h:{default:h}}function u(h,g){var m=Object.keys(h);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(h);g&&(y=y.filter(function(v){return Object.getOwnPropertyDescriptor(h,v).enumerable})),m.push.apply(m,y)}return m}function c(h){for(var g=1;g<arguments.length;g++){var m=null!=arguments[g]?arguments[g]:{};g%2?u(Object(m),!0).forEach(function(y){d(h,y,m[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(m)):u(Object(m)).forEach(function(y){Object.defineProperty(h,y,Object.getOwnPropertyDescriptor(m,y))})}return h}function d(h,g,m){return g in h?Object.defineProperty(h,g,{value:m,enumerable:!0,configurable:!0,writable:!0}):h[g]=m,h}t.default=function h(g){if((0,r.default)(g))return Number(g);if((0,o.default)(g))return(0,i.default)(g);if((0,s.default)(g)){var m=(0,a.default)(g);return Array.isArray(g)?g.map(function(y,v){return[0,1].includes(v)?h(y):y}):c(c(c({},g),m.latitude&&d({},m.latitude,h(g[m.latitude]))),m.longitude&&d({},m.longitude,h(g[m.longitude])))}return Array.isArray(g)?g.map(function(y){return(0,s.default)(y)?h(y):y}):g}},5378:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(l){return l&&l.__esModule?l:{default:l}}(n(8674));function i(l){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(c){return typeof c}:function(c){return c&&"function"==typeof Symbol&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c})(l)}t.default=function(u){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.default;return u.reduce(function(d,f){return"object"===i(d)&&null!==d.last&&(d.distance+=c(f,d.last)),d.last=f,d},{last:null,distance:0}).distance}},5524:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=a(n(942));function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d){if(!1===Array.isArray(d)||0===d.length)return!1;var f=d.length,p=d.reduce(function(y,v){var M=(0,i.default)((0,r.default)(v)),S=(0,i.default)((0,o.default)(v));return{X:y.X+Math.cos(M)*Math.cos(S),Y:y.Y+Math.cos(M)*Math.sin(S),Z:y.Z+Math.sin(M)}},{X:0,Y:0,Z:0}),h=p.X/f,g=p.Y/f,m=p.Z/f;return{longitude:(0,s.default)(Math.atan2(g,h)),latitude:(0,s.default)(Math.atan2(m,Math.sqrt(h*h+g*g)))}}},5551:(e,t)=>{function n(u,c){return u*u+c*c}function r(u,c){return n(u.longitude-c.longitude,u.latitude-c.latitude)}function o(u,c,d){var f=c.longitude,p=c.latitude,h=d.longitude-f,g=d.latitude-p;if(0!==h||0!==g){var m=((u.longitude-f)*h+(u.latitude-p)*g)/n(h,g);m>1?(f=d.longitude,p=d.latitude):m>0&&(f+=h*m,p+=g*m)}return n(u.longitude-f,u.latitude-p)}function s(u,c,d,f,p){for(var g,h=f,m=c+1;m<d;m++){var y=o(u[m],u[c],u[d]);y>h&&(g=m,h=y)}h>f&&(g-c>1&&s(u,c,g,f,p),p.push(u[g]),d-g>1&&s(u,g,d,f,p))}function a(u,c){var d=u.length-1,f=[u[0]];return s(u,0,d,c,f),f.push(u[d]),f}t.__esModule=!0,t.SimplifyLL=function l(u,c,d){if(void 0===c&&(c=1),void 0===d&&(d=!1),u.length<=2)return u;var f=c*c;return a(u=d?u:function i(u,c){for(var f,d=u[0],p=[d],h=1,g=u.length;h<g;h++)r(f=u[h],d)>c&&(p.push(f),d=f);return d!==f&&p.push(f),p}(u,f),f)}},5705:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return i*Math.PI/180}},6380:(e,t,n)=>{var o=n(6729);t.p$=o.SimplifyAP,n(5551),n(6413)},6413:(e,t)=>{function n(u,c){return u*u+c*c}function r(u,c){return n(u.x-c.x,u.y-c.y)}function o(u,c,d){var f=c.x,p=c.y,h=d.x-f,g=d.y-p;if(0!==h||0!==g){var m=((u.x-f)*h+(u.y-p)*g)/n(h,g);m>1?(f=d.x,p=d.y):m>0&&(f+=h*m,p+=g*m)}return n(u.x-f,u.y-p)}function s(u,c,d,f,p){for(var g,h=f,m=c+1;m<d;m++){var y=o(u[m],u[c],u[d]);y>h&&(g=m,h=y)}h>f&&(g-c>1&&s(u,c,g,f,p),p.push(u[g]),d-g>1&&s(u,g,d,f,p))}function a(u,c){var d=u.length-1,f=[u[0]];return s(u,0,d,c,f),f.push(u[d]),f}t.__esModule=!0,t.Simplify=function l(u,c,d){if(void 0===c&&(c=1),void 0===d&&(d=!1),u.length<=2)return u;var f=c*c;return a(u=d?u:function i(u,c){for(var f,d=u[0],p=[d],h=1,g=u.length;h<g;h++)r(f=u[h],d)>c&&(p.push(f),d=f);return d!==f&&p.push(f),p}(u,f),f)}},6522:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return i>1?1:i<-1?-1:i}},6563:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(3026)),o=a(n(4902)),i=a(n(1532)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function c(d){return(0,r.default)(d)?!(parseFloat(d)>s.MAXLAT||d<s.MINLAT):!!(0,o.default)(d)&&c((0,i.default)(d))}},6729:(e,t)=>{function n(u,c){return u*u+c*c}function r(u,c){return n(u[0]-c[0],u[1]-c[1])}function o(u,c,d){var f=c[0],p=c[1],h=d[0]-f,g=d[1]-p;if(0!==h||0!==g){var m=((u[0]-f)*h+(u[1]-p)*g)/n(h,g);m>1?(f=d[0],p=d[1]):m>0&&(f+=h*m,p+=g*m)}return n(u[0]-f,u[1]-p)}function s(u,c,d,f,p){for(var g,h=f,m=c+1;m<d;m++){var y=o(u[m],u[c],u[d]);y>h&&(g=m,h=y)}h>f&&(g-c>1&&s(u,c,g,f,p),p.push(u[g]),d-g>1&&s(u,g,d,f,p))}function a(u,c){var d=u.length-1,f=[u[0]];return s(u,0,d,c,f),f.push(u[d]),f}t.__esModule=!0,t.SimplifyAP=function l(u,c,d){if(void 0===c&&(c=1),void 0===d&&(d=!1),u.length<=2)return u;var f=c*c;return a(u=d?u:function i(u,c){for(var f,d=u[0],p=[d],h=1,g=u.length;h<g;h++)r(f=u[h],d)>c&&(p.push(f),d=f);return d!==f&&p.push(f),p}(u,f),f)}},7029:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636),o=s(n(8744)),i=s(n(5101));function s(u){return u&&u.__esModule?u:{default:u}}t.default=function(c,d){var f=(0,o.default)(c,r.latitudeKeys);if(!(typeof f>"u"||null===f)){var p=c[f];return!0===d?p:(0,i.default)(p)}}},7088:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(9144));t.default=function(l){var u=(0,r.default)(l),d=u.minLng+(u.maxLng-u.minLng)/2;return{latitude:parseFloat((u.minLat+(u.maxLat-u.minLat)/2).toFixed(6)),longitude:parseFloat(d.toFixed(6))}}},7504:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(8674)),o=i(n(6522));function i(l){return l&&l.__esModule?l:{default:l}}t.default=function(u,c,d){var f=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,p=(0,r.default)(c,u,f),h=(0,r.default)(u,d,f),g=(0,r.default)(c,d,f),m=Math.acos((0,o.default)((p*p+g*g-h*h)/(2*p*g))),y=Math.acos((0,o.default)((h*h+g*g-p*p)/(2*h*g)));return m>Math.PI/2?p:y>Math.PI/2?h:Math.sin(m)*p}},7636:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.areaConversion=t.timeConversion=t.distanceConversion=t.altitudeKeys=t.latitudeKeys=t.longitudeKeys=t.MAXLON=t.MINLON=t.MAXLAT=t.MINLAT=t.earthRadius=t.sexagesimalPattern=void 0,t.sexagesimalPattern=/^([0-9]{1,3})\xb0\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['\u2032]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["\u2033]\s*)?([NEOSW]?)$/,t.earthRadius=6378137,t.MINLAT=-90,t.MAXLAT=90,t.MINLON=-180,t.MAXLON=180,t.longitudeKeys=["lng","lon","longitude",0],t.latitudeKeys=["lat","latitude",1],t.altitudeKeys=["alt","altitude","elevation","elev",2],t.distanceConversion={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144},t.timeConversion={m:60,h:3600,d:86400};var p={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};t.areaConversion=p,p.sqm=p.m2,p.sqkm=p.km2,p.sqft=p.ft2,p.sqyd=p.yd2,p.sqin=p.in2},7637:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(4695)),o=s(n(6563)),i=s(n(266));function s(u){return u&&u.__esModule?u:{default:u}}t.default=function(c){var d=(0,r.default)(c),f=d.latitude,p=d.longitude;if(Array.isArray(c)&&c.length>=2)return(0,i.default)(c[0])&&(0,o.default)(c[1]);if(typeof f>"u"||typeof p>"u")return!1;var h=c[p],g=c[f];return!(typeof g>"u"||typeof h>"u"||!1===(0,o.default)(g)||!1===(0,i.default)(h))}},8674:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(7029)),o=l(n(3100)),i=l(n(5705)),s=l(n(6522)),a=n(7636);function l(d){return d&&d.__esModule?d:{default:d}}t.default=function(f,p){var h=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;h=typeof h<"u"&&!isNaN(h)?h:1;var g=(0,r.default)(f),m=(0,o.default)(f),y=(0,r.default)(p),v=(0,o.default)(p),M=Math.acos((0,s.default)(Math.sin((0,i.default)(y))*Math.sin((0,i.default)(g))+Math.cos((0,i.default)(y))*Math.cos((0,i.default)(g))*Math.cos((0,i.default)(m)-(0,i.default)(v))))*a.earthRadius;return Math.round(M/h)*h}},8744:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i,s){return s.reduce(function(a,l){if(typeof i>"u"||null===i)throw new Error("'".concat(i,"' is no valid coordinate."));return Object.prototype.hasOwnProperty.call(i,l)&&typeof l<"u"&&typeof a>"u"?(a=l,l):a},void 0)}},8948:(e,t)=>{function n(d,f){return function a(d){if(Array.isArray(d))return d}(d)||function s(d,f){if(!(typeof Symbol>"u")&&Symbol.iterator in Object(d)){var p=[],h=!0,g=!1,m=void 0;try{for(var v,y=d[Symbol.iterator]();!(h=(v=y.next()).done)&&(p.push(v.value),!f||p.length!==f);h=!0);}catch(M){g=!0,m=M}finally{try{!h&&null!=y.return&&y.return()}finally{if(g)throw m}}return p}}(d,f)||function o(d,f){if(d){if("string"==typeof d)return i(d,f);var p=Object.prototype.toString.call(d).slice(8,-1);if("Object"===p&&d.constructor&&(p=d.constructor.name),"Map"===p||"Set"===p)return Array.from(d);if("Arguments"===p||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p))return i(d,f)}}(d,f)||function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(d,f){(null==f||f>d.length)&&(f=d.length);for(var p=0,h=new Array(f);p<f;p++)h[p]=d[p];return h}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(f){var h=n(f.toString().split("."),2),m=h[1],y=Math.abs(Number(h[0])),v=60*+("0."+(m||0)),M=v.toString().split("."),S=Math.floor(v),P=function(f){var h=Math.pow(10,arguments.length>1&&void 0!==arguments[1]?arguments[1]:4);return Math.round(f*h)/h}(60*+("0."+(M[1]||0))).toString(),ee=n(P.split("."),2),he=ee[0],oe=ee[1],Ee=void 0===oe?"0":oe;return y+"\xb0 "+S.toString().padStart(2,"0")+"' "+he.padStart(2,"0")+"."+Ee.padEnd(1,"0")+'"'}},8950:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:r.default)(l,u)/(Number(u.time)-Number(l.time))*1e3}},9144:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(7029)),o=i(n(3100));function i(l){return l&&l.__esModule?l:{default:l}}t.default=function(u){if(!1===Array.isArray(u)||0===u.length)throw new Error("No points were given.");return u.reduce(function(c,d){var f=(0,r.default)(d),p=(0,o.default)(d);return{maxLat:Math.max(f,c.maxLat),minLat:Math.min(f,c.minLat),maxLng:Math.max(p,c.maxLng),minLng:Math.min(p,c.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})}},9952:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(939));t.default=function(l,u){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r.default,d="function"==typeof c?c(l,u):(0,r.default)(l,u);if(isNaN(d))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(d/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"}}}},Gd={};function Ua(e){var t=Gd[e];if(void 0!==t)return t.exports;var n=Gd[e]={exports:{}};return nb[e](n,n.exports,Ua),n.exports}function Wa(e){return"function"==typeof e}let qa=!1;const ot={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else qa&&console.log("RxJS: Back to a better error behavior. Thank you. <3");qa=e},get useDeprecatedSynchronousErrorHandling(){return qa}};function eo(e){setTimeout(()=>{throw e},0)}const Oi={closed:!0,next(e){},error(e){if(ot.useDeprecatedSynchronousErrorHandling)throw e;eo(e)},complete(){}},rb=Array.isArray||(e=>e&&"number"==typeof e.length),Pi=(()=>{function e(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((n,r)=>`${r+1}) ${n.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return e.prototype=Object.create(Error.prototype),e})();class we{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:r,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof we)n.remove(this);else if(null!==n)for(let s=0;s<n.length;++s)n[s].remove(this);if(Wa(o)){r&&(this._unsubscribe=void 0);try{o.call(this)}catch(s){t=s instanceof Pi?Zd(s.errors):[s]}}if(rb(i)){let s=-1,a=i.length;for(;++s<a;){const l=i[s];if(null!==(e=l)&&"object"==typeof e)try{l.unsubscribe()}catch(u){t=t||[],u instanceof Pi?t=t.concat(Zd(u.errors)):t.push(u)}}}var e;if(t)throw new Pi(t)}add(t){let n=t;if(!t)return we.EMPTY;switch(typeof t){case"function":n=new we(t);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof we)){const i=n;n=new we,n._subscriptions=[i]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof we){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(t){const n=this._subscriptions;if(n){const r=n.indexOf(t);-1!==r&&n.splice(r,1)}}}var e;function Zd(e){return e.reduce((t,n)=>t.concat(n instanceof Pi?n.errors:n),[])}we.EMPTY=((e=new we).closed=!0,e);const Ai="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class ht extends we{constructor(t,n,r){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=Oi;break;case 1:if(!t){this.destination=Oi;break}if("object"==typeof t){t instanceof ht?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new Kd(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new Kd(this,t,n,r)}}[Ai](){return this}static create(t,n,r){const o=new ht(t,n,r);return o.syncErrorThrowable=!1,o}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class Kd extends ht{constructor(t,n,r,o){super(),this._parentSubscriber=t;let i,s=this;Wa(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==Oi&&(s=Object.create(n),Wa(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=i,this._error=r,this._complete=o}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:n}=this;ot.useDeprecatedSynchronousErrorHandling&&n.syncErrorThrowable?this.__tryOrSetError(n,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:n}=this,{useDeprecatedSynchronousErrorHandling:r}=ot;if(this._error)r&&n.syncErrorThrowable?(this.__tryOrSetError(n,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(n.syncErrorThrowable)r?(n.syncErrorValue=t,n.syncErrorThrown=!0):eo(t),this.unsubscribe();else{if(this.unsubscribe(),r)throw t;eo(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const n=()=>this._complete.call(this._context);ot.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,n){try{t.call(this._context,n)}catch(r){if(this.unsubscribe(),ot.useDeprecatedSynchronousErrorHandling)throw r;eo(r)}}__tryOrSetError(t,n,r){if(!ot.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{n.call(this._context,r)}catch(o){return ot.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=o,t.syncErrorThrown=!0,!0):(eo(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const ab="function"==typeof Symbol&&Symbol.observable||"@@observable";function lb(e){return e}let Yd=(()=>{class e{constructor(n){this._isScalar=!1,n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const{operator:i}=this,s=function sb(e,t,n){if(e){if(e instanceof ht)return e;if(e[Ai])return e[Ai]()}return e||t||n?new ht(e,t,n):new ht(Oi)}(n,r,o);if(s.add(i?i.call(s,this.source):this.source||ot.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),ot.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(n){try{return this._subscribe(n)}catch(r){ot.useDeprecatedSynchronousErrorHandling&&(n.syncErrorThrown=!0,n.syncErrorValue=r),function ib(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof ht?n:null}return!0}(n)?n.error(r):console.warn(r)}}forEach(n,r){return new(r=Jd(r))((o,i)=>{let s;s=this.subscribe(a=>{try{n(a)}catch(l){i(l),s&&s.unsubscribe()}},i,o)})}_subscribe(n){const{source:r}=this;return r&&r.subscribe(n)}[ab](){return this}pipe(...n){return 0===n.length?this:function Qd(e){return 0===e.length?lb:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}(n)(this)}toPromise(n){return new(n=Jd(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function Jd(e){if(e||(e=ot.Promise||Promise),!e)throw new Error("no Promise impl found");return e}const Bn=(()=>{function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e})();class ub extends we{constructor(t,n){super(),this.subject=t,this.subscriber=n,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,n=t.observers;if(this.subject=null,!n||0===n.length||t.isStopped||t.closed)return;const r=n.indexOf(this.subscriber);-1!==r&&n.splice(r,1)}}class cb extends ht{constructor(t){super(t),this.destination=t}}let ze=(()=>{class e extends Yd{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[Ai](){return new cb(this)}lift(n){const r=new Xd(this,this);return r.operator=n,r}next(n){if(this.closed)throw new Bn;if(!this.isStopped){const{observers:r}=this,o=r.length,i=r.slice();for(let s=0;s<o;s++)i[s].next(n)}}error(n){if(this.closed)throw new Bn;this.hasError=!0,this.thrownError=n,this.isStopped=!0;const{observers:r}=this,o=r.length,i=r.slice();for(let s=0;s<o;s++)i[s].error(n);this.observers.length=0}complete(){if(this.closed)throw new Bn;this.isStopped=!0;const{observers:n}=this,r=n.length,o=n.slice();for(let i=0;i<r;i++)o[i].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(n){if(this.closed)throw new Bn;return super._trySubscribe(n)}_subscribe(n){if(this.closed)throw new Bn;return this.hasError?(n.error(this.thrownError),we.EMPTY):this.isStopped?(n.complete(),we.EMPTY):(this.observers.push(n),new ub(this,n))}asObservable(){const n=new Yd;return n.source=this,n}}return e.create=(t,n)=>new Xd(t,n),e})();class Xd extends ze{constructor(t,n){super(),this.destination=t,this.source=n}next(t){const{destination:n}=this;n&&n.next&&n.next(t)}error(t){const{destination:n}=this;n&&n.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:n}=this;return n?this.source.subscribe(t):we.EMPTY}}let ge=null;function V(e){const t=ge;return ge=e,t}const Wn={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function no(e){if((!io(e)||e.dirty)&&(e.dirty||1!==e.lastCleanEpoch)){if(!e.producerMustRecompute(e)&&!ro(e))return void Fi(e);e.producerRecomputeValue(e),Fi(e)}}function Fi(e){e.dirty=!1,e.lastCleanEpoch=1}function ro(e){ji(e);for(let t=0;t<e.producerNode.length;t++){const n=e.producerNode[t],r=e.producerLastReadVersion[t];if(r!==n.version||(no(n),r!==n.version))return!0}return!1}function Vi(e,t){if(function sf(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}(e),1===e.liveConsumerNode.length&&function af(e){return void 0!==e.producerNode}(e))for(let r=0;r<e.producerNode.length;r++)Vi(e.producerNode[r],e.producerIndexOfThis[r]);const n=e.liveConsumerNode.length-1;if(e.liveConsumerNode[t]=e.liveConsumerNode[n],e.liveConsumerIndexOfThis[t]=e.liveConsumerIndexOfThis[n],e.liveConsumerNode.length--,e.liveConsumerIndexOfThis.length--,t<e.liveConsumerNode.length){const r=e.liveConsumerIndexOfThis[t],o=e.liveConsumerNode[t];ji(o),o.producerIndexOfThis[r]=t}}function io(e){return e.consumerIsAlwaysLive||(e?.liveConsumerNode?.length??0)>0}function ji(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}Error;class b extends Error{code;constructor(t,n){super(function Wt(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,n)),this.code=t}}function K(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}globalThis;class N{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=K({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}var B=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(B||{});const O={lFrame:fp(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let Rl=!1;function j(){let e=function op(){return O.lFrame.currentTNode}();for(;null!==e&&64===e.type;)e=e.parent;return e}function ds(e){const t=Rl;return Rl=e,t}function fp(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}new N("").__NG_ELEMENT_ID__=e=>{const t=j();if(null===t)throw new b(204,!1);if(2&t.type)return t.value;if(e&B.Optional)return null;throw new b(204,!1)},Symbol;class tP{constructor(){this.limitUI04=this.maxFromBits(4),this.limitUI06=this.maxFromBits(6),this.limitUI08=this.maxFromBits(8),this.limitUI12=this.maxFromBits(12),this.limitUI14=this.maxFromBits(14),this.limitUI16=this.maxFromBits(16),this.limitUI32=this.maxFromBits(32),this.limitUI40=this.maxFromBits(40),this.limitUI48=this.maxFromBits(48),this.create()}toString(){return this.hex}toURN(){return"urn:uuid:"+this.hex}toSignalK(){return`urn:mrn:signalk:uuid:${this.hex}`}toBytes(){let t=this.hex.split("-"),n=[],r=0;for(let o=0;o<t.length;o++)for(let i=0;i<t[o].length;i+=2)n[r++]=parseInt(t[o].substr(i,2),16);return n}maxFromBits(t){return Math.pow(2,t)}getRandomInt(t,n){return Math.floor(Math.random()*(n-t+1))+t}randomUI04(){return this.getRandomInt(0,this.limitUI04-1)}randomUI06(){return this.getRandomInt(0,this.limitUI06-1)}randomUI08(){return this.getRandomInt(0,this.limitUI08-1)}randomUI12(){return this.getRandomInt(0,this.limitUI12-1)}randomUI14(){return this.getRandomInt(0,this.limitUI14-1)}randomUI16(){return this.getRandomInt(0,this.limitUI16-1)}randomUI32(){return this.getRandomInt(0,this.limitUI32-1)}randomUI40(){return(0|Math.random()*(1<<30))+(0|1024*Math.random())*(1<<30)}randomUI48(){return(0|Math.random()*(1<<30))+(0|Math.random()*(1<<18))*(1<<30)}create(){this.fromParts(this.randomUI32(),this.randomUI16(),16384|this.randomUI12(),128|this.randomUI06(),this.randomUI08(),this.randomUI48())}paddedString(t,n,r=null){r=r||"0";let o=n-(t=String(t)).length;for(;o>0;o>>>=1,r+=r)1&o&&(t=r+t);return t}fromParts(t,n,r,o,i,s){return this.version=r>>12&15,this.hex=this.paddedString(t.toString(16),8)+"-"+this.paddedString(n.toString(16),4)+"-"+this.paddedString(r.toString(16),4)+"-"+this.paddedString(o.toString(16),2)+this.paddedString(i.toString(16),2)+"-"+this.paddedString(s.toString(16),12),this}}class Aa{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:(new tP).toString()}}}let rP=(()=>{class e{constructor(){this._filter="",this._wsTimeout=2e4,this._token="",this._playbackMode=!1,this.version=1,this.endpoint="",this.selfId="",this._source=null,this._connect=new ze,this.onConnect=this._connect.asObservable(),this._close=new ze,this.onClose=this._close.asObservable(),this._error=new ze,this.onError=this._error.asObservable(),this._message=new ze,this.onMessage=this._message.asObservable()}set source(n){this._source||(this._source={}),this._source.label=n}set authToken(n){this._token=n}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(n){this._wsTimeout=n<3e3?3e3:n>6e4?6e4:n}get isOpen(){return!(!this.ws||1==this.ws.readyState||3==this.ws.readyState)}get filter(){return this._filter}set filter(n){this._filter=n&&-1!=n.indexOf("self")?this.selfId?this.selfId:"":n}get playbackMode(){return this._playbackMode}close(){this.ws&&(this.ws.close(),this.ws=null)}open(n,r,o){if(!(n=n||this.endpoint))return;let i=-1==n.indexOf("?")?"?":"&";r&&(n+=`${i}subscribe=${r}`),(this._token||o)&&(n+=`${r?"&":"?"}token=${this._token||o}`),this.close(),this.ws=new WebSocket(n),setTimeout(()=>{this.ws&&1!=this.ws.readyState&&3!=this.ws.readyState&&(console.warn(`Connection watchdog expired (${this._wsTimeout/1e3} sec): ${this.ws.readyState}... aborting connection...`),this.close())},this._wsTimeout),this.ws.onopen=s=>{this._connect.next(s)},this.ws.onclose=s=>{this._close.next(s)},this.ws.onerror=s=>{this._error.next(s)},this.ws.onmessage=s=>{this.parseOnMessage(s)}}parseOnMessage(n){let r;if("string"==typeof n.data)try{r=JSON.parse(n.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(n){if("object"!=typeof n)return"";let r=Aa.request();return typeof n.login>"u"&&this._token&&(r.token=this._token),Object.keys(n).forEach(i=>{r[i]=n[i]}),this.send(r),r.requestId}put(n,r,o){return this.sendRequest({context:"self"==n?"vessels.self":n,put:{path:r,value:o}})}login(n,r){return this.sendRequest({login:{username:n,password:r}})}send(n){this.ws&&("object"==typeof n&&(n=JSON.stringify(n)),this.ws.send(n))}sendUpdate(n="self",r,o){let i=Aa.updates();this._token&&(i.token=this._token),i.context="self"==n?"vessels.self":n,this._token&&(i.token=this._token);let s=[];"string"==typeof r&&s.push({path:r,value:o}),"object"==typeof r&&Array.isArray(r)&&(s=r);let a={timestamp:(new Date).toISOString(),values:s};this._source&&(a.source=this._source),i.updates.push(a),this.send(i)}subscribe(n="*",r="*",o){let i=Aa.subscribe();if(this._token&&(i.token=this._token),i.context="self"==n?"vessels.self":n,this._token&&(i.token=this._token),"object"==typeof r&&Array.isArray(r)&&(i.subscribe=r),"string"==typeof r){let s={};s.path=r,o&&"object"==typeof o&&(o.period&&(s.period=o.period),o.minPeriod&&(s.minPeriod=o.period),o.format&&("delta"==o.format||"full"==o.format)&&(s.format=o.format),o.policy&&("instant"==o.policy||"ideal"==o.policy||"fixed"==o.policy)&&(s.policy=o.policy)),i.subscribe.push(s)}this.send(i)}unsubscribe(n="*",r="*"){let o=Aa.unsubscribe();this._token&&(o.token=this._token),o.context="self"==n?"vessels.self":n,this._token&&(o.token=this._token),"object"==typeof r&&Array.isArray(r)&&(o.unsubscribe=r),"string"==typeof r&&o.unsubscribe.push({path:r}),this.send(o)}raiseAlarm(n="*",r,o){let i;i="string"==typeof r&&-1==r.indexOf("notifications.")?`notifications.${r}`:r,this.put(n,i,o.value)}clearAlarm(n="*",r){let o=-1==r.indexOf("notifications.")?`notifications.${r}`:r;this.put(n,o,null)}isSelf(n){return n.context==this.selfId}isDelta(n){return typeof n.context<"u"}isHello(n){return typeof n.version<"u"&&typeof n.self<"u"}isResponse(n){return typeof n.requestId<"u"}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();class iP{constructor(t,n,r,o){this._method=[],this._message="",this._message=typeof t<"u"?t:"",this._state=typeof n<"u"?n:jD.alarm,r&&this._method.push(Fd.visual),o&&this._method.push(Fd.sound)}get value(){return{message:this._message,state:this._state,method:this._method}}}var jD=function(e){return e.normal="normal",e.alert="alert",e.warn="warn",e.alarm="alarm",e.emergency="emergency",e}(jD||{}),Fd=function(e){return e.visual="visual",e.sound="sound",e}(Fd||{});class aP{constructor(){this.obsList=[],this.stream=new rP,this._connect=new ze,this.onConnect=this._connect.asObservable(),this._close=new ze,this.onClose=this._close.asObservable(),this._error=new ze,this.onError=this._error.asObservable(),this._message=new ze,this.onMessage=this._message.asObservable()}get endpoint(){return this.stream.endpoint}set endpoint(t){this.stream.endpoint=t}get selfId(){return this.stream.selfId}set selfId(t){this.stream.selfId=t}get _source(){return this.stream._source}set _source(t){this.stream._source=t}set source(t){this.stream.source=t}set authToken(t){this.stream.authToken=t}get connectionTimeout(){return this.stream.connectionTimeout}set connectionTimeout(t){this.stream.connectionTimeout=t}get isOpen(){return this.stream.isOpen}get filter(){return this.stream.filter}set filter(t){this.stream.filter=t}get playbackMode(){return this.stream.playbackMode}open(t,n="none",r){this.obsList.push(this.stream.onConnect.subscribe(o=>this._connect.next(o))),this.obsList.push(this.stream.onClose.subscribe(o=>this._close.next(o))),this.obsList.push(this.stream.onError.subscribe(o=>this._error.next(o))),this.obsList.push(this.stream.onMessage.subscribe(o=>this._message.next(o))),this.stream.open(t,n,r)}close(){this.stream.close(),this.obsList.forEach(t=>t.unsubscribe()),this.obsList=[]}sendRequest(t){return this.stream.sendRequest(t)}put(t,n,r){return this.stream.put(t,n,r)}login(t,n){return this.stream.login(t,n)}send(t){this.stream.send(t)}sendUpdate(t="self",n,r){this.stream.sendUpdate(t,n,r)}subscribe(t="*",n="*",r){this.stream.subscribe(t,n,r)}unsubscribe(t="*",n="*"){this.stream.unsubscribe(t,n)}raiseAlarm(t="*",n,r){this.stream.raiseAlarm(t,n,r)}clearAlarm(t="*",n){this.stream.clearAlarm(t,n)}isSelf(t){return this.stream.isSelf(t)}isDelta(t){return this.stream.isDelta(t)}isHello(t){return this.stream.isHello(t)}isResponse(t){return this.stream.isResponse(t)}}class La{id;name;mmsi;position=[0,0];state;type={id:-1,name:""};virtual;properties={};lastUpdated=new Date;callsignVhf;callsignHf;orientation=0}class HD extends La{heading;headingTrue=null;headingMagnetic=null;cog;cogTrue=null;cogMagnetic=null;sog;registrations={};type={id:-1,name:""};wind={direction:null,mwd:null,twd:null,tws:null,speedTrue:null,sog:null,awa:null,aws:null};buddy=!1;distanceToSelf;mode="day";anchor={maxRadius:null,radius:null,position:null};resourceUpdates=[];autopilot={};track=[];courseApi={arrivalCircle:0,activeRoute:{},nextPoint:{},previousPoint:{}};performance={beatAngle:null,gybeAngle:null};racing;vectors={cog:[]}}class $D extends La{constructor(){super()}}class lP extends La{constructor(){super()}}class uP extends La{sog=0;track=[];constructor(){super()}}class cP extends $D{twd;tws;temperature;constructor(){super()}}class Vd{static celciusToKelvin(t=0){return t+273.15}static kelvinToCelcius(t=0){return t-273.15}static kelvinToFarenheit(t=0){return 1.8*t-459.67}static degreesToRadians(t=0){return t*Math.PI/180}static radiansToDegrees(t=0){return 180*t/Math.PI}static angleToDirection(t,n){const r=2*Math.PI;if(n||(n=0),t||(t=0),isNaN(n)||isNaN(t))return null;const o=n+t;return o>r?o-r:o<0?r+o:o}static directionToAngle(t,n){const r=2*Math.PI;if(n||(n=0),t||(t=0),isNaN(n)||isNaN(t))return null;const o=n-t;let i;if(o>0)i=o>Math.PI?r-o:0-o;else if(o<0){const s=Math.abs(o);i=s>Math.PI?s-r:s}else i=o;return i}static knotsToKm(t){return 1.852*t}static nauticalMilesToKm(t){return 1.852*t}static knotsToMSec(t){return.51444325460445*t}static kmToKnots(t){return.539957*t}static kmToNauticalMiles(t){return.539957*t}static kmToMiles(t){return.621371*t}static metersToFeet(t){return 3.28084*t}static msecToKnots(t){return 1.94384*t}static msecToKmh(t){return 3.6*t}static msecToMph(t){return 2.23694*t}static nauticalMilesToMiles(t){return 1.15078*t}static milesToKm(t){return 1.60934*t}static milesToNauticalMiles(t){return.868976*t}static rpmToHertz(t){return t/60}}var Fn=Ua(2541);class Ct{static destCoordinate(t,n,r){const o=(0,Fn.computeDestinationPoint)(t,r,Vd.radiansToDegrees(n));return[o.longitude,o.latitude]}static distanceTo(t,n){return(0,Fn.getDistance)(t,n)}static routeLength(t){return(0,Fn.getPathLength)(t)}static routeLegs(t,n){if(t.length<2)return[];const r=[];r.push(n?{bearing:(0,Fn.getGreatCircleBearing)(n,t[0]),distance:Ct.distanceTo(n,t[0])}:{bearing:0,distance:0});for(let o=1;o<t.length;++o){const i={bearing:(0,Fn.getGreatCircleBearing)(t[o-1],t[o]),distance:Ct.distanceTo(t[o-1],t[o])};r.push(i)}return r}static centreOfPolygon(t){const n=(0,Fn.getCenter)(t);return[n.longitude,n.latitude]}static inDLCrossingZone(t,n=170){return Math.abs(t[0])>=n}static inBounds(t,n){return(0,Fn.isPointInPolygon)(t,[[n[0],n[1]],[n[0],n[3]],[n[2],n[3]],[n[2],n[1]],[n[0],n[1]]])}static calcMapifiedExtent(t,n){const o=111111*Math.cos(Vd.degreesToRadians(t[1])),i=[0,0,0,0];return i[1]=t[1]+(0-Math.abs(n))/111111,i[3]=t[1]+Math.abs(n)/111111,i[0]=t[0]+(0-Math.abs(n))/o,i[2]=t[0]+Math.abs(n)/o,i}static normaliseCoords(t){if(!Array.isArray(t))return[0,0];if("number"==typeof t[0]){if(t[0]>180)for(;t[0]>180;)t[0]=t[0]-360;else if(t[0]<-180)for(;t[0]<-180;)t[0]=360+t[0];return t}return Array.isArray(t[0])?(t.forEach(n=>this.normaliseCoords(n)),t):void 0}}class dP{action="notification";playback=!1;result=null;self=null;timestamp=(new Date).toISOString();sourceRef}class BD{action;playback=!1;result=null;timestamp;self=null;constructor(){this.action="update"}}class fP extends BD{constructor(){super(),this.action="trail"}}var pP=Ua(6380);const hP=["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"];let F,De,UD;const Ei=[];let $d,Fa=[],Hd=!1,Bd=!1;const pe={signalk:{},aisState:[]};let Ve,zD,WD=[0,0,0,0],qD=60,wi=0,Vn={},jn=500,Ht=!1;const $t={maxAge:54e4,staleAge:36e4,lastTick:(new Date).valueOf(),maxTrack:20};let Ud={cogLine:10,aisCogLine:10};const _i={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}};let Qr,Ci="freeboard-sk";function GD(){Ve={updated:{},stale:{},expired:{}}}function Va({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:Ht,result:t.target.readyState});break;case"onClose":KD(!1);break;case"onError":postMessage({action:"error",playback:Ht,result:"Connection error!"});break;case"onMessage":!function DP(e){De.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:Ht}),jn&&JD()):De.isDelta(e)?(Hd=!0,e.updates.forEach(t=>{t.values&&(Qr=t.$source,t.values.forEach(n=>{if(zD=t.timestamp,e.context)switch(e.context.split(".")[0]){case"shore":case"atons":pe?.signalk.atons&&function EP(e,t){let n=!1;if(-1!==e.indexOf("shore.basestations")&&(n=!0),!F.atons.has(e)){const o=new $D;o.id=e,o.position=null,n&&(o.type.id=-1,o.type.name="Basestation"),F.atons.set(e,o)}const r=F.atons.get(e);""===t.path?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.atonType<"u"&&(r.type=t.value.atonType)):"atonType"===t.path?r.type=t.value:"virtual"===t.path?r.virtual=t.value:"navigation.position"===t.path?(r.position=[t.value.longitude,t.value.latitude],r.positionReceived=!0):r.properties[t.path]=t.value}(e.context,n),Ni(e.context,F.atons,pe?.signalk.atons);break;case"sar":pe?.signalk.sar&&function wP(e,t){if(!F.sar.has(e)){const r=new lP;r.id=e,r.position=null,r.type.id=-1,r.type.name="SaR Beacon",F.sar.set(e,r)}const n=F.sar.get(e);""===t.path?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(n.callsignVhf=t.value.communication.callsignVhf??"",n.callsignHf=t.value.communication.callsignHf??"")):"communication.callsignVhf"===t.path?n.callsignVhf=t.value:"communication.callsignHf"===t.path?n.callsignHf=t.value:"navigation.position"===t.path&&t.value&&(n.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),n.positionReceived=!0)}(e.context,n),Ni(e.context,F.sar,pe?.signalk.sar);break;case"aircraft":pe?.signalk.aircraft&&function CP(e,t){if(!F.aircraft.has(e)){const r=new uP;r.id=e,r.position=null,F.aircraft.set(e,r)}const n=F.aircraft.get(e);""===t.path?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(n.callsignVhf=t.value.communication.callsignVhf??"",n.callsignHf=t.value.communication.callsignHf??"")):"communication.callsignVhf"===t.path?n.callsignVhf=t.value:"communication.callsignHf"===t.path?n.callsignHf=t.value:"navigation.position"===t.path&&t.value?(n.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),n.positionReceived=!0,Wd(n)):"navigation.courseOverGroundTrue"===t.path?n.orientation=t.value:"navigation.speedOverGround"===t.path&&(n.sog=t.value)}(e.context,n),Ni(e.context,F.aircraft,pe?.signalk.aircraft);break;case"meteo":pe?.signalk.meteo&&(function _P(e,t){if(!F.meteo.has(e)){const r=new cP;r.id=e,r.position=null,r.type.id=-1,r.type.name="Weather Station",F.meteo.set(e,r)}const n=F.meteo.get(e);if(""===t.path){if(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"){const r=e.split(":").slice(-2);n.mmsi=2===r.length?`${r[0]}:${r[1]}`:t.value.mmsi}typeof t.value.communication<"u"&&(n.callsignVhf=t.value.communication.callsignVhf??"",n.callsignHf=t.value.communication.callsignHf??"")}else"communication.callsignVhf"===t.path?n.callsignVhf=t.value:"communication.callsignHf"===t.path?n.callsignHf=t.value:"environment.outside.temperature"===t.path?n.temperature=t.value:"environment.wind.directionTrue"===t.path?n.twd=t.value:"environment.wind.averageSpeed"===t.path?n.tws=t.value:"navigation.position"===t.path&&t.value&&(n.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),n.positionReceived=!0)}(e.context,n),tb(n)),Ni(e.context,F.meteo,pe?.signalk.meteo);break;case"vessels":if(De.isSelf(e))F.self.id||(F.self.id=e.context),eb(F.self,n,!0),tb(n);else{if(pe?.signalk.vessels){const r=function bP(e){if(!F.aisTargets.has(e)){const t=new HD;t.id=e,t.position=null,F.aisTargets.set(e,t)}return F.aisTargets.get(e)}(e.context);eb(r,n)}Ni(e.context,F.aisTargets,pe?.signalk.vessels,pe?.aisState)}}}))}),YD()):De.isResponse(e)&&postMessage({action:"response",result:e})}(t)}}function ZD(e={}){e.interval&&"number"==typeof e.interval&&(jn=e.interval,XD(),JD(),qD=1/(jn/1e3)*60),Ht=!!e.playback,e.selections&&(typeof e.selections.preferredPaths<"u"&&(Vn=e.selections.preferredPaths),e.selections.aisMaxAge&&"number"==typeof e.selections.aisMaxAge&&($t.maxAge=e.selections.aisMaxAge),e.selections.aisStaleAge&&"number"==typeof e.selections.aisStaleAge&&($t.staleAge=e.selections.aisStaleAge),"number"==typeof e.selections.signalk.maxRadius&&(pe.signalk=e.selections.signalk),typeof e.selections.aisState<"u"&&Array.isArray(e.selections.aisState)&&(pe.aisState=e.selections.aisState),Ud=e.selections.vessel)}function KD(e=!1){XD(),Ei.forEach(t=>t.unsubscribe()),De&&e&&De.close(),De=null,postMessage({action:"close",result:e,playback:Ht})}function Ti(e){return new Promise((t,n)=>{fetch(`${e}`).then(r=>{r.json().then(o=>t(o)).catch(o=>n(o))}).catch(r=>{n(r)})})}function QD(){Ti($d+"/tracks"+(pe&&pe.signalk&&pe.signalk.maxRadius?`?radius=${pe.signalk.maxRadius}`:"?radius=10000")).then(t=>{Bd=!0,Object.entries(t).forEach(n=>{if(F.aisTargets.has(n[0])){const r=F.aisTargets.get(n[0]);r.track=n[1].coordinates,Wd(r)}})}).catch(()=>{Bd=!1})}function Ni(e,t,n=!0,r=[]){if(n){let o=t.get(e);o&&r.includes(o?.state)&&(Ve.expired[e]=!0,o=null),o&&pe.signalk.maxRadius?o.positionReceived&&Ct.inBounds(o.position,WD)?Ve.updated[e]=!0:(t.delete(e),Ve.expired[e]=!0):Ve.updated[e]=!0}else 0!==t.size&&(t.forEach((o,i)=>{Ve.expired[i]=!0}),t.clear())}function YD(e=!1){if(!jn||e){const t=new BD;t.playback=Ht,F.aisStatus.updated=Object.keys(Ve.updated),F.aisStatus.stale=Object.keys(Ve.stale),F.aisStatus.expired=Object.keys(Ve.expired),t.result=F,t.timestamp=Ht?zD:F.self.lastUpdated.toISOString(),postMessage(t),GD(),F.self.resourceUpdates=[],0===wi&&(function MP(){const e=(new Date).valueOf();F.aisTargets.forEach((t,n)=>{t.lastUpdated.valueOf()<e-$t.maxAge?(Ve.expired[n]=!0,F.aisTargets.delete(n)):t.lastUpdated.valueOf()<e-$t.staleAge&&(Ve.stale[n]=!0)}),F.aircraft.forEach((t,n)=>{t.lastUpdated.valueOf()<e-$t.maxAge?(Ve.expired[n]=!0,F.aircraft.delete(n)):t.lastUpdated.valueOf()<e-$t.staleAge&&(Ve.stale[n]=!0)}),F.sar.forEach((t,n)=>{t.lastUpdated.valueOf()<e-$t.maxAge?(Ve.expired[n]=!0,F.sar.delete(n)):t.lastUpdated.valueOf()<e-$t.staleAge&&(Ve.stale[n]=!0)})}(),F.self.positionReceived&&pe?.signalk.maxRadius&&(WD=Ct.calcMapifiedExtent(F.self.position,pe.signalk.maxRadius),wi++)),wi=wi>=qD?0:wi+1}}function JD(){jn&&"number"==typeof jn&&Fa.push(setInterval(()=>{Hd&&(YD(!0),Hd=!1)},jn)),Fa.push(setInterval(()=>{Bd&&QD()},6e4))}function XD(){Fa.forEach(e=>clearInterval(e)),Fa=[]}function eb(e,t,n=!1){if(e.lastUpdated=new Date,n){const o=-1!==t.path.indexOf("course")?t.path.split(".").slice(0,2).join("."):t.path;-1!==hP.indexOf(o)&&(F.paths[o]=null),t.path.includes("navigation.racing")&&(e.properties[t.path]=t.value)}else t.path.includes("navigation.distanceToSelf")&&(e.distanceToSelf=t.value);if(""===t.path)typeof t.value.name<"u"&&(e.name=t.value.name),typeof t.value.mmsi<"u"&&(e.mmsi=t.value.mmsi),typeof t.value.registrations<"u"&&(e.registrations=t.value.registrations),typeof t.value.buddy<"u"&&(e.buddy=t.value.buddy),typeof t.value.communication<"u"&&(e.callsignVhf=t.value.communication.callsignVhf??"",e.callsignHf=t.value.communication.callsignHf??"");else if("communication.callsignVhf"===t.path)e.callsignVhf=t.value;else if("communication.callsignHf"===t.path)e.callsignHf=t.value;else if("performance.beatAngle"===t.path)e.performance.beatAngle=t.value;else if("performance.gybeAngle"===t.path)e.performance.gybeAngle=t.value;else if("design.aisShipType"===t.path)e.type=t.value;else if("navigation.position"===t.path&&t.value){if(typeof t.value.latitude>"u"||typeof t.value.longitude>"u")return;e.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),e.positionReceived=!0,n||Wd(e)}else"navigation.state"===t.path?e.state=t.value:"navigation.speedOverGround"===t.path?e.sog=t.value:"environment.wind.angleApparent"===t.path?e.wind.awa=t.value:"environment.wind.speedApparent"===t.path?e.wind.aws=t.value:"environment.wind.speedTrue"===t.path?e.wind.speedTrue=t.value:"environment.wind.speedOverGround"===t.path?e.wind.sog=t.value:"environment.wind.directionTrue"===t.path?e.wind.twd=t.value:"environment.wind.directionMagnetic"===t.path?e.wind.mwd=t.value:"environment.mode"===t.path?e.mode=t.value:-1!==t.path.indexOf("navigation.course.")?-1!==t.path.indexOf("navigation.course.calcValues")?-1===t.path.indexOf("navigation.course.calcValues.previousPoint")&&(e[`course.${t.path.split(".").slice(-1)[0]}`]=t.value):-1!==t.path.indexOf("navigation.course.activeRoute")?e.courseApi.activeRoute=t.value:-1!==t.path.indexOf("navigation.course.nextPoint")?e.courseApi.nextPoint=t.value:-1!==t.path.indexOf("navigation.course.previousPoint")?e.courseApi.previousPoint=t.value:"navigation.course.arrivalCircle"===t.path&&(e.courseApi.arrivalCircle=t.value):"navigation.anchor.position"===t.path?e.anchor.position=t.value:"navigation.anchor.maxRadius"===t.path?e.anchor.maxRadius=t.value:"navigation.anchor.currentRadius"===t.path?e.anchor.radius=t.value:-1!==t.path.indexOf("resources.")?e.resourceUpdates.push(t):"steering.autopilot.state"===t.path&&Qr===Ci?e.autopilot.state=t.value:"steering.autopilot.mode"===t.path&&Qr===Ci?e.autopilot.mode=t.value:"steering.autopilot.target"===t.path&&Qr===Ci?e.autopilot.target=t.value:"steering.autopilot.engaged"===t.path&&Qr===Ci?e.autopilot.enabled=t.value:"steering.autopilot.defaultPilot"===t.path?(e.autopilot.default=t.value,Ci=t.value):"navigation.courseOverGroundTrue"===t.path?e.cogTrue=t.value:"navigation.courseOverGroundMagnetic"===t.path?e.cogMagnetic=t.value:"navigation.headingTrue"===t.path?e.headingTrue=t.value:"navigation.headingMagnetic"===t.path&&(e.headingMagnetic=t.value);typeof Vn.heading<"u"&&t.path===Vn.heading&&(e.orientation=t.value),typeof Vn.tws<"u"&&t.path===Vn.tws&&(e.wind.tws=t.value),typeof Vn.twd<"u"&&t.path===Vn.twd&&(e.wind.direction="environment.wind.angleTrueGround"===t.path||"environment.wind.angleTrueWater"===t.path?Vd.angleToDirection(t.value,e.orientation??0):t.value);const r=e.cogTrue??e.cogMagnetic??void 0;typeof r<"u"&&e.position&&(e.vectors.cog=[e.position,Ct.destCoordinate(e.position,r,(e.sog??0)*(60*(n?Ud.cogLine:Ud.aisCogLine)))])}function tb(e){if(e.path.includes("notifications.")){const t=new dP;t.playback=Ht,t.result={path:e.path,value:e.value,sourceRef:Qr},postMessage(t)}}function Wd(e){if(e.track&&0===e.track.length)e.track.push([e.position]);else{const n=e.track[e.track.length-1][e.track[e.track.length-1].length-1];n[0]!==e.position[0]&&n[1]!==e.position[1]&&e.track[e.track.length-1].push(e.position)}e.track[e.track.length-1]=e.track[e.track.length-1].slice(0-$t.maxTrack)}addEventListener("message",({data:e})=>{!function mP(e){if(e.cmd)switch(e.cmd){case"open":ZD(e.options),function yP(e){if(De)return;if(!e.url)return void postMessage({action:"error",result:"Valid options not provided!"});const t=e.url.split("/");if(t.pop(),t.push("api"),t[0]="wss:"===t[0]?"https:":"http:",$d=t.join("/"),function gP(){F={self:new HD,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},F.self.positionReceived=!1,GD()}(),De=new aP,Ei.push(De.onConnect.subscribe(n=>Va({action:"onConnect",msg:n}))),Ei.push(De.onClose.subscribe(n=>Va({action:"onClose",msg:n}))),Ei.push(De.onError.subscribe(n=>Va({action:"onError",msg:n}))),Ei.push(De.onMessage.subscribe(n=>Va({action:"onMessage",msg:n}))),De.authToken=UD,e.playback){const n=e.playbackOptions.startTime?`?startTime=${e.playbackOptions.startTime}`:null;let r=e.playbackOptions.playbackRate?`playbackRate=${e.playbackOptions.playbackRate}`:null;r=r?n?"&"+r:"?"+r:null,De.open(`${e.url}${n||""}${r||""}`,e.playbackOptions.subscribe,e.token)}else De.open(e.url,e.subscribe,e.token),QD()}(e.options);break;case"close":KD(!0);break;case"subscribe":De.subscribe(e.options.context,e.options.path);break;case"settings":ZD(e.options);break;case"alarm":!function IP(e){const t=-1===e.type.indexOf("notifications.")?`notifications.${e.type}`:e.type;e.raise?De.raiseAlarm("self",t,new iP(e.message,e.state,!0,!0)):De.clearAlarm("self",t)}(e.options);break;case"vessel":if(e.options){let t;t="self"===e.options.context?F.self:F.aisTargets.get(e.options.context),t&&e.options.name&&(t.name=e.options.name)}break;case"auth":e.options&&typeof e.options.token<"u"&&(UD=e.options.token);break;case"trail":e.options&&(_i.trailDuration=e.options.trailDuration??24,e.options.trailResolution&&(_i.trailResolution.lastHour=e.options.trailResolution.lastHour??"5s",_i.trailResolution.next23=e.options.trailResolution.next23??"1m",_i.trailResolution.beyond24=e.options.trailResolution.beyond24??"5m")),function vP(e){const t=$d+"/self/track?",n=[];e.trailDuration>24&&(n.push(Ti(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}&timespanOffset=24`)),n.push(Ti(`${t}timespan=23h&resolution=${e.trailResolution.next23}&timespanOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&n.push(Ti(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}&timespanOffset=1`)),n.push(Ti(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let i=[];const s=new fP;s.playback=Ht,Promise.all(n).then(a=>{let l=0;const u=n.length-1;a.forEach(d=>{if(d.type&&"MultiLineString"===d.type&&d.coordinates&&Array.isArray(d.coordinates))if(l!==u){let f=[];for(d.coordinates.forEach(p=>{f=f.concat(p)}),f=(0,pP.p$)(f,5e-4,true);f.length>60;){const p=f.slice(0,60);i.push(p),f=f.slice(59),f[0]=[f[0][0]+5e-9,f[0][1]+5e-9]}0!==f.length&&i.push(f)}else i=i.concat(d.coordinates);l++}),s.result=i,postMessage(s)}).catch(()=>{s.result=null,postMessage(s)})}(_i)}}(e)})})();
1
+ (()=>{"use strict";var nb={179:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){var u=r.areaConversion[arguments.length>1&&void 0!==arguments[1]?arguments[1]:"m"];if(u)return a*u;throw new Error("Invalid unit used for area conversion.")}},190:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(7029)),o=l(n(3100)),i=l(n(5705)),s=l(n(942)),a=n(7636);function l(d){return d&&d.__esModule?d:{default:d}}t.default=function(f,p){var oe,Ee,h=(0,r.default)(f),g=(0,o.default)(f),m=(0,i.default)(h),y=(0,i.default)(g),v=p/a.earthRadius,M=m-v,S=m+v,P=(0,i.default)(a.MAXLAT),fe=(0,i.default)(a.MINLAT),ee=(0,i.default)(a.MAXLON),he=(0,i.default)(a.MINLON);if(M>fe&&S<P){var $n=Math.asin(Math.sin(v)/Math.cos(m));(oe=y-$n)<he&&(oe+=2*Math.PI),(Ee=y+$n)>ee&&(Ee-=2*Math.PI)}else M=Math.max(M,fe),S=Math.min(S,P),oe=he,Ee=ee;return[{latitude:(0,s.default)(M),longitude:(0,s.default)(oe)},{latitude:(0,s.default)(S),longitude:(0,s.default)(Ee)}]}},202:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u,c){return(0,r.default)(l,u,.01)<c}},266:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(3026)),o=a(n(4902)),i=a(n(1532)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function c(d){return(0,r.default)(d)?!(parseFloat(d)>s.MAXLON||d<s.MINLON):!!(0,o.default)(d)&&c((0,i.default)(d))}},354:(e,t)=>{function i(c,d){(null==d||d>c.length)&&(d=c.length);for(var f=0,p=new Array(d);f<d;f++)p[f]=c[f];return p}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(d){if(!d.startsWith("POLYGON"))throw new Error("Invalid wkt.");return d.slice(d.indexOf("(")+2,d.indexOf(")")).split(", ").map(function(h){var m=function n(c,d){return function a(c){if(Array.isArray(c))return c}(c)||function s(c,d){if(!(typeof Symbol>"u")&&Symbol.iterator in Object(c)){var f=[],p=!0,h=!1,g=void 0;try{for(var y,m=c[Symbol.iterator]();!(p=(y=m.next()).done)&&(f.push(y.value),!d||f.length!==d);p=!0);}catch(v){h=!0,g=v}finally{try{!p&&null!=m.return&&m.return()}finally{if(h)throw g}}return f}}(c,d)||function o(c,d){if(c){if("string"==typeof c)return i(c,d);var f=Object.prototype.toString.call(c).slice(8,-1);if("Object"===f&&c.constructor&&(f=c.constructor.name),"Map"===f||"Set"===f)return Array.from(c);if("Arguments"===f||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(f))return i(c,d)}}(c,d)||function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(h.split(" "),2),v=m[1];return{longitude:parseFloat(m[0]),latitude:parseFloat(v)}})}},884:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=a(n(942));function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d,f){var p=(0,r.default)(f),h=(0,o.default)(f),g=(0,r.default)(d),m=(0,o.default)(d);return((0,s.default)(Math.atan2(Math.sin((0,i.default)(h)-(0,i.default)(m))*Math.cos((0,i.default)(p)),Math.cos((0,i.default)(g))*Math.sin((0,i.default)(p))-Math.sin((0,i.default)(g))*Math.cos((0,i.default)(p))*Math.cos((0,i.default)(h)-(0,i.default)(m))))+360)%360}},917:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){var u=r.distanceConversion[arguments.length>1&&void 0!==arguments[1]?arguments[1]:"m"];if(u)return a*u;throw new Error("Invalid unit used for distance conversion.")}},939:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=a(n(942));function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d,f){var p=(0,i.default)((0,o.default)(f))-(0,i.default)((0,o.default)(d)),h=Math.log(Math.tan((0,i.default)((0,r.default)(f))/2+Math.PI/4)/Math.tan((0,i.default)((0,r.default)(d))/2+Math.PI/4));return Math.abs(p)>Math.PI&&(p=p>0?-1*(2*Math.PI-p):2*Math.PI+p),((0,s.default)(Math.atan2(p,h))+360)%360}},942:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return 180*i/Math.PI}},1118:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(2447));t.default=function(l,u){return(0,r.default)(l,u)[0]}},1167:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){switch(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"kmh"){case"kmh":return a*r.timeConversion.h*r.distanceConversion.km;case"mph":return a*r.timeConversion.h*r.distanceConversion.mi;default:return a}}},1532:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){var l=new RegExp(r.sexagesimalPattern).exec(a.toString().trim());if(typeof l>"u"||null===l)throw new Error("Given value is not in sexagesimal format");var u=Number(l[2])/60||0,c=Number(l[4])/3600||0,d=parseFloat(l[1])+u+c;return["S","W"].includes(l[7])?-d:d}},1691:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(5705)),o=a(n(7029)),i=a(n(3100)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d){var f=0;if(d.length>2){for(var p,h,g,m=0;m<d.length;m++){m===d.length-2?(p=d.length-2,h=d.length-1,g=0):m===d.length-1?(p=d.length-1,h=0,g=1):(p=m,h=m+1,g=m+2);var y=(0,i.default)(d[p]),v=(0,o.default)(d[h]),M=(0,i.default)(d[g]);f+=((0,r.default)(M)-(0,r.default)(y))*Math.sin((0,r.default)(v))}f=f*s.earthRadius*s.earthRadius/2}return Math.abs(f)}},2222:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(7029)),o=l(n(3100)),i=l(n(5705)),s=l(n(942)),a=n(7636);function l(d){return d&&d.__esModule?d:{default:d}}t.default=function(f,p,h){var g=arguments.length>3&&void 0!==arguments[3]?arguments[3]:6371e3,m=(0,r.default)(f),y=(0,o.default)(f),v=p/g,M=(0,i.default)(h),S=(0,i.default)(m),P=(0,i.default)(y),fe=Math.asin(Math.sin(S)*Math.cos(v)+Math.cos(S)*Math.sin(v)*Math.cos(M)),ee=P+Math.atan2(Math.sin(M)*Math.sin(v)*Math.cos(S),Math.cos(v)-Math.sin(S)*Math.sin(fe)),he=(0,s.default)(ee);return(he<a.MINLON||he>a.MAXLON)&&(ee=(ee+3*Math.PI)%(2*Math.PI)-Math.PI,he=(0,s.default)(ee)),{latitude:(0,s.default)(fe),longitude:he}}},2447:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r.default;return c="function"==typeof c?c:r.default,u.slice().sort(function(d,f){return c(l,d)-c(l,f)})}},2541:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r={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(t,"computeDestinationPoint",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"convertArea",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"convertDistance",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"convertSpeed",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"decimalToSexagesimal",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"findNearest",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"getAreaOfPolygon",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"getBounds",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"getBoundsOfDistance",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"getCenter",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,"getCenterOfBounds",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,"getCompassDirection",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(t,"getCoordinateKey",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(t,"getCoordinateKeys",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(t,"getDistance",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(t,"getDistanceFromLine",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(t,"getGreatCircleBearing",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(t,"getLatitude",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,"getLongitude",{enumerable:!0,get:function(){return fe.default}}),Object.defineProperty(t,"getPathLength",{enumerable:!0,get:function(){return ee.default}}),Object.defineProperty(t,"getPreciseDistance",{enumerable:!0,get:function(){return he.default}}),Object.defineProperty(t,"getRhumbLineBearing",{enumerable:!0,get:function(){return oe.default}}),Object.defineProperty(t,"getRoughCompassDirection",{enumerable:!0,get:function(){return Ee.default}}),Object.defineProperty(t,"getSpeed",{enumerable:!0,get:function(){return $n.default}}),Object.defineProperty(t,"isDecimal",{enumerable:!0,get:function(){return ja.default}}),Object.defineProperty(t,"isPointInLine",{enumerable:!0,get:function(){return Yr.default}}),Object.defineProperty(t,"isPointInPolygon",{enumerable:!0,get:function(){return Jr.default}}),Object.defineProperty(t,"isPointNearLine",{enumerable:!0,get:function(){return Xr.default}}),Object.defineProperty(t,"isPointWithinRadius",{enumerable:!0,get:function(){return an.default}}),Object.defineProperty(t,"isSexagesimal",{enumerable:!0,get:function(){return Bn.default}}),Object.defineProperty(t,"isValidCoordinate",{enumerable:!0,get:function(){return Ha.default}}),Object.defineProperty(t,"isValidLatitude",{enumerable:!0,get:function(){return $a.default}}),Object.defineProperty(t,"isValidLongitude",{enumerable:!0,get:function(){return Si.default}}),Object.defineProperty(t,"orderByDistance",{enumerable:!0,get:function(){return ki.default}}),Object.defineProperty(t,"sexagesimalToDecimal",{enumerable:!0,get:function(){return xi.default}}),Object.defineProperty(t,"toDecimal",{enumerable:!0,get:function(){return Nt.default}}),Object.defineProperty(t,"toRad",{enumerable:!0,get:function(){return zd.default}}),Object.defineProperty(t,"toDeg",{enumerable:!0,get:function(){return Ri.default}}),Object.defineProperty(t,"wktToPolygon",{enumerable:!0,get:function(){return Gd.default}});var o=H(n(2222)),i=H(n(179)),s=H(n(917)),a=H(n(1167)),l=H(n(8948)),u=H(n(1118)),c=H(n(1691)),d=H(n(9144)),f=H(n(190)),p=H(n(5524)),h=H(n(7088)),g=H(n(9952)),m=H(n(8744)),y=H(n(4695)),v=H(n(8674)),M=H(n(7504)),S=H(n(884)),P=H(n(7029)),fe=H(n(3100)),ee=H(n(5378)),he=H(n(2671)),oe=H(n(939)),Ee=H(n(2845)),$n=H(n(8950)),ja=H(n(3026)),Yr=H(n(4194)),Jr=H(n(3536)),Xr=H(n(2787)),an=H(n(202)),Bn=H(n(4902)),Ha=H(n(7637)),$a=H(n(6563)),Si=H(n(266)),ki=H(n(2447)),xi=H(n(1532)),Nt=H(n(5101)),zd=H(n(5705)),Ri=H(n(942)),Gd=H(n(354)),Ba=n(7636);function H(x){return x&&x.__esModule?x:{default:x}}Object.keys(Ba).forEach(function(x){"default"===x||"__esModule"===x||Object.prototype.hasOwnProperty.call(r,x)||Object.defineProperty(t,x,{enumerable:!0,get:function(){return Ba[x]}})})},2671:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d,f){var p=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;p=typeof p<"u"&&!isNaN(p)?p:1;var P,fe,ee,he,oe,Ee,Ha,h=(0,r.default)(d),g=(0,o.default)(d),m=(0,r.default)(f),y=(0,o.default)(f),v=6356752.314245,M=1/298.257223563,S=(0,i.default)(y-g),$n=Math.atan((1-M)*Math.tan((0,i.default)(parseFloat(h)))),ja=Math.atan((1-M)*Math.tan((0,i.default)(parseFloat(m)))),Yr=Math.sin($n),Jr=Math.cos($n),Xr=Math.sin(ja),an=Math.cos(ja),Bn=S,$a=100;do{var Si=Math.sin(Bn),ki=Math.cos(Bn);if(0===(Ee=Math.sqrt(an*Si*(an*Si)+(Jr*Xr-Yr*an*ki)*(Jr*Xr-Yr*an*ki))))return 0;P=Yr*Xr+Jr*an*ki,fe=Math.atan2(Ee,P),oe=P-2*Yr*Xr/(he=1-(ee=Jr*an*Si/Ee)*ee),isNaN(oe)&&(oe=0);var xi=M/16*he*(4+M*(4-3*he));Ha=Bn,Bn=S+(1-xi)*M*ee*(fe+xi*Ee*(oe+xi*P*(2*oe*oe-1)))}while(Math.abs(Bn-Ha)>1e-12&&--$a>0);if(0===$a)return NaN;var Nt=he*(s.earthRadius*s.earthRadius-v*v)/(v*v),Ri=Nt/1024*(256+Nt*(Nt*(74-47*Nt)-128));return Math.round(v*(1+Nt/16384*(4096+Nt*(Nt*(320-175*Nt)-768)))*(fe-Ri*Ee*(oe+Ri/4*(P*(2*oe*oe-1)-Ri/6*oe*(4*Ee*Ee-3)*(4*oe*oe-3))))/p)*p}},2787:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(7504));t.default=function(l,u,c,d){return(0,r.default)(l,u,c)<d}},2845:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return/^(NNE|NE|NNW|N)$/.test(i)?"N":/^(ENE|E|ESE|SE)$/.test(i)?"E":/^(SSE|S|SSW|SW)$/.test(i)?"S":/^(WSW|W|WNW|NW)$/.test(i)?"W":void 0}},3026:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){var s=i.toString().trim();return!isNaN(parseFloat(s))&&parseFloat(s)===Number(s)}},3100:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636),o=s(n(8744)),i=s(n(5101));function s(u){return u&&u.__esModule?u:{default:u}}t.default=function(c,d){var f=(0,o.default)(c,r.longitudeKeys);if(!(typeof f>"u"||null===f)){var p=c[f];return!0===d?p:(0,i.default)(p)}}},3536:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(7029)),o=i(n(3100));function i(l){return l&&l.__esModule?l:{default:l}}t.default=function(u,c){for(var d=!1,f=c.length,p=-1,h=f-1;++p<f;h=p)((0,o.default)(c[p])<=(0,o.default)(u)&&(0,o.default)(u)<(0,o.default)(c[h])||(0,o.default)(c[h])<=(0,o.default)(u)&&(0,o.default)(u)<(0,o.default)(c[p]))&&(0,r.default)(u)<((0,r.default)(c[h])-(0,r.default)(c[p]))*((0,o.default)(u)-(0,o.default)(c[p]))/((0,o.default)(c[h])-(0,o.default)(c[p]))+(0,r.default)(c[p])&&(d=!d);return d}},4194:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u,c){return(0,r.default)(u,l)+(0,r.default)(l,c)===(0,r.default)(u,c)}},4695:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636),o=function i(d){return d&&d.__esModule?d:{default:d}}(n(8744));function s(d,f){var p=Object.keys(d);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(d);f&&(h=h.filter(function(g){return Object.getOwnPropertyDescriptor(d,g).enumerable})),p.push.apply(p,h)}return p}function l(d,f,p){return f in d?Object.defineProperty(d,f,{value:p,enumerable:!0,configurable:!0,writable:!0}):d[f]=p,d}t.default=function(f){var p=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{longitude:r.longitudeKeys,latitude:r.latitudeKeys,altitude:r.altitudeKeys},h=(0,o.default)(f,p.longitude),g=(0,o.default)(f,p.latitude),m=(0,o.default)(f,p.altitude);return function a(d){for(var f=1;f<arguments.length;f++){var p=null!=arguments[f]?arguments[f]:{};f%2?s(Object(p),!0).forEach(function(h){l(d,h,p[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(p)):s(Object(p)).forEach(function(h){Object.defineProperty(d,h,Object.getOwnPropertyDescriptor(p,h))})}return d}({latitude:g,longitude:h},m?{altitude:m}:{})}},4902:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636);t.default=function(a){return r.sexagesimalPattern.test(a.toString().trim())}},5101:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(3026)),o=l(n(4902)),i=l(n(1532)),s=l(n(7637)),a=l(n(4695));function l(h){return h&&h.__esModule?h:{default:h}}function u(h,g){var m=Object.keys(h);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(h);g&&(y=y.filter(function(v){return Object.getOwnPropertyDescriptor(h,v).enumerable})),m.push.apply(m,y)}return m}function c(h){for(var g=1;g<arguments.length;g++){var m=null!=arguments[g]?arguments[g]:{};g%2?u(Object(m),!0).forEach(function(y){d(h,y,m[y])}):Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(m)):u(Object(m)).forEach(function(y){Object.defineProperty(h,y,Object.getOwnPropertyDescriptor(m,y))})}return h}function d(h,g,m){return g in h?Object.defineProperty(h,g,{value:m,enumerable:!0,configurable:!0,writable:!0}):h[g]=m,h}t.default=function h(g){if((0,r.default)(g))return Number(g);if((0,o.default)(g))return(0,i.default)(g);if((0,s.default)(g)){var m=(0,a.default)(g);return Array.isArray(g)?g.map(function(y,v){return[0,1].includes(v)?h(y):y}):c(c(c({},g),m.latitude&&d({},m.latitude,h(g[m.latitude]))),m.longitude&&d({},m.longitude,h(g[m.longitude])))}return Array.isArray(g)?g.map(function(y){return(0,s.default)(y)?h(y):y}):g}},5378:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(l){return l&&l.__esModule?l:{default:l}}(n(8674));function i(l){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(c){return typeof c}:function(c){return c&&"function"==typeof Symbol&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c})(l)}t.default=function(u){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.default;return u.reduce(function(d,f){return"object"===i(d)&&null!==d.last&&(d.distance+=c(f,d.last)),d.last=f,d},{last:null,distance:0}).distance}},5524:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(7029)),o=a(n(3100)),i=a(n(5705)),s=a(n(942));function a(c){return c&&c.__esModule?c:{default:c}}t.default=function(d){if(!1===Array.isArray(d)||0===d.length)return!1;var f=d.length,p=d.reduce(function(y,v){var M=(0,i.default)((0,r.default)(v)),S=(0,i.default)((0,o.default)(v));return{X:y.X+Math.cos(M)*Math.cos(S),Y:y.Y+Math.cos(M)*Math.sin(S),Z:y.Z+Math.sin(M)}},{X:0,Y:0,Z:0}),h=p.X/f,g=p.Y/f,m=p.Z/f;return{longitude:(0,s.default)(Math.atan2(g,h)),latitude:(0,s.default)(Math.atan2(m,Math.sqrt(h*h+g*g)))}}},5551:(e,t)=>{function n(u,c){return u*u+c*c}function r(u,c){return n(u.longitude-c.longitude,u.latitude-c.latitude)}function o(u,c,d){var f=c.longitude,p=c.latitude,h=d.longitude-f,g=d.latitude-p;if(0!==h||0!==g){var m=((u.longitude-f)*h+(u.latitude-p)*g)/n(h,g);m>1?(f=d.longitude,p=d.latitude):m>0&&(f+=h*m,p+=g*m)}return n(u.longitude-f,u.latitude-p)}function s(u,c,d,f,p){for(var g,h=f,m=c+1;m<d;m++){var y=o(u[m],u[c],u[d]);y>h&&(g=m,h=y)}h>f&&(g-c>1&&s(u,c,g,f,p),p.push(u[g]),d-g>1&&s(u,g,d,f,p))}function a(u,c){var d=u.length-1,f=[u[0]];return s(u,0,d,c,f),f.push(u[d]),f}t.__esModule=!0,t.SimplifyLL=function l(u,c,d){if(void 0===c&&(c=1),void 0===d&&(d=!1),u.length<=2)return u;var f=c*c;return a(u=d?u:function i(u,c){for(var f,d=u[0],p=[d],h=1,g=u.length;h<g;h++)r(f=u[h],d)>c&&(p.push(f),d=f);return d!==f&&p.push(f),p}(u,f),f)}},5705:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return i*Math.PI/180}},6380:(e,t,n)=>{var o=n(6729);t.p$=o.SimplifyAP,n(5551),n(6413)},6413:(e,t)=>{function n(u,c){return u*u+c*c}function r(u,c){return n(u.x-c.x,u.y-c.y)}function o(u,c,d){var f=c.x,p=c.y,h=d.x-f,g=d.y-p;if(0!==h||0!==g){var m=((u.x-f)*h+(u.y-p)*g)/n(h,g);m>1?(f=d.x,p=d.y):m>0&&(f+=h*m,p+=g*m)}return n(u.x-f,u.y-p)}function s(u,c,d,f,p){for(var g,h=f,m=c+1;m<d;m++){var y=o(u[m],u[c],u[d]);y>h&&(g=m,h=y)}h>f&&(g-c>1&&s(u,c,g,f,p),p.push(u[g]),d-g>1&&s(u,g,d,f,p))}function a(u,c){var d=u.length-1,f=[u[0]];return s(u,0,d,c,f),f.push(u[d]),f}t.__esModule=!0,t.Simplify=function l(u,c,d){if(void 0===c&&(c=1),void 0===d&&(d=!1),u.length<=2)return u;var f=c*c;return a(u=d?u:function i(u,c){for(var f,d=u[0],p=[d],h=1,g=u.length;h<g;h++)r(f=u[h],d)>c&&(p.push(f),d=f);return d!==f&&p.push(f),p}(u,f),f)}},6522:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i){return i>1?1:i<-1?-1:i}},6563:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(3026)),o=a(n(4902)),i=a(n(1532)),s=n(7636);function a(c){return c&&c.__esModule?c:{default:c}}t.default=function c(d){return(0,r.default)(d)?!(parseFloat(d)>s.MAXLAT||d<s.MINLAT):!!(0,o.default)(d)&&c((0,i.default)(d))}},6729:(e,t)=>{function n(u,c){return u*u+c*c}function r(u,c){return n(u[0]-c[0],u[1]-c[1])}function o(u,c,d){var f=c[0],p=c[1],h=d[0]-f,g=d[1]-p;if(0!==h||0!==g){var m=((u[0]-f)*h+(u[1]-p)*g)/n(h,g);m>1?(f=d[0],p=d[1]):m>0&&(f+=h*m,p+=g*m)}return n(u[0]-f,u[1]-p)}function s(u,c,d,f,p){for(var g,h=f,m=c+1;m<d;m++){var y=o(u[m],u[c],u[d]);y>h&&(g=m,h=y)}h>f&&(g-c>1&&s(u,c,g,f,p),p.push(u[g]),d-g>1&&s(u,g,d,f,p))}function a(u,c){var d=u.length-1,f=[u[0]];return s(u,0,d,c,f),f.push(u[d]),f}t.__esModule=!0,t.SimplifyAP=function l(u,c,d){if(void 0===c&&(c=1),void 0===d&&(d=!1),u.length<=2)return u;var f=c*c;return a(u=d?u:function i(u,c){for(var f,d=u[0],p=[d],h=1,g=u.length;h<g;h++)r(f=u[h],d)>c&&(p.push(f),d=f);return d!==f&&p.push(f),p}(u,f),f)}},7029:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(7636),o=s(n(8744)),i=s(n(5101));function s(u){return u&&u.__esModule?u:{default:u}}t.default=function(c,d){var f=(0,o.default)(c,r.latitudeKeys);if(!(typeof f>"u"||null===f)){var p=c[f];return!0===d?p:(0,i.default)(p)}}},7088:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(9144));t.default=function(l){var u=(0,r.default)(l),d=u.minLng+(u.maxLng-u.minLng)/2;return{latitude:parseFloat((u.minLat+(u.maxLat-u.minLat)/2).toFixed(6)),longitude:parseFloat(d.toFixed(6))}}},7504:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(8674)),o=i(n(6522));function i(l){return l&&l.__esModule?l:{default:l}}t.default=function(u,c,d){var f=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,p=(0,r.default)(c,u,f),h=(0,r.default)(u,d,f),g=(0,r.default)(c,d,f),m=Math.acos((0,o.default)((p*p+g*g-h*h)/(2*p*g))),y=Math.acos((0,o.default)((h*h+g*g-p*p)/(2*h*g)));return m>Math.PI/2?p:y>Math.PI/2?h:Math.sin(m)*p}},7636:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.areaConversion=t.timeConversion=t.distanceConversion=t.altitudeKeys=t.latitudeKeys=t.longitudeKeys=t.MAXLON=t.MINLON=t.MAXLAT=t.MINLAT=t.earthRadius=t.sexagesimalPattern=void 0,t.sexagesimalPattern=/^([0-9]{1,3})\xb0\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['\u2032]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["\u2033]\s*)?([NEOSW]?)$/,t.earthRadius=6378137,t.MINLAT=-90,t.MAXLAT=90,t.MINLON=-180,t.MAXLON=180,t.longitudeKeys=["lng","lon","longitude",0],t.latitudeKeys=["lat","latitude",1],t.altitudeKeys=["alt","altitude","elevation","elev",2],t.distanceConversion={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144},t.timeConversion={m:60,h:3600,d:86400};var p={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};t.areaConversion=p,p.sqm=p.m2,p.sqkm=p.km2,p.sqft=p.ft2,p.sqyd=p.yd2,p.sqin=p.in2},7637:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(4695)),o=s(n(6563)),i=s(n(266));function s(u){return u&&u.__esModule?u:{default:u}}t.default=function(c){var d=(0,r.default)(c),f=d.latitude,p=d.longitude;if(Array.isArray(c)&&c.length>=2)return(0,i.default)(c[0])&&(0,o.default)(c[1]);if(typeof f>"u"||typeof p>"u")return!1;var h=c[p],g=c[f];return!(typeof g>"u"||typeof h>"u"||!1===(0,o.default)(g)||!1===(0,i.default)(h))}},8674:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(7029)),o=l(n(3100)),i=l(n(5705)),s=l(n(6522)),a=n(7636);function l(d){return d&&d.__esModule?d:{default:d}}t.default=function(f,p){var h=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;h=typeof h<"u"&&!isNaN(h)?h:1;var g=(0,r.default)(f),m=(0,o.default)(f),y=(0,r.default)(p),v=(0,o.default)(p),M=Math.acos((0,s.default)(Math.sin((0,i.default)(y))*Math.sin((0,i.default)(g))+Math.cos((0,i.default)(y))*Math.cos((0,i.default)(g))*Math.cos((0,i.default)(m)-(0,i.default)(v))))*a.earthRadius;return Math.round(M/h)*h}},8744:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(i,s){return s.reduce(function(a,l){if(typeof i>"u"||null===i)throw new Error("'".concat(i,"' is no valid coordinate."));return Object.prototype.hasOwnProperty.call(i,l)&&typeof l<"u"&&typeof a>"u"?(a=l,l):a},void 0)}},8948:(e,t)=>{function n(d,f){return function a(d){if(Array.isArray(d))return d}(d)||function s(d,f){if(!(typeof Symbol>"u")&&Symbol.iterator in Object(d)){var p=[],h=!0,g=!1,m=void 0;try{for(var v,y=d[Symbol.iterator]();!(h=(v=y.next()).done)&&(p.push(v.value),!f||p.length!==f);h=!0);}catch(M){g=!0,m=M}finally{try{!h&&null!=y.return&&y.return()}finally{if(g)throw m}}return p}}(d,f)||function o(d,f){if(d){if("string"==typeof d)return i(d,f);var p=Object.prototype.toString.call(d).slice(8,-1);if("Object"===p&&d.constructor&&(p=d.constructor.name),"Map"===p||"Set"===p)return Array.from(d);if("Arguments"===p||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p))return i(d,f)}}(d,f)||function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(d,f){(null==f||f>d.length)&&(f=d.length);for(var p=0,h=new Array(f);p<f;p++)h[p]=d[p];return h}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.default=function(f){var h=n(f.toString().split("."),2),m=h[1],y=Math.abs(Number(h[0])),v=60*+("0."+(m||0)),M=v.toString().split("."),S=Math.floor(v),P=function(f){var h=Math.pow(10,arguments.length>1&&void 0!==arguments[1]?arguments[1]:4);return Math.round(f*h)/h}(60*+("0."+(M[1]||0))).toString(),ee=n(P.split("."),2),he=ee[0],oe=ee[1],Ee=void 0===oe?"0":oe;return y+"\xb0 "+S.toString().padStart(2,"0")+"' "+he.padStart(2,"0")+"."+Ee.padEnd(1,"0")+'"'}},8950:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(8674));t.default=function(l,u){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:r.default)(l,u)/(Number(u.time)-Number(l.time))*1e3}},9144:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(7029)),o=i(n(3100));function i(l){return l&&l.__esModule?l:{default:l}}t.default=function(u){if(!1===Array.isArray(u)||0===u.length)throw new Error("No points were given.");return u.reduce(function(c,d){var f=(0,r.default)(d),p=(0,o.default)(d);return{maxLat:Math.max(f,c.maxLat),minLat:Math.min(f,c.minLat),maxLng:Math.max(p,c.maxLng),minLng:Math.min(p,c.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})}},9952:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function o(a){return a&&a.__esModule?a:{default:a}}(n(939));t.default=function(l,u){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r.default,d="function"==typeof c?c(l,u):(0,r.default)(l,u);if(isNaN(d))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(d/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"}}}},Zd={};function Ua(e){var t=Zd[e];if(void 0!==t)return t.exports;var n=Zd[e]={exports:{}};return nb[e](n,n.exports,Ua),n.exports}function Wa(e){return"function"==typeof e}let qa=!1;const ot={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){if(e){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else qa&&console.log("RxJS: Back to a better error behavior. Thank you. <3");qa=e},get useDeprecatedSynchronousErrorHandling(){return qa}};function eo(e){setTimeout(()=>{throw e},0)}const Oi={closed:!0,next(e){},error(e){if(ot.useDeprecatedSynchronousErrorHandling)throw e;eo(e)},complete(){}},rb=Array.isArray||(e=>e&&"number"==typeof e.length),Pi=(()=>{function e(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((n,r)=>`${r+1}) ${n.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return e.prototype=Object.create(Error.prototype),e})();class we{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:n,_ctorUnsubscribe:r,_unsubscribe:o,_subscriptions:i}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof we)n.remove(this);else if(null!==n)for(let s=0;s<n.length;++s)n[s].remove(this);if(Wa(o)){r&&(this._unsubscribe=void 0);try{o.call(this)}catch(s){t=s instanceof Pi?Kd(s.errors):[s]}}if(rb(i)){let s=-1,a=i.length;for(;++s<a;){const l=i[s];if(null!==(e=l)&&"object"==typeof e)try{l.unsubscribe()}catch(u){t=t||[],u instanceof Pi?t=t.concat(Kd(u.errors)):t.push(u)}}}var e;if(t)throw new Pi(t)}add(t){let n=t;if(!t)return we.EMPTY;switch(typeof t){case"function":n=new we(t);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof we)){const i=n;n=new we,n._subscriptions=[i]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}let{_parentOrParents:r}=n;if(null===r)n._parentOrParents=this;else if(r instanceof we){if(r===this)return n;n._parentOrParents=[r,this]}else{if(-1!==r.indexOf(this))return n;r.push(this)}const o=this._subscriptions;return null===o?this._subscriptions=[n]:o.push(n),n}remove(t){const n=this._subscriptions;if(n){const r=n.indexOf(t);-1!==r&&n.splice(r,1)}}}var e;function Kd(e){return e.reduce((t,n)=>t.concat(n instanceof Pi?n.errors:n),[])}we.EMPTY=((e=new we).closed=!0,e);const Ai="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class ht extends we{constructor(t,n,r){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=Oi;break;case 1:if(!t){this.destination=Oi;break}if("object"==typeof t){t instanceof ht?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new Qd(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new Qd(this,t,n,r)}}[Ai](){return this}static create(t,n,r){const o=new ht(t,n,r);return o.syncErrorThrowable=!1,o}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class Qd extends ht{constructor(t,n,r,o){super(),this._parentSubscriber=t;let i,s=this;Wa(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==Oi&&(s=Object.create(n),Wa(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=i,this._error=r,this._complete=o}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:n}=this;ot.useDeprecatedSynchronousErrorHandling&&n.syncErrorThrowable?this.__tryOrSetError(n,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:n}=this,{useDeprecatedSynchronousErrorHandling:r}=ot;if(this._error)r&&n.syncErrorThrowable?(this.__tryOrSetError(n,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(n.syncErrorThrowable)r?(n.syncErrorValue=t,n.syncErrorThrown=!0):eo(t),this.unsubscribe();else{if(this.unsubscribe(),r)throw t;eo(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const n=()=>this._complete.call(this._context);ot.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,n){try{t.call(this._context,n)}catch(r){if(this.unsubscribe(),ot.useDeprecatedSynchronousErrorHandling)throw r;eo(r)}}__tryOrSetError(t,n,r){if(!ot.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{n.call(this._context,r)}catch(o){return ot.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=o,t.syncErrorThrown=!0,!0):(eo(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const ab="function"==typeof Symbol&&Symbol.observable||"@@observable";function lb(e){return e}let Jd=(()=>{class e{constructor(n){this._isScalar=!1,n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const{operator:i}=this,s=function sb(e,t,n){if(e){if(e instanceof ht)return e;if(e[Ai])return e[Ai]()}return e||t||n?new ht(e,t,n):new ht(Oi)}(n,r,o);if(s.add(i?i.call(s,this.source):this.source||ot.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),ot.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(n){try{return this._subscribe(n)}catch(r){ot.useDeprecatedSynchronousErrorHandling&&(n.syncErrorThrown=!0,n.syncErrorValue=r),function ib(e){for(;e;){const{closed:t,destination:n,isStopped:r}=e;if(t||r)return!1;e=n&&n instanceof ht?n:null}return!0}(n)?n.error(r):console.warn(r)}}forEach(n,r){return new(r=Xd(r))((o,i)=>{let s;s=this.subscribe(a=>{try{n(a)}catch(l){i(l),s&&s.unsubscribe()}},i,o)})}_subscribe(n){const{source:r}=this;return r&&r.subscribe(n)}[ab](){return this}pipe(...n){return 0===n.length?this:function Yd(e){return 0===e.length?lb:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}(n)(this)}toPromise(n){return new(n=Xd(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function Xd(e){if(e||(e=ot.Promise||Promise),!e)throw new Error("no Promise impl found");return e}const Un=(()=>{function e(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return e.prototype=Object.create(Error.prototype),e})();class ub extends we{constructor(t,n){super(),this.subject=t,this.subscriber=n,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,n=t.observers;if(this.subject=null,!n||0===n.length||t.isStopped||t.closed)return;const r=n.indexOf(this.subscriber);-1!==r&&n.splice(r,1)}}class cb extends ht{constructor(t){super(t),this.destination=t}}let ze=(()=>{class e extends Jd{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[Ai](){return new cb(this)}lift(n){const r=new ef(this,this);return r.operator=n,r}next(n){if(this.closed)throw new Un;if(!this.isStopped){const{observers:r}=this,o=r.length,i=r.slice();for(let s=0;s<o;s++)i[s].next(n)}}error(n){if(this.closed)throw new Un;this.hasError=!0,this.thrownError=n,this.isStopped=!0;const{observers:r}=this,o=r.length,i=r.slice();for(let s=0;s<o;s++)i[s].error(n);this.observers.length=0}complete(){if(this.closed)throw new Un;this.isStopped=!0;const{observers:n}=this,r=n.length,o=n.slice();for(let i=0;i<r;i++)o[i].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(n){if(this.closed)throw new Un;return super._trySubscribe(n)}_subscribe(n){if(this.closed)throw new Un;return this.hasError?(n.error(this.thrownError),we.EMPTY):this.isStopped?(n.complete(),we.EMPTY):(this.observers.push(n),new ub(this,n))}asObservable(){const n=new Jd;return n.source=this,n}}return e.create=(t,n)=>new ef(t,n),e})();class ef extends ze{constructor(t,n){super(),this.destination=t,this.source=n}next(t){const{destination:n}=this;n&&n.next&&n.next(t)}error(t){const{destination:n}=this;n&&n.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:n}=this;return n?this.source.subscribe(t):we.EMPTY}}let ge=null;function V(e){const t=ge;return ge=e,t}const qn={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function no(e){if((!io(e)||e.dirty)&&(e.dirty||1!==e.lastCleanEpoch)){if(!e.producerMustRecompute(e)&&!ro(e))return void Fi(e);e.producerRecomputeValue(e),Fi(e)}}function Fi(e){e.dirty=!1,e.lastCleanEpoch=1}function ro(e){ji(e);for(let t=0;t<e.producerNode.length;t++){const n=e.producerNode[t],r=e.producerLastReadVersion[t];if(r!==n.version||(no(n),r!==n.version))return!0}return!1}function Vi(e,t){if(function af(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}(e),1===e.liveConsumerNode.length&&function lf(e){return void 0!==e.producerNode}(e))for(let r=0;r<e.producerNode.length;r++)Vi(e.producerNode[r],e.producerIndexOfThis[r]);const n=e.liveConsumerNode.length-1;if(e.liveConsumerNode[t]=e.liveConsumerNode[n],e.liveConsumerIndexOfThis[t]=e.liveConsumerIndexOfThis[n],e.liveConsumerNode.length--,e.liveConsumerIndexOfThis.length--,t<e.liveConsumerNode.length){const r=e.liveConsumerIndexOfThis[t],o=e.liveConsumerNode[t];ji(o),o.producerIndexOfThis[r]=t}}function io(e){return e.consumerIsAlwaysLive||(e?.liveConsumerNode?.length??0)>0}function ji(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}Error;class b extends Error{code;constructor(t,n){super(function Wt(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,n)),this.code=t}}function K(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}globalThis;class N{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=K({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}var B=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(B||{});const O={lFrame:pp(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let Rl=!1;function j(){let e=function ip(){return O.lFrame.currentTNode}();for(;null!==e&&64===e.type;)e=e.parent;return e}function ds(e){const t=Rl;return Rl=e,t}function pp(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}new N("").__NG_ELEMENT_ID__=e=>{const t=j();if(null===t)throw new b(204,!1);if(2&t.type)return t.value;if(e&B.Optional)return null;throw new b(204,!1)},Symbol;class tP{constructor(){this.limitUI04=this.maxFromBits(4),this.limitUI06=this.maxFromBits(6),this.limitUI08=this.maxFromBits(8),this.limitUI12=this.maxFromBits(12),this.limitUI14=this.maxFromBits(14),this.limitUI16=this.maxFromBits(16),this.limitUI32=this.maxFromBits(32),this.limitUI40=this.maxFromBits(40),this.limitUI48=this.maxFromBits(48),this.create()}toString(){return this.hex}toURN(){return"urn:uuid:"+this.hex}toSignalK(){return`urn:mrn:signalk:uuid:${this.hex}`}toBytes(){let t=this.hex.split("-"),n=[],r=0;for(let o=0;o<t.length;o++)for(let i=0;i<t[o].length;i+=2)n[r++]=parseInt(t[o].substr(i,2),16);return n}maxFromBits(t){return Math.pow(2,t)}getRandomInt(t,n){return Math.floor(Math.random()*(n-t+1))+t}randomUI04(){return this.getRandomInt(0,this.limitUI04-1)}randomUI06(){return this.getRandomInt(0,this.limitUI06-1)}randomUI08(){return this.getRandomInt(0,this.limitUI08-1)}randomUI12(){return this.getRandomInt(0,this.limitUI12-1)}randomUI14(){return this.getRandomInt(0,this.limitUI14-1)}randomUI16(){return this.getRandomInt(0,this.limitUI16-1)}randomUI32(){return this.getRandomInt(0,this.limitUI32-1)}randomUI40(){return(0|Math.random()*(1<<30))+(0|1024*Math.random())*(1<<30)}randomUI48(){return(0|Math.random()*(1<<30))+(0|Math.random()*(1<<18))*(1<<30)}create(){this.fromParts(this.randomUI32(),this.randomUI16(),16384|this.randomUI12(),128|this.randomUI06(),this.randomUI08(),this.randomUI48())}paddedString(t,n,r=null){r=r||"0";let o=n-(t=String(t)).length;for(;o>0;o>>>=1,r+=r)1&o&&(t=r+t);return t}fromParts(t,n,r,o,i,s){return this.version=r>>12&15,this.hex=this.paddedString(t.toString(16),8)+"-"+this.paddedString(n.toString(16),4)+"-"+this.paddedString(r.toString(16),4)+"-"+this.paddedString(o.toString(16),2)+this.paddedString(i.toString(16),2)+"-"+this.paddedString(s.toString(16),12),this}}class Aa{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:(new tP).toString()}}}let rP=(()=>{class e{constructor(){this._filter="",this._wsTimeout=2e4,this._token="",this._playbackMode=!1,this.version=1,this.endpoint="",this.selfId="",this._source=null,this._connect=new ze,this.onConnect=this._connect.asObservable(),this._close=new ze,this.onClose=this._close.asObservable(),this._error=new ze,this.onError=this._error.asObservable(),this._message=new ze,this.onMessage=this._message.asObservable()}set source(n){this._source||(this._source={}),this._source.label=n}set authToken(n){this._token=n}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(n){this._wsTimeout=n<3e3?3e3:n>6e4?6e4:n}get isOpen(){return!(!this.ws||1==this.ws.readyState||3==this.ws.readyState)}get filter(){return this._filter}set filter(n){this._filter=n&&-1!=n.indexOf("self")?this.selfId?this.selfId:"":n}get playbackMode(){return this._playbackMode}close(){this.ws&&(this.ws.close(),this.ws=null)}open(n,r,o){if(!(n=n||this.endpoint))return;let i=-1==n.indexOf("?")?"?":"&";r&&(n+=`${i}subscribe=${r}`),(this._token||o)&&(n+=`${r?"&":"?"}token=${this._token||o}`),this.close(),this.ws=new WebSocket(n),setTimeout(()=>{this.ws&&1!=this.ws.readyState&&3!=this.ws.readyState&&(console.warn(`Connection watchdog expired (${this._wsTimeout/1e3} sec): ${this.ws.readyState}... aborting connection...`),this.close())},this._wsTimeout),this.ws.onopen=s=>{this._connect.next(s)},this.ws.onclose=s=>{this._close.next(s)},this.ws.onerror=s=>{this._error.next(s)},this.ws.onmessage=s=>{this.parseOnMessage(s)}}parseOnMessage(n){let r;if("string"==typeof n.data)try{r=JSON.parse(n.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(n){if("object"!=typeof n)return"";let r=Aa.request();return typeof n.login>"u"&&this._token&&(r.token=this._token),Object.keys(n).forEach(i=>{r[i]=n[i]}),this.send(r),r.requestId}put(n,r,o){return this.sendRequest({context:"self"==n?"vessels.self":n,put:{path:r,value:o}})}login(n,r){return this.sendRequest({login:{username:n,password:r}})}send(n){this.ws&&("object"==typeof n&&(n=JSON.stringify(n)),this.ws.send(n))}sendUpdate(n="self",r,o){let i=Aa.updates();this._token&&(i.token=this._token),i.context="self"==n?"vessels.self":n,this._token&&(i.token=this._token);let s=[];"string"==typeof r&&s.push({path:r,value:o}),"object"==typeof r&&Array.isArray(r)&&(s=r);let a={timestamp:(new Date).toISOString(),values:s};this._source&&(a.source=this._source),i.updates.push(a),this.send(i)}subscribe(n="*",r="*",o){let i=Aa.subscribe();if(this._token&&(i.token=this._token),i.context="self"==n?"vessels.self":n,this._token&&(i.token=this._token),"object"==typeof r&&Array.isArray(r)&&(i.subscribe=r),"string"==typeof r){let s={};s.path=r,o&&"object"==typeof o&&(o.period&&(s.period=o.period),o.minPeriod&&(s.minPeriod=o.period),o.format&&("delta"==o.format||"full"==o.format)&&(s.format=o.format),o.policy&&("instant"==o.policy||"ideal"==o.policy||"fixed"==o.policy)&&(s.policy=o.policy)),i.subscribe.push(s)}this.send(i)}unsubscribe(n="*",r="*"){let o=Aa.unsubscribe();this._token&&(o.token=this._token),o.context="self"==n?"vessels.self":n,this._token&&(o.token=this._token),"object"==typeof r&&Array.isArray(r)&&(o.unsubscribe=r),"string"==typeof r&&o.unsubscribe.push({path:r}),this.send(o)}raiseAlarm(n="*",r,o){let i;i="string"==typeof r&&-1==r.indexOf("notifications.")?`notifications.${r}`:r,this.put(n,i,o.value)}clearAlarm(n="*",r){let o=-1==r.indexOf("notifications.")?`notifications.${r}`:r;this.put(n,o,null)}isSelf(n){return n.context==this.selfId}isDelta(n){return typeof n.context<"u"}isHello(n){return typeof n.version<"u"&&typeof n.self<"u"}isResponse(n){return typeof n.requestId<"u"}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=K({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();class iP{constructor(t,n,r,o){this._method=[],this._message="",this._message=typeof t<"u"?t:"",this._state=typeof n<"u"?n:HD.alarm,r&&this._method.push(Fd.visual),o&&this._method.push(Fd.sound)}get value(){return{message:this._message,state:this._state,method:this._method}}}var HD=function(e){return e.normal="normal",e.alert="alert",e.warn="warn",e.alarm="alarm",e.emergency="emergency",e}(HD||{}),Fd=function(e){return e.visual="visual",e.sound="sound",e}(Fd||{});class aP{constructor(){this.obsList=[],this.stream=new rP,this._connect=new ze,this.onConnect=this._connect.asObservable(),this._close=new ze,this.onClose=this._close.asObservable(),this._error=new ze,this.onError=this._error.asObservable(),this._message=new ze,this.onMessage=this._message.asObservable()}get endpoint(){return this.stream.endpoint}set endpoint(t){this.stream.endpoint=t}get selfId(){return this.stream.selfId}set selfId(t){this.stream.selfId=t}get _source(){return this.stream._source}set _source(t){this.stream._source=t}set source(t){this.stream.source=t}set authToken(t){this.stream.authToken=t}get connectionTimeout(){return this.stream.connectionTimeout}set connectionTimeout(t){this.stream.connectionTimeout=t}get isOpen(){return this.stream.isOpen}get filter(){return this.stream.filter}set filter(t){this.stream.filter=t}get playbackMode(){return this.stream.playbackMode}open(t,n="none",r){this.obsList.push(this.stream.onConnect.subscribe(o=>this._connect.next(o))),this.obsList.push(this.stream.onClose.subscribe(o=>this._close.next(o))),this.obsList.push(this.stream.onError.subscribe(o=>this._error.next(o))),this.obsList.push(this.stream.onMessage.subscribe(o=>this._message.next(o))),this.stream.open(t,n,r)}close(){this.stream.close(),this.obsList.forEach(t=>t.unsubscribe()),this.obsList=[]}sendRequest(t){return this.stream.sendRequest(t)}put(t,n,r){return this.stream.put(t,n,r)}login(t,n){return this.stream.login(t,n)}send(t){this.stream.send(t)}sendUpdate(t="self",n,r){this.stream.sendUpdate(t,n,r)}subscribe(t="*",n="*",r){this.stream.subscribe(t,n,r)}unsubscribe(t="*",n="*"){this.stream.unsubscribe(t,n)}raiseAlarm(t="*",n,r){this.stream.raiseAlarm(t,n,r)}clearAlarm(t="*",n){this.stream.clearAlarm(t,n)}isSelf(t){return this.stream.isSelf(t)}isDelta(t){return this.stream.isDelta(t)}isHello(t){return this.stream.isHello(t)}isResponse(t){return this.stream.isResponse(t)}}class La{id;name;mmsi;position=[0,0];state;type={id:-1,name:""};properties={};lastUpdated=new Date;callsignVhf;callsignHf;orientation=0;virtual}class $D extends La{anchor={maxRadius:null,radius:null,position:null};autopilot={};buddy=!1;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}class lP extends La{constructor(){super()}}class uP extends La{sog=0;track=[];constructor(){super()}}class BD extends La{constructor(){super()}}class cP extends BD{twd;tws;temperature;constructor(){super()}}class Vd{static celciusToKelvin(t=0){return t+273.15}static kelvinToCelcius(t=0){return t-273.15}static kelvinToFarenheit(t=0){return 1.8*t-459.67}static degreesToRadians(t=0){return t*Math.PI/180}static radiansToDegrees(t=0){return 180*t/Math.PI}static angleToDirection(t,n){const r=2*Math.PI;if(n||(n=0),t||(t=0),isNaN(n)||isNaN(t))return null;const o=n+t;return o>r?o-r:o<0?r+o:o}static directionToAngle(t,n){const r=2*Math.PI;if(n||(n=0),t||(t=0),isNaN(n)||isNaN(t))return null;const o=n-t;let i;if(o>0)i=o>Math.PI?r-o:0-o;else if(o<0){const s=Math.abs(o);i=s>Math.PI?s-r:s}else i=o;return i}static knotsToKm(t){return 1.852*t}static nauticalMilesToKm(t){return 1.852*t}static knotsToMSec(t){return.51444325460445*t}static kmToKnots(t){return.539957*t}static kmToNauticalMiles(t){return.539957*t}static kmToMiles(t){return.621371*t}static metersToFeet(t){return 3.28084*t}static msecToKnots(t){return 1.94384*t}static msecToKmh(t){return 3.6*t}static msecToMph(t){return 2.23694*t}static nauticalMilesToMiles(t){return 1.15078*t}static milesToKm(t){return 1.60934*t}static milesToNauticalMiles(t){return.868976*t}static rpmToHertz(t){return t/60}}var Fn=Ua(2541);class Ct{static destCoordinate(t,n,r){const o=(0,Fn.computeDestinationPoint)(t,r,Vd.radiansToDegrees(n));return[o.longitude,o.latitude]}static distanceTo(t,n){return(0,Fn.getDistance)(t,n)}static routeLength(t){return(0,Fn.getPathLength)(t)}static routeLegs(t,n){if(t.length<2)return[];const r=[];r.push(n?{bearing:(0,Fn.getGreatCircleBearing)(n,t[0]),distance:Ct.distanceTo(n,t[0])}:{bearing:0,distance:0});for(let o=1;o<t.length;++o){const i={bearing:(0,Fn.getGreatCircleBearing)(t[o-1],t[o]),distance:Ct.distanceTo(t[o-1],t[o])};r.push(i)}return r}static centreOfPolygon(t){const n=(0,Fn.getCenter)(t);return[n.longitude,n.latitude]}static inDLCrossingZone(t,n=170){return Math.abs(t[0])>=n}static inBounds(t,n){return(0,Fn.isPointInPolygon)(t,[[n[0],n[1]],[n[0],n[3]],[n[2],n[3]],[n[2],n[1]],[n[0],n[1]]])}static calcMapifiedExtent(t,n){const o=111111*Math.cos(Vd.degreesToRadians(t[1])),i=[0,0,0,0];return i[1]=t[1]+(0-Math.abs(n))/111111,i[3]=t[1]+Math.abs(n)/111111,i[0]=t[0]+(0-Math.abs(n))/o,i[2]=t[0]+Math.abs(n)/o,i}static normaliseCoords(t){if(!Array.isArray(t))return[0,0];if("number"==typeof t[0]){if(t[0]>180)for(;t[0]>180;)t[0]=t[0]-360;else if(t[0]<-180)for(;t[0]<-180;)t[0]=360+t[0];return t}return Array.isArray(t[0])?(t.forEach(n=>this.normaliseCoords(n)),t):void 0}}class dP{action="notification";playback=!1;result=null;self=null;timestamp=(new Date).toISOString();sourceRef}class Hd{action;playback=!1;result=null;timestamp;self=null;constructor(){this.action="update"}}class fP extends Hd{constructor(){super(),this.action="resource"}}class pP extends Hd{constructor(){super(),this.action="trail"}}var hP=Ua(6380);const gP=["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"];let F,De,UD;const Ei=[];let Bd,Fa=[],$d=!1,Ud=!1;const pe={signalk:{},aisState:[]};let Ve,zD,WD=[0,0,0,0],qD=60,wi=0,Vn={},jn=500,Tt=!1;const $t={maxAge:54e4,staleAge:36e4,lastTick:(new Date).valueOf(),maxTrack:20};let Wd={cogLine:10,aisCogLine:10};const _i={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}};let Hn,Ci="freeboard-sk";function GD(){Ve={updated:{},stale:{},expired:{}}}function Va({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:Tt,result:t.target.readyState});break;case"onClose":KD(!1);break;case"onError":postMessage({action:"error",playback:Tt,result:"Connection error!"});break;case"onMessage":!function bP(e){De.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:Tt}),jn&&JD()):De.isDelta(e)?($d=!0,e.updates.forEach(t=>{t.values&&(Hn=t.$source,t.values.forEach(n=>{if(zD=t.timestamp,e.context)switch(e.context.split(".")[0]){case"shore":case"atons":pe?.signalk.atons&&function _P(e,t){let n=!1;if(-1!==e.indexOf("shore.basestations")&&(n=!0),!F.atons.has(e)){const o=new BD;o.id=e,o.position=null,n&&(o.type.id=-1,o.type.name="Basestation"),F.atons.set(e,o)}const r=F.atons.get(e);""===t.path?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.atonType<"u"&&(r.type=t.value.atonType)):"atonType"===t.path?r.type=t.value:"virtual"===t.path?r.virtual=t.value:"navigation.position"===t.path?(r.position=[t.value.longitude,t.value.latitude],r.positionReceived=!0):r.properties[t.path]=t.value}(e.context,n),Ni(e.context,F.atons,pe?.signalk.atons);break;case"sar":pe?.signalk.sar&&function CP(e,t){if(!F.sar.has(e)){const r=new lP;r.id=e,r.position=null,r.type.id=-1,r.type.name="SaR Beacon",F.sar.set(e,r)}const n=F.sar.get(e);""===t.path?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(n.callsignVhf=t.value.communication.callsignVhf??"",n.callsignHf=t.value.communication.callsignHf??"")):"communication.callsignVhf"===t.path?n.callsignVhf=t.value:"communication.callsignHf"===t.path?n.callsignHf=t.value:"navigation.position"===t.path&&t.value&&(n.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),n.positionReceived=!0)}(e.context,n),Ni(e.context,F.sar,pe?.signalk.sar);break;case"aircraft":pe?.signalk.aircraft&&function NP(e,t){if(!F.aircraft.has(e)){const r=new uP;r.id=e,r.position=null,F.aircraft.set(e,r)}const n=F.aircraft.get(e);""===t.path?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(n.callsignVhf=t.value.communication.callsignVhf??"",n.callsignHf=t.value.communication.callsignHf??"")):"communication.callsignVhf"===t.path?n.callsignVhf=t.value:"communication.callsignHf"===t.path?n.callsignHf=t.value:"navigation.position"===t.path&&t.value?(n.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),n.positionReceived=!0,qd(n)):"navigation.courseOverGroundTrue"===t.path?n.orientation=t.value:"navigation.speedOverGround"===t.path&&(n.sog=t.value)}(e.context,n),Ni(e.context,F.aircraft,pe?.signalk.aircraft);break;case"meteo":pe?.signalk.meteo&&(function TP(e,t){if(!F.meteo.has(e)){const r=new cP;r.id=e,r.position=null,r.type.id=-1,r.type.name="Weather Station",F.meteo.set(e,r)}const n=F.meteo.get(e);if(""===t.path){if(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"){const r=e.split(":").slice(-2);n.mmsi=2===r.length?`${r[0]}:${r[1]}`:t.value.mmsi}typeof t.value.communication<"u"&&(n.callsignVhf=t.value.communication.callsignVhf??"",n.callsignHf=t.value.communication.callsignHf??"")}else"communication.callsignVhf"===t.path?n.callsignVhf=t.value:"communication.callsignHf"===t.path?n.callsignHf=t.value:"environment.outside.temperature"===t.path?n.temperature=t.value:"environment.wind.directionTrue"===t.path?n.twd=t.value:"environment.wind.averageSpeed"===t.path?n.tws=t.value:"navigation.position"===t.path&&t.value&&(n.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),n.positionReceived=!0)}(e.context,n),tb(n)),Ni(e.context,F.meteo,pe?.signalk.meteo);break;case"vessels":if(De.isSelf(e))F.self.id||(F.self.id=e.context),eb(F.self,n,!0),tb(n);else{if(pe?.signalk.vessels){const r=function MP(e){if(!F.aisTargets.has(e)){const t=new $D;t.id=e,t.position=null,F.aisTargets.set(e,t)}return F.aisTargets.get(e)}(e.context);eb(r,n)}Ni(e.context,F.aisTargets,pe?.signalk.vessels,pe?.aisState)}}}))}),YD()):De.isResponse(e)&&postMessage({action:"response",result:e})}(t)}}function ZD(e={}){e.interval&&"number"==typeof e.interval&&(jn=e.interval,XD(),JD(),qD=1/(jn/1e3)*60),Tt=!!e.playback,e.selections&&(typeof e.selections.preferredPaths<"u"&&(Vn=e.selections.preferredPaths),e.selections.aisMaxAge&&"number"==typeof e.selections.aisMaxAge&&($t.maxAge=e.selections.aisMaxAge),e.selections.aisStaleAge&&"number"==typeof e.selections.aisStaleAge&&($t.staleAge=e.selections.aisStaleAge),"number"==typeof e.selections.signalk.maxRadius&&(pe.signalk=e.selections.signalk),typeof e.selections.aisState<"u"&&Array.isArray(e.selections.aisState)&&(pe.aisState=e.selections.aisState),Wd=e.selections.vessel)}function KD(e=!1){XD(),Ei.forEach(t=>t.unsubscribe()),De&&e&&De.close(),De=null,postMessage({action:"close",result:e,playback:Tt})}function Ti(e){return new Promise((t,n)=>{fetch(`${e}`).then(r=>{r.json().then(o=>t(o)).catch(o=>n(o))}).catch(r=>{n(r)})})}function QD(){Ti(Bd+"/tracks"+(pe&&pe.signalk&&pe.signalk.maxRadius?`?radius=${pe.signalk.maxRadius}`:"?radius=10000")).then(t=>{Ud=!0,Object.entries(t).forEach(n=>{if(F.aisTargets.has(n[0])){const r=F.aisTargets.get(n[0]);r.track=n[1].coordinates,qd(r)}})}).catch(()=>{Ud=!1})}function Ni(e,t,n=!0,r=[]){if(n){let o=t.get(e);o&&r.includes(o?.state)&&(Ve.expired[e]=!0,o=null),o&&pe.signalk.maxRadius?o.positionReceived&&Ct.inBounds(o.position,WD)?Ve.updated[e]=!0:(t.delete(e),Ve.expired[e]=!0):Ve.updated[e]=!0}else 0!==t.size&&(t.forEach((o,i)=>{Ve.expired[i]=!0}),t.clear())}function YD(e=!1){if(!jn||e){const t=new Hd;t.playback=Tt,F.aisStatus.updated=Object.keys(Ve.updated),F.aisStatus.stale=Object.keys(Ve.stale),F.aisStatus.expired=Object.keys(Ve.expired),t.result=F,t.timestamp=Tt?zD:F.self.lastUpdated.toISOString(),postMessage(t),GD(),F.self.resourceUpdates=[],0===wi&&(function wP(){const e=(new Date).valueOf();F.aisTargets.forEach((t,n)=>{t.lastUpdated.valueOf()<e-$t.maxAge?(Ve.expired[n]=!0,F.aisTargets.delete(n)):t.lastUpdated.valueOf()<e-$t.staleAge&&(Ve.stale[n]=!0)}),F.aircraft.forEach((t,n)=>{t.lastUpdated.valueOf()<e-$t.maxAge?(Ve.expired[n]=!0,F.aircraft.delete(n)):t.lastUpdated.valueOf()<e-$t.staleAge&&(Ve.stale[n]=!0)}),F.sar.forEach((t,n)=>{t.lastUpdated.valueOf()<e-$t.maxAge?(Ve.expired[n]=!0,F.sar.delete(n)):t.lastUpdated.valueOf()<e-$t.staleAge&&(Ve.stale[n]=!0)})}(),F.self.positionReceived&&pe?.signalk.maxRadius&&(WD=Ct.calcMapifiedExtent(F.self.position,pe.signalk.maxRadius),wi++)),wi=wi>=qD?0:wi+1}}function JD(){jn&&"number"==typeof jn&&Fa.push(setInterval(()=>{$d&&(YD(!0),$d=!1)},jn)),Fa.push(setInterval(()=>{Ud&&QD()},6e4))}function XD(){Fa.forEach(e=>clearInterval(e)),Fa=[]}function eb(e,t,n=!1){if(e.lastUpdated=new Date,n){if(t.path.startsWith("resources."))e.resourceUpdates.push(t),function EP(e){const t=new fP;t.playback=Tt,t.result={path:e.path,value:e.value,sourceRef:Hn},postMessage(t)}(t);else if(t.path.startsWith("navigation.racing"))e.properties[t.path]=t.value;else if("performance.beatAngle"===t.path)e.performance.beatAngle=t.value;else if("performance.gybeAngle"===t.path)e.performance.gybeAngle=t.value;else if(t.path.startsWith("navigation.course."))if(t.path.startsWith("navigation.course.calcValues.")){const i=t.path.split(".").slice(3).join(".");e.courseCalcs[i]=t.value}else t.path.includes("activeRoute")?e.courseApi.activeRoute=t.value:-1!==t.path.indexOf("nextPoint")?e.courseApi.nextPoint=t.value:-1!==t.path.indexOf("previousPoint")?e.courseApi.previousPoint=t.value:"arrivalCircle"===t.path&&(e.courseApi.arrivalCircle=t.value);else"environment.mode"===t.path?e.environment.mode=t.value:"environment.sun"===t.path&&(e.environment.sun=t.value);const o=-1!==t.path.indexOf("course")?t.path.split(".").slice(0,2).join("."):t.path;-1!==gP.indexOf(o)&&(F.paths[o]=null)}else"navigation.distanceToSelf"===t.path&&(e.distanceToSelf=t.value);if(""===t.path)typeof t.value.name<"u"&&(e.name=t.value.name),typeof t.value.mmsi<"u"&&(e.mmsi=t.value.mmsi),typeof t.value.registrations<"u"&&(e.registrations=t.value.registrations),typeof t.value.buddy<"u"&&(e.buddy=t.value.buddy),typeof t.value.communication<"u"&&(e.callsignVhf=t.value.communication.callsignVhf??"",e.callsignHf=t.value.communication.callsignHf??"");else if("communication.callsignVhf"===t.path)e.callsignVhf=t.value;else if("communication.callsignHf"===t.path)e.callsignHf=t.value;else if("design.aisShipType"===t.path)e.type=t.value;else if("navigation.position"===t.path&&t.value){if(typeof t.value.latitude>"u"||typeof t.value.longitude>"u")return;e.position=Ct.normaliseCoords([t.value.longitude,t.value.latitude]),e.positionReceived=!0,n||qd(e)}else"navigation.state"===t.path?e.state=t.value:"navigation.speedOverGround"===t.path?e.sog=t.value:"environment.wind.angleApparent"===t.path?e.wind.awa=t.value:"environment.wind.speedApparent"===t.path?e.wind.aws=t.value:"environment.wind.speedTrue"===t.path?e.wind.speedTrue=t.value:"environment.wind.speedOverGround"===t.path?e.wind.sog=t.value:"environment.wind.directionTrue"===t.path?e.wind.twd=t.value:"environment.wind.directionMagnetic"===t.path?e.wind.mwd=t.value:"navigation.anchor.position"===t.path?e.anchor.position=t.value:"navigation.anchor.maxRadius"===t.path?e.anchor.maxRadius=t.value:"navigation.anchor.currentRadius"===t.path?e.anchor.radius=t.value:"steering.autopilot.state"===t.path&&Hn===Ci?e.autopilot.state=t.value:"steering.autopilot.mode"===t.path&&Hn===Ci?e.autopilot.mode=t.value:"steering.autopilot.target"===t.path&&Hn===Ci?e.autopilot.target=t.value:"steering.autopilot.engaged"===t.path&&Hn===Ci?e.autopilot.enabled=t.value:"steering.autopilot.defaultPilot"===t.path?(e.autopilot.default=t.value,Ci=t.value):"navigation.courseOverGroundTrue"===t.path?e.cogTrue=t.value:"navigation.courseOverGroundMagnetic"===t.path?e.cogMagnetic=t.value:"navigation.headingTrue"===t.path?e.headingTrue=t.value:"navigation.headingMagnetic"===t.path&&(e.headingMagnetic=t.value);typeof Vn.heading<"u"&&t.path===Vn.heading&&(e.orientation=t.value),typeof Vn.tws<"u"&&t.path===Vn.tws&&(e.wind.tws=t.value),typeof Vn.twd<"u"&&t.path===Vn.twd&&(e.wind.direction="environment.wind.angleTrueGround"===t.path||"environment.wind.angleTrueWater"===t.path?Vd.angleToDirection(t.value,e.orientation??0):t.value);const r=e.cogTrue??e.cogMagnetic??void 0;typeof r<"u"&&e.position&&(e.vectors.cog=[e.position,Ct.destCoordinate(e.position,r,(e.sog??0)*(60*(n?Wd.cogLine:Wd.aisCogLine)))])}function tb(e){if(e.path.includes("notifications.")){const t=new dP;t.playback=Tt,t.result={path:e.path,value:e.value,sourceRef:Hn},postMessage(t)}}function qd(e){if(e.track&&0===e.track.length)e.track.push([e.position]);else{const n=e.track[e.track.length-1][e.track[e.track.length-1].length-1];n[0]!==e.position[0]&&n[1]!==e.position[1]&&e.track[e.track.length-1].push(e.position)}e.track[e.track.length-1]=e.track[e.track.length-1].slice(0-$t.maxTrack)}addEventListener("message",({data:e})=>{!function vP(e){if(e.cmd)switch(e.cmd){case"open":ZD(e.options),function IP(e){if(De)return;if(!e.url)return void postMessage({action:"error",result:"Valid options not provided!"});const t=e.url.split("/");if(t.pop(),t.push("api"),t[0]="wss:"===t[0]?"https:":"http:",Bd=t.join("/"),function mP(){F={self:new $D,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},F.self.positionReceived=!1,GD()}(),De=new aP,Ei.push(De.onConnect.subscribe(n=>Va({action:"onConnect",msg:n}))),Ei.push(De.onClose.subscribe(n=>Va({action:"onClose",msg:n}))),Ei.push(De.onError.subscribe(n=>Va({action:"onError",msg:n}))),Ei.push(De.onMessage.subscribe(n=>Va({action:"onMessage",msg:n}))),De.authToken=UD,e.playback){const n=e.playbackOptions.startTime?`?startTime=${e.playbackOptions.startTime}`:null;let r=e.playbackOptions.playbackRate?`playbackRate=${e.playbackOptions.playbackRate}`:null;r=r?n?"&"+r:"?"+r:null,De.open(`${e.url}${n||""}${r||""}`,e.playbackOptions.subscribe,e.token)}else De.open(e.url,e.subscribe,e.token),QD()}(e.options);break;case"close":KD(!0);break;case"subscribe":De.subscribe(e.options.context,e.options.path);break;case"settings":ZD(e.options);break;case"alarm":!function DP(e){const t=-1===e.type.indexOf("notifications.")?`notifications.${e.type}`:e.type;e.raise?De.raiseAlarm("self",t,new iP(e.message,e.state,!0,!0)):De.clearAlarm("self",t)}(e.options);break;case"vessel":if(e.options){let t;t="self"===e.options.context?F.self:F.aisTargets.get(e.options.context),t&&e.options.name&&(t.name=e.options.name)}break;case"auth":e.options&&typeof e.options.token<"u"&&(UD=e.options.token);break;case"trail":e.options&&(_i.trailDuration=e.options.trailDuration??24,e.options.trailResolution&&(_i.trailResolution.lastHour=e.options.trailResolution.lastHour??"5s",_i.trailResolution.next23=e.options.trailResolution.next23??"1m",_i.trailResolution.beyond24=e.options.trailResolution.beyond24??"5m")),function yP(e){const t=Bd+"/self/track?",n=[];e.trailDuration>24&&(n.push(Ti(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}&timespanOffset=24`)),n.push(Ti(`${t}timespan=23h&resolution=${e.trailResolution.next23}&timespanOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&n.push(Ti(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}&timespanOffset=1`)),n.push(Ti(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let i=[];const s=new pP;s.playback=Tt,Promise.all(n).then(a=>{let l=0;const u=n.length-1;a.forEach(d=>{if(d.type&&"MultiLineString"===d.type&&d.coordinates&&Array.isArray(d.coordinates))if(l!==u){let f=[];for(d.coordinates.forEach(p=>{f=f.concat(p)}),f=(0,hP.p$)(f,5e-4,true);f.length>60;){const p=f.slice(0,60);i.push(p),f=f.slice(59),f[0]=[f[0][0]+5e-9,f[0][1]+5e-9]}0!==f.length&&i.push(f)}else i=i.concat(d.coordinates);l++}),s.result=i,postMessage(s)}).catch(()=>{s.result=null,postMessage(s)})}(_i)}}(e)})})();
@@ -270,7 +270,11 @@
270
270
  Freeboard provides a moving Vessel / Map display for both your vessel
271
271
  <img src="../img/ship_red.png" style="height: 30px" alt="" />
272
272
  and other vessels
273
- <img src="../img/ais_active.png" style="height: 20px" alt="" />.<br />
273
+ <img
274
+ src="../img/vessels/ais_active.png"
275
+ style="height: 20px"
276
+ alt=""
277
+ />.<br />
274
278
  <img src="./img/screen.png" style="height: 400px" alt="" />
275
279
  <br />
276
280
  The menu bar along the left of the screen provides access to functions
@@ -534,13 +538,21 @@
534
538
  </div>
535
539
  </div>
536
540
 
537
- <img src="../img/ais_active.svg" style="height: 20px" alt="" />
541
+ <img
542
+ src="../img/vessels/ais_active.svg"
543
+ style="height: 20px"
544
+ alt=""
545
+ />
538
546
  <b>Active Vessel:</b> displays the current position and heading for a
539
547
  vessel where an update has been received within the time period
540
548
  selected in
541
549
  <i>Settings->Vessels->Mark AIS Target Inactive After</i> (default = 6
542
550
  mins).<br />
543
- <img src="../img/ais_inactive.svg" style="height: 20px" alt="" />
551
+ <img
552
+ src="../img/vessels/ais_inactive.svg"
553
+ style="height: 20px"
554
+ alt=""
555
+ />
544
556
  <b>Inactive Vessel:</b> displays the last received position and
545
557
  heading for a vessel for which an update has NOT been received within
546
558
  the time period selected in
@@ -559,9 +571,17 @@
559
571
  of vessels in the vicinity.<br />
560
572
  <img src="./img/vessel_popover.png" style="height: 150px" alt="" />
561
573
  &nbsp;&nbsp;
562
- <img src="./img/ais_popover.png" style="height: 150px" alt="" />
574
+ <img
575
+ src="./img/vessels/ais_popover.png"
576
+ style="height: 150px"
577
+ alt=""
578
+ />
563
579
  &nbsp;&nbsp;
564
- <img src="./img/ais_properties.png" style="height: 150px" alt="" />
580
+ <img
581
+ src="./img/vessels/ais_properties.png"
582
+ style="height: 150px"
583
+ alt=""
584
+ />
565
585
  </div>
566
586
 
567
587
  <div class="panel" id="navdata">
@@ -1621,13 +1641,21 @@
1621
1641
  </div>
1622
1642
  <div style="display: flex">
1623
1643
  <div style="width: 30px; text-align: center">
1624
- <img src="../img/ais_self.png" style="width: 12px" alt="" />
1644
+ <img
1645
+ src="../img/vessels/ais_self.png"
1646
+ style="width: 12px"
1647
+ alt=""
1648
+ />
1625
1649
  </div>
1626
1650
  <div>Focussed Vessel</div>
1627
1651
  </div>
1628
1652
  <div style="display: flex">
1629
1653
  <div style="width: 30px; text-align: center">
1630
- <img src="../img/ais_inactive.svg" style="width: 24px" alt="" />
1654
+ <img
1655
+ src="../img/vessels/ais_inactive.svg"
1656
+ style="width: 24px"
1657
+ alt=""
1658
+ />
1631
1659
  </div>
1632
1660
  <div>
1633
1661
  Vessel with stale data <i>(&gt;6 mins since last update)</i>
@@ -1635,61 +1663,101 @@
1635
1663
  </div>
1636
1664
  <div style="display: flex">
1637
1665
  <div style="width: 30px; text-align: center">
1638
- <img src="../img/ais_buddy.svg" style="width: 24px" alt="" />
1666
+ <img
1667
+ src="../img/vessels/ais_buddy.svg"
1668
+ style="width: 24px"
1669
+ alt=""
1670
+ />
1639
1671
  </div>
1640
1672
  <div>Vessel marked as "Buddy"</div>
1641
1673
  </div>
1642
1674
  <div style="display: flex">
1643
1675
  <div style="width: 30px; text-align: center">
1644
- <img src="../img/ais_active.svg" style="width: 24px" alt="" />
1676
+ <img
1677
+ src="../img/vessels/ais_active.svg"
1678
+ style="width: 24px"
1679
+ alt=""
1680
+ />
1645
1681
  </div>
1646
1682
  <div>Unspecified <i>(AIS type 10-19)</i></div>
1647
1683
  </div>
1648
1684
  <div style="display: flex">
1649
1685
  <div style="width: 30px; text-align: center">
1650
- <img src="../img/ais_active.svg" style="width: 24px" alt="" />
1686
+ <img
1687
+ src="../img/vessels/ais_active.svg"
1688
+ style="width: 24px"
1689
+ alt=""
1690
+ />
1651
1691
  </div>
1652
1692
  <div>Wing in Ground <i>(AIS type 20-29)</i></div>
1653
1693
  </div>
1654
1694
  <div style="display: flex">
1655
1695
  <div style="width: 30px; text-align: center">
1656
- <img src="../img/ais_active.svg" style="width: 24px" alt="" />
1696
+ <img
1697
+ src="../img/vessels/ais_active.svg"
1698
+ style="width: 24px"
1699
+ alt=""
1700
+ />
1657
1701
  </div>
1658
1702
  <div>Pleasure <i>(AIS type 30-39)</i></div>
1659
1703
  </div>
1660
1704
  <div style="display: flex">
1661
1705
  <div style="width: 30px; text-align: center">
1662
- <img src="../img/ais_highspeed.svg" style="width: 24px" alt="" />
1706
+ <img
1707
+ src="../img/vessels/ais_highspeed.svg"
1708
+ style="width: 24px"
1709
+ alt=""
1710
+ />
1663
1711
  </div>
1664
1712
  <div>High Speed Vessel <i>(AIS type 40-49)</i></div>
1665
1713
  </div>
1666
1714
  <div style="display: flex">
1667
1715
  <div style="width: 30px; text-align: center">
1668
- <img src="../img/ais_special.svg" style="width: 24px" alt="" />
1716
+ <img
1717
+ src="../img/vessels/ais_special.svg"
1718
+ style="width: 24px"
1719
+ alt=""
1720
+ />
1669
1721
  </div>
1670
1722
  <div>Special Vessel <i>(AIS type 50-59)</i></div>
1671
1723
  </div>
1672
1724
  <div style="display: flex">
1673
1725
  <div style="width: 30px; text-align: center">
1674
- <img src="../img/ais_passenger.svg" style="width: 24px" alt="" />
1726
+ <img
1727
+ src="../img/vessels/ais_passenger.svg"
1728
+ style="width: 24px"
1729
+ alt=""
1730
+ />
1675
1731
  </div>
1676
1732
  <div>Passenger Vessel <i>(AIS type 60-69)</i></div>
1677
1733
  </div>
1678
1734
  <div style="display: flex">
1679
1735
  <div style="width: 30px; text-align: center">
1680
- <img src="../img/ais_cargo.svg" style="width: 24px" alt="" />
1736
+ <img
1737
+ src="../img/vessels/ais_cargo.svg"
1738
+ style="width: 24px"
1739
+ alt=""
1740
+ />
1681
1741
  </div>
1682
1742
  <div>Cargo Vessel <i>(AIS type 70-79)</i></div>
1683
1743
  </div>
1684
1744
  <div style="display: flex">
1685
1745
  <div style="width: 30px; text-align: center">
1686
- <img src="../img/ais_tanker.svg" style="width: 24px" alt="" />
1746
+ <img
1747
+ src="../img/vessels/ais_tanker.svg"
1748
+ style="width: 24px"
1749
+ alt=""
1750
+ />
1687
1751
  </div>
1688
1752
  <div>Tanker Vessel <i>(AIS type 80-89)</i></div>
1689
1753
  </div>
1690
1754
  <div style="display: flex">
1691
1755
  <div style="width: 30px; text-align: center">
1692
- <img src="../img/ais_other.svg" style="width: 24px" alt="" />
1756
+ <img
1757
+ src="../img/vessels/ais_other.svg"
1758
+ style="width: 24px"
1759
+ alt=""
1760
+ />
1693
1761
  </div>
1694
1762
  <div>Other <i>(AIS type 90-99)</i></div>
1695
1763
  </div>
@@ -1755,11 +1823,15 @@
1755
1823
 
1756
1824
  <div style="display: flex; flex-wrap: wrap">
1757
1825
  <div>
1758
- <img src="./img/ais_list.png" style="max-width: 250px" alt="" />
1826
+ <img
1827
+ src="./img/vessels/ais_list.png"
1828
+ style="max-width: 250px"
1829
+ alt=""
1830
+ />
1759
1831
  </div>
1760
1832
  <div>
1761
1833
  <img
1762
- src="./img/ais_shiptypes.png"
1834
+ src="./img/vessels/ais_shiptypes.png"
1763
1835
  style="max-width: 250px"
1764
1836
  alt=""
1765
1837
  />
@@ -1800,7 +1872,7 @@
1800
1872
  </div>
1801
1873
  </div>
1802
1874
  <img
1803
- src="./img/ais_properties.png"
1875
+ src="./img/vessels/ais_properties.png"
1804
1876
  style="max-width: 250px"
1805
1877
  alt=""
1806
1878
  /><br />