@signalk/freeboard-sk 3.1.0 → 3.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugin/alarms/alarms.js +9 -5
- package/plugin/lib/fetch.js +1 -1
- package/public/assets/features-corpus.json +1 -1
- package/public/assets/help/index.html +27 -4
- package/public/{chunk-4WQJ5OCH.js → chunk-2RJKLB5L.js} +62 -62
- package/public/chunk-B5SN3ZBN.js +80 -0
- package/public/{chunk-JWF7HEH3.js → chunk-DDECKPFC.js} +1 -1
- package/public/{chunk-DXGM3UI4.js → chunk-HB342AB6.js} +1 -1
- package/public/{chunk-R2B7EL5S.js → chunk-JOTL4UUV.js} +1 -1
- package/public/{chunk-2BZ663DE.js → chunk-L3MJOGJ2.js} +1 -1
- package/public/{chunk-KOKEUVWV.js → chunk-OU4PGUT3.js} +1 -1
- package/public/chunk-TEKC7VXV.js +1 -0
- package/public/{chunk-DN47TOA6.js → chunk-TVMAD5AZ.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-L4CGDOIX.js → main-WYFYYBYG.js} +8 -8
- package/public/{worker-L3MMILBY.js → worker-2AV5I4KP.js} +1 -1
- package/public/{worker-DXJYWOSS.js → worker-WYGJSPFM.js} +3 -3
- package/public/worker-XSMNG74L.js +3 -0
- package/public/chunk-5FQJDXLT.js +0 -1
- package/public/chunk-GECNK37G.js +0 -80
- package/public/worker-RQRJAJAB.js +0 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var wi=Object.create;var Wr=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Ri=Object.getOwnPropertyNames;var Li=Object.getPrototypeOf,Ti=Object.prototype.hasOwnProperty;var u=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var qi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ri(t))!Ti.call(e,i)&&i!==r&&Wr(e,i,{get:()=>t[i],enumerable:!(n=Di(t,i))||n.enumerable});return e};var Br=(e,t,r)=>(r=e!=null?wi(Li(e)):{},qi(t||!e||!e.__esModule?Wr(r,"default",{value:e,enumerable:!0}):r,e));var x=u(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.timeConversion=p.sexagesimalPattern=p.longitudeKeys=p.latitudeKeys=p.earthRadius=p.distanceConversion=p.areaConversion=p.altitudeKeys=p.RAD_TO_DEG=p.MINLON=p.MINLAT=p.MAXLON=p.MAXLAT=p.DEG_TO_RAD=void 0;var Qu=p.sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/,el=p.earthRadius=6378137,tl=p.MINLAT=-90,rl=p.MAXLAT=90,nl=p.MINLON=-180,il=p.MAXLON=180,al=p.DEG_TO_RAD=Math.PI/180,ol=p.RAD_TO_DEG=180/Math.PI,sl=p.longitudeKeys=["lng","lon","longitude",0],ul=p.latitudeKeys=["lat","latitude",1],ll=p.altitudeKeys=["alt","altitude","elevation","elev",2],cl=p.distanceConversion={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144},fl=p.timeConversion={m:60,h:3600,d:86400},I=p.areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};I.sqm=I.m2;I.sqkm=I.km2;I.sqft=I.ft2;I.sqyd=I.yd2;I.sqin=I.in2});var fe=u(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=void 0;var Ki=(e,t)=>{if(e==null)throw new Error(`'${e}' is no valid coordinate.`);return t.reduce((r,n)=>Object.prototype.hasOwnProperty.call(e,n)&&n!==void 0&&r===void 0?(r=n,n):r,void 0)},ml=Ne.default=Ki});var de=u(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.default=void 0;var Wi=e=>{let t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},gl=je.default=Wi});var me=u(Fe=>{"use strict";Object.defineProperty(Fe,"__esModule",{value:!0});Fe.default=void 0;var Bi=x(),$i=e=>Bi.sexagesimalPattern.test(e.toString().trim()),bl=Fe.default=$i});var pe=u(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.default=void 0;var Gi=x(),Hi=e=>{let t=new RegExp(Gi.sexagesimalPattern).exec(e.toString().trim());if(t===null)throw new Error("Given value is not in sexagesimal format");let r=Number(t[2])/60||0,n=Number(t[4])/3600||0,i=parseFloat(t[1])+r+n;return["S","W"].includes(t[7])?-i:i},_l=Ue.default=Hi});var Ke=u(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.default=void 0;var tr=x(),rr=zi(fe());function zi(e){return e&&e.__esModule?e:{default:e}}var Xi=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:tr.longitudeKeys,latitude:tr.latitudeKeys,altitude:tr.altitudeKeys},r=(0,rr.default)(e,t.longitude),n=(0,rr.default)(e,t.latitude),i=(0,rr.default)(e,t.altitude);return{latitude:n,longitude:r,...i?{altitude:i}:{}}},xl=Ve.default=Xi});var ir=u(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.default=void 0;var Zi=nr(de()),Yi=nr(me()),Ji=nr(pe()),nn=x();function nr(e){return e&&e.__esModule?e:{default:e}}var an=e=>{if((0,Zi.default)(e)){let t=parseFloat(e);return!(t>nn.MAXLAT||t<nn.MINLAT)}return(0,Yi.default)(e)?an((0,Ji.default)(e)):!1},Pl=We.default=an});var or=u(Be=>{"use strict";Object.defineProperty(Be,"__esModule",{value:!0});Be.default=void 0;var Qi=ar(de()),ea=ar(me()),ta=ar(pe()),on=x();function ar(e){return e&&e.__esModule?e:{default:e}}var sn=e=>{if((0,Qi.default)(e)){let t=parseFloat(e);return!(t>on.MAXLON||t<on.MINLON)}return(0,ea.default)(e)?sn((0,ta.default)(e)):!1},Ol=Be.default=sn});var ur=u($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var ra=sr(Ke()),un=sr(ir()),ln=sr(or());function sr(e){return e&&e.__esModule?e:{default:e}}var na=e=>{let{latitude:t,longitude:r}=(0,ra.default)(e);if(Array.isArray(e)&&e.length>=2)return(0,ln.default)(e[0])&&(0,un.default)(e[1]);if(t===void 0||r===void 0)return!1;let n=e[r],i=e[t];return i===void 0||n===void 0?!1:(0,un.default)(i)&&(0,ln.default)(n)},wl=$e.default=na});var He=u(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.default=void 0;var ia=he(de()),aa=he(me()),oa=he(pe()),cn=he(ur()),sa=he(Ke());function he(e){return e&&e.__esModule?e:{default:e}}var ge=e=>{if((0,ia.default)(e))return Number(e);if((0,aa.default)(e))return(0,oa.default)(e);if((0,cn.default)(e)){let t=(0,sa.default)(e);return Array.isArray(e)?e.map((r,n)=>[0,1].includes(n)?ge(r):r):{...e,...t.latitude&&{[t.latitude]:ge(e[t.latitude])},...t.longitude&&{[t.longitude]:ge(e[t.longitude])}}}return Array.isArray(e)?e.map(t=>(0,cn.default)(t)?ge(t):t):e},Rl=Ge.default=ge});var R=u(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var ua=x(),la=fn(fe()),ca=fn(He());function fn(e){return e&&e.__esModule?e:{default:e}}var fa=(e,t)=>{let r=(0,la.default)(e,ua.latitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,ca.default)(n)},Tl=ze.default=fa});var L=u(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var da=x(),ma=dn(fe()),pa=dn(He());function dn(e){return e&&e.__esModule?e:{default:e}}var ga=(e,t)=>{let r=(0,ma.default)(e,da.longitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,pa.default)(n)},kl=Xe.default=ga});var N=u(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});Ze.default=void 0;var ha=x(),ba=e=>e*ha.DEG_TO_RAD,El=Ze.default=ba});var H=u(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var ya=x(),_a=e=>e*ya.RAD_TO_DEG,Nl=Ye.default=_a});var pn=u(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var va=Je(R()),xa=Je(L()),lr=Je(N()),cr=Je(H()),mn=x();function Je(e){return e&&e.__esModule?e:{default:e}}var Ma=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,i=(0,va.default)(e),a=(0,xa.default)(e),o=t/n,s=(0,lr.default)(r),f=(0,lr.default)(i),v=(0,lr.default)(a),g=Math.asin(Math.sin(f)*Math.cos(o)+Math.cos(f)*Math.sin(o)*Math.cos(s)),h=v+Math.atan2(Math.sin(s)*Math.sin(o)*Math.cos(f),Math.cos(o)-Math.sin(f)*Math.sin(g)),m=(0,cr.default)(h);return(m<mn.MINLON||m>mn.MAXLON)&&(h=(h+3*Math.PI)%(2*Math.PI)-Math.PI,m=(0,cr.default)(h)),{latitude:(0,cr.default)(g),longitude:m}},Fl=Qe.default=Ma});var gn=u(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var Pa=x(),Sa=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=Pa.areaConversion[t];if(r)return e*r;throw new Error("Invalid unit used for area conversion.")},Vl=et.default=Sa});var hn=u(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.default=void 0;var Oa=x(),Aa=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=Oa.distanceConversion[t];if(r)return e*r;throw new Error("Invalid unit used for distance conversion.")},Wl=tt.default=Aa});var bn=u(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var rt=x(),wa=function(e){switch(arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh"){case"kmh":return e*rt.timeConversion.h*rt.distanceConversion.km;case"mph":return e*rt.timeConversion.h*rt.distanceConversion.mi;default:return e}},$l=nt.default=wa});var yn=u(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var Da=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4,r=Math.pow(10,t);return Math.round(e*r)/r},Ra=e=>{let[t,r]=e.toString().split("."),n=Math.abs(Number(t)),i=+("0."+(r||0))*60,a=i.toString().split("."),o=Math.floor(i),s=Da(+("0."+(a[1]||0))*60).toString(),[f,v="0"]=s.split(".");return n+"\xB0 "+o.toString().padStart(2,"0")+"' "+f.padStart(2,"0")+"."+v.padEnd(1,"0")+'"'},Hl=it.default=Ra});var fr=u(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var La=e=>e>1?1:e<-1?-1:e,Xl=at.default=La});var W=u(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});st.default=void 0;var _n=ot(R()),vn=ot(L()),dr=ot(N()),Ta=ot(fr()),qa=x();function ot(e){return e&&e.__esModule?e:{default:e}}var ka=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,dr.default)((0,_n.default)(e)),i=(0,dr.default)((0,_n.default)(t)),a=(0,dr.default)((0,vn.default)(e)-(0,vn.default)(t)),o=Math.acos((0,Ta.default)(Math.sin(i)*Math.sin(n)+Math.cos(i)*Math.cos(n)*Math.cos(a)))*qa.earthRadius;return Math.round(o/r)*r},Yl=st.default=ka});var mr=u(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var xn=Ca(W());function Ca(e){return e&&e.__esModule?e:{default:e}}var Ea=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:xn.default;return r=typeof r=="function"?r:xn.default,t.slice().sort((n,i)=>r(e,n)-r(e,i))},Ql=ut.default=Ea});var Mn=u(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var Ia=Na(mr());function Na(e){return e&&e.__esModule?e:{default:e}}var ja=(e,t)=>(0,Ia.default)(e,t)[0],tc=lt.default=ja});var On=u(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.default=void 0;var pr=gr(N()),Fa=gr(R()),Pn=gr(L()),Sn=x();function gr(e){return e&&e.__esModule?e:{default:e}}var Ua=e=>{let t=0;if(e.length>2){let r,n,i;for(let a=0;a<e.length;a++){a===e.length-2?(r=e.length-2,n=e.length-1,i=0):a===e.length-1?(r=e.length-1,n=0,i=1):(r=a,n=a+1,i=a+2);let o=(0,Pn.default)(e[r]),s=(0,Fa.default)(e[n]),f=(0,Pn.default)(e[i]);t+=((0,pr.default)(f)-(0,pr.default)(o))*Math.sin((0,pr.default)(s))}t=t*Sn.earthRadius*Sn.earthRadius/2}return Math.abs(t)},nc=ct.default=Ua});var hr=u(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var Va=An(R()),Ka=An(L());function An(e){return e&&e.__esModule?e:{default:e}}var Wa=e=>{if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce((t,r)=>{let n=(0,Va.default)(r),i=(0,Ka.default)(r);return{maxLat:Math.max(n,t.maxLat),minLat:Math.min(n,t.minLat),maxLng:Math.max(i,t.maxLng),minLng:Math.min(i,t.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})},ac=ft.default=Wa});var wn=u(pt=>{"use strict";Object.defineProperty(pt,"__esModule",{value:!0});pt.default=void 0;var Ba=mt(R()),$a=mt(L()),re=mt(N()),dt=mt(H()),be=x();function mt(e){return e&&e.__esModule?e:{default:e}}var Ga=(e,t)=>{let r=(0,Ba.default)(e),n=(0,$a.default)(e),i=(0,re.default)(r),a=(0,re.default)(n),o=t/be.earthRadius,s=i-o,f=i+o,v=(0,re.default)(be.MAXLAT),g=(0,re.default)(be.MINLAT),h=(0,re.default)(be.MAXLON),m=(0,re.default)(be.MINLON),P,y;if(s>g&&f<v){let w=Math.asin(Math.sin(o)/Math.cos(i));P=a-w,P<m&&(P+=Math.PI*2),y=a+w,y>h&&(y-=Math.PI*2)}else s=Math.max(s,g),f=Math.min(f,v),P=m,y=h;return[{latitude:(0,dt.default)(s),longitude:(0,dt.default)(P)},{latitude:(0,dt.default)(f),longitude:(0,dt.default)(y)}]},sc=pt.default=Ga});var Ln=u(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Ha=gt(R()),za=gt(L()),Dn=gt(N()),Rn=gt(H());function gt(e){return e&&e.__esModule?e:{default:e}}var Xa=e=>{if(Array.isArray(e)===!1||e.length===0)return!1;let t=e.length,r=e.reduce((o,s)=>{let f=(0,Dn.default)((0,Ha.default)(s)),v=(0,Dn.default)((0,za.default)(s));return{X:o.X+Math.cos(f)*Math.cos(v),Y:o.Y+Math.cos(f)*Math.sin(v),Z:o.Z+Math.sin(f)}},{X:0,Y:0,Z:0}),n=r.X/t,i=r.Y/t,a=r.Z/t;return{longitude:(0,Rn.default)(Math.atan2(i,n)),latitude:(0,Rn.default)(Math.atan2(a,Math.sqrt(n*n+i*i)))}},lc=ht.default=Xa});var Tn=u(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.default=void 0;var Za=Ya(hr());function Ya(e){return e&&e.__esModule?e:{default:e}}var Ja=e=>{let t=(0,Za.default)(e),r=t.minLat+(t.maxLat-t.minLat)/2,n=t.minLng+(t.maxLng-t.minLng)/2;return{latitude:parseFloat(r.toFixed(6)),longitude:parseFloat(n.toFixed(6))}},fc=bt.default=Ja});var br=u(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});vt.default=void 0;var qn=_t(R()),kn=_t(L()),yt=_t(N()),Qa=_t(H());function _t(e){return e&&e.__esModule?e:{default:e}}var eo=(e,t)=>{let r=(0,yt.default)((0,kn.default)(t))-(0,yt.default)((0,kn.default)(e)),n=Math.log(Math.tan((0,yt.default)((0,qn.default)(t))/2+Math.PI/4)/Math.tan((0,yt.default)((0,qn.default)(e))/2+Math.PI/4));return Math.abs(r)>Math.PI&&(r>0?r=(Math.PI*2-r)*-1:r=Math.PI*2+r),((0,Qa.default)(Math.atan2(r,n))+360)%360},mc=vt.default=eo});var En=u(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var Cn=to(br());function to(e){return e&&e.__esModule?e:{default:e}}var ro=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Cn.default,n=typeof r=="function"?r(e,t):(0,Cn.default)(e,t);if(isNaN(n))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(n/22.5)){case 1:return"NNE";case 2:return"NE";case 3:return"ENE";case 4:return"E";case 5:return"ESE";case 6:return"SE";case 7:return"SSE";case 8:return"S";case 9:return"SSW";case 10:return"SW";case 11:return"WSW";case 12:return"W";case 13:return"WNW";case 14:return"NW";case 15:return"NNW";default:return"N"}},gc=xt.default=ro});var _r=u(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var yr=Nn(W()),In=Nn(fr());function Nn(e){return e&&e.__esModule?e:{default:e}}var no=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,i=(0,yr.default)(t,e,n),a=(0,yr.default)(e,r,n),o=(0,yr.default)(t,r,n),s=Math.acos((0,In.default)((i*i+o*o-a*a)/(2*i*o))),f=Math.acos((0,In.default)((a*a+o*o-i*i)/(2*a*o)));return i===0||a===0?0:o===0||s>Math.PI/2?i:f>Math.PI/2?a:Math.sin(s)*i},bc=Mt.default=no});var Un=u(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.default=void 0;var jn=Pt(R()),Fn=Pt(L()),F=Pt(N()),io=Pt(H());function Pt(e){return e&&e.__esModule?e:{default:e}}var ao=(e,t)=>{let r=(0,jn.default)(t),n=(0,Fn.default)(t),i=(0,jn.default)(e),a=(0,Fn.default)(e);return((0,io.default)(Math.atan2(Math.sin((0,F.default)(n)-(0,F.default)(a))*Math.cos((0,F.default)(r)),Math.cos((0,F.default)(i))*Math.sin((0,F.default)(r))-Math.sin((0,F.default)(i))*Math.cos((0,F.default)(r))*Math.cos((0,F.default)(n)-(0,F.default)(a))))+360)%360},_c=St.default=ao});var Vn=u(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var oo=so(W());function so(e){return e&&e.__esModule?e:{default:e}}var uo=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:oo.default;return e.reduce((r,n)=>(typeof r=="object"&&r.last!==null&&(r.distance+=t(n,r.last)),r.last=n,r),{last:null,distance:0}).distance},xc=Ot.default=uo});var $n=u(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.default=void 0;var Kn=xr(R()),Wn=xr(L()),vr=xr(N()),Bn=x();function xr(e){return e&&e.__esModule?e:{default:e}}var lo=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,Kn.default)(e),i=(0,Wn.default)(e),a=(0,Kn.default)(t),o=(0,Wn.default)(t),s=6356752314245e-6,f=1/298.257223563,v=(0,vr.default)(o-i),g,h,m,P,y,w,Fr=Math.atan((1-f)*Math.tan((0,vr.default)(parseFloat(n)))),Ur=Math.atan((1-f)*Math.tan((0,vr.default)(parseFloat(a)))),Se=Math.sin(Fr),Oe=Math.cos(Fr),Ae=Math.sin(Ur),Z=Math.cos(Ur),ae=v,Vr,Kr=100;do{let Wt=Math.sin(ae),Bt=Math.cos(ae);if(w=Math.sqrt(Z*Wt*(Z*Wt)+(Oe*Ae-Se*Z*Bt)*(Oe*Ae-Se*Z*Bt)),w===0)return 0;g=Se*Ae+Oe*Z*Bt,h=Math.atan2(w,g),m=Oe*Z*Wt/w,P=1-m*m,y=g-2*Se*Ae/P,isNaN(y)&&(y=0);let $t=f/16*P*(4+f*(4-3*P));Vr=ae,ae=v+(1-$t)*f*m*(h+$t*w*(y+$t*g*(-1+2*y*y)))}while(Math.abs(ae-Vr)>1e-12&&--Kr>0);if(Kr===0)return NaN;let K=P*(Bn.earthRadius*Bn.earthRadius-s*s)/(s*s),Si=1+K/16384*(4096+K*(-768+K*(320-175*K))),Kt=K/1024*(256+K*(-128+K*(74-47*K))),Oi=Kt*w*(y+Kt/4*(g*(-1+2*y*y)-Kt/6*y*(-3+4*w*w)*(-3+4*y*y))),Ai=s*Si*(h-Oi);return Math.round(Ai/r)*r},Pc=At.default=lo});var Gn=u(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.default=void 0;var co=e=>{if(/^(NNE|NE|NNW|N)$/.test(e))return"N";if(/^(ENE|E|ESE|SE)$/.test(e))return"E";if(/^(SSE|S|SSW|SW)$/.test(e))return"S";if(/^(WSW|W|WNW|NW)$/.test(e))return"W"},Oc=wt.default=co});var Hn=u(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var fo=mo(W());function mo(e){return e&&e.__esModule?e:{default:e}}var po=function(e,t){let n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:fo.default)(e,t),i=Number(t.time)-Number(e.time);return n/i*1e3},wc=Dt.default=po});var zn=u(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var Mr=go(W());function go(e){return e&&e.__esModule?e:{default:e}}var ho=(e,t,r)=>(0,Mr.default)(t,e)+(0,Mr.default)(e,r)===(0,Mr.default)(t,r),Rc=Rt.default=ho});var Zn=u(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var Lt=Xn(R()),T=Xn(L());function Xn(e){return e&&e.__esModule?e:{default:e}}var bo=(e,t)=>{let r=!1,n=t.length;for(let i=-1,a=n-1;++i<n;a=i)((0,T.default)(t[i])<=(0,T.default)(e)&&(0,T.default)(e)<(0,T.default)(t[a])||(0,T.default)(t[a])<=(0,T.default)(e)&&(0,T.default)(e)<(0,T.default)(t[i]))&&(0,Lt.default)(e)<((0,Lt.default)(t[a])-(0,Lt.default)(t[i]))*((0,T.default)(e)-(0,T.default)(t[i]))/((0,T.default)(t[a])-(0,T.default)(t[i]))+(0,Lt.default)(t[i])&&(r=!r);return r},Tc=Tt.default=bo});var Yn=u(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.default=void 0;var yo=_o(_r());function _o(e){return e&&e.__esModule?e:{default:e}}var vo=(e,t,r,n)=>(0,yo.default)(e,t,r)<n,kc=qt.default=vo});var Jn=u(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.default=void 0;var xo=Mo(W());function Mo(e){return e&&e.__esModule?e:{default:e}}var Po=(e,t,r)=>(0,xo.default)(e,t,.01)<r,Ec=kt.default=Po});var Qn=u(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var So=e=>{if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");return e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", ").map(n=>{let[i,a]=n.split(" ");return{longitude:parseFloat(i),latitude:parseFloat(a)}})},Nc=Ct.default=So});var ei=u(l=>{"use strict";Object.defineProperty(l,"__esModule",{value:!0});var Oo={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(l,"computeDestinationPoint",{enumerable:!0,get:function(){return Ao.default}});Object.defineProperty(l,"convertArea",{enumerable:!0,get:function(){return wo.default}});Object.defineProperty(l,"convertDistance",{enumerable:!0,get:function(){return Do.default}});Object.defineProperty(l,"convertSpeed",{enumerable:!0,get:function(){return Ro.default}});Object.defineProperty(l,"decimalToSexagesimal",{enumerable:!0,get:function(){return Lo.default}});Object.defineProperty(l,"findNearest",{enumerable:!0,get:function(){return To.default}});Object.defineProperty(l,"getAreaOfPolygon",{enumerable:!0,get:function(){return qo.default}});Object.defineProperty(l,"getBounds",{enumerable:!0,get:function(){return ko.default}});Object.defineProperty(l,"getBoundsOfDistance",{enumerable:!0,get:function(){return Co.default}});Object.defineProperty(l,"getCenter",{enumerable:!0,get:function(){return Eo.default}});Object.defineProperty(l,"getCenterOfBounds",{enumerable:!0,get:function(){return Io.default}});Object.defineProperty(l,"getCompassDirection",{enumerable:!0,get:function(){return No.default}});Object.defineProperty(l,"getCoordinateKey",{enumerable:!0,get:function(){return jo.default}});Object.defineProperty(l,"getCoordinateKeys",{enumerable:!0,get:function(){return Fo.default}});Object.defineProperty(l,"getDistance",{enumerable:!0,get:function(){return Uo.default}});Object.defineProperty(l,"getDistanceFromLine",{enumerable:!0,get:function(){return Vo.default}});Object.defineProperty(l,"getGreatCircleBearing",{enumerable:!0,get:function(){return Ko.default}});Object.defineProperty(l,"getLatitude",{enumerable:!0,get:function(){return Wo.default}});Object.defineProperty(l,"getLongitude",{enumerable:!0,get:function(){return Bo.default}});Object.defineProperty(l,"getPathLength",{enumerable:!0,get:function(){return $o.default}});Object.defineProperty(l,"getPreciseDistance",{enumerable:!0,get:function(){return Go.default}});Object.defineProperty(l,"getRhumbLineBearing",{enumerable:!0,get:function(){return Ho.default}});Object.defineProperty(l,"getRoughCompassDirection",{enumerable:!0,get:function(){return zo.default}});Object.defineProperty(l,"getSpeed",{enumerable:!0,get:function(){return Xo.default}});Object.defineProperty(l,"isDecimal",{enumerable:!0,get:function(){return Zo.default}});Object.defineProperty(l,"isPointInLine",{enumerable:!0,get:function(){return Yo.default}});Object.defineProperty(l,"isPointInPolygon",{enumerable:!0,get:function(){return Jo.default}});Object.defineProperty(l,"isPointNearLine",{enumerable:!0,get:function(){return Qo.default}});Object.defineProperty(l,"isPointWithinRadius",{enumerable:!0,get:function(){return es.default}});Object.defineProperty(l,"isSexagesimal",{enumerable:!0,get:function(){return ts.default}});Object.defineProperty(l,"isValidCoordinate",{enumerable:!0,get:function(){return rs.default}});Object.defineProperty(l,"isValidLatitude",{enumerable:!0,get:function(){return ns.default}});Object.defineProperty(l,"isValidLongitude",{enumerable:!0,get:function(){return is.default}});Object.defineProperty(l,"orderByDistance",{enumerable:!0,get:function(){return as.default}});Object.defineProperty(l,"sexagesimalToDecimal",{enumerable:!0,get:function(){return os.default}});Object.defineProperty(l,"toDecimal",{enumerable:!0,get:function(){return ss.default}});Object.defineProperty(l,"toDeg",{enumerable:!0,get:function(){return ls.default}});Object.defineProperty(l,"toRad",{enumerable:!0,get:function(){return us.default}});Object.defineProperty(l,"wktToPolygon",{enumerable:!0,get:function(){return cs.default}});var Ao=d(pn()),wo=d(gn()),Do=d(hn()),Ro=d(bn()),Lo=d(yn()),To=d(Mn()),qo=d(On()),ko=d(hr()),Co=d(wn()),Eo=d(Ln()),Io=d(Tn()),No=d(En()),jo=d(fe()),Fo=d(Ke()),Uo=d(W()),Vo=d(_r()),Ko=d(Un()),Wo=d(R()),Bo=d(L()),$o=d(Vn()),Go=d($n()),Ho=d(br()),zo=d(Gn()),Xo=d(Hn()),Zo=d(de()),Yo=d(zn()),Jo=d(Zn()),Qo=d(Yn()),es=d(Jn()),ts=d(me()),rs=d(ur()),ns=d(ir()),is=d(or()),as=d(mr()),os=d(pe()),ss=d(He()),us=d(N()),ls=d(H()),cs=d(Qn()),Pr=x();Object.keys(Pr).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(Oo,e)||e in l&&l[e]===Pr[e]||Object.defineProperty(l,e,{enumerable:!0,get:function(){return Pr[e]}})});function d(e){return e&&e.__esModule?e:{default:e}}});var ti=u(wr=>{"use strict";wr.__esModule=!0;function Or(e,t){return e*e+t*t}function fs(e,t){return Or(e[0]-t[0],e[1]-t[1])}function ds(e,t,r){var n=t[0],i=t[1],a=r[0]-n,o=r[1]-i;if(a!==0||o!==0){var s=((e[0]-n)*a+(e[1]-i)*o)/Or(a,o);s>1?(n=r[0],i=r[1]):s>0&&(n+=a*s,i+=o*s)}return Or(e[0]-n,e[1]-i)}function ms(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],fs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Ar(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var f=ds(e[s],e[t],e[r]);f>a&&(o=s,a=f)}a>n&&(o-t>1&&Ar(e,t,o,n,i),i.push(e[o]),r-o>1&&Ar(e,o,r,n,i))}function ps(e,t){var r=e.length-1,n=[e[0]];return Ar(e,0,r,t,n),n.push(e[r]),n}function gs(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:ms(e,n),e=ps(e,n),e}wr.SimplifyAP=gs});var ri=u(Lr=>{"use strict";Lr.__esModule=!0;function Dr(e,t){return e*e+t*t}function hs(e,t){return Dr(e.longitude-t.longitude,e.latitude-t.latitude)}function bs(e,t,r){var n=t.longitude,i=t.latitude,a=r.longitude-n,o=r.latitude-i;if(a!==0||o!==0){var s=((e.longitude-n)*a+(e.latitude-i)*o)/Dr(a,o);s>1?(n=r.longitude,i=r.latitude):s>0&&(n+=a*s,i+=o*s)}return Dr(e.longitude-n,e.latitude-i)}function ys(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],hs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Rr(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var f=bs(e[s],e[t],e[r]);f>a&&(o=s,a=f)}a>n&&(o-t>1&&Rr(e,t,o,n,i),i.push(e[o]),r-o>1&&Rr(e,o,r,n,i))}function _s(e,t){var r=e.length-1,n=[e[0]];return Rr(e,0,r,t,n),n.push(e[r]),n}function vs(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:ys(e,n),e=_s(e,n),e}Lr.SimplifyLL=vs});var ni=u(kr=>{"use strict";kr.__esModule=!0;function Tr(e,t){return e*e+t*t}function xs(e,t){return Tr(e.x-t.x,e.y-t.y)}function Ms(e,t,r){var n=t.x,i=t.y,a=r.x-n,o=r.y-i;if(a!==0||o!==0){var s=((e.x-n)*a+(e.y-i)*o)/Tr(a,o);s>1?(n=r.x,i=r.y):s>0&&(n+=a*s,i+=o*s)}return Tr(e.x-n,e.y-i)}function Ps(e,t){for(var r=e[0],n,i=[r],a=1,o=e.length;a<o;a++)n=e[a],xs(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function qr(e,t,r,n,i){for(var a=n,o,s=t+1;s<r;s++){var f=Ms(e[s],e[t],e[r]);f>a&&(o=s,a=f)}a>n&&(o-t>1&&qr(e,t,o,n,i),i.push(e[o]),r-o>1&&qr(e,o,r,n,i))}function Ss(e,t){var r=e.length-1,n=[e[0]];return qr(e,0,r,t,n),n.push(e[r]),n}function Os(e,t,r){if(t===void 0&&(t=1),r===void 0&&(r=!1),e.length<=2)return e;var n=t*t;return e=r?e:Ps(e,n),e=Ss(e,n),e}kr.Simplify=Os});var ii=u(ye=>{"use strict";ye.__esModule=!0;var As=ti();ye.SimplifyAP=As.SimplifyAP;var ws=ri();ye.SimplifyLL=ws.SimplifyLL;var Ds=ni();ye.Simplify=Ds.Simplify});function D(e){return typeof e=="function"}function we(e){let r=e(n=>{Error.call(n),n.stack=new Error().stack});return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var De=we(e=>function(r){e(this),this.message=r?`${r.length} errors occurred during unsubscription:
|
|
2
|
+
${r.map((n,i)=>`${i+1}) ${n.toString()}`).join(`
|
|
3
|
+
`)}`:"",this.name="UnsubscriptionError",this.errors=r});function oe(e,t){if(e){let r=e.indexOf(t);0<=r&&e.splice(r,1)}}var C=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:r}=this;if(r)if(this._parentage=null,Array.isArray(r))for(let a of r)a.remove(this);else r.remove(this);let{initialTeardown:n}=this;if(D(n))try{n()}catch(a){t=a instanceof De?a.errors:[a]}let{_finalizers:i}=this;if(i){this._finalizers=null;for(let a of i)try{$r(a)}catch(o){t=t??[],o instanceof De?t=[...t,...o.errors]:t.push(o)}}if(t)throw new De(t)}}add(t){var r;if(t&&t!==this)if(this.closed)$r(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}}_hasParent(t){let{_parentage:r}=this;return r===t||Array.isArray(r)&&r.includes(t)}_addParent(t){let{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t}_removeParent(t){let{_parentage:r}=this;r===t?this._parentage=null:Array.isArray(r)&&oe(r,t)}remove(t){let{_finalizers:r}=this;r&&oe(r,t),t instanceof e&&t._removeParent(this)}};C.EMPTY=(()=>{let e=new C;return e.closed=!0,e})();var Gt=C.EMPTY;function Re(e){return e instanceof C||e&&"closed"in e&&D(e.remove)&&D(e.add)&&D(e.unsubscribe)}function $r(e){D(e)?e():e.unsubscribe()}var q={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Y={setTimeout(e,t,...r){let{delegate:n}=Y;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){let{delegate:t}=Y;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Gr(e){Y.setTimeout(()=>{let{onUnhandledError:t}=q;if(t)t(e);else throw e})}function Ht(){}var Hr=zt("C",void 0,void 0);function zr(e){return zt("E",void 0,e)}function Xr(e){return zt("N",e,void 0)}function zt(e,t,r){return{kind:e,value:t,error:r}}var B=null;function J(e){if(q.useDeprecatedSynchronousErrorHandling){let t=!B;if(t&&(B={errorThrown:!1,error:null}),e(),t){let{errorThrown:r,error:n}=B;if(B=null,r)throw n}}else e()}function Zr(e){q.useDeprecatedSynchronousErrorHandling&&B&&(B.errorThrown=!0,B.error=e)}var se=class extends C{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Re(t)&&t.add(this)):this.destination=Ei}static create(t,r,n){return new Q(t,r,n)}next(t){this.isStopped?Zt(Xr(t),this):this._next(t)}error(t){this.isStopped?Zt(zr(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Zt(Hr,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},ki=Function.prototype.bind;function Xt(e,t){return ki.call(e,t)}var Yt=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:r}=this;if(r.next)try{r.next(t)}catch(n){Le(n)}}error(t){let{partialObserver:r}=this;if(r.error)try{r.error(t)}catch(n){Le(n)}else Le(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(r){Le(r)}}},Q=class extends se{constructor(t,r,n){super();let i;if(D(t)||!t)i={next:t??void 0,error:r??void 0,complete:n??void 0};else{let a;this&&q.useDeprecatedNextContext?(a=Object.create(t),a.unsubscribe=()=>this.unsubscribe(),i={next:t.next&&Xt(t.next,a),error:t.error&&Xt(t.error,a),complete:t.complete&&Xt(t.complete,a)}):i=t}this.destination=new Yt(i)}};function Le(e){q.useDeprecatedSynchronousErrorHandling?Zr(e):Gr(e)}function Ci(e){throw e}function Zt(e,t){let{onStoppedNotification:r}=q;r&&Y.setTimeout(()=>r(e,t))}var Ei={closed:!0,next:Ht,error:Ci,complete:Ht};var Yr=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Jr(e){return e}function Qr(e){return e.length===0?Jr:e.length===1?e[0]:function(r){return e.reduce((n,i)=>i(n),r)}}var $=class e{constructor(t){t&&(this._subscribe=t)}lift(t){let r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,n){let i=Ni(t)?t:new Q(t,r,n);return J(()=>{let{operator:a,source:o}=this;i.add(a?a.call(i,o):o?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return r=en(r),new r((n,i)=>{let a=new Q({next:o=>{try{t(o)}catch(s){i(s),a.unsubscribe()}},error:i,complete:n});this.subscribe(a)})}_subscribe(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)}[Yr](){return this}pipe(...t){return Qr(t)(this)}toPromise(t){return t=en(t),new t((r,n)=>{let i;this.subscribe(a=>i=a,a=>n(a),()=>r(i))})}};$.create=e=>new $(e);function en(e){var t;return(t=e??q.Promise)!==null&&t!==void 0?t:Promise}function Ii(e){return e&&D(e.next)&&D(e.error)&&D(e.complete)}function Ni(e){return e&&e instanceof se||Ii(e)&&Re(e)}var tn=we(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var E=class extends ${constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){let r=new Te(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new tn}next(t){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(t)}})}error(t){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;let{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){J(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){let{hasError:r,isStopped:n,observers:i}=this;return r||n?Gt:(this.currentObservers=null,i.push(t),new C(()=>{this.currentObservers=null,oe(i,t)}))}_checkFinalizedStatuses(t){let{hasError:r,thrownError:n,isStopped:i}=this;r?t.error(n):i&&t.complete()}asObservable(){let t=new $;return t.source=this,t}};E.create=(e,t)=>new Te(e,t);var Te=class extends E{constructor(t,r){super(),this.destination=t,this.source=r}next(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.next)===null||n===void 0||n.call(r,t)}error(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.error)===null||n===void 0||n.call(r,t)}complete(){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||r===void 0||r.call(t)}_subscribe(t){var r,n;return(n=(r=this.source)===null||r===void 0?void 0:r.subscribe(t))!==null&&n!==void 0?n:Gt}};var S=[];for(let e=0;e<256;++e)S.push((e+256).toString(16).slice(1));function rn(e,t=0){return(S[e[t+0]]+S[e[t+1]]+S[e[t+2]]+S[e[t+3]]+"-"+S[e[t+4]]+S[e[t+5]]+"-"+S[e[t+6]]+S[e[t+7]]+"-"+S[e[t+8]]+S[e[t+9]]+"-"+S[e[t+10]]+S[e[t+11]]+S[e[t+12]]+S[e[t+13]]+S[e[t+14]]+S[e[t+15]]).toLowerCase()}var ji=new Uint8Array(16);function Jt(){return crypto.getRandomValues(ji)}function Fi(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():Ui(e,t,r)}function Ui(e,t,r){e=e||{};let n=e.random??e.rng?.()??Jt();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)t[r+i]=n[i];return t}return rn(n)}var Qt=Fi;var qe=class{_connect;_close;_error;_message;ws;_filter="";_wsTimeout=2e4;_token="";_playbackMode=!1;onConnect;onClose;onError;onMessage;version=1;endpoint="";selfId="";_source=null;set source(t){this._source||(this._source={}),this._source.label=t}set authToken(t){this._token=t}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(t){this._wsTimeout=t<3e3?3e3:t>6e4?6e4:t}get isOpen(){return!!(this.ws&&this.ws.readyState!=1&&this.ws.readyState!=3)}get filter(){return this._filter}set filter(t){t&&t.indexOf("self")!=-1?this._filter=this.selfId?this.selfId:"":this._filter=t}get playbackMode(){return this._playbackMode}constructor(){this._connect=new E,this.onConnect=this._connect.asObservable(),this._close=new E,this.onClose=this._close.asObservable(),this._error=new E,this.onError=this._error.asObservable(),this._message=new E,this.onMessage=this._message.asObservable()}close(){this.ws&&(this.ws.close(),this.ws=null)}open(t,r,n){if(t=t||this.endpoint,!t)return;let i=t.indexOf("?")==-1?"?":"&";r&&(t+=`${i}subscribe=${r}`),(this._token||n)&&(t+=`${r?"&":"?"}token=${this._token||n}`),this.close(),this.ws=new WebSocket(t),setTimeout(()=>{this.ws&&this.ws.readyState!=1&&this.ws.readyState!=3&&(console.warn(`Connection watchdog expired (${this._wsTimeout/1e3} sec): ${this.ws.readyState}... aborting connection...`),this.close())},this._wsTimeout),this.ws.onopen=a=>{this._connect.next(a)},this.ws.onclose=a=>{this._close.next(a)},this.ws.onerror=a=>{this._error.next(a)},this.ws.onmessage=a=>{this.parseOnMessage(a)}}parseOnMessage(t){let r;if(typeof t.data=="string")try{r=JSON.parse(t.data)}catch{return}this.isHello(r)?(this.selfId=r.self,this._playbackMode=typeof r.startTime<"u",this._message.next(r)):this.isResponse(r)?(typeof r.login<"u"&&typeof r.login.token<"u"&&(this._token=r.login.token),this._message.next(r)):this._filter&&this.isDelta(r)?r.context==this._filter&&this._message.next(r):this._message.next(r)}sendRequest(t){if(typeof t!="object")return"";let r=ee.request();return typeof t.login>"u"&&this._token&&(r.token=this._token),Object.keys(t).forEach(i=>{r[i]=t[i]}),this.send(r),r.requestId}put(t,r,n){let i={context:t=="self"?"vessels.self":t,put:{path:r,value:n}};return this.sendRequest(i)}login(t,r){let n={login:{username:t,password:r}};return this.sendRequest(n)}send(t){this.ws&&(typeof t=="object"&&(t=JSON.stringify(t)),this.ws.send(t))}sendUpdate(t="self",r,n){let i=ee.updates();this._token&&(i.token=this._token),i.context=t=="self"?"vessels.self":t,this._token&&(i.token=this._token);let a=[];typeof r=="string"&&a.push({path:r,value:n}),typeof r=="object"&&Array.isArray(r)&&(a=r);let o={timestamp:new Date().toISOString(),values:a};this._source&&(o.source=this._source),i.updates.push(o),this.send(i)}subscribe(t="*",r="*",n){let i=ee.subscribe();if(this._token&&(i.token=this._token),i.context=t=="self"?"vessels.self":t,this._token&&(i.token=this._token),typeof r=="object"&&Array.isArray(r)&&(i.subscribe=r),typeof r=="string"){let a={};a.path=r,n&&typeof n=="object"&&(n.period&&(a.period=n.period),n.minPeriod&&(a.minPeriod=n.period),n.format&&(n.format=="delta"||n.format=="full")&&(a.format=n.format),n.policy&&(n.policy=="instant"||n.policy=="ideal"||n.policy=="fixed")&&(a.policy=n.policy)),i.subscribe.push(a)}this.send(i)}unsubscribe(t="*",r="*"){let n=ee.unsubscribe();this._token&&(n.token=this._token),n.context=t=="self"?"vessels.self":t,this._token&&(n.token=this._token),typeof r=="object"&&Array.isArray(r)&&(n.unsubscribe=r),typeof r=="string"&&n.unsubscribe.push({path:r}),this.send(n)}raiseAlarm(t="*",r,n){let i;typeof r=="string"?i=r.indexOf("notifications.")==-1?`notifications.${r}`:r:i=r,this.put(t,i,n.value)}clearAlarm(t="*",r){let n=r.indexOf("notifications.")==-1?`notifications.${r}`:r;this.put(t,n,null)}isSelf(t){return t.context==this.selfId}isDelta(t){return typeof t.context<"u"}isHello(t){return typeof t.version<"u"&&typeof t.self<"u"}isResponse(t){return typeof t.requestId<"u"}},ee=class{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:Qt()}}},ke=class{_state;_method=[];_message="";constructor(t,r,n,i){this._message=typeof t<"u"?t:"",this._state=typeof r<"u"?r:"alarm",n&&this._method.push("visual"),i&&this._method.push("sound")}get value(){return{message:this._message,state:this._state,method:this._method}}};var te=class{id;name;mmsi;position=[0,0];positionReceived=!1;positionTimestamp="";positionUpdatedAt=0;state;type={id:-1,name:""};properties={};lastUpdated=new Date;callsignVhf;callsignHf;orientation=0;virtual},ue=class extends te{anchor={maxRadius:null,radius:null,position:null};autopilot={state:null,mode:null,target:null,enabled:!1,default:null,availableActions:[]};buddy=!1;closestApproach={distance:null,timeTo:null};cog;cogTrue=null;cogMagnetic=null;courseApi={arrivalCircle:0,activeRoute:{},nextPoint:{},previousPoint:{}};courseCalcs={};distanceToSelf;environment={mode:null,sun:null};heading;headingTrue=null;headingMagnetic=null;headingTrueUpdatedAt=0;headingMagneticUpdatedAt=0;performance={beatAngle:null,gybeAngle:null};racing;radars={};registrations={};resourceUpdates=[];sog;track=[];vectors={cog:[]};wind={direction:null,mwd:null,twd:null,tws:null,speedTrue:null,sog:null,awa:null,aws:null};design={airHeight:null,beam:null,draft:{current:null,maximum:null},length:null};destination={name:null,eta:null};flag;port},Ce=class extends te{constructor(){super()}},Ee=class extends te{sog=0;track=[];constructor(){super()}},le=class extends te{constructor(){super()}},Ie=class extends le{twd;tws;temperature;constructor(){super()}};var er={K:{C:e=>e-273.15,F:e=>(e-273.15)*9/5+32},rad:{degree:e=>e*180/Math.PI},deg:{radian:e=>e*.0174532925199433},ratio:{percent:e=>e*100},"m/s":{kn:e=>e*1.94384,"km/h":e=>e*3.6,mph:e=>e*2.2369362920544025,Bf:e=>e/.836^.6666666666666666,fps:e=>e*3.280839895013124},"rad/s":{"deg/s":e=>e*57.2958,rpm:e=>e*9.549296585513723},Hz:{rpm:e=>e*60},m:{fathom:e=>e*.5467468562055768,league:e=>e*.0002071251035625518,kilometer:e=>e*.001,mile:e=>e*.000621371192237334,"naut-mile":e=>e*.0005399568034557236,foot:e=>e*3.280839895013124,yard:e=>e*1.0936132983377078},s:{hour:e=>e*.0002777777777777778,minute:e=>e*.016666666666666666,day:e=>e*11574074074074073e-21,year:e=>e*3168876461541279e-23},foot:{m:e=>e/3.280839895013124}},ce={degree:{symbol:"\xBA",name:"Degrees"},radian:{symbol:"rad",name:"Radians"},percent:{symbol:"%",name:"Percent"},kilometer:{symbol:"km",name:"Kilometer"},"naut-mile":{symbol:"nmi",name:"Nautical Mile"},foot:{symbol:"ft",name:"Feet"},yard:{symbol:"yd",name:"Yard"},fathom:{symbol:"fm",name:"Fathom"},hour:{symbol:"hr",name:"Hour"},minute:{symbol:"min",name:"Minute"},F:{symbol:"\xBAF",name:"Fahrenheit"},C:{symbol:"\xBAC",name:"Celcius"}},G=class{static transform(t,r,n){if(!Number.isFinite(t))return null;if(r===n)return t;try{return er[r][n](t)}catch{throw new Error("Transformation not found!")}}static setSymbol(t,r){t in ce&&(ce[t].symbol=r??ce[t].symbol)}static getSymbol(t){return t in ce?ce[t].symbol:t}static degreesToRadians(t){return er.deg.radian(t)}static radiansToDegrees(t=0){return er.rad.degree(t)}static nauticalMilesToKm(t=0){return t*1.852}static angleToDirection(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r+t;return i>n?i-n:i<0?n+i:i}static directionToAngle(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r-t,a;if(i>0)a=i>Math.PI?n-i:0-i;else if(i<0){let o=Math.abs(i);a=o>Math.PI?o-n:o}else a=i;return a}};var A=Br(ei()),j=class e{static R=6371e3;static rhumbDestination(t,r,n){let i=e.R,a=n/i,o=t[1]*Math.PI/180,s=t[0]*Math.PI/180,f=r,v=a*Math.cos(f),g=o+v,h=a,m=89*Math.PI/180;g>m&&o<m?(h=a*(m-o)/v,g=m):g<-m&&o>-m&&(h=a*(-m-o)/v,g=-m);let P=Math.log(Math.tan(Math.PI/4+g/2)/Math.tan(Math.PI/4+o/2)),y=Math.abs(P)>1e-12?(g-o)/P:Math.cos(o),w=h*Math.sin(f)/y;return[(s+w)*180/Math.PI,g*180/Math.PI]}static destCoordinate(t,r,n){let i=(0,A.computeDestinationPoint)(t,n,G.radiansToDegrees(r));return[i.longitude,i.latitude]}static distanceTo(t,r){return(0,A.getDistance)(t,r)}static routeLength(t){return(0,A.getPathLength)(t)}static routeLegs(t,r){if(t.length<2)return[];let n=[];r?n.push({bearing:(0,A.getGreatCircleBearing)(r,t[0]),distance:e.distanceTo(r,t[0])}):n.push({bearing:0,distance:0});for(let i=1;i<t.length;++i){let a={bearing:(0,A.getGreatCircleBearing)(t[i-1],t[i]),distance:e.distanceTo(t[i-1],t[i])};n.push(a)}return n}static closestForwardPoint(t,r,n){if(t.length<2||!r)return-1;let i={index:-1,distance:-1};for(let a=0;a<t.length;++a){let o=(0,A.getGreatCircleBearing)(r,t[a]),s=Sr.difference(n,o);if(s>-90&&s<90){let f=e.distanceTo(r,t[a]);(i.distance===-1||f<i.distance)&&(i.distance=f,i.index=a)}}return i.index}static centreOfPolygon(t){let r=(0,A.getCenter)(t);return[r.longitude,r.latitude]}static inDLCrossingZone(t,r=170){return Math.abs(t[0])>=r}static inBounds(t,r){return(0,A.isPointInPolygon)(t,[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]],[r[0],r[1]]])}static calcMapifiedExtent(t,r){let i=111111*Math.cos(G.degreesToRadians(t[1])),a=[0,0,0,0];return a[1]=t[1]+(0-Math.abs(r))/111111,a[3]=t[1]+Math.abs(r)/111111,a[0]=t[0]+(0-Math.abs(r))/i,a[2]=t[0]+Math.abs(r)/i,a}static normaliseCoords(t){if(!Array.isArray(t))return[0,0];if(typeof t[0]=="number"){if(t[0]>180)for(;t[0]>180;)t[0]=t[0]-360;else if(t[0]<-180)for(;t[0]<-180;)t[0]=360+t[0];return t}else if(Array.isArray(t[0]))return t.forEach(r=>this.normaliseCoords(r)),t}},Sr=class e{static difference(t,r){let n=360-r,i=t+n,a=e.normalise(i);return a<180?0-a:360-a}static add(t,r){return e.normalise(t+r)}static normalise(t){return t<0?t+360:t>=360?t-360:t}};var Et=class{action="notification";playback=!1;result=null;self=null;timestamp=new Date().toISOString();sourceRef},z=class{action;playback=!1;result=null;timestamp;self=null;watchDogAlarm;constructor(){this.action="update"}},It=class extends z{constructor(){super(),this.action="resource"}},Nt=class extends z{constructor(){super(),this.action="radar"}},jt=class extends z{constructor(){super(),this.action="trail"}};var mi=Br(ii());var oi="auto",ai=1e4,Rs=.2572,si=new Set(["navigation.headingTrue","navigation.headingMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.speedOverGround"]);function ui(e){let t=Date.now();if(e.headingTrue!==null&&t-e.headingTrueUpdatedAt<=ai){e.orientation=e.headingTrue;return}if(e.headingMagnetic!==null&&t-e.headingMagneticUpdatedAt<=ai){e.orientation=e.headingMagnetic;return}let r=e.cogTrue??e.cogMagnetic;typeof r=="number"&&(e.sog??0)>=Rs&&(e.orientation=r)}var Ls=["environment.wind.speedTrue","environment.wind.speedOverGround","environment.wind.angleTrueGround","environment.wind.angleTrueWater","environment.wind.directionTrue","environment.wind.directionMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"],b={active:!1,maxMsgIntervals:18,intervalCount:0,msgCount:0,alarm:!1},c,M,pi,Me=[],Ut=[],Cr=!1,Nr,Er=!1,_={signalk:{},aisState:[]},gi=[0,0,0,0],hi=60,_e=0,O,ie={},X=500,k=!1,bi,U={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},Ir={selfLines:{cog:{length:10}},aisCogLine:10},ve={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},V,yi,ne="freeboard-sk";function Ts(){c={self:new ue,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},c.self.positionReceived=!1,_i()}function _i(){O={updated:{},stale:{},expired:{}}}function Ft({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:k,result:t.target.readyState}),b.msgCount=0,b.intervalCount=0,b.alarm=!1,b.active=!0;break;case"onClose":vi(!1),li();break;case"onError":postMessage({action:"error",playback:k,result:"Connection error!"}),li();break;case"onMessage":b.msgCount++,Is(t);break}}function li(){b.msgCount=0,b.intervalCount=0,b.active=!0,b.alarm=!0,Vt(!0)}addEventListener("message",({data:e})=>{qs(e)});function qs(e){if(e.cmd)switch(e.cmd){case"open":ci(e.options),Cs(e.options);break;case"close":vi(!0);break;case"subscribe":M.subscribe(e.options.context,e.options.path);break;case"settings":ci(e.options);break;case"alarm":Es(e.options);break;case"vessel":if(e.options){let t;e.options.context==="self"?t=c.self:t=c.aisTargets.get(e.options.context),t&&e.options.name&&(t.name=e.options.name)}break;case"auth":e.options&&typeof e.options.token<"u"&&(pi=e.options.token);break;case"trail":e.options&&(ve.trailDuration=e.options.trailDuration??24,e.options.trailResolution&&(ve.trailResolution.lastHour=e.options.trailResolution.lastHour??"5s",ve.trailResolution.next23=e.options.trailResolution.next23??"1m",ve.trailResolution.beyond24=e.options.trailResolution.beyond24??"5m")),ks(ve);break}}function ci(e={config:{}}){e.interval&&typeof e.interval=="number"&&(X=e.interval,Pi(),Mi(),hi=1/(X/1e3)*60),k=!!e.playback,e.config&&(typeof e.config.units.preferredPaths<"u"&&(ie=e.config.units.preferredPaths),e.config.vessels.aisMaxAge&&typeof e.config.vessels.aisMaxAge=="number"&&(U.maxAge=e.config.vessels.aisMaxAge),e.config.vessels.aisStaleAge&&typeof e.config.vessels.aisStaleAge=="number"&&(U.staleAge=e.config.vessels.aisStaleAge),typeof e.config.signalk.maxRadius=="number"&&(_.signalk=e.config.signalk),typeof e.config.selections.aisState<"u"&&Array.isArray(e.config.selections.aisState)&&(_.aisState=e.config.selections.aisState),Ir=e.config.vessels)}function vi(e=!1){Pi(),Me.forEach(t=>t.unsubscribe()),M&&e&&M.close(),M=null,postMessage({action:"close",result:e,playback:k})}function Pe(e){return fetch(e).then(t=>t.json())}function xi(){let e=_&&_.signalk&&_.signalk.maxRadius?`?radius=${_.signalk.maxRadius}`:"?radius=10000";Pe(Nr+"/tracks"+e).then(t=>{Er=!0,Object.entries(t).forEach(r=>{if(c.aisTargets.has(r[0])){let n=c.aisTargets.get(r[0]);n.track=r[1].coordinates,jr(n)}})}).catch(()=>{Er=!1})}function ks(e){let t=Nr+"/self/track?",r=[],n=5e-4,i=!0;e.trailDuration>24&&(r.push(Pe(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}×panOffset=24`)),r.push(Pe(`${t}timespan=23h&resolution=${e.trailResolution.next23}×panOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&r.push(Pe(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}×panOffset=1`)),r.push(Pe(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let a=[],o=new jt;o.playback=k,Promise.all(r).then(s=>{let f=0,v=r.length-1,g=60;s.forEach(h=>{if(h.type&&h.type==="MultiLineString"&&h.coordinates&&Array.isArray(h.coordinates))if(f!==v){let m=[];for(h.coordinates.forEach(P=>{m=m.concat(P)}),m=(0,mi.SimplifyAP)(m,n,i);m.length>g;){let P=m.slice(0,g);a.push(P),m=m.slice(g-1),m[0]=[m[0][0]+5e-9,m[0][1]+5e-9]}m.length!==0&&a.push(m)}else a=a.concat(h.coordinates);f++}),o.result=a,postMessage(o)}).catch(()=>{o.result=null,postMessage(o)})}function Cs(e){if(M)return;if(!e.url){postMessage({action:"error",result:"Valid options not provided!"});return}let t=e.url.split("/");if(t.pop(),t.push("api"),t[0]=t[0]==="wss:"?"https:":"http:",Nr=t.join("/"),Ts(),M=new qe,Me.push(M.onConnect.subscribe(r=>Ft({action:"onConnect",msg:r}))),Me.push(M.onClose.subscribe(r=>Ft({action:"onClose",msg:r}))),Me.push(M.onError.subscribe(r=>Ft({action:"onError",msg:r}))),Me.push(M.onMessage.subscribe(r=>Ft({action:"onMessage",msg:r}))),M.authToken=pi,e.playback){let r=e.playbackOptions.startTime?`?startTime=${e.playbackOptions.startTime}`:null,n=e.playbackOptions.playbackRate?`playbackRate=${e.playbackOptions.playbackRate}`:null;n=n?r?"&"+n:"?"+n:null;let i=`${e.url}${r||""}${n||""}`;M.open(i,e.playbackOptions.subscribe,e.token)}else M.open(e.url,e.subscribe,e.token),xi()}function Es(e){let t=e.type.indexOf("notifications.")===-1?`notifications.${e.type}`:e.type;e.raise?M.raiseAlarm("self",t,new ke(e.message,e.state,!0,!0)):M.clearAlarm("self",t)}function Is(e){M.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:k}),X&&Mi()):M.isDelta(e)?(Cr=!0,e.updates.forEach(t=>{t.values&&(V=t.$source,yi=t.timestamp,t.values.forEach(r=>{if(bi=t.timestamp,!!e.context)switch(e.context.split(".")[0]){case"shore":case"atons":_?.signalk.atons&&Vs(e.context,r),xe(e.context,c.atons,_?.signalk.atons);break;case"sar":_?.signalk.sar&&Ks(e.context,r),xe(e.context,c.sar,_?.signalk.sar);break;case"aircraft":_?.signalk.aircraft&&Bs(e.context,r),xe(e.context,c.aircraft,_?.signalk.aircraft);break;case"meteo":_?.signalk.meteo&&(Ws(e.context,r),di(r)),xe(e.context,c.meteo,_?.signalk.meteo);break;case"vessels":if(M.isSelf(e))c.self.id||(c.self.id=e.context),fi(c.self,r,!0),di(r);else{if(_?.signalk.vessels){let n=Ns(e.context);fi(n,r)}xe(e.context,c.aisTargets,_?.signalk.vessels,_?.aisState)}break}}))}),Vt()):M.isResponse(e)&&postMessage({action:"response",result:e})}function xe(e,t,r=!0,n=[]){if(r){let i=t.get(e);i&&n.includes(i?.state)&&(O.expired[e]=!0,i=null),i&&_.signalk.maxRadius?i.positionReceived&&j.inBounds(i.position,gi)?O.updated[e]=!0:(t.delete(e),O.expired[e]=!0):O.updated[e]=!0}else t.size!==0&&(t.forEach((i,a)=>{O.expired[a]=!0}),t.clear())}function Vt(e=!1){if(!X||e){let t=new z;t.watchDogAlarm=b.alarm,t.playback=k,c.aisStatus.updated=Object.keys(O.updated),c.aisStatus.stale=Object.keys(O.stale),c.aisStatus.expired=Object.keys(O.expired),t.result=c,t.timestamp=k?bi:c.self.lastUpdated.toISOString(),postMessage(t),_i(),c.self.resourceUpdates=[],Us(),_e===0&&c.self.positionReceived&&_?.signalk.maxRadius&&(gi=j.calcMapifiedExtent(c.self.position,_.signalk.maxRadius),_e++),_e=_e>=hi?0:_e+1}}function Mi(){X&&typeof X=="number"&&Ut.push(setInterval(()=>{b.active&&!b.msgCount?(b.intervalCount=b.intervalCount+1,b.intervalCount>=b.maxMsgIntervals&&(b.intervalCount=0,b.alarm=!0,Vt(!0))):(b.intervalCount=0,b.msgCount=0,b.alarm=!1),Cr&&(Vt(!0),Cr=!1)},X)),Ut.push(setInterval(()=>{Er&&xi()},6e4))}function Pi(){Ut.forEach(e=>clearInterval(e)),Ut=[]}function Ns(e){if(!c.aisTargets.has(e)){let t=new ue;t.id=e,t.position=null,c.aisTargets.set(e,t)}return c.aisTargets.get(e)}function fi(e,t,r=!1){if(r){if(e.lastUpdated=new Date,t.path.startsWith("resources."))e.resourceUpdates.push(t),Fs(t);else if(t.path.startsWith("radars"))js(t);else if(t.path.startsWith("navigation.racing"))e.properties[t.path]=t.value;else if(t.path==="performance.beatAngle")e.performance.beatAngle=t.value;else if(t.path==="performance.gybeAngle")e.performance.gybeAngle=t.value;else if(t.path.startsWith("navigation.course."))if(t.path.startsWith("navigation.course.calcValues.")){let o=t.path.split(".").slice(3).join(".");e.courseCalcs[o]=t.value}else t.path.includes("activeRoute")?e.courseApi.activeRoute=t.value:t.path.includes("nextPoint")?e.courseApi.nextPoint=t.value:t.path.includes("previousPoint")?e.courseApi.previousPoint=t.value:t.path.includes("arrivalCircle")&&(e.courseApi.arrivalCircle=t.value);else if(t.path.startsWith("radars.")){let o=t.path.split("."),s=o.slice(2).join(".");e.radars[o[1]]||(e.radars[o[1]]={}),e.radars[o[1]][s]=t.value}let a=t.path.indexOf("course")!==-1?t.path.split(".").slice(0,2).join("."):t.path;Ls.indexOf(a)!==-1&&(c.paths[a]=null)}else t.path==="navigation.distanceToSelf"&&(e.distanceToSelf=t.value),t.path==="navigation.closestApproach"&&(e.closestApproach=t.value);if(t.path==="")typeof t.value.name<"u"&&(e.name=t.value.name),typeof t.value.mmsi<"u"&&(e.mmsi=t.value.mmsi,e.lastUpdated=new Date),typeof t.value.registrations<"u"&&(e.registrations=t.value.registrations),typeof t.value.buddy<"u"&&(e.buddy=t.value.buddy),typeof t.value.communication<"u"&&(e.callsignVhf=t.value.communication.callsignVhf??"",e.callsignHf=t.value.communication.callsignHf??"");else if(t.path==="communication.callsignVhf")e.callsignVhf=t.value;else if(t.path==="communication.callsignHf")e.callsignHf=t.value;else if(t.path==="design.aisShipType")e.type=t.value;else if(t.path==="navigation.position"&&t.value){if(typeof t.value.latitude>"u"||typeof t.value.longitude>"u")return;e.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),e.positionReceived=!0,e.positionTimestamp=yi??"",e.positionUpdatedAt=Date.now(),e.lastUpdated=new Date,r||jr(e)}else t.path==="navigation.state"?e.state=t.value:t.path==="navigation.speedOverGround"?e.sog=t.value:t.path==="environment.mode"?e.environment.mode=t.value:t.path==="environment.sun"?e.environment.sun=t.value:t.path==="environment.wind.angleApparent"?e.wind.awa=t.value:t.path==="environment.wind.speedApparent"?e.wind.aws=t.value:t.path==="environment.wind.speedTrue"?e.wind.speedTrue=t.value:t.path==="environment.wind.speedOverGround"?e.wind.sog=t.value:t.path==="environment.wind.directionTrue"?e.wind.twd=t.value:t.path==="environment.wind.directionMagnetic"?e.wind.mwd=t.value:t.path==="navigation.anchor.position"?e.anchor.position=t.value:t.path==="navigation.anchor.maxRadius"?e.anchor.maxRadius=t.value:t.path==="navigation.anchor.currentRadius"?e.anchor.radius=t.value:t.path==="steering.autopilot.state"&&V===ne?e.autopilot.state=t.value:t.path==="steering.autopilot.mode"&&V===ne?e.autopilot.mode=t.value:t.path==="steering.autopilot.target"&&V===ne?e.autopilot.target=t.value:t.path==="steering.autopilot.engaged"&&V===ne?e.autopilot.enabled=t.value:t.path==="steering.autopilot.defaultPilot"?(e.autopilot.default=t.value,ne=t.value):t.path==="steering.autopilot.availableActions"&&V===ne?e.autopilot.availableActions=t.value??[]:t.path==="navigation.courseOverGroundTrue"?e.cogTrue=t.value:t.path==="navigation.courseOverGroundMagnetic"?e.cogMagnetic=t.value:t.path==="navigation.headingTrue"?(e.headingTrue=t.value,e.headingTrueUpdatedAt=Date.now()):t.path==="navigation.headingMagnetic"&&(e.headingMagnetic=t.value,e.headingMagneticUpdatedAt=Date.now());let n=ie.heading;typeof n>"u"||n===oi?si.has(t.path)&&ui(e):t.path===n&&(e.orientation=t.value),typeof ie.tws<"u"&&t.path===ie.tws&&(e.wind.tws=t.value),typeof ie.twd<"u"&&t.path===ie.twd&&(e.wind.direction=t.path==="environment.wind.angleTrueGround"||t.path==="environment.wind.angleTrueWater"?G.angleToDirection(t.value,e.orientation??0):t.value);let i=e.cogTrue??e.cogMagnetic??void 0;if(typeof i<"u"&&e.position){let a=r?Ir.selfLines.cog.length:Ir.aisCogLine,o=(e.sog??0)*(a*60);e.vectors.cog=[e.position,j.rhumbDestination(e.position,i,o)]}}function js(e){let t=new Nt;t.playback=k,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function Fs(e){let t=new It;t.playback=k,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function di(e){if(e.path.includes("notifications.")){let t=new Et;t.playback=k,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}}function Us(){let e=new Date().valueOf();c.aisTargets.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,c.aisTargets.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)}),c.aircraft.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,c.aircraft.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)}),c.sar.forEach((t,r)=>{t.lastUpdated.valueOf()<e-U.maxAge?(O.expired[r]=!0,c.sar.delete(r)):t.lastUpdated.valueOf()<e-U.staleAge&&(O.stale[r]=!0)})}function Vs(e,t){let r=!1;if(e.indexOf("shore.basestations")!==-1&&(r=!0),!c.atons.has(e)){let i=new le;i.id=e,i.position=null,i.type.id=null,r&&(i.type.id=-2,i.type.name="Basestation"),c.atons.set(e,i)}let n=c.atons.get(e);return t.path===""?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.atonType<"u"&&(n.type=t.value.atonType)):t.path==="atonType"?n.type=t.value:t.path==="virtual"?n.virtual=t.value:t.path==="navigation.position"?(n.position=[t.value.longitude,t.value.latitude],n.positionReceived=!0):n.properties[t.path]=t.value,e}function Ks(e,t){if(!c.sar.has(e)){let n=new Ce;n.id=e,n.position=null,n.type.id=-1,n.type.name="SaR Beacon",c.sar.set(e,n)}let r=c.sar.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value&&(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Ws(e,t){if(!c.meteo.has(e)){let n=new Ie;n.id=e,n.position=null,n.type.id=-1,n.type.name="Weather Station",c.meteo.set(e,n)}let r=c.meteo.get(e);if(t.path===""){if(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"){let n=e.split(":").slice(-2);r.mmsi=n.length===2?`${n[0]}:${n[1]}`:t.value.mmsi}typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")}else t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="environment.outside.temperature"?r.temperature=t.value:t.path==="environment.wind.directionTrue"?r.twd=t.value:t.path==="environment.wind.averageSpeed"?r.tws=t.value:t.path==="navigation.position"&&t.value&&(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function Bs(e,t){if(!c.aircraft.has(e)){let n=new Ee;n.id=e,n.position=null,c.aircraft.set(e,n)}let r=c.aircraft.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value?(r.position=j.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0,jr(r)):t.path==="navigation.courseOverGroundTrue"?r.orientation=t.value:t.path==="navigation.speedOverGround"&&(r.sog=t.value)}function jr(e){if(e.track&&e.track.length===0)e.track.push([e.position]);else{let t=e.track[e.track.length-1].length,r=e.track[e.track.length-1][t-1];r[0]!==e.position[0]&&r[1]!==e.position[1]&&e.track[e.track.length-1].push(e.position)}e.track[e.track.length-1]=e.track[e.track.length-1].slice(0-U.maxTrack)}export{Pe as apiGet,Ft as handleStreamEvent,Ts as initVessels,fi as processVessel};
|
package/public/chunk-5FQJDXLT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{F as Qe,M as $e,N as et,O as tt,ca as it,da as $,e as xe,ea as ee,ia as nt,ja as at,ka as ot,m as ze,n as B,p as qe,q as je,s as Xe,t as Ye,y as Je,ya as rt,z as L,za as st}from"./chunk-4WQJ5OCH.js";import{a as K,b as He,c as Ke}from"./chunk-NDDO5DKA.js";import{a as Ve,h as ke,j as Pe,k as Le}from"./chunk-PSRS6NXJ.js";import{a as Be,d as Ie,i as Fe,j as Ae,k as Ne}from"./chunk-WXOWBQXR.js";import{a as Y,b as J,c as Ze,d as Q}from"./chunk-SOVFTS2B.js";import{a as Oe}from"./chunk-VSWAOYSI.js";import"./chunk-PGHE7FOF.js";import"./chunk-7UXFP343.js";import"./chunk-TGPAYIRR.js";import{b as z,c as Re,f as Ue,i as q,j as Ge,n as j,o as X}from"./chunk-7Z4ZZM32.js";import{$d as U,Da as O,Dd as ye,Ea as T,Fa as D,Ha as b,Hd as Se,Ia as y,Ja as S,Jd as Ce,Ka as h,Kb as F,La as i,Ma as n,Na as E,Ob as he,P as W,Pb as A,Q as m,R as c,Rd as Me,S as x,T as ce,Td as we,Ua as V,Wa as p,Wd as N,X as pe,Ya as w,Yd as ve,Z as I,Zd as R,_ as _e,ca as fe,ee as G,gb as M,he as Z,ie as be,ja as r,jb as ue,lb as s,le as Te,mb as C,me as De,nb as k,ne as Ee,oe as We,pb as _,pe as H,qb as f,ra as P,rb as u}from"./chunk-JH5KSRZ6.js";import"./chunk-6H3I7D5M.js";var ht=(l,d)=>d[0];function yt(l,d){if(l&1&&(i(0,"mat-option",8),x(),i(1,"svg",6),E(2,"line",7),n()()),l&2){let a=d.$implicit;h("value",a),r(2),O("stroke-width",a)}}function St(l,d){if(l&1&&(i(0,"mat-option",8),x(),i(1,"svg",6),E(2,"line",9),n()()),l&2){let a=d.$implicit;h("value",a[0]),r(2),O("stroke-dasharray",a[1])}}var te=class l{color=A("#ff0000");dash=A("none");weight=A(1);_color=F(()=>this.color());_dash=F(()=>this.dash());_weight=F(()=>this.weight());selectionChange=he();app=W(L);line={dashArrays:this.app.lineDashMap,weights:[1,2,3,4,5]};constructor(){}ngOnInit(){}onSelectChange(d){let a=this.app.formatLineDashArray(this._dash());this.selectionChange.emit({lineStyle:{fill:{color:this._color()},stroke:{color:this._color(),width:this._weight(),lineDash:a}},config:{color:this._color(),weight:this._weight(),dash:this._dash()}})}static \u0275fac=function(a){return new(a||l)};static \u0275cmp=P({type:l,selectors:[["linestyle-select"]],inputs:{color:[1,"color"],dash:[1,"dash"],weight:[1,"weight"]},outputs:{selectionChange:"selectionChange"},decls:25,vars:5,consts:[[2,"display","flex"],[2,"width","100px"],["mat-input","","matNativeControl","","type","color",3,"ngModelChange","change","ngModel"],[2,"width","110px"],[3,"ngModelChange","selectionChange","ngModel"],[2,"display","flex","align-items","center","gap","8px"],["width","48","height","10",2,"vertical-align","middle","margin-right","6px"],["x1","0","y1","5","x2","48","y2","5","stroke","currentColor","stroke-array","none"],[3,"value"],["x1","0","y1","5","x2","48","y2","5","stroke","currentColor","stroke-width","2"]],template:function(a,e){a&1&&(i(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),s(3,"Color"),n(),i(4,"input",2),u("ngModelChange",function(o){return f(e._color,o)||(e._color=o),o}),p("change",function(o){return e.onSelectChange({key:"color",value:o.srcElement.value})}),n()(),i(5,"mat-form-field",3)(6,"mat-label"),s(7,"Weight"),n(),i(8,"mat-select",4),u("ngModelChange",function(o){return f(e._weight,o)||(e._weight=o),o}),p("selectionChange",function(o){return e.onSelectChange({key:"weight",value:o.value})}),i(9,"mat-select-trigger")(10,"div",5),x(),i(11,"svg",6),E(12,"line",7),n()()(),y(13,yt,3,2,"mat-option",8,b),n()(),ce(),i(15,"mat-form-field",3)(16,"mat-label"),s(17,"Style"),n(),i(18,"mat-select",4),u("ngModelChange",function(o){return f(e._dash,o)||(e._dash=o),o}),p("selectionChange",function(o){return e.onSelectChange({key:"dash",value:o.value})}),i(19,"mat-select-trigger")(20,"div",5),x(),i(21,"svg",6),E(22,"line",9),n()()(),y(23,St,3,2,"mat-option",8,ht),n()()()),a&2&&(r(4),_("ngModel",e._color),r(4),_("ngModel",e._weight),r(4),O("stroke-width",e._weight()),r(),S(e.line.weights),r(5),_("ngModel",e._dash),r(4),O("stroke-dasharray",e.line.dashArrays.get(e._dash())),r(),S(e.line.dashArrays))},dependencies:[H,U,G,Z,R,N,K,X,j,q,z,Q,J,Ze,Y],encapsulation:2})};var Mt=(l,d)=>d[0];function wt(l,d){if(l&1){let a=V();i(0,"div",4)(1,"mat-radio-button",5,0),p("change",function(){m(a);let g=M(2),o=w().$implicit,t=w();return o[1].current=g.value,c(t.save(!0))}),s(3),n()()}if(l&2){let a=d.$implicit,e=w().$implicit;r(),h("name",e[0])("value",a)("checked",a===e[1].current),r(2),k(" ",a.split(".").slice(-1)," ")}}function vt(l,d){if(l&1&&(i(0,"div",2)(1,"div",3)(2,"div"),s(3),n()(),i(4,"div"),y(5,wt,4,4,"div",4,b),n()()),l&2){let a=d.$implicit;r(3),C(a[1].name),r(2),S(a[1].available)}}var ie=class l{title="";chosen=new pe;pathChoices={tws:{name:"True Wind Speed",choices:["environment.wind.speedTrue","environment.wind.speedOverGround"],available:[],current:""},twd:{name:"True Wind Direction",choices:["environment.wind.directionTrue","environment.wind.directionMagnetic","environment.wind.angleTrueGround","environment.wind.angleTrueWater"],available:[],current:""},heading:{name:"Heading / COG",choices:["navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"],available:[],current:""}};pathChoicesArray=Object.entries(this.pathChoices);availPaths;app=W(L);constructor(){}ngOnInit(){this.initEntries()}initEntries(){this.availPaths=new Map(Object.entries(this.app.data.vessels.prefAvailablePaths)),this.pathChoices.tws.current=this.app.config.units.preferredPaths.tws,this.pathChoices.twd.current=this.app.config.units.preferredPaths.twd,this.pathChoices.heading.current=this.app.config.units.preferredPaths.heading,Object.entries(this.pathChoices).forEach(a=>{let e=a[1];e.choices.forEach(g=>{this.availPaths.has(g)&&e.available.push(g)}),e.available.length===0&&e.available.push(e.choices[0])})}save(d){let a={};Object.entries(this.pathChoices).forEach(e=>{a[e[0]]=e[1].current}),this.chosen.emit({save:d,value:a})}static \u0275fac=function(a){return new(a||l)};static \u0275cmp=P({type:l,selectors:[["signalk-preferred-paths"]],inputs:{title:"title"},outputs:{chosen:"chosen"},decls:6,vars:1,consts:[["pathopt",""],[2,"font-size","10pt"],[1,"sk-details"],[1,"title"],[2,"margin","5px 0 5px 0"],[3,"change","name","value","checked"]],template:function(a,e){a&1&&(i(0,"fieldset")(1,"legend",1),s(2),n(),i(3,"div"),y(4,vt,7,1,"div",2,Mt),n()()),a&2&&(r(2),C(e.title),r(2),S(e.pathChoicesArray))},dependencies:[ee,$],styles:[".sk-details[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:10pt;max-height:100%;width:60vw;max-width:300px}.sk-details[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{background:left 1px -webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.18)),color-stop(.65,transparent)) #b2bbc2e3;padding:3px 5px 0;margin-top:3px;font-weight:500;line-height:23px;color:#000}.sk-details[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:0;line-height:23px;margin:0;flex:1 1 auto;overflow:auto}.sk-details[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{display:flex;flex-direction:row;line-height:26px;border-width:0 0 0 0;border-style:solid;border-color:gray;padding-left:5px}.sk-details[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{border-width:0 0 1px 0}.sk-details[_ngcontent-%COMP%] .sectionname[_ngcontent-%COMP%]{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;font-weight:500}.sk-details[_ngcontent-%COMP%] .pathvalue[_ngcontent-%COMP%]{display:flex;flex-wrap:nowrap;width:100%;background-color:#fff}.sk-details[_ngcontent-%COMP%] .pathvalue[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:italic}.sk-details[_ngcontent-%COMP%] .pathvalue[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"],changeDetection:0})};var v=(l,d)=>d[0],bt=(l,d)=>d.id;function Tt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Dt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Et(l,d){if(l&1&&(i(0,"mat-option",127),s(1),n()),l&2){let a=d.$implicit;h("value",a.url)("matTooltip",a.description),r(),k(" ",a.name," ")}}function Wt(l,d){if(l&1){let a=V();i(0,"div",46)(1,"div",38)(2,"mat-form-field",39)(3,"mat-label"),s(4,"Select Instruments App"),n(),i(5,"mat-select",64),u("ngModelChange",function(g){m(a);let o=w();return f(o.facade.settings.display.plugins.instruments,g)||(o.facade.settings.display.plugins.instruments=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.onInstrumentApp())}),y(6,Et,2,3,"mat-option",127,b),n()()(),i(8,"div",38)(9,"mat-form-field",52)(10,"mat-label"),s(11,"Parameters"),n(),i(12,"input",128,21),u("ngModelChange",function(g){m(a);let o=w();return f(o.facade.settings.display.plugins.parameters,g)||(o.facade.settings.display.plugins.parameters=g),c(g)}),p("change",function(){m(a);let g=w();return c(g.persistModel("pluginParameters"))}),n()()(),i(14,"div",38)(15,"mat-checkbox",129),u("ngModelChange",function(g){m(a);let o=w();return f(o.facade.settings.display.plugins.startOnOpen,g)||(o.facade.settings.display.plugins.startOnOpen=g),c(g)}),p("change",function(){m(a);let g=w();return c(g.persistModel("pluginStartOnOpen"))}),s(16," Halt App on hide "),n()(),i(17,"div",38)(18,"button",130),p("click",function(){m(a);let g=w();return c(g.toggleFavourites())}),i(19,"mat-icon"),s(20,"star"),n(),s(21," FAVOURITES "),n()()()}if(l&2){let a=w();r(5),_("ngModel",a.facade.settings.display.plugins.instruments),r(),S(a.facade.applicationList),r(6),h("disabled",a.facade.settings.display.plugins.instruments===null),_("ngModel",a.facade.settings.display.plugins.parameters),r(3),_("ngModel",a.facade.settings.display.plugins.startOnOpen)}}function Vt(l,d){if(l&1&&(i(0,"mat-list-option",132),s(1),n()),l&2){let a=d.$implicit,e=w(2);h("disabled",a.url==e.facade.settings.display.plugins.instruments)("selected",e.facade.settings.display.plugins.favourites.includes(a.url))("value",a.url),r(),k(" ",a.name," ")}}function kt(l,d){if(l&1){let a=V();i(0,"div",37)(1,"div",38)(2,"div",109),E(3,"br"),s(4,"Select Favourite Apps: "),n(),E(5,"mat-divider"),i(6,"mat-selection-list",131,22),p("selectionChange",function(g){m(a);let o=M(7),t=w();return c(t.onFavSelected(g,o))}),y(8,Vt,2,4,"mat-list-option",132,b),n()()()}if(l&2){let a=w();r(8),S(a.facade.favouritesList)}}function Pt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Lt(l,d){l&1&&(i(0,"mat-error"),s(1,"Please enter a number >= 0"),n())}function xt(l,d){l&1&&(i(0,"mat-error"),s(1,"Please enter a number >= 1"),n())}function Ot(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Bt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function It(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Ft(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function At(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Nt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Rt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Ut(l,d){if(l&1){let a=V();i(0,"div",38)(1,"mat-form-field",39)(2,"mat-label"),s(3,"Position display format"),n(),i(4,"mat-select",133),u("ngModelChange",function(g){m(a);let o=w();return f(o.facade.settings.units.positionFormat,g)||(o.facade.settings.units.positionFormat=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.persistModel())}),y(5,Rt,2,2,"mat-option",41,b),n()()()}if(l&2){let a=w();r(4),_("ngModel",a.facade.settings.units.positionFormat),r(),S(a.options.preferredValues.coords)}}function Gt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Zt(l,d){if(l&1){let a=V();i(0,"div",38)(1,"mat-form-field",39)(2,"mat-label"),s(3,"Prefer True / Magnetic values"),n(),i(4,"mat-select",134),u("ngModelChange",function(g){m(a);let o=w();return f(o.facade.settings.units.headingAttribute,g)||(o.facade.settings.units.headingAttribute=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.persistModel("headingAttribute"))}),y(5,Gt,2,2,"mat-option",41,b),n()()()}if(l&2){let a=w();r(4),_("ngModel",a.facade.settings.units.headingAttribute),r(),S(a.options.preferredValues.heading)}}function Ht(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function Kt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function zt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function qt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function jt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Xt(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function Yt(l,d){l&1&&(i(0,"mat-error"),s(1," Please enter a positive number "),n())}function Jt(l,d){l&1&&(i(0,"mat-error"),s(1," Please enter a positive number "),n())}function Qt(l,d){l&1&&(i(0,"mat-error"),s(1," Please enter a positive number "),n())}function $t(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function ei(l,d){l&1&&(i(0,"mat-error"),s(1," Please enter a number > 0 "),n())}function ti(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function ii(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function ni(l,d){if(l&1&&(i(0,"mat-radio-button",41),E(1,"img",135),s(2),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),ue(`transform: scale(${a[0]})`),r(),k(" (",a[1],") ")}}function ai(l,d){l&1&&(i(0,"mat-error"),s(1," Please enter a value between -90 and 90 (max 9 decimals) "),n())}function oi(l,d){l&1&&(i(0,"mat-error"),s(1," Please enter a value between -180 and 180 (max 9 decimals) "),n())}function ri(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function si(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function li(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function di(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function gi(l,d){l&1&&(i(0,"mat-error"),s(1," Please enter a number >= 1. "),n())}function mi(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function ci(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function pi(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function _i(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function fi(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function ui(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function hi(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function yi(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Si(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function Ci(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a),r(),C(a)}}function Mi(l,d){if(l&1){let a=V();i(0,"button",136),p("click",function(){m(a),w();let g=M(549);return c(g.value="")}),i(1,"mat-icon"),s(2,"close"),n()()}}function wi(l,d){if(l&1&&(i(0,"mat-list-option",111),s(1),n()),l&2){let a=d.$implicit,e=w();h("selected",e.facade.settings.resources.paths.includes(a))("value",a),r(),k(" ",a," ")}}function vi(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a.id),r(),C(a.name)}}function bi(l,d){if(l&1){let a=V();i(0,"mat-tab",112)(1,"div",32)(2,"div",33)(3,"div",124)(4,"div",35),s(5,"RADAR SETTINGS"),n(),i(6,"mat-card",36)(7,"div",46)(8,"div",38)(9,"mat-form-field",137)(10,"mat-label"),s(11,"Radar Devices"),n(),i(12,"mat-select",138,23),u("ngModelChange",function(g){m(a);let o=w();return f(o.facade.settings.radars.deviceId,g)||(o.facade.settings.radars.deviceId=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.doRadar())}),y(14,vi,2,2,"mat-option",41,bt),n()()(),i(16,"div",38)(17,"button",139),p("click",function(){m(a);let g=w();return c(g.refreshRadars())}),i(18,"mat-icon"),s(19," refresh"),n(),s(20," REFRESH "),n()()()()()()()()}if(l&2){let a=w();r(12),h("disabled",!a.radarList().length||a.app.uiCtrl().radarLayer),_("ngModel",a.facade.settings.radars.deviceId),r(2),S(a.radarList())}}function Ti(l,d){if(l&1&&(i(0,"mat-option",41),s(1),n()),l&2){let a=d.$implicit;h("value",a[0]),r(),C(a[1])}}function Di(l,d){l&1&&(i(0,"mat-error"),s(1," Value required. "),n())}var gt=class l{show={favourites:I(!1)};options;centerOffsetLimit=qe;aisStateFilter={moored:!1,anchored:!1};formattedNumberModel={rangeCirclesDistance:1e3};unitsChangedSignal=I(0);radarList=I([]);saveOnClose=!1;facade=W(st);myElement=W(fe);dialogRef=W(ye);wakeLock=W(ze);s57=W(Xe);app=W(L);radarApi=W(Je);constructor(){this.options=new rt,_e(()=>{this.unitsChangedSignal(),this.formatNumberModel()})}ngOnInit(){this.facade.refresh(),this.facade.settings.selections.aisState.forEach(d=>{d in this.aisStateFilter&&(this.aisStateFilter[d]=!0)}),this.refreshRadars()}refreshRadars(){this.radarApi.listRadars().then(d=>{this.radarList.set(d)}).catch(()=>{this.radarList.set([])})}formatNumberModel(){this.formattedNumberModel={rangeCirclesDistance:this.facade.settings.units.distance==="kilometer"?Math.floor(this.facade.settings.vessels.rangeCirclesDistance/1e3):Math.floor(B.transform(this.facade.settings.vessels.rangeCirclesDistance,"m","naut-mile"))}}raiseChange(){this.app.alignUnitPrefs(this.app.serverConfig.unitPreferences()),this.unitsChangedSignal.update(d=>d+1)}handleClose(){this.saveOnClose&&this.persistModel(),this.dialogRef.close()}doWakelock(d){this.persistModel(),d?this.wakeLock.disable():this.wakeLock.enable()}doS57(d){this.facade.settings.map.s57Options.depthUnit=this.facade.settings.units.depth,d?this.parseNumber(d):this.persistModel(),this.s57.setOptions(this.facade.settings.map.s57Options)}doRadar(){this.radarApi.init(this.facade.settings.radars.deviceId).then(d=>{d&&this.persistModel()})}onLineStyle(d,a){let e=this.facade.settings.vessels.selfLines[d];e&&(e.color=a.config.color,e.dash=a.config.dash,e.weight=a.config.weight,this.app.selfLines.update(g=>{let o=Object.assign({},g);return o[d]=a.lineStyle,o}),this.persistModel())}toggleFavourites(){this.show.favourites.update(d=>!d)}parseCenterOffset(d){d.reset(typeof d.model=="number"?je(d.model):0),this.persistModel()}parseNumber(d,a){if(typeof d.model!="number"){d.reset(this.fallbackToDefault());return}!a&&d.model<0&&d.reset(Math.abs(d.model)),this.persistModel()}parseFormattedNumber(d,a){typeof d.model=="number"&&(!a&&d.model<0&&d.reset(Math.abs(d.model)),this.facade.settings.vessels.rangeCirclesDistance=this.facade.settings.units.distance==="kilometer"?Math.floor(this.formattedNumberModel.rangeCirclesDistance*1e3):Math.floor(B.nauticalMilesToKm(this.formattedNumberModel.rangeCirclesDistance)*1e3),this.persistModel())}fallbackToDefault(){let d=Ye();if(typeof this.facade.settings.display.statusBar.referenceSpeed!="number")return d.display.statusBar.referenceSpeed;if(typeof this.facade.settings.display.statusBar.tapFadeSpeed!="number")return d.display.statusBar.tapFadeSpeed;if(typeof this.facade.settings.map.s57Options.shallowDepth!="number")return d.map.s57Options.shallowDepth;if(typeof this.facade.settings.map.s57Options.safetyDepth!="number")return d.map.s57Options.safetyDepth;if(typeof this.facade.settings.map.s57Options.deepDepth!="number")return d.map.s57Options.deepDepth;if(typeof this.facade.fixedPosition[0]!="number"||typeof this.facade.fixedPosition[1]!="number")return 0;if(typeof this.facade.settings.course.arrivalCircle!="number")return d.course.arrivalCircle}persistModel(d){this.facade.applySettings(),this.facade.emitChangeEvent(d)}get speedUnitSymbol(){return B.getSymbol(this.facade.settings.units.speed)}deferPersist(d){this.saveOnClose=!0,this.facade.emitChangeEvent(d)}onInstrumentApp(){this.persistModel("pluginInstruments"),this.facade.buildFavouritesList()}onPreferredPaths(d){d.save&&(this.facade.settings.units.preferredPaths=d.value,this.persistModel())}onFavSelected(d,a){this.facade.settings.display.plugins.favourites=a.selectedOptions.selected.map(e=>e.value),this.persistModel()}onAisStateFilter(){let d=[];for(let a in this.aisStateFilter)this.aisStateFilter[a]&&d.push(a);this.facade.settings.selections.aisState=[].concat(d),this.persistModel()}onResPathSelected(d){this.facade.settings.resources.paths=d.selectedOptions.selected.map(a=>a.value),this.facade.settings.resources.paths.forEach(a=>{a in this.facade.settings.selections.resourceSets||(this.facade.settings.selections.resourceSets[a]=[])}),this.persistModel()}clearAuthToken(){this.facade.clearToken()}renderSymbol(d){return B.getSymbol(d)}static \u0275fac=function(a){return new(a||l)};static \u0275cmp=P({type:l,selectors:[["settings-dialog"]],decls:648,vars:136,consts:[["refspeed","ngModel"],["tapfade","ngModel"],["serverprefs",""],["distunits",""],["centerOffsetY","ngModel"],["centerOffsetX","ngModel"],["s57shallowDepth","ngModel"],["s57safetyDepth","ngModel"],["s57deepDepth","ngModel"],["coursearrivalcircle","ngModel"],["courseautoadvance",""],["courseautoadvanceon",""],["vesselfixedlocationmode",""],["fixedlat","ngModel"],["fixedlon","ngModel"],["rangeCirclesDistance","ngModel"],["notesrootfilter",""],["respath",""],["skmaxradius",""],["videourl","ngModel"],["experiments",""],["instparams","ngModel"],["favs",""],["radarlist",""],[2,"background-color","transparent"],[1,"dialog-icon"],[2,"flex","1 1 auto","text-align","center"],[2,"text-align","right"],["mat-icon-button","",3,"click"],["mat-dialog-content",""],["dynamicHeight","false","mat-stretch-tabs","false","mat-align-tabs","start"],["label","Display"],[1,"theme-page","settings"],[1,"theme-panel"],["id","sectDisplay",1,"setting-group"],[1,"setting-group-title"],[1,"setting-card"],[1,"setting-card-row",2,"padding-bottom","10px"],[1,"setting-card-row-item"],[2,"width","100%"],["matTooltip","Dark Mode setting.",3,"ngModelChange","selectionChange","ngModel"],[3,"value"],["label","after","matTooltip","Auto-set using environment.mode value.",3,"ngModelChange","change","ngModel"],["matTooltip","Action button selection.",3,"ngModelChange","selectionChange","ngModel"],["label","after","matTooltip","Disable wake lock.",3,"ngModelChange","change","disabled","ngModel"],["label","after","matTooltip","Un-check to prefer dialogs over the information panel",3,"ngModelChange","change","ngModel"],[1,"setting-card-row"],["matTooltip","Do not play sounds","label","after",3,"ngModelChange","change","ngModel"],["label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Period of time out of alarm state before re-triggering.",3,"ngModelChange","selectionChange","ngModel","disabled"],[1,"setting-group"],["label","after","matTooltip","Show the bearing, distance and ETA from the vessel to the cursor in the status bar. Click or tap the chart to hold the readout on that point.",3,"ngModelChange","change","ngModel"],["floatLabel","always",2,"width","100%"],["matInput","","type","number","min","0","matTooltip","Boat speed used to estimate ETA when SOG is unavailable (e.g. at anchor or hove to).",3,"ngModelChange","change","disabled","ngModel"],["matInput","","type","number","min","1","step","0.5","matTooltip","How long the marker left by a click or tap takes to fade. The readout stays held on that point until it does.",3,"ngModelChange","change","disabled","ngModel"],["matTooltip","Glyph used to display wind direction and speed.",3,"ngModelChange","selectionChange","ngModel"],["label","Units"],["id","sectUnits",1,"setting-group"],["label","after","matTooltip","Use the unit preferences configured on the server.",3,"ngModelChange","change","disabled","ngModel"],[3,"ngModelChange","selectionChange","disabled","ngModel"],["title","Preferred Paths",3,"chosen"],["label","Map"],["id","sectMap",1,"setting-group"],["aria-hidden","true",1,"setting-field-group-title"],[3,"ngModelChange","selectionChange","ngModel"],[1,"setting-field-group-title"],[1,"setting-field-group"],["floatLabel","always"],["matInput","","type","number","matTooltip","Where the vessel sits up or down the screen, as a percentage of the distance to the edge. Positive looks ahead (vessel lower); negative looks behind.",3,"ngModelChange","change","min","max","ngModel"],["matInput","","type","number","matTooltip","Where the vessel sits left or right of centre, as a percentage of the distance to the edge. Positive shifts the map right (vessel left).",3,"ngModelChange","change","min","max","ngModel"],["matTooltip","Add close button to popovers","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Double Click map to zoom","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Keep tiles visible when zooming past chart maxZoom","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","What panning the chart does while following the vessel.",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Graphicsstyle",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Boundaries",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Color Table",3,"ngModelChange","selectionChange","ngModel"],["placeholder","Colors",3,"ngModelChange","selectionChange","ngModel"],["matInput","","type","number","required","","min","0",3,"ngModelChange","change","ngModel"],["matSuffix",""],["multiple","","placeholder","Layers",3,"ngModelChange","selectionChange","ngModel"],["label","Course"],["id","sectCourse",1,"setting-group"],["matTooltip","Select the trigger for advancing to next point.",3,"ngModelChange","selectionChange","disabled","ngModel"],["matTooltip","Period of time before destination is advanced to next waypoint.",3,"ngModelChange","selectionChange","disabled","ngModel"],["label","Vessels"],["id","sectVessels",1,"setting-group"],[3,"ngModelChange","change","ngModel"],["label","after","matTooltip","e.g. Building, Camp, etc.",3,"ngModelChange","change","ngModel"],["matInput","","type","number","required","","pattern","^-?([1-8]?[0-9])(\\.\\d{1,9})?$","min","-90","max","90",3,"ngModelChange","change","ngModel","disabled"],["matInput","","type","number","required","","pattern","^-?(1[0-7]?[0-9]|[1-9]?[0-9])(\\.\\d{1,9})?$","min","-180","max","180",3,"ngModelChange","change","ngModel","disabled"],["matTooltip","Length of heading line.",3,"ngModelChange","selectionChange","ngModel"],[3,"selectionChange","color","dash","weight"],["matTooltip","Length of COG line.",3,"ngModelChange","selectionChange","ngModel"],[3,"ngModelChange","selectionChange","ngModel","disabled"],["label","after",3,"ngModelChange","change","ngModel","disabled"],["matInput","","type","number","required","","min","1",3,"ngModelChange","change","ngModel","disabled"],["matTooltip","Select to source trail data from the server","label","after",3,"ngModelChange","change","disabled","ngModel"],["discrete","","tickInterval","1","min","1","max","96",3,"disabled"],["matSliderThumb","",3,"ngModelChange","valueChange","ngModel"],["label","Resources"],["id","sectNotes",1,"setting-group"],[3,"valueChange","selectionChange","disabled","value"],["matInput","","type","text","placeholder","?radius=%note:radius%","matTooltip","Filter to apply when retrieving notes",3,"ngModelChange","change","ngModel"],["matSuffix","","mat-icon-button",""],["matTooltip","Allow group name editing.","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Require position information when adding notes to a group.","label","after",3,"ngModelChange","change","ngModel"],["label","after","matTooltip","Open Note details with a single click instead of showing the pop-up options",3,"ngModelChange","change","ngModel"],["id","sectResLayers",1,"setting-group"],[2,"font-style","italic"],["matTooltip","Select resource layers to show.",3,"selectionChange"],[3,"selected","value"],["label","Radar"],["label","Signal K"],["id","sectSKConnection",1,"setting-group"],[2,"font-size","smaller"],["matToolTip","Check to receive other vessel data","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Check to receive AtoN data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matTooltip","Check to receive aircraft data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Check to receive SaR data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Check to receive Weather / Meteo data","matTooltipPosition","below","label","after",3,"ngModelChange","change","ngModel"],["matToolTip","Only include AIS targets within this distance","matTooltipPosition","below",3,"ngModelChange","selectionChange","ngModel"],["mat-icon-button","","matTooltip","Clear Auth Token",3,"click"],["label","Experiments"],["id","sectExperiments",1,"setting-group"],["matInput","","type","text","required","","placeholder","Video stream URL","matTooltip","Enter URL of video stream",3,"ngModelChange","change","disabled","ngModel"],["matTooltip","Enable ALL experimental Features","label","after",3,"ngModelChange","change","ngModel"],["matTooltipPosition","right",3,"value","matTooltip"],["matInput","","type","text","placeholder","e.g. ?layout=mylayout","matTooltip","Enter parameters to pass to Instrument App",3,"ngModelChange","change","disabled","ngModel"],["matTooltip","Stop instrument app when hidden","label","after",3,"ngModelChange","change","ngModel"],["mat-raised-button","","matTooltip","Favourite Apps","label","after",3,"click"],[3,"selectionChange"],[3,"disabled","selected","value"],["matTooltip","Display position in this format",3,"ngModelChange","selectionChange","ngModel"],["matTooltip","Preferred value type for paths not in Preferred Paths above",3,"ngModelChange","selectionChange","ngModel"],["src","./assets/img/vessels/self.png"],["matSuffix","","mat-icon-button","",3,"click"],[2,"width","stretch"],["matToolTip","Select radar device","matTooltipPosition","below",3,"ngModelChange","selectionChange","disabled","ngModel"],["mat-raised-button","",3,"click"]],template:function(a,e){if(a&1){let g=V();i(0,"mat-toolbar",24)(1,"span",25)(2,"mat-icon"),s(3,"settings"),n()(),i(4,"span",26),s(5,"Settings"),n(),i(6,"span",27)(7,"button",28),p("click",function(){return e.handleClose()}),i(8,"mat-icon"),s(9,"close"),n()()()(),i(10,"div",29)(11,"mat-tab-group",30)(12,"mat-tab",31)(13,"div",32)(14,"div",33)(15,"div",34)(16,"div",35),s(17,"DISPLAY"),n(),i(18,"mat-card",36)(19,"mat-card-content")(20,"div",37)(21,"div",38)(22,"mat-form-field",39)(23,"mat-label"),s(24,"Dark Mode setting"),n(),i(25,"mat-select",40),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.darkMode.source,t)||(e.facade.settings.display.darkMode.source=t),c(t)}),p("selectionChange",function(){return e.persistModel("darkTheme")}),y(26,Tt,2,2,"mat-option",41,v),n()()(),i(28,"div",38)(29,"mat-checkbox",42),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.nightMode,t)||(e.facade.settings.display.nightMode=t),c(t)}),p("change",function(){return e.persistModel()}),s(30," Auto-set Night Mode "),n()(),i(31,"div",38)(32,"mat-form-field",39)(33,"mat-label"),s(34,"Action Button"),n(),i(35,"mat-select",43),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.fab,t)||(e.facade.settings.display.fab=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(36,Dt,2,2,"mat-option",41,v),n()()(),i(38,"div",38)(39,"mat-checkbox",44),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.disableWakelock,t)||(e.facade.settings.display.disableWakelock=t),c(t)}),p("change",function(t){return e.doWakelock(t.checked)}),s(40," Allow Device to Sleep "),n()(),i(41,"div",38)(42,"mat-checkbox",45),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.preferInfoPanel,t)||(e.facade.settings.display.preferInfoPanel=t),c(t)}),p("change",function(){return e.persistModel()}),s(43," Prefer Info-Panel "),n()()()()(),E(44,"br"),i(45,"mat-card",36)(46,"mat-card-content"),T(47,Wt,22,4,"div",46),T(48,kt,10,0,"div",37),n()(),E(49,"br"),n(),i(50,"div",34)(51,"div",35),s(52,"SOUND"),n(),i(53,"mat-card",36)(54,"mat-card-content")(55,"div",37)(56,"div",38)(57,"mat-checkbox",47),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.muteSound,t)||(e.facade.settings.display.muteSound=t),c(t)}),p("change",function(){return e.persistModel()}),s(58," Do not Play Sounds "),n()(),i(59,"div",38)(60,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.depthAlarm.enabled,t)||(e.facade.settings.display.depthAlarm.enabled=t),c(t)}),p("change",function(){return e.persistModel()}),s(61," Show DEPTH Alarms "),n()(),i(62,"div",38)(63,"mat-form-field",39)(64,"mat-label"),s(65,"Alarm Smoothing Time"),n(),i(66,"mat-select",49),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.depthAlarm.smoothing,t)||(e.facade.settings.display.depthAlarm.smoothing=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(67,Pt,2,2,"mat-option",41,v),n()()()()()()(),i(69,"div",50)(70,"div",35),s(71,"STATUS BAR OPTIONS"),n(),i(72,"mat-card",36)(73,"mat-card-content")(74,"div",37)(75,"div",38)(76,"mat-checkbox",51),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.statusBar.liveEta,t)||(e.facade.settings.display.statusBar.liveEta=t),c(t)}),p("change",function(){return e.persistModel()}),s(77," Live ETA at cursor "),n()(),i(78,"div",38)(79,"mat-form-field",52)(80,"mat-label"),s(81),n(),i(82,"input",53,0),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.statusBar.referenceSpeed,t)||(e.facade.settings.display.statusBar.referenceSpeed=t),c(t)}),p("change",function(){m(g);let t=M(83);return c(e.parseNumber(t))}),n(),T(84,Lt,2,0,"mat-error"),n()(),i(85,"div",38)(86,"mat-form-field",52)(87,"mat-label"),s(88,"Tap Fade Speed (s)"),n(),i(89,"input",54,1),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.statusBar.tapFadeSpeed,t)||(e.facade.settings.display.statusBar.tapFadeSpeed=t),c(t)}),p("change",function(){m(g);let t=M(90);return c(e.parseNumber(t))}),n(),T(91,xt,2,0,"mat-error"),n()()()()()(),i(92,"div",50)(93,"div",35),s(94,"WEATHER"),n(),i(95,"mat-card",36)(96,"mat-card-content")(97,"div",37)(98,"div",38)(99,"mat-form-field",39)(100,"mat-label"),s(101,"Wind indicator"),n(),i(102,"mat-select",55),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.windIndicator,t)||(e.facade.settings.display.windIndicator=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(103,Ot,2,2,"mat-option",41,v),n()()()()()()()()()(),i(105,"mat-tab",56)(106,"div",32)(107,"div",33)(108,"div",57)(109,"div",35),s(110,"UNITS & VALUES"),n(),i(111,"mat-card",36)(112,"mat-card-content")(113,"div",37)(114,"div",38)(115,"fieldset")(116,"legend")(117,"mat-checkbox",58,2),u("ngModelChange",function(t){return m(g),f(e.facade.settings.units.useServerPrefs,t)||(e.facade.settings.units.useServerPrefs=t),c(t)}),p("change",function(){return m(g),e.raiseChange(),c(e.persistModel())}),s(119," Use Server Unit Preferences "),n()(),i(120,"div",37)(121,"div",38)(122,"mat-form-field",39)(123,"mat-label"),s(124,"Distance units"),n(),i(125,"mat-select",59,3),u("ngModelChange",function(t){return m(g),f(e.facade.settings.units.distance,t)||(e.facade.settings.units.distance=t),c(t)}),p("selectionChange",function(){return m(g),e.raiseChange(),c(e.persistModel())}),y(127,Bt,2,2,"mat-option",41,v),n()()(),i(129,"div",38)(130,"mat-form-field",39)(131,"mat-label"),s(132,"Depth units"),n(),i(133,"mat-select",59),u("ngModelChange",function(t){return m(g),f(e.facade.settings.units.depth,t)||(e.facade.settings.units.depth=t),c(t)}),p("selectionChange",function(){return m(g),e.raiseChange(),c(e.doS57())}),y(134,It,2,2,"mat-option",41,v),n()()(),i(136,"div",38)(137,"mat-form-field",39)(138,"mat-label"),s(139,"Length units"),n(),i(140,"mat-select",59),u("ngModelChange",function(t){return m(g),f(e.facade.settings.units.length,t)||(e.facade.settings.units.length=t),c(t)}),p("selectionChange",function(){return m(g),e.raiseChange(),c(e.persistModel())}),y(141,Ft,2,2,"mat-option",41,v),n()()(),i(143,"div",38)(144,"mat-form-field",39)(145,"mat-label"),s(146,"Temperature units"),n(),i(147,"mat-select",59),u("ngModelChange",function(t){return m(g),f(e.facade.settings.units.temperature,t)||(e.facade.settings.units.temperature=t),c(t)}),p("selectionChange",function(){return m(g),e.raiseChange(),c(e.persistModel())}),y(148,At,2,2,"mat-option",41,v),n()()(),i(150,"div",38)(151,"mat-form-field",39)(152,"mat-label"),s(153,"Speed units"),n(),i(154,"mat-select",59),u("ngModelChange",function(t){return m(g),f(e.facade.settings.units.speed,t)||(e.facade.settings.units.speed=t),c(t)}),p("selectionChange",function(){return m(g),e.raiseChange(),c(e.persistModel())}),y(155,Nt,2,2,"mat-option",41,v),n()()()()()()(),i(157,"div",37),T(158,Ut,7,1,"div",38),T(159,Zt,7,1,"div",38),i(160,"div",38)(161,"signalk-preferred-paths",60),p("chosen",function(t){return e.onPreferredPaths(t)}),n()()()()()()()()(),i(162,"mat-tab",61)(163,"div",32)(164,"div",33)(165,"div",62)(166,"div",35),s(167,"MAP"),n(),i(168,"mat-card")(169,"mat-card-content")(170,"div",37)(171,"div",38)(172,"div",63),s(173," \xA0 "),n(),i(174,"mat-form-field",39)(175,"mat-label"),s(176,"Feature label zoom level"),n(),i(177,"mat-select",64),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.labelsMinZoom,t)||(e.facade.settings.map.labelsMinZoom=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(178,Ht,2,2,"mat-option",41,b),n()()(),i(180,"div",38)(181,"div",65),s(182," Offset Vessel Center (%) "),n(),i(183,"div",66)(184,"mat-form-field",67)(185,"mat-label"),s(186,"Vertical"),n(),i(187,"input",68,4),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.centerOffset.y,t)||(e.facade.settings.map.centerOffset.y=t),c(t)}),p("change",function(){m(g);let t=M(188);return c(e.parseCenterOffset(t))}),n()(),i(189,"mat-form-field",67)(190,"mat-label"),s(191,"Horizontal"),n(),i(192,"input",69,5),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.centerOffset.x,t)||(e.facade.settings.map.centerOffset.x=t),c(t)}),p("change",function(){m(g);let t=M(193);return c(e.parseCenterOffset(t))}),n()()()(),i(194,"div",38)(195,"mat-checkbox",70),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.popoverMulti,t)||(e.facade.settings.map.popoverMulti=t),c(t)}),p("change",function(){return e.persistModel()}),s(196," Popovers close with button "),n()(),i(197,"div",38)(198,"mat-checkbox",71),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.doubleClickZoom,t)||(e.facade.settings.map.doubleClickZoom=t),c(t)}),p("change",function(){return e.persistModel()}),s(199," Double click to Zoom "),n()(),i(200,"div",38)(201,"mat-checkbox",72),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.overZoomTiles,t)||(e.facade.settings.map.overZoomTiles=t),c(t)}),p("change",function(){return e.persistModel()}),s(202," Keep tiles visible on max zoom "),n()(),i(203,"div",38)(204,"mat-form-field",39)(205,"mat-label"),s(206,"Map Pan When Following"),n(),i(207,"mat-select",73),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.panBehavior,t)||(e.facade.settings.map.panBehavior=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(208,Kt,2,2,"mat-option",41,v),n()()()()()(),i(210,"div",35),s(211,"VECTOR CHARTS"),n(),i(212,"mat-card")(213,"mat-card-content")(214,"div",37)(215,"div",38)(216,"mat-form-field",39)(217,"mat-label"),s(218,"Graphics Style"),n(),i(219,"mat-select",74),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.graphicsStyle,t)||(e.facade.settings.map.s57Options.graphicsStyle=t),c(t)}),p("selectionChange",function(){return e.doS57()}),y(220,zt,2,2,"mat-option",41,v),n()()(),i(222,"div",38)(223,"mat-form-field",39)(224,"mat-label"),s(225,"Boundaries"),n(),i(226,"mat-select",75),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.boundaries,t)||(e.facade.settings.map.s57Options.boundaries=t),c(t)}),p("selectionChange",function(){return e.doS57()}),y(227,qt,2,2,"mat-option",41,v),n()()(),i(229,"div",38)(230,"mat-form-field",39)(231,"mat-label"),s(232,"Color Table (Requires refresh)"),n(),i(233,"mat-select",76),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.colorTable,t)||(e.facade.settings.map.s57Options.colorTable=t),c(t)}),p("selectionChange",function(){return e.doS57()}),y(234,jt,2,2,"mat-option",41,v),n()()(),i(236,"div",38)(237,"mat-form-field",39)(238,"mat-label"),s(239,"Colors"),n(),i(240,"mat-select",77),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.colors,t)||(e.facade.settings.map.s57Options.colors=t),c(t)}),p("selectionChange",function(){return e.doS57()}),y(241,Xt,2,2,"mat-option",41,b),n()()()(),i(243,"div",37)(244,"div",38)(245,"mat-form-field",39)(246,"mat-label"),s(247,"Shallow depth"),n(),i(248,"input",78,6),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.shallowDepth,t)||(e.facade.settings.map.s57Options.shallowDepth=t),c(t)}),p("change",function(){m(g);let t=M(249);return c(e.doS57(t))}),n(),T(250,Yt,2,0,"mat-error"),i(251,"span",79),s(252,"m"),n()()(),i(253,"div",38)(254,"mat-form-field",39)(255,"mat-label"),s(256,"Safety depth"),n(),i(257,"input",78,7),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.safetyDepth,t)||(e.facade.settings.map.s57Options.safetyDepth=t),c(t)}),p("change",function(){m(g);let t=M(258);return c(e.doS57(t))}),n(),T(259,Jt,2,0,"mat-error"),i(260,"span",79),s(261,"m"),n()()(),i(262,"div",38)(263,"mat-form-field",39)(264,"mat-label"),s(265,"Deep depth"),n(),i(266,"input",78,8),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.deepDepth,t)||(e.facade.settings.map.s57Options.deepDepth=t),c(t)}),p("change",function(){m(g);let t=M(267);return c(e.doS57(t))}),n(),T(268,Qt,2,0,"mat-error"),i(269,"span",79),s(270,"m"),n()()(),i(271,"div",38)(272,"mat-form-field",39)(273,"mat-label"),s(274,"Layers"),n(),i(275,"mat-select",80),u("ngModelChange",function(t){return m(g),f(e.facade.settings.map.s57Options.otherLayers,t)||(e.facade.settings.map.s57Options.otherLayers=t),c(t)}),p("selectionChange",function(){return e.doS57()}),y(276,$t,2,2,"mat-option",41,v),n()()()()()()()()()(),i(278,"mat-tab",81)(279,"div",32)(280,"div",33)(281,"div",82)(282,"div",35),s(283,"COURSE"),n(),i(284,"mat-card",36)(285,"mat-card-content")(286,"div",37)(287,"div",38)(288,"mat-form-field",39)(289,"mat-label"),s(290,"Arrival Circle"),n(),i(291,"input",78,9),u("ngModelChange",function(t){return m(g),f(e.facade.settings.course.arrivalCircle,t)||(e.facade.settings.course.arrivalCircle=t),c(t)}),p("change",function(){m(g);let t=M(292);return c(e.parseNumber(t))}),n(),T(293,ei,2,0,"mat-error"),i(294,"span",79),s(295,"m"),n()()()(),i(296,"div",37)(297,"div",38)(298,"mat-checkbox",48,10),u("ngModelChange",function(t){return m(g),f(e.facade.settings.course.autoNextPointOnArrival,t)||(e.facade.settings.course.autoNextPointOnArrival=t),c(t)}),p("change",function(){return e.persistModel()}),s(300," Auto-advance to next point on arrival "),n()()(),i(301,"div",37)(302,"div",38)(303,"mat-form-field",39)(304,"mat-label"),s(305,"Notification type to use"),n(),i(306,"mat-select",83,11),u("ngModelChange",function(t){return m(g),f(e.facade.settings.course.autoNextPointTrigger,t)||(e.facade.settings.course.autoNextPointTrigger=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(308,ti,2,2,"mat-option",41,b),n()()(),i(310,"div",38)(311,"mat-form-field",39)(312,"mat-label"),s(313,"Time to wait before advancing"),n(),i(314,"mat-select",84),u("ngModelChange",function(t){return m(g),f(e.facade.settings.course.autoNextPointDelay,t)||(e.facade.settings.course.autoNextPointDelay=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(315,ii,2,2,"mat-option",41,v),n()()()()()()()()()(),i(317,"mat-tab",85)(318,"div",32)(319,"div",33)(320,"div",86)(321,"div",35),s(322,"VESSEL"),n(),i(323,"mat-card",36)(324,"mat-card-content")(325,"div",37)(326,"div",38)(327,"fieldset")(328,"legend"),s(329,"Vessel Icon Size"),n(),i(330,"div",37)(331,"div",38)(332,"mat-radio-group",87),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.iconScale,t)||(e.facade.settings.vessels.iconScale=t),c(t)}),p("change",function(){return e.persistModel()}),y(333,ni,3,4,"mat-radio-button",41,v),n()()()()()(),i(335,"div",38)(336,"fieldset")(337,"legend")(338,"mat-checkbox",88,12),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.fixedLocationMode,t)||(e.facade.settings.vessels.fixedLocationMode=t),c(t)}),p("change",function(){return e.persistModel()}),s(340," Fixed Location Mode "),n()(),i(341,"div",37)(342,"div",38)(343,"mat-form-field",67)(344,"mat-label"),s(345,"Latitude"),n(),i(346,"input",89,13),u("ngModelChange",function(t){return m(g),f(e.facade.fixedPosition[1],t)||(e.facade.fixedPosition[1]=t),c(t)}),p("change",function(){m(g);let t=M(347);return c(e.parseNumber(t,!0))}),n(),T(348,ai,2,0,"mat-error"),n(),i(349,"mat-form-field",67)(350,"mat-label"),s(351,"Longitude"),n(),i(352,"input",90,14),u("ngModelChange",function(t){return m(g),f(e.facade.fixedPosition[0],t)||(e.facade.fixedPosition[0]=t),c(t)}),p("change",function(){m(g);let t=M(353);return c(e.parseNumber(t,!0))}),n(),T(354,oi,2,0,"mat-error"),n()()()()()()(),E(355,"br"),i(356,"mat-card",36)(357,"mat-card-content")(358,"div",38)(359,"fieldset")(360,"legend"),s(361,"Vessel Lines:"),n(),i(362,"div",37)(363,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.windVectors,t)||(e.facade.settings.vessels.windVectors=t),c(t)}),p("change",function(){return e.persistModel()}),s(364," Display Wind Vectors "),n(),i(365,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.laylines,t)||(e.facade.settings.vessels.laylines=t),c(t)}),p("change",function(){return e.persistModel()}),s(366," Display Laylines "),n()(),i(367,"div",37)(368,"div",38)(369,"fieldset")(370,"legend"),s(371,"Heading Line"),n(),i(372,"div",37)(373,"div",38)(374,"mat-form-field")(375,"mat-label"),s(376,"Heading Line Length"),n(),i(377,"mat-select",91),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.selfLines.heading.length,t)||(e.facade.settings.vessels.selfLines.heading.length=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(378,ri,2,2,"mat-option",41,v),n()()(),i(380,"div",38)(381,"linestyle-select",92),p("selectionChange",function(t){return e.onLineStyle("heading",t)}),n()()()()()(),i(382,"div",37)(383,"div",38)(384,"fieldset")(385,"legend"),s(386,"COG Line"),n(),i(387,"div",37)(388,"div",38)(389,"mat-form-field")(390,"mat-label"),s(391,"COG Line Length"),n(),i(392,"mat-select",93),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.selfLines.cog.length,t)||(e.facade.settings.vessels.selfLines.cog.length=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(393,si,2,2,"mat-option",41,v),n()()(),i(395,"div",38)(396,"linestyle-select",92),p("selectionChange",function(t){return e.onLineStyle("cog",t)}),n()()()()()()()(),i(397,"div",38)(398,"fieldset")(399,"legend")(400,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.rangeCircles,t)||(e.facade.settings.vessels.rangeCircles=t),c(t)}),p("change",function(){return e.persistModel()}),s(401," Display Range Circles "),n()(),i(402,"div",37)(403,"div",38)(404,"mat-form-field",39)(405,"mat-label"),s(406,"Number of Range Circles"),n(),i(407,"mat-select",94),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.rangeCircleCount,t)||(e.facade.settings.vessels.rangeCircleCount=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(408,li,2,2,"mat-option",41,b),n()()(),i(410,"div",38)(411,"mat-form-field",39)(412,"mat-label"),s(413,"Minimum Zoom Level"),n(),i(414,"mat-select",94),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.rangeCircleMinZoom,t)||(e.facade.settings.vessels.rangeCircleMinZoom=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(415,di,2,2,"mat-option",41,b),n()()()(),i(417,"div",37)(418,"div",38)(419,"mat-checkbox",95),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.rangeCirclesFixed,t)||(e.facade.settings.vessels.rangeCirclesFixed=t),c(t)}),p("change",function(){return e.persistModel()}),s(420," Use Fixed Distance "),n()(),i(421,"div",38)(422,"mat-form-field",67)(423,"mat-label"),s(424),n(),i(425,"input",96,15),u("ngModelChange",function(t){return m(g),f(e.formattedNumberModel.rangeCirclesDistance,t)||(e.formattedNumberModel.rangeCirclesDistance=t),c(t)}),p("change",function(){m(g);let t=M(426);return c(e.parseFormattedNumber(t))}),n(),T(427,gi,2,0,"mat-error"),n()()()()()()(),E(428,"br"),i(429,"mat-card",36)(430,"mat-card-content")(431,"div",37)(432,"fieldset")(433,"legend")(434,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.trail,t)||(e.facade.settings.vessels.trail=t),c(t)}),p("change",function(){return e.persistModel("vesselTrail")}),s(435," Display Vessel Track "),n()(),i(436,"div",37)(437,"div",38)(438,"mat-checkbox",97),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.trailFromServer,t)||(e.facade.settings.vessels.trailFromServer=t),c(t)}),p("change",function(){return e.persistModel("trailFromServer")}),s(439," Get Track from server "),n(),s(440," \xA0\xA0 "),i(441,"mat-slider",98)(442,"input",99),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.trailDuration,t)||(e.facade.settings.vessels.trailDuration=t),c(t)}),p("valueChange",function(){return e.deferPersist()}),n()(),s(443),n()(),i(444,"div",37)(445,"div",38)(446,"mat-form-field",39)(447,"mat-label"),s(448,"Resolution: Last hour"),n(),i(449,"mat-select",94),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.trailResolution.lastHour,t)||(e.facade.settings.vessels.trailResolution.lastHour=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(450,mi,2,2,"mat-option",41,v),n()()(),i(452,"div",38)(453,"mat-form-field",39)(454,"mat-label"),s(455,"Resolution: 1 hr -> 24 hrs"),n(),i(456,"mat-select",94),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.trailResolution.next23,t)||(e.facade.settings.vessels.trailResolution.next23=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(457,ci,2,2,"mat-option",41,v),n()()(),i(459,"div",38)(460,"mat-form-field",39)(461,"mat-label"),s(462,"Resolution: > 24 hrs"),n(),i(463,"mat-select",94),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.trailResolution.beyond24,t)||(e.facade.settings.vessels.trailResolution.beyond24=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(464,pi,2,2,"mat-option",41,v),n()()()()()()()(),i(466,"div",35),s(467,"OTHER VESSELS"),n(),i(468,"mat-card",36)(469,"mat-card-content")(470,"div",37)(471,"div",38)(472,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.aisShowTrack,t)||(e.facade.settings.vessels.aisShowTrack=t),c(t)}),p("change",function(){return e.persistModel()}),s(473," Show Track "),n(),s(474," \xA0 "),i(475,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.aisStateFilter.moored,t)||(e.aisStateFilter.moored=t),c(t)}),p("change",function(){return e.onAisStateFilter()}),s(476," Hide Moored "),n(),s(477," \xA0 "),i(478,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.aisStateFilter.anchored,t)||(e.aisStateFilter.anchored=t),c(t)}),p("change",function(){return e.onAisStateFilter()}),s(479," Hide Anchored "),n()()(),i(480,"div",37)(481,"div",38)(482,"mat-form-field",39)(483,"mat-label"),s(484,"Mark AIS target inactive after"),n(),i(485,"mat-select",64),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.aisStaleAge,t)||(e.facade.settings.vessels.aisStaleAge=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(486,_i,2,2,"mat-option",41,v),n()()(),i(488,"div",38)(489,"mat-form-field",39)(490,"mat-label"),s(491,"Remove AIS target after"),n(),i(492,"mat-select",64),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.aisMaxAge,t)||(e.facade.settings.vessels.aisMaxAge=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(493,fi,2,2,"mat-option",41,v),n()()(),i(495,"div",38)(496,"mat-form-field",39)(497,"mat-label"),s(498,"Wind Vector Value"),n(),i(499,"mat-select",64),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.aisWindApparent,t)||(e.facade.settings.vessels.aisWindApparent=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(500,ui,2,2,"mat-option",41,v),n()()(),i(502,"div",38)(503,"mat-form-field",39)(504,"mat-label"),s(505,"Wind / Track Zoom Level"),n(),i(506,"mat-select",64),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.aisWindMinZoom,t)||(e.facade.settings.vessels.aisWindMinZoom=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(507,hi,2,2,"mat-option",41,b),n()()(),i(509,"div",38)(510,"mat-form-field",39)(511,"mat-label"),s(512,"COG Line"),n(),i(513,"mat-select",64),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.aisCogLine,t)||(e.facade.settings.vessels.aisCogLine=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(514,yi,2,2,"mat-option",41,v),n()()()()()()()()()(),i(516,"mat-tab",100)(517,"div",32)(518,"div",33)(519,"div",101)(520,"div",35),s(521,"NOTES"),n(),i(522,"mat-card",36)(523,"mat-card-content")(524,"div",46)(525,"div",38)(526,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.ui.showNotes,t)||(e.facade.settings.ui.showNotes=t),c(t)}),p("change",function(){return e.persistModel()}),s(527," Display Notes on Map "),n()(),i(528,"div",38)(529,"mat-form-field",39)(530,"mat-label"),s(531,"Notes Zoom Level"),n(),i(532,"mat-select",102),u("valueChange",function(t){return m(g),f(e.facade.settings.resources.notes.minZoom,t)||(e.facade.settings.resources.notes.minZoom=t),c(t)}),p("selectionChange",function(){return e.persistModel("fetchNotes")}),y(533,Si,2,2,"mat-option",41,b),n()()()(),i(535,"div",46)(536,"div",38)(537,"mat-form-field",39)(538,"mat-label"),s(539),n(),i(540,"mat-select",59),u("ngModelChange",function(t){return m(g),f(e.facade.settings.resources.notes.getRadius,t)||(e.facade.settings.resources.notes.getRadius=t),c(t)}),p("selectionChange",function(){return e.persistModel("fetchNotes")}),y(541,Ci,2,2,"mat-option",41,b),n()()()(),i(543,"div",46)(544,"div",38)(545,"mat-form-field",52)(546,"mat-label"),s(547,"Notes fetch filter:"),n(),i(548,"input",103,16),u("ngModelChange",function(t){return m(g),f(e.facade.settings.resources.notes.rootFilter,t)||(e.facade.settings.resources.notes.rootFilter=t),c(t)}),p("change",function(){return e.persistModel("fetchNotes")}),n(),T(550,Mi,3,0,"button",104),n()()(),i(551,"div",46)(552,"div",38)(553,"mat-checkbox",105),u("ngModelChange",function(t){return m(g),f(e.facade.settings.resources.notes.groupNameEdit,t)||(e.facade.settings.resources.notes.groupNameEdit=t),c(t)}),p("change",function(){return e.persistModel()}),s(554," Edit Group Names "),n()(),i(555,"div",38)(556,"mat-checkbox",106),u("ngModelChange",function(t){return m(g),f(e.facade.settings.resources.notes.groupRequiresPosition,t)||(e.facade.settings.resources.notes.groupRequiresPosition=t),c(t)}),p("change",function(){return e.persistModel()}),s(557," Position Group Note "),n()()(),i(558,"div",46)(559,"div",38)(560,"mat-checkbox",107),u("ngModelChange",function(t){return m(g),f(e.facade.settings.display.singleClickNoteDetails,t)||(e.facade.settings.display.singleClickNoteDetails=t),c(t)}),p("change",function(){return e.persistModel()}),s(561," Single Click for Note Details "),n()()()()()(),i(562,"div",108)(563,"div",35),s(564,"CUSTOM RESOURCES"),n(),i(565,"mat-card",36)(566,"mat-card-content")(567,"div",46)(568,"div",38)(569,"div",109),s(570," Select custom resource types (./resources/<name>) "),n(),i(571,"mat-selection-list",110,17),p("selectionChange",function(){m(g);let t=M(572);return c(e.onResPathSelected(t))}),y(573,wi,2,3,"mat-list-option",111,b),n()()()()()()()()(),T(575,bi,21,2,"mat-tab",112),i(576,"mat-tab",113)(577,"div",32)(578,"div",33)(579,"div",114)(580,"div",35),s(581,"SIGNAL K: CONNECTION"),n(),i(582,"mat-card",36)(583,"mat-card-content")(584,"div",46)(585,"fieldset")(586,"legend"),s(587,"Filter Stream data:"),n(),i(588,"span",115),s(589," Check to include Signal K schema groups on display."),E(590,"br"),i(591,"i"),s(592,"Use to manage display performance."),n()(),i(593,"div",38)(594,"mat-checkbox",116),u("ngModelChange",function(t){return m(g),f(e.facade.settings.signalk.vessels,t)||(e.facade.settings.signalk.vessels=t),c(t)}),p("change",function(){return e.persistModel()}),s(595," Vessels (other than Self) "),n()(),i(596,"div",38)(597,"mat-checkbox",117),u("ngModelChange",function(t){return m(g),f(e.facade.settings.signalk.atons,t)||(e.facade.settings.signalk.atons=t),c(t)}),p("change",function(){return e.persistModel()}),s(598," Aids to Navigation (AtoN) "),n()(),i(599,"div",38)(600,"mat-checkbox",118),u("ngModelChange",function(t){return m(g),f(e.facade.settings.signalk.aircraft,t)||(e.facade.settings.signalk.aircraft=t),c(t)}),p("change",function(){return e.persistModel()}),s(601," Aircraft "),n()(),i(602,"div",38)(603,"mat-checkbox",119),u("ngModelChange",function(t){return m(g),f(e.facade.settings.signalk.sar,t)||(e.facade.settings.signalk.sar=t),c(t)}),p("change",function(){return e.persistModel()}),s(604," Search and Rescue (SaR) "),n()(),i(605,"div",38)(606,"mat-checkbox",120),u("ngModelChange",function(t){return m(g),f(e.facade.settings.signalk.meteo,t)||(e.facade.settings.signalk.meteo=t),c(t)}),p("change",function(){return e.persistModel()}),s(607," Weather (Meteo) "),n()(),i(608,"div",38),E(609,"br"),i(610,"mat-form-field",39)(611,"mat-label"),s(612,"Max. distance from vessel"),n(),i(613,"mat-select",121,18),u("ngModelChange",function(t){return m(g),f(e.facade.settings.signalk.maxRadius,t)||(e.facade.settings.signalk.maxRadius=t),c(t)}),p("selectionChange",function(){return e.persistModel()}),y(615,Ti,2,2,"mat-option",41,v),n()()()()(),i(617,"div",46)(618,"div",38)(619,"button",122),p("click",function(){return e.clearAuthToken()}),i(620,"mat-icon"),s(621,"key_off"),n()()()()()()()()()(),i(622,"mat-tab",123)(623,"div",32)(624,"div",33)(625,"div",124)(626,"div",35),s(627,"EXPERIMENTS"),n(),i(628,"mat-card",36)(629,"mat-card-content")(630,"div",46)(631,"div",38)(632,"mat-checkbox",48),u("ngModelChange",function(t){return m(g),f(e.facade.settings.resources.video.enable,t)||(e.facade.settings.resources.video.enable=t),c(t)}),p("change",function(){return e.persistModel()}),s(633," Enable Video "),n()(),i(634,"div",38)(635,"mat-form-field",52)(636,"mat-label"),s(637,"url:"),n(),i(638,"input",125,19),u("ngModelChange",function(t){return m(g),f(e.facade.settings.resources.video.url,t)||(e.facade.settings.resources.video.url=t),c(t)}),p("change",function(){return e.persistModel("videoUrl")}),n(),T(640,Di,2,0,"mat-error"),n()()(),i(641,"div",46)(642,"div",38)(643,"mat-checkbox",126,20),u("ngModelChange",function(t){return m(g),f(e.facade.settings.experiments,t)||(e.facade.settings.experiments=t),c(t)}),p("change",function(){return e.persistModel()}),i(645,"mat-icon"),s(646,"science"),n(),s(647," Experimental Features "),n()()()()()()()()()()()}if(a&2){let g=M(83),o=M(90),t=M(126),ne=M(249),ae=M(258),oe=M(267),re=M(292),ge=M(299),me=M(339),se=M(347),le=M(353),de=M(426),mt=M(549),ct=M(639);r(25),_("ngModel",e.facade.settings.display.darkMode.source),r(),S(e.options.darkMode),r(3),_("ngModel",e.facade.settings.display.nightMode),r(6),_("ngModel",e.facade.settings.display.fab),r(),S(e.options.buttons.fab),r(3),h("disabled",!e.wakeLock.isAvailable),_("ngModel",e.facade.settings.display.disableWakelock),r(3),_("ngModel",e.facade.settings.display.preferInfoPanel),r(5),D(e.facade.applicationList.length>1?47:-1),r(),D(e.show.favourites()?48:-1),r(9),_("ngModel",e.facade.settings.display.muteSound),r(3),_("ngModel",e.facade.settings.display.depthAlarm.enabled),r(6),_("ngModel",e.facade.settings.display.depthAlarm.smoothing),h("disabled",!e.facade.settings.display.depthAlarm.enabled),r(),S(e.options.alarm.smoothing),r(9),_("ngModel",e.facade.settings.display.statusBar.liveEta),r(5),k("Reference Boat Speed (",e.speedUnitSymbol,")"),r(),h("disabled",!e.facade.settings.display.statusBar.liveEta),_("ngModel",e.facade.settings.display.statusBar.referenceSpeed),r(2),D(g.invalid&&(g.dirty||g.touched)?84:-1),r(5),h("disabled",!e.facade.settings.display.statusBar.liveEta),_("ngModel",e.facade.settings.display.statusBar.tapFadeSpeed),r(2),D(o.invalid&&(o.dirty||o.touched)?91:-1),r(11),_("ngModel",e.facade.settings.display.windIndicator),r(),S(e.options.windIndicator),r(14),h("disabled",!e.app.serverConfig.unitPreferences()),_("ngModel",e.facade.settings.units.useServerPrefs),r(8),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.distance),r(2),S(e.options.availableUnits.distance),r(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.depth),r(),S(e.options.availableUnits.depth),r(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.length),r(),S(e.options.availableUnits.length),r(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.temperature),r(),S(e.options.availableUnits.temperature),r(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.speed),r(),S(e.options.availableUnits.speed),r(3),D(e.options.preferredValues.coords.length!==0?158:-1),r(),D(e.options.preferredValues.heading.length!==0?159:-1),r(18),_("ngModel",e.facade.settings.map.labelsMinZoom),r(),S(e.options.zoomLevels),r(9),h("min",-e.centerOffsetLimit)("max",e.centerOffsetLimit),_("ngModel",e.facade.settings.map.centerOffset.y),r(5),h("min",-e.centerOffsetLimit)("max",e.centerOffsetLimit),_("ngModel",e.facade.settings.map.centerOffset.x),r(3),_("ngModel",e.facade.settings.map.popoverMulti),r(3),_("ngModel",e.facade.settings.map.doubleClickZoom),r(3),_("ngModel",e.facade.settings.map.overZoomTiles),r(6),_("ngModel",e.facade.settings.map.panBehavior),r(),S(e.options.map.panBehavior),r(11),_("ngModel",e.facade.settings.map.s57Options.graphicsStyle),r(),S(e.options.map.s57.graphicsStyle),r(6),_("ngModel",e.facade.settings.map.s57Options.boundaries),r(),S(e.options.map.s57.boundaries),r(6),_("ngModel",e.facade.settings.map.s57Options.colorTable),r(),S(e.options.map.s57.colorTables),r(6),_("ngModel",e.facade.settings.map.s57Options.colors),r(),S(e.options.map.s57.colors),r(7),_("ngModel",e.facade.settings.map.s57Options.shallowDepth),r(2),D(ne.invalid&&(ne.dirty||ne.touched)?250:-1),r(7),_("ngModel",e.facade.settings.map.s57Options.safetyDepth),r(2),D(ae.invalid&&(ae.dirty||ae.touched)?259:-1),r(7),_("ngModel",e.facade.settings.map.s57Options.deepDepth),r(2),D(oe.invalid&&(oe.dirty||oe.touched)?268:-1),r(7),_("ngModel",e.facade.settings.map.s57Options.otherLayers),r(),S(e.options.map.s57.otherLayers),r(15),_("ngModel",e.facade.settings.course.arrivalCircle),r(2),D(re.invalid&&(re.dirty||re.touched)?293:-1),r(5),_("ngModel",e.facade.settings.course.autoNextPointOnArrival),r(8),h("disabled",ge.checked===!1),_("ngModel",e.facade.settings.course.autoNextPointTrigger),r(2),S(e.options.course.nextPointTrigger),r(6),h("disabled",ge.checked===!1),_("ngModel",e.facade.settings.course.autoNextPointDelay),r(),S(e.options.course.nextPointDelay),r(17),_("ngModel",e.facade.settings.vessels.iconScale),r(),S(e.options.vessel.selfIconScale),r(5),_("ngModel",e.facade.settings.vessels.fixedLocationMode),r(8),_("ngModel",e.facade.fixedPosition[1]),h("disabled",!me.checked),r(2),D(se.invalid&&(se.dirty||se.touched)?348:-1),r(4),_("ngModel",e.facade.fixedPosition[0]),h("disabled",!me.checked),r(2),D(le.invalid&&(le.dirty||le.touched)?354:-1),r(9),_("ngModel",e.facade.settings.vessels.windVectors),r(2),_("ngModel",e.facade.settings.vessels.laylines),r(12),_("ngModel",e.facade.settings.vessels.selfLines.heading.length),r(),S(e.options.vessel.headingLine),r(3),h("color",e.facade.settings.vessels.selfLines.heading.color)("dash",e.facade.settings.vessels.selfLines.heading.dash)("weight",e.facade.settings.vessels.selfLines.heading.weight),r(11),_("ngModel",e.facade.settings.vessels.selfLines.cog.length),r(),S(e.options.vessel.cogLine),r(3),h("color",e.facade.settings.vessels.selfLines.cog.color)("dash",e.facade.settings.vessels.selfLines.cog.dash)("weight",e.facade.settings.vessels.selfLines.cog.weight),r(4),_("ngModel",e.facade.settings.vessels.rangeCircles),r(7),_("ngModel",e.facade.settings.vessels.rangeCircleCount),h("disabled",!e.facade.settings.vessels.rangeCircles),r(),S(e.options.rangeCircles.count),r(6),_("ngModel",e.facade.settings.vessels.rangeCircleMinZoom),h("disabled",!e.facade.settings.vessels.rangeCircles),r(),S(e.options.rangeCircles.zoomLevels),r(4),_("ngModel",e.facade.settings.vessels.rangeCirclesFixed),h("disabled",!e.facade.settings.vessels.rangeCircles),r(5),k(" Distance between circles (",e.renderSymbol(e.facade.settings.units.distance),") "),r(),_("ngModel",e.formattedNumberModel.rangeCirclesDistance),h("disabled",!e.facade.settings.vessels.rangeCircles||!e.facade.settings.vessels.rangeCirclesFixed),r(2),D(de.invalid&&(de.dirty||de.touched)?427:-1),r(7),_("ngModel",e.facade.settings.vessels.trail),r(4),h("disabled",!e.facade.settings.vessels.trail),_("ngModel",e.facade.settings.vessels.trailFromServer),r(3),h("disabled",!e.facade.settings.vessels.trailFromServer||!e.facade.settings.vessels.trail),r(),_("ngModel",e.facade.settings.vessels.trailDuration),r(),k(" Length (",e.facade.settings.vessels.trailDuration," hrs) "),r(6),_("ngModel",e.facade.settings.vessels.trailResolution.lastHour),h("disabled",!e.facade.settings.vessels.trailFromServer||!e.facade.settings.vessels.trail),r(),S(e.options.trailIntervals.highResolution),r(6),_("ngModel",e.facade.settings.vessels.trailResolution.next23),h("disabled",!e.facade.settings.vessels.trailFromServer||!e.facade.settings.vessels.trail),r(),S(e.options.trailIntervals.highResolution),r(6),_("ngModel",e.facade.settings.vessels.trailResolution.beyond24),h("disabled",!e.facade.settings.vessels.trailFromServer||!e.facade.settings.vessels.trail),r(),S(e.options.trailIntervals.mediumResolution),r(8),_("ngModel",e.facade.settings.vessels.aisShowTrack),r(3),_("ngModel",e.aisStateFilter.moored),r(3),_("ngModel",e.aisStateFilter.anchored),r(7),_("ngModel",e.facade.settings.vessels.aisStaleAge),r(),S(e.options.vessel.aisTimeouts),r(6),_("ngModel",e.facade.settings.vessels.aisMaxAge),r(),S(e.options.vessel.aisTimeouts),r(6),_("ngModel",e.facade.settings.vessels.aisWindApparent),r(),S(e.options.preferredValues.wind),r(6),_("ngModel",e.facade.settings.vessels.aisWindMinZoom),r(),S(e.options.zoomLevels),r(6),_("ngModel",e.facade.settings.vessels.aisCogLine),r(),S(e.options.vessel.aisCogLine),r(12),_("ngModel",e.facade.settings.ui.showNotes),r(6),h("disabled",!e.facade.settings.ui.showNotes),_("value",e.facade.settings.resources.notes.minZoom),r(),S(e.options.zoomLevels),r(6),C("Fetch Notes radius: ("+e.options.availableUnits.distance.get(t.value)+")"),r(),h("disabled",!e.facade.settings.ui.showNotes),_("ngModel",e.facade.settings.resources.notes.getRadius),r(),S(e.options.resources.noteRadius),r(7),_("ngModel",e.facade.settings.resources.notes.rootFilter),r(2),D(mt.value?550:-1),r(3),_("ngModel",e.facade.settings.resources.notes.groupNameEdit),r(3),_("ngModel",e.facade.settings.resources.notes.groupRequiresPosition),r(4),_("ngModel",e.facade.settings.display.singleClickNoteDetails),r(13),S(e.facade.resourcePathList),r(2),D(e.app.featureFlags().radarApi?575:-1),r(19),_("ngModel",e.facade.settings.signalk.vessels),r(3),_("ngModel",e.facade.settings.signalk.atons),r(3),_("ngModel",e.facade.settings.signalk.aircraft),r(3),_("ngModel",e.facade.settings.signalk.sar),r(3),_("ngModel",e.facade.settings.signalk.meteo),r(7),_("ngModel",e.facade.settings.signalk.maxRadius),r(2),S(e.options.vessel.aisMaxRadius),r(17),_("ngModel",e.facade.settings.resources.video.enable),r(6),h("disabled",!e.facade.settings.resources.video.enable),_("ngModel",e.facade.settings.resources.video.url),r(2),D(ct.invalid?640:-1),r(3),_("ngModel",e.facade.settings.experiments)}},dependencies:[H,U,be,G,Ee,We,De,Te,Z,Ce,Se,Ne,Ae,ee,it,$,Fe,Be,Ie,Le,Pe,ke,Ve,N,we,Me,R,ve,K,Oe,ot,nt,at,Qe,Q,q,z,Re,Ue,J,Y,Ge,X,j,xe,Ke,He,tt,$e,et,ie,te],styles:["[_nghost-%COMP%] .mat-dialog-content{padding:0 4px}[_nghost-%COMP%] .mat-mdc-dialog-content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-height:none;overflow:hidden}[_nghost-%COMP%] .mat-mdc-dialog-content .mat-mdc-tab-group, [_nghost-%COMP%] .mat-mdc-dialog-content .mat-mdc-tab-body-wrapper{flex:1 1 auto;min-height:0}.settings[_ngcontent-%COMP%] .setting-group-title[_ngcontent-%COMP%]{font-weight:700;font-size:10pt;font-family:Arial,Helvetica,sans-serif;padding:10px 0}.setting-card-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.settings[_ngcontent-%COMP%] .setting-card-row-item[_ngcontent-%COMP%]{padding-right:15px;flex:1 1 auto}.settings[_ngcontent-%COMP%] .setting-field-group-title[_ngcontent-%COMP%]{font-size:10pt;font-family:Arial,Helvetica,sans-serif;opacity:.7;line-height:1.4;min-height:1.4em;padding-bottom:2px}.settings[_ngcontent-%COMP%] .setting-field-group[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:10px}.settings[_ngcontent-%COMP%] .setting-field-group[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{flex:0 1 150px;min-width:80px}@media only screen and (max-width:599px){.settings[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%]{padding:5px 5%}}@media only screen and (min-width:600px)and (max-width:959px),screen and (min-width:960px)and (max-width:1279px),screen and (min-width:1280px)and (max-width:1919px),screen and (min-width:1920px)and (max-width:5000px){.settings[_ngcontent-%COMP%] .setting-group[_ngcontent-%COMP%]{padding:5px 5%}}"]})};export{gt as SettingsDialog};
|
package/public/chunk-GECNK37G.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import{f as d}from"./chunk-6H3I7D5M.js";var b=r=>typeof Worker>"u"?Promise.reject(new Error("Error starting Worker!")):new Promise((t,e)=>{let s=new Worker(new URL("worker-5LIQ6F6U.js",import.meta.url),{type:"module"}),a=n=>{s.terminate(),n?t(n):e(new Error("Error processing content!"))};s.onmessage=n=>a(n.data),s.onerror=()=>a(null),s.postMessage({sourceType:"xml",value:r})});var y=class{version;creator;wpt;rte;trk;extensions;metadata;constructor(){this.init()}init(){this.version="1.1",this.creator="@panaaj",this.wpt=[],this.rte=[],this.trk=[],this.extensions={},this.metadata=new l}stringify(){return this.toXML()}toXML(){let t=`<?xml version="1.0" encoding="UTF-8"?>\r
|
|
2
|
-
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="${this.version}" xmlns="http://www.topografix.com/GPX/1/1" creator="${this.creator}" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.topografix.com/GPX/Private/TopoGrafix/0/1 http://www.topografix.com/GPX/Private/TopoGrafix/0/1/topografix.xsd" xmlns:topografix="http://www.topografix.com/GPX/Private/TopoGrafix/0/1">\r
|
|
3
|
-
`+this.metadataToXML()+this.waypointsToXML()+this.routesToXML()+this.tracksToXML();return t+=this.extensionsToXML(this.extensions),t+=`</gpx>\r
|
|
4
|
-
`,t}metadataToXML(){let t=` <metadata>\r
|
|
5
|
-
<name>${this.metadata.name||""}</name>\r
|
|
6
|
-
<desc>${this.metadata.desc||""}</desc>\r
|
|
7
|
-
<time>${this.metadata.time||""}</time>\r
|
|
8
|
-
`;return t+=this.metadata.keywords?` <keywords>${this.metadata.keywords||""}</keywords>\r
|
|
9
|
-
`:"",this.metadata.author&&(t+=` <author>\r
|
|
10
|
-
<name>${this.metadata.author.name||""}</name>\r
|
|
11
|
-
<email>\r
|
|
12
|
-
<id>${this.metadata.author.email.id||""}</id>\r
|
|
13
|
-
<domain>${this.metadata.author.email.domain||""}</domain>\r
|
|
14
|
-
</email>\r
|
|
15
|
-
<link href="${this.metadata.author.link.href||""}">\r
|
|
16
|
-
<text>${this.metadata.author.link.text||""}</text>\r
|
|
17
|
-
<type>${this.metadata.author.link.type||""}</type>\r
|
|
18
|
-
</link>\r
|
|
19
|
-
</author>\r
|
|
20
|
-
`),this.metadata.copyright&&(t+=` <copyright author="${this.metadata.copyright||""}">\r
|
|
21
|
-
<year>${this.metadata.copyright.year||""}</year>\r
|
|
22
|
-
<license>${this.metadata.copyright.license||""}</license>\r
|
|
23
|
-
</copyright>\r
|
|
24
|
-
`),this.metadata.link.forEach(e=>{t+=` <link href="${e.href||""}">\r
|
|
25
|
-
<text>${e.text||""}</text>\r
|
|
26
|
-
<type>${e.type||""}</type>\r
|
|
27
|
-
</link>\r
|
|
28
|
-
`}),t+=` <bounds minlat="${this.metadata.bounds.minLat}" minlon="${this.metadata.bounds.minLon}" maxlat="${this.metadata.bounds.maxLat}" maxlon="${this.metadata.bounds.maxLon}"></bounds>\r
|
|
29
|
-
`,t+=this.extensionsToXML(this.metadata.extensions,2),t+=` </metadata>\r
|
|
30
|
-
`,t}waypointsToXML(){let t="";for(let e of this.wpt)t+=this.ptToXML(e,"wpt");return t}routesToXML(){let t="";return this.rte.forEach(e=>{t+=` <rte>\r
|
|
31
|
-
`,t+=e.name?` <name>${e.name||""}</name>\r
|
|
32
|
-
`:"",t+=e.cmt?` <cmt>${e.cmt||""}</cmt>\r
|
|
33
|
-
`:"",t+=e.desc?` <desc>${e.desc||""}</desc>\r
|
|
34
|
-
`:"",t+=e.src?` <src>${e.src||""}</src>\r
|
|
35
|
-
`:"",t+=e.number?` <number>${e.number||""}</number>\r
|
|
36
|
-
`:"",t+=e.type?` <type>${e.type||""}</type>\r
|
|
37
|
-
`:"",e.link.forEach(s=>{t+=` <link href="${s.href||""}">\r
|
|
38
|
-
<text>${s.text||""}</text>\r
|
|
39
|
-
<type>${s.type||""}</type>\r
|
|
40
|
-
</link>\r
|
|
41
|
-
`}),t+=this.extensionsToXML(e.extensions,2);for(let s of e.rtept)t+=this.ptToXML(s,"rtept");t+=` </rte>\r
|
|
42
|
-
`}),t}tracksToXML(){let t="";return this.trk.forEach(e=>{t+=` <trk>\r
|
|
43
|
-
`,t+=e.name?` <name>${e.name||""}</name>\r
|
|
44
|
-
`:"",t+=e.cmt?` <cmt>${e.cmt||""}</cmt>\r
|
|
45
|
-
`:"",t+=e.desc?` <desc>${e.desc||""}</desc>\r
|
|
46
|
-
`:"",t+=e.src?` <src>${e.src||""}</src>\r
|
|
47
|
-
`:"",t+=e.number?` <number>${e.number||""}</number>\r
|
|
48
|
-
`:"",t+=e.type?` <type>${e.type||""}</type>\r
|
|
49
|
-
`:"",t+=this.extensionsToXML(e.extensions,2),e.trkseg.forEach(s=>{t+=` <trkseg>\r
|
|
50
|
-
`;for(let a of s.trkpt)t+=this.ptToXML(a,"trkpt");t+=` </trkseg>\r
|
|
51
|
-
`}),t+=` </trk>\r
|
|
52
|
-
`}),t}ptToXML(t,e){let s="",a=2;switch(e){case"trkpt":s=" ",a=4;break;case"rtept":s=" ",a=3;break}let n="";return n+=`${s} <${e} lat="${t.lat.toFixed(6)}" lon="${t.lon.toFixed(6)}">\r
|
|
53
|
-
`,n+=t.sym?`${s} <sym>${t.sym||""}</sym>\r
|
|
54
|
-
`:"",n+=t.name?`${s} <name>${t.name||""}</name>\r
|
|
55
|
-
`:"",n+=t.cmt?`${s} <cmt>${t.cmt||""}</cmt>\r
|
|
56
|
-
`:"",n+=t.desc?`${s} <desc>${t.desc||""}</desc>\r
|
|
57
|
-
`:"",n+=t.src?`${s} <src>${t.src||""}</src>\r
|
|
58
|
-
`:"",n+=t.type?`${s} <type>${t.type||""}</type>\r
|
|
59
|
-
`:"",n+=t.time?`${s} <time>${t.datetime||""}</time>\r
|
|
60
|
-
`:"",n+=t.fix?`${s} <fix>${t.fix||""}</fix>\r
|
|
61
|
-
`:"",n+=t.ele?`${s} <ele>${t.ele||""}</ele>\r
|
|
62
|
-
`:"",n+=t.magvar?`${s} <magvar>${t.magvar||""}</magvar>\r
|
|
63
|
-
`:"",n+=t.geoidHeight?`${s} <geoidheight>${t.geoidHeight||""}</geoidheight>\r
|
|
64
|
-
`:"",n+=t.sat?`${s} <sat>${t.sat||""}</sat>\r
|
|
65
|
-
`:"",n+=t.vdop?`${s} <vdop>${t.vdop||""}</vdop>\r
|
|
66
|
-
`:"",n+=t.hdop?`${s} <hdop>${t.hdop||""}</hdop>\r
|
|
67
|
-
`:"",n+=t.pdop?`${s} <pdop>${t.pdop||""}</pdop>\r
|
|
68
|
-
`:"",n+=t.ageOfGpsData?`${s} <ageofdgpsdata>${t.ageOfGpsData||""}</ageofdgpsdata>\r
|
|
69
|
-
`:"",n+=t.dgpsid?`${s} <dgpsid>${t.dgpsid||""}</dgpsid>\r
|
|
70
|
-
`:"",t.link.forEach(i=>{n+=`${s} <link href="${i.href||""}">\r
|
|
71
|
-
${s} <text>${i.text||""}</text>\r
|
|
72
|
-
${s} <type>${i.type||""}</type>\r
|
|
73
|
-
${s} </link>\r
|
|
74
|
-
`}),n+=this.extensionsToXML(t.extensions,a),n+=`${s} </${e}>\r
|
|
75
|
-
`,n}extensionsToXML(t,e=1){let s="";if(t&&Object.keys(t).length!==0){let a=" ".slice(0-e),n="";t.signalk&&Object.keys(t.signalk).forEach(i=>{n+=`${a} <${i}>${t.signalk[i]}</${i}>\r
|
|
76
|
-
`}),s+=`${a}<extensions>\r
|
|
77
|
-
${a} <signalk>\r
|
|
78
|
-
`+n+`${a} </signalk>\r
|
|
79
|
-
${a}</extensions>\r
|
|
80
|
-
`}return s}xValue(t){if(t&&Array.isArray(t))return t.length!==0?t[0]:null}parse(t){return d(this,null,function*(){if(!t||t.indexOf("<gpx")===-1)return!1;this.init();try{let e=yield b(t);if(e.gpx.metadata){let s=this.xValue(e.gpx.metadata);if(this.metadata.name=s.name?this.xValue(s.name):null,this.metadata.desc=s.desc?this.xValue(s.desc):null,this.metadata.keywords=s.keywords?s.keywords:null,s.bounds){let a=this.xValue(s.bounds);this.metadata.bounds.minLat=Number(a.$.minlat)??null,this.metadata.bounds.minLon=Number(a.$.minlon)??null,this.metadata.bounds.maxLat=Number(a.$.maxlat)??null,this.metadata.bounds.maxLon=Number(a.$.maxlon)??null}this.metadata.extensions=s.extensions?this.parseExtensions(s.extensions):{}}return e.gpx.wpt&&this.parseWaypoints(e.gpx.wpt),e.gpx.rte&&this.parseRoutes(e.gpx.rte),e.gpx.trk&&this.parseTracks(e.gpx.trk),this.extensions=e.gpx.extensions?this.parseExtensions(e.gpx.extensions):{},!0}catch(e){return!1}})}parseWaypoints(t){if(Array.isArray(t))t.forEach(e=>{let s=this.toWpt(e);this.updateBounds(s),this.wpt.push(s)});else{let e=this.toWpt(t);this.updateBounds(e),this.wpt.push(e)}}parseRoutes(t){if(Array.isArray(t))t.forEach(e=>{let s=this.toRte(e);this.updateBounds(s),this.rte.push(s)});else{let e=this.toRte(t);this.updateBounds(e),this.rte.push(e)}}parseTracks(t){if(Array.isArray(t))t.forEach(e=>{let s=this.toTrk(e);this.updateBounds(s),this.trk.push(s)});else{let e=this.toTrk(t);this.updateBounds(e),this.trk.push(e)}}parseExtensions(t){if(!t)return{};if(!Array.isArray(t))return{};let e={};return t.forEach(s=>{if(s.signalk){let a={},n=this.xValue(s.signalk);Object.keys(n).forEach(i=>{a[i]=this.xValue(n[i])}),e.signalk=a}}),e}parseLinks(t){let e=[];if(!t)return e;if(Array.isArray(t))t.forEach(s=>{let a=new u;a.href=s._href,a.text=s.text,a.type=s.type,e.push(a)});else{let s=new u;s.href=t._href,s.text=t.text,s.type=t.type,e.push(s)}return e}toRte(t){let e=new p;return e.name=t.name?this.xValue(t.name):null,e.cmt=t.cmt?this.xValue(t.cmt):null,e.desc=t.desc?this.xValue(t.desc):null,e.src=t.src?this.xValue(t.src):null,e.extensions=t.extensions?this.parseExtensions(t.extensions):{},t.rtept&&(e.rtept=this.toPtArray(t.rtept)),e}toWpt(t){let e=new c;return e.lat=Number(t.$.lat)||0,e.lon=Number(t.$.lon)||0,e.ele=t.ele?Number(this.xValue(t.ele)):null,e.sym=t.sym?this.xValue(t.sym):null,e.name=t.name?this.xValue(t.name):null,e.cmt=t.cmt?this.xValue(t.cmt):null,e.desc=t.desc?this.xValue(t.desc):null,e.src=t.src?this.xValue(t.src):null,e.type=t.type?this.xValue(t.type):null,e.extensions=t.extensions?this.parseExtensions(t.extensions):{},e}toTrk(t){let e=new h;if(e.name=t.name?this.xValue(t.name):null,e.cmt=t.cmt?this.xValue(t.cmt):null,e.desc=t.desc?this.xValue(t.desc):null,e.src=t.src?this.xValue(t.src):null,e.number=t.number?Number(this.xValue(t.number)):null,e.type=t.type?this.xValue(t.type):null,e.extensions=t.extensions?this.parseExtensions(t.extensions):{},t.trkseg)if(Array.isArray(t.trkseg))t.trkseg.forEach(s=>{let a=new o;a.extensions=s.extensions?this.parseExtensions(s.extensions):{},s.trkpt&&(a.trkpt=this.toPtArray(s.trkpt)),e.trkseg.push(a)});else{let s=new o;s.extensions=t.trkseg.extensions?this.parseExtensions(t.trkseg.extensions):{},t.trkseg.trkpt&&(s.trkpt=this.toPtArray(t.trkseg.trkpt)),e.trkseg.push(s)}return e}toPtArray(t){let e=[];if(Array.isArray(t))t.forEach(s=>{let a=this.toWpt(s);this.updateBounds(a),e.push(a)});else{let s=this.toWpt(t);this.updateBounds(s),e.push(s)}return e}setExtension(t,e,s){t.extensions||(t.extensions={});let a=e.split("."),n=t.extensions;a.forEach(i=>{n[i]||(n[i]={}),n=n[i]}),t.extensions.signalk.uuid=s}updateBounds(t){this.metadata.bounds.minLat=t.lat<this.metadata.bounds.minLat?t.lat:this.metadata.bounds.minLat,this.metadata.bounds.minLon=t.lon<this.metadata.bounds.minLon?t.lon:this.metadata.bounds.minLon,this.metadata.bounds.maxLat=t.lat>this.metadata.bounds.maxLat?t.lat:this.metadata.bounds.maxLat,this.metadata.bounds.maxLon=t.lon>this.metadata.bounds.maxLon?t.lon:this.metadata.bounds.maxLon}},c=class{lat;lon;ele;datetime;magvar;geoidHeight;name;cmt;desc;src;link=[];sym;type;fix;sat;hdop;vdop;pdop;ageOfGpsData;dgpsid;extensions={};constructor(t,e){this.lat=t||0,this.lon=e||0}},p=class{name;cmt;desc;src;link=[];number;type;extensions={};rtept=[];constructor(t){this.name=t||""}},h=class{name;cmt;desc;src;link=[];number;type;extensions={};trkseg=[];constructor(t){this.name=t||""}},o=class{trkpt=[];extensions={}};var l=class{name="";desc="";author;copyright;link=[];time=new Date().toISOString();keywords="";bounds=new m;extensions={}},u=class{href="";text="";type=""};var m=class{minLat=90;minLon=180;maxLat=-90;maxLon=-180};export{y as a,c as b,p as c,h as d,o as e};
|