@mxtommy/kip 4.8.1 → 4.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/CHANGELOG.md +12 -3
  2. package/package.json +1 -1
  3. package/public/{chunk-CNMFlw_H.js → chunk-7lulvsGI.js} +1 -1
  4. package/public/{chunk-CIlfzV9R.js → chunk-8hkXyEzG.js} +1 -1
  5. package/public/{chunk-DWLISAZi.js → chunk-B15lj2T8.js} +1 -1
  6. package/public/{chunk-BQr-tSkv.js → chunk-B6AwCAvV.js} +1 -1
  7. package/public/{chunk-CwSa_BNV.js → chunk-B6XxnPxk.js} +1 -1
  8. package/public/{chunk-DE4ylhpq.js → chunk-B8gfh4xf.js} +1 -1
  9. package/public/{chunk-C2VQxCXa.js → chunk-B8zRhoG8.js} +1 -1
  10. package/public/{chunk-Bp0MQwPM.js → chunk-BIYHVfJl.js} +1 -1
  11. package/public/{chunk-DzTTqoF_.js → chunk-BW4m3O2L.js} +1 -1
  12. package/public/{chunk-Ii9n-oiL.js → chunk-B_PiPxb4.js} +1 -1
  13. package/public/chunk-Bb1mO304.js +1 -0
  14. package/public/{chunk-MjWuPUhu.js → chunk-BdBWqZzL.js} +1 -1
  15. package/public/{chunk-hd2_AKwt.js → chunk-BgyxBAyq.js} +1 -1
  16. package/public/{chunk-JbEkcxJm.js → chunk-Bhah8DNM.js} +1 -1
  17. package/public/{chunk-DDqeRiB0.js → chunk-Bq-eHuZV.js} +1 -1
  18. package/public/{chunk-CpuB_ZZz.js → chunk-BxV0O2fU.js} +1 -1
  19. package/public/{chunk-PheXEqie.js → chunk-Bz9bswDl.js} +1 -1
  20. package/public/{chunk-BOAD0N2a.js → chunk-C3CwUYvD.js} +1 -1
  21. package/public/{chunk-CkXTl3su.js → chunk-C4FGoLDg.js} +1 -1
  22. package/public/{chunk-sNakMDHi.js → chunk-CCiqU2uY.js} +1 -1
  23. package/public/{chunk-00hwknVI.js → chunk-CHKQxw6E.js} +1 -1
  24. package/public/{chunk-B82ADJSs.js → chunk-CJIxuzvd.js} +1 -1
  25. package/public/{chunk-DumLX5k_.js → chunk-COMZv7NY.js} +1 -1
  26. package/public/{chunk-dgaOX1wC.js → chunk-CSpA60X7.js} +1 -1
  27. package/public/{chunk-C6UXF7BI.js → chunk-CU8RPnsi.js} +1 -1
  28. package/public/{chunk-CNNTuNlM.js → chunk-CcvYOops.js} +1 -1
  29. package/public/{chunk-CA6RRaxd.js → chunk-CdSWuWKr.js} +1 -1
  30. package/public/{chunk-DQnoPLyC.js → chunk-CjsnWLUr.js} +1 -1
  31. package/public/{chunk-BX6skw5k.js → chunk-CkfPr-c5.js} +1 -1
  32. package/public/{chunk-nu4vZg-z.js → chunk-CoEM_FqS.js} +1 -1
  33. package/public/{chunk-DNS-qsFC.js → chunk-Cr34s2uQ.js} +1 -1
  34. package/public/{chunk-BJz7Ij9E.js → chunk-Cu9FE8cB.js} +1 -1
  35. package/public/{chunk-B6bEhzNR.js → chunk-CyURmwWh.js} +1 -1
  36. package/public/{chunk-CrBxxZCe.js → chunk-D-xDPCf7.js} +1 -1
  37. package/public/{chunk-5U8d2Ygo.js → chunk-D0MyVrEL.js} +1 -1
  38. package/public/{chunk-DjZgzSiH.js → chunk-DBA0eRqb.js} +1 -1
  39. package/public/{chunk-BKj60jdq.js → chunk-DGOvRnAo.js} +1 -1
  40. package/public/{chunk-CXvG8mMq.js → chunk-DMhuBqKs.js} +1 -1
  41. package/public/{chunk-DchvLV_Y.js → chunk-DMoEBcor.js} +1 -1
  42. package/public/chunk-DSvdWjO4.js +1 -0
  43. package/public/{chunk-D4xZ2tGB.js → chunk-DVB9tiW3.js} +1 -1
  44. package/public/{chunk-Dxlia2NE.js → chunk-D_wrJJxl.js} +1 -1
  45. package/public/{chunk-BwOIef42.js → chunk-DfGLo6Tb.js} +1 -1
  46. package/public/{chunk-BdokyhBM.js → chunk-Di5pPpU7.js} +1 -1
  47. package/public/{chunk-BoNDCNGE.js → chunk-DjavLLpP.js} +1 -1
  48. package/public/{chunk-CL2xiH57.js → chunk-Dv77RFHm.js} +1 -1
  49. package/public/{chunk-AANk-NXH.js → chunk-NnB8OYZt.js} +3 -3
  50. package/public/{chunk-By8ZVvDx.js → chunk-h2q_pbbF.js} +1 -1
  51. package/public/{chunk-tAiV3ARh.js → chunk-o977r5_s.js} +1 -1
  52. package/public/{chunk-DXkKj21H.js → chunk-oPq9Nexl.js} +1 -1
  53. package/public/{chunk-VgxMqRPk.js → chunk-oZiyAw_P.js} +1 -1
  54. package/public/chunk-zg7II0hz.js +1 -0
  55. package/public/index.html +1 -1
  56. package/public/{main-BAV5VDOD.js → main-BNR44HGB.js} +20 -20
  57. package/public/chunk-Blokg6Ds.js +0 -1
  58. package/public/chunk-CpMCBDvH.js +0 -1
  59. package/public/chunk-y1imvaA-.js +0 -1
