@signalk/freeboard-sk 3.2.0-beta.5 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/package.json +3 -2
  2. package/public/assets/features/route-following-1.jpg +0 -0
  3. package/public/assets/features/route-following-2.jpg +0 -0
  4. package/public/assets/features/route-following-3.jpg +0 -0
  5. package/public/assets/features-corpus.json +1 -1
  6. package/public/assets/help/index.html +7 -5
  7. package/public/{chunk-ZXIUZMA7.js → chunk-3HO5JDYF.js} +1 -1
  8. package/public/{chunk-RRFDJNNT.js → chunk-3UKG3D3M.js} +1 -1
  9. package/public/{chunk-VJLDZ4NI.js → chunk-4UBQTQSK.js} +1 -1
  10. package/public/{chunk-PU7NCPYW.js → chunk-5SYZI253.js} +1 -1
  11. package/public/{chunk-DFAGTODX.js → chunk-6ZXMFU55.js} +1 -1
  12. package/public/{chunk-JEAAYERI.js → chunk-7OBOGNNY.js} +1 -1
  13. package/public/chunk-A2UDMCI5.js +1 -0
  14. package/public/{chunk-OPNUYGIO.js → chunk-BCS6VHKX.js} +1 -1
  15. package/public/{chunk-N4UL6N3G.js → chunk-BJKB23AZ.js} +1 -1
  16. package/public/{chunk-WYYDGUIZ.js → chunk-BNCDJR4Z.js} +1 -1
  17. package/public/{chunk-AA62TGOR.js → chunk-D4A5NW5G.js} +1 -1
  18. package/public/{chunk-6QJRUI6F.js → chunk-DD47QU4L.js} +1 -1
  19. package/public/chunk-EDKY4MXN.js +1 -0
  20. package/public/{chunk-WCLDE6BT.js → chunk-GBMW6IJP.js} +1 -1
  21. package/public/{chunk-VEGUHS2I.js → chunk-GFDZNVNU.js} +79 -79
  22. package/public/{chunk-DBYANQFC.js → chunk-GVRPUNRX.js} +1 -1
  23. package/public/chunk-H54CRRPU.js +1 -0
  24. package/public/chunk-HT6GODHM.js +1 -0
  25. package/public/{chunk-RZEZX533.js → chunk-L4ONBCRR.js} +1 -1
  26. package/public/{chunk-HWRLJ3DL.js → chunk-LFAWLMM4.js} +1 -1
  27. package/public/{chunk-GODGWAVZ.js → chunk-LNU63734.js} +1 -1
  28. package/public/chunk-NCEQPEJE.js +1 -0
  29. package/public/{chunk-6PWYCIYX.js → chunk-OVB2ZLN5.js} +1 -1
  30. package/public/{chunk-TUQRCX5V.js → chunk-P57WKW3G.js} +1 -1
  31. package/public/{chunk-SUT6O77L.js → chunk-QWUBBFQO.js} +1 -1
  32. package/public/{chunk-TK54SKYF.js → chunk-R7YVRRY3.js} +1 -1
  33. package/public/{chunk-Q4NBIMTT.js → chunk-RQKGK2KO.js} +1 -1
  34. package/public/{chunk-WTDLBURC.js → chunk-RRYFRHFP.js} +1 -1
  35. package/public/{chunk-6WPO4OMT.js → chunk-UBTZRPVO.js} +1 -1
  36. package/public/{chunk-7TRKAN4B.js → chunk-USYMWMPO.js} +1 -1
  37. package/public/{chunk-4JRVRHO7.js → chunk-VQDXDSU7.js} +1 -1
  38. package/public/chunk-XXGLBGHG.js +1 -0
  39. package/public/{chunk-4ZE2OKZZ.js → chunk-XZM7Q5WP.js} +1 -1
  40. package/public/{chunk-PG6RM7YJ.js → chunk-YB4RBYE2.js} +1 -1
  41. package/public/index.html +1 -1
  42. package/public/main-LYWXFV5I.js +468 -0
  43. package/public/worker-DYC3TMVW.js +3 -0
  44. package/public/chunk-6H3I7D5M.js +0 -1
  45. package/public/chunk-AMDY4THY.js +0 -1
  46. package/public/chunk-CCTZD6S5.js +0 -1
  47. package/public/chunk-SGKVAYBG.js +0 -1
  48. package/public/chunk-U67UWQ7C.js +0 -1
  49. package/public/chunk-XVRRHA2K.js +0 -1
  50. package/public/main-BW35DEQ6.js +0 -468
  51. package/public/worker-GBKY4SNO.js +0 -3