@@ -1 +1 @@
1
- import {v,R,S}from'./chunk-CQNVyz8q.js';import {d1 as Hj,w,du as p,dv as rt$1,D as Dt,v as vt,F as Fa,dn as ge,aI as ms,J as JD,c as $h,B as Bh,$ as $j,ao as ue,dz as es,cn as wd,ci as dl,cp as Uh,cj as fl,_ as _w,T as TT,bD as HT,e as EE,M as Mw,d as ig,an as Hh,aA as gg,dA as UT,f as eg,K as Kw}from'./main-BAV5VDOD.js';var nt=["rotatingDial"],it=["awaIndicator"],at=["twaIndicator"],ot=["wptIndicator"],rt=["setIndicator"],st=["cogIndicator"];function lt(m,b){m&1&&(wd(),dl(0,"g",69)(1,"text",100)(2,"tspan",101),TT(3,"330"),fl()(),dl(4,"text",102)(5,"tspan",103),TT(6,"300"),fl()(),dl(7,"text",104)(8,"tspan",105),TT(9,"W"),fl()(),dl(10,"text",106)(11,"tspan",107),TT(12,"240"),fl()(),dl(13,"text",108)(14,"tspan",109),TT(15,"210"),fl()(),dl(16,"text",110)(17,"tspan",111),TT(18,"S"),fl()(),dl(19,"text",112)(20,"tspan",113),TT(21,"150"),fl()(),dl(22,"text",114)(23,"tspan",115),TT(24,"120"),fl()(),dl(25,"text",116)(26,"tspan",117),TT(27,"E"),fl()(),dl(28,"text",118)(29,"tspan",119),TT(30,"60"),fl()(),dl(31,"text",120)(32,"tspan",121),TT(33,"30"),fl()(),dl(34,"text",122)(35,"tspan",123),TT(36,"N"),fl()()());}function dt(m,b){m&1&&(wd(),dl(0,"g",70)(1,"text",100)(2,"tspan",101),TT(3,"30"),fl()(),dl(4,"text",102)(5,"tspan",103),TT(6,"60"),fl()(),dl(7,"text",104)(8,"tspan",105),TT(9,"90"),fl()(),dl(10,"text",106)(11,"tspan",107),TT(12,"120"),fl()(),dl(13,"text",108)(14,"tspan",109),TT(15,"150"),fl()(),dl(16,"text",110)(17,"tspan",111),TT(18,"180"),fl()(),dl(19,"text",112)(20,"tspan",113),TT(21,"150"),fl()(),dl(22,"text",114)(23,"tspan",115),TT(24,"120"),fl()(),dl(25,"text",116)(26,"tspan",117),TT(27,"90"),fl()(),dl(28,"text",118)(29,"tspan",119),TT(30,"60"),fl()(),dl(31,"text",120)(32,"tspan",121),TT(33,"30"),fl()(),dl(34,"text",122)(35,"tspan",123),TT(36,"0"),fl()()());}var Y=([m,b],[n,e],[t,o])=>(Math.atan2(o-e,t-n)-Math.atan2(b-e,m-n)+3*Math.PI)%(2*Math.PI)-Math.PI,J=(()=>{class m{rotatingDial=$j.required("rotatingDial");awaIndicator=$j.required("awaIndicator");twaIndicator=$j.required("twaIndicator");wptIndicator=$j.required("wptIndicator");setIndicator=$j.required("setIndicator");cogIndicator=$j.required("cogIndicator");compassHeading=Hj.required();compassModeEnabled=Hj.required();courseOverGroundAngle=Hj(void 0);courseOverGroundEnabled=Hj.required();trueWindAngle=Hj.required();twsEnabled=Hj.required();twaEnabled=Hj.required();trueWindSpeed=Hj.required();trueWindSpeedUnit=Hj.required();appWindAngle=Hj.required();awsEnabled=Hj.required();appWindSpeed=Hj.required();appWindSpeedUnit=Hj.required();laylineAngle=Hj(void 0);closeHauledLineEnabled=Hj.required();sailSetupEnabled=Hj.required();windSectorEnabled=Hj.required();driftEnabled=Hj.required();driftSet=Hj(void 0);driftFlow=Hj(void 0);waypointAngle=Hj(void 0);waypointEnabled=Hj.required();trueWindMinHistoric=Hj(void 0);trueWindMidHistoric=Hj(void 0);trueWindMaxHistoric=Hj(void 0);compass={oldValue:0,newValue:0};twa={oldValue:0,newValue:0};awa={oldValue:0,newValue:0};wpt={oldValue:0,newValue:0};cog={oldValue:0,newValue:0};set={oldValue:0,newValue:0};compassInitialized=false;twaInitialized=false;awaInitialized=false;wptInitialized=false;cogInitialized=false;setInitialized=false;headingValue=vt("--");trueWindHeading=0;waypointActive=vt(false);portLaylinePrev=0;stbdLaylinePrev=0;portLaylineAnimId=null;stbdLaylineAnimId=null;closeHauledLinePortPath=vt("M 500,500 500,500");closeHauledLineStbdPath=vt("M 500,500 500,500");portSectorPrev={min:0,mid:0,max:0};stbdSectorPrev={min:0,mid:0,max:0};portSectorAnimId=null;stbdSectorAnimId=null;portWindSectorPath=vt("");stbdWindSectorPath=vt("");animationFrameIds=new WeakMap;CENTER=500;RADIUS=350;ANIMATION_DURATION=900;EPS_ANGLE=1;ngZone=w(ue);setRotationImmediate(n,e){n.setAttribute("transform",`rotate(${e} 500 500)`);}constructor(){Fa(()=>{let n=this.waypointEnabled();ge(()=>{this.waypointActive.set(n);});}),Fa(()=>{let n=this.compassModeEnabled(),e=this.compassHeading(),t=Number.isFinite(e)?Math.round(e):null;t!=null&&ge(()=>{let o=n?t:0,r=!this.compassInitialized;r?(this.compass.oldValue=o,this.compass.newValue=o,this.compassInitialized=true):(this.compass.oldValue=this.compass.newValue,this.compass.newValue=o),this.headingValue.set(t.toString()),this.rotatingDial()?.nativeElement&&(r||this.compass.oldValue===this.compass.newValue?this.setRotationImmediate(this.rotatingDial().nativeElement,-this.compass.newValue):S(this.rotatingDial().nativeElement,-this.compass.oldValue,-this.compass.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone),this.updateCloseHauledLines(false),this.updateWindSectors(false));});}),Fa(()=>{let n=this.courseOverGroundAngle(),e=Number.isFinite(n)?Math.round(n):null,t=this.compassModeEnabled();e!=null&&ge(()=>{let o=t?this.compass.newValue:0,r=e-o,p=!this.cogInitialized;p?(this.cog.oldValue=r,this.cog.newValue=r,this.cogInitialized=true):(this.cog.oldValue=this.cog.newValue,this.cog.newValue=r),this.cogIndicator()?.nativeElement&&(p||this.cog.oldValue===this.cog.newValue?this.setRotationImmediate(this.cogIndicator().nativeElement,this.cog.newValue):S(this.cogIndicator().nativeElement,this.cog.oldValue,this.cog.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{let n=this.waypointAngle();ge(()=>{if(n==null||!Number.isFinite(n)){this.waypointActive.set(false);return}this.waypointEnabled()?this.waypointActive.set(true):this.waypointActive.set(false);let e=!this.wptInitialized;e?(this.wpt.oldValue=n,this.wpt.newValue=n,this.wptInitialized=true):(this.wpt.oldValue=this.wpt.newValue,this.wpt.newValue=n),this.wptIndicator()?.nativeElement&&(e||this.wpt.oldValue===this.wpt.newValue?this.setRotationImmediate(this.wptIndicator().nativeElement,this.wpt.newValue):S(this.wptIndicator().nativeElement,this.wpt.oldValue,this.wpt.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{let n=this.appWindAngle(),e=Number.isFinite(n)?Math.round(n):null;e!=null&&ge(()=>{let t=!this.awaInitialized;t?(this.awa.oldValue=e,this.awa.newValue=e,this.awaInitialized=true):(this.awa.oldValue=this.awa.newValue,this.awa.newValue=e),this.awaIndicator()?.nativeElement&&(t||this.awa.oldValue===this.awa.newValue?this.setRotationImmediate(this.awaIndicator().nativeElement,this.awa.newValue):S(this.awaIndicator().nativeElement,this.awa.oldValue,this.awa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone)),this.updateCloseHauledLines(!t);});}),Fa(()=>{let n=this.trueWindAngle(),e=Number.isFinite(n)?Math.round(n):null,t=this.compassModeEnabled();e!=null&&ge(()=>{this.trueWindHeading=e;let o=t?this.compass.newValue*-1:0,r=this.addHeading(this.trueWindHeading,o);this.twaInitialized?(this.twa.oldValue=this.twa.newValue,this.twa.newValue=r):(this.twa.oldValue=r,this.twa.newValue=r,this.twaInitialized=true),this.twaIndicator()?.nativeElement&&(!this.twaInitialized||this.twa.oldValue===this.twa.newValue?this.setRotationImmediate(this.twaIndicator().nativeElement,this.twa.newValue):S(this.twaIndicator().nativeElement,this.twa.oldValue,this.twa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{this.laylineAngle(),this.closeHauledLineEnabled()&&ge(()=>this.updateCloseHauledLines());}),Fa(()=>{let n=this.driftSet(),e=Number.isFinite(n)?Math.round(n):null;e!=null&&ge(()=>{this.setInitialized?(this.set.oldValue=this.set.newValue,this.set.newValue=e):(this.set.oldValue=e,this.set.newValue=e,this.setInitialized=true),this.setIndicator()?.nativeElement&&(!this.setInitialized||this.set.oldValue===this.set.newValue?this.setRotationImmediate(this.setIndicator().nativeElement,this.set.newValue):S(this.setIndicator().nativeElement,this.set.oldValue,this.set.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{let n=this.windSectorEnabled();this.trueWindMinHistoric(),this.trueWindMidHistoric(),this.trueWindMaxHistoric(),this.laylineAngle(),ge(()=>{if(!n){this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId),this.portSectorAnimId=null,this.stbdSectorAnimId=null,this.portWindSectorPath.set(""),this.stbdWindSectorPath.set("");return}this.updateWindSectors(true);});});}updateCloseHauledLines(n=true){if(!this.closeHauledLineEnabled())return;let e=this.compassModeEnabled(),t=e&&Number(this.compass.newValue)||0,o=e&&Number(this.awa.newValue)||0,r=Number(this.laylineAngle())||0,p=e?this.addHeading(t,this.addHeading(o,r*-1)):this.addHeading(o,r*-1);this.animateLayline(this.portLaylinePrev,p,true,n),this.portLaylinePrev=p;let u=e?this.addHeading(t,this.addHeading(o,r)):this.addHeading(o,r);this.animateLayline(this.stbdLaylinePrev,u,false,n),this.stbdLaylinePrev=u;}animateLayline(n,e,t,o=true){if(t&&this.portLaylineAnimId&&cancelAnimationFrame(this.portLaylineAnimId),!t&&this.stbdLaylineAnimId&&cancelAnimationFrame(this.stbdLaylineAnimId),this.angleDelta(n,e)<this.EPS_ANGLE){this.drawLayline(e,t),t?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null;return}if(!o){this.drawLayline(e,t),t?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null;return}let r=v(n,e,this.ANIMATION_DURATION,p=>this.drawLayline(p,t),()=>{t?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null;},this.ngZone);t?this.portLaylineAnimId=r:this.stbdLaylineAnimId=r;}drawLayline(n,e){let t=n*Math.PI/180,o=Math.floor(this.RADIUS*Math.sin(t)+this.CENTER),r=Math.floor(this.RADIUS*Math.cos(t)*-1+this.CENTER);e?this.closeHauledLinePortPath.set(`M ${this.CENTER},${this.CENTER} L ${o},${r}`):this.closeHauledLineStbdPath.set(`M ${this.CENTER},${this.CENTER} L ${o},${r}`);}windSectorsInitialized=false;updateWindSectors(n=true){if(!this.windSectorEnabled()||this.trueWindMinHistoric()==null||this.trueWindMidHistoric()==null||this.trueWindMaxHistoric()==null)return;let e={min:this.trueWindMinHistoric()??0,mid:this.trueWindMidHistoric()??0,max:this.trueWindMaxHistoric()??0},t={min:this.trueWindMinHistoric()??0,mid:this.trueWindMidHistoric()??0,max:this.trueWindMaxHistoric()??0};if(!this.windSectorsInitialized){this.windSectorsInitialized=true,n?(this.animateWindSector(e,e,true),this.animateWindSector(t,t,false)):(this.portWindSectorPath.set(this.computeSectorPath(e,true)),this.stbdWindSectorPath.set(this.computeSectorPath(t,false))),this.portSectorPrev=e,this.stbdSectorPrev=t;return}n?this.angleDelta(this.portSectorPrev.min,e.min)<this.EPS_ANGLE&&this.angleDelta(this.portSectorPrev.mid,e.mid)<this.EPS_ANGLE&&this.angleDelta(this.portSectorPrev.max,e.max)<this.EPS_ANGLE?(this.portWindSectorPath.set(this.computeSectorPath(e,true)),this.stbdWindSectorPath.set(this.computeSectorPath(t,false))):(this.animateWindSector(this.portSectorPrev,e,true),this.animateWindSector(this.stbdSectorPrev,t,false)):(this.portWindSectorPath.set(this.computeSectorPath(e,true)),this.stbdWindSectorPath.set(this.computeSectorPath(t,false))),this.portSectorPrev=e,this.stbdSectorPrev=t;}animateWindSector(n,e,t){if(t&&this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),!t&&this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId),this.angleDelta(n.min,e.min)<this.EPS_ANGLE&&this.angleDelta(n.mid,e.mid)<this.EPS_ANGLE&&this.angleDelta(n.max,e.max)<this.EPS_ANGLE){let p=this.computeSectorPath(e,t);t?this.portWindSectorPath.set(p):this.stbdWindSectorPath.set(p),t?this.portSectorAnimId=null:this.stbdSectorAnimId=null;return}let r=R(n,e,this.ANIMATION_DURATION,p=>{let u=this.computeSectorPath(p,t);t?this.portWindSectorPath.set(u):this.stbdWindSectorPath.set(u);},()=>{t?this.portSectorAnimId=null:this.stbdSectorAnimId=null;},this.ngZone);t?this.portSectorAnimId=r:this.stbdSectorAnimId=r;}addHeading(n=0,e=0){let t=(n+e)%360;return t<0&&(t+=360),t}ngOnDestroy(){this.portLaylineAnimId&&cancelAnimationFrame(this.portLaylineAnimId),this.stbdLaylineAnimId&&cancelAnimationFrame(this.stbdLaylineAnimId),this.portLaylineAnimId=null,this.stbdLaylineAnimId=null,this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId),this.portSectorAnimId=null,this.stbdSectorAnimId=null;let n=[this.rotatingDial(),this.awaIndicator(),this.twaIndicator(),this.wptIndicator(),this.setIndicator(),this.cogIndicator()];for(let e of n){let t=e?.nativeElement;if(!t)continue;let o=this.animationFrameIds.get(t);o&&cancelAnimationFrame(o),this.animationFrameIds.delete(t);}}angleDelta(n,e){let t=(e-n+540)%360-180;return Math.abs(t)}computeSectorPath(n,e){let o=(Number(this.laylineAngle())||0)*(e?-1:1),r=this.compassModeEnabled(),p=r&&Number(this.compass.newValue)||0,u=Number(this.awa.newValue)||0,M=r?this.addHeading(p,this.addHeading(n.min,o)):this.addHeading(o,this.addHeading(n.min,u*-1)),A=r?this.addHeading(p,this.addHeading(n.mid,o)):this.addHeading(o,this.addHeading(n.mid,u*-1)),W=r?this.addHeading(p,this.addHeading(n.max,o)):this.addHeading(o,this.addHeading(n.max,u*-1)),D=this.RADIUS*Math.sin(M*Math.PI/180)+this.CENTER,k=this.RADIUS*Math.cos(M*Math.PI/180)*-1+this.CENTER,O=this.RADIUS*Math.sin(A*Math.PI/180)+this.CENTER,U=this.RADIUS*Math.cos(A*Math.PI/180)*-1+this.CENTER,T=this.RADIUS*Math.sin(W*Math.PI/180)+this.CENTER,q=this.RADIUS*Math.cos(W*Math.PI/180)*-1+this.CENTER,K=Math.abs(Y([D,k],[O,U],[T,q]))>Math.PI/2?0:1,tt=Y([T,q],[D,k],[O,U])>0?0:1;return `M ${this.CENTER},${this.CENTER} L ${D},${k} A ${this.RADIUS},${this.RADIUS} 0 ${K} ${tt} ${T},${q} z`}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=JD({type:m,selectors:[["svg-windsteer"]],viewQuery:function(e,t){e&1&&eg(t.rotatingDial,nt,5)(t.awaIndicator,it,5)(t.twaIndicator,at,5)(t.wptIndicator,ot,5)(t.setIndicator,rt,5)(t.cogIndicator,st,5),e&2&&Kw(6);},inputs:{compassHeading:[1,"compassHeading"],compassModeEnabled:[1,"compassModeEnabled"],courseOverGroundAngle:[1,"courseOverGroundAngle"],courseOverGroundEnabled:[1,"courseOverGroundEnabled"],trueWindAngle:[1,"trueWindAngle"],twsEnabled:[1,"twsEnabled"],twaEnabled:[1,"twaEnabled"],trueWindSpeed:[1,"trueWindSpeed"],trueWindSpeedUnit:[1,"trueWindSpeedUnit"],appWindAngle:[1,"appWindAngle"],awsEnabled:[1,"awsEnabled"],appWindSpeed:[1,"appWindSpeed"],appWindSpeedUnit:[1,"appWindSpeedUnit"],laylineAngle:[1,"laylineAngle"],closeHauledLineEnabled:[1,"closeHauledLineEnabled"],sailSetupEnabled:[1,"sailSetupEnabled"],windSectorEnabled:[1,"windSectorEnabled"],driftEnabled:[1,"driftEnabled"],driftSet:[1,"driftSet"],driftFlow:[1,"driftFlow"],waypointAngle:[1,"waypointAngle"],waypointEnabled:[1,"waypointEnabled"],trueWindMinHistoric:[1,"trueWindMinHistoric"],trueWindMidHistoric:[1,"trueWindMidHistoric"],trueWindMaxHistoric:[1,"trueWindMaxHistoric"]},decls:124,vars:44,consts:[["rotatingDial",""],["wptIndicator",""],["setIndicator",""],["cogIndicator",""],["awaIndicator",""],["twaIndicator",""],["viewBox","0 0 1000 1000"],["id","defs1"],["id","linearGradient18"],["offset","0",1,"boat",2,"stop-opacity","0.71372495"],["offset","1",1,"boat",2,"stop-opacity","0"],["id","linearGradient16"],["id","linearGradient13"],["offset","0.41176471",1,"drift-arrow",2,"stop-opacity","1"],["offset","1",1,"drift-arrow",2,"stop-opacity","0"],["id","swatch4"],["offset","0","id","stop4",2,"stop-color","#000000","stop-opacity","1"],["clipPathUnits","userSpaceOnUse","id","clipPath16"],["id","ellipse16","cx","311.24539","cy","-1516.3778","rx","194.27342","ry","181.83022",2,"display","inline","fill","#9a9300","fill-opacity","1","stroke","none","stroke-width","55","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],[0,"xlink","href","#linearGradient13","id","linearGradient14","x1","453.48047","y1","583.62891","x2","638.11328","y2","583.62891","gradientUnits","userSpaceOnUse","gradientTransform","matrix(0.00723393,1.2388183,-1.0538241,0.00615367,1111.2051,-179.73465)"],[0,"xlink","href","#linearGradient16","id","linearGradient17","x1","-502.04896","y1","439.35551","x2","-316","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],[0,"xlink","href","#linearGradient18","id","linearGradient19","x1","495.83999","y1","439.35551","x2","681.88895","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],["id","layerBackground",2,"display","inline"],["id","boat",2,"display","inline"],["id","portSide","d","M 498.75049,208.89453 A 267.09439,554.67401 0 0 1 678.45974,767.81661",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient19)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","starboardSide","d","m -499.13846,208.89453 a 267.09439,554.67401 0 0 1 179.70925,558.92208","transform","scale(-1,1)",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient17)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","layerCompass"],["id","fixedDial"],["id","portStarboardBackground","d","M 499.99997,10.520805 A 489.47916,489.47916 0 0 0 10.520805,499.99997 489.47916,489.47916 0 0 0 499.99997,989.47913 489.47916,489.47916 0 0 0 989.47913,499.99997 489.47916,489.47916 0 0 0 499.99997,10.520805 Z m 0,132.291665 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"fixed-dial-background",2,"display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","port","d","M 93.283801,265.18231 A 469.63541,469.63541 0 0 1 339.37522,58.687079",1,"port",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","starboard","d","M 660.62476,58.687069 A 469.63541,469.63541 0 0 1 906.71619,265.18228",1,"starboard",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","barsAndText",1,"contrast-stroke",2,"display","inline"],["d","m 416.35095,19.837399 2.78142,15.77426","id","path199",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 334.23173,41.658798 5.47834,15.051615","id","path200",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 260.27336,81.806174 12.55151,21.739856","id","path37",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 187.44581,126.00035 10.29591,12.2702","id","path197",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 127.23918,185.95785 12.27019,10.29591","id","path198",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 83.252815,257.66724 21.739865,12.55151","id","path166",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 42.289518,332.39273 15.05162,5.47835","id","path195",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 20.127799,414.42077 15.774251,2.78142","id","path196",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 17.879075,498.47765 H 42.982096","id","path167",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 19.776759,583.71187 15.77426,-2.78142","id","path193",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 41.598167,665.8311 15.051615,-5.47834","id","path194",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 81.668963,739.71246 103.40883,727.16095","id","path168",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 125.93981,812.61701 12.2702,-10.29591","id","path191",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 185.89732,872.82365 10.29591,-12.27019","id","path192",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 257.53004,916.73298 12.55151,-21.73985","id","path169",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 332.33219,957.7732 5.47835,-15.05162","id","path189",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 414.36024,979.93493 2.78142,-15.77425","id","path190",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 498.34046,982.10672 V 957.0037","id","path170",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 583.65133,980.28596 580.86991,964.5117","id","path187",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 665.77057,958.46456 -5.47834,-15.05161","id","path188",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 739.57526,918.31683 727.02375,896.57698","id","path171",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 812.55647,874.12301 802.26056,861.85282","id","path185",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 872.76312,814.16551 860.49293,803.8696","id","path186",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 916.59579,742.45577 894.85593,729.90426","id","path172",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 957.71266,667.73063 -15.05161,-5.47834","id","path183",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 979.8744,585.70259 -15.77425,-2.78142","id","path184",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 981.96954,501.64535 -25.10304,10e-6","id","path173",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 980.22542,416.41149 -15.77425,2.78143","id","path181",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 958.40403,334.29226 -15.05161,5.47834","id","path182",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 918.17964,260.41055 -21.73986,12.55151","id","path174",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 874.06247,187.50636 -12.27018,10.29591","id","path180",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 817.34594,130.05494 -10.40259,12.17987","id","path179",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 742.31857,83.390025 729.76706,105.12988","id","path175",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 667.6701,42.350172 -5.47834,15.051615","id","path178",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 585.64206,20.188432 -2.78142,15.77425","id","path176",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 501.50816,18.016286 V 43.119307","id","path177",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["cx","500","cy","500","r","404",1,"rotating-dial-Backplate"],["id","dialLabelsCompass"],["id","dialLabelsPortStbd"],["id","LayerLayline"],["id","PortLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","StbdLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","LayerWindShift"],["id","portSectorShift",1,"wind-sector-port",2,"fill-opacity","0.5","stroke","none"],["id","StbdSectorShift",1,"wind-sector-stbd",2,"fill-opacity","0.5","stroke","none"],["clip-path","url(#clipPath16)","d","m 416.36313,-1521.3937 c 371.15015,24.6522 731.95257,192.9774 983.98757,467.456 227.2972,244.24389 363.1732,572.3808 369.4045,906.42978 15.9331,499.10271 -269.2071,986.17861 -700.5178,1232.88522 -485.08308,290.4843 -1134.555606,269.7346 -1599.2788,-52.7169 -404.5062,-269.24461 -653.2224,-759.35388 -614.1746,-1245.84043 30.2148,-487.61814 344.18931,-937.89997 780.52695,-1152.15867 176.96718,-89.2092 371.8823084,-142.3103 569.54914,-156.0363","transform","matrix(0.28310615,0,0,0.32000828,411.88452,661.64815)",1,"next-waypoint-bar",2,"display","inline","fill","none","stroke-width","30","stroke-miterlimit","0"],["id","path6341","cx","500","cy","175.00002","rx","17.361122","ry","17.361118",1,"next-waypoint",2,"display","inline","fill","none","stroke-width","15.2778","stroke-dasharray","none"],["id","setArrow","d","m 563.93337,480.60403 -64.4901,-94.9673 -63.37665,95.71396 58.48691,-30.71299 0.77713,133.08346 c 0.0992,16.99331 2.52916,30.65913 5.44822,30.64209 2.91911,-0.0171 5.18926,-13.71032 5.09001,-30.70362 l -0.77782,-133.20444 z",2,"fill","url(#linearGradient14)","stroke","none","stroke-width","1.18648"],["id","layerCounter"],["id","twsCounter"],[0,"xml","space","preserve","x","904.27722","y","150.88913","id","text43",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","903.84814","y","114.73512","id","text42",1,"true-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","905.25897","y","52.894646","id","text41",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","awsCounter"],[0,"xml","space","preserve","x","94.554222","y","150.88913","id","text39",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","94.580925","y","114.63747","id","text40",1,"app-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","95.967644","y","52.894646","id","text39-7",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","layerCurrent"],["id","text11",0,"xml","space","preserve","x","499.78842","y","523.55145",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["id","layerIndicators",2,"display","inline"],["d","m 506.20767,172.99458 a 6.3888631,8.8250643 0 0 1 -6.38888,8.82508 6.3888631,8.8250643 0 0 1 -6.38888,-8.82508 6.3888631,8.8250643 0 0 1 6.38888,-8.82509 6.3888631,8.8250643 0 0 1 6.38888,8.82509 z M 476.25472,30.811298 493.47058,13.265068 c 3.6173,-3.6867571 9.44162,-3.6867571 13.05892,0 l 17.21586,17.546106 c 3.6173,3.686743 3.6173,9.622786 0,13.309544 l -17.21595,17.54623 c -3.61721,3.686757 -9.44153,3.686757 -13.05893,0 L 476.25472,44.120841 c -3.6174,-3.686743 -3.6174,-9.622924 0,-13.309543 z m 17.20533,-16.510116 h 12.77766 V 173.26408 h -12.77766 z",1,"course-over-ground",2,"stroke-width","14.7329","stroke-linecap","square"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.7935953,0,0,0.92686935,101.84848,11.000842)",1,"app-wind",2,"display","inline","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110",1,"card-color",2,"font-weight","bold","font-size","70px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.60410307,0,0,0.70555435,196.91787,21.152867)",1,"true-wind",2,"display","inline","stroke","none","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110","id","text10",1,"card-color",2,"font-weight","bold","font-size","60px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["id","layerHeading",2,"display","inline"],["id","rect1","width","256.47919","height","108.5428","x","371.76041","y","10.805443","rx","23.757372",1,"heading-background",2,"stroke-width","4.43107","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","0.509946"],["x","511.29395","y","102.86786",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","106.667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","5","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],[0,"xml","space","preserve","x","181.91386","y","284.25186","id","text3","transform","rotate(-30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan3","x","181.91386","y","284.25186",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-183.53558","y","283.74811","id","text14","transform","rotate(-60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan14","x","-183.53558","y","283.74811",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-499.70761","y","100.95312","id","text15","transform","rotate(-90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan15","x","-499.70761","y","100.95312",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.66119","y","-216.36243","id","text16","transform","rotate(-120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["x","-681.66119","y","-216.36243","id","tspan25",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.06616","y","-581.71271","id","text17","transform","rotate(-150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan17","x","-681.06616","y","-581.71271",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-498.3313","y","-897.40875","id","text18","transform","scale(-1)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan18","x","-498.3313","y","-897.40875",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-184.41313","y","-1080.8452","id","text19","transform","rotate(150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan19","x","-184.41313","y","-1080.8452",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","181.57225","y","-1080.8853","id","text20","transform","rotate(120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan20","x","181.57225","y","-1080.8853",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","501.42661","y","-896.93701","id","text21","transform","rotate(90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan21","x","501.42661","y","-896.93701",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","682.35815","y","-579.63336","id","text22","transform","rotate(60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan22","x","682.35815","y","-579.63336",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","681.81525","y","-214.27321","id","text23","transform","rotate(30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan23","x","681.81525","y","-214.27321",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","500.15503","y","101.96342","id","text24",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan24","x","500.15503","y","101.96342",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"]],template:function(e,t){e&1&&(wd(),dl(0,"svg",6)(1,"defs",7)(2,"linearGradient",8),Uh(3,"stop",9)(4,"stop",10),fl(),dl(5,"linearGradient",11),Uh(6,"stop",9)(7,"stop",10),fl(),dl(8,"linearGradient",12),Uh(9,"stop",13)(10,"stop",14),fl(),dl(11,"linearGradient",15),Uh(12,"stop",16),fl(),dl(13,"clipPath",17),Uh(14,"ellipse",18),fl(),Uh(15,"linearGradient",19)(16,"linearGradient",20)(17,"linearGradient",21),fl(),dl(18,"g",22)(19,"g",23),Uh(20,"path",24)(21,"path",25),fl()(),dl(22,"g",26)(23,"g",27),Uh(24,"path",28)(25,"path",29)(26,"path",30),fl(),dl(27,"g",null,0)(29,"g",31),Uh(30,"path",32)(31,"path",33)(32,"path",34)(33,"path",35)(34,"path",36)(35,"path",37)(36,"path",38)(37,"path",39)(38,"path",40)(39,"path",41)(40,"path",42)(41,"path",43)(42,"path",44)(43,"path",45)(44,"path",46)(45,"path",47)(46,"path",48)(47,"path",49)(48,"path",50)(49,"path",51)(50,"path",52)(51,"path",53)(52,"path",54)(53,"path",55)(54,"path",56)(55,"path",57)(56,"path",58)(57,"path",59)(58,"path",60)(59,"path",61)(60,"path",62)(61,"path",63)(62,"path",64)(63,"path",65)(64,"path",66)(65,"path",67)(66,"circle",68),_w(67,lt,37,0,":svg:g",69)(68,dt,37,0,":svg:g",70),fl(),dl(69,"g",71),Uh(70,"path",72)(71,"path",73),fl(),dl(72,"g",74),Uh(73,"path",75)(74,"path",76),fl(),dl(75,"g",null,1),Uh(77,"path",77)(78,"ellipse",78),fl(),dl(79,"g",null,2),Uh(81,"path",79),fl()()(),dl(82,"g",80)(83,"g",81)(84,"text",82),TT(85),fl(),dl(86,"text",83),TT(87),HT(88,"number"),fl(),dl(89,"text",84),TT(90,"TWS"),fl()(),dl(91,"g",85)(92,"text",86),TT(93),fl(),dl(94,"text",87),TT(95),HT(96,"number"),fl(),dl(97,"text",88),TT(98,"AWS"),fl()()(),dl(99,"g",89)(100,"text",90),TT(101),HT(102,"number"),fl()(),dl(103,"g",91)(104,"g",null,3),Uh(106,"path",92),fl(),dl(107,"g",null,4),Uh(109,"path",93),dl(110,"text",94),TT(111,"A"),fl()(),dl(112,"g",null,5),Uh(114,"path",95),dl(115,"text",96),TT(116,"T"),fl()()(),dl(117,"g",97),Uh(118,"rect",98),dl(119,"text",99)(120,"tspan"),TT(121),dl(122,"tspan"),TT(123,"\xB0"),fl()()()()()),e&2&&(EE(67),Mw(t.compassModeEnabled()?67:68),EE(2),ig("display",t.closeHauledLineEnabled()?"inline":"none"),EE(),ig("display",t.appWindAngle()!=null?"inline":"none"),Hh("d",t.closeHauledLineStbdPath()),EE(),ig("display",t.appWindAngle()!=null?"inline":"none"),Hh("d",t.closeHauledLinePortPath()),EE(),ig("display",t.windSectorEnabled()?"inline":"none"),EE(),ig("display",t.portWindSectorPath()?"inline":"none"),Hh("d",t.portWindSectorPath()||null),EE(),ig("display",t.stbdWindSectorPath()?"inline":"none"),Hh("d",t.stbdWindSectorPath()||null),EE(),Hh("display",t.waypointActive()&&t.compassModeEnabled()?"inline":"none"),EE(4),ig("display",t.driftEnabled()&&t.compassModeEnabled()?"inline":"none"),EE(4),ig("display",t.twsEnabled()?"inline":"none"),EE(2),gg(t.trueWindSpeedUnit()),EE(2),gg(UT(88,35,t.trueWindSpeed(),"1.1-1")??"--"),EE(4),ig("display",t.awsEnabled()?"inline":"none"),EE(2),gg(t.appWindSpeedUnit()),EE(2),gg(UT(96,38,t.appWindSpeed(),"1.1-1")??"--"),EE(4),ig("display",t.driftEnabled()&&t.compassModeEnabled()?"inline":"none"),EE(2),gg(UT(102,41,t.driftFlow(),"1.1-1")??"--"),EE(3),Hh("display",t.courseOverGroundEnabled()&&t.compassModeEnabled()?"inline":"none"),EE(8),ig("display",t.twaEnabled()?"inline":"none"),EE(9),gg(t.headingValue()));},dependencies:[es],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.fixed-dial-background[_ngcontent-%COMP%]{fill:var(--kip-grey-color)}.rotating-dial-Backplate[_ngcontent-%COMP%]{stroke:var(--mat-sys-background);fill:none;stroke-width:95}.starboard[_ngcontent-%COMP%]{stroke:var(--kip-starboard-color)}.port[_ngcontent-%COMP%]{stroke:var(--kip-port-color)}.heading-background[_ngcontent-%COMP%]{stroke:var(--kip-grey-color);fill:var(--kip-widget-card-background-color)}.boat[_ngcontent-%COMP%]{stop-color:var(--kip-grey-color)!important}.contrast-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}.contrast-stroke[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.card-color[_ngcontent-%COMP%]{fill:var(--kip-widget-card-background-color)}.true-wind[_ngcontent-%COMP%]{fill:var(--kip-yellow-color)}.true-wind-label[_ngcontent-%COMP%]{fill:var(--kip-yellow-dim-color)}.app-wind[_ngcontent-%COMP%]{fill:var(--kip-orange-color)}.app-wind-label[_ngcontent-%COMP%]{fill:var(--kip-orange-dim-color)}.course-over-ground[_ngcontent-%COMP%]{fill:var(--kip-pink-color)}.next-waypoint[_ngcontent-%COMP%]{stroke:var(--kip-green-color)}.next-waypoint-bar[_ngcontent-%COMP%]{stroke:var(--kip-grey-color)}.laylines[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.wind-sector-port[_ngcontent-%COMP%]{fill:var(--kip-port-color)}.wind-sector-stbd[_ngcontent-%COMP%]{fill:var(--kip-starboard-color)}.drift-arrow[_ngcontent-%COMP%]{stop-color:var(--kip-blue-color)}"]})}return m})();var St=(()=>{class m{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:false,filterSelfPaths:true,paths:{headingPath:{description:"True Heading",path:"self.navigation.headingTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},appWindAngle:{description:"Apparent Wind Angle",path:"self.environment.wind.angleApparent",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},appWindSpeed:{description:"Apparent Wind Speed",path:"self.environment.wind.speedApparent",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:1e3},trueWindAngle:{description:"True Wind Angle",path:"self.environment.wind.angleTrueWater",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},trueWindSpeed:{description:"True Wind Speed",path:"self.environment.wind.speedTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:1e3},courseOverGround:{description:"True Course Over Ground",path:"self.navigation.courseOverGroundTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",showConvertUnitTo:false,convertUnitTo:"deg",sampleTime:1e3},nextWaypointBearing:{description:"Next Waypoint True Bearing",path:"self.navigation.course.calcValues.bearingTrue",source:"default",pathType:"number",isPathConfigurable:false,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},set:{description:"True Drift Set",path:"self.environment.current.setTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},drift:{description:"Drift Speed Impact",path:"self.environment.current.drift",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:1e3}},compassModeEnabled:true,windSectorEnable:true,windSectorWindowSeconds:5,laylineEnable:true,laylineAngle:40,waypointEnable:true,courseOverGroundEnable:true,driftEnable:true,awsEnable:true,twsEnable:true,twaEnable:true,sailSetupEnable:false,enableTimeout:false,dataTimeout:5};runtime=w(p);stream=w(rt$1);cfg=Dt(()=>this.runtime.options()??m.DEFAULT_CONFIG);compassModeEnabledValue=Dt(()=>this.cfg().compassModeEnabled??false);courseOverGroundEnabledValue=Dt(()=>this.cfg().courseOverGroundEnable??false);twsEnabledValue=Dt(()=>this.cfg().twsEnable??false);twaEnabledValue=Dt(()=>this.cfg().twaEnable??false);awsEnabledValue=Dt(()=>this.cfg().awsEnable??false);laylineAngleValue=Dt(()=>this.cfg().laylineAngle??40);closeHauledLineEnabledValue=Dt(()=>this.cfg().laylineEnable??false);windSectorEnabledValue=Dt(()=>this.cfg().windSectorEnable??false);driftEnabledValue=Dt(()=>this.cfg().driftEnable??false);waypointEnabledValue=Dt(()=>this.cfg().waypointEnable??false);hasHeading=false;hasCOG=false;hasAWA=false;hasAWS=false;hasTWA=false;hasTWS=false;hasSet=false;hasDrift=false;hasWPT=false;currentHeading=vt(0);courseOverGroundAngle=vt(0);appWindAngle=vt(0);appWindSpeed=vt(0);appWindSpeedUnit=vt("");trueWindAngle=vt(0);trueWindSpeed=vt(0);trueWindSpeedUnit=vt("");driftFlow=vt(0);driftSet=vt(0);waypointAngle=vt(0);historicalWindDirection=[];trueWindMinHistoric=vt(void 0);trueWindMidHistoric=vt(void 0);trueWindMaxHistoric=vt(void 0);windSectorObservableSub=null;windSamples=[];windMinDeque=[];windMaxDeque=[];windSampleIndex=0;lastUnwrapped=null;lastSector={};DEG_EPSILON=1;SPEED_EPSILON=.1;constructor(){Fa(()=>{let e=this.cfg().paths;ge(()=>{this.appWindSpeedUnit.set(e?.appWindSpeed?.convertUnitTo??""),this.trueWindSpeedUnit.set(e?.trueWindSpeed?.convertUnitTo??""),this.registerStreams(),this.stopWindSectors(),this.startWindSectors();});});}onHeadingUpdate=n=>{let e=this.normalizeAngle(this.getPathValueOrZero(n));(!this.hasHeading||this.angleDelta(this.currentHeading(),e)>=this.DEG_EPSILON)&&(this.currentHeading.set(e),this.hasHeading=true);};onCOGUpdate=n=>{let e=this.normalizeAngle(this.getPathValueOrZero(n));(!this.hasCOG||this.angleDelta(this.courseOverGroundAngle(),e)>=this.DEG_EPSILON)&&(this.courseOverGroundAngle.set(e),this.hasCOG=true);};onDriftUpdate=n=>{let e=this.getPathValueOrZero(n);(!this.hasDrift||Math.abs(this.driftFlow()-e)>=this.SPEED_EPSILON)&&(this.driftFlow.set(e),this.hasDrift=true);};onSetUpdate=n=>{let e=this.normalizeAngle(this.getPathValueOrZero(n));(!this.hasSet||this.angleDelta(this.driftSet(),e)>=this.DEG_EPSILON)&&(this.driftSet.set(e),this.hasSet=true);};onWaypointUpdate=n=>{let e=n.data.value,t=this.normalizeAngle(e);(!this.hasWPT||this.angleDelta(this.waypointAngle(),t)>=this.DEG_EPSILON)&&(this.waypointAngle.set(t),this.hasWPT=true);};onAppWindAngle=n=>{let e=this.getPathValueOrZero(n),t=this.normalizeAngle(e);(!this.hasAWA||this.angleDelta(this.appWindAngle(),t)>=this.DEG_EPSILON)&&(this.appWindAngle.set(t),this.hasAWA=true,this.runtime.options()?.windSectorEnable&&this.addHistoricalWindDirection(this.normalizeAngle(e)));};onAppWindSpeed=n=>{let e=this.getPathValueOrZero(n);(!this.hasAWS||Math.abs(this.appWindSpeed()-e)>=this.SPEED_EPSILON)&&(this.appWindSpeed.set(e),this.hasAWS=true);};onTrueWindSpeed=n=>{let e=this.getPathValueOrZero(n);(!this.hasTWS||Math.abs(this.trueWindSpeed()-e)>=this.SPEED_EPSILON)&&(this.trueWindSpeed.set(e),this.hasTWS=true);};onTrueWindAngle=n=>{let e=this.cfg(),t=e.paths?.trueWindAngle?.path||"",o=ht(t,this.getPathValueOrZero(n),this.currentHeading(),!!e?.compassModeEnabled),r=this.normalizeAngle(o);(!this.hasTWA||this.angleDelta(this.trueWindAngle(),r)>=this.DEG_EPSILON)&&(this.trueWindAngle.set(r),this.hasTWA=true);};registerStreams(){this.runtime.options()&&(this.stream.observe("headingPath",this.onHeadingUpdate),this.stream.observe("courseOverGround",this.onCOGUpdate),this.stream.observe("drift",this.onDriftUpdate),this.stream.observe("set",this.onSetUpdate),this.stream.observe("nextWaypointBearing",this.onWaypointUpdate),this.stream.observe("appWindAngle",this.onAppWindAngle),this.stream.observe("appWindSpeed",this.onAppWindSpeed),this.stream.observe("trueWindSpeed",this.onTrueWindSpeed),this.stream.observe("trueWindAngle",this.onTrueWindAngle));}ngOnDestroy(){this.stopWindSectors();}startWindSectors(){if(this.windSamples=[],this.windMinDeque=[],this.windMaxDeque=[],this.windSampleIndex=0,this.lastUnwrapped=null,this.lastSector={},!this.cfg().windSectorEnable){this.trueWindMinHistoric.set(void 0),this.trueWindMidHistoric.set(void 0),this.trueWindMaxHistoric.set(void 0),this.lastSector={};return}this.windSectorObservableSub=ms(1e3).subscribe(()=>{this.historicalCleanup();});}addHistoricalWindDirection(n){let e=Date.now(),t=this.unwrapAngle(n),o=this.windSampleIndex++;for(this.windSamples.push({t:e,u:t,i:o});this.windMinDeque.length&&this.windMinDeque[this.windMinDeque.length-1].u>=t;)this.windMinDeque.pop();for(this.windMinDeque.push({i:o,u:t});this.windMaxDeque.length&&this.windMaxDeque[this.windMaxDeque.length-1].u<=t;)this.windMaxDeque.pop();this.windMaxDeque.push({i:o,u:t});}historicalCleanup(){if(!this.cfg().windSectorEnable)return;let n=Date.now()-(this.cfg().windSectorWindowSeconds??5)*1e3;for(;this.windSamples.length&&this.windSamples[0].t<n;){let k=this.windSamples.shift();if(!k)break;this.windMinDeque.length&&this.windMinDeque[0].i===k.i&&this.windMinDeque.shift(),this.windMaxDeque.length&&this.windMaxDeque[0].i===k.i&&this.windMaxDeque.shift();}if(!this.windSamples.length||!this.windMinDeque.length||!this.windMaxDeque.length){(this.trueWindMinHistoric()!==void 0||this.trueWindMidHistoric()!==void 0||this.trueWindMaxHistoric()!==void 0)&&(this.trueWindMinHistoric.set(void 0),this.trueWindMidHistoric.set(void 0),this.trueWindMaxHistoric.set(void 0),this.lastSector={});return}let e=this.windMinDeque[0].u,t=this.windMaxDeque[0].u,o=(e+t)/2,r=this.normalizeAngle(e),p=this.normalizeAngle(o),u=this.normalizeAngle(t),M=this.lastSector.min,A=this.lastSector.mid,W=this.lastSector.max;(M===void 0||this.angleDelta(M,r)>=this.DEG_EPSILON||A===void 0||this.angleDelta(A,p)>=this.DEG_EPSILON||W===void 0||this.angleDelta(W,u)>=this.DEG_EPSILON)&&(this.trueWindMinHistoric.set(r),this.trueWindMidHistoric.set(p),this.trueWindMaxHistoric.set(u),this.lastSector={min:r,mid:p,max:u});}getPathValueOrZero(n){return n.data.value==null?0:n.data.value}stopWindSectors(){this.windSectorObservableSub?.unsubscribe();}unwrapAngle(n){if(this.lastUnwrapped==null)return this.lastUnwrapped=n,n;let e=this.lastUnwrapped,t=(e%360+360)%360,o=(n-t+540)%360-180,r=e+o;return this.lastUnwrapped=r,r}normalizeAngle(n){return (n%360+360)%360}angleDelta(n,e){let t=(e-n+540)%360-180;return Math.abs(t)}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=JD({type:m,selectors:[["widget-wind-steer"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:1,vars:25,consts:[[3,"compassHeading","compassModeEnabled","courseOverGroundAngle","courseOverGroundEnabled","trueWindAngle","twsEnabled","twaEnabled","trueWindSpeed","trueWindSpeedUnit","appWindAngle","awsEnabled","appWindSpeed","appWindSpeedUnit","laylineAngle","closeHauledLineEnabled","windSectorEnabled","driftEnabled","driftFlow","driftSet","waypointAngle","waypointEnabled","trueWindMinHistoric","trueWindMidHistoric","trueWindMaxHistoric","sailSetupEnabled"]],template:function(e,t){e&1&&$h(0,"svg-windsteer",0),e&2&&Bh("compassHeading",t.currentHeading())("compassModeEnabled",t.compassModeEnabledValue())("courseOverGroundAngle",t.courseOverGroundAngle())("courseOverGroundEnabled",t.courseOverGroundEnabledValue())("trueWindAngle",t.trueWindAngle())("twsEnabled",t.twsEnabledValue())("twaEnabled",t.twaEnabledValue())("trueWindSpeed",t.trueWindSpeed())("trueWindSpeedUnit",t.trueWindSpeedUnit())("appWindAngle",t.appWindAngle())("awsEnabled",t.awsEnabledValue())("appWindSpeed",t.appWindSpeed())("appWindSpeedUnit",t.appWindSpeedUnit())("laylineAngle",t.laylineAngleValue())("closeHauledLineEnabled",t.closeHauledLineEnabledValue())("windSectorEnabled",t.windSectorEnabledValue())("driftEnabled",t.driftEnabledValue())("driftFlow",t.driftFlow())("driftSet",t.driftSet())("waypointAngle",t.waypointAngle())("waypointEnabled",t.waypointEnabledValue())("trueWindMinHistoric",t.trueWindMinHistoric())("trueWindMidHistoric",t.trueWindMidHistoric())("trueWindMaxHistoric",t.trueWindMaxHistoric())("sailSetupEnabled",t.runtime.options()?.sailSetupEnable??false);},dependencies:[J],encapsulation:2})}return m})();function mt(m,b){let n=(m+b)%360;return n<0&&(n+=360),n}function ht(m,b,n,e){return (m.includes("angleTrueWater")||m.includes("angleTrueGround"))&&e?mt(n,b):b}export{St as WidgetWindComponent,ht as computeTrueWindBaseAngle};
1
+ import {v,R,S}from'./chunk-CQNVyz8q.js';import {d1 as Hj,w,du as p,dv as rt$1,D as Dt,v as vt,F as Fa,dn as ge,aI as ms,J as JD,c as $h,B as Bh,$ as $j,ao as ue,dz as es,cn as wd,ci as dl,cp as Uh,cj as fl,_ as _w,T as TT,bD as HT,e as EE,M as Mw,d as ig,an as Hh,aA as gg,dA as UT,f as eg,K as Kw}from'./main-BNR44HGB.js';var nt=["rotatingDial"],it=["awaIndicator"],at=["twaIndicator"],ot=["wptIndicator"],rt=["setIndicator"],st=["cogIndicator"];function lt(m,b){m&1&&(wd(),dl(0,"g",69)(1,"text",100)(2,"tspan",101),TT(3,"330"),fl()(),dl(4,"text",102)(5,"tspan",103),TT(6,"300"),fl()(),dl(7,"text",104)(8,"tspan",105),TT(9,"W"),fl()(),dl(10,"text",106)(11,"tspan",107),TT(12,"240"),fl()(),dl(13,"text",108)(14,"tspan",109),TT(15,"210"),fl()(),dl(16,"text",110)(17,"tspan",111),TT(18,"S"),fl()(),dl(19,"text",112)(20,"tspan",113),TT(21,"150"),fl()(),dl(22,"text",114)(23,"tspan",115),TT(24,"120"),fl()(),dl(25,"text",116)(26,"tspan",117),TT(27,"E"),fl()(),dl(28,"text",118)(29,"tspan",119),TT(30,"60"),fl()(),dl(31,"text",120)(32,"tspan",121),TT(33,"30"),fl()(),dl(34,"text",122)(35,"tspan",123),TT(36,"N"),fl()()());}function dt(m,b){m&1&&(wd(),dl(0,"g",70)(1,"text",100)(2,"tspan",101),TT(3,"30"),fl()(),dl(4,"text",102)(5,"tspan",103),TT(6,"60"),fl()(),dl(7,"text",104)(8,"tspan",105),TT(9,"90"),fl()(),dl(10,"text",106)(11,"tspan",107),TT(12,"120"),fl()(),dl(13,"text",108)(14,"tspan",109),TT(15,"150"),fl()(),dl(16,"text",110)(17,"tspan",111),TT(18,"180"),fl()(),dl(19,"text",112)(20,"tspan",113),TT(21,"150"),fl()(),dl(22,"text",114)(23,"tspan",115),TT(24,"120"),fl()(),dl(25,"text",116)(26,"tspan",117),TT(27,"90"),fl()(),dl(28,"text",118)(29,"tspan",119),TT(30,"60"),fl()(),dl(31,"text",120)(32,"tspan",121),TT(33,"30"),fl()(),dl(34,"text",122)(35,"tspan",123),TT(36,"0"),fl()()());}var Y=([m,b],[n,e],[t,o])=>(Math.atan2(o-e,t-n)-Math.atan2(b-e,m-n)+3*Math.PI)%(2*Math.PI)-Math.PI,J=(()=>{class m{rotatingDial=$j.required("rotatingDial");awaIndicator=$j.required("awaIndicator");twaIndicator=$j.required("twaIndicator");wptIndicator=$j.required("wptIndicator");setIndicator=$j.required("setIndicator");cogIndicator=$j.required("cogIndicator");compassHeading=Hj.required();compassModeEnabled=Hj.required();courseOverGroundAngle=Hj(void 0);courseOverGroundEnabled=Hj.required();trueWindAngle=Hj.required();twsEnabled=Hj.required();twaEnabled=Hj.required();trueWindSpeed=Hj.required();trueWindSpeedUnit=Hj.required();appWindAngle=Hj.required();awsEnabled=Hj.required();appWindSpeed=Hj.required();appWindSpeedUnit=Hj.required();laylineAngle=Hj(void 0);closeHauledLineEnabled=Hj.required();sailSetupEnabled=Hj.required();windSectorEnabled=Hj.required();driftEnabled=Hj.required();driftSet=Hj(void 0);driftFlow=Hj(void 0);waypointAngle=Hj(void 0);waypointEnabled=Hj.required();trueWindMinHistoric=Hj(void 0);trueWindMidHistoric=Hj(void 0);trueWindMaxHistoric=Hj(void 0);compass={oldValue:0,newValue:0};twa={oldValue:0,newValue:0};awa={oldValue:0,newValue:0};wpt={oldValue:0,newValue:0};cog={oldValue:0,newValue:0};set={oldValue:0,newValue:0};compassInitialized=false;twaInitialized=false;awaInitialized=false;wptInitialized=false;cogInitialized=false;setInitialized=false;headingValue=vt("--");trueWindHeading=0;waypointActive=vt(false);portLaylinePrev=0;stbdLaylinePrev=0;portLaylineAnimId=null;stbdLaylineAnimId=null;closeHauledLinePortPath=vt("M 500,500 500,500");closeHauledLineStbdPath=vt("M 500,500 500,500");portSectorPrev={min:0,mid:0,max:0};stbdSectorPrev={min:0,mid:0,max:0};portSectorAnimId=null;stbdSectorAnimId=null;portWindSectorPath=vt("");stbdWindSectorPath=vt("");animationFrameIds=new WeakMap;CENTER=500;RADIUS=350;ANIMATION_DURATION=900;EPS_ANGLE=1;ngZone=w(ue);setRotationImmediate(n,e){n.setAttribute("transform",`rotate(${e} 500 500)`);}constructor(){Fa(()=>{let n=this.waypointEnabled();ge(()=>{this.waypointActive.set(n);});}),Fa(()=>{let n=this.compassModeEnabled(),e=this.compassHeading(),t=Number.isFinite(e)?Math.round(e):null;t!=null&&ge(()=>{let o=n?t:0,r=!this.compassInitialized;r?(this.compass.oldValue=o,this.compass.newValue=o,this.compassInitialized=true):(this.compass.oldValue=this.compass.newValue,this.compass.newValue=o),this.headingValue.set(t.toString()),this.rotatingDial()?.nativeElement&&(r||this.compass.oldValue===this.compass.newValue?this.setRotationImmediate(this.rotatingDial().nativeElement,-this.compass.newValue):S(this.rotatingDial().nativeElement,-this.compass.oldValue,-this.compass.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone),this.updateCloseHauledLines(false),this.updateWindSectors(false));});}),Fa(()=>{let n=this.courseOverGroundAngle(),e=Number.isFinite(n)?Math.round(n):null,t=this.compassModeEnabled();e!=null&&ge(()=>{let o=t?this.compass.newValue:0,r=e-o,p=!this.cogInitialized;p?(this.cog.oldValue=r,this.cog.newValue=r,this.cogInitialized=true):(this.cog.oldValue=this.cog.newValue,this.cog.newValue=r),this.cogIndicator()?.nativeElement&&(p||this.cog.oldValue===this.cog.newValue?this.setRotationImmediate(this.cogIndicator().nativeElement,this.cog.newValue):S(this.cogIndicator().nativeElement,this.cog.oldValue,this.cog.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{let n=this.waypointAngle();ge(()=>{if(n==null||!Number.isFinite(n)){this.waypointActive.set(false);return}this.waypointEnabled()?this.waypointActive.set(true):this.waypointActive.set(false);let e=!this.wptInitialized;e?(this.wpt.oldValue=n,this.wpt.newValue=n,this.wptInitialized=true):(this.wpt.oldValue=this.wpt.newValue,this.wpt.newValue=n),this.wptIndicator()?.nativeElement&&(e||this.wpt.oldValue===this.wpt.newValue?this.setRotationImmediate(this.wptIndicator().nativeElement,this.wpt.newValue):S(this.wptIndicator().nativeElement,this.wpt.oldValue,this.wpt.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{let n=this.appWindAngle(),e=Number.isFinite(n)?Math.round(n):null;e!=null&&ge(()=>{let t=!this.awaInitialized;t?(this.awa.oldValue=e,this.awa.newValue=e,this.awaInitialized=true):(this.awa.oldValue=this.awa.newValue,this.awa.newValue=e),this.awaIndicator()?.nativeElement&&(t||this.awa.oldValue===this.awa.newValue?this.setRotationImmediate(this.awaIndicator().nativeElement,this.awa.newValue):S(this.awaIndicator().nativeElement,this.awa.oldValue,this.awa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone)),this.updateCloseHauledLines(!t);});}),Fa(()=>{let n=this.trueWindAngle(),e=Number.isFinite(n)?Math.round(n):null,t=this.compassModeEnabled();e!=null&&ge(()=>{this.trueWindHeading=e;let o=t?this.compass.newValue*-1:0,r=this.addHeading(this.trueWindHeading,o);this.twaInitialized?(this.twa.oldValue=this.twa.newValue,this.twa.newValue=r):(this.twa.oldValue=r,this.twa.newValue=r,this.twaInitialized=true),this.twaIndicator()?.nativeElement&&(!this.twaInitialized||this.twa.oldValue===this.twa.newValue?this.setRotationImmediate(this.twaIndicator().nativeElement,this.twa.newValue):S(this.twaIndicator().nativeElement,this.twa.oldValue,this.twa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{this.laylineAngle(),this.closeHauledLineEnabled()&&ge(()=>this.updateCloseHauledLines());}),Fa(()=>{let n=this.driftSet(),e=Number.isFinite(n)?Math.round(n):null;e!=null&&ge(()=>{this.setInitialized?(this.set.oldValue=this.set.newValue,this.set.newValue=e):(this.set.oldValue=e,this.set.newValue=e,this.setInitialized=true),this.setIndicator()?.nativeElement&&(!this.setInitialized||this.set.oldValue===this.set.newValue?this.setRotationImmediate(this.setIndicator().nativeElement,this.set.newValue):S(this.setIndicator().nativeElement,this.set.oldValue,this.set.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,void 0,this.ngZone));});}),Fa(()=>{let n=this.windSectorEnabled();this.trueWindMinHistoric(),this.trueWindMidHistoric(),this.trueWindMaxHistoric(),this.laylineAngle(),ge(()=>{if(!n){this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId),this.portSectorAnimId=null,this.stbdSectorAnimId=null,this.portWindSectorPath.set(""),this.stbdWindSectorPath.set("");return}this.updateWindSectors(true);});});}updateCloseHauledLines(n=true){if(!this.closeHauledLineEnabled())return;let e=this.compassModeEnabled(),t=e&&Number(this.compass.newValue)||0,o=e&&Number(this.awa.newValue)||0,r=Number(this.laylineAngle())||0,p=e?this.addHeading(t,this.addHeading(o,r*-1)):this.addHeading(o,r*-1);this.animateLayline(this.portLaylinePrev,p,true,n),this.portLaylinePrev=p;let u=e?this.addHeading(t,this.addHeading(o,r)):this.addHeading(o,r);this.animateLayline(this.stbdLaylinePrev,u,false,n),this.stbdLaylinePrev=u;}animateLayline(n,e,t,o=true){if(t&&this.portLaylineAnimId&&cancelAnimationFrame(this.portLaylineAnimId),!t&&this.stbdLaylineAnimId&&cancelAnimationFrame(this.stbdLaylineAnimId),this.angleDelta(n,e)<this.EPS_ANGLE){this.drawLayline(e,t),t?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null;return}if(!o){this.drawLayline(e,t),t?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null;return}let r=v(n,e,this.ANIMATION_DURATION,p=>this.drawLayline(p,t),()=>{t?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null;},this.ngZone);t?this.portLaylineAnimId=r:this.stbdLaylineAnimId=r;}drawLayline(n,e){let t=n*Math.PI/180,o=Math.floor(this.RADIUS*Math.sin(t)+this.CENTER),r=Math.floor(this.RADIUS*Math.cos(t)*-1+this.CENTER);e?this.closeHauledLinePortPath.set(`M ${this.CENTER},${this.CENTER} L ${o},${r}`):this.closeHauledLineStbdPath.set(`M ${this.CENTER},${this.CENTER} L ${o},${r}`);}windSectorsInitialized=false;updateWindSectors(n=true){if(!this.windSectorEnabled()||this.trueWindMinHistoric()==null||this.trueWindMidHistoric()==null||this.trueWindMaxHistoric()==null)return;let e={min:this.trueWindMinHistoric()??0,mid:this.trueWindMidHistoric()??0,max:this.trueWindMaxHistoric()??0},t={min:this.trueWindMinHistoric()??0,mid:this.trueWindMidHistoric()??0,max:this.trueWindMaxHistoric()??0};if(!this.windSectorsInitialized){this.windSectorsInitialized=true,n?(this.animateWindSector(e,e,true),this.animateWindSector(t,t,false)):(this.portWindSectorPath.set(this.computeSectorPath(e,true)),this.stbdWindSectorPath.set(this.computeSectorPath(t,false))),this.portSectorPrev=e,this.stbdSectorPrev=t;return}n?this.angleDelta(this.portSectorPrev.min,e.min)<this.EPS_ANGLE&&this.angleDelta(this.portSectorPrev.mid,e.mid)<this.EPS_ANGLE&&this.angleDelta(this.portSectorPrev.max,e.max)<this.EPS_ANGLE?(this.portWindSectorPath.set(this.computeSectorPath(e,true)),this.stbdWindSectorPath.set(this.computeSectorPath(t,false))):(this.animateWindSector(this.portSectorPrev,e,true),this.animateWindSector(this.stbdSectorPrev,t,false)):(this.portWindSectorPath.set(this.computeSectorPath(e,true)),this.stbdWindSectorPath.set(this.computeSectorPath(t,false))),this.portSectorPrev=e,this.stbdSectorPrev=t;}animateWindSector(n,e,t){if(t&&this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),!t&&this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId),this.angleDelta(n.min,e.min)<this.EPS_ANGLE&&this.angleDelta(n.mid,e.mid)<this.EPS_ANGLE&&this.angleDelta(n.max,e.max)<this.EPS_ANGLE){let p=this.computeSectorPath(e,t);t?this.portWindSectorPath.set(p):this.stbdWindSectorPath.set(p),t?this.portSectorAnimId=null:this.stbdSectorAnimId=null;return}let r=R(n,e,this.ANIMATION_DURATION,p=>{let u=this.computeSectorPath(p,t);t?this.portWindSectorPath.set(u):this.stbdWindSectorPath.set(u);},()=>{t?this.portSectorAnimId=null:this.stbdSectorAnimId=null;},this.ngZone);t?this.portSectorAnimId=r:this.stbdSectorAnimId=r;}addHeading(n=0,e=0){let t=(n+e)%360;return t<0&&(t+=360),t}ngOnDestroy(){this.portLaylineAnimId&&cancelAnimationFrame(this.portLaylineAnimId),this.stbdLaylineAnimId&&cancelAnimationFrame(this.stbdLaylineAnimId),this.portLaylineAnimId=null,this.stbdLaylineAnimId=null,this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId),this.portSectorAnimId=null,this.stbdSectorAnimId=null;let n=[this.rotatingDial(),this.awaIndicator(),this.twaIndicator(),this.wptIndicator(),this.setIndicator(),this.cogIndicator()];for(let e of n){let t=e?.nativeElement;if(!t)continue;let o=this.animationFrameIds.get(t);o&&cancelAnimationFrame(o),this.animationFrameIds.delete(t);}}angleDelta(n,e){let t=(e-n+540)%360-180;return Math.abs(t)}computeSectorPath(n,e){let o=(Number(this.laylineAngle())||0)*(e?-1:1),r=this.compassModeEnabled(),p=r&&Number(this.compass.newValue)||0,u=Number(this.awa.newValue)||0,M=r?this.addHeading(p,this.addHeading(n.min,o)):this.addHeading(o,this.addHeading(n.min,u*-1)),A=r?this.addHeading(p,this.addHeading(n.mid,o)):this.addHeading(o,this.addHeading(n.mid,u*-1)),W=r?this.addHeading(p,this.addHeading(n.max,o)):this.addHeading(o,this.addHeading(n.max,u*-1)),D=this.RADIUS*Math.sin(M*Math.PI/180)+this.CENTER,k=this.RADIUS*Math.cos(M*Math.PI/180)*-1+this.CENTER,O=this.RADIUS*Math.sin(A*Math.PI/180)+this.CENTER,U=this.RADIUS*Math.cos(A*Math.PI/180)*-1+this.CENTER,T=this.RADIUS*Math.sin(W*Math.PI/180)+this.CENTER,q=this.RADIUS*Math.cos(W*Math.PI/180)*-1+this.CENTER,K=Math.abs(Y([D,k],[O,U],[T,q]))>Math.PI/2?0:1,tt=Y([T,q],[D,k],[O,U])>0?0:1;return `M ${this.CENTER},${this.CENTER} L ${D},${k} A ${this.RADIUS},${this.RADIUS} 0 ${K} ${tt} ${T},${q} z`}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=JD({type:m,selectors:[["svg-windsteer"]],viewQuery:function(e,t){e&1&&eg(t.rotatingDial,nt,5)(t.awaIndicator,it,5)(t.twaIndicator,at,5)(t.wptIndicator,ot,5)(t.setIndicator,rt,5)(t.cogIndicator,st,5),e&2&&Kw(6);},inputs:{compassHeading:[1,"compassHeading"],compassModeEnabled:[1,"compassModeEnabled"],courseOverGroundAngle:[1,"courseOverGroundAngle"],courseOverGroundEnabled:[1,"courseOverGroundEnabled"],trueWindAngle:[1,"trueWindAngle"],twsEnabled:[1,"twsEnabled"],twaEnabled:[1,"twaEnabled"],trueWindSpeed:[1,"trueWindSpeed"],trueWindSpeedUnit:[1,"trueWindSpeedUnit"],appWindAngle:[1,"appWindAngle"],awsEnabled:[1,"awsEnabled"],appWindSpeed:[1,"appWindSpeed"],appWindSpeedUnit:[1,"appWindSpeedUnit"],laylineAngle:[1,"laylineAngle"],closeHauledLineEnabled:[1,"closeHauledLineEnabled"],sailSetupEnabled:[1,"sailSetupEnabled"],windSectorEnabled:[1,"windSectorEnabled"],driftEnabled:[1,"driftEnabled"],driftSet:[1,"driftSet"],driftFlow:[1,"driftFlow"],waypointAngle:[1,"waypointAngle"],waypointEnabled:[1,"waypointEnabled"],trueWindMinHistoric:[1,"trueWindMinHistoric"],trueWindMidHistoric:[1,"trueWindMidHistoric"],trueWindMaxHistoric:[1,"trueWindMaxHistoric"]},decls:124,vars:44,consts:[["rotatingDial",""],["wptIndicator",""],["setIndicator",""],["cogIndicator",""],["awaIndicator",""],["twaIndicator",""],["viewBox","0 0 1000 1000"],["id","defs1"],["id","linearGradient18"],["offset","0",1,"boat",2,"stop-opacity","0.71372495"],["offset","1",1,"boat",2,"stop-opacity","0"],["id","linearGradient16"],["id","linearGradient13"],["offset","0.41176471",1,"drift-arrow",2,"stop-opacity","1"],["offset","1",1,"drift-arrow",2,"stop-opacity","0"],["id","swatch4"],["offset","0","id","stop4",2,"stop-color","#000000","stop-opacity","1"],["clipPathUnits","userSpaceOnUse","id","clipPath16"],["id","ellipse16","cx","311.24539","cy","-1516.3778","rx","194.27342","ry","181.83022",2,"display","inline","fill","#9a9300","fill-opacity","1","stroke","none","stroke-width","55","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],[0,"xlink","href","#linearGradient13","id","linearGradient14","x1","453.48047","y1","583.62891","x2","638.11328","y2","583.62891","gradientUnits","userSpaceOnUse","gradientTransform","matrix(0.00723393,1.2388183,-1.0538241,0.00615367,1111.2051,-179.73465)"],[0,"xlink","href","#linearGradient16","id","linearGradient17","x1","-502.04896","y1","439.35551","x2","-316","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],[0,"xlink","href","#linearGradient18","id","linearGradient19","x1","495.83999","y1","439.35551","x2","681.88895","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],["id","layerBackground",2,"display","inline"],["id","boat",2,"display","inline"],["id","portSide","d","M 498.75049,208.89453 A 267.09439,554.67401 0 0 1 678.45974,767.81661",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient19)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","starboardSide","d","m -499.13846,208.89453 a 267.09439,554.67401 0 0 1 179.70925,558.92208","transform","scale(-1,1)",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient17)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","layerCompass"],["id","fixedDial"],["id","portStarboardBackground","d","M 499.99997,10.520805 A 489.47916,489.47916 0 0 0 10.520805,499.99997 489.47916,489.47916 0 0 0 499.99997,989.47913 489.47916,489.47916 0 0 0 989.47913,499.99997 489.47916,489.47916 0 0 0 499.99997,10.520805 Z m 0,132.291665 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"fixed-dial-background",2,"display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","port","d","M 93.283801,265.18231 A 469.63541,469.63541 0 0 1 339.37522,58.687079",1,"port",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","starboard","d","M 660.62476,58.687069 A 469.63541,469.63541 0 0 1 906.71619,265.18228",1,"starboard",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","barsAndText",1,"contrast-stroke",2,"display","inline"],["d","m 416.35095,19.837399 2.78142,15.77426","id","path199",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 334.23173,41.658798 5.47834,15.051615","id","path200",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 260.27336,81.806174 12.55151,21.739856","id","path37",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 187.44581,126.00035 10.29591,12.2702","id","path197",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 127.23918,185.95785 12.27019,10.29591","id","path198",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 83.252815,257.66724 21.739865,12.55151","id","path166",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 42.289518,332.39273 15.05162,5.47835","id","path195",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 20.127799,414.42077 15.774251,2.78142","id","path196",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 17.879075,498.47765 H 42.982096","id","path167",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 19.776759,583.71187 15.77426,-2.78142","id","path193",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 41.598167,665.8311 15.051615,-5.47834","id","path194",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 81.668963,739.71246 103.40883,727.16095","id","path168",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 125.93981,812.61701 12.2702,-10.29591","id","path191",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 185.89732,872.82365 10.29591,-12.27019","id","path192",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 257.53004,916.73298 12.55151,-21.73985","id","path169",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 332.33219,957.7732 5.47835,-15.05162","id","path189",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 414.36024,979.93493 2.78142,-15.77425","id","path190",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 498.34046,982.10672 V 957.0037","id","path170",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 583.65133,980.28596 580.86991,964.5117","id","path187",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 665.77057,958.46456 -5.47834,-15.05161","id","path188",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 739.57526,918.31683 727.02375,896.57698","id","path171",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 812.55647,874.12301 802.26056,861.85282","id","path185",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 872.76312,814.16551 860.49293,803.8696","id","path186",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 916.59579,742.45577 894.85593,729.90426","id","path172",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 957.71266,667.73063 -15.05161,-5.47834","id","path183",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 979.8744,585.70259 -15.77425,-2.78142","id","path184",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 981.96954,501.64535 -25.10304,10e-6","id","path173",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 980.22542,416.41149 -15.77425,2.78143","id","path181",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 958.40403,334.29226 -15.05161,5.47834","id","path182",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 918.17964,260.41055 -21.73986,12.55151","id","path174",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 874.06247,187.50636 -12.27018,10.29591","id","path180",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 817.34594,130.05494 -10.40259,12.17987","id","path179",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 742.31857,83.390025 729.76706,105.12988","id","path175",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 667.6701,42.350172 -5.47834,15.051615","id","path178",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 585.64206,20.188432 -2.78142,15.77425","id","path176",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 501.50816,18.016286 V 43.119307","id","path177",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["cx","500","cy","500","r","404",1,"rotating-dial-Backplate"],["id","dialLabelsCompass"],["id","dialLabelsPortStbd"],["id","LayerLayline"],["id","PortLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","StbdLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","LayerWindShift"],["id","portSectorShift",1,"wind-sector-port",2,"fill-opacity","0.5","stroke","none"],["id","StbdSectorShift",1,"wind-sector-stbd",2,"fill-opacity","0.5","stroke","none"],["clip-path","url(#clipPath16)","d","m 416.36313,-1521.3937 c 371.15015,24.6522 731.95257,192.9774 983.98757,467.456 227.2972,244.24389 363.1732,572.3808 369.4045,906.42978 15.9331,499.10271 -269.2071,986.17861 -700.5178,1232.88522 -485.08308,290.4843 -1134.555606,269.7346 -1599.2788,-52.7169 -404.5062,-269.24461 -653.2224,-759.35388 -614.1746,-1245.84043 30.2148,-487.61814 344.18931,-937.89997 780.52695,-1152.15867 176.96718,-89.2092 371.8823084,-142.3103 569.54914,-156.0363","transform","matrix(0.28310615,0,0,0.32000828,411.88452,661.64815)",1,"next-waypoint-bar",2,"display","inline","fill","none","stroke-width","30","stroke-miterlimit","0"],["id","path6341","cx","500","cy","175.00002","rx","17.361122","ry","17.361118",1,"next-waypoint",2,"display","inline","fill","none","stroke-width","15.2778","stroke-dasharray","none"],["id","setArrow","d","m 563.93337,480.60403 -64.4901,-94.9673 -63.37665,95.71396 58.48691,-30.71299 0.77713,133.08346 c 0.0992,16.99331 2.52916,30.65913 5.44822,30.64209 2.91911,-0.0171 5.18926,-13.71032 5.09001,-30.70362 l -0.77782,-133.20444 z",2,"fill","url(#linearGradient14)","stroke","none","stroke-width","1.18648"],["id","layerCounter"],["id","twsCounter"],[0,"xml","space","preserve","x","904.27722","y","150.88913","id","text43",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","903.84814","y","114.73512","id","text42",1,"true-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","905.25897","y","52.894646","id","text41",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","awsCounter"],[0,"xml","space","preserve","x","94.554222","y","150.88913","id","text39",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","94.580925","y","114.63747","id","text40",1,"app-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","95.967644","y","52.894646","id","text39-7",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","layerCurrent"],["id","text11",0,"xml","space","preserve","x","499.78842","y","523.55145",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["id","layerIndicators",2,"display","inline"],["d","m 506.20767,172.99458 a 6.3888631,8.8250643 0 0 1 -6.38888,8.82508 6.3888631,8.8250643 0 0 1 -6.38888,-8.82508 6.3888631,8.8250643 0 0 1 6.38888,-8.82509 6.3888631,8.8250643 0 0 1 6.38888,8.82509 z M 476.25472,30.811298 493.47058,13.265068 c 3.6173,-3.6867571 9.44162,-3.6867571 13.05892,0 l 17.21586,17.546106 c 3.6173,3.686743 3.6173,9.622786 0,13.309544 l -17.21595,17.54623 c -3.61721,3.686757 -9.44153,3.686757 -13.05893,0 L 476.25472,44.120841 c -3.6174,-3.686743 -3.6174,-9.622924 0,-13.309543 z m 17.20533,-16.510116 h 12.77766 V 173.26408 h -12.77766 z",1,"course-over-ground",2,"stroke-width","14.7329","stroke-linecap","square"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.7935953,0,0,0.92686935,101.84848,11.000842)",1,"app-wind",2,"display","inline","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110",1,"card-color",2,"font-weight","bold","font-size","70px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.60410307,0,0,0.70555435,196.91787,21.152867)",1,"true-wind",2,"display","inline","stroke","none","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110","id","text10",1,"card-color",2,"font-weight","bold","font-size","60px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["id","layerHeading",2,"display","inline"],["id","rect1","width","256.47919","height","108.5428","x","371.76041","y","10.805443","rx","23.757372",1,"heading-background",2,"stroke-width","4.43107","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","0.509946"],["x","511.29395","y","102.86786",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","106.667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","5","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],[0,"xml","space","preserve","x","181.91386","y","284.25186","id","text3","transform","rotate(-30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan3","x","181.91386","y","284.25186",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-183.53558","y","283.74811","id","text14","transform","rotate(-60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan14","x","-183.53558","y","283.74811",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-499.70761","y","100.95312","id","text15","transform","rotate(-90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan15","x","-499.70761","y","100.95312",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.66119","y","-216.36243","id","text16","transform","rotate(-120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["x","-681.66119","y","-216.36243","id","tspan25",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.06616","y","-581.71271","id","text17","transform","rotate(-150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan17","x","-681.06616","y","-581.71271",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-498.3313","y","-897.40875","id","text18","transform","scale(-1)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan18","x","-498.3313","y","-897.40875",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-184.41313","y","-1080.8452","id","text19","transform","rotate(150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan19","x","-184.41313","y","-1080.8452",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","181.57225","y","-1080.8853","id","text20","transform","rotate(120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan20","x","181.57225","y","-1080.8853",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","501.42661","y","-896.93701","id","text21","transform","rotate(90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan21","x","501.42661","y","-896.93701",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","682.35815","y","-579.63336","id","text22","transform","rotate(60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan22","x","682.35815","y","-579.63336",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","681.81525","y","-214.27321","id","text23","transform","rotate(30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan23","x","681.81525","y","-214.27321",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","500.15503","y","101.96342","id","text24",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan24","x","500.15503","y","101.96342",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"]],template:function(e,t){e&1&&(wd(),dl(0,"svg",6)(1,"defs",7)(2,"linearGradient",8),Uh(3,"stop",9)(4,"stop",10),fl(),dl(5,"linearGradient",11),Uh(6,"stop",9)(7,"stop",10),fl(),dl(8,"linearGradient",12),Uh(9,"stop",13)(10,"stop",14),fl(),dl(11,"linearGradient",15),Uh(12,"stop",16),fl(),dl(13,"clipPath",17),Uh(14,"ellipse",18),fl(),Uh(15,"linearGradient",19)(16,"linearGradient",20)(17,"linearGradient",21),fl(),dl(18,"g",22)(19,"g",23),Uh(20,"path",24)(21,"path",25),fl()(),dl(22,"g",26)(23,"g",27),Uh(24,"path",28)(25,"path",29)(26,"path",30),fl(),dl(27,"g",null,0)(29,"g",31),Uh(30,"path",32)(31,"path",33)(32,"path",34)(33,"path",35)(34,"path",36)(35,"path",37)(36,"path",38)(37,"path",39)(38,"path",40)(39,"path",41)(40,"path",42)(41,"path",43)(42,"path",44)(43,"path",45)(44,"path",46)(45,"path",47)(46,"path",48)(47,"path",49)(48,"path",50)(49,"path",51)(50,"path",52)(51,"path",53)(52,"path",54)(53,"path",55)(54,"path",56)(55,"path",57)(56,"path",58)(57,"path",59)(58,"path",60)(59,"path",61)(60,"path",62)(61,"path",63)(62,"path",64)(63,"path",65)(64,"path",66)(65,"path",67)(66,"circle",68),_w(67,lt,37,0,":svg:g",69)(68,dt,37,0,":svg:g",70),fl(),dl(69,"g",71),Uh(70,"path",72)(71,"path",73),fl(),dl(72,"g",74),Uh(73,"path",75)(74,"path",76),fl(),dl(75,"g",null,1),Uh(77,"path",77)(78,"ellipse",78),fl(),dl(79,"g",null,2),Uh(81,"path",79),fl()()(),dl(82,"g",80)(83,"g",81)(84,"text",82),TT(85),fl(),dl(86,"text",83),TT(87),HT(88,"number"),fl(),dl(89,"text",84),TT(90,"TWS"),fl()(),dl(91,"g",85)(92,"text",86),TT(93),fl(),dl(94,"text",87),TT(95),HT(96,"number"),fl(),dl(97,"text",88),TT(98,"AWS"),fl()()(),dl(99,"g",89)(100,"text",90),TT(101),HT(102,"number"),fl()(),dl(103,"g",91)(104,"g",null,3),Uh(106,"path",92),fl(),dl(107,"g",null,4),Uh(109,"path",93),dl(110,"text",94),TT(111,"A"),fl()(),dl(112,"g",null,5),Uh(114,"path",95),dl(115,"text",96),TT(116,"T"),fl()()(),dl(117,"g",97),Uh(118,"rect",98),dl(119,"text",99)(120,"tspan"),TT(121),dl(122,"tspan"),TT(123,"\xB0"),fl()()()()()),e&2&&(EE(67),Mw(t.compassModeEnabled()?67:68),EE(2),ig("display",t.closeHauledLineEnabled()?"inline":"none"),EE(),ig("display",t.appWindAngle()!=null?"inline":"none"),Hh("d",t.closeHauledLineStbdPath()),EE(),ig("display",t.appWindAngle()!=null?"inline":"none"),Hh("d",t.closeHauledLinePortPath()),EE(),ig("display",t.windSectorEnabled()?"inline":"none"),EE(),ig("display",t.portWindSectorPath()?"inline":"none"),Hh("d",t.portWindSectorPath()||null),EE(),ig("display",t.stbdWindSectorPath()?"inline":"none"),Hh("d",t.stbdWindSectorPath()||null),EE(),Hh("display",t.waypointActive()&&t.compassModeEnabled()?"inline":"none"),EE(4),ig("display",t.driftEnabled()&&t.compassModeEnabled()?"inline":"none"),EE(4),ig("display",t.twsEnabled()?"inline":"none"),EE(2),gg(t.trueWindSpeedUnit()),EE(2),gg(UT(88,35,t.trueWindSpeed(),"1.1-1")??"--"),EE(4),ig("display",t.awsEnabled()?"inline":"none"),EE(2),gg(t.appWindSpeedUnit()),EE(2),gg(UT(96,38,t.appWindSpeed(),"1.1-1")??"--"),EE(4),ig("display",t.driftEnabled()&&t.compassModeEnabled()?"inline":"none"),EE(2),gg(UT(102,41,t.driftFlow(),"1.1-1")??"--"),EE(3),Hh("display",t.courseOverGroundEnabled()&&t.compassModeEnabled()?"inline":"none"),EE(8),ig("display",t.twaEnabled()?"inline":"none"),EE(9),gg(t.headingValue()));},dependencies:[es],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.fixed-dial-background[_ngcontent-%COMP%]{fill:var(--kip-grey-color)}.rotating-dial-Backplate[_ngcontent-%COMP%]{stroke:var(--mat-sys-background);fill:none;stroke-width:95}.starboard[_ngcontent-%COMP%]{stroke:var(--kip-starboard-color)}.port[_ngcontent-%COMP%]{stroke:var(--kip-port-color)}.heading-background[_ngcontent-%COMP%]{stroke:var(--kip-grey-color);fill:var(--kip-widget-card-background-color)}.boat[_ngcontent-%COMP%]{stop-color:var(--kip-grey-color)!important}.contrast-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}.contrast-stroke[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.card-color[_ngcontent-%COMP%]{fill:var(--kip-widget-card-background-color)}.true-wind[_ngcontent-%COMP%]{fill:var(--kip-yellow-color)}.true-wind-label[_ngcontent-%COMP%]{fill:var(--kip-yellow-dim-color)}.app-wind[_ngcontent-%COMP%]{fill:var(--kip-orange-color)}.app-wind-label[_ngcontent-%COMP%]{fill:var(--kip-orange-dim-color)}.course-over-ground[_ngcontent-%COMP%]{fill:var(--kip-pink-color)}.next-waypoint[_ngcontent-%COMP%]{stroke:var(--kip-green-color)}.next-waypoint-bar[_ngcontent-%COMP%]{stroke:var(--kip-grey-color)}.laylines[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.wind-sector-port[_ngcontent-%COMP%]{fill:var(--kip-port-color)}.wind-sector-stbd[_ngcontent-%COMP%]{fill:var(--kip-starboard-color)}.drift-arrow[_ngcontent-%COMP%]{stop-color:var(--kip-blue-color)}"]})}return m})();var St=(()=>{class m{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:false,filterSelfPaths:true,paths:{headingPath:{description:"True Heading",path:"self.navigation.headingTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},appWindAngle:{description:"Apparent Wind Angle",path:"self.environment.wind.angleApparent",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},appWindSpeed:{description:"Apparent Wind Speed",path:"self.environment.wind.speedApparent",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:1e3},trueWindAngle:{description:"True Wind Angle",path:"self.environment.wind.angleTrueWater",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},trueWindSpeed:{description:"True Wind Speed",path:"self.environment.wind.speedTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:1e3},courseOverGround:{description:"True Course Over Ground",path:"self.navigation.courseOverGroundTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",showConvertUnitTo:false,convertUnitTo:"deg",sampleTime:1e3},nextWaypointBearing:{description:"Next Waypoint True Bearing",path:"self.navigation.course.calcValues.bearingTrue",source:"default",pathType:"number",isPathConfigurable:false,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},set:{description:"True Drift Set",path:"self.environment.current.setTrue",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:false,sampleTime:1e3},drift:{description:"Drift Speed Impact",path:"self.environment.current.drift",source:"default",pathType:"number",isPathConfigurable:true,pathRequired:false,showPathSkUnitsFilter:false,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:1e3}},compassModeEnabled:true,windSectorEnable:true,windSectorWindowSeconds:5,laylineEnable:true,laylineAngle:40,waypointEnable:true,courseOverGroundEnable:true,driftEnable:true,awsEnable:true,twsEnable:true,twaEnable:true,sailSetupEnable:false,enableTimeout:false,dataTimeout:5};runtime=w(p);stream=w(rt$1);cfg=Dt(()=>this.runtime.options()??m.DEFAULT_CONFIG);compassModeEnabledValue=Dt(()=>this.cfg().compassModeEnabled??false);courseOverGroundEnabledValue=Dt(()=>this.cfg().courseOverGroundEnable??false);twsEnabledValue=Dt(()=>this.cfg().twsEnable??false);twaEnabledValue=Dt(()=>this.cfg().twaEnable??false);awsEnabledValue=Dt(()=>this.cfg().awsEnable??false);laylineAngleValue=Dt(()=>this.cfg().laylineAngle??40);closeHauledLineEnabledValue=Dt(()=>this.cfg().laylineEnable??false);windSectorEnabledValue=Dt(()=>this.cfg().windSectorEnable??false);driftEnabledValue=Dt(()=>this.cfg().driftEnable??false);waypointEnabledValue=Dt(()=>this.cfg().waypointEnable??false);hasHeading=false;hasCOG=false;hasAWA=false;hasAWS=false;hasTWA=false;hasTWS=false;hasSet=false;hasDrift=false;hasWPT=false;currentHeading=vt(0);courseOverGroundAngle=vt(0);appWindAngle=vt(0);appWindSpeed=vt(0);appWindSpeedUnit=vt("");trueWindAngle=vt(0);trueWindSpeed=vt(0);trueWindSpeedUnit=vt("");driftFlow=vt(0);driftSet=vt(0);waypointAngle=vt(0);historicalWindDirection=[];trueWindMinHistoric=vt(void 0);trueWindMidHistoric=vt(void 0);trueWindMaxHistoric=vt(void 0);windSectorObservableSub=null;windSamples=[];windMinDeque=[];windMaxDeque=[];windSampleIndex=0;lastUnwrapped=null;lastSector={};DEG_EPSILON=1;SPEED_EPSILON=.1;constructor(){Fa(()=>{let e=this.cfg().paths;ge(()=>{this.appWindSpeedUnit.set(e?.appWindSpeed?.convertUnitTo??""),this.trueWindSpeedUnit.set(e?.trueWindSpeed?.convertUnitTo??""),this.registerStreams(),this.stopWindSectors(),this.startWindSectors();});});}onHeadingUpdate=n=>{let e=this.normalizeAngle(this.getPathValueOrZero(n));(!this.hasHeading||this.angleDelta(this.currentHeading(),e)>=this.DEG_EPSILON)&&(this.currentHeading.set(e),this.hasHeading=true);};onCOGUpdate=n=>{let e=this.normalizeAngle(this.getPathValueOrZero(n));(!this.hasCOG||this.angleDelta(this.courseOverGroundAngle(),e)>=this.DEG_EPSILON)&&(this.courseOverGroundAngle.set(e),this.hasCOG=true);};onDriftUpdate=n=>{let e=this.getPathValueOrZero(n);(!this.hasDrift||Math.abs(this.driftFlow()-e)>=this.SPEED_EPSILON)&&(this.driftFlow.set(e),this.hasDrift=true);};onSetUpdate=n=>{let e=this.normalizeAngle(this.getPathValueOrZero(n));(!this.hasSet||this.angleDelta(this.driftSet(),e)>=this.DEG_EPSILON)&&(this.driftSet.set(e),this.hasSet=true);};onWaypointUpdate=n=>{let e=n.data.value,t=this.normalizeAngle(e);(!this.hasWPT||this.angleDelta(this.waypointAngle(),t)>=this.DEG_EPSILON)&&(this.waypointAngle.set(t),this.hasWPT=true);};onAppWindAngle=n=>{let e=this.getPathValueOrZero(n),t=this.normalizeAngle(e);(!this.hasAWA||this.angleDelta(this.appWindAngle(),t)>=this.DEG_EPSILON)&&(this.appWindAngle.set(t),this.hasAWA=true,this.runtime.options()?.windSectorEnable&&this.addHistoricalWindDirection(this.normalizeAngle(e)));};onAppWindSpeed=n=>{let e=this.getPathValueOrZero(n);(!this.hasAWS||Math.abs(this.appWindSpeed()-e)>=this.SPEED_EPSILON)&&(this.appWindSpeed.set(e),this.hasAWS=true);};onTrueWindSpeed=n=>{let e=this.getPathValueOrZero(n);(!this.hasTWS||Math.abs(this.trueWindSpeed()-e)>=this.SPEED_EPSILON)&&(this.trueWindSpeed.set(e),this.hasTWS=true);};onTrueWindAngle=n=>{let e=this.cfg(),t=e.paths?.trueWindAngle?.path||"",o=ht(t,this.getPathValueOrZero(n),this.currentHeading(),!!e?.compassModeEnabled),r=this.normalizeAngle(o);(!this.hasTWA||this.angleDelta(this.trueWindAngle(),r)>=this.DEG_EPSILON)&&(this.trueWindAngle.set(r),this.hasTWA=true);};registerStreams(){this.runtime.options()&&(this.stream.observe("headingPath",this.onHeadingUpdate),this.stream.observe("courseOverGround",this.onCOGUpdate),this.stream.observe("drift",this.onDriftUpdate),this.stream.observe("set",this.onSetUpdate),this.stream.observe("nextWaypointBearing",this.onWaypointUpdate),this.stream.observe("appWindAngle",this.onAppWindAngle),this.stream.observe("appWindSpeed",this.onAppWindSpeed),this.stream.observe("trueWindSpeed",this.onTrueWindSpeed),this.stream.observe("trueWindAngle",this.onTrueWindAngle));}ngOnDestroy(){this.stopWindSectors();}startWindSectors(){if(this.windSamples=[],this.windMinDeque=[],this.windMaxDeque=[],this.windSampleIndex=0,this.lastUnwrapped=null,this.lastSector={},!this.cfg().windSectorEnable){this.trueWindMinHistoric.set(void 0),this.trueWindMidHistoric.set(void 0),this.trueWindMaxHistoric.set(void 0),this.lastSector={};return}this.windSectorObservableSub=ms(1e3).subscribe(()=>{this.historicalCleanup();});}addHistoricalWindDirection(n){let e=Date.now(),t=this.unwrapAngle(n),o=this.windSampleIndex++;for(this.windSamples.push({t:e,u:t,i:o});this.windMinDeque.length&&this.windMinDeque[this.windMinDeque.length-1].u>=t;)this.windMinDeque.pop();for(this.windMinDeque.push({i:o,u:t});this.windMaxDeque.length&&this.windMaxDeque[this.windMaxDeque.length-1].u<=t;)this.windMaxDeque.pop();this.windMaxDeque.push({i:o,u:t});}historicalCleanup(){if(!this.cfg().windSectorEnable)return;let n=Date.now()-(this.cfg().windSectorWindowSeconds??5)*1e3;for(;this.windSamples.length&&this.windSamples[0].t<n;){let k=this.windSamples.shift();if(!k)break;this.windMinDeque.length&&this.windMinDeque[0].i===k.i&&this.windMinDeque.shift(),this.windMaxDeque.length&&this.windMaxDeque[0].i===k.i&&this.windMaxDeque.shift();}if(!this.windSamples.length||!this.windMinDeque.length||!this.windMaxDeque.length){(this.trueWindMinHistoric()!==void 0||this.trueWindMidHistoric()!==void 0||this.trueWindMaxHistoric()!==void 0)&&(this.trueWindMinHistoric.set(void 0),this.trueWindMidHistoric.set(void 0),this.trueWindMaxHistoric.set(void 0),this.lastSector={});return}let e=this.windMinDeque[0].u,t=this.windMaxDeque[0].u,o=(e+t)/2,r=this.normalizeAngle(e),p=this.normalizeAngle(o),u=this.normalizeAngle(t),M=this.lastSector.min,A=this.lastSector.mid,W=this.lastSector.max;(M===void 0||this.angleDelta(M,r)>=this.DEG_EPSILON||A===void 0||this.angleDelta(A,p)>=this.DEG_EPSILON||W===void 0||this.angleDelta(W,u)>=this.DEG_EPSILON)&&(this.trueWindMinHistoric.set(r),this.trueWindMidHistoric.set(p),this.trueWindMaxHistoric.set(u),this.lastSector={min:r,mid:p,max:u});}getPathValueOrZero(n){return n.data.value==null?0:n.data.value}stopWindSectors(){this.windSectorObservableSub?.unsubscribe();}unwrapAngle(n){if(this.lastUnwrapped==null)return this.lastUnwrapped=n,n;let e=this.lastUnwrapped,t=(e%360+360)%360,o=(n-t+540)%360-180,r=e+o;return this.lastUnwrapped=r,r}normalizeAngle(n){return (n%360+360)%360}angleDelta(n,e){let t=(e-n+540)%360-180;return Math.abs(t)}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=JD({type:m,selectors:[["widget-wind-steer"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:1,vars:25,consts:[[3,"compassHeading","compassModeEnabled","courseOverGroundAngle","courseOverGroundEnabled","trueWindAngle","twsEnabled","twaEnabled","trueWindSpeed","trueWindSpeedUnit","appWindAngle","awsEnabled","appWindSpeed","appWindSpeedUnit","laylineAngle","closeHauledLineEnabled","windSectorEnabled","driftEnabled","driftFlow","driftSet","waypointAngle","waypointEnabled","trueWindMinHistoric","trueWindMidHistoric","trueWindMaxHistoric","sailSetupEnabled"]],template:function(e,t){e&1&&$h(0,"svg-windsteer",0),e&2&&Bh("compassHeading",t.currentHeading())("compassModeEnabled",t.compassModeEnabledValue())("courseOverGroundAngle",t.courseOverGroundAngle())("courseOverGroundEnabled",t.courseOverGroundEnabledValue())("trueWindAngle",t.trueWindAngle())("twsEnabled",t.twsEnabledValue())("twaEnabled",t.twaEnabledValue())("trueWindSpeed",t.trueWindSpeed())("trueWindSpeedUnit",t.trueWindSpeedUnit())("appWindAngle",t.appWindAngle())("awsEnabled",t.awsEnabledValue())("appWindSpeed",t.appWindSpeed())("appWindSpeedUnit",t.appWindSpeedUnit())("laylineAngle",t.laylineAngleValue())("closeHauledLineEnabled",t.closeHauledLineEnabledValue())("windSectorEnabled",t.windSectorEnabledValue())("driftEnabled",t.driftEnabledValue())("driftFlow",t.driftFlow())("driftSet",t.driftSet())("waypointAngle",t.waypointAngle())("waypointEnabled",t.waypointEnabledValue())("trueWindMinHistoric",t.trueWindMinHistoric())("trueWindMidHistoric",t.trueWindMidHistoric())("trueWindMaxHistoric",t.trueWindMaxHistoric())("sailSetupEnabled",t.runtime.options()?.sailSetupEnable??false);},dependencies:[J],encapsulation:2})}return m})();function mt(m,b){let n=(m+b)%360;return n<0&&(n+=360),n}function ht(m,b,n,e){return (m.includes("angleTrueWater")||m.includes("angleTrueGround"))&&e?mt(n,b):b}export{St as WidgetWindComponent,ht as computeTrueWindBaseAngle};
@@ -1,2 +1,2 @@
1
- import {d1 as Hj,w,du as p,dY as O,a as G,W as Wp,v as vt,D as Dt,F as Fa,dn as ge,cw as z,cv as G$1,J as JD,dC as x,dT as wg,_ as _w,P as Pi,k as Qh,X as xw,cs as Sw,u as ul,dU as NT,e as EE,M as Mw,t as pT,Y as Aw,dV as Vj,cn as wd,ci as dl,cp as Uh,cV as Td,T as TT,cj as fl,an as Hh,d as ig,bp as gl,s as sg,c as $h,g as qw,dX as xT,B as Bh,cS as pl,cT as hl,dx as n$1}from'./main-BAV5VDOD.js';import {u}from'./chunk-hd2_AKwt.js';import {c}from'./chunk-Dxlia2NE.js';var ne=(()=>{class o{data=Hj(null,{alias:"controlData"});theme=Hj(null);dimensions=Hj.required();toggleClick=Vj();ctrlLabelColor=vt("");ctrlStateColor=vt("");messageTxtColor=vt("");shouldEmergencyBlink=Dt(()=>(this.data()?.notificationState??"").toLowerCase()==="emergency");shouldAlarmBlink=Dt(()=>(this.data()?.notificationState??"").toLowerCase()==="alarm");constructor(){Fa(()=>{let t=this.data(),e=this.theme();!t||!e||ge(()=>{switch(t.notificationState){case n$1.Emergency:this.ctrlStateColor.set(e.zoneEmergency),this.messageTxtColor.set(e.background);break;case n$1.Alarm:this.ctrlStateColor.set(e.zoneAlarm),this.messageTxtColor.set(e.background);break;case n$1.Warn:this.ctrlStateColor.set(e.zoneWarn),this.messageTxtColor.set(e.background);break;case n$1.Alert:this.ctrlStateColor.set(e.zoneAlert),this.messageTxtColor.set(e.background);break;default:this.ctrlStateColor.set(e.background),this.messageTxtColor.set(c(t.color,e).dim);break}this.ctrlLabelColor.set(c(t.color,e).color);});});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=JD({type:o,selectors:[["app-svg-zone-states"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:12,vars:14,consts:[["viewBox","0 0 180 75","version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs9"],["id","zoneStateCtrl"],["id","touchRect","width","180","height","75","x","0","y","0","pointer-events","all",2,"display","inline","opacity","1","fill","transparent","fill-opacity","1","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","0"],["x","0","y","0","width","180","height","20"],["xmlns","http://www.w3.org/1999/xhtml",2,"width","180px","height","20px","display","flex","align-items","center","justify-content","center","font-weight","bold","font-size","14px","line-height","1.1","text-align","center","overflow","hidden","word-break","break-word","white-space","normal"],["id","outlineRect","x","6","y","22","width","168","height","43","rx","3.5","fill","none",2,"display","inline","opacity","1","mix-blend-mode","normals","stroke-width","1","stroke-dasharray","none","stroke-opacity","0.65"],["id","innerRect","x","7","y","23","width","166","height","41","rx","3.5",2,"display","inline","opacity","1","mix-blend-mode","normal","stroke","none","stroke-width","0"],["x","7","y","23","width","166","height","41"],["xmlns","http://www.w3.org/1999/xhtml",2,"width","166px","height","41px","display","flex","align-items","center","justify-content","center","font-weight","regular","font-size","12px","line-height","1.1","text-align","center","overflow","hidden","word-break","break-word","white-space","normal","padding","2px"]],template:function(e,i){e&1&&(wd(),dl(0,"svg",0),Uh(1,"defs",1),dl(2,"g",2),Uh(3,"rect",3),dl(4,"foreignObject",4),Td(),dl(5,"div",5),TT(6),fl()(),wd(),Uh(7,"rect",6)(8,"rect",7),dl(9,"foreignObject",8),Td(),dl(10,"div",9),TT(11),fl()()()()),e&2&&(Hh("height",i.dimensions().height)("width",i.dimensions().width),EE(5),ig("color",i.ctrlLabelColor()),EE(),gl(" ",i.data()?.ctrlLabel," "),EE(),Hh("stroke",i.ctrlLabelColor()),EE(),sg("emergency-blink-fill",i.shouldEmergencyBlink())("alarm-blink-fill",i.shouldAlarmBlink()),Hh("fill",i.ctrlStateColor()),EE(2),ig("color",i.messageTxtColor()),EE(),gl(" ",i.data()?.notificationMessage," "));},styles:["@keyframes _ngcontent-%COMP%_AlarmBlinkFill{0%,49%{opacity:1}50%,to{opacity:.6}}.alarm-blink-fill[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_AlarmBlinkFill 1s step-end infinite}@keyframes _ngcontent-%COMP%_EmergencyBlinkFill{0%,49%{opacity:1}50%,to{opacity:.1}}.emergency-blink-fill[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_EmergencyBlinkFill .3s step-end infinite}"]})}return o})();function se(o,f){if(o&1&&$h(0,"widget-title",1),o&2){let t=qw(),e=xT(0);Bh("text",(e==null?null:e.displayName)??"")("color",t.labelColor());}}function re(o,f){if(o&1&&$h(0,"app-svg-zone-states",4),o&2){let t=qw().$implicit,e=qw();Bh("controlData",t)("theme",e.theme())("dimensions",e.ctrlDimensions());}}function le(o,f){if(o&1&&(pl(0),_w(1,re,1,3,"app-svg-zone-states",4),hl()),o&2){let e=f.$implicit;EE(),Mw((e.type)==="4"?1:-1);}}function ce(o,f){o&1&&$h(0,"div",3);}var _e=(()=>{class o{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={displayName:"Zones State Panel Label",showLabel:true,filterSelfPaths:true,paths:[],enableTimeout:false,dataTimeout:5,color:"contrast",putEnable:false,zonesOnlyPaths:true,putMomentary:false,multiChildCtrls:[]};runtime=w(p,{optional:true});notificationsService=w(O);dashboard=w(G);notifications=Wp(this.notificationsService.observeNotifications());zonesControls=vt([]);labelColor=vt("");noTitleClass=Dt(()=>this.runtime?.options()?.showLabel===false?"widgets-container-no-title":"widgets-container");pathIdToNotificationPath=new Map;hostSize=vt(null);ctrlDimensions=Dt(()=>{let t=this.hostSize();if(!t)return {width:0,height:0};let e=Math.max(1,this.zonesControls().length),i=t.height/e,n=75*t.width/180,s=Math.min(n,i);return {width:t.width,height:s}});constructor(){Fa(()=>{let t=this.theme(),e=this.runtime?.options();!t||!e||ge(()=>{this.labelColor.set(c(e.color??"contrast",t).dim);});}),Fa(()=>{let t=this.runtime?.options();t&&ge(()=>{let e=(t.multiChildCtrls||[]).map(n=>z(G$1({},n),{isNumeric:n.isNumeric??false}));this.zonesControls.set(e);let i=t.paths;if(i?.length){this.pathIdToNotificationPath.clear();for(let n of i){if(!n?.pathID||!n?.path)continue;let s=n.path.replace(/^self(\.|$)/,"notifications$1");this.pathIdToNotificationPath.set(n.pathID,s);}this.applyNotificationsSnapshot(this.notifications());}});}),Fa(()=>{let t=this.notifications();ge(()=>this.applyNotificationsSnapshot(t));});}applyNotificationsSnapshot(t){if(!this.pathIdToNotificationPath.size||!t?.length)return;let e=new Map;for(let i of t)i?.path&&e.set(i.path,i);this.zonesControls.update(i=>{let n=null;for(let s=0;s<i.length;s++){let u=i[s],B=this.pathIdToNotificationPath.get(u.pathID),_=B?e.get(B):void 0;if(!_)continue;let I=_.value?.state,A=_.value?.message;u.notificationState===I&&u.notificationMessage===A||(n||(n=[...i]),n[s]=z(G$1({},u),{notificationState:I,notificationMessage:A}));}return n??i});}onResized(t){this.hostSize.set({width:t.contentRect.width,height:t.contentRect.height});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=JD({type:o,selectors:[["widget-zones-state-panel"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:7,vars:5,consts:[["widgetContainer",""],[3,"text","color"],["kipResizeObserver","",3,"resizeChange"],[1,"widgetOverlay"],[1,"svg-widget",3,"controlData","theme","dimensions"]],template:function(e,i){if(e&1&&(wg(0),_w(1,se,1,2,"widget-title",1),Pi(2,"div",2,0),Qh("resizeChange",function(s){return i.onResized(s)}),xw(4,le,2,1,"ng-container",null,Sw),ul(),_w(6,ce,1,0,"div",3)),e&2){let n=NT(i.runtime==null?null:i.runtime.options());EE(),Mw(n?.showLabel?1:-1),EE(),pT(i.noTitleClass()),EE(2),Aw(i.zonesControls()),EE(2),Mw(i.dashboard.isDashboardStatic()?-1:6);}},dependencies:[u,ne,x],styles:[".widgets-container[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20}.widgets-container-no-title[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;padding:6px 0 0;height:100%;width:100%;overflow:hidden;z-index:20}.svg-widget[_ngcontent-%COMP%]{display:flex}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}"]})}return o})();
1
+ import {d1 as Hj,w,du as p,dY as O,a as G,W as Wp,v as vt,D as Dt,F as Fa,dn as ge,cw as z,cv as G$1,J as JD,dC as x,dT as wg,_ as _w,P as Pi,k as Qh,X as xw,cs as Sw,u as ul,dU as NT,e as EE,M as Mw,t as pT,Y as Aw,dV as Vj,cn as wd,ci as dl,cp as Uh,cV as Td,T as TT,cj as fl,an as Hh,d as ig,bp as gl,s as sg,c as $h,g as qw,dX as xT,B as Bh,cS as pl,cT as hl,dx as n$1}from'./main-BNR44HGB.js';import {u}from'./chunk-BgyxBAyq.js';import {c}from'./chunk-D_wrJJxl.js';var ne=(()=>{class o{data=Hj(null,{alias:"controlData"});theme=Hj(null);dimensions=Hj.required();toggleClick=Vj();ctrlLabelColor=vt("");ctrlStateColor=vt("");messageTxtColor=vt("");shouldEmergencyBlink=Dt(()=>(this.data()?.notificationState??"").toLowerCase()==="emergency");shouldAlarmBlink=Dt(()=>(this.data()?.notificationState??"").toLowerCase()==="alarm");constructor(){Fa(()=>{let t=this.data(),e=this.theme();!t||!e||ge(()=>{switch(t.notificationState){case n$1.Emergency:this.ctrlStateColor.set(e.zoneEmergency),this.messageTxtColor.set(e.background);break;case n$1.Alarm:this.ctrlStateColor.set(e.zoneAlarm),this.messageTxtColor.set(e.background);break;case n$1.Warn:this.ctrlStateColor.set(e.zoneWarn),this.messageTxtColor.set(e.background);break;case n$1.Alert:this.ctrlStateColor.set(e.zoneAlert),this.messageTxtColor.set(e.background);break;default:this.ctrlStateColor.set(e.background),this.messageTxtColor.set(c(t.color,e).dim);break}this.ctrlLabelColor.set(c(t.color,e).color);});});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=JD({type:o,selectors:[["app-svg-zone-states"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:12,vars:14,consts:[["viewBox","0 0 180 75","version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs9"],["id","zoneStateCtrl"],["id","touchRect","width","180","height","75","x","0","y","0","pointer-events","all",2,"display","inline","opacity","1","fill","transparent","fill-opacity","1","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","0"],["x","0","y","0","width","180","height","20"],["xmlns","http://www.w3.org/1999/xhtml",2,"width","180px","height","20px","display","flex","align-items","center","justify-content","center","font-weight","bold","font-size","14px","line-height","1.1","text-align","center","overflow","hidden","word-break","break-word","white-space","normal"],["id","outlineRect","x","6","y","22","width","168","height","43","rx","3.5","fill","none",2,"display","inline","opacity","1","mix-blend-mode","normals","stroke-width","1","stroke-dasharray","none","stroke-opacity","0.65"],["id","innerRect","x","7","y","23","width","166","height","41","rx","3.5",2,"display","inline","opacity","1","mix-blend-mode","normal","stroke","none","stroke-width","0"],["x","7","y","23","width","166","height","41"],["xmlns","http://www.w3.org/1999/xhtml",2,"width","166px","height","41px","display","flex","align-items","center","justify-content","center","font-weight","regular","font-size","12px","line-height","1.1","text-align","center","overflow","hidden","word-break","break-word","white-space","normal","padding","2px"]],template:function(e,i){e&1&&(wd(),dl(0,"svg",0),Uh(1,"defs",1),dl(2,"g",2),Uh(3,"rect",3),dl(4,"foreignObject",4),Td(),dl(5,"div",5),TT(6),fl()(),wd(),Uh(7,"rect",6)(8,"rect",7),dl(9,"foreignObject",8),Td(),dl(10,"div",9),TT(11),fl()()()()),e&2&&(Hh("height",i.dimensions().height)("width",i.dimensions().width),EE(5),ig("color",i.ctrlLabelColor()),EE(),gl(" ",i.data()?.ctrlLabel," "),EE(),Hh("stroke",i.ctrlLabelColor()),EE(),sg("emergency-blink-fill",i.shouldEmergencyBlink())("alarm-blink-fill",i.shouldAlarmBlink()),Hh("fill",i.ctrlStateColor()),EE(2),ig("color",i.messageTxtColor()),EE(),gl(" ",i.data()?.notificationMessage," "));},styles:["@keyframes _ngcontent-%COMP%_AlarmBlinkFill{0%,49%{opacity:1}50%,to{opacity:.6}}.alarm-blink-fill[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_AlarmBlinkFill 1s step-end infinite}@keyframes _ngcontent-%COMP%_EmergencyBlinkFill{0%,49%{opacity:1}50%,to{opacity:.1}}.emergency-blink-fill[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_EmergencyBlinkFill .3s step-end infinite}"]})}return o})();function se(o,f){if(o&1&&$h(0,"widget-title",1),o&2){let t=qw(),e=xT(0);Bh("text",(e==null?null:e.displayName)??"")("color",t.labelColor());}}function re(o,f){if(o&1&&$h(0,"app-svg-zone-states",4),o&2){let t=qw().$implicit,e=qw();Bh("controlData",t)("theme",e.theme())("dimensions",e.ctrlDimensions());}}function le(o,f){if(o&1&&(pl(0),_w(1,re,1,3,"app-svg-zone-states",4),hl()),o&2){let e=f.$implicit;EE(),Mw((e.type)==="4"?1:-1);}}function ce(o,f){o&1&&$h(0,"div",3);}var _e=(()=>{class o{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={displayName:"Zones State Panel Label",showLabel:true,filterSelfPaths:true,paths:[],enableTimeout:false,dataTimeout:5,color:"contrast",putEnable:false,zonesOnlyPaths:true,putMomentary:false,multiChildCtrls:[]};runtime=w(p,{optional:true});notificationsService=w(O);dashboard=w(G);notifications=Wp(this.notificationsService.observeNotifications());zonesControls=vt([]);labelColor=vt("");noTitleClass=Dt(()=>this.runtime?.options()?.showLabel===false?"widgets-container-no-title":"widgets-container");pathIdToNotificationPath=new Map;hostSize=vt(null);ctrlDimensions=Dt(()=>{let t=this.hostSize();if(!t)return {width:0,height:0};let e=Math.max(1,this.zonesControls().length),i=t.height/e,n=75*t.width/180,s=Math.min(n,i);return {width:t.width,height:s}});constructor(){Fa(()=>{let t=this.theme(),e=this.runtime?.options();!t||!e||ge(()=>{this.labelColor.set(c(e.color??"contrast",t).dim);});}),Fa(()=>{let t=this.runtime?.options();t&&ge(()=>{let e=(t.multiChildCtrls||[]).map(n=>z(G$1({},n),{isNumeric:n.isNumeric??false}));this.zonesControls.set(e);let i=t.paths;if(i?.length){this.pathIdToNotificationPath.clear();for(let n of i){if(!n?.pathID||!n?.path)continue;let s=n.path.replace(/^self(\.|$)/,"notifications$1");this.pathIdToNotificationPath.set(n.pathID,s);}this.applyNotificationsSnapshot(this.notifications());}});}),Fa(()=>{let t=this.notifications();ge(()=>this.applyNotificationsSnapshot(t));});}applyNotificationsSnapshot(t){if(!this.pathIdToNotificationPath.size||!t?.length)return;let e=new Map;for(let i of t)i?.path&&e.set(i.path,i);this.zonesControls.update(i=>{let n=null;for(let s=0;s<i.length;s++){let u=i[s],B=this.pathIdToNotificationPath.get(u.pathID),_=B?e.get(B):void 0;if(!_)continue;let I=_.value?.state,A=_.value?.message;u.notificationState===I&&u.notificationMessage===A||(n||(n=[...i]),n[s]=z(G$1({},u),{notificationState:I,notificationMessage:A}));}return n??i});}onResized(t){this.hostSize.set({width:t.contentRect.width,height:t.contentRect.height});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=JD({type:o,selectors:[["widget-zones-state-panel"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:7,vars:5,consts:[["widgetContainer",""],[3,"text","color"],["kipResizeObserver","",3,"resizeChange"],[1,"widgetOverlay"],[1,"svg-widget",3,"controlData","theme","dimensions"]],template:function(e,i){if(e&1&&(wg(0),_w(1,se,1,2,"widget-title",1),Pi(2,"div",2,0),Qh("resizeChange",function(s){return i.onResized(s)}),xw(4,le,2,1,"ng-container",null,Sw),ul(),_w(6,ce,1,0,"div",3)),e&2){let n=NT(i.runtime==null?null:i.runtime.options());EE(),Mw(n?.showLabel?1:-1),EE(),pT(i.noTitleClass()),EE(2),Aw(i.zonesControls()),EE(2),Mw(i.dashboard.isDashboardStatic()?-1:6);}},dependencies:[u,ne,x],styles:[".widgets-container[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20}.widgets-container-no-title[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;padding:6px 0 0;height:100%;width:100%;overflow:hidden;z-index:20}.svg-widget[_ngcontent-%COMP%]{display:flex}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}"]})}return o})();
2
2
  export{_e as WidgetZonesStatePanelComponent};
@@ -1 +1 @@
1
- import {w as w$1,dl as E,dm as G,N,aY as xe,bu as ut,dd as $e,$ as $j,W as Wp,v as vt,bG as Bj,D as Dt,F as Fa,dn as ge,a$ as Zr,dp as n,cw as z,cv as G$1,b0 as Wl,J as JD,dq as Ht,di as jt,de as Nt,df as Vt,dr as Ot,ds as bt,dt as nt,O as Op,o as eu,y as yt,b as wt,b2 as Ln,b5 as Pn,b9 as rn,P as Pi,T as TT,u as ul,bi as Eg,k as Qh,bk as cD,_ as _w,e as EE,aA as gg,B as Bh,bm as Ig,bo as lD,M as Mw,f as eg,K as Kw,g as qw,bp as gl,c as $h,bj as ST}from'./main-BAV5VDOD.js';import'./chunk-By8ZVvDx.js';var y={"widget-bms":{expansionMode:"bms-battery-tree",metricOrder:["soc","current"],metrics:{soc:{metric:"soc",axisId:"ySoc",pathSuffixes:[".capacity.stateOfCharge",".stateOfCharge"],transform:a=>a*100},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{ySoc:{axisId:"ySoc",position:"left",title:"SoC (%)",tickSuffix:"%",min:0,max:100},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"soc",axisId:"ySoc",regex:/^electrical\.batteries\.([^.]+)\.(?:capacity\.)?stateOfCharge$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.batteries\.([^.]+)\.current$/i}]},"widget-solar-charger":{expansionMode:"solar-tree",metricOrder:["panelPower","current"],metrics:{panelPower:{metric:"panelPower",axisId:"yPower",pathSuffixes:[".panelPower"],transform:a=>a/1e3},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yPower:{axisId:"yPower",position:"left",title:"Power (kW)",tickSuffix:"kW"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"current",axisId:"yCurrent",regex:/^electrical\.solar\.([^.]+)\.current$/i},{metric:"panelPower",axisId:"yPower",regex:/^electrical\.solar\.([^.]+)\.panelPower$/i}]},"widget-charger":{expansionMode:"charger-tree",metricOrder:["voltage","current"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.chargers\.([^.]+)\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.chargers\.([^.]+)\.current$/i}]},"widget-inverter":{expansionMode:"inverter-tree",metricOrder:["voltage","current"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.inverters\.([^.]+)\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.inverters\.([^.]+)\.current$/i}]},"widget-alternator":{expansionMode:"alternator-tree",metricOrder:["voltage","current"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.alternators\.([^.]+)\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.alternators\.([^.]+)\.current$/i}]},"widget-ac":{expansionMode:"ac-tree",metricOrder:["voltage","current","frequency"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".line1.voltage",".line2.voltage",".line3.voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".line1.current",".line2.current",".line3.current"],transform:a=>a},frequency:{metric:"frequency",axisId:"yFrequency",pathSuffixes:[".line1.frequency",".line2.frequency",".line3.frequency"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false},yFrequency:{axisId:"yFrequency",position:"left",title:"Frequency (Hz)",tickSuffix:"Hz",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.ac\.([^.]+)\.line[123]\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.ac\.([^.]+)\.line[123]\.current$/i},{metric:"frequency",axisId:"yFrequency",regex:/^electrical\.ac\.([^.]+)\.line[123]\.frequency$/i}]}},Ie={"bms-battery-tree":"widget-bms","solar-tree":"widget-solar-charger","charger-tree":"widget-charger","inverter-tree":"widget-inverter","alternator-tree":"widget-alternator","ac-tree":"widget-ac"};function Me(a){return !!a&&a in y}function D(a){return y[a]}function w(a){let l=Ie[a],e=y[l],t=[];return e.metricOrder.forEach(r=>{let i=e.metrics[r];i&&i.pathSuffixes.forEach(n=>{t.includes(n)||t.push(n);});}),t}function ve(a,l){let e=y[a.widgetType].metrics[a.metric];return e?e.transform(l):l}function P(a){let l=y[a],e=[];return l.metricOrder.forEach(t=>{let r=l.metrics[t]?.axisId;!r||e.includes(r)||e.push(r);}),e.map(t=>l.axes[t]).filter(t=>!!t)}function De(a,l){if(!Me(a))return null;let e=P(a),t=new Set(e.map(i=>i.axisId));return t.size===0?null:l.some(i=>!!i&&t.has(i))?a:null}function Se(a){for(let[l,e]of Object.entries(y))for(let t of e.pathRules){let r=t.regex.exec(a);if(r)return {widgetType:l,entityId:r[1],metric:t.metric,axisId:t.axisId}}return null}var Ae=["historyCanvas"];function we(a,l){a&1&&(Pi(0,"p",12),TT(1,"Loading historical data\u2026"),ul());}function Pe(a,l){if(a&1&&(Pi(0,"p",13),TT(1),ul()),a&2){let e=qw();EE(),gl("503: ",e.error());}}function Te(a,l){a&1&&(Pi(0,"p",12),TT(1,"No historical data is available for this widget. If you are not using the built-in KIP History API provider, validate your plugin configuration supports the widget's path and try again."),ul());}function _e(a,l){a&1&&(Pi(0,"div",14),$h(1,"canvas",null,0),ul());}var rt=(()=>{class a{historyApiClient=w$1(E);historyMapper=w$1(G);app=w$1(N);destroyRef=w$1(xe);units=w$1(ut);data=w$1($e);chartCanvas=$j("historyCanvas");theme=Wp(this.app.cssThemeColorRoles$,{requireSync:true});loading=vt(true);error=vt(null);datasetCount=vt(0);selectedPeriod=Bj("PT1H");hasNoData=Dt(()=>!this.loading()&&!this.error()&&this.datasetCount()===0);chart=null;viewReady=false;pendingDatasets=[];dualAxisDescriptorCache=new Map;constructor(){Fa(()=>{let e=this.chartCanvas(),t=this.loading(),r=this.datasetCount();!e||t||r<=0||ge(()=>{this.tryRenderChart();});});}loadHistoryDatasets(){return Zr(this,null,function*(){this.loading.set(true),this.error.set(null),this.dualAxisDescriptorCache.clear();try{let e=yield this.resolveQueryableSeriesDefinitions(),t=yield Promise.all(e.map((r,i)=>this.buildDatasetForSeries(r,i)));this.pendingDatasets=t.filter(r=>!!r),this.datasetCount.set(this.pendingDatasets.length),this.tryRenderChart();}catch(e){console.error("[WidgetHistoryChartDialogComponent] Failed to load widget history datasets:",e),this.error.set("Unable to load historical data for this widget."),this.pendingDatasets=[],this.datasetCount.set(0);}finally{this.loading.set(false),queueMicrotask(()=>{this.tryRenderChart();});}})}ngOnInit(){this.loadHistoryDatasets(),this.destroyRef.onDestroy(()=>{this.chart?.destroy(),this.chart=null;});}ngAfterViewInit(){this.onCanvasReady();}ngOnDestroy(){this.chart?.destroy(),this.chart=null;}onCanvasReady(){this.viewReady=true,this.tryRenderChart();}buildDatasetForSeries(e,t){return Zr(this,null,function*(){let r=e.path;if(!r)return null;let i=this.resolveDuration(e),n=this.resolveResolutionSeconds(i),o=this.buildHistoryRequestCandidates(r,e.context),s=this.describeDualAxisSeries(r),u=[],x=this.normalizeHistoryPath(r),T=this.resolveConvertUnitTo(r);for(let I of o){let k=yield this.historyApiClient.getValues({paths:I.paths,context:I.context,duration:i,resolution:n});if(!k?.data?.length)continue;if(u=this.historyMapper.mapValuesToChartDatapoints(k,{unit:"number",domain:"scalar"}).map(O=>{let m=O.data.value;return typeof m=="number"&&Number.isFinite(m)&&(s?m=ve(s,m):T&&(m=this.units.convertToUnit(T,m)??m)),{x:O.timestamp,y:m}}),u.length){x=I.labelPath;break}}if(!u.length)return null;let _=this.resolveSeriesColor(t,s),be=e.source?` (${e.source})`:"";return {label:`${x}${be}`,data:u,borderColor:_,backgroundColor:_,pointRadius:0,borderWidth:2,tension:.25,yAxisID:s?.axisId??"y",borderDash:this.isDualAxisDashedSeries(s)?[6,4]:void 0,fill:false}})}describeDualAxisSeries(e){let t=this.normalizeHistoryPath(e??"");if(!t.length)return null;if(this.dualAxisDescriptorCache.has(t))return this.dualAxisDescriptorCache.get(t)??null;let r=Se(t);return this.dualAxisDescriptorCache.set(t,r),r}resolveSeriesColor(e,t){let r=this.getSeriesPalette();return t?this.getDualAxisMetricColor(t.widgetType,t.metric):r[e%r.length]}getSeriesPalette(){let e=this.data.widget?.config?.color||"blue",t=this.resolveThemeColor(e),r=[this.theme().green,this.theme().orange,this.theme().pink,this.theme().purple,this.theme().yellow,this.theme().grey,this.theme().blue,this.theme().contrast],i=r.findIndex(n=>n?.toLowerCase()===t.toLowerCase());return i!==-1?r=[r[i],...r.slice(0,i),...r.slice(i+1)]:r=[t,...r],r}resolveThemeColor(e){let t=this.theme()[e];return typeof t=="string"&&t.length>0?t:e}isDualAxisDashedSeries(e){return e?this.getDualAxisEntityOrderIndex(e.entityId,e.widgetType)%2===1:false}getDualAxisEntityOrderIndex(e,t){let r=[];this.data.seriesDefinitions.forEach(n=>{let o=this.describeDualAxisSeries(n.path);!o||o.widgetType!==t||r.includes(o.entityId)||r.push(o.entityId);});let i=r.indexOf(e);return i>=0?i:0}getDualAxisMetricColor(e,t){let r=this.getSeriesPalette(),n=D(e).metricOrder.indexOf(t),o=n>=0?n:0;return r[o%r.length]}buildHistoryRequestCandidates(e,t){let r=this.normalizeHistoryPath(e),i=this.resolveHistoryContext(e,t),n=[r].filter(s=>s.length>0),o=[];return n.forEach(s=>{o.push({paths:`${s}:avg`,context:i,labelPath:this.normalizeHistoryPath(s)});}),o}resolveQueryableSeriesDefinitions(){return Zr(this,null,function*(){let e=[];for(let t of this.data.seriesDefinitions){let r=yield this.expandTemplateSeries(t);e.push(...r);}return this.sortExpandedSeries(e)})}sortExpandedSeries(e){return e.some(r=>this.describeDualAxisSeries(r.path)!==null)?[...e].sort((r,i)=>{let n=this.describeDualAxisSeries(r.path),o=this.describeDualAxisSeries(i.path);if(!n&&!o)return 0;if(!n)return 1;if(!o)return -1;if(n.entityId!==o.entityId)return n.entityId.localeCompare(o.entityId);let s=D(n.widgetType).metricOrder.indexOf(n.metric),u=D(o.widgetType).metricOrder.indexOf(o.metric);return s-u}):e}expandTemplateSeries(e){return Zr(this,null,function*(){let t=this.normalizeHistoryPath(e.path??""),r=t.endsWith(".*");if(!n(e)&&!r)return [e];let i=t.replace(/\.\*$/,"");if(!i.length)return [e];let n$1=this.resolveDuration(e),o=yield this.historyApiClient.getPaths({duration:n$1});if(!o?.length)return [e];let s=this.findConcreteTemplatePaths(e,i,o);return s.length===0?[e]:s.map((u,x)=>z(G$1({},e),{seriesId:`${e.seriesId}:resolved:${x}`,datasetUuid:`${e.datasetUuid}:resolved:${x}`,path:u,expansionMode:null,familyKey:null,allowedIds:null,trackedDevices:void 0}))})}findConcreteTemplatePaths(e,t,r){let i=Array.from(new Set(r.map(o=>this.normalizeHistoryPath(o)).filter(o=>o.startsWith(`${t}.`))));return i.length===0?[]:n(e)?i.filter(o=>this.matchesTemplateMetric(o,t,e)).filter(o=>this.matchesTemplateAllowedIds(o,t,e)):i}matchesTemplateMetric(e,t,r){let i=e.slice(t.length+1);return w(r.expansionMode).some(o=>i.endsWith(o))}matchesTemplateAllowedIds(e,t,r){let i=Array.isArray(r.allowedIds)?r.allowedIds.map(o=>String(o).trim()).filter(o=>o.length>0):[];if(i.length===0)return true;let n=this.extractEntityId(e,t,r);return !!n&&i.includes(n)}extractEntityId(e,t,r){let i=e.slice(t.length+1);if(!i.length)return null;let o=w(r.expansionMode).find(u=>i.endsWith(u));if(!o)return null;let s=i.slice(0,-o.length).replace(/\.$/,"").trim();return s.length?s:null}normalizeHistoryPath(e){let t=e.trim();return t.length?t.replace(/^(vessels\.)?self\./,""):""}resolveHistoryContext(e,t){let r=this.normalizeContext(t);if(r)return r;if(/^(vessels\.)?self\./.test(e))return "vessels.self"}tryRenderChart(){if(!this.viewReady)return;if(!this.pendingDatasets.length){this.chart?.destroy(),this.chart=null;return}let e=this.chartCanvas();if(!e)return;this.chart?.destroy();let t=this.getPrimaryAxisUnitLabel(),r={type:"line",data:{datasets:this.pendingDatasets},options:{responsive:true,maintainAspectRatio:false,parsing:false,interaction:{mode:"nearest",intersect:false,axis:"x"},scales:G$1({x:{type:"time",time:{tooltipFormat:"PPpp",displayFormats:{second:"HH:mm:ss",minute:"HH:mm",hour:"HH:mm",day:"MMM d",week:"MMM d",month:"MMM yyyy"},unit:"minute",minUnit:"second"},ticks:{color:this.theme().contrastDim},grid:{color:this.theme().contrastDimmer}}},this.buildYScales(t)),plugins:{legend:{labels:{color:this.theme().contrastDim,generateLabels:i=>this.buildLegendLabels(i)}},tooltip:{boxWidth:15,boxHeight:15,bodyFont:{size:14},multiKeyBackground:"rgba(0, 0, 0, 0)",callbacks:{labelColor:i=>{let n=this.getLegendItemForDataset(i.chart,i.datasetIndex),o=Array.isArray(n?.lineDash)&&n.lineDash.length>=2?[n.lineDash[0],n.lineDash[1]]:void 0;return {borderColor:n?.strokeStyle??this.theme().contrast,backgroundColor:"rgba(0, 0, 0, 0)",borderWidth:2,borderRadius:0,borderDash:o}}}}}}};this.chart=new Wl(e.nativeElement.getContext("2d"),r);}getPrimaryAxisUnitLabel(){let e=this.resolveConvertUnitTo();return this.getUnitsLabel(e)}getWidgetPathConfig(e,t){let r=e?.config?.paths;if(!(!r||Array.isArray(r)))return r[t]}resolveConvertUnitTo(e){let t=this.data.widget?.config;if(!t)return null;if(t.paths&&!Array.isArray(t.paths)){if(e)for(let n of Object.keys(t.paths)){let o=this.getWidgetPathConfig(this.data.widget,n);if(o?.path===e&&o.convertUnitTo)return o.convertUnitTo}let r=Object.keys(t.paths)[0],i=r?this.getWidgetPathConfig(this.data.widget,r):void 0;if(i?.convertUnitTo)return i.convertUnitTo}return t.convertUnitTo??null}buildYScales(e){let t=this.resolveDualAxisWidgetType();if(!t)return {y:{ticks:{color:this.theme().contrastDim},grid:{color:this.theme().contrastDimmer},title:{display:!!e,text:e?`${e}`:"",color:this.theme().contrastDim}}};let r=P(t),i={};return r.forEach(n=>{let o=this.resolvePrimaryMetricForAxis(t,n.axisId),s=o?this.getDualAxisMetricColor(t,o):this.theme().contrastDim;i[n.axisId]=z(G$1(G$1({type:"linear",position:n.position},n.min!=null?{min:n.min}:{}),n.max!=null?{max:n.max}:{}),{ticks:{color:this.theme().contrastDim,callback:u=>this.formatAxisTick(u,n.tickSuffix)},grid:G$1({color:this.theme().contrastDimmer},n.drawOnChartArea===false?{drawOnChartArea:false}:{}),title:{display:true,text:n.title,color:s}});}),i}resolvePrimaryMetricForAxis(e,t){let r=D(e);return r.metricOrder.find(n=>r.metrics[n]?.axisId===t)??null}formatAxisTick(e,t){return t==="%"?`${e}%`:`${e} ${t}`}buildLegendLabels(e){return Wl.defaults.plugins.legend.labels.generateLabels(e).map(t=>{let r=t.datasetIndex!=null?e.data.datasets[t.datasetIndex]:null,i=Array.isArray(r?.borderDash)?r.borderDash.filter(n=>typeof n=="number"):[];return z(G$1({},t),{fillStyle:"transparent",lineDash:i})})}getLegendItemForDataset(e,t){return this.buildLegendLabels(e).find(r=>r.datasetIndex===t)??null}resolveDualAxisWidgetType(){return De(this.data.widget?.type,this.pendingDatasets.map(e=>typeof e.yAxisID=="string"?e.yAxisID:null))}setPeriod(e){this.selectedPeriod.set(e),this.loadHistoryDatasets();}resolveDuration(e){return e.timeScale&&e.period&&Number.isFinite(e.period)?this.durationFromScaleAndPeriod(e.timeScale,e.period):this.selectedPeriod()}durationFromScaleAndPeriod(e,t){let r=Math.max(1,Math.round(t)),i=e.trim().toLowerCase(),n=i.match(/^last\s+(\d+)\s+([a-z]+)/i);if(n){let o=Number(n[1]),s=n[2];if(Number.isFinite(o)&&o>0)return this.durationFromToken(s,o)}return this.durationFromToken(i,r)}durationFromToken(e,t){let r=e.toLowerCase();return r.startsWith("second")?`PT${t}S`:r.startsWith("minute")?`PT${t}M`:r.startsWith("hour")?`PT${t}H`:r.startsWith("day")?`P${t}D`:r.startsWith("week")?`P${t*7}D`:r.startsWith("month")?`P${t}M`:"PT24H"}resolveResolutionSeconds(e){let t=this.parseDurationToSeconds(e);return !Number.isFinite(t)||t<=0?1:Math.max(1,Math.round(t/120))}parseDurationToSeconds(e){let r=/^P(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?)?$/i.exec(e.trim());if(!r)return NaN;let i=Number(r[1]??0),n=Number(r[2]??0),o=Number(r[3]??0),s=Number(r[4]??0);return i*86400+n*3600+o*60+s}normalizeContext(e){let t=typeof e=="string"?e.trim():"";return t.length?t:void 0}getUnitsLabel(e){if(!e)return "";switch(e){case "percent":case "percentraw":return "%";case "latitudeMin":return "latitude in minutes";case "latitudeSec":return "latitude in secondes";case "longitudeMin":return "longitude in minutes";case "longitudeSec":return "longitude in secondes";default:return e}}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=JD({type:a,selectors:[["widget-history-chart-dialog"]],viewQuery:function(t,r){t&1&&eg(r.chartCanvas,Ae,5),t&2&&Kw();},inputs:{selectedPeriod:[1,"selectedPeriod"]},outputs:{selectedPeriod:"selectedPeriodChange"},decls:22,vars:4,consts:[["historyCanvas",""],[1,"dialogue-header"],["mat-dialog-title",""],["mat-icon-button","",1,"dialog-close-icon",3,"mat-dialog-close"],[1,"history-dialog-content"],[1,"time-select"],["hideSingleSelectionIndicator","true","aria-label","Chart Time Span Selection",3,"ngModelChange","ngModel"],["value","PT15M",3,"click"],["value","PT1H",3,"click"],["value","PT8H",3,"click"],["value","PT24H",3,"click"],[1,"chart-area"],[1,"history-message"],[1,"history-message","error"],[1,"chart-wrapper"]],template:function(t,r){t&1&&(Pi(0,"div",1)(1,"h5",2),TT(2),ul(),Pi(3,"button",3)(4,"mat-icon"),TT(5,"close"),ul()()(),Pi(6,"mat-dialog-content",4)(7,"div",5)(8,"mat-button-toggle-group",6),Eg("ngModelChange",function(n){return ST(r.selectedPeriod,n)||(r.selectedPeriod=n),n}),Pi(9,"mat-button-toggle",7),Qh("click",function(){return r.setPeriod("PT15M")}),TT(10,"15 Minutes"),ul(),Pi(11,"mat-button-toggle",8),Qh("click",function(){return r.setPeriod("PT1H")}),TT(12,"1 Hour"),ul(),Pi(13,"mat-button-toggle",9),Qh("click",function(){return r.setPeriod("PT8H")}),TT(14,"8 Hours"),ul(),Pi(15,"mat-button-toggle",10),Qh("click",function(){return r.setPeriod("PT24H")}),TT(16,"24 Hours"),ul()(),cD(),ul(),Pi(17,"div",11),_w(18,we,2,0,"p",12)(19,Pe,2,1,"p",13)(20,Te,2,0,"p",12)(21,_e,3,0,"div",14),ul()()),t&2&&(EE(2),gg(r.data.title),EE(),Bh("mat-dialog-close",false),EE(5),Ig("ngModel",r.selectedPeriod),lD(),EE(10),Mw(r.loading()?18:r.error()?19:r.hasNoData()?20:21));},dependencies:[Ht,jt,Nt,Vt,Ot,bt,nt,Op,eu,yt,wt,Ln,Pn,rn],styles:["[_nghost-%COMP%]{display:block;height:100%;width:100%}.dialogue-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:baseline}.dialog-close-icon[_ngcontent-%COMP%]{margin-right:15px}mat-dialog-content.history-dialog-content[_ngcontent-%COMP%]{padding:0 24px 20px;display:flex;flex-direction:column;width:100%;height:100%;min-width:70vw;min-height:55vh;justify-content:flex-start;align-items:stretch}.time-select[_ngcontent-%COMP%]{flex-grow:0;text-align:center;width:100%}.chart-area[_ngcontent-%COMP%], .chart-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1 1 0;min-height:0;width:100%}.chart-wrapper[_ngcontent-%COMP%] canvas[_ngcontent-%COMP%]{flex:1 1 0;min-height:0}.history-message[_ngcontent-%COMP%]{margin:0;padding:1rem 0}.error[_ngcontent-%COMP%]{color:var(--mat-sys-error)}"]})}return a})();export{rt as WidgetHistoryChartDialogComponent};
1
+ import {w as w$1,dl as E,dm as G,N,aY as xe,bu as ut,dd as $e,$ as $j,W as Wp,v as vt,bG as Bj,D as Dt,F as Fa,dn as ge,a$ as Zr,dp as n,cw as z,cv as G$1,b0 as Wl,J as JD,dq as Ht,di as jt,de as Nt,df as Vt,dr as Ot,ds as bt,dt as nt,O as Op,o as eu,y as yt,b as wt,b2 as Ln,b5 as Pn,b9 as rn,P as Pi,T as TT,u as ul,bi as Eg,k as Qh,bk as cD,_ as _w,e as EE,aA as gg,B as Bh,bm as Ig,bo as lD,M as Mw,f as eg,K as Kw,g as qw,bp as gl,c as $h,bj as ST}from'./main-BNR44HGB.js';import'./chunk-h2q_pbbF.js';var y={"widget-bms":{expansionMode:"bms-battery-tree",metricOrder:["soc","current"],metrics:{soc:{metric:"soc",axisId:"ySoc",pathSuffixes:[".capacity.stateOfCharge",".stateOfCharge"],transform:a=>a*100},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{ySoc:{axisId:"ySoc",position:"left",title:"SoC (%)",tickSuffix:"%",min:0,max:100},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"soc",axisId:"ySoc",regex:/^electrical\.batteries\.([^.]+)\.(?:capacity\.)?stateOfCharge$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.batteries\.([^.]+)\.current$/i}]},"widget-solar-charger":{expansionMode:"solar-tree",metricOrder:["panelPower","current"],metrics:{panelPower:{metric:"panelPower",axisId:"yPower",pathSuffixes:[".panelPower"],transform:a=>a/1e3},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yPower:{axisId:"yPower",position:"left",title:"Power (kW)",tickSuffix:"kW"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"current",axisId:"yCurrent",regex:/^electrical\.solar\.([^.]+)\.current$/i},{metric:"panelPower",axisId:"yPower",regex:/^electrical\.solar\.([^.]+)\.panelPower$/i}]},"widget-charger":{expansionMode:"charger-tree",metricOrder:["voltage","current"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.chargers\.([^.]+)\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.chargers\.([^.]+)\.current$/i}]},"widget-inverter":{expansionMode:"inverter-tree",metricOrder:["voltage","current"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.inverters\.([^.]+)\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.inverters\.([^.]+)\.current$/i}]},"widget-alternator":{expansionMode:"alternator-tree",metricOrder:["voltage","current"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".current"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.alternators\.([^.]+)\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.alternators\.([^.]+)\.current$/i}]},"widget-ac":{expansionMode:"ac-tree",metricOrder:["voltage","current","frequency"],metrics:{voltage:{metric:"voltage",axisId:"yVoltage",pathSuffixes:[".line1.voltage",".line2.voltage",".line3.voltage"],transform:a=>a},current:{metric:"current",axisId:"yCurrent",pathSuffixes:[".line1.current",".line2.current",".line3.current"],transform:a=>a},frequency:{metric:"frequency",axisId:"yFrequency",pathSuffixes:[".line1.frequency",".line2.frequency",".line3.frequency"],transform:a=>a}},axes:{yVoltage:{axisId:"yVoltage",position:"left",title:"Voltage (V)",tickSuffix:"V"},yCurrent:{axisId:"yCurrent",position:"right",title:"Current (A)",tickSuffix:"A",drawOnChartArea:false},yFrequency:{axisId:"yFrequency",position:"left",title:"Frequency (Hz)",tickSuffix:"Hz",drawOnChartArea:false}},pathRules:[{metric:"voltage",axisId:"yVoltage",regex:/^electrical\.ac\.([^.]+)\.line[123]\.voltage$/i},{metric:"current",axisId:"yCurrent",regex:/^electrical\.ac\.([^.]+)\.line[123]\.current$/i},{metric:"frequency",axisId:"yFrequency",regex:/^electrical\.ac\.([^.]+)\.line[123]\.frequency$/i}]}},Ie={"bms-battery-tree":"widget-bms","solar-tree":"widget-solar-charger","charger-tree":"widget-charger","inverter-tree":"widget-inverter","alternator-tree":"widget-alternator","ac-tree":"widget-ac"};function Me(a){return !!a&&a in y}function D(a){return y[a]}function w(a){let l=Ie[a],e=y[l],t=[];return e.metricOrder.forEach(r=>{let i=e.metrics[r];i&&i.pathSuffixes.forEach(n=>{t.includes(n)||t.push(n);});}),t}function ve(a,l){let e=y[a.widgetType].metrics[a.metric];return e?e.transform(l):l}function P(a){let l=y[a],e=[];return l.metricOrder.forEach(t=>{let r=l.metrics[t]?.axisId;!r||e.includes(r)||e.push(r);}),e.map(t=>l.axes[t]).filter(t=>!!t)}function De(a,l){if(!Me(a))return null;let e=P(a),t=new Set(e.map(i=>i.axisId));return t.size===0?null:l.some(i=>!!i&&t.has(i))?a:null}function Se(a){for(let[l,e]of Object.entries(y))for(let t of e.pathRules){let r=t.regex.exec(a);if(r)return {widgetType:l,entityId:r[1],metric:t.metric,axisId:t.axisId}}return null}var Ae=["historyCanvas"];function we(a,l){a&1&&(Pi(0,"p",12),TT(1,"Loading historical data\u2026"),ul());}function Pe(a,l){if(a&1&&(Pi(0,"p",13),TT(1),ul()),a&2){let e=qw();EE(),gl("503: ",e.error());}}function Te(a,l){a&1&&(Pi(0,"p",12),TT(1,"No historical data is available for this widget. If you are not using the built-in KIP History API provider, validate your plugin configuration supports the widget's path and try again."),ul());}function _e(a,l){a&1&&(Pi(0,"div",14),$h(1,"canvas",null,0),ul());}var rt=(()=>{class a{historyApiClient=w$1(E);historyMapper=w$1(G);app=w$1(N);destroyRef=w$1(xe);units=w$1(ut);data=w$1($e);chartCanvas=$j("historyCanvas");theme=Wp(this.app.cssThemeColorRoles$,{requireSync:true});loading=vt(true);error=vt(null);datasetCount=vt(0);selectedPeriod=Bj("PT1H");hasNoData=Dt(()=>!this.loading()&&!this.error()&&this.datasetCount()===0);chart=null;viewReady=false;pendingDatasets=[];dualAxisDescriptorCache=new Map;constructor(){Fa(()=>{let e=this.chartCanvas(),t=this.loading(),r=this.datasetCount();!e||t||r<=0||ge(()=>{this.tryRenderChart();});});}loadHistoryDatasets(){return Zr(this,null,function*(){this.loading.set(true),this.error.set(null),this.dualAxisDescriptorCache.clear();try{let e=yield this.resolveQueryableSeriesDefinitions(),t=yield Promise.all(e.map((r,i)=>this.buildDatasetForSeries(r,i)));this.pendingDatasets=t.filter(r=>!!r),this.datasetCount.set(this.pendingDatasets.length),this.tryRenderChart();}catch(e){console.error("[WidgetHistoryChartDialogComponent] Failed to load widget history datasets:",e),this.error.set("Unable to load historical data for this widget."),this.pendingDatasets=[],this.datasetCount.set(0);}finally{this.loading.set(false),queueMicrotask(()=>{this.tryRenderChart();});}})}ngOnInit(){this.loadHistoryDatasets(),this.destroyRef.onDestroy(()=>{this.chart?.destroy(),this.chart=null;});}ngAfterViewInit(){this.onCanvasReady();}ngOnDestroy(){this.chart?.destroy(),this.chart=null;}onCanvasReady(){this.viewReady=true,this.tryRenderChart();}buildDatasetForSeries(e,t){return Zr(this,null,function*(){let r=e.path;if(!r)return null;let i=this.resolveDuration(e),n=this.resolveResolutionSeconds(i),o=this.buildHistoryRequestCandidates(r,e.context),s=this.describeDualAxisSeries(r),u=[],x=this.normalizeHistoryPath(r),T=this.resolveConvertUnitTo(r);for(let I of o){let k=yield this.historyApiClient.getValues({paths:I.paths,context:I.context,duration:i,resolution:n});if(!k?.data?.length)continue;if(u=this.historyMapper.mapValuesToChartDatapoints(k,{unit:"number",domain:"scalar"}).map(O=>{let m=O.data.value;return typeof m=="number"&&Number.isFinite(m)&&(s?m=ve(s,m):T&&(m=this.units.convertToUnit(T,m)??m)),{x:O.timestamp,y:m}}),u.length){x=I.labelPath;break}}if(!u.length)return null;let _=this.resolveSeriesColor(t,s),be=e.source?` (${e.source})`:"";return {label:`${x}${be}`,data:u,borderColor:_,backgroundColor:_,pointRadius:0,borderWidth:2,tension:.25,yAxisID:s?.axisId??"y",borderDash:this.isDualAxisDashedSeries(s)?[6,4]:void 0,fill:false}})}describeDualAxisSeries(e){let t=this.normalizeHistoryPath(e??"");if(!t.length)return null;if(this.dualAxisDescriptorCache.has(t))return this.dualAxisDescriptorCache.get(t)??null;let r=Se(t);return this.dualAxisDescriptorCache.set(t,r),r}resolveSeriesColor(e,t){let r=this.getSeriesPalette();return t?this.getDualAxisMetricColor(t.widgetType,t.metric):r[e%r.length]}getSeriesPalette(){let e=this.data.widget?.config?.color||"blue",t=this.resolveThemeColor(e),r=[this.theme().green,this.theme().orange,this.theme().pink,this.theme().purple,this.theme().yellow,this.theme().grey,this.theme().blue,this.theme().contrast],i=r.findIndex(n=>n?.toLowerCase()===t.toLowerCase());return i!==-1?r=[r[i],...r.slice(0,i),...r.slice(i+1)]:r=[t,...r],r}resolveThemeColor(e){let t=this.theme()[e];return typeof t=="string"&&t.length>0?t:e}isDualAxisDashedSeries(e){return e?this.getDualAxisEntityOrderIndex(e.entityId,e.widgetType)%2===1:false}getDualAxisEntityOrderIndex(e,t){let r=[];this.data.seriesDefinitions.forEach(n=>{let o=this.describeDualAxisSeries(n.path);!o||o.widgetType!==t||r.includes(o.entityId)||r.push(o.entityId);});let i=r.indexOf(e);return i>=0?i:0}getDualAxisMetricColor(e,t){let r=this.getSeriesPalette(),n=D(e).metricOrder.indexOf(t),o=n>=0?n:0;return r[o%r.length]}buildHistoryRequestCandidates(e,t){let r=this.normalizeHistoryPath(e),i=this.resolveHistoryContext(e,t),n=[r].filter(s=>s.length>0),o=[];return n.forEach(s=>{o.push({paths:`${s}:avg`,context:i,labelPath:this.normalizeHistoryPath(s)});}),o}resolveQueryableSeriesDefinitions(){return Zr(this,null,function*(){let e=[];for(let t of this.data.seriesDefinitions){let r=yield this.expandTemplateSeries(t);e.push(...r);}return this.sortExpandedSeries(e)})}sortExpandedSeries(e){return e.some(r=>this.describeDualAxisSeries(r.path)!==null)?[...e].sort((r,i)=>{let n=this.describeDualAxisSeries(r.path),o=this.describeDualAxisSeries(i.path);if(!n&&!o)return 0;if(!n)return 1;if(!o)return -1;if(n.entityId!==o.entityId)return n.entityId.localeCompare(o.entityId);let s=D(n.widgetType).metricOrder.indexOf(n.metric),u=D(o.widgetType).metricOrder.indexOf(o.metric);return s-u}):e}expandTemplateSeries(e){return Zr(this,null,function*(){let t=this.normalizeHistoryPath(e.path??""),r=t.endsWith(".*");if(!n(e)&&!r)return [e];let i=t.replace(/\.\*$/,"");if(!i.length)return [e];let n$1=this.resolveDuration(e),o=yield this.historyApiClient.getPaths({duration:n$1});if(!o?.length)return [e];let s=this.findConcreteTemplatePaths(e,i,o);return s.length===0?[e]:s.map((u,x)=>z(G$1({},e),{seriesId:`${e.seriesId}:resolved:${x}`,datasetUuid:`${e.datasetUuid}:resolved:${x}`,path:u,expansionMode:null,familyKey:null,allowedIds:null,trackedDevices:void 0}))})}findConcreteTemplatePaths(e,t,r){let i=Array.from(new Set(r.map(o=>this.normalizeHistoryPath(o)).filter(o=>o.startsWith(`${t}.`))));return i.length===0?[]:n(e)?i.filter(o=>this.matchesTemplateMetric(o,t,e)).filter(o=>this.matchesTemplateAllowedIds(o,t,e)):i}matchesTemplateMetric(e,t,r){let i=e.slice(t.length+1);return w(r.expansionMode).some(o=>i.endsWith(o))}matchesTemplateAllowedIds(e,t,r){let i=Array.isArray(r.allowedIds)?r.allowedIds.map(o=>String(o).trim()).filter(o=>o.length>0):[];if(i.length===0)return true;let n=this.extractEntityId(e,t,r);return !!n&&i.includes(n)}extractEntityId(e,t,r){let i=e.slice(t.length+1);if(!i.length)return null;let o=w(r.expansionMode).find(u=>i.endsWith(u));if(!o)return null;let s=i.slice(0,-o.length).replace(/\.$/,"").trim();return s.length?s:null}normalizeHistoryPath(e){let t=e.trim();return t.length?t.replace(/^(vessels\.)?self\./,""):""}resolveHistoryContext(e,t){let r=this.normalizeContext(t);if(r)return r;if(/^(vessels\.)?self\./.test(e))return "vessels.self"}tryRenderChart(){if(!this.viewReady)return;if(!this.pendingDatasets.length){this.chart?.destroy(),this.chart=null;return}let e=this.chartCanvas();if(!e)return;this.chart?.destroy();let t=this.getPrimaryAxisUnitLabel(),r={type:"line",data:{datasets:this.pendingDatasets},options:{responsive:true,maintainAspectRatio:false,parsing:false,interaction:{mode:"nearest",intersect:false,axis:"x"},scales:G$1({x:{type:"time",time:{tooltipFormat:"PPpp",displayFormats:{second:"HH:mm:ss",minute:"HH:mm",hour:"HH:mm",day:"MMM d",week:"MMM d",month:"MMM yyyy"},unit:"minute",minUnit:"second"},ticks:{color:this.theme().contrastDim},grid:{color:this.theme().contrastDimmer}}},this.buildYScales(t)),plugins:{legend:{labels:{color:this.theme().contrastDim,generateLabels:i=>this.buildLegendLabels(i)}},tooltip:{boxWidth:15,boxHeight:15,bodyFont:{size:14},multiKeyBackground:"rgba(0, 0, 0, 0)",callbacks:{labelColor:i=>{let n=this.getLegendItemForDataset(i.chart,i.datasetIndex),o=Array.isArray(n?.lineDash)&&n.lineDash.length>=2?[n.lineDash[0],n.lineDash[1]]:void 0;return {borderColor:n?.strokeStyle??this.theme().contrast,backgroundColor:"rgba(0, 0, 0, 0)",borderWidth:2,borderRadius:0,borderDash:o}}}}}}};this.chart=new Wl(e.nativeElement.getContext("2d"),r);}getPrimaryAxisUnitLabel(){let e=this.resolveConvertUnitTo();return this.getUnitsLabel(e)}getWidgetPathConfig(e,t){let r=e?.config?.paths;if(!(!r||Array.isArray(r)))return r[t]}resolveConvertUnitTo(e){let t=this.data.widget?.config;if(!t)return null;if(t.paths&&!Array.isArray(t.paths)){if(e)for(let n of Object.keys(t.paths)){let o=this.getWidgetPathConfig(this.data.widget,n);if(o?.path===e&&o.convertUnitTo)return o.convertUnitTo}let r=Object.keys(t.paths)[0],i=r?this.getWidgetPathConfig(this.data.widget,r):void 0;if(i?.convertUnitTo)return i.convertUnitTo}return t.convertUnitTo??null}buildYScales(e){let t=this.resolveDualAxisWidgetType();if(!t)return {y:{ticks:{color:this.theme().contrastDim},grid:{color:this.theme().contrastDimmer},title:{display:!!e,text:e?`${e}`:"",color:this.theme().contrastDim}}};let r=P(t),i={};return r.forEach(n=>{let o=this.resolvePrimaryMetricForAxis(t,n.axisId),s=o?this.getDualAxisMetricColor(t,o):this.theme().contrastDim;i[n.axisId]=z(G$1(G$1({type:"linear",position:n.position},n.min!=null?{min:n.min}:{}),n.max!=null?{max:n.max}:{}),{ticks:{color:this.theme().contrastDim,callback:u=>this.formatAxisTick(u,n.tickSuffix)},grid:G$1({color:this.theme().contrastDimmer},n.drawOnChartArea===false?{drawOnChartArea:false}:{}),title:{display:true,text:n.title,color:s}});}),i}resolvePrimaryMetricForAxis(e,t){let r=D(e);return r.metricOrder.find(n=>r.metrics[n]?.axisId===t)??null}formatAxisTick(e,t){return t==="%"?`${e}%`:`${e} ${t}`}buildLegendLabels(e){return Wl.defaults.plugins.legend.labels.generateLabels(e).map(t=>{let r=t.datasetIndex!=null?e.data.datasets[t.datasetIndex]:null,i=Array.isArray(r?.borderDash)?r.borderDash.filter(n=>typeof n=="number"):[];return z(G$1({},t),{fillStyle:"transparent",lineDash:i})})}getLegendItemForDataset(e,t){return this.buildLegendLabels(e).find(r=>r.datasetIndex===t)??null}resolveDualAxisWidgetType(){return De(this.data.widget?.type,this.pendingDatasets.map(e=>typeof e.yAxisID=="string"?e.yAxisID:null))}setPeriod(e){this.selectedPeriod.set(e),this.loadHistoryDatasets();}resolveDuration(e){return e.timeScale&&e.period&&Number.isFinite(e.period)?this.durationFromScaleAndPeriod(e.timeScale,e.period):this.selectedPeriod()}durationFromScaleAndPeriod(e,t){let r=Math.max(1,Math.round(t)),i=e.trim().toLowerCase(),n=i.match(/^last\s+(\d+)\s+([a-z]+)/i);if(n){let o=Number(n[1]),s=n[2];if(Number.isFinite(o)&&o>0)return this.durationFromToken(s,o)}return this.durationFromToken(i,r)}durationFromToken(e,t){let r=e.toLowerCase();return r.startsWith("second")?`PT${t}S`:r.startsWith("minute")?`PT${t}M`:r.startsWith("hour")?`PT${t}H`:r.startsWith("day")?`P${t}D`:r.startsWith("week")?`P${t*7}D`:r.startsWith("month")?`P${t}M`:"PT24H"}resolveResolutionSeconds(e){let t=this.parseDurationToSeconds(e);return !Number.isFinite(t)||t<=0?1:Math.max(1,Math.round(t/120))}parseDurationToSeconds(e){let r=/^P(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?)?$/i.exec(e.trim());if(!r)return NaN;let i=Number(r[1]??0),n=Number(r[2]??0),o=Number(r[3]??0),s=Number(r[4]??0);return i*86400+n*3600+o*60+s}normalizeContext(e){let t=typeof e=="string"?e.trim():"";return t.length?t:void 0}getUnitsLabel(e){if(!e)return "";switch(e){case "percent":case "percentraw":return "%";case "latitudeMin":return "latitude in minutes";case "latitudeSec":return "latitude in secondes";case "longitudeMin":return "longitude in minutes";case "longitudeSec":return "longitude in secondes";default:return e}}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=JD({type:a,selectors:[["widget-history-chart-dialog"]],viewQuery:function(t,r){t&1&&eg(r.chartCanvas,Ae,5),t&2&&Kw();},inputs:{selectedPeriod:[1,"selectedPeriod"]},outputs:{selectedPeriod:"selectedPeriodChange"},decls:22,vars:4,consts:[["historyCanvas",""],[1,"dialogue-header"],["mat-dialog-title",""],["mat-icon-button","",1,"dialog-close-icon",3,"mat-dialog-close"],[1,"history-dialog-content"],[1,"time-select"],["hideSingleSelectionIndicator","true","aria-label","Chart Time Span Selection",3,"ngModelChange","ngModel"],["value","PT15M",3,"click"],["value","PT1H",3,"click"],["value","PT8H",3,"click"],["value","PT24H",3,"click"],[1,"chart-area"],[1,"history-message"],[1,"history-message","error"],[1,"chart-wrapper"]],template:function(t,r){t&1&&(Pi(0,"div",1)(1,"h5",2),TT(2),ul(),Pi(3,"button",3)(4,"mat-icon"),TT(5,"close"),ul()()(),Pi(6,"mat-dialog-content",4)(7,"div",5)(8,"mat-button-toggle-group",6),Eg("ngModelChange",function(n){return ST(r.selectedPeriod,n)||(r.selectedPeriod=n),n}),Pi(9,"mat-button-toggle",7),Qh("click",function(){return r.setPeriod("PT15M")}),TT(10,"15 Minutes"),ul(),Pi(11,"mat-button-toggle",8),Qh("click",function(){return r.setPeriod("PT1H")}),TT(12,"1 Hour"),ul(),Pi(13,"mat-button-toggle",9),Qh("click",function(){return r.setPeriod("PT8H")}),TT(14,"8 Hours"),ul(),Pi(15,"mat-button-toggle",10),Qh("click",function(){return r.setPeriod("PT24H")}),TT(16,"24 Hours"),ul()(),cD(),ul(),Pi(17,"div",11),_w(18,we,2,0,"p",12)(19,Pe,2,1,"p",13)(20,Te,2,0,"p",12)(21,_e,3,0,"div",14),ul()()),t&2&&(EE(2),gg(r.data.title),EE(),Bh("mat-dialog-close",false),EE(5),Ig("ngModel",r.selectedPeriod),lD(),EE(10),Mw(r.loading()?18:r.error()?19:r.hasNoData()?20:21));},dependencies:[Ht,jt,Nt,Vt,Ot,bt,nt,Op,eu,yt,wt,Ln,Pn,rn],styles:["[_nghost-%COMP%]{display:block;height:100%;width:100%}.dialogue-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:baseline}.dialog-close-icon[_ngcontent-%COMP%]{margin-right:15px}mat-dialog-content.history-dialog-content[_ngcontent-%COMP%]{padding:0 24px 20px;display:flex;flex-direction:column;width:100%;height:100%;min-width:70vw;min-height:55vh;justify-content:flex-start;align-items:stretch}.time-select[_ngcontent-%COMP%]{flex-grow:0;text-align:center;width:100%}.chart-area[_ngcontent-%COMP%], .chart-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1 1 0;min-height:0;width:100%}.chart-wrapper[_ngcontent-%COMP%] canvas[_ngcontent-%COMP%]{flex:1 1 0;min-height:0}.history-message[_ngcontent-%COMP%]{margin:0;padding:1rem 0}.error[_ngcontent-%COMP%]{color:var(--mat-sys-error)}"]})}return a})();export{rt as WidgetHistoryChartDialogComponent};