@@ -0,0 +1,3 @@
1
+ var _o=Object.create;var fn=Object.defineProperty;var Mo=Object.getOwnPropertyDescriptor;var So=Object.getOwnPropertyNames;var Po=Object.getPrototypeOf,To=Object.prototype.hasOwnProperty;var c=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}};var ko=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of So(t))!To.call(e,i)&&i!==r&&fn(e,i,{get:()=>t[i],enumerable:!(n=Mo(t,i))||n.enumerable});return e};var dn=(e,t,r)=>(r=e!=null?_o(Po(e)):{},ko(t||!e||!e.__esModule?fn(r,"default",{value:e,enumerable:!0}):r,e));var _=c(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.timeConversion=p.sexagesimalPattern=p.longitudeKeys=p.latitudeKeys=p.earthRadius=p.distanceConversion=p.areaConversion=p.altitudeKeys=p.RAD_TO_DEG=p.MINLON=p.MINLAT=p.MAXLON=p.MAXLAT=p.DEG_TO_RAD=void 0;var dc=p.sexagesimalPattern=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/,mc=p.earthRadius=6378137,pc=p.MINLAT=-90,gc=p.MAXLAT=90,hc=p.MINLON=-180,bc=p.MAXLON=180,xc=p.DEG_TO_RAD=Math.PI/180,yc=p.RAD_TO_DEG=180/Math.PI,vc=p.longitudeKeys=["lng","lon","longitude",0],_c=p.latitudeKeys=["lat","latitude",1],Mc=p.altitudeKeys=["alt","altitude","elevation","elev",2],Sc=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},Pc=p.timeConversion={m:60,h:3600,d:86400},N=p.areaConversion={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};N.sqm=N.m2;N.sqkm=N.km2;N.sqft=N.ft2;N.sqyd=N.yd2;N.sqin=N.in2});var xe=c($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});$e.default=void 0;var qo=(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)},kc=$e.default=qo});var ye=c(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.default=void 0;var No=e=>{let t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},Oc=We.default=No});var ve=c(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.default=void 0;var jo=_(),Ko=e=>jo.sexagesimalPattern.test(e.toString().trim()),Rc=Ge.default=Ko});var _e=c(ze=>{"use strict";Object.defineProperty(ze,"__esModule",{value:!0});ze.default=void 0;var Fo=_(),Vo=e=>{let t=new RegExp(Fo.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},Dc=ze.default=Vo});var Ze=c(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=void 0;var hr=_(),br=Uo(xe());function Uo(e){return e&&e.__esModule?e:{default:e}}var Ho=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:hr.longitudeKeys,latitude:hr.latitudeKeys,altitude:hr.altitudeKeys},r=(0,br.default)(e,t.longitude),n=(0,br.default)(e,t.latitude),i=(0,br.default)(e,t.altitude);return{latitude:n,longitude:r,...i?{altitude:i}:{}}},Ec=Xe.default=Ho});var yr=c(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.default=void 0;var Bo=xr(ye()),$o=xr(ve()),Wo=xr(_e()),Tn=_();function xr(e){return e&&e.__esModule?e:{default:e}}var kn=e=>{if((0,Bo.default)(e)){let t=parseFloat(e);return!(t>Tn.MAXLAT||t<Tn.MINLAT)}return(0,$o.default)(e)?kn((0,Wo.default)(e)):!1},qc=Ye.default=kn});var _r=c(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.default=void 0;var Go=vr(ye()),zo=vr(ve()),Xo=vr(_e()),An=_();function vr(e){return e&&e.__esModule?e:{default:e}}var On=e=>{if((0,Go.default)(e)){let t=parseFloat(e);return!(t>An.MAXLON||t<An.MINLON)}return(0,zo.default)(e)?On((0,Xo.default)(e)):!1},jc=Je.default=On});var Sr=c(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.default=void 0;var Zo=Mr(Ze()),wn=Mr(yr()),Rn=Mr(_r());function Mr(e){return e&&e.__esModule?e:{default:e}}var Yo=e=>{let{latitude:t,longitude:r}=(0,Zo.default)(e);if(Array.isArray(e)&&e.length>=2)return(0,Rn.default)(e[0])&&(0,wn.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,wn.default)(i)&&(0,Rn.default)(n)},Fc=Qe.default=Yo});var tt=c(et=>{"use strict";Object.defineProperty(et,"__esModule",{value:!0});et.default=void 0;var Jo=Se(ye()),Qo=Se(ve()),es=Se(_e()),Ln=Se(Sr()),ts=Se(Ze());function Se(e){return e&&e.__esModule?e:{default:e}}var Me=e=>{if((0,Jo.default)(e))return Number(e);if((0,Qo.default)(e))return(0,es.default)(e);if((0,Ln.default)(e)){let t=(0,ts.default)(e);return Array.isArray(e)?e.map((r,n)=>[0,1].includes(n)?Me(r):r):{...e,...t.latitude&&{[t.latitude]:Me(e[t.latitude])},...t.longitude&&{[t.longitude]:Me(e[t.longitude])}}}return Array.isArray(e)?e.map(t=>(0,Ln.default)(t)?Me(t):t):e},Uc=et.default=Me});var R=c(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.default=void 0;var rs=_(),ns=Dn(xe()),is=Dn(tt());function Dn(e){return e&&e.__esModule?e:{default:e}}var os=(e,t)=>{let r=(0,ns.default)(e,rs.latitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,is.default)(n)},Bc=rt.default=os});var L=c(nt=>{"use strict";Object.defineProperty(nt,"__esModule",{value:!0});nt.default=void 0;var ss=_(),as=In(xe()),us=In(tt());function In(e){return e&&e.__esModule?e:{default:e}}var ls=(e,t)=>{let r=(0,as.default)(e,ss.longitudeKeys);if(r==null)return;let n=e[r];return t===!0?n:(0,us.default)(n)},Wc=nt.default=ls});var j=c(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});it.default=void 0;var cs=_(),fs=e=>e*cs.DEG_TO_RAD,zc=it.default=fs});var G=c(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});ot.default=void 0;var ds=_(),ms=e=>e*ds.RAD_TO_DEG,Zc=ot.default=ms});var Cn=c(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});at.default=void 0;var ps=st(R()),gs=st(L()),Pr=st(j()),Tr=st(G()),En=_();function st(e){return e&&e.__esModule?e:{default:e}}var hs=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,i=(0,ps.default)(e),o=(0,gs.default)(e),s=t/n,a=(0,Pr.default)(r),u=(0,Pr.default)(i),m=(0,Pr.default)(o),g=Math.asin(Math.sin(u)*Math.cos(s)+Math.cos(u)*Math.sin(s)*Math.cos(a)),h=m+Math.atan2(Math.sin(a)*Math.sin(s)*Math.cos(u),Math.cos(s)-Math.sin(u)*Math.sin(g)),x=(0,Tr.default)(h);return(x<En.MINLON||x>En.MAXLON)&&(h=(h+3*Math.PI)%(2*Math.PI)-Math.PI,x=(0,Tr.default)(h)),{latitude:(0,Tr.default)(g),longitude:x}},Jc=at.default=hs});var qn=c(ut=>{"use strict";Object.defineProperty(ut,"__esModule",{value:!0});ut.default=void 0;var bs=_(),xs=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=bs.areaConversion[t];if(r)return e*r;throw new Error("Invalid unit used for area conversion.")},ef=ut.default=xs});var Nn=c(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.default=void 0;var ys=_(),vs=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",r=ys.distanceConversion[t];if(r)return e*r;throw new Error("Invalid unit used for distance conversion.")},rf=lt.default=vs});var jn=c(ft=>{"use strict";Object.defineProperty(ft,"__esModule",{value:!0});ft.default=void 0;var ct=_(),_s=function(e){switch(arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh"){case"kmh":return e*ct.timeConversion.h*ct.distanceConversion.km;case"mph":return e*ct.timeConversion.h*ct.distanceConversion.mi;default:return e}},of=ft.default=_s});var Kn=c(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});dt.default=void 0;var Ms=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},Ss=e=>{let[t,r]=e.toString().split("."),n=Math.abs(Number(t)),i=+("0."+(r||0))*60,o=i.toString().split("."),s=Math.floor(i),a=Ms(+("0."+(o[1]||0))*60).toString(),[u,m="0"]=a.split(".");return n+"\xB0 "+s.toString().padStart(2,"0")+"' "+u.padStart(2,"0")+"."+m.padEnd(1,"0")+'"'},af=dt.default=Ss});var kr=c(mt=>{"use strict";Object.defineProperty(mt,"__esModule",{value:!0});mt.default=void 0;var Ps=e=>e>1?1:e<-1?-1:e,lf=mt.default=Ps});var H=c(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});gt.default=void 0;var Fn=pt(R()),Vn=pt(L()),Ar=pt(j()),Ts=pt(kr()),ks=_();function pt(e){return e&&e.__esModule?e:{default:e}}var As=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,Ar.default)((0,Fn.default)(e)),i=(0,Ar.default)((0,Fn.default)(t)),o=(0,Ar.default)((0,Vn.default)(e)-(0,Vn.default)(t)),s=Math.acos((0,Ts.default)(Math.sin(i)*Math.sin(n)+Math.cos(i)*Math.cos(n)*Math.cos(o)))*ks.earthRadius;return Math.round(s/r)*r},ff=gt.default=As});var Or=c(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.default=void 0;var Un=Os(H());function Os(e){return e&&e.__esModule?e:{default:e}}var ws=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Un.default;return r=typeof r=="function"?r:Un.default,t.slice().sort((n,i)=>r(e,n)-r(e,i))},mf=ht.default=ws});var Hn=c(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});bt.default=void 0;var Rs=Ls(Or());function Ls(e){return e&&e.__esModule?e:{default:e}}var Ds=(e,t)=>(0,Rs.default)(e,t)[0],gf=bt.default=Ds});var Wn=c(xt=>{"use strict";Object.defineProperty(xt,"__esModule",{value:!0});xt.default=void 0;var wr=Rr(j()),Is=Rr(R()),Bn=Rr(L()),$n=_();function Rr(e){return e&&e.__esModule?e:{default:e}}var Es=e=>{let t=0;if(e.length>2){let r,n,i;for(let o=0;o<e.length;o++){o===e.length-2?(r=e.length-2,n=e.length-1,i=0):o===e.length-1?(r=e.length-1,n=0,i=1):(r=o,n=o+1,i=o+2);let s=(0,Bn.default)(e[r]),a=(0,Is.default)(e[n]),u=(0,Bn.default)(e[i]);t+=((0,wr.default)(u)-(0,wr.default)(s))*Math.sin((0,wr.default)(a))}t=t*$n.earthRadius*$n.earthRadius/2}return Math.abs(t)},bf=xt.default=Es});var Lr=c(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});yt.default=void 0;var Cs=Gn(R()),qs=Gn(L());function Gn(e){return e&&e.__esModule?e:{default:e}}var Ns=e=>{if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce((t,r)=>{let n=(0,Cs.default)(r),i=(0,qs.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})},yf=yt.default=Ns});var zn=c(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=void 0;var js=_t(R()),Ks=_t(L()),ie=_t(j()),vt=_t(G()),Pe=_();function _t(e){return e&&e.__esModule?e:{default:e}}var Fs=(e,t)=>{let r=(0,js.default)(e),n=(0,Ks.default)(e),i=(0,ie.default)(r),o=(0,ie.default)(n),s=t/Pe.earthRadius,a=i-s,u=i+s,m=(0,ie.default)(Pe.MAXLAT),g=(0,ie.default)(Pe.MINLAT),h=(0,ie.default)(Pe.MAXLON),x=(0,ie.default)(Pe.MINLON),k,v;if(a>g&&u<m){let O=Math.asin(Math.sin(s)/Math.cos(i));k=o-O,k<x&&(k+=Math.PI*2),v=o+O,v>h&&(v-=Math.PI*2)}else a=Math.max(a,g),u=Math.min(u,m),k=x,v=h;return[{latitude:(0,vt.default)(a),longitude:(0,vt.default)(k)},{latitude:(0,vt.default)(u),longitude:(0,vt.default)(v)}]},_f=Mt.default=Fs});var Yn=c(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=void 0;var Vs=St(R()),Us=St(L()),Xn=St(j()),Zn=St(G());function St(e){return e&&e.__esModule?e:{default:e}}var Hs=e=>{if(Array.isArray(e)===!1||e.length===0)return!1;let t=e.length,r=e.reduce((s,a)=>{let u=(0,Xn.default)((0,Vs.default)(a)),m=(0,Xn.default)((0,Us.default)(a));return{X:s.X+Math.cos(u)*Math.cos(m),Y:s.Y+Math.cos(u)*Math.sin(m),Z:s.Z+Math.sin(u)}},{X:0,Y:0,Z:0}),n=r.X/t,i=r.Y/t,o=r.Z/t;return{longitude:(0,Zn.default)(Math.atan2(i,n)),latitude:(0,Zn.default)(Math.atan2(o,Math.sqrt(n*n+i*i)))}},Sf=Pt.default=Hs});var Jn=c(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=void 0;var Bs=$s(Lr());function $s(e){return e&&e.__esModule?e:{default:e}}var Ws=e=>{let t=(0,Bs.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))}},Tf=Tt.default=Ws});var Dr=c(Ot=>{"use strict";Object.defineProperty(Ot,"__esModule",{value:!0});Ot.default=void 0;var Qn=At(R()),ei=At(L()),kt=At(j()),Gs=At(G());function At(e){return e&&e.__esModule?e:{default:e}}var zs=(e,t)=>{let r=(0,kt.default)((0,ei.default)(t))-(0,kt.default)((0,ei.default)(e)),n=Math.log(Math.tan((0,kt.default)((0,Qn.default)(t))/2+Math.PI/4)/Math.tan((0,kt.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,Gs.default)(Math.atan2(r,n))+360)%360},Af=Ot.default=zs});var ri=c(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.default=void 0;var ti=Xs(Dr());function Xs(e){return e&&e.__esModule?e:{default:e}}var Zs=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ti.default,n=typeof r=="function"?r(e,t):(0,ti.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"}},wf=wt.default=Zs});var Er=c(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.default=void 0;var Ir=ii(H()),ni=ii(kr());function ii(e){return e&&e.__esModule?e:{default:e}}var Ys=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,i=(0,Ir.default)(t,e,n),o=(0,Ir.default)(e,r,n),s=(0,Ir.default)(t,r,n),a=Math.acos((0,ni.default)((i*i+s*s-o*o)/(2*i*s))),u=Math.acos((0,ni.default)((o*o+s*s-i*i)/(2*o*s)));return i===0||o===0?0:s===0||a>Math.PI/2?i:u>Math.PI/2?o:Math.sin(a)*i},Lf=Rt.default=Ys});var ai=c(Dt=>{"use strict";Object.defineProperty(Dt,"__esModule",{value:!0});Dt.default=void 0;var oi=Lt(R()),si=Lt(L()),F=Lt(j()),Js=Lt(G());function Lt(e){return e&&e.__esModule?e:{default:e}}var Qs=(e,t)=>{let r=(0,oi.default)(t),n=(0,si.default)(t),i=(0,oi.default)(e),o=(0,si.default)(e);return((0,Js.default)(Math.atan2(Math.sin((0,F.default)(n)-(0,F.default)(o))*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)(o))))+360)%360},If=Dt.default=Qs});var ui=c(It=>{"use strict";Object.defineProperty(It,"__esModule",{value:!0});It.default=void 0;var ea=ta(H());function ta(e){return e&&e.__esModule?e:{default:e}}var ra=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ea.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},Cf=It.default=ra});var di=c(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.default=void 0;var li=qr(R()),ci=qr(L()),Cr=qr(j()),fi=_();function qr(e){return e&&e.__esModule?e:{default:e}}var na=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;r=isNaN(r)?1:r;let n=(0,li.default)(e),i=(0,ci.default)(e),o=(0,li.default)(t),s=(0,ci.default)(t),a=6356752314245e-6,u=1/298.257223563,m=(0,Cr.default)(s-i),g,h,x,k,v,O,an=Math.atan((1-u)*Math.tan((0,Cr.default)(parseFloat(n)))),un=Math.atan((1-u)*Math.tan((0,Cr.default)(parseFloat(o)))),De=Math.sin(an),Ie=Math.cos(an),Ee=Math.sin(un),J=Math.cos(un),de=m,ln,cn=100;do{let ir=Math.sin(de),or=Math.cos(de);if(O=Math.sqrt(J*ir*(J*ir)+(Ie*Ee-De*J*or)*(Ie*Ee-De*J*or)),O===0)return 0;g=De*Ee+Ie*J*or,h=Math.atan2(O,g),x=Ie*J*ir/O,k=1-x*x,v=g-2*De*Ee/k,isNaN(v)&&(v=0);let sr=u/16*k*(4+u*(4-3*k));ln=de,de=m+(1-sr)*u*x*(h+sr*O*(v+sr*g*(-1+2*v*v)))}while(Math.abs(de-ln)>1e-12&&--cn>0);if(cn===0)return NaN;let U=k*(fi.earthRadius*fi.earthRadius-a*a)/(a*a),xo=1+U/16384*(4096+U*(-768+U*(320-175*U))),nr=U/1024*(256+U*(-128+U*(74-47*U))),yo=nr*O*(v+nr/4*(g*(-1+2*v*v)-nr/6*v*(-3+4*O*O)*(-3+4*v*v))),vo=a*xo*(h-yo);return Math.round(vo/r)*r},Nf=Et.default=na});var mi=c(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=void 0;var ia=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"},Kf=Ct.default=ia});var pi=c(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.default=void 0;var oa=sa(H());function sa(e){return e&&e.__esModule?e:{default:e}}var aa=function(e,t){let n=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:oa.default)(e,t),i=Number(t.time)-Number(e.time);return n/i*1e3},Vf=qt.default=aa});var gi=c(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.default=void 0;var Nr=ua(H());function ua(e){return e&&e.__esModule?e:{default:e}}var la=(e,t,r)=>(0,Nr.default)(t,e)+(0,Nr.default)(e,r)===(0,Nr.default)(t,r),Hf=Nt.default=la});var bi=c(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.default=void 0;var jt=hi(R()),D=hi(L());function hi(e){return e&&e.__esModule?e:{default:e}}var ca=(e,t)=>{let r=!1,n=t.length;for(let i=-1,o=n-1;++i<n;o=i)((0,D.default)(t[i])<=(0,D.default)(e)&&(0,D.default)(e)<(0,D.default)(t[o])||(0,D.default)(t[o])<=(0,D.default)(e)&&(0,D.default)(e)<(0,D.default)(t[i]))&&(0,jt.default)(e)<((0,jt.default)(t[o])-(0,jt.default)(t[i]))*((0,D.default)(e)-(0,D.default)(t[i]))/((0,D.default)(t[o])-(0,D.default)(t[i]))+(0,jt.default)(t[i])&&(r=!r);return r},$f=Kt.default=ca});var xi=c(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.default=void 0;var fa=da(Er());function da(e){return e&&e.__esModule?e:{default:e}}var ma=(e,t,r,n)=>(0,fa.default)(e,t,r)<n,Gf=Ft.default=ma});var yi=c(Vt=>{"use strict";Object.defineProperty(Vt,"__esModule",{value:!0});Vt.default=void 0;var pa=ga(H());function ga(e){return e&&e.__esModule?e:{default:e}}var ha=(e,t,r)=>(0,pa.default)(e,t,.01)<r,Xf=Vt.default=ha});var vi=c(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.default=void 0;var ba=e=>{if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");return e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", ").map(n=>{let[i,o]=n.split(" ");return{longitude:parseFloat(i),latitude:parseFloat(o)}})},Yf=Ut.default=ba});var _i=c(f=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0});var xa={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(f,"computeDestinationPoint",{enumerable:!0,get:function(){return ya.default}});Object.defineProperty(f,"convertArea",{enumerable:!0,get:function(){return va.default}});Object.defineProperty(f,"convertDistance",{enumerable:!0,get:function(){return _a.default}});Object.defineProperty(f,"convertSpeed",{enumerable:!0,get:function(){return Ma.default}});Object.defineProperty(f,"decimalToSexagesimal",{enumerable:!0,get:function(){return Sa.default}});Object.defineProperty(f,"findNearest",{enumerable:!0,get:function(){return Pa.default}});Object.defineProperty(f,"getAreaOfPolygon",{enumerable:!0,get:function(){return Ta.default}});Object.defineProperty(f,"getBounds",{enumerable:!0,get:function(){return ka.default}});Object.defineProperty(f,"getBoundsOfDistance",{enumerable:!0,get:function(){return Aa.default}});Object.defineProperty(f,"getCenter",{enumerable:!0,get:function(){return Oa.default}});Object.defineProperty(f,"getCenterOfBounds",{enumerable:!0,get:function(){return wa.default}});Object.defineProperty(f,"getCompassDirection",{enumerable:!0,get:function(){return Ra.default}});Object.defineProperty(f,"getCoordinateKey",{enumerable:!0,get:function(){return La.default}});Object.defineProperty(f,"getCoordinateKeys",{enumerable:!0,get:function(){return Da.default}});Object.defineProperty(f,"getDistance",{enumerable:!0,get:function(){return Ia.default}});Object.defineProperty(f,"getDistanceFromLine",{enumerable:!0,get:function(){return Ea.default}});Object.defineProperty(f,"getGreatCircleBearing",{enumerable:!0,get:function(){return Ca.default}});Object.defineProperty(f,"getLatitude",{enumerable:!0,get:function(){return qa.default}});Object.defineProperty(f,"getLongitude",{enumerable:!0,get:function(){return Na.default}});Object.defineProperty(f,"getPathLength",{enumerable:!0,get:function(){return ja.default}});Object.defineProperty(f,"getPreciseDistance",{enumerable:!0,get:function(){return Ka.default}});Object.defineProperty(f,"getRhumbLineBearing",{enumerable:!0,get:function(){return Fa.default}});Object.defineProperty(f,"getRoughCompassDirection",{enumerable:!0,get:function(){return Va.default}});Object.defineProperty(f,"getSpeed",{enumerable:!0,get:function(){return Ua.default}});Object.defineProperty(f,"isDecimal",{enumerable:!0,get:function(){return Ha.default}});Object.defineProperty(f,"isPointInLine",{enumerable:!0,get:function(){return Ba.default}});Object.defineProperty(f,"isPointInPolygon",{enumerable:!0,get:function(){return $a.default}});Object.defineProperty(f,"isPointNearLine",{enumerable:!0,get:function(){return Wa.default}});Object.defineProperty(f,"isPointWithinRadius",{enumerable:!0,get:function(){return Ga.default}});Object.defineProperty(f,"isSexagesimal",{enumerable:!0,get:function(){return za.default}});Object.defineProperty(f,"isValidCoordinate",{enumerable:!0,get:function(){return Xa.default}});Object.defineProperty(f,"isValidLatitude",{enumerable:!0,get:function(){return Za.default}});Object.defineProperty(f,"isValidLongitude",{enumerable:!0,get:function(){return Ya.default}});Object.defineProperty(f,"orderByDistance",{enumerable:!0,get:function(){return Ja.default}});Object.defineProperty(f,"sexagesimalToDecimal",{enumerable:!0,get:function(){return Qa.default}});Object.defineProperty(f,"toDecimal",{enumerable:!0,get:function(){return eu.default}});Object.defineProperty(f,"toDeg",{enumerable:!0,get:function(){return ru.default}});Object.defineProperty(f,"toRad",{enumerable:!0,get:function(){return tu.default}});Object.defineProperty(f,"wktToPolygon",{enumerable:!0,get:function(){return nu.default}});var ya=d(Cn()),va=d(qn()),_a=d(Nn()),Ma=d(jn()),Sa=d(Kn()),Pa=d(Hn()),Ta=d(Wn()),ka=d(Lr()),Aa=d(zn()),Oa=d(Yn()),wa=d(Jn()),Ra=d(ri()),La=d(xe()),Da=d(Ze()),Ia=d(H()),Ea=d(Er()),Ca=d(ai()),qa=d(R()),Na=d(L()),ja=d(ui()),Ka=d(di()),Fa=d(Dr()),Va=d(mi()),Ua=d(pi()),Ha=d(ye()),Ba=d(gi()),$a=d(bi()),Wa=d(xi()),Ga=d(yi()),za=d(ve()),Xa=d(Sr()),Za=d(yr()),Ya=d(_r()),Ja=d(Or()),Qa=d(_e()),eu=d(tt()),tu=d(j()),ru=d(G()),nu=d(vi()),jr=_();Object.keys(jr).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(xa,e)||e in f&&f[e]===jr[e]||Object.defineProperty(f,e,{enumerable:!0,get:function(){return jr[e]}})});function d(e){return e&&e.__esModule?e:{default:e}}});var Mi=c(Ur=>{"use strict";Ur.__esModule=!0;function Fr(e,t){return e*e+t*t}function iu(e,t){return Fr(e[0]-t[0],e[1]-t[1])}function ou(e,t,r){var n=t[0],i=t[1],o=r[0]-n,s=r[1]-i;if(o!==0||s!==0){var a=((e[0]-n)*o+(e[1]-i)*s)/Fr(o,s);a>1?(n=r[0],i=r[1]):a>0&&(n+=o*a,i+=s*a)}return Fr(e[0]-n,e[1]-i)}function su(e,t){for(var r=e[0],n,i=[r],o=1,s=e.length;o<s;o++)n=e[o],iu(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Vr(e,t,r,n,i){for(var o=n,s,a=t+1;a<r;a++){var u=ou(e[a],e[t],e[r]);u>o&&(s=a,o=u)}o>n&&(s-t>1&&Vr(e,t,s,n,i),i.push(e[s]),r-s>1&&Vr(e,s,r,n,i))}function au(e,t){var r=e.length-1,n=[e[0]];return Vr(e,0,r,t,n),n.push(e[r]),n}function uu(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:su(e,n),e=au(e,n),e}Ur.SimplifyAP=uu});var Si=c($r=>{"use strict";$r.__esModule=!0;function Hr(e,t){return e*e+t*t}function lu(e,t){return Hr(e.longitude-t.longitude,e.latitude-t.latitude)}function cu(e,t,r){var n=t.longitude,i=t.latitude,o=r.longitude-n,s=r.latitude-i;if(o!==0||s!==0){var a=((e.longitude-n)*o+(e.latitude-i)*s)/Hr(o,s);a>1?(n=r.longitude,i=r.latitude):a>0&&(n+=o*a,i+=s*a)}return Hr(e.longitude-n,e.latitude-i)}function fu(e,t){for(var r=e[0],n,i=[r],o=1,s=e.length;o<s;o++)n=e[o],lu(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Br(e,t,r,n,i){for(var o=n,s,a=t+1;a<r;a++){var u=cu(e[a],e[t],e[r]);u>o&&(s=a,o=u)}o>n&&(s-t>1&&Br(e,t,s,n,i),i.push(e[s]),r-s>1&&Br(e,s,r,n,i))}function du(e,t){var r=e.length-1,n=[e[0]];return Br(e,0,r,t,n),n.push(e[r]),n}function mu(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:fu(e,n),e=du(e,n),e}$r.SimplifyLL=mu});var Pi=c(zr=>{"use strict";zr.__esModule=!0;function Wr(e,t){return e*e+t*t}function pu(e,t){return Wr(e.x-t.x,e.y-t.y)}function gu(e,t,r){var n=t.x,i=t.y,o=r.x-n,s=r.y-i;if(o!==0||s!==0){var a=((e.x-n)*o+(e.y-i)*s)/Wr(o,s);a>1?(n=r.x,i=r.y):a>0&&(n+=o*a,i+=s*a)}return Wr(e.x-n,e.y-i)}function hu(e,t){for(var r=e[0],n,i=[r],o=1,s=e.length;o<s;o++)n=e[o],pu(n,r)>t&&(i.push(n),r=n);return r!==n&&i.push(n),i}function Gr(e,t,r,n,i){for(var o=n,s,a=t+1;a<r;a++){var u=gu(e[a],e[t],e[r]);u>o&&(s=a,o=u)}o>n&&(s-t>1&&Gr(e,t,s,n,i),i.push(e[s]),r-s>1&&Gr(e,s,r,n,i))}function bu(e,t){var r=e.length-1,n=[e[0]];return Gr(e,0,r,t,n),n.push(e[r]),n}function xu(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:hu(e,n),e=bu(e,n),e}zr.Simplify=xu});var Ti=c(Te=>{"use strict";Te.__esModule=!0;var yu=Mi();Te.SimplifyAP=yu.SimplifyAP;var vu=Si();Te.SimplifyLL=vu.SimplifyLL;var _u=Pi();Te.Simplify=_u.Simplify});function w(e){return typeof e=="function"}function Ce(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 qe=Ce(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 me(e,t){if(e){let r=e.indexOf(t);0<=r&&e.splice(r,1)}}var C=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:r}=this;if(r)if(this._parentage=null,Array.isArray(r))for(let o of r)o.remove(this);else r.remove(this);let{initialTeardown:n}=this;if(w(n))try{n()}catch(o){t=o instanceof qe?o.errors:[o]}let{_finalizers:i}=this;if(i){this._finalizers=null;for(let o of i)try{mn(o)}catch(s){t=t??[],s instanceof qe?t=[...t,...s.errors]:t.push(s)}}if(t)throw new qe(t)}}add(t){var r;if(t&&t!==this)if(this.closed)mn(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)&&me(r,t)}remove(t){let{_finalizers:r}=this;r&&me(r,t),t instanceof e&&t._removeParent(this)}};C.EMPTY=(()=>{let e=new C;return e.closed=!0,e})();var ar=C.EMPTY;function Ne(e){return e instanceof C||e&&"closed"in e&&w(e.remove)&&w(e.add)&&w(e.unsubscribe)}function mn(e){w(e)?e():e.unsubscribe()}var I={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Q={setTimeout(e,t,...r){let{delegate:n}=Q;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){let{delegate:t}=Q;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function pn(e){Q.setTimeout(()=>{let{onUnhandledError:t}=I;if(t)t(e);else throw e})}function ur(){}var gn=lr("C",void 0,void 0);function hn(e){return lr("E",void 0,e)}function bn(e){return lr("N",e,void 0)}function lr(e,t,r){return{kind:e,value:t,error:r}}var B=null;function ee(e){if(I.useDeprecatedSynchronousErrorHandling){let t=!B;if(t&&(B={errorThrown:!1,error:null}),e(),t){let{errorThrown:r,error:n}=B;if(B=null,r)throw n}}else e()}function xn(e){I.useDeprecatedSynchronousErrorHandling&&B&&(B.errorThrown=!0,B.error=e)}var pe=class extends C{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Ne(t)&&t.add(this)):this.destination=wo}static create(t,r,n){return new te(t,r,n)}next(t){this.isStopped?fr(bn(t),this):this._next(t)}error(t){this.isStopped?fr(hn(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?fr(gn,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()}}},Ao=Function.prototype.bind;function cr(e,t){return Ao.call(e,t)}var dr=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:r}=this;if(r.next)try{r.next(t)}catch(n){je(n)}}error(t){let{partialObserver:r}=this;if(r.error)try{r.error(t)}catch(n){je(n)}else je(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(r){je(r)}}},te=class extends pe{constructor(t,r,n){super();let i;if(w(t)||!t)i={next:t??void 0,error:r??void 0,complete:n??void 0};else{let o;this&&I.useDeprecatedNextContext?(o=Object.create(t),o.unsubscribe=()=>this.unsubscribe(),i={next:t.next&&cr(t.next,o),error:t.error&&cr(t.error,o),complete:t.complete&&cr(t.complete,o)}):i=t}this.destination=new dr(i)}};function je(e){I.useDeprecatedSynchronousErrorHandling?xn(e):pn(e)}function Oo(e){throw e}function fr(e,t){let{onStoppedNotification:r}=I;r&&Q.setTimeout(()=>r(e,t))}var wo={closed:!0,next:ur,error:Oo,complete:ur};var yn=typeof Symbol=="function"&&Symbol.observable||"@@observable";function vn(e){return e}function _n(e){return e.length===0?vn: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=Lo(t)?t:new te(t,r,n);return ee(()=>{let{operator:o,source:s}=this;i.add(o?o.call(i,s):s?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return r=Mn(r),new r((n,i)=>{let o=new te({next:s=>{try{t(s)}catch(a){i(a),o.unsubscribe()}},error:i,complete:n});this.subscribe(o)})}_subscribe(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)}[yn](){return this}pipe(...t){return _n(t)(this)}toPromise(t){return t=Mn(t),new t((r,n)=>{let i;this.subscribe(o=>i=o,o=>n(o),()=>r(i))})}};$.create=e=>new $(e);function Mn(e){var t;return(t=e??I.Promise)!==null&&t!==void 0?t:Promise}function Ro(e){return e&&w(e.next)&&w(e.error)&&w(e.complete)}function Lo(e){return e&&e instanceof pe||Ro(e)&&Ne(e)}var Sn=Ce(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var q=class extends ${constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){let r=new Ke(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new Sn}next(t){ee(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(t)}})}error(t){ee(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;let{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){ee(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){let{hasError:r,isStopped:n,observers:i}=this;return r||n?ar:(this.currentObservers=null,i.push(t),new C(()=>{this.currentObservers=null,me(i,t)}))}_checkFinalizedStatuses(t){let{hasError:r,thrownError:n,isStopped:i}=this;r?t.error(n):i&&t.complete()}asObservable(){let t=new $;return t.source=this,t}};q.create=(e,t)=>new Ke(e,t);var Ke=class extends q{constructor(t,r){super(),this.destination=t,this.source=r}next(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.next)===null||n===void 0||n.call(r,t)}error(t){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.error)===null||n===void 0||n.call(r,t)}complete(){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||r===void 0||r.call(t)}_subscribe(t){var r,n;return(n=(r=this.source)===null||r===void 0?void 0:r.subscribe(t))!==null&&n!==void 0?n:ar}};var S=[];for(let e=0;e<256;++e)S.push((e+256).toString(16).slice(1));function Pn(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 Do=new Uint8Array(16);function mr(){return crypto.getRandomValues(Do)}function Io(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():Eo(e,t,r)}function Eo(e,t,r){e=e||{};let n=e.random??e.rng?.()??mr();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 Pn(n)}var pr=Io;var Fe=class{_connect;_close;_error;_message;ws;_filter="";_wsTimeout=2e4;_token="";_playbackMode=!1;onConnect;onClose;onError;onMessage;version=1;endpoint="";selfId="";_source=null;set source(t){this._source?this._source.label=t:this._source={label:t}}set authToken(t){this._token=t}get connectionTimeout(){return this._wsTimeout}set connectionTimeout(t){this._wsTimeout=t<3e3?3e3:t>6e4?6e4:t}get isOpen(){return!!(this.ws&&this.ws.readyState!==1&&this.ws.readyState!==3)}get filter(){return this._filter}set filter(t){t&&t.indexOf("self")!==-1?this._filter=this.selfId?this.selfId:"":this._filter=t}get playbackMode(){return this._playbackMode}constructor(){this._connect=new q,this.onConnect=this._connect.asObservable(),this._close=new q,this.onClose=this._close.asObservable(),this._error=new q,this.onError=this._error.asObservable(),this._message=new q,this.onMessage=this._message.asObservable()}close(){this.ws&&(this.ws.close(),this.ws=null)}open(t,r,n){if(t=t||this.endpoint,!t)return;let i=t.indexOf("?")===-1?"?":"&";r&&(t+=`${i}subscribe=${r}`),(this._token||n)&&(t+=`${r?"&":"?"}token=${this._token||n}`),this.close(),this.ws=new WebSocket(t),setTimeout(()=>{this.ws&&this.ws.readyState!==1&&this.ws.readyState!==3&&(console.warn(`Connection watchdog expired (${this._wsTimeout/1e3} sec): ${this.ws.readyState}... aborting connection...`),this.close())},this._wsTimeout),this.ws.onopen=o=>{this._connect.next(o)},this.ws.onclose=o=>{this._close.next(o)},this.ws.onerror=o=>{this._error.next(o)},this.ws.onmessage=o=>{this.parseOnMessage(o)}}parseOnMessage(t){let r;if(typeof t.data=="string")try{r=JSON.parse(t.data)}catch{return}this.isHello(r)?(this.selfId=r.self,this._playbackMode=typeof r.startTime<"u",this._message.next(r)):this.isResponse(r)?(typeof r.login<"u"&&typeof r.login.token<"u"&&(this._token=r.login.token),this._message.next(r)):this._filter&&this.isDelta(r)?r.context===this._filter&&this._message.next(r):this._message.next(r)}sendRequest(t){if(typeof t!="object")return"";let r=re.request();return typeof t.login>"u"&&this._token&&(r.token=this._token),Object.keys(t).forEach(i=>{r[i]=t[i]}),this.send(r),r.requestId}put(t,r,n){let i={context:t==="self"?"vessels.self":t,put:{path:r,value:n}};return this.sendRequest(i)}login(t,r){let n={login:{username:t,password:r}};return this.sendRequest(n)}send(t){this.ws&&this.ws.send(typeof t=="object"?JSON.stringify(t):t)}sendUpdate(t="self",r,n){let i=re.updates();this._token&&(i.token=this._token),i.context=t==="self"?"vessels.self":t,this._token&&(i.token=this._token);let o=[];typeof r=="string"&&o.push({path:r,value:n}),typeof r=="object"&&Array.isArray(r)&&(o=r);let s={timestamp:new Date().toISOString(),values:o};this._source&&(s.source=this._source),i.updates.push(s),this.send(i)}subscribe(t="*",r="*",n){let i=re.subscribe();if(this._token&&(i.token=this._token),i.context=t==="self"?"vessels.self":t,this._token&&(i.token=this._token),typeof r=="object"&&Array.isArray(r)&&(i.subscribe=r),typeof r=="string"){let o={path:r};n&&typeof n=="object"&&(n.period&&(o.period=n.period),n.minPeriod&&(o.minPeriod=n.minPeriod),n.format&&(n.format==="delta"||n.format==="full")&&(o.format=n.format),n.policy&&(n.policy==="instant"||n.policy==="ideal"||n.policy==="fixed")&&(o.policy=n.policy)),i.subscribe.push(o)}this.send(i)}unsubscribe(t="*",r="*"){let n=re.unsubscribe();this._token&&(n.token=this._token),n.context=t==="self"?"vessels.self":t,this._token&&(n.token=this._token),typeof r=="object"&&Array.isArray(r)&&(n.unsubscribe=r),typeof r=="string"&&n.unsubscribe.push({path:r}),this.send(n)}raiseAlarm(t="*",r,n){let i;typeof r=="string"?i=r.indexOf("notifications.")===-1?`notifications.${r}`:r:i=r,this.put(t,i,n.value)}clearAlarm(t="*",r){let n=r.indexOf("notifications.")===-1?`notifications.${r}`:r;this.put(t,n,null)}isSelf(t){return t.context===this.selfId}isDelta(t){return typeof t.context<"u"}isHello(t){return typeof t.version<"u"&&typeof t.self<"u"}isResponse(t){return typeof t.requestId<"u"}},re=class{static updates(){return{context:null,updates:[]}}static subscribe(){return{context:null,subscribe:[]}}static unsubscribe(){return{context:null,unsubscribe:[]}}static request(){return{requestId:pr()}}},Ve=class{_state;_method=[];_message="";constructor(t,r,n,i){this._message=typeof t<"u"?t:"",this._state=typeof r<"u"?r:"alarm",n&&this._method.push("visual"),i&&this._method.push("sound")}get value(){return{message:this._message,state:this._state,method:this._method}}};var ne=class{id;name;mmsi;position=[0,0];positionReceived=!1;positionTimestamp="";positionUpdatedAt=0;state;type={id:-1,name:""};properties={};lastUpdated=new Date;callsignVhf;callsignHf;orientation=0;virtual},ge=class extends ne{anchor={maxRadius:null,radius:null,position:null};autopilot={state:null,mode:null,target:null,enabled:!1,default:null,availableActions:[]};buddy=!1;closestApproach={distance:null,timeTo:null};cog;cogTrue=null;cogMagnetic=null;courseApi={arrivalCircle:0,activeRoute:{},nextPoint:{},previousPoint:{}};courseCalcs={};distanceToSelf;environment={mode:null,sun:null};heading;headingTrue=null;headingMagnetic=null;headingTrueUpdatedAt=0;headingMagneticUpdatedAt=0;magneticVariation=null;performance={beatAngle:null,gybeAngle:null};radars={};registrations={};resourceUpdates=[];sog;track=[];vectors={cog:[]};wind={direction:null,mwd:null,twd:null,tws:null,speedTrue:null,sog:null,awa:null,aws:null};design={airHeight:null,beam:null,draft:{current:null,maximum:null},length:null};destination={name:null,eta:null};flag;port},Ue=class extends ne{constructor(){super()}},He=class extends ne{sog=0;track=[];constructor(){super()}},he=class extends ne{constructor(){super()}},Be=class extends he{twd;tws;temperature;constructor(){super()}};var gr={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}},be={degree:{symbol:"\xBA",name:"Degrees"},radian:{symbol:"rad",name:"Radians"},percent:{symbol:"%",name:"Percent"},kilometer:{symbol:"km",name:"Kilometer"},"naut-mile":{symbol:"nmi",name:"Nautical Mile"},foot:{symbol:"ft",name:"Feet"},yard:{symbol:"yd",name:"Yard"},fathom:{symbol:"fm",name:"Fathom"},hour:{symbol:"hr",name:"Hour"},minute:{symbol:"min",name:"Minute"},F:{symbol:"\xBAF",name:"Fahrenheit"},C:{symbol:"\xBAC",name:"Celcius"}},W=class{static transform(t,r,n){if(!Number.isFinite(t))return null;if(r===n)return t;try{return gr[r][n](t)}catch{throw new Error("Transformation not found!")}}static setSymbol(t,r){t in be&&(be[t].symbol=r??be[t].symbol)}static getSymbol(t){return t in be?be[t].symbol:t}static degreesToRadians(t){return gr.deg.radian(t)}static radiansToDegrees(t=0){return gr.rad.degree(t)}static nauticalMilesToKm(t=0){return t*1.852}static angleToDirection(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r+t;return i>n?i-n:i<0?n+i:i}static directionToAngle(t,r){let n=Math.PI*2;if(r||(r=0),t||(t=0),!Number.isFinite(r)||!Number.isFinite(t))return null;let i=r-t,o;if(i>0)o=i>Math.PI?n-i:0-i;else if(i<0){let s=Math.abs(i);o=s>Math.PI?s-n:s}else o=i;return o}};var A=dn(_i()),E=class e{static R=6371e3;static rhumbDestination(t,r,n){let i=e.R,o=n/i,s=t[1]*Math.PI/180,a=t[0]*Math.PI/180,u=r,m=o*Math.cos(u),g=s+m,h=o,x=89*Math.PI/180;g>x&&s<x?(h=o*(x-s)/m,g=x):g<-x&&s>-x&&(h=o*(-x-s)/m,g=-x);let k=Math.log(Math.tan(Math.PI/4+g/2)/Math.tan(Math.PI/4+s/2)),v=Math.abs(k)>1e-12?(g-s)/k:Math.cos(s),O=h*Math.sin(u)/v;return[(a+O)*180/Math.PI,g*180/Math.PI]}static destCoordinate(t,r,n){let i=(0,A.computeDestinationPoint)(t,n,W.radiansToDegrees(r));return[i.longitude,i.latitude]}static distanceTo(t,r){return(0,A.getDistance)(t,r)}static routeLength(t){return(0,A.getPathLength)(t)}static routeLegs(t,r){if(t.length<2)return[];let n=[];r?n.push({bearing:(0,A.getGreatCircleBearing)(r,t[0]),distance:e.distanceTo(r,t[0])}):n.push({bearing:0,distance:0});for(let i=1;i<t.length;++i){let o={bearing:(0,A.getGreatCircleBearing)(t[i-1],t[i]),distance:e.distanceTo(t[i-1],t[i])};n.push(o)}return n}static closestForwardPoint(t,r,n){if(t.length<2||!r)return-1;let i={index:-1,distance:-1};for(let o=0;o<t.length;++o){let s=(0,A.getGreatCircleBearing)(r,t[o]),a=Kr.difference(n,s);if(a>-90&&a<90){let u=e.distanceTo(r,t[o]);(i.distance===-1||u<i.distance)&&(i.distance=u,i.index=o)}}return i.index}static centreOfPolygon(t){let r=(0,A.getCenter)(t);return[r.longitude,r.latitude]}static inDLCrossingZone(t,r=170){return Math.abs(t[0])>=r}static inBounds(t,r){return(0,A.isPointInPolygon)(t,[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]],[r[0],r[1]]])}static calcMapifiedExtent(t,r){let i=111111*Math.cos(W.degreesToRadians(t[1])),o=[0,0,0,0];return o[1]=t[1]+(0-Math.abs(r))/111111,o[3]=t[1]+Math.abs(r)/111111,o[0]=t[0]+(0-Math.abs(r))/i,o[2]=t[0]+Math.abs(r)/i,o}static normaliseCoords(t){if(!Array.isArray(t))return[0,0];if(typeof t[0]=="number"){if(t[0]>180)for(;t[0]>180;)t[0]=t[0]-360;else if(t[0]<-180)for(;t[0]<-180;)t[0]=360+t[0];return t}else if(Array.isArray(t[0]))return t.forEach(r=>this.normaliseCoords(r)),t}},Kr=class e{static difference(t,r){let n=360-r,i=t+n,o=e.normalise(i);return o<180?0-o:360-o}static add(t,r){return e.normalise(t+r)}static normalise(t){return t<0?t+360:t>=360?t-360:t}};var Ht=class{action="notification";playback=!1;result=null;self=null;timestamp=new Date().toISOString();sourceRef},z=class{action;playback=!1;result=null;timestamp;self=null;watchDogAlarm;constructor(){this.action="update"}},Bt=class extends z{constructor(){super(),this.action="resource"}},$t=class extends z{constructor(){super(),this.action="radar"}},oe=class extends z{timed;constructor(){super(),this.action="trail"}};var ro=dn(Ti());var Xr=2*Math.PI;function se(e,t){return!Number.isFinite(e)||!Number.isFinite(t)?null:((e+t)%Xr+Xr)%Xr}var Ai="auto",ki=1e4,Mu=.2572,Oi=new Set(["navigation.headingTrue","navigation.headingMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.speedOverGround","navigation.magneticVariation"]);function wi(e){let t=Date.now();if(e.headingTrue!==null&&t-e.headingTrueUpdatedAt<=ki){e.orientation=e.headingTrue;return}if(e.headingMagnetic!==null&&t-e.headingMagneticUpdatedAt<=ki){e.orientation=se(e.headingMagnetic,e.magneticVariation)??e.headingMagnetic;return}let r=e.cogTrue??se(e.cogMagnetic,e.magneticVariation)??e.cogMagnetic;typeof r=="number"&&(e.sog??0)>=Mu&&(e.orientation=r)}var Su=new Set(["navigation.headingMagnetic","navigation.courseOverGroundMagnetic"]);function Zr(e,t,r){return Su.has(e)?se(t,r)??t:t}function Ri(e,t){let r=t==="navigation.headingMagnetic"?e.headingMagnetic:t==="navigation.courseOverGroundMagnetic"?e.cogMagnetic:null;return Number.isFinite(r)?Zr(t,r,e.magneticVariation):null}var zt={api:"none",serverHasTracksApi:!1,v1SelfTrack:!1,v1AisTracks:!1},Pu="PT2H",Tu=120,ku=10,Au=1e3,Xt=12;function Ei(e){let t=e.replace(/\/v1\/api\/?$/,"");return{features:`${t}/v2/features`,providers:`${t}/v2/api/tracks/_providers`,v1SelfTrack:`${e}/self/track?timespan=1h`,v1Tracks:`${e}/tracks`}}function Jr(e){return`${e.replace(/\/v1\/api\/?$/,"")}/v2/api/tracks`}var Li=async(e,t)=>{try{return(await e(t)).ok}catch{return!1}},Di=async(e,t)=>{try{let r=await e(t);return r.ok?await r.json():void 0}catch{return}};function Ou(e){if(!e||typeof e!="object")return;let t=Object.entries(e);if(t.length!==0)return(t.find(([,r])=>r?.isDefault)??t[0])[0]}async function Ci(e,t){let r=await Di(e,t.features),n=Array.isArray(r?.apis)&&r.apis.includes("tracks");if(n){let s=Ou(await Di(e,t.providers));if(s)return{api:"v2",serverHasTracksApi:n,provider:s,v1SelfTrack:!1,v1AisTracks:!1}}let[i,o]=await Promise.all([Li(e,t.v1SelfTrack),Li(e,t.v1Tracks)]);return{api:i||o?"v1":"none",serverHasTracksApi:n,v1SelfTrack:i,v1AisTracks:o}}function Wt(e){if(typeof e!="string")return;let t=e.trim();if(/^P/i.test(t))return t.toUpperCase();let r=/^(\d+)\s*([smh])$/i.exec(t);return r?`PT${Number(r[1])}${r[2].toUpperCase()}`:void 0}var X=36e5;function qi(e,t,r){let n=o=>new Date(o).toISOString(),i=[];return e>24?(i.push({from:n(r-e*X),to:n(r-24*X),resolution:Wt(t.beyond24)}),i.push({from:n(r-24*X),to:n(r-X),resolution:Wt(t.next23)})):e>1&&i.push({from:n(r-e*X),to:n(r-X),resolution:Wt(t.next23)}),i.push({from:n(r-X),resolution:Wt(t.lastHour)}),i}function Gt(e){return Object.entries(e).filter(([,t])=>t!==void 0&&t!=="").map(([t,r])=>`${t}=${encodeURIComponent(String(r))}`).join("&")}function Ni(e,t,r){return`${e}?${Gt({context:"self",from:t.from,to:t.to,resolution:t.resolution,times:"true",provider:r})}`}var ji=e=>{let t=e?.features;return Array.isArray(t)?t:[]},Yr=e=>e.geometry?.type==="MultiLineString"&&Array.isArray(e.geometry.coordinates)?e.geometry.coordinates:void 0;function Ki(e){let t=ji(e).filter(n=>n.properties?.isSelf&&Yr(n));if(t.length===0)return;let r=t[0].properties?.providerId;return t.filter(n=>n.properties?.providerId===r).flatMap(n=>Yr(n))}function Fi(e,t){let r=new Map,n=new Map;return ji(e).forEach(i=>{let o=i.properties?.context,s=Yr(i);if(!o||i.properties?.isSelf||!s)return;let a=i.properties?.providerId;(!r.has(o)||a===t&&n.get(o)!==t)&&(r.set(o,s),n.set(o,a))}),r}function Ii(e){let t=((e+180)%360+360)%360-180;return t===-180&&e>0?180:t}function wu(e,t){if(!Array.isArray(e)||e.length!==4)return null;let[r,n,i,o]=e;if(![r,n,i,o].every(Number.isFinite)||i<r)return null;if(Array.isArray(t)&&t.length===4){let[a,u,m,g]=t,h=Math.round(((r+i)/2-(a+m)/2)/360)*360;if(r=Math.max(r,a+h),i=Math.min(i,m+h),n=Math.max(n,u),o=Math.min(o,g),r>=i||n>=o)return null}let s=a=>Math.round(a*1e6)/1e6;return n=s(Math.max(-90,n)),o=s(Math.min(90,o)),i-r>=360?[-180,n,180,o]:[s(Ii(r)),n,s(Ii(i)),o]}function Vi(e){if(e.showAll){if(!e.view||!(e.view.zoom>=ku))return null;let n=wu(e.view.extent,e.radiusBox);return n?Gt({bbox:n.join(","),duration:Pu,maxPoints:Tu,times:"true",provider:e.provider}):null}let t=e.picks.filter(n=>e.targets.has(n));if(t.length===0)return null;let r=Number.isFinite(e.pickHours)&&e.pickHours>0?e.pickHours:Xt;return Gt({contexts:t.join(","),duration:`PT${r}H`,maxPoints:Au,times:"true",provider:e.provider})}var Ui=.5;function Hi(e,t){let[r,n,i,o]=e,s=(i-r)*t,a=(o-n)*t;return[r-s,n-a,i+s,o+a]}function Bi(e,t){if(!e||Math.floor(e.zoom)!==Math.floor(t.zoom))return!0;let[r,n,i,o]=t.extent,[s,a,u,m]=e.extent;return r<s||n<a||i>u||o>m}function $i(){let e=0;return{begin:()=>++e,invalidate:()=>{e++},isCurrent:t=>t===e}}var Ru=6378137,Lu=2*Math.PI*Ru/256;var Qr=6e4,en=60*Qr,Wi=24*en;var zi=e=>{let t=e?.features;return Array.isArray(t)?t:[]},Du=(e,t)=>{if(e.length===0)return[];let r=e.some(n=>n.properties?.providerId===t)?t:e[0].properties?.providerId;return e.filter(n=>n.properties?.providerId===r)};function tn(e,t,r){let n=[],i=[],o=!0;if(Du(zi(t),r).forEach(s=>{let a=s.geometry?.type==="MultiLineString"&&Array.isArray(s.geometry.coordinates)?s.geometry.coordinates:[],u=s.properties?.coordTimes;a.forEach((m,g)=>{if(!Array.isArray(m)||m.length===0)return;n.push(m);let h=Array.isArray(u)?u[g]:void 0;Array.isArray(h)&&h.length===m.length?i.push(h):o=!1})}),n.length!==0)return o?{context:e,lines:n,times:i}:{context:e,lines:n}}function Xi(e,t){let r=new Map;zi(e).forEach(i=>{let o=i.properties?.context;o&&r.set(o,[...r.get(o)??[],i])});let n=new Map;return r.forEach((i,o)=>{let s=tn(o,{features:i},t);s?.times&&n.set(o,{lines:s.lines,times:s.times})}),n}var hd=[5*Qr,15*Qr,en,6*en,Wi,7*Wi];var Gi=e=>e?Date.parse(e):NaN;var Iu=10*6e4;function Zi(e,t){let r=[...e.lines],n=[...e.times];return t.lines.forEach((i,o)=>{let s=n[n.length-1],a=s?Gi(t.times[o][0])-Gi(s[s.length-1]):NaN;o===0&&a>=0&&a<=Iu?(r[r.length-1]=r[r.length-1].concat(i),n[n.length-1]=s.concat(t.times[o])):(r.push(i),n.push(t.times[o]))}),{lines:r,times:n}}var Eu=["environment.wind.speedTrue","environment.wind.speedOverGround","environment.wind.angleTrueGround","environment.wind.angleTrueWater","environment.wind.directionTrue","environment.wind.directionMagnetic","navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"],y={active:!1,maxMsgIntervals:18,intervalCount:0,msgCount:0,alarm:!1},l,M,Yt,Oe=[],Jt=[],rn=!1,Y,le=zt,no=Promise.resolve(zt),Re=null,io=null,oo=[],Qt=!1,nn=Xt,Yi,Cu=1e3,ce=new Set,Le=$i(),qu=5e3,b={signalk:{},aisState:[]},so=[0,0,0,0],ao=60,ke=0,T,ue={},Z=500,P=!1,uo,K={maxAge:54e4,staleAge:36e4,lastTick:new Date().valueOf(),maxTrack:20},on={selfLines:{cog:{length:10}},aisCogLine:10},fe={trailDuration:24,trailResolution:{lastHour:"5s",next23:"10s",beyond24:"1m"}},V,lo,ae="freeboard-sk";function Nu(){l={self:new ge,aisTargets:new Map,aisStatus:{updated:[],stale:[],expired:[]},paths:{},atons:new Map,aircraft:new Map,sar:new Map,meteo:new Map},l.self.positionReceived=!1,ce.clear(),Le.invalidate(),co()}function co(){T={updated:{},stale:{},expired:{}}}function Zt({action:e,msg:t}){switch(e){case"onConnect":postMessage({action:"open",playback:P,result:t.target.readyState}),Ku(),y.msgCount=0,y.intervalCount=0,y.alarm=!1,y.active=!0;break;case"onClose":fo(!1),Ji();break;case"onError":postMessage({action:"error",playback:P,result:"Connection error!"}),Ji();break;case"onMessage":y.msgCount++,Xu(t);break}}function Ji(){y.msgCount=0,y.intervalCount=0,y.active=!0,y.alarm=!0,tr(!0)}addEventListener("message",({data:e})=>{ju(e)});function ju(e){if(e.cmd)switch(e.cmd){case"open":Qi(e.options),Gu(e.options);break;case"close":fo(!0);break;case"subscribe":M.subscribe(e.options.context,e.options.path);break;case"settings":Qi(e.options);break;case"alarm":zu(e.options);break;case"vessel":if(e.options){let t;e.options.context==="self"?t=l.self:t=l.aisTargets.get(e.options.context),t&&e.options.name&&(t.name=e.options.name)}break;case"auth":e.options&&typeof e.options.token<"u"&&(Yt=e.options.token);break;case"trail":e.options&&(fe.trailDuration=e.options.trailDuration??24,e.options.trailResolution&&(fe.trailResolution.lastHour=e.options.trailResolution.lastHour??"5s",fe.trailResolution.next23=e.options.trailResolution.next23??"1m",fe.trailResolution.beyond24=e.options.trailResolution.beyond24??"5m")),Fu();break;case"view":e.options?.extent&&(Re={extent:e.options.extent,zoom:e.options.zoom},Qt&&Bi(io,Re)&&er());break;case"trackSelection":oo=Array.isArray(e.options?.ids)?e.options.ids:[],er();break}}function Qi(e={}){if(e.interval&&typeof e.interval=="number"&&(Z=e.interval,bo(),ho(),ao=1/(Z/1e3)*60),P=!!e.playback,e.config){typeof e.config.units.preferredPaths<"u"&&(ue=e.config.units.preferredPaths),e.config.vessels.aisMaxAge&&typeof e.config.vessels.aisMaxAge=="number"&&(K.maxAge=e.config.vessels.aisMaxAge),e.config.vessels.aisStaleAge&&typeof e.config.vessels.aisStaleAge=="number"&&(K.staleAge=e.config.vessels.aisStaleAge),typeof e.config.signalk.maxRadius=="number"&&(b.signalk=e.config.signalk),typeof e.config.selections.aisState<"u"&&Array.isArray(e.config.selections.aisState)&&(b.aisState=e.config.selections.aisState),on=e.config.vessels,e.config.vessels.aisShowTrack!==Qt&&(Qt=e.config.vessels.aisShowTrack,er());let t=e.config.vessels.aisTrackLength??Xt;t!==nn&&(nn=t,er())}}function fo(e=!1){bo(),Oe.forEach(t=>t.unsubscribe()),M&&e&&M.close(),M=null,postMessage({action:"close",result:e,playback:P})}function we(e){return fetch(e).then(t=>t.json())}function mo(e){return fetch(e,Yt?{headers:{Authorization:`Bearer ${Yt}`}}:void 0)}function po(e){return mo(e).then(t=>{if(!t.ok)throw new Error(`${t.status}`);return t.json()})}function Ku(){Y&&(no=Ci(mo,Ei(Y)).catch(()=>zt).then(e=>(le=e,postMessage({action:"trackSource",playback:P,result:e}),sn(),e)))}function Fu(){no.then(e=>{if(e.api==="v2")Vu(fe,e.provider);else if(e.api==="v1"&&e.v1SelfTrack)Wu(fe);else{let t=new oe;t.playback=P,t.result=null,postMessage(t)}})}function Vu(e,t){let r=Jr(Y),n=qi(e.trailDuration,e.trailResolution,Date.now()),i=new oe;i.playback=P,Promise.all(n.map(o=>po(Ni(r,o,t)))).then(o=>{i.result=go(o.map(s=>Ki(s)??null)),i.timed=Uu(o,t),postMessage(i)}).catch(()=>{i.result=null,postMessage(i)})}function Uu(e,t){let r={lines:[],times:[]};for(let n of e){let i=tn("self",n,t);if(i&&!i.times)return;i&&(r=Zi(r,{lines:i.lines,times:i.times}))}return r.lines.length?r:void 0}function er(){Le.invalidate(),clearTimeout(Yi),Yi=setTimeout(()=>{le.api==="v2"&&sn()},Cu)}function sn(){P||!l||(le.api==="v2"?Hu(le.provider):le.api==="v1"&&le.v1AisTracks&&$u())}function Hu(e){let t=Re&&{extent:Hi(Re.extent,Ui),zoom:Re.zoom};io=t;let r=Vi({view:t,showAll:Qt,picks:oo,targets:l.aisTargets,radiusBox:b.signalk.maxRadius&&l.self.positionReceived?E.calcMapifiedExtent(l.self.position,b.signalk.maxRadius):void 0,pickHours:nn,provider:e});if(!r){Le.invalidate();return}let n=Le.begin();po(`${Jr(Y)}?${r}`).then(i=>{Le.isCurrent(n)&&!P&&(Bu(l.aisTargets,Fi(i,e)),postMessage({action:"aisTracksTimed",playback:P,result:Xi(i,e)}))}).catch(()=>{})}function Bu(e,t){let r=[...ce];ce.clear(),t.forEach((n,i)=>{let o=e.get(i),s=n.filter(a=>Array.isArray(a)&&a.length>0);o?.positionReceived&&o.position&&s.length>0&&(o.track=s,ce.add(i),rr(o))}),r.filter(n=>!ce.has(n)).forEach(n=>{let i=e.get(n),o=i?.track?.[i.track.length-1];o&&(i.track=[o.slice(0-K.maxTrack)])})}function $u(){let e=b&&b.signalk&&b.signalk.maxRadius?`?radius=${b.signalk.maxRadius}`:"?radius=10000";we(Y+"/tracks"+e).then(t=>{Object.entries(t).forEach(r=>{if(l.aisTargets.has(r[0])){let n=l.aisTargets.get(r[0]);n.track=r[1].coordinates,rr(n)}})}).catch(()=>{})}function Wu(e){let t=Y+"/self/track?",r=[];e.trailDuration>24&&(r.push(we(`${t}timespan=${e.trailDuration-24}h&resolution=${e.trailResolution.beyond24}&timespanOffset=24`)),r.push(we(`${t}timespan=23h&resolution=${e.trailResolution.next23}&timespanOffset=1`))),e.trailDuration>1&&e.trailDuration<25&&r.push(we(`${t}timespan=${e.trailDuration-1}h&resolution=${e.trailResolution.next23}&timespanOffset=1`)),r.push(we(`${t}timespan=1h&resolution=${e.trailResolution.lastHour}`));let n=new oe;n.playback=P,Promise.all(r).then(i=>{n.result=go(i.map(o=>o?.type==="MultiLineString"&&Array.isArray(o.coordinates)?o.coordinates:null)),postMessage(n)}).catch(()=>{n.result=null,postMessage(n)})}function go(e){let i=e.length-1,o=[];return e.forEach((s,a)=>{if(s)if(a!==i){let u=[];for(s.forEach(m=>{u=u.concat(m)}),u=(0,ro.SimplifyAP)(u,5e-4,!0);u.length>60;){let m=u.slice(0,60);o.push(m),u=u.slice(59),u[0]=[u[0][0]+5e-9,u[0][1]+5e-9]}u.length!==0&&o.push(u)}else o=o.concat(s)}),o}function Gu(e){if(M)return;if(!e.url){postMessage({action:"error",result:"Valid options not provided!"});return}let t=e.url.split("/");if(t.pop(),t.push("api"),t[0]=t[0]==="wss:"?"https:":"http:",Y=t.join("/"),Nu(),M=new Fe,Oe.push(M.onConnect.subscribe(r=>Zt({action:"onConnect",msg:r}))),Oe.push(M.onClose.subscribe(r=>Zt({action:"onClose",msg:r}))),Oe.push(M.onError.subscribe(r=>Zt({action:"onError",msg:r}))),Oe.push(M.onMessage.subscribe(r=>Zt({action:"onMessage",msg:r}))),M.authToken=Yt,e.playback){let r=e.playbackOptions.startTime?`?startTime=${e.playbackOptions.startTime}`:null,n=e.playbackOptions.playbackRate?`playbackRate=${e.playbackOptions.playbackRate}`:null;n=n?r?"&"+n:"?"+n:null;let i=`${e.url}${r||""}${n||""}`;M.open(i,e.playbackOptions.subscribe,e.token)}else M.open(e.url,e.subscribe,e.token)}function zu(e){let t=e.type.indexOf("notifications.")===-1?`notifications.${e.type}`:e.type;e.raise?M.raiseAlarm("self",t,new Ve(e.message,e.state,!0,!0)):M.clearAlarm("self",t)}function Xu(e){M.isHello(e)?(postMessage({action:"hello",result:e,self:e.self,playback:P}),Z&&ho()):M.isDelta(e)?(rn=!0,e.updates.forEach(t=>{!("values"in t)||!t.values||(V=t.$source,lo=t.timestamp,t.values.forEach(r=>{if(uo=t.timestamp,!!e.context)switch(e.context.split(".")[0]){case"shore":case"atons":b?.signalk.atons&&el(e.context,r),Ae(e.context,l.atons,b?.signalk.atons);break;case"sar":b?.signalk.sar&&tl(e.context,r),Ae(e.context,l.sar,b?.signalk.sar);break;case"aircraft":b?.signalk.aircraft&&nl(e.context,r),Ae(e.context,l.aircraft,b?.signalk.aircraft);break;case"meteo":b?.signalk.meteo&&(rl(e.context,r),to(r)),Ae(e.context,l.meteo,b?.signalk.meteo);break;case"vessels":if(M.isSelf(e))l.self.id||(l.self.id=e.context),eo(l.self,r,!0),to(r);else{if(b?.signalk.vessels){let n=Zu(e.context);eo(n,r)}Ae(e.context,l.aisTargets,b?.signalk.vessels,b?.aisState)}break}}))}),tr()):M.isResponse(e)&&postMessage({action:"response",result:e})}function Ae(e,t,r=!0,n=[]){if(r){let i=t.get(e);i&&n.includes(i?.state)&&(T.expired[e]=!0,i=null),i&&b.signalk.maxRadius?i.positionReceived&&E.inBounds(i.position,so)?T.updated[e]=!0:(t.delete(e),T.expired[e]=!0):T.updated[e]=!0}else t.size!==0&&(t.forEach((i,o)=>{T.expired[o]=!0}),t.clear())}function tr(e=!1){if(!Z||e){let t=new z;t.watchDogAlarm=y.alarm,t.playback=P,l.aisStatus.updated=Object.keys(T.updated),l.aisStatus.stale=Object.keys(T.stale),l.aisStatus.expired=Object.keys(T.expired),t.result=l,t.timestamp=P?uo:l.self.lastUpdated.toISOString(),postMessage(t),co(),l.self.resourceUpdates=[],Qu(),ke===0&&l.self.positionReceived&&b?.signalk.maxRadius&&(so=E.calcMapifiedExtent(l.self.position,b.signalk.maxRadius),ke++),ke=ke>=ao?0:ke+1}}function ho(){Z&&typeof Z=="number"&&Jt.push(setInterval(()=>{y.active&&!y.msgCount?(y.intervalCount=y.intervalCount+1,y.intervalCount>=y.maxMsgIntervals&&(y.intervalCount=0,y.alarm=!0,tr(!0))):(y.intervalCount=0,y.msgCount=0,y.alarm=!1),rn&&(tr(!0),rn=!1)},Z)),Jt.push(setInterval(()=>sn(),6e4))}function bo(){Jt.forEach(e=>clearInterval(e)),Jt=[]}function Zu(e){if(!l.aisTargets.has(e)){let t=new ge;t.id=e,t.position=null,l.aisTargets.set(e,t)}return l.aisTargets.get(e)}function eo(e,t,r=!1){let n=t.value;if(r){if(e.lastUpdated=new Date,t.path.startsWith("resources."))e.resourceUpdates.push(t),Ju(t);else if(t.path.startsWith("radars"))Yu(t);else if(t.path.startsWith("navigation.racing"))e.properties[t.path]=n;else if(t.path==="performance.beatAngle")e.performance.beatAngle=n;else if(t.path==="performance.gybeAngle")e.performance.gybeAngle=n;else if(t.path.startsWith("navigation.course."))if(t.path.startsWith("navigation.course.calcValues.")){let a=t.path.split(".").slice(3).join(".");e.courseCalcs[a]=n}else t.path.includes("activeRoute")?e.courseApi.activeRoute=n:t.path.includes("nextPoint")?e.courseApi.nextPoint=n:t.path.includes("previousPoint")?e.courseApi.previousPoint=n:t.path.includes("arrivalCircle")&&(e.courseApi.arrivalCircle=n);else if(t.path.startsWith("radars.")){let a=t.path.split("."),u=a.slice(2).join(".");e.radars[a[1]]||(e.radars[a[1]]={}),e.radars[a[1]][u]=n}let s=t.path.indexOf("course")!==-1?t.path.split(".").slice(0,2).join("."):t.path;Eu.indexOf(s)!==-1&&(l.paths[s]=null)}else t.path==="navigation.distanceToSelf"&&(e.distanceToSelf=n),t.path==="navigation.closestApproach"&&(e.closestApproach=n);if(t.path==="")typeof n.name<"u"&&(e.name=n.name),typeof n.mmsi<"u"&&(e.mmsi=n.mmsi,e.lastUpdated=new Date),typeof n.registrations<"u"&&(e.registrations=n.registrations),typeof n.buddy<"u"&&(e.buddy=n.buddy),typeof n.communication<"u"&&(e.callsignVhf=n.communication.callsignVhf??"",e.callsignHf=n.communication.callsignHf??"");else if(t.path==="communication.callsignVhf")e.callsignVhf=n;else if(t.path==="communication.callsignHf")e.callsignHf=n;else if(t.path==="design.aisShipType")e.type=n;else if(t.path==="navigation.position"&&n){if(typeof n.latitude>"u"||typeof n.longitude>"u")return;e.position=E.normaliseCoords([n.longitude,n.latitude]),e.positionReceived=!0,e.positionTimestamp=lo??"",e.positionUpdatedAt=Date.now(),e.lastUpdated=new Date,r||rr(e)}else t.path==="navigation.state"?e.state=n:t.path==="navigation.speedOverGround"?e.sog=n:t.path==="environment.mode"?e.environment.mode=n:t.path==="environment.sun"?e.environment.sun=n:t.path==="environment.wind.angleApparent"?e.wind.awa=n:t.path==="environment.wind.speedApparent"?e.wind.aws=n:t.path==="environment.wind.speedTrue"?e.wind.speedTrue=n:t.path==="environment.wind.speedOverGround"?e.wind.sog=n:t.path==="environment.wind.directionTrue"?e.wind.twd=n:t.path==="environment.wind.directionMagnetic"?e.wind.mwd=n:t.path==="navigation.anchor.position"?e.anchor.position=n:t.path==="navigation.anchor.maxRadius"?e.anchor.maxRadius=n:t.path==="navigation.anchor.currentRadius"?e.anchor.radius=n:t.path==="steering.autopilot.state"&&V===ae?e.autopilot.state=n:t.path==="steering.autopilot.mode"&&V===ae?e.autopilot.mode=n:t.path==="steering.autopilot.target"&&V===ae?e.autopilot.target=n:t.path==="steering.autopilot.engaged"&&V===ae?e.autopilot.enabled=n:t.path==="steering.autopilot.defaultPilot"?(e.autopilot.default=n,ae=n):t.path==="steering.autopilot.availableActions"&&V===ae?e.autopilot.availableActions=n??[]:t.path==="navigation.courseOverGroundTrue"?e.cogTrue=n:t.path==="navigation.courseOverGroundMagnetic"?e.cogMagnetic=n:t.path==="navigation.headingTrue"?(e.headingTrue=n,e.headingTrueUpdatedAt=Date.now()):t.path==="navigation.headingMagnetic"?(e.headingMagnetic=n,e.headingMagneticUpdatedAt=Date.now()):t.path==="navigation.magneticVariation"&&(e.magneticVariation=n);let i=ue.heading;typeof i>"u"||i===Ai?Oi.has(t.path)&&wi(e):t.path===i?e.orientation=Zr(t.path,n,e.magneticVariation):t.path==="navigation.magneticVariation"&&(e.orientation=Ri(e,i)??e.orientation),typeof ue.tws<"u"&&t.path===ue.tws&&(e.wind.tws=n),typeof ue.twd<"u"&&t.path===ue.twd&&(e.wind.direction=t.path==="environment.wind.angleTrueGround"||t.path==="environment.wind.angleTrueWater"?W.angleToDirection(n,e.orientation??0):n);let o=e.cogTrue??se(e.cogMagnetic,e.magneticVariation)??e.cogMagnetic??void 0;if(typeof o<"u"&&e.position){let s=r?on.selfLines.cog.length:on.aisCogLine,a=(e.sog??0)*(s*60);e.vectors.cog=[e.position,E.rhumbDestination(e.position,o,a)]}}function Yu(e){let t=new $t;t.playback=P,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function Ju(e){let t=new Bt;t.playback=P,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}function to(e){if(e.path.includes("notifications.")){let t=new Ht;t.playback=P,t.result={path:e.path,value:e.value,sourceRef:V},postMessage(t)}}function Qu(){let e=new Date().valueOf();l.aisTargets.forEach((t,r)=>{t.lastUpdated.valueOf()<e-K.maxAge?(T.expired[r]=!0,l.aisTargets.delete(r)):t.lastUpdated.valueOf()<e-K.staleAge&&(T.stale[r]=!0)}),l.aircraft.forEach((t,r)=>{t.lastUpdated.valueOf()<e-K.maxAge?(T.expired[r]=!0,l.aircraft.delete(r)):t.lastUpdated.valueOf()<e-K.staleAge&&(T.stale[r]=!0)}),l.sar.forEach((t,r)=>{t.lastUpdated.valueOf()<e-K.maxAge?(T.expired[r]=!0,l.sar.delete(r)):t.lastUpdated.valueOf()<e-K.staleAge&&(T.stale[r]=!0)})}function el(e,t){let r=!1;if(e.indexOf("shore.basestations")!==-1&&(r=!0),!l.atons.has(e)){let i=new he;i.id=e,i.position=null,i.type.id=null,r&&(i.type.id=-2,i.type.name="Basestation"),l.atons.set(e,i)}let n=l.atons.get(e);return t.path===""?(typeof t.value.name<"u"&&(n.name=t.value.name),typeof t.value.mmsi<"u"&&(n.mmsi=t.value.mmsi),typeof t.value.atonType<"u"&&(n.type=t.value.atonType)):t.path==="atonType"?n.type=t.value:t.path==="virtual"?n.virtual=t.value:t.path==="navigation.position"?(n.position=[t.value.longitude,t.value.latitude],n.positionReceived=!0):n.properties[t.path]=t.value,e}function tl(e,t){if(!l.sar.has(e)){let n=new Ue;n.id=e,n.position=null,n.type.id=-1,n.type.name="SaR Beacon",l.sar.set(e,n)}let r=l.sar.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value&&(r.position=E.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function rl(e,t){if(!l.meteo.has(e)){let n=new Be;n.id=e,n.position=null,n.type.id=-1,n.type.name="Weather Station",l.meteo.set(e,n)}let r=l.meteo.get(e);if(t.path===""){if(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"){let n=e.split(":").slice(-2);r.mmsi=n.length===2?`${n[0]}:${n[1]}`:t.value.mmsi}typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")}else t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="environment.outside.temperature"?r.temperature=t.value:t.path==="environment.wind.directionTrue"?r.twd=t.value:t.path==="environment.wind.averageSpeed"?r.tws=t.value:t.path==="navigation.position"&&t.value&&(r.position=E.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0)}function nl(e,t){if(!l.aircraft.has(e)){let n=new He;n.id=e,n.position=null,l.aircraft.set(e,n)}let r=l.aircraft.get(e);t.path===""?(typeof t.value.name<"u"&&(r.name=t.value.name),typeof t.value.mmsi<"u"&&(r.mmsi=t.value.mmsi),typeof t.value.communication<"u"&&(r.callsignVhf=t.value.communication.callsignVhf??"",r.callsignHf=t.value.communication.callsignHf??"")):t.path==="communication.callsignVhf"?r.callsignVhf=t.value:t.path==="communication.callsignHf"?r.callsignHf=t.value:t.path==="navigation.position"&&t.value?(r.position=E.normaliseCoords([t.value.longitude,t.value.latitude]),r.positionReceived=!0,rr(r)):t.path==="navigation.courseOverGroundTrue"?r.orientation=t.value:t.path==="navigation.speedOverGround"&&(r.sog=t.value)}function rr(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-(ce.has(e.id)?qu:K.maxTrack))}export{we as apiGet,Bu as applyServerAisTracks,Zt as handleStreamEvent,Nu as initVessels,eo as processVessel,Uu as timedTrail,mo as trackFetch};
@@ -1 +0,0 @@
1
- var o=Object.create;var g=Object.defineProperty,p=Object.defineProperties,q=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertyNames,j=Object.getOwnPropertySymbols,t=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var k=(b,a,c)=>a in b?g(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c,w=(b,a)=>{for(var c in a||={})l.call(a,c)&&k(b,c,a[c]);if(j)for(var c of j(a))u.call(a,c)&&k(b,c,a[c]);return b},x=(b,a)=>p(b,r(a));var y=(b,a)=>()=>{try{return a||b((a={exports:{}}).exports,a),a.exports}catch(c){throw a=0,c}},z=(b,a)=>{for(var c in a)g(b,c,{get:a[c],enumerable:!0})},v=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of s(a))!l.call(b,d)&&d!==c&&g(b,d,{get:()=>a[d],enumerable:!(f=q(a,d))||f.enumerable});return b};var A=(b,a,c)=>(c=b!=null?o(t(b)):{},v(a||!b||!b.__esModule?g(c,"default",{value:b,enumerable:!0}):c,b));var B=(b,a,c)=>new Promise((f,d)=>{var m=e=>{try{h(c.next(e))}catch(i){d(i)}},n=e=>{try{h(c.throw(e))}catch(i){d(i)}},h=e=>e.done?f(e.value):Promise.resolve(e.value).then(m,n);h((c=c.apply(b,a)).next())});export{w as a,x as b,y as c,z as d,A as e,B as f};
@@ -1 +0,0 @@
1
- import{m as a,n as b,o as c,p as d,q as e,r as f}from"./chunk-VJLDZ4NI.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{d as AboutDialog,b as AlertDialog,c as ConfirmDialog,e as LoginDialog,f as MessageBarComponent,a as MsgBox};
@@ -1 +0,0 @@
1
- import{j as a}from"./chunk-PU7NCPYW.js";import"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{a as PlaybackDialog};
@@ -1 +0,0 @@
1
- import{C as $e,E as et,F as tt,G as it,M as nt,Ma as dt,Na as gt,Sa as L,a as Te,b as De,ca as at,e as I,g as Ee,h as We,ma as ot,na as $,oa as ee,t as Je,u as Qe,wa as rt,xa as st,ya as lt}from"./chunk-VEGUHS2I.js";import{a as Xe,b as Ye,c as Q}from"./chunk-WTDLBURC.js";import{b as Oe,e as Ie,j as Be,k as Ae,l as Fe}from"./chunk-VJLDZ4NI.js";import{a as X,b as Y,c as qe,d as J}from"./chunk-PU7NCPYW.js";import{a as je}from"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import{b as K,c as Ne,d as Re,f as Ue,i as z,j as Ge,n as q,o as j}from"./chunk-WCLDE6BT.js";import{a as He,h as Ze,j as Ke,k as ze}from"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import{$ as fe,Da as O,Ea as b,Ed as Se,Fa as T,Ha as D,Ia as y,Id as Ce,Ja as S,Ka as h,Kd as we,La as n,Lb as A,Ma as i,Md as Me,Na as E,Nd as N,P as W,Pb as ye,Qb as F,R as m,S as c,T as x,U as pe,Ua as V,Vd as ve,Wa as p,Xd as be,Y as _e,Ya as w,_ as B,_d as R,ae as U,da as ue,fe as G,gb as M,ie as H,ja as o,jb as he,je as Ve,lb as l,mb as C,me as ke,nb as k,ne as Pe,oe as Le,pb as _,pe as xe,qb as f,qe as Z,ra as P,rb as u}from"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";var Ct=(s,d)=>d[0];function wt(s,d){if(s&1&&(n(0,"mat-option",8),x(),n(1,"svg",6),E(2,"line",7),i()()),s&2){let a=d.$implicit;h("value",a),o(2),O("stroke-width",a)}}function Mt(s,d){if(s&1&&(n(0,"mat-option",8),x(),n(1,"svg",6),E(2,"line",9),i()()),s&2){let a=d.$implicit;h("value",a[0]),o(2),O("stroke-dasharray",a[1])}}var te=class s{color=F("#ff0000");dash=F("none");weight=F(1);_color=A(()=>this.color());_dash=A(()=>this.dash());_weight=A(()=>this.weight());selectionChange=ye();app=W(L);line={dashArrays:this.app.lineDashMap,weights:[1,2,3,4,5]};constructor(){}ngOnInit(){}onSelectChange(){let d=this.app.formatLineDashArray(this._dash());this.selectionChange.emit({lineStyle:{fill:{color:this._color()},stroke:{color:this._color(),width:this._weight(),lineDash:d}},config:{color:this._color(),weight:this._weight(),dash:this._dash()}})}static \u0275fac=function(a){return new(a||s)};static \u0275cmp=P({type:s,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&&(n(0,"div",0)(1,"mat-form-field",1)(2,"mat-label"),l(3,"Color"),i(),n(4,"input",2),u("ngModelChange",function(r){return f(e._color,r)||(e._color=r),r}),p("change",function(){return e.onSelectChange()}),i()(),n(5,"mat-form-field",3)(6,"mat-label"),l(7,"Weight"),i(),n(8,"mat-select",4),u("ngModelChange",function(r){return f(e._weight,r)||(e._weight=r),r}),p("selectionChange",function(){return e.onSelectChange()}),n(9,"mat-select-trigger")(10,"div",5),x(),n(11,"svg",6),E(12,"line",7),i()()(),y(13,wt,3,2,"mat-option",8,D),i()(),pe(),n(15,"mat-form-field",3)(16,"mat-label"),l(17,"Style"),i(),n(18,"mat-select",4),u("ngModelChange",function(r){return f(e._dash,r)||(e._dash=r),r}),p("selectionChange",function(){return e.onSelectChange()}),n(19,"mat-select-trigger")(20,"div",5),x(),n(21,"svg",6),E(22,"line",9),i()()(),y(23,Mt,3,2,"mat-option",8,Ct),i()()()),a&2&&(o(4),_("ngModel",e._color),o(4),_("ngModel",e._weight),o(4),O("stroke-width",e._weight()),o(),S(e.line.weights),o(5),_("ngModel",e._dash),o(4),O("stroke-dasharray",e.line.dashArrays.get(e._dash())),o(),S(e.line.dashArrays))},dependencies:[Z,U,G,H,N,R,Q,j,q,z,K,J,Y,qe,X],encapsulation:2})};var ie="auto";var bt=(s,d)=>d[0];function Tt(s,d){if(s&1){let a=V();n(0,"div",4)(1,"mat-radio-button",5,0),p("change",function(){m(a);let g=M(2),r=w().$implicit,t=w();return r[1].current=g.value,c(t.save(!0))}),l(3),i()()}if(s&2){let a=d.$implicit,e=w().$implicit,g=w();o(),h("name",e[0])("value",a)("checked",a===e[1].current),o(2),k(" ",g.pathLabel(a)," ")}}function Dt(s,d){if(s&1&&(n(0,"div",2)(1,"div",3)(2,"div"),l(3),i()(),n(4,"div"),y(5,Tt,4,4,"div",4,D),i()()),s&2){let a=d.$implicit;o(3),C(a[1].name),o(2),S(a[1].available)}}var ne=class s{title="";chosen=new _e;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:[ie,"navigation.courseOverGroundTrue","navigation.courseOverGroundMagnetic","navigation.headingTrue","navigation.headingMagnetic"],available:[],current:""}};pathChoicesArray=Object.entries(this.pathChoices);availPaths;app=W(L);constructor(){}pathLabel(d){return d===ie?"Automatic":d.split(".").slice(-1)[0]}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=>{(g===ie||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||s)};static \u0275cmp=P({type:s,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&&(n(0,"fieldset")(1,"legend",1),l(2),i(),n(3,"div"),y(4,Dt,7,1,"div",2,bt),i()()),a&2&&(o(2),C(e.title),o(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=(s,d)=>d[0],Et=(s,d)=>d.id;function Wt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Vt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function kt(s,d){if(s&1&&(n(0,"mat-option",132),l(1),i()),s&2){let a=d.$implicit;h("value",a.url)("matTooltip",a.description),o(),k(" ",a.name," ")}}function Pt(s,d){if(s&1){let a=V();n(0,"div",46)(1,"div",38)(2,"mat-form-field",39)(3,"mat-label"),l(4,"Select Instruments App"),i(),n(5,"mat-select",64),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.display.plugins.instruments,g)||(r.facade.settings.display.plugins.instruments=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.onInstrumentApp())}),y(6,kt,2,3,"mat-option",132,D),i()()(),n(8,"div",38)(9,"mat-form-field",52)(10,"mat-label"),l(11,"Parameters"),i(),n(12,"input",133,21),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.display.plugins.parameters,g)||(r.facade.settings.display.plugins.parameters=g),c(g)}),p("change",function(){m(a);let g=w();return c(g.persistModel("pluginParameters"))}),i()()(),n(14,"div",38)(15,"mat-checkbox",134),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.display.plugins.startOnOpen,g)||(r.facade.settings.display.plugins.startOnOpen=g),c(g)}),p("change",function(){m(a);let g=w();return c(g.persistModel("pluginStartOnOpen"))}),l(16," Halt App on hide "),i()(),n(17,"div",38)(18,"button",135),p("click",function(){m(a);let g=w();return c(g.toggleFavourites())}),n(19,"mat-icon"),l(20,"star"),i(),l(21," FAVOURITES "),i()()()}if(s&2){let a=w();o(5),_("ngModel",a.facade.settings.display.plugins.instruments),o(),S(a.facade.applicationList),o(6),h("disabled",a.facade.settings.display.plugins.instruments===null),_("ngModel",a.facade.settings.display.plugins.parameters),o(3),_("ngModel",a.facade.settings.display.plugins.startOnOpen)}}function Lt(s,d){if(s&1&&(n(0,"mat-list-option",137),l(1),i()),s&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),o(),k(" ",a.name," ")}}function xt(s,d){if(s&1){let a=V();n(0,"div",37)(1,"div",38)(2,"div",114),E(3,"br"),l(4,"Select Favourite Apps: "),i(),E(5,"mat-divider"),n(6,"mat-selection-list",136,22),p("selectionChange",function(g){m(a);let r=M(7),t=w();return c(t.onFavSelected(g,r))}),y(8,Lt,2,4,"mat-list-option",137,D),i()()()}if(s&2){let a=w();o(8),S(a.facade.favouritesList)}}function Ot(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function It(s,d){s&1&&(n(0,"mat-error"),l(1,"Please enter a number >= 0"),i())}function Bt(s,d){s&1&&(n(0,"mat-error"),l(1,"Please enter a number >= 1"),i())}function At(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Ft(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Nt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Rt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Ut(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Gt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Ht(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Zt(s,d){if(s&1){let a=V();n(0,"div",38)(1,"mat-form-field",39)(2,"mat-label"),l(3,"Position display format"),i(),n(4,"mat-select",138),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.units.positionFormat,g)||(r.facade.settings.units.positionFormat=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.persistModel())}),y(5,Ht,2,2,"mat-option",41,D),i()()()}if(s&2){let a=w();o(4),_("ngModel",a.facade.settings.units.positionFormat),o(),S(a.options.preferredValues.coords)}}function Kt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function zt(s,d){if(s&1){let a=V();n(0,"div",38)(1,"mat-form-field",39)(2,"mat-label"),l(3,"Prefer True / Magnetic values"),i(),n(4,"mat-select",139),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.units.headingAttribute,g)||(r.facade.settings.units.headingAttribute=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.persistModel("headingAttribute"))}),y(5,Kt,2,2,"mat-option",41,D),i()()()}if(s&2){let a=w();o(4),_("ngModel",a.facade.settings.units.headingAttribute),o(),S(a.options.preferredValues.heading)}}function qt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function jt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Xt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Yt(s,d){if(s&1){let a=V();n(0,"mat-form-field",39)(1,"mat-label"),l(2,"Resume Following After"),i(),n(3,"mat-select",140),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.map.refollowDelay,g)||(r.facade.settings.map.refollowDelay=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.persistModel())}),y(4,Xt,2,2,"mat-option",41,v),i()()}if(s&2){let a=w();o(3),_("ngModel",a.facade.settings.map.refollowDelay),o(),S(a.options.map.refollowDelay)}}function Jt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Qt(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function $t(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function ei(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function ti(s,d){s&1&&(n(0,"mat-error"),l(1," Please enter a positive number "),i())}function ii(s,d){s&1&&(n(0,"mat-error"),l(1," Please enter a positive number "),i())}function ni(s,d){s&1&&(n(0,"mat-error"),l(1," Please enter a positive number "),i())}function ai(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function oi(s,d){s&1&&(n(0,"mat-error"),l(1," Please enter a number > 0 "),i())}function ri(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function si(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function li(s,d){if(s&1&&(n(0,"mat-radio-button",41),E(1,"img",141),l(2),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),he(`transform: scale(${a[0]})`),o(),k(" (",a[1],") ")}}function di(s,d){s&1&&(n(0,"mat-error"),l(1," Please enter a value between -90 and 90 (max 9 decimals) "),i())}function gi(s,d){s&1&&(n(0,"mat-error"),l(1," Please enter a value between -180 and 180 (max 9 decimals) "),i())}function mi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function ci(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function pi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function _i(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function fi(s,d){s&1&&(n(0,"mat-error"),l(1," Please enter a number >= 1. "),i())}function ui(s,d){s&1&&(n(0,"mat-hint"),l(1,"Server requires a Track API (v2) provider"),i())}function hi(s,d){if(s&1&&(n(0,"mat-hint"),l(1),i()),s&2){let a=w();o(),k("Using: ",a.app.serverTrailWanted()?"Server":"This device")}}function yi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Si(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Ci(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function wi(s,d){if(s&1){let a=V();n(0,"div",37)(1,"div",142)(2,"mat-slider",103)(3,"input",104),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.vessels.aisTrackLength,g)||(r.facade.settings.vessels.aisTrackLength=g),c(g)}),p("valueChange",function(){m(a);let g=w();return c(g.deferPersist())}),i()(),l(4),i()()}if(s&2){let a=w();o(2),h("disabled",!a.app.featureFlags().tracksApi),o(),_("ngModel",a.facade.settings.vessels.aisTrackLength),o(),k(" Picked vessel track length (",a.facade.settings.vessels.aisTrackLength," hrs) ")}}function Mi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function vi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function bi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Ti(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function Di(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Ei(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function Wi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a),o(),C(a)}}function Vi(s,d){if(s&1){let a=V();n(0,"button",143),p("click",function(){m(a),w();let g=M(561);return c(g.value="")}),n(1,"mat-icon"),l(2,"close"),i()()}}function ki(s,d){if(s&1&&(n(0,"mat-list-option",116),l(1),i()),s&2){let a=d.$implicit,e=w();h("selected",e.facade.settings.resources.paths.includes(a))("value",a),o(),k(" ",a," ")}}function Pi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a.id),o(),C(a.name)}}function Li(s,d){if(s&1){let a=V();n(0,"mat-tab",117)(1,"div",32)(2,"div",33)(3,"div",129)(4,"div",35),l(5,"RADAR SETTINGS"),i(),n(6,"mat-card",36)(7,"div",46)(8,"div",38)(9,"mat-form-field",144)(10,"mat-label"),l(11,"Radar Devices"),i(),n(12,"mat-select",145,23),u("ngModelChange",function(g){m(a);let r=w();return f(r.facade.settings.radars.deviceId,g)||(r.facade.settings.radars.deviceId=g),c(g)}),p("selectionChange",function(){m(a);let g=w();return c(g.doRadar())}),y(14,Pi,2,2,"mat-option",41,Et),i()()(),n(16,"div",38)(17,"button",146),p("click",function(){m(a);let g=w();return c(g.refreshRadars())}),n(18,"mat-icon"),l(19," refresh"),i(),l(20," REFRESH "),i()()()()()()()()}if(s&2){let a=w();o(12),h("disabled",!a.radarList().length||a.app.uiCtrl().radarLayer),_("ngModel",a.facade.settings.radars.deviceId),o(2),S(a.radarList())}}function xi(s,d){if(s&1&&(n(0,"mat-option",41),l(1),i()),s&2){let a=d.$implicit;h("value",a[0]),o(),C(a[1])}}function Oi(s,d){s&1&&(n(0,"mat-error"),l(1," Value required. "),i())}var pt=class s{show={favourites:B(!1)};options;centerOffsetLimit=Ee;aisStateFilter={moored:!1,anchored:!1};formattedNumberModel={rangeCirclesDistance:1e3};unitsChangedSignal=B(0);radarList=B([]);saveOnClose=!1;facade=W(gt);myElement=W(ue);dialogRef=W(Se);wakeLock=W(Te);s57=W(Je);app=W(L);radarApi=W($e);constructor(){this.options=new dt,fe(()=>{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(I.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 r=Object.assign({},g);return r[d]=a.lineStyle,r}),this.persistModel())}toggleFavourites(){this.show.favourites.update(d=>!d)}parseCenterOffset(d){d.reset(typeof d.model=="number"?We(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(I.nauticalMilesToKm(this.formattedNumberModel.rangeCirclesDistance)*1e3),this.persistModel())}fallbackToDefault(){let d=Qe();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}get serverTrailAvailable(){return De(this.app.trackSource())}persistModel(d){this.facade.applySettings(),this.facade.emitChangeEvent(d)}get speedUnitSymbol(){return I.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 I.getSymbol(d)}static \u0275fac=function(a){return new(a||s)};static \u0275cmp=P({type:s,selectors:[["settings-dialog"]],decls:660,vars:140,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"],[1,"setting-card-row-item","setting-card-row-stack"],["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"],[2,"width","200px"],["matTooltip","Where the vessel track comes from. Auto uses the server when it can supply one.",3,"ngModelChange","selectionChange","disabled","ngModel"],["value","auto"],["value","server",3,"disabled"],["value","local"],["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"],["matTooltip","Resume following the vessel once the chart has been left idle for this long.",3,"ngModelChange","selectionChange","ngModel"],["src","./assets/img/vessels/self.png"],["matTooltip","How far back the track of a vessel picked with its TRACK button reaches. Needs a Track API (v2) provider.",1,"setting-card-row-item"],["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();n(0,"mat-toolbar",24)(1,"span",25)(2,"mat-icon"),l(3,"settings"),i()(),n(4,"span",26),l(5,"Settings"),i(),n(6,"span",27)(7,"button",28),p("click",function(){return e.handleClose()}),n(8,"mat-icon"),l(9,"close"),i()()()(),n(10,"div",29)(11,"mat-tab-group",30)(12,"mat-tab",31)(13,"div",32)(14,"div",33)(15,"div",34)(16,"div",35),l(17,"DISPLAY"),i(),n(18,"mat-card",36)(19,"mat-card-content")(20,"div",37)(21,"div",38)(22,"mat-form-field",39)(23,"mat-label"),l(24,"Dark Mode setting"),i(),n(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,Wt,2,2,"mat-option",41,v),i()()(),n(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()}),l(30," Auto-set Night Mode "),i()(),n(31,"div",38)(32,"mat-form-field",39)(33,"mat-label"),l(34,"Action Button"),i(),n(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,Vt,2,2,"mat-option",41,v),i()()(),n(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)}),l(40," Allow Device to Sleep "),i()(),n(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()}),l(43," Prefer Info-Panel "),i()()()()(),E(44,"br"),n(45,"mat-card",36)(46,"mat-card-content"),b(47,Pt,22,4,"div",46),b(48,xt,10,0,"div",37),i()(),E(49,"br"),i(),n(50,"div",34)(51,"div",35),l(52,"SOUND"),i(),n(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()}),l(58," Do not Play Sounds "),i()(),n(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()}),l(61," Show DEPTH Alarms "),i()(),n(62,"div",38)(63,"mat-form-field",39)(64,"mat-label"),l(65,"Alarm Smoothing Time"),i(),n(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,Ot,2,2,"mat-option",41,v),i()()()()()()(),n(69,"div",50)(70,"div",35),l(71,"STATUS BAR OPTIONS"),i(),n(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()}),l(77," Live ETA at cursor "),i()(),n(78,"div",38)(79,"mat-form-field",52)(80,"mat-label"),l(81),i(),n(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))}),i(),b(84,It,2,0,"mat-error"),i()(),n(85,"div",38)(86,"mat-form-field",52)(87,"mat-label"),l(88,"Tap Fade Speed (s)"),i(),n(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))}),i(),b(91,Bt,2,0,"mat-error"),i()()()()()(),n(92,"div",50)(93,"div",35),l(94,"WEATHER"),i(),n(95,"mat-card",36)(96,"mat-card-content")(97,"div",37)(98,"div",38)(99,"mat-form-field",39)(100,"mat-label"),l(101,"Wind indicator"),i(),n(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,At,2,2,"mat-option",41,v),i()()()()()()()()()(),n(105,"mat-tab",56)(106,"div",32)(107,"div",33)(108,"div",57)(109,"div",35),l(110,"UNITS & VALUES"),i(),n(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())}),l(119," Use Server Unit Preferences "),i()(),n(120,"div",37)(121,"div",38)(122,"mat-form-field",39)(123,"mat-label"),l(124,"Distance units"),i(),n(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,Ft,2,2,"mat-option",41,v),i()()(),n(129,"div",38)(130,"mat-form-field",39)(131,"mat-label"),l(132,"Depth units"),i(),n(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,Nt,2,2,"mat-option",41,v),i()()(),n(136,"div",38)(137,"mat-form-field",39)(138,"mat-label"),l(139,"Length units"),i(),n(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,Rt,2,2,"mat-option",41,v),i()()(),n(143,"div",38)(144,"mat-form-field",39)(145,"mat-label"),l(146,"Temperature units"),i(),n(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,Ut,2,2,"mat-option",41,v),i()()(),n(150,"div",38)(151,"mat-form-field",39)(152,"mat-label"),l(153,"Speed units"),i(),n(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,Gt,2,2,"mat-option",41,v),i()()()()()()(),n(157,"div",37),b(158,Zt,7,1,"div",38),b(159,zt,7,1,"div",38),n(160,"div",38)(161,"signalk-preferred-paths",60),p("chosen",function(t){return e.onPreferredPaths(t)}),i()()()()()()()()(),n(162,"mat-tab",61)(163,"div",32)(164,"div",33)(165,"div",62)(166,"div",35),l(167,"MAP"),i(),n(168,"mat-card")(169,"mat-card-content")(170,"div",37)(171,"div",38)(172,"div",63),l(173," \xA0 "),i(),n(174,"mat-form-field",39)(175,"mat-label"),l(176,"Feature label zoom level"),i(),n(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,qt,2,2,"mat-option",41,D),i()()(),n(180,"div",38)(181,"div",65),l(182," Offset Vessel Center (%) "),i(),n(183,"div",66)(184,"mat-form-field",67)(185,"mat-label"),l(186,"Vertical"),i(),n(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))}),i()(),n(189,"mat-form-field",67)(190,"mat-label"),l(191,"Horizontal"),i(),n(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))}),i()()()(),n(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()}),l(196," Popovers close with button "),i()(),n(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()}),l(199," Double click to Zoom "),i()(),n(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()}),l(202," Keep tiles visible on max zoom "),i()(),n(203,"div",73)(204,"mat-form-field",39)(205,"mat-label"),l(206,"Map Pan When Following"),i(),n(207,"mat-select",74),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,jt,2,2,"mat-option",41,v),i()(),b(210,Yt,6,1,"mat-form-field",39),i()()()(),n(211,"div",35),l(212,"VECTOR CHARTS"),i(),n(213,"mat-card")(214,"mat-card-content")(215,"div",37)(216,"div",38)(217,"mat-form-field",39)(218,"mat-label"),l(219,"Graphics Style"),i(),n(220,"mat-select",75),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(221,Jt,2,2,"mat-option",41,v),i()()(),n(223,"div",38)(224,"mat-form-field",39)(225,"mat-label"),l(226,"Boundaries"),i(),n(227,"mat-select",76),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(228,Qt,2,2,"mat-option",41,v),i()()(),n(230,"div",38)(231,"mat-form-field",39)(232,"mat-label"),l(233,"Color Table (Requires refresh)"),i(),n(234,"mat-select",77),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(235,$t,2,2,"mat-option",41,v),i()()(),n(237,"div",38)(238,"mat-form-field",39)(239,"mat-label"),l(240,"Colors"),i(),n(241,"mat-select",78),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(242,ei,2,2,"mat-option",41,D),i()()()(),n(244,"div",37)(245,"div",38)(246,"mat-form-field",39)(247,"mat-label"),l(248,"Shallow depth"),i(),n(249,"input",79,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(250);return c(e.doS57(t))}),i(),b(251,ti,2,0,"mat-error"),n(252,"span",80),l(253,"m"),i()()(),n(254,"div",38)(255,"mat-form-field",39)(256,"mat-label"),l(257,"Safety depth"),i(),n(258,"input",79,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(259);return c(e.doS57(t))}),i(),b(260,ii,2,0,"mat-error"),n(261,"span",80),l(262,"m"),i()()(),n(263,"div",38)(264,"mat-form-field",39)(265,"mat-label"),l(266,"Deep depth"),i(),n(267,"input",79,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(268);return c(e.doS57(t))}),i(),b(269,ni,2,0,"mat-error"),n(270,"span",80),l(271,"m"),i()()(),n(272,"div",38)(273,"mat-form-field",39)(274,"mat-label"),l(275,"Layers"),i(),n(276,"mat-select",81),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(277,ai,2,2,"mat-option",41,v),i()()()()()()()()()(),n(279,"mat-tab",82)(280,"div",32)(281,"div",33)(282,"div",83)(283,"div",35),l(284,"COURSE"),i(),n(285,"mat-card",36)(286,"mat-card-content")(287,"div",37)(288,"div",38)(289,"mat-form-field",39)(290,"mat-label"),l(291,"Arrival Circle"),i(),n(292,"input",79,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(293);return c(e.parseNumber(t))}),i(),b(294,oi,2,0,"mat-error"),n(295,"span",80),l(296,"m"),i()()()(),n(297,"div",37)(298,"div",38)(299,"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()}),l(301," Auto-advance to next point on arrival "),i()()(),n(302,"div",37)(303,"div",38)(304,"mat-form-field",39)(305,"mat-label"),l(306,"Notification type to use"),i(),n(307,"mat-select",84,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(309,ri,2,2,"mat-option",41,D),i()()(),n(311,"div",38)(312,"mat-form-field",39)(313,"mat-label"),l(314,"Time to wait before advancing"),i(),n(315,"mat-select",85),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(316,si,2,2,"mat-option",41,v),i()()()()()()()()()(),n(318,"mat-tab",86)(319,"div",32)(320,"div",33)(321,"div",87)(322,"div",35),l(323,"VESSEL"),i(),n(324,"mat-card",36)(325,"mat-card-content")(326,"div",37)(327,"div",38)(328,"fieldset")(329,"legend"),l(330,"Vessel Icon Size"),i(),n(331,"div",37)(332,"div",38)(333,"mat-radio-group",88),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(334,li,3,4,"mat-radio-button",41,v),i()()()()()(),n(336,"div",38)(337,"fieldset")(338,"legend")(339,"mat-checkbox",89,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()}),l(341," Fixed Location Mode "),i()(),n(342,"div",37)(343,"div",38)(344,"mat-form-field",67)(345,"mat-label"),l(346,"Latitude"),i(),n(347,"input",90,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(348);return c(e.parseNumber(t,!0))}),i(),b(349,di,2,0,"mat-error"),i(),n(350,"mat-form-field",67)(351,"mat-label"),l(352,"Longitude"),i(),n(353,"input",91,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(354);return c(e.parseNumber(t,!0))}),i(),b(355,gi,2,0,"mat-error"),i()()()()()()(),E(356,"br"),n(357,"mat-card",36)(358,"mat-card-content")(359,"div",38)(360,"fieldset")(361,"legend"),l(362,"Vessel Lines:"),i(),n(363,"div",37)(364,"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()}),l(365," Display Wind Vectors "),i(),n(366,"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()}),l(367," Display Laylines "),i()(),n(368,"div",37)(369,"div",38)(370,"fieldset")(371,"legend"),l(372,"Heading Line"),i(),n(373,"div",37)(374,"div",38)(375,"mat-form-field")(376,"mat-label"),l(377,"Heading Line Length"),i(),n(378,"mat-select",92),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(379,mi,2,2,"mat-option",41,v),i()()(),n(381,"div",38)(382,"linestyle-select",93),p("selectionChange",function(t){return e.onLineStyle("heading",t)}),i()()()()()(),n(383,"div",37)(384,"div",38)(385,"fieldset")(386,"legend"),l(387,"COG Line"),i(),n(388,"div",37)(389,"div",38)(390,"mat-form-field")(391,"mat-label"),l(392,"COG Line Length"),i(),n(393,"mat-select",94),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(394,ci,2,2,"mat-option",41,v),i()()(),n(396,"div",38)(397,"linestyle-select",93),p("selectionChange",function(t){return e.onLineStyle("cog",t)}),i()()()()()()()(),n(398,"div",38)(399,"fieldset")(400,"legend")(401,"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()}),l(402," Display Range Circles "),i()(),n(403,"div",37)(404,"div",38)(405,"mat-form-field",39)(406,"mat-label"),l(407,"Number of Range Circles"),i(),n(408,"mat-select",95),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(409,pi,2,2,"mat-option",41,D),i()()(),n(411,"div",38)(412,"mat-form-field",39)(413,"mat-label"),l(414,"Minimum Zoom Level"),i(),n(415,"mat-select",95),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(416,_i,2,2,"mat-option",41,D),i()()()(),n(418,"div",37)(419,"div",38)(420,"mat-checkbox",96),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()}),l(421," Use Fixed Distance "),i()(),n(422,"div",38)(423,"mat-form-field",67)(424,"mat-label"),l(425),i(),n(426,"input",97,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(427);return c(e.parseFormattedNumber(t))}),i(),b(428,fi,2,0,"mat-error"),i()()()()()()(),E(429,"br"),n(430,"mat-card",36)(431,"mat-card-content")(432,"div",37)(433,"fieldset")(434,"legend")(435,"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")}),l(436," Display Vessel Track "),i()(),n(437,"div",37)(438,"div",38)(439,"mat-form-field",98)(440,"mat-label"),l(441,"Track source"),i(),n(442,"mat-select",99),u("ngModelChange",function(t){return m(g),f(e.facade.settings.vessels.trailSource,t)||(e.facade.settings.vessels.trailSource=t),c(t)}),p("selectionChange",function(){return e.persistModel("trailSource")}),n(443,"mat-option",100),l(444,"Auto"),i(),n(445,"mat-option",101),l(446,"Server"),i(),n(447,"mat-option",102),l(448,"This device"),i()(),b(449,ui,2,0,"mat-hint")(450,hi,2,1,"mat-hint"),i(),l(451," \xA0\xA0 "),n(452,"mat-slider",103)(453,"input",104),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()}),i()(),l(454),i()(),n(455,"div",37)(456,"div",38)(457,"mat-form-field",39)(458,"mat-label"),l(459,"Resolution: Last hour"),i(),n(460,"mat-select",95),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(461,yi,2,2,"mat-option",41,v),i()()(),n(463,"div",38)(464,"mat-form-field",39)(465,"mat-label"),l(466,"Resolution: 1 hr -> 24 hrs"),i(),n(467,"mat-select",95),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(468,Si,2,2,"mat-option",41,v),i()()(),n(470,"div",38)(471,"mat-form-field",39)(472,"mat-label"),l(473,"Resolution: > 24 hrs"),i(),n(474,"mat-select",95),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(475,Ci,2,2,"mat-option",41,v),i()()()()()()()(),n(477,"div",35),l(478,"OTHER VESSELS"),i(),n(479,"mat-card",36)(480,"mat-card-content")(481,"div",37)(482,"div",38)(483,"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()}),l(484," Show all tracks "),i(),l(485," \xA0 "),n(486,"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()}),l(487," Hide Moored "),i(),l(488," \xA0 "),n(489,"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()}),l(490," Hide Anchored "),i()()(),b(491,wi,5,3,"div",37),n(492,"div",37)(493,"div",38)(494,"mat-form-field",39)(495,"mat-label"),l(496,"Mark AIS target inactive after"),i(),n(497,"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(498,Mi,2,2,"mat-option",41,v),i()()(),n(500,"div",38)(501,"mat-form-field",39)(502,"mat-label"),l(503,"Remove AIS target after"),i(),n(504,"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(505,vi,2,2,"mat-option",41,v),i()()(),n(507,"div",38)(508,"mat-form-field",39)(509,"mat-label"),l(510,"Wind Vector Value"),i(),n(511,"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(512,bi,2,2,"mat-option",41,v),i()()(),n(514,"div",38)(515,"mat-form-field",39)(516,"mat-label"),l(517,"Wind / Track Zoom Level"),i(),n(518,"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(519,Ti,2,2,"mat-option",41,D),i()()(),n(521,"div",38)(522,"mat-form-field",39)(523,"mat-label"),l(524,"COG Line"),i(),n(525,"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(526,Di,2,2,"mat-option",41,v),i()()()()()()()()()(),n(528,"mat-tab",105)(529,"div",32)(530,"div",33)(531,"div",106)(532,"div",35),l(533,"NOTES"),i(),n(534,"mat-card",36)(535,"mat-card-content")(536,"div",46)(537,"div",38)(538,"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()}),l(539," Display Notes on Map "),i()(),n(540,"div",38)(541,"mat-form-field",39)(542,"mat-label"),l(543,"Notes Zoom Level"),i(),n(544,"mat-select",107),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(545,Ei,2,2,"mat-option",41,D),i()()()(),n(547,"div",46)(548,"div",38)(549,"mat-form-field",39)(550,"mat-label"),l(551),i(),n(552,"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(553,Wi,2,2,"mat-option",41,D),i()()()(),n(555,"div",46)(556,"div",38)(557,"mat-form-field",52)(558,"mat-label"),l(559,"Notes fetch filter:"),i(),n(560,"input",108,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")}),i(),b(562,Vi,3,0,"button",109),i()()(),n(563,"div",46)(564,"div",38)(565,"mat-checkbox",110),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()}),l(566," Edit Group Names "),i()(),n(567,"div",38)(568,"mat-checkbox",111),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()}),l(569," Position Group Note "),i()()(),n(570,"div",46)(571,"div",38)(572,"mat-checkbox",112),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()}),l(573," Single Click for Note Details "),i()()()()()(),n(574,"div",113)(575,"div",35),l(576,"CUSTOM RESOURCES"),i(),n(577,"mat-card",36)(578,"mat-card-content")(579,"div",46)(580,"div",38)(581,"div",114),l(582," Select custom resource types (./resources/<name>) "),i(),n(583,"mat-selection-list",115,17),p("selectionChange",function(){m(g);let t=M(584);return c(e.onResPathSelected(t))}),y(585,ki,2,3,"mat-list-option",116,D),i()()()()()()()()(),b(587,Li,21,2,"mat-tab",117),n(588,"mat-tab",118)(589,"div",32)(590,"div",33)(591,"div",119)(592,"div",35),l(593,"SIGNAL K: CONNECTION"),i(),n(594,"mat-card",36)(595,"mat-card-content")(596,"div",46)(597,"fieldset")(598,"legend"),l(599,"Filter Stream data:"),i(),n(600,"span",120),l(601," Check to include Signal K schema groups on display."),E(602,"br"),n(603,"i"),l(604,"Use to manage display performance."),i()(),n(605,"div",38)(606,"mat-checkbox",121),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()}),l(607," Vessels (other than Self) "),i()(),n(608,"div",38)(609,"mat-checkbox",122),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()}),l(610," Aids to Navigation (AtoN) "),i()(),n(611,"div",38)(612,"mat-checkbox",123),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()}),l(613," Aircraft "),i()(),n(614,"div",38)(615,"mat-checkbox",124),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()}),l(616," Search and Rescue (SaR) "),i()(),n(617,"div",38)(618,"mat-checkbox",125),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()}),l(619," Weather (Meteo) "),i()(),n(620,"div",38),E(621,"br"),n(622,"mat-form-field",39)(623,"mat-label"),l(624,"Max. distance from vessel"),i(),n(625,"mat-select",126,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(627,xi,2,2,"mat-option",41,v),i()()()()(),n(629,"div",46)(630,"div",38)(631,"button",127),p("click",function(){return e.clearAuthToken()}),n(632,"mat-icon"),l(633,"key_off"),i()()()()()()()()()(),n(634,"mat-tab",128)(635,"div",32)(636,"div",33)(637,"div",129)(638,"div",35),l(639,"EXPERIMENTS"),i(),n(640,"mat-card",36)(641,"mat-card-content")(642,"div",46)(643,"div",38)(644,"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()}),l(645," Enable Video "),i()(),n(646,"div",38)(647,"mat-form-field",52)(648,"mat-label"),l(649,"url:"),i(),n(650,"input",130,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")}),i(),b(652,Oi,2,0,"mat-error"),i()()(),n(653,"div",46)(654,"div",38)(655,"mat-checkbox",131,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()}),n(657,"mat-icon"),l(658,"science"),i(),l(659," Experimental Features "),i()()()()()()()()()()()}if(a&2){let g=M(83),r=M(90),t=M(126),ae=M(250),oe=M(259),re=M(268),se=M(293),me=M(300),ce=M(340),le=M(348),de=M(354),ge=M(427),_t=M(561),ft=M(651);o(25),_("ngModel",e.facade.settings.display.darkMode.source),o(),S(e.options.darkMode),o(3),_("ngModel",e.facade.settings.display.nightMode),o(6),_("ngModel",e.facade.settings.display.fab),o(),S(e.options.buttons.fab),o(3),h("disabled",!e.wakeLock.isAvailable),_("ngModel",e.facade.settings.display.disableWakelock),o(3),_("ngModel",e.facade.settings.display.preferInfoPanel),o(5),T(e.facade.applicationList.length>1?47:-1),o(),T(e.show.favourites()?48:-1),o(9),_("ngModel",e.facade.settings.display.muteSound),o(3),_("ngModel",e.facade.settings.display.depthAlarm.enabled),o(6),_("ngModel",e.facade.settings.display.depthAlarm.smoothing),h("disabled",!e.facade.settings.display.depthAlarm.enabled),o(),S(e.options.alarm.smoothing),o(9),_("ngModel",e.facade.settings.display.statusBar.liveEta),o(5),k("Reference Boat Speed (",e.speedUnitSymbol,")"),o(),h("disabled",!e.facade.settings.display.statusBar.liveEta),_("ngModel",e.facade.settings.display.statusBar.referenceSpeed),o(2),T(g.invalid&&(g.dirty||g.touched)?84:-1),o(5),h("disabled",!e.facade.settings.display.statusBar.liveEta),_("ngModel",e.facade.settings.display.statusBar.tapFadeSpeed),o(2),T(r.invalid&&(r.dirty||r.touched)?91:-1),o(11),_("ngModel",e.facade.settings.display.windIndicator),o(),S(e.options.windIndicator),o(14),h("disabled",!e.app.serverConfig.unitPreferences()),_("ngModel",e.facade.settings.units.useServerPrefs),o(8),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.distance),o(2),S(e.options.availableUnits.distance),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.depth),o(),S(e.options.availableUnits.depth),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.length),o(),S(e.options.availableUnits.length),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.temperature),o(),S(e.options.availableUnits.temperature),o(6),h("disabled",e.facade.settings.units.useServerPrefs),_("ngModel",e.facade.settings.units.speed),o(),S(e.options.availableUnits.speed),o(3),T(e.options.preferredValues.coords.length!==0?158:-1),o(),T(e.options.preferredValues.heading.length!==0?159:-1),o(18),_("ngModel",e.facade.settings.map.labelsMinZoom),o(),S(e.options.zoomLevels),o(9),h("min",-e.centerOffsetLimit)("max",e.centerOffsetLimit),_("ngModel",e.facade.settings.map.centerOffset.y),o(5),h("min",-e.centerOffsetLimit)("max",e.centerOffsetLimit),_("ngModel",e.facade.settings.map.centerOffset.x),o(3),_("ngModel",e.facade.settings.map.popoverMulti),o(3),_("ngModel",e.facade.settings.map.doubleClickZoom),o(3),_("ngModel",e.facade.settings.map.overZoomTiles),o(6),_("ngModel",e.facade.settings.map.panBehavior),o(),S(e.options.map.panBehavior),o(2),T(e.facade.settings.map.panBehavior==="exit"?210:-1),o(10),_("ngModel",e.facade.settings.map.s57Options.graphicsStyle),o(),S(e.options.map.s57.graphicsStyle),o(6),_("ngModel",e.facade.settings.map.s57Options.boundaries),o(),S(e.options.map.s57.boundaries),o(6),_("ngModel",e.facade.settings.map.s57Options.colorTable),o(),S(e.options.map.s57.colorTables),o(6),_("ngModel",e.facade.settings.map.s57Options.colors),o(),S(e.options.map.s57.colors),o(7),_("ngModel",e.facade.settings.map.s57Options.shallowDepth),o(2),T(ae.invalid&&(ae.dirty||ae.touched)?251:-1),o(7),_("ngModel",e.facade.settings.map.s57Options.safetyDepth),o(2),T(oe.invalid&&(oe.dirty||oe.touched)?260:-1),o(7),_("ngModel",e.facade.settings.map.s57Options.deepDepth),o(2),T(re.invalid&&(re.dirty||re.touched)?269:-1),o(7),_("ngModel",e.facade.settings.map.s57Options.otherLayers),o(),S(e.options.map.s57.otherLayers),o(15),_("ngModel",e.facade.settings.course.arrivalCircle),o(2),T(se.invalid&&(se.dirty||se.touched)?294:-1),o(5),_("ngModel",e.facade.settings.course.autoNextPointOnArrival),o(8),h("disabled",me.checked===!1),_("ngModel",e.facade.settings.course.autoNextPointTrigger),o(2),S(e.options.course.nextPointTrigger),o(6),h("disabled",me.checked===!1),_("ngModel",e.facade.settings.course.autoNextPointDelay),o(),S(e.options.course.nextPointDelay),o(17),_("ngModel",e.facade.settings.vessels.iconScale),o(),S(e.options.vessel.selfIconScale),o(5),_("ngModel",e.facade.settings.vessels.fixedLocationMode),o(8),_("ngModel",e.facade.fixedPosition[1]),h("disabled",!ce.checked),o(2),T(le.invalid&&(le.dirty||le.touched)?349:-1),o(4),_("ngModel",e.facade.fixedPosition[0]),h("disabled",!ce.checked),o(2),T(de.invalid&&(de.dirty||de.touched)?355:-1),o(9),_("ngModel",e.facade.settings.vessels.windVectors),o(2),_("ngModel",e.facade.settings.vessels.laylines),o(12),_("ngModel",e.facade.settings.vessels.selfLines.heading.length),o(),S(e.options.vessel.headingLine),o(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),o(11),_("ngModel",e.facade.settings.vessels.selfLines.cog.length),o(),S(e.options.vessel.cogLine),o(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),o(4),_("ngModel",e.facade.settings.vessels.rangeCircles),o(7),_("ngModel",e.facade.settings.vessels.rangeCircleCount),h("disabled",!e.facade.settings.vessels.rangeCircles),o(),S(e.options.rangeCircles.count),o(6),_("ngModel",e.facade.settings.vessels.rangeCircleMinZoom),h("disabled",!e.facade.settings.vessels.rangeCircles),o(),S(e.options.rangeCircles.zoomLevels),o(4),_("ngModel",e.facade.settings.vessels.rangeCirclesFixed),h("disabled",!e.facade.settings.vessels.rangeCircles),o(5),k(" Distance between circles (",e.renderSymbol(e.facade.settings.units.distance),") "),o(),_("ngModel",e.formattedNumberModel.rangeCirclesDistance),h("disabled",!e.facade.settings.vessels.rangeCircles||!e.facade.settings.vessels.rangeCirclesFixed),o(2),T(ge.invalid&&(ge.dirty||ge.touched)?428:-1),o(7),_("ngModel",e.facade.settings.vessels.trail),o(7),h("disabled",!e.facade.settings.vessels.trail),_("ngModel",e.facade.settings.vessels.trailSource),o(3),h("disabled",!e.serverTrailAvailable),o(4),T(e.serverTrailAvailable?e.facade.settings.vessels.trailSource==="auto"?450:-1:449),o(3),h("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),_("ngModel",e.facade.settings.vessels.trailDuration),o(),k(" Length (",e.facade.settings.vessels.trailDuration," hrs) "),o(6),_("ngModel",e.facade.settings.vessels.trailResolution.lastHour),h("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),S(e.options.trailIntervals.highResolution),o(6),_("ngModel",e.facade.settings.vessels.trailResolution.next23),h("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),S(e.options.trailIntervals.highResolution),o(6),_("ngModel",e.facade.settings.vessels.trailResolution.beyond24),h("disabled",!e.app.serverTrailWanted()||!e.facade.settings.vessels.trail),o(),S(e.options.trailIntervals.mediumResolution),o(8),_("ngModel",e.facade.settings.vessels.aisShowTrack),o(3),_("ngModel",e.aisStateFilter.moored),o(3),_("ngModel",e.aisStateFilter.anchored),o(2),T(e.facade.settings.vessels.aisShowTrack?-1:491),o(6),_("ngModel",e.facade.settings.vessels.aisStaleAge),o(),S(e.options.vessel.aisTimeouts),o(6),_("ngModel",e.facade.settings.vessels.aisMaxAge),o(),S(e.options.vessel.aisTimeouts),o(6),_("ngModel",e.facade.settings.vessels.aisWindApparent),o(),S(e.options.preferredValues.wind),o(6),_("ngModel",e.facade.settings.vessels.aisWindMinZoom),o(),S(e.options.zoomLevels),o(6),_("ngModel",e.facade.settings.vessels.aisCogLine),o(),S(e.options.vessel.aisCogLine),o(12),_("ngModel",e.facade.settings.ui.showNotes),o(6),h("disabled",!e.facade.settings.ui.showNotes),_("value",e.facade.settings.resources.notes.minZoom),o(),S(e.options.zoomLevels),o(6),C("Fetch Notes radius: ("+e.options.availableUnits.distance.get(t.value)+")"),o(),h("disabled",!e.facade.settings.ui.showNotes),_("ngModel",e.facade.settings.resources.notes.getRadius),o(),S(e.options.resources.noteRadius),o(7),_("ngModel",e.facade.settings.resources.notes.rootFilter),o(2),T(_t.value?562:-1),o(3),_("ngModel",e.facade.settings.resources.notes.groupNameEdit),o(3),_("ngModel",e.facade.settings.resources.notes.groupRequiresPosition),o(4),_("ngModel",e.facade.settings.display.singleClickNoteDetails),o(13),S(e.facade.resourcePathList),o(2),T(e.app.featureFlags().radarApi?587:-1),o(19),_("ngModel",e.facade.settings.signalk.vessels),o(3),_("ngModel",e.facade.settings.signalk.atons),o(3),_("ngModel",e.facade.settings.signalk.aircraft),o(3),_("ngModel",e.facade.settings.signalk.sar),o(3),_("ngModel",e.facade.settings.signalk.meteo),o(7),_("ngModel",e.facade.settings.signalk.maxRadius),o(2),S(e.options.vessel.aisMaxRadius),o(17),_("ngModel",e.facade.settings.resources.video.enable),o(6),h("disabled",!e.facade.settings.resources.video.enable),_("ngModel",e.facade.settings.resources.video.url),o(2),T(ft.invalid?652:-1),o(3),_("ngModel",e.facade.settings.experiments)}},dependencies:[Z,U,Ve,G,Le,xe,Pe,ke,H,we,Ce,Fe,Ae,ee,ot,$,Be,Oe,Ie,ze,Ke,Ze,He,R,be,ve,N,Me,Q,je,lt,rt,st,nt,J,z,K,Re,Ne,Ue,Y,X,Ge,j,q,at,Ye,Xe,it,et,tt,ne,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-card-row-item.setting-card-row-stack[_ngcontent-%COMP%]{flex-basis:220px}.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{pt as SettingsDialog};
@@ -1 +0,0 @@
1
- import{Ra as a}from"./chunk-VEGUHS2I.js";import"./chunk-WTDLBURC.js";import"./chunk-VJLDZ4NI.js";import"./chunk-PU7NCPYW.js";import"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{a as Trail2RouteDialog};
@@ -1 +0,0 @@
1
- import{Qa as a}from"./chunk-VEGUHS2I.js";import"./chunk-WTDLBURC.js";import"./chunk-VJLDZ4NI.js";import"./chunk-PU7NCPYW.js";import"./chunk-N4UL6N3G.js";import"./chunk-AA62TGOR.js";import"./chunk-WCLDE6BT.js";import"./chunk-WYYDGUIZ.js";import"./chunk-4ZE2OKZZ.js";import"./chunk-7TRKAN4B.js";import"./chunk-OPNUYGIO.js";import"./chunk-6H3I7D5M.js";export{a as GeoJSONImportDialog};