@mxtommy/kip 4.8.1 → 4.8.4

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 (69) hide show
  1. package/CHANGELOG.md +17 -3
  2. package/package.json +27 -4
  3. package/public/{chunk-Bp0MQwPM.js → chunk-07zHjmg-.js} +1 -1
  4. package/public/{chunk-AANk-NXH.js → chunk-0z3nIRXw.js} +3 -3
  5. package/public/{chunk-sNakMDHi.js → chunk-B09jfNia.js} +1 -1
  6. package/public/{chunk-DDqeRiB0.js → chunk-B0D54iJs.js} +1 -1
  7. package/public/{chunk-BwOIef42.js → chunk-B0eE4udE.js} +1 -1
  8. package/public/{chunk-BX6skw5k.js → chunk-B9nVBlGj.js} +1 -1
  9. package/public/{chunk-C2VQxCXa.js → chunk-BFpzxIIT.js} +1 -1
  10. package/public/{chunk-Dxlia2NE.js → chunk-BIb-xYiS.js} +1 -1
  11. package/public/{chunk-dgaOX1wC.js → chunk-BJ-wyixK.js} +1 -1
  12. package/public/chunk-BLEZOsfR.js +1 -0
  13. package/public/{chunk-CNMFlw_H.js → chunk-BN7A4g6c.js} +1 -1
  14. package/public/{chunk-By8ZVvDx.js → chunk-BTOTKeBo.js} +1 -1
  15. package/public/{chunk-BoNDCNGE.js → chunk-BUguZ7cK.js} +1 -1
  16. package/public/{chunk-DE4ylhpq.js → chunk-BZx964-p.js} +1 -1
  17. package/public/{chunk-CNNTuNlM.js → chunk-BeM64etA.js} +1 -1
  18. package/public/chunk-BfiyH3nV.js +1 -0
  19. package/public/{chunk-Ii9n-oiL.js → chunk-BjINKQ03.js} +1 -1
  20. package/public/{chunk-MjWuPUhu.js → chunk-BpcNrtxJ.js} +1 -1
  21. package/public/{chunk-CkXTl3su.js → chunk-BuvyF0y5.js} +1 -1
  22. package/public/{chunk-BKj60jdq.js → chunk-C6b8CVno.js} +1 -1
  23. package/public/{chunk-hd2_AKwt.js → chunk-CCfhzpE8.js} +1 -1
  24. package/public/{chunk-nu4vZg-z.js → chunk-CHAFm_nM.js} +1 -1
  25. package/public/{chunk-5U8d2Ygo.js → chunk-CIGP2YJm.js} +1 -1
  26. package/public/{chunk-JbEkcxJm.js → chunk-CLTHuhlN.js} +1 -1
  27. package/public/{chunk-CwSa_BNV.js → chunk-CLs_NL1y.js} +1 -1
  28. package/public/{chunk-DNS-qsFC.js → chunk-COI6IBXH.js} +1 -1
  29. package/public/{chunk-CpuB_ZZz.js → chunk-CQMVIDcp.js} +1 -1
  30. package/public/{chunk-00hwknVI.js → chunk-CXvWM_vF.js} +1 -1
  31. package/public/{chunk-BdokyhBM.js → chunk-CYYBxjrc.js} +1 -1
  32. package/public/{chunk-DzTTqoF_.js → chunk-C_OZJltF.js} +1 -1
  33. package/public/{chunk-DQnoPLyC.js → chunk-Co2wVrD6.js} +1 -1
  34. package/public/{chunk-CXvG8mMq.js → chunk-CoCQ3DW2.js} +1 -1
  35. package/public/{chunk-DchvLV_Y.js → chunk-CxPx4NZv.js} +1 -1
  36. package/public/{chunk-CA6RRaxd.js → chunk-CyVRpGoJ.js} +1 -1
  37. package/public/{chunk-CL2xiH57.js → chunk-D-_-GUVr.js} +1 -1
  38. package/public/{chunk-C6UXF7BI.js → chunk-D1HYfaL_.js} +1 -1
  39. package/public/{chunk-DjZgzSiH.js → chunk-D2953Rfp.js} +1 -1
  40. package/public/{chunk-BJz7Ij9E.js → chunk-DIl1k00y.js} +1 -1
  41. package/public/{chunk-B6bEhzNR.js → chunk-DPnbM-aB.js} +1 -1
  42. package/public/{chunk-CIlfzV9R.js → chunk-DTN-sa1K.js} +1 -1
  43. package/public/{chunk-BOAD0N2a.js → chunk-DUEKoZhd.js} +1 -1
  44. package/public/{chunk-DumLX5k_.js → chunk-DmkAKXR1.js} +1 -1
  45. package/public/chunk-Do8wqING.js +1 -0
  46. package/public/{chunk-DXkKj21H.js → chunk-JhFkJS7i.js} +1 -1
  47. package/public/{chunk-B82ADJSs.js → chunk-OeQDZKFO.js} +1 -1
  48. package/public/{chunk-PheXEqie.js → chunk-_zRMMvCu.js} +1 -1
  49. package/public/{chunk-CrBxxZCe.js → chunk-eQ1pa34Q.js} +1 -1
  50. package/public/{chunk-D4xZ2tGB.js → chunk-ibauGmSP.js} +1 -1
  51. package/public/{chunk-VgxMqRPk.js → chunk-otzyItXL.js} +1 -1
  52. package/public/{chunk-BQr-tSkv.js → chunk-q9NoPvcx.js} +1 -1
  53. package/public/{chunk-DWLISAZi.js → chunk-szQs8fiq.js} +1 -1
  54. package/public/{chunk-tAiV3ARh.js → chunk-x7L6DXVK.js} +1 -1
  55. package/public/index.html +1 -1
  56. package/public/{main-BAV5VDOD.js → main-YKDNK5VZ.js} +20 -20
  57. package/plugin/history-series.service.js +0 -637
  58. package/plugin/index.js +0 -1322
  59. package/plugin/kip-series-contract.js +0 -31
  60. package/plugin/openApi.json +0 -855
  61. package/plugin/sqlite-history-storage.service.js +0 -1124
  62. package/plugin/src/history-series.service.js +0 -634
  63. package/plugin/src/index.js +0 -1322
  64. package/plugin/src/kip-series-contract.js +0 -31
  65. package/plugin/src/openApi.json +0 -855
  66. package/plugin/src/sqlite-history-storage.service.js +0 -1122
  67. package/public/chunk-Blokg6Ds.js +0 -1
  68. package/public/chunk-CpMCBDvH.js +0 -1
  69. package/public/chunk-y1imvaA-.js +0 -1
@@ -1 +1 @@
1
- import {p as p$1}from'./chunk-CaD3zVfK.js';import {G as Gt,D as Dt$1}from'./chunk-BQr-tSkv.js';import {u}from'./chunk-hd2_AKwt.js';import {k}from'./chunk-BwOIef42.js';import {d1 as Hj,w,du as p,dv as rt,dD as _,bu as ut,$ as $j,a6 as Lr,v as vt,D as Dt,dx as n$1,cw as z,cv as G,F as Fa,dn as ge$1,J as JD,_ as _w,M as Mw,f as eg,K as Kw,h as Fw,P as Pi,k as Qh,u as ul,g as qw,B as Bh,an as Hh,l as ud,m as dd}from'./main-BAV5VDOD.js';import {c}from'./chunk-Dxlia2NE.js';var Z=["linearGauge"];function Q(s,H){if(s&1){let t=Fw();Pi(0,"linear-gauge",2,0),Qh("resizeChange",function(a){ud(t);let e=qw();return dd(e.onResized(a))}),ul();}if(s&2){let t=qw();Bh("options",t.gaugeOptions)("value",t.displayValue()),Hh("value-text",t.textValue());}}var ge=(()=>{class s{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);streams=w(rt);metadata=w(_);unitsService=w(ut);static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",suppressBootstrapNull:true,isPathConfigurable:true,showPathSkUnitsFilter:true,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{lower:0,upper:100,type:"linear"},gauge:{type:"ngLinear",subType:"vertical",highlightsWidth:5,enableTicks:true,enableNeedle:false},numInt:1,numDecimal:0,color:"contrast",enableTimeout:false,dataTimeout:5,ignoreZones:false};ngGauge=$j("linearGauge");gauge=$j("linearGauge",{read:Lr});textValue=vt("--");value=vt(void 0);displayValue=Dt(()=>this.value()??0);shouldRenderGauge=Dt(()=>this.value()!==void 0);gaugeOptions={};viewReady=vt(false);gaugeBootstrapped=vt(false);animationEnabled=Dt(()=>this.gaugeBootstrapped());currentState=vt(n$1.Normal);normalizedConfig=Dt(()=>this.runtime.options()??s.DEFAULT_CONFIG);gaugePathConfig=Dt(()=>this.normalizedConfig().paths?.gaugePath);normalizedScale=Dt(()=>{let t=this.normalizedConfig().displayScale??s.DEFAULT_CONFIG.displayScale;return z(G({},t),{lower:t.lower??0,upper:t.upper??100})});adjustedScale=Dt(()=>{let t=this.normalizedConfig(),i=this.normalizedScale();return t.gauge?.enableTicks?p$1(i.lower,i.upper):{min:i.lower,max:i.upper,majorTicks:[]}});highlights=Dt(()=>{let t=this.metadata.zones(),i=this.normalizedConfig(),a=this.theme(),e=this.gaugePathConfig();return t?.length?a?i.ignoreZones?[]:e?k(t,a,e.convertUnitTo??"",this.unitsService,this.adjustedScale().min,this.adjustedScale().max):[]:[]:[]});displayName=Dt(()=>this.normalizedConfig().displayName||"Gauge Label");constructor(){Fa(()=>{this.normalizedConfig();let i=this.theme(),a=this.gaugePathConfig(),e=this.normalizedScale();!i||!a?.path||ge$1(()=>this.streams.observe("gaugePath",o=>{let n=o?.data?.value??null;if(n==null)this.value.set(e.lower),this.textValue.set("--");else {let r=Math.min(Math.max(n,e.lower),e.upper);this.value.set(r),this.textValue()==="--"&&this.textValue.set("");}o.state!==this.currentState()&&this.currentState.set(o.state);}));}),Fa(()=>{this.normalizedConfig().ignoreZones||ge$1(()=>this.metadata.observe("gaugePath"));}),Fa(()=>{let t=this.highlights();this.viewReady()&&ge$1(()=>{try{if(!t.length)this.ngGauge()?.update({highlights:[]});else {let i=JSON.stringify(t);this.ngGauge()?.update({highlights:i,highlightsWidth:this.normalizedConfig().gauge?.highlightsWidth});}}catch(i){}});}),Fa(()=>{let t=this.normalizedConfig(),i=this.theme(),a=this.adjustedScale();i&&ge$1(()=>{if(this.buildGaugeOptions(t,i,a),this.viewReady())try{this.ngGauge()?.update(this.gaugeOptions),this.applyInitialSize();}catch(e){}});}),Fa(()=>{let t=this.ngGauge();!t||this.gaugeBootstrapped()||ge$1(()=>{try{requestAnimationFrame(()=>{this.gaugeBootstrapped.set(!0);try{t.update({animation:!0,animatedValue:!0});}catch(i){}});}catch(i){}});}),Fa(()=>{let t=this.currentState();this.viewReady()&&ge$1(()=>{let i=this.normalizedConfig(),a=this.theme();if(!a||i.ignoreZones)return;let e={},o=i.gauge?.enableNeedle,n=c(i.color??"contrast",a);switch(t){case n$1.Alarm:o?(e.colorNeedle=a.zoneAlarm,e.colorValueText=a.zoneAlarm):(e.colorBarProgress=a.zoneAlarm,e.colorValueText=a.zoneAlarm);break;case n$1.Warn:o?(e.colorNeedle=a.zoneWarn,e.colorValueText=a.zoneWarn):(e.colorBarProgress=a.zoneWarn,e.colorValueText=a.zoneWarn);break;case n$1.Alert:o?(e.colorNeedle=a.zoneAlert,e.colorValueText=a.zoneAlert):(e.colorBarProgress=a.zoneAlert,e.colorValueText=a.zoneAlert);break;default:o?(e.colorNeedle=n.color,e.colorValueText=n.color):(e.colorBarProgress=n.color,e.colorValueText=n.color);}try{this.ngGauge()?.update(e);}catch(r){}});});}buildGaugeOptions(t,i,a){let e=this.gaugeOptions={},o=t.gauge?.subType==="vertical",n=t.gauge?.enableNeedle,r=t.gauge?.enableTicks,m=this.gaugePathConfig();e.minValue=a.min,e.maxValue=a.max,e.valueInt=t.numInt??1,e.valueDec=t.numDecimal??2,e.title=this.displayName(),e.fontTitleSize=40,e.fontTitle="Roboto",e.fontTitleWeight="bold",e.barLength=o?80:90,e.barWidth=r?n?0:30:60,e.barProgress=true,e.barBeginCircle=0,e.barStrokeWidth=0,e.barShadow=0,e.needle=!!n,e.needleType=n?"arrow":"line",e.needleStart=n?o?200:155:-45,e.needleEnd=n?o?175:180:55,e.needleShadow=true,e.needleSide="both",e.units=m?.convertUnitTo??"",e.fontUnits="Roboto",e.fontUnitsWeight="normal",e.borders=false,e.borderOuterWidth=0,e.borderMiddleWidth=0,e.borderInnerWidth=0,e.borderShadowWidth=0,e.borderRadius=0,e.valueBox=true,e.valueBoxWidth=35,e.valueBoxStroke=0,e.valueBoxBorderRadius=10,e.colorValueBoxRect="",e.colorValueBoxRectEnd="",e.colorValueBoxShadow="",e.fontValueSize=50,e.fontValue="Roboto",e.fontValueWeight="bold",e.valueTextShadow=false,e.fontNumbers="Roboto",e.fontNumbersWeight="normal",e.fontUnitsSize=o?40:35,e.colorTitle=c("contrast",i).dim,e.colorUnits=c("contrast",i).dim,e.colorValueBoxBackground=i.background;let u=c(t.color??"contrast",i);e.colorValueText=u.color,n?(e.colorNeedle=u.color,e.colorNeedleEnd=u.color,e.needleWidth=45,e.colorNeedleShadowUp=u.color,e.colorNeedleShadowDown=u.color):(e.colorBarProgress=u.color,e.colorBarProgressEnd="",e.needleWidth=0),e.colorPlate=i.cardColor,e.colorBar=i.background,e.colorBarEnd="",e.colorBarStroke="0",e.colorMajorTicks=c("contrast",i).dim,e.colorMinorTicks=c("contrast",i).dim,e.colorNumbers=c("contrast",i).dim,e.majorTicks=r?a.majorTicks:[],e.majorTicksInt=t.numInt??1,e.majorTicksDec=t.numDecimal??2,e.strokeTicks=!!r,e.minorTicks=r?2:0,e.ticksWidthMinor=r?6:0,e.numberSide=n?"right":"left",e.fontNumbersSize=r?o?22:30:0,e.numbersMargin=o?n?-7:-3:n?-33:-5,e.ticksWidth=r?n&&o?15:10:0,e.ticksPadding=r?o?n?0:5:n?9:8:0,e.tickSide="left",e.animation=this.animationEnabled(),e.animationRule="linear",e.animatedValue=this.animationEnabled(),e.animateOnInit=false,e.animationDuration=(m?.sampleTime??500)-25,e.highlights=[],e.highlightsWidth=t.gauge?.highlightsWidth;let N=this.highlights();N.length&&(e.highlights=JSON.stringify(N));}ngAfterViewInit(){this.viewReady.set(true),this.applyInitialSize();try{this.ngGauge()?.update(this.gaugeOptions);}catch(t){}}applyInitialSize(){let t=this.gauge()?.nativeElement;if(!t)return;let i=t.getBoundingClientRect(),a=.3,e,o;this.normalizedConfig().gauge?.subType==="vertical"?(e=i.height,o=i.height*a):(o=i.width,e=i.width*a);let m={height:e,width:o};try{this.ngGauge()?.update(m);}catch(u){}}onResized(t){let i=this.normalizedConfig(),a=.3,e=i.gauge?.subType==="vertical",o=0,n=0;e?(n=t.contentRect.height,o=n*a,o>t.contentRect.width&&(o=t.contentRect.width,n=o/a)):(o=t.contentRect.width,n=o*a,n>t.contentRect.height&&(n=t.contentRect.height,o=n/a));let r={width:o,height:n-10};try{this.ngGauge()?.update(r);}catch(m){}}static \u0275fac=function(i){return new(i||s)};static \u0275cmp=JD({type:s,selectors:[["widget-gauge-ng-linear"]],viewQuery:function(i,a){i&1&&eg(a.ngGauge,Z,5)(a.gauge,Z,5,Lr),i&2&&Kw(2);},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:1,vars:1,consts:[["linearGauge",""],["kipResizeObserver","",1,"linearGauge",3,"options","value"],["kipResizeObserver","",1,"linearGauge",3,"resizeChange","options","value"]],template:function(i,a){i&1&&_w(0,Q,2,3,"linear-gauge",1),i&2&&Mw(a.shouldRenderGauge()?0:-1);},dependencies:[u,Gt,Dt$1],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:block} linear-gauge{display:block;position:relative;width:100%;min-width:8px;height:100%;overflow:clip} linear-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:5px}"]})}return s})();export{ge as WidgetGaugeNgLinearComponent};
1
+ import {p as p$1}from'./chunk-CaD3zVfK.js';import {G as Gt,D as Dt$1}from'./chunk-q9NoPvcx.js';import {u}from'./chunk-CCfhzpE8.js';import {k}from'./chunk-B0eE4udE.js';import {d1 as Hj,w,du as p,dv as rt,dD as _,bu as ut,$ as $j,a6 as Lr,v as vt,D as Dt,dx as n$1,cw as z,cv as G,F as Fa,dn as ge$1,J as JD,_ as _w,M as Mw,f as eg,K as Kw,h as Fw,P as Pi,k as Qh,u as ul,g as qw,B as Bh,an as Hh,l as ud,m as dd}from'./main-YKDNK5VZ.js';import {c}from'./chunk-BIb-xYiS.js';var Z=["linearGauge"];function Q(s,H){if(s&1){let t=Fw();Pi(0,"linear-gauge",2,0),Qh("resizeChange",function(a){ud(t);let e=qw();return dd(e.onResized(a))}),ul();}if(s&2){let t=qw();Bh("options",t.gaugeOptions)("value",t.displayValue()),Hh("value-text",t.textValue());}}var ge=(()=>{class s{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);streams=w(rt);metadata=w(_);unitsService=w(ut);static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",suppressBootstrapNull:true,isPathConfigurable:true,showPathSkUnitsFilter:true,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{lower:0,upper:100,type:"linear"},gauge:{type:"ngLinear",subType:"vertical",highlightsWidth:5,enableTicks:true,enableNeedle:false},numInt:1,numDecimal:0,color:"contrast",enableTimeout:false,dataTimeout:5,ignoreZones:false};ngGauge=$j("linearGauge");gauge=$j("linearGauge",{read:Lr});textValue=vt("--");value=vt(void 0);displayValue=Dt(()=>this.value()??0);shouldRenderGauge=Dt(()=>this.value()!==void 0);gaugeOptions={};viewReady=vt(false);gaugeBootstrapped=vt(false);animationEnabled=Dt(()=>this.gaugeBootstrapped());currentState=vt(n$1.Normal);normalizedConfig=Dt(()=>this.runtime.options()??s.DEFAULT_CONFIG);gaugePathConfig=Dt(()=>this.normalizedConfig().paths?.gaugePath);normalizedScale=Dt(()=>{let t=this.normalizedConfig().displayScale??s.DEFAULT_CONFIG.displayScale;return z(G({},t),{lower:t.lower??0,upper:t.upper??100})});adjustedScale=Dt(()=>{let t=this.normalizedConfig(),i=this.normalizedScale();return t.gauge?.enableTicks?p$1(i.lower,i.upper):{min:i.lower,max:i.upper,majorTicks:[]}});highlights=Dt(()=>{let t=this.metadata.zones(),i=this.normalizedConfig(),a=this.theme(),e=this.gaugePathConfig();return t?.length?a?i.ignoreZones?[]:e?k(t,a,e.convertUnitTo??"",this.unitsService,this.adjustedScale().min,this.adjustedScale().max):[]:[]:[]});displayName=Dt(()=>this.normalizedConfig().displayName||"Gauge Label");constructor(){Fa(()=>{this.normalizedConfig();let i=this.theme(),a=this.gaugePathConfig(),e=this.normalizedScale();!i||!a?.path||ge$1(()=>this.streams.observe("gaugePath",o=>{let n=o?.data?.value??null;if(n==null)this.value.set(e.lower),this.textValue.set("--");else {let r=Math.min(Math.max(n,e.lower),e.upper);this.value.set(r),this.textValue()==="--"&&this.textValue.set("");}o.state!==this.currentState()&&this.currentState.set(o.state);}));}),Fa(()=>{this.normalizedConfig().ignoreZones||ge$1(()=>this.metadata.observe("gaugePath"));}),Fa(()=>{let t=this.highlights();this.viewReady()&&ge$1(()=>{try{if(!t.length)this.ngGauge()?.update({highlights:[]});else {let i=JSON.stringify(t);this.ngGauge()?.update({highlights:i,highlightsWidth:this.normalizedConfig().gauge?.highlightsWidth});}}catch(i){}});}),Fa(()=>{let t=this.normalizedConfig(),i=this.theme(),a=this.adjustedScale();i&&ge$1(()=>{if(this.buildGaugeOptions(t,i,a),this.viewReady())try{this.ngGauge()?.update(this.gaugeOptions),this.applyInitialSize();}catch(e){}});}),Fa(()=>{let t=this.ngGauge();!t||this.gaugeBootstrapped()||ge$1(()=>{try{requestAnimationFrame(()=>{this.gaugeBootstrapped.set(!0);try{t.update({animation:!0,animatedValue:!0});}catch(i){}});}catch(i){}});}),Fa(()=>{let t=this.currentState();this.viewReady()&&ge$1(()=>{let i=this.normalizedConfig(),a=this.theme();if(!a||i.ignoreZones)return;let e={},o=i.gauge?.enableNeedle,n=c(i.color??"contrast",a);switch(t){case n$1.Alarm:o?(e.colorNeedle=a.zoneAlarm,e.colorValueText=a.zoneAlarm):(e.colorBarProgress=a.zoneAlarm,e.colorValueText=a.zoneAlarm);break;case n$1.Warn:o?(e.colorNeedle=a.zoneWarn,e.colorValueText=a.zoneWarn):(e.colorBarProgress=a.zoneWarn,e.colorValueText=a.zoneWarn);break;case n$1.Alert:o?(e.colorNeedle=a.zoneAlert,e.colorValueText=a.zoneAlert):(e.colorBarProgress=a.zoneAlert,e.colorValueText=a.zoneAlert);break;default:o?(e.colorNeedle=n.color,e.colorValueText=n.color):(e.colorBarProgress=n.color,e.colorValueText=n.color);}try{this.ngGauge()?.update(e);}catch(r){}});});}buildGaugeOptions(t,i,a){let e=this.gaugeOptions={},o=t.gauge?.subType==="vertical",n=t.gauge?.enableNeedle,r=t.gauge?.enableTicks,m=this.gaugePathConfig();e.minValue=a.min,e.maxValue=a.max,e.valueInt=t.numInt??1,e.valueDec=t.numDecimal??2,e.title=this.displayName(),e.fontTitleSize=40,e.fontTitle="Roboto",e.fontTitleWeight="bold",e.barLength=o?80:90,e.barWidth=r?n?0:30:60,e.barProgress=true,e.barBeginCircle=0,e.barStrokeWidth=0,e.barShadow=0,e.needle=!!n,e.needleType=n?"arrow":"line",e.needleStart=n?o?200:155:-45,e.needleEnd=n?o?175:180:55,e.needleShadow=true,e.needleSide="both",e.units=m?.convertUnitTo??"",e.fontUnits="Roboto",e.fontUnitsWeight="normal",e.borders=false,e.borderOuterWidth=0,e.borderMiddleWidth=0,e.borderInnerWidth=0,e.borderShadowWidth=0,e.borderRadius=0,e.valueBox=true,e.valueBoxWidth=35,e.valueBoxStroke=0,e.valueBoxBorderRadius=10,e.colorValueBoxRect="",e.colorValueBoxRectEnd="",e.colorValueBoxShadow="",e.fontValueSize=50,e.fontValue="Roboto",e.fontValueWeight="bold",e.valueTextShadow=false,e.fontNumbers="Roboto",e.fontNumbersWeight="normal",e.fontUnitsSize=o?40:35,e.colorTitle=c("contrast",i).dim,e.colorUnits=c("contrast",i).dim,e.colorValueBoxBackground=i.background;let u=c(t.color??"contrast",i);e.colorValueText=u.color,n?(e.colorNeedle=u.color,e.colorNeedleEnd=u.color,e.needleWidth=45,e.colorNeedleShadowUp=u.color,e.colorNeedleShadowDown=u.color):(e.colorBarProgress=u.color,e.colorBarProgressEnd="",e.needleWidth=0),e.colorPlate=i.cardColor,e.colorBar=i.background,e.colorBarEnd="",e.colorBarStroke="0",e.colorMajorTicks=c("contrast",i).dim,e.colorMinorTicks=c("contrast",i).dim,e.colorNumbers=c("contrast",i).dim,e.majorTicks=r?a.majorTicks:[],e.majorTicksInt=t.numInt??1,e.majorTicksDec=t.numDecimal??2,e.strokeTicks=!!r,e.minorTicks=r?2:0,e.ticksWidthMinor=r?6:0,e.numberSide=n?"right":"left",e.fontNumbersSize=r?o?22:30:0,e.numbersMargin=o?n?-7:-3:n?-33:-5,e.ticksWidth=r?n&&o?15:10:0,e.ticksPadding=r?o?n?0:5:n?9:8:0,e.tickSide="left",e.animation=this.animationEnabled(),e.animationRule="linear",e.animatedValue=this.animationEnabled(),e.animateOnInit=false,e.animationDuration=(m?.sampleTime??500)-25,e.highlights=[],e.highlightsWidth=t.gauge?.highlightsWidth;let N=this.highlights();N.length&&(e.highlights=JSON.stringify(N));}ngAfterViewInit(){this.viewReady.set(true),this.applyInitialSize();try{this.ngGauge()?.update(this.gaugeOptions);}catch(t){}}applyInitialSize(){let t=this.gauge()?.nativeElement;if(!t)return;let i=t.getBoundingClientRect(),a=.3,e,o;this.normalizedConfig().gauge?.subType==="vertical"?(e=i.height,o=i.height*a):(o=i.width,e=i.width*a);let m={height:e,width:o};try{this.ngGauge()?.update(m);}catch(u){}}onResized(t){let i=this.normalizedConfig(),a=.3,e=i.gauge?.subType==="vertical",o=0,n=0;e?(n=t.contentRect.height,o=n*a,o>t.contentRect.width&&(o=t.contentRect.width,n=o/a)):(o=t.contentRect.width,n=o*a,n>t.contentRect.height&&(n=t.contentRect.height,o=n/a));let r={width:o,height:n-10};try{this.ngGauge()?.update(r);}catch(m){}}static \u0275fac=function(i){return new(i||s)};static \u0275cmp=JD({type:s,selectors:[["widget-gauge-ng-linear"]],viewQuery:function(i,a){i&1&&eg(a.ngGauge,Z,5)(a.gauge,Z,5,Lr),i&2&&Kw(2);},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:1,vars:1,consts:[["linearGauge",""],["kipResizeObserver","",1,"linearGauge",3,"options","value"],["kipResizeObserver","",1,"linearGauge",3,"resizeChange","options","value"]],template:function(i,a){i&1&&_w(0,Q,2,3,"linear-gauge",1),i&2&&Mw(a.shouldRenderGauge()?0:-1);},dependencies:[u,Gt,Dt$1],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:block} linear-gauge{display:block;position:relative;width:100%;min-width:8px;height:100%;overflow:clip} linear-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:5px}"]})}return s})();export{ge as WidgetGaugeNgLinearComponent};
@@ -0,0 +1 @@
1
+ import {u}from'./chunk-CCfhzpE8.js';import {d1 as Hj,w,du as p,dv as rt,dD as _,v as vt,D as Dt,F as Fa,dn as ge,J as JD,P as Pi,c as $h,u as ul,e as EE,B as Bh,bu as ut,aZ as R,$ as $j,dx as n$1,ay as lv,k as Qh,T as TT,dQ as AT,f as eg,K as Kw}from'./main-YKDNK5VZ.js';var Q=["gaugeCanvas"];typeof steelseries>"u"&&(globalThis.steelseries={BackgroundColor:{DARK_GRAY:"darkGray",SATIN_GRAY:"satinGray",LIGHT_GRAY:"lightGray",WHITE:"white",BLACK:"black",BEIGE:"beige",BROWN:"brown",RED:"red",GREEN:"green",BLUE:"blue",ANTHRACITE:"anthracite",MUD:"mud",PUNCHED_SHEET:"punchedSheet",CARBON:"carbon",STAINLESS:"stainless",BRUSHED_METAL:"brushedMetal",BRUSHED_STAINLESS:"brushedStainless",TURNED:"turned"},FrameDesign:{BLACK_METAL:"blackMetal",METAL:"metal",SHINY_METAL:"shinyMetal",BRASS:"brass",STEEL:"steel",CHROME:"chrome",GOLD:"gold",ANTHRACITE:"anthracite",TILTED_GRAY:"tiltedGray",TILTED_BLACK:"tiltedBlack",GLOSSY_METAL:"glossyMetal"}});var z={darkGray:steelseries.BackgroundColor.DARK_GRAY,satinGray:steelseries.BackgroundColor.SATIN_GRAY,lightGray:steelseries.BackgroundColor.LIGHT_GRAY,white:steelseries.BackgroundColor.WHITE,black:steelseries.BackgroundColor.BLACK,beige:steelseries.BackgroundColor.BEIGE,brown:steelseries.BackgroundColor.BROWN,red:steelseries.BackgroundColor.RED,green:steelseries.BackgroundColor.GREEN,blue:steelseries.BackgroundColor.BLUE,anthracite:steelseries.BackgroundColor.ANTHRACITE,mud:steelseries.BackgroundColor.MUD,punchedSheet:steelseries.BackgroundColor.PUNCHED_SHEET,carbon:steelseries.BackgroundColor.CARBON,stainless:steelseries.BackgroundColor.STAINLESS,brushedMetal:steelseries.BackgroundColor.BRUSHED_METAL,brushedStainless:steelseries.BackgroundColor.BRUSHED_STAINLESS,turned:steelseries.BackgroundColor.TURNED},k={blackMetal:steelseries.FrameDesign.BLACK_METAL,metal:steelseries.FrameDesign.METAL,shinyMetal:steelseries.FrameDesign.SHINY_METAL,brass:steelseries.FrameDesign.BRASS,steel:steelseries.FrameDesign.STEEL,chrome:steelseries.FrameDesign.CHROME,gold:steelseries.FrameDesign.GOLD,anthracite:steelseries.FrameDesign.ANTHRACITE,tiltedGray:steelseries.FrameDesign.TILTED_GRAY,tiltedBlack:steelseries.FrameDesign.TILTED_BLACK,glossyMetal:steelseries.FrameDesign.GLOSSY_METAL},q=(()=>{class l{unitsService=w(ut);canvasService=w(R);canvasRef=$j("gaugeCanvas");widgetUUID=Hj();subType=Hj();barGauge=Hj();radialSize=Hj();backgroundColor=Hj();frameColor=Hj();minValue=Hj();maxValue=Hj();decimals=Hj();zones=Hj();title=Hj();units=Hj();value=Hj();theme=Hj(void 0,{alias:"themeColors"});gaugeStarted=false;gauge=null;gaugeOptions={};latestSizeOptions={};paddingTop=0;lastSizeSignature="";resizeTimer=null;pendingStructuralRebuild=false;ngOnInit(){this.buildOptions();}buildOptions(){this.gaugeOptions={};let e=this.minValue()??0,i=this.maxValue()??100;this.gaugeOptions.minValue=e,this.gaugeOptions.maxValue=i;let t=this.decimals();this.gaugeOptions.lcdDecimals=t??2,this.gaugeOptions.titleString=this.title()??"",this.gaugeOptions.unitString=this.units()??"",this.subType()=="radial"&&(this.gaugeOptions.gaugeType=this.setGaugeType(this.radialSize()));let s=this.zones();if(s){let r=this.theme(),u={emergency:r?.zoneEmergency??"rgba(0,0,0,0)",alarm:r?.zoneAlarm??"rgba(0,0,0,0)",warn:r?.zoneWarn??"rgba(0,0,0,0)",alert:r?.zoneAlert??"rgba(0,0,0,0)",nominal:r?.zoneNominal??"rgba(0,0,0,0)"},d=[],b=[],D=[...s].sort((C,m)=>(C.lower??Number.NEGATIVE_INFINITY)-(m.lower??Number.NEGATIVE_INFINITY));for(let C of D){let m=C.lower,S=C.upper;if(m===void 0||S===void 0)continue;let c=m,p=S,g;switch(C.state){case n$1.Emergency:g=u.emergency;break;case n$1.Alarm:g=u.alarm;break;case n$1.Warn:g=u.warn;break;case n$1.Alert:g=u.alert;break;case n$1.Nominal:g=u.nominal;break;default:g="rgba(0,0,0,0)";}let G=this.units();if(G=="ratio"?(c=m,p=S):(c=this.unitsService.convertToUnit(G??"",m)??m,p=this.unitsService.convertToUnit(G??"",S)??S),!(p<e||c>i)){if(c=Math.max(c,e),p>i){p=i,d.push(steelseries.Section(c,p,g));break}d.push(steelseries.Section(c,p,g));}}this.gaugeOptions.section=d,this.gaugeOptions.area=b,this.gaugeOptions.useSectionColors=true;}let n=this.backgroundColor();n&&n in z&&(this.gaugeOptions.backgroundColor=z[n]);let o=this.frameColor();o&&o in k&&(this.gaugeOptions.frameDesign=k[o]),this.barGauge()&&(this.gaugeOptions.valueColor=steelseries.ColorDef.GREEN),this.gaugeOptions.lcdVisible=true,this.gaugeOptions.thresholdVisible=false,this.gaugeOptions.threshold=this.maxValue(),this.gaugeOptions.ledVisible=false,Object.assign(this.gaugeOptions,this.latestSizeOptions);}setGaugeType(e){switch(e){case "quarter":return steelseries.GaugeType.TYPE1;case "half":return steelseries.GaugeType.TYPE2;case "three-quarter":return steelseries.GaugeType.TYPE3;default:return steelseries.GaugeType.TYPE4}}startGauge(e=false){this.buildOptions();let i=this.widgetUUID();if(!i)return;let t=e||this.pendingStructuralRebuild;if(this.gauge&&!t){this.gauge.setValueAnimated&&this.value()!=null,this.gaugeStarted=true;return}this.pendingStructuralRebuild=false,this.gaugeStarted=true;let s=this.subType();s==="radial"?this.gauge=new steelseries.Radial(i,this.gaugeOptions):s==="linear"&&(this.barGauge()?this.gauge=new steelseries.LinearBargraph(i,this.gaugeOptions):this.gauge=new steelseries.Linear(i,this.gaugeOptions));}onResized(e){if(e.contentRect.height<50||e.contentRect.width<50)return;let i;if(this.subType()==="radial"){let t=Math.floor(Math.min(e.contentRect.height,e.contentRect.width));this.latestSizeOptions={size:t},this.gaugeOptions.size=t,i="radial:"+t;}else {let t=Math.floor(e.contentRect.width),s=Math.floor(e.contentRect.height);this.latestSizeOptions={width:t,height:s},this.gaugeOptions.width=t,this.gaugeOptions.height=s,i=`linear:${t}x${s}`;}i!==this.lastSizeSignature&&(this.lastSizeSignature=i,this.resizeTimer&&window.clearTimeout(this.resizeTimer),this.resizeTimer=window.setTimeout(()=>{this.startGauge(true),this.resizeTimer=null;},120));}ngOnChanges(e){this.gaugeStarted&&(e.value&&!e.value.firstChange&&e.value.currentValue!=null&&this.gauge?.setValueAnimated?.(e.value.currentValue),e.zones&&(this.pendingStructuralRebuild=true,this.startGauge(true)),e.title&&this.gauge?.setTitleString?.(e.title.currentValue??""),e.backgroundColor&&e.backgroundColor.currentValue in z&&this.gauge?.setBackgroundColor?.(z[e.backgroundColor.currentValue]),e.frameColor&&e.frameColor.currentValue in k&&this.gauge?.setFrameDesign?.(k[e.frameColor.currentValue]),e.radialSize&&(this.pendingStructuralRebuild=true,this.startGauge(true)),e.minValue&&e.minValue.currentValue!=null&&this.gauge?.setMinValue?.(e.minValue.currentValue),e.maxValue&&e.maxValue.currentValue!=null&&this.gauge?.setMaxValue?.(e.maxValue.currentValue));}ngOnDestroy(){if(this.gauge&&this.gauge.setValue){let i=this.gauge.getValue?this.gauge.getValue():this.value();this.gauge.setValue(i??0);}let e=this.widgetUUID();if(e){let i=document.getElementById(e);this.canvasService.releaseCanvas(i,{clear:true,removeFromDom:true});}this.gauge=null;}static \u0275fac=function(i){return new(i||l)};static \u0275cmp=JD({type:l,selectors:[["gauge-steel"]],viewQuery:function(i,t){i&1&&eg(t.canvasRef,Q,5),i&2&&Kw();},inputs:{widgetUUID:[1,"widgetUUID"],subType:[1,"subType"],barGauge:[1,"barGauge"],radialSize:[1,"radialSize"],backgroundColor:[1,"backgroundColor"],frameColor:[1,"frameColor"],minValue:[1,"minValue"],maxValue:[1,"maxValue"],decimals:[1,"decimals"],zones:[1,"zones"],title:[1,"title"],units:[1,"units"],value:[1,"value"],theme:[1,"themeColors","theme"]},features:[lv],decls:4,vars:2,consts:[["gaugeCanvas",""],["kipResizeObserver","",1,"wrapper",3,"resizeChange"],[2,"z-index","inherit",3,"id"]],template:function(i,t){i&1&&(Pi(0,"div",1),Qh("resizeChange",function(n){return t.onResized(n)}),Pi(1,"canvas",2,0),TT(3," Browser does not support canvas element. "),ul()()),i&2&&(EE(),Bh("id",AT(t.widgetUUID())));},dependencies:[u],styles:[".sgWrapper[_ngcontent-%COMP%]{height:100%;width:100%;text-align:center}"]})}return l})();var ue=(()=>{class l{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);streams=w(rt);metadata=w(_);static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:true,showPathSkUnitsFilter:true,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{type:"linear",lower:0,upper:100},gauge:{type:"steel",subType:"radial",backgroundColor:"carbon",faceColor:"anthracite",radialSize:"full",rotateFace:false,digitalMeter:false},numDecimal:2,enableTimeout:false,dataTimeout:5,ignoreZones:false};dataValue=vt(0);zones=vt([]);normalizedConfig=Dt(()=>this.runtime.options()??l.DEFAULT_CONFIG);gaugePathConfig=Dt(()=>this.normalizedConfig().paths?.gaugePath);displayName=Dt(()=>this.normalizedConfig().displayName||"Gauge Label");gaugeUnits=Dt(()=>this.gaugePathConfig()?.convertUnitTo??"");constructor(){Fa(()=>{let e=this.normalizedConfig();this.gaugePathConfig()?.path&&ge(()=>this.streams.observe("gaugePath",t=>{let s=t?.data?.value,n=e.displayScale?.lower??0,o=e.displayScale?.upper??n+100;if(s==null)this.dataValue.set(n);else {let r=Math.min(Math.max(s,n),o);this.dataValue.set(r);}}));}),Fa(()=>{if(this.normalizedConfig().ignoreZones){this.zones.set([]);return}if(!this.gaugePathConfig()?.path){this.zones.set([]);return}ge(()=>this.metadata.observe("gaugePath")),this.zones.set(this.metadata.zones());});}static \u0275fac=function(i){return new(i||l)};static \u0275cmp=JD({type:l,selectors:[["widget-gauge-steel"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:2,vars:14,consts:[[1,"wrapper"],[3,"widgetUUID","subType","barGauge","radialSize","backgroundColor","frameColor","minValue","maxValue","decimals","zones","title","units","value","themeColors"]],template:function(i,t){if(i&1&&(Pi(0,"div",0),$h(1,"gauge-steel",1),ul()),i&2){let s,n,o,r,u,d,b,D;EE(),Bh("widgetUUID",t.id())("subType",(s=t.runtime.options())==null||s.gauge==null?null:s.gauge.subType)("barGauge",(n=t.runtime.options())==null||n.gauge==null?null:n.gauge.digitalMeter)("radialSize",(o=t.runtime.options())==null||o.gauge==null?null:o.gauge.radialSize)("backgroundColor",(r=t.runtime.options())==null||r.gauge==null?null:r.gauge.backgroundColor)("frameColor",(u=t.runtime.options())==null||u.gauge==null?null:u.gauge.faceColor)("minValue",(d=t.runtime.options())==null||d.displayScale==null?null:d.displayScale.lower)("maxValue",(b=t.runtime.options())==null||b.displayScale==null?null:b.displayScale.upper)("decimals",(D=t.runtime.options())==null?null:D.numDecimal)("zones",t.zones())("title",t.displayName())("units",t.gaugeUnits())("value",t.dataValue())("themeColors",t.theme());}},dependencies:[q],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}gauge-steel[_ngcontent-%COMP%]{display:block;position:relative;width:100%;height:100%} .wrapper{display:block;position:relative;width:100%;height:100%;padding:10px} .wrapper>canvas{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]})}return l})();export{ue as WidgetSteelGaugeComponent};
@@ -1 +1 @@
1
- import {d1 as Hj,w,a as G,G as Gi,J as JD,bh as xp,bP as si,P as Pi,_ as _w,u as ul,e as EE,M as Mw,T as TT,h as Fw,c as $h,k as Qh,l as ud,g as qw,m as dd}from'./main-BAV5VDOD.js';function y(n,k){if(n&1){let r=Fw();Pi(0,"h3"),TT(1,"Getting Started"),ul(),Pi(2,"p"),TT(3,"Welcome to KIP! Here are some basic gestures to help you navigate the application. Access the "),Pi(4,"a",1),TT(5,"KIP Help"),ul(),TT(6," documentation to learn more about KIP."),ul(),Pi(7,"table",2)(8,"thead")(9,"tr")(10,"th"),TT(11,"Actions"),ul(),Pi(12,"th"),TT(13,"Touch"),ul(),Pi(14,"th"),TT(15,"Mouse"),ul(),Pi(16,"th"),TT(17,"Keyboard Shortcuts"),ul()()(),Pi(18,"tbody")(19,"tr")(20,"td"),TT(21,"Open Actions menu"),ul(),Pi(22,"td"),TT(23,"Swipe left"),ul(),Pi(24,"td"),TT(25,"Click, drag left, and release"),ul(),Pi(26,"td")(27,"kbd"),TT(28,"Shift"),ul(),TT(29," + "),Pi(30,"kbd"),TT(31,"Ctrl"),ul(),TT(32," + "),Pi(33,"kbd",3),TT(34,"\u2190"),ul(),TT(35," (Left Arrow)"),ul()(),Pi(36,"tr")(37,"td"),TT(38,"Open Notification menu"),ul(),Pi(39,"td"),TT(40,"Swipe right"),ul(),Pi(41,"td"),TT(42,"Click, drag right, and release"),ul(),Pi(43,"td")(44,"kbd"),TT(45,"Shift"),ul(),TT(46," + "),Pi(47,"kbd"),TT(48,"Ctrl"),ul(),TT(49," + "),Pi(50,"kbd",3),TT(51,"\u2192"),ul(),TT(52," (Right Arrow)"),ul()(),Pi(53,"tr")(54,"td"),TT(55,"Cycle through dashboards"),ul(),Pi(56,"td"),TT(57,"Swipe up/down"),ul(),Pi(58,"td"),TT(59,"Click, drag up/down, and release"),ul(),Pi(60,"td")(61,"kbd"),TT(62,"Shift"),ul(),TT(63," + "),Pi(64,"kbd"),TT(65,"Ctrl"),ul(),TT(66," + "),Pi(67,"kbd",3),TT(68,"\u2191"),ul(),TT(69,"/"),Pi(70,"kbd",3),TT(71,"\u2193"),ul(),TT(72," (Up/Down Arrow)"),ul()(),Pi(73,"tr")(74,"td"),TT(75,"Toggle Fullscreen"),ul(),Pi(76,"td"),TT(77,"N/A"),ul(),Pi(78,"td"),TT(79,"N/A"),ul(),Pi(80,"td")(81,"kbd"),TT(82,"Shift"),ul(),TT(83," + "),Pi(84,"kbd"),TT(85,"Ctrl"),ul(),TT(86," + "),Pi(87,"kbd"),TT(88,"F"),ul()()(),Pi(89,"tr")(90,"td"),TT(91,"Toggle Night mode"),ul(),Pi(92,"td"),TT(93,"N/A"),ul(),Pi(94,"td"),TT(95,"N/A"),ul(),Pi(96,"td")(97,"kbd"),TT(98,"Shift"),ul(),TT(99," + "),Pi(100,"kbd"),TT(101,"Ctrl"),ul(),TT(102," + "),Pi(103,"kbd"),TT(104,"N"),ul()()(),Pi(105,"tr")(106,"td"),TT(107,"Toggle dashboard edit mode"),ul(),Pi(108,"td"),TT(109,"N/A"),ul(),Pi(110,"td"),TT(111,"N/A"),ul(),Pi(112,"td")(113,"kbd"),TT(114,"Shift"),ul(),TT(115," + "),Pi(116,"kbd"),TT(117,"Ctrl"),ul(),TT(118," + "),Pi(119,"kbd"),TT(120,"E"),ul()()()()(),Pi(121,"i"),TT(122,"Note that the words Touch and Tap are synonymous with mouse Click."),ul(),$h(123,"br")(124,"br"),Pi(125,"h3"),TT(126,"Login to Signal K"),ul(),Pi(127,"p"),TT(128," The first step is to configure Signal K server authentication ("),Pi(129,"i"),TT(130,"a pre-existing Signal K server username and password is required"),ul(),TT(131,"). Go to KIP's Connectivity options, toggle "),Pi(132,"strong"),TT(133,"Login to server"),ul(),TT(134,", enter your Signal K credentials and click "),Pi(135,"strong"),TT(136,"Sign in"),ul(),TT(137,". Once completed, click the upper right X button to get back to this dashboard ("),Pi(138,"a",4),TT(139,"Connectivity options"),ul(),TT(140,"). "),ul(),Pi(141,"ul")(142,"li"),TT(143," If you don\u2019t have a Signal K account, ask your captain or access the Signal K Admin Settings / Users page and create a user. "),ul(),Pi(144,"li"),TT(145," If you see an error, double-check your username and password, and make sure your device is on the same network as your Signal K server. "),ul()(),Pi(146,"h3"),TT(147,"Option 1: Load Demonstration Dashboards"),ul(),Pi(148,"p"),TT(149," Try the sample dashboards using data from your server: "),$h(150,"br"),Pi(151,"button",5),Qh("click",function(){ud(r);let l=qw();return dd(l.loadDemoConfig())}),TT(152,"Load Demo"),ul()(),Pi(153,"h3"),TT(154,"Option 2: Create Your Own Layout"),ul(),Pi(155,"p"),TT(156,' The text you are reading is actually a widget that fills half of the dashboard. The screen is split in halves at the middle. This mode is called Chartplotter mode. It can later be turned off in Settings / Options / Display. Dashboards are "Locked" by default to prevent accidental modifications. To edit a dashboard, swipe left and hit the bottom unlock menu button. Note that you can add and manage dashboards using the Settings button from the Actions menu. '),ul(),Pi(157,"p")(158,"strong"),TT(159,"Try editing the Dashboard now to receive further instructions!"),ul()();}}function v(n,k){n&1&&(Pi(0,"h2"),TT(1,"Changing Layouts"),ul(),TT(2," Follow these simple steps to learn how to change your dashboard layout: "),Pi(3,"ol")(4,"li"),TT(5,"Resize this Tutorial widget using the now visible dashed borders or corners arrows. Resize it so it does not take up all the screen. You need free space in your dashboard to add more widgets. You can delete this Tutorial widget later when you are done with the instructions."),ul(),Pi(6,"li"),TT(7,"Touch & Hold or Click & Hold in an empty area to open the Add Widget selection panel."),ul(),Pi(8,"li"),TT(9,"Choose a widget from the selection panel to add it to the dashboard."),ul()(),Pi(10,"h3"),TT(11,"Possible widget operations"),ul(),Pi(12,"ul")(13,"li")(14,"strong"),TT(15,"Touch and drag"),ul(),TT(16," to move widgets"),ul(),Pi(17,"li")(18,"strong"),TT(19,"Drag corners and sides"),ul(),TT(20," to resize widgets"),ul(),Pi(21,"li")(22,"strong"),TT(23,"Double Tap"),ul(),TT(24," on a widget to configure it"),ul(),Pi(25,"li")(26,"strong"),TT(27,"Press and Hold"),ul(),TT(28," on a widget to delete or duplicate widgets"),ul()(),Pi(29,"h2"),TT(30,"Exiting dashboard edit mode"),ul(),Pi(31,"p"),TT(32,"Use the Save or Cancel buttons in the lower right corner to either persist your changes or revert changes."),ul(),Pi(33,"h2"),TT(34,"Adding more dashboards"),ul(),Pi(35,"p"),TT(36,"Swipe left and hit the Dashboards button. From this page you can add, rename, order, delete, and duplicate entire dashboards."),ul());}var N=(()=>{class n{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={filterSelfPaths:true};dashboard=w(G);settings=w(Gi);loadDemoConfig(){this.settings.loadDemoConfig();}static \u0275fac=function(o){return new(o||n)};static \u0275cmp=JD({type:n,selectors:[["widget-tutorial"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:3,vars:1,consts:[[1,"tutorial-container"],["routerLink","/help"],[1,"nav-table"],[2,"font-size","x-large"],["routerLink","/options"],["mat-flat-button","",2,"margin-left","15px",3,"click"]],template:function(o,l){o&1&&(Pi(0,"div",0),_w(1,y,160,0)(2,v,37,0),ul()),o&2&&(EE(),Mw(l.dashboard.isDashboardStatic()?1:2));},dependencies:[xp,si],styles:[".tutorial-container[_ngcontent-%COMP%]{position:absolute;top:0;left:0;display:block;height:100%;width:100%;overflow-y:auto}.tutorial-container[_ngcontent-%COMP%]{padding:0 15px}.nav-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:2em}.nav-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .nav-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border:1px solid #bbb;padding:.5em 1em;text-align:center}.nav-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background:#ddd;color:#222;font-weight:700}.nav-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(2n){background:#242424}.warning[_ngcontent-%COMP%]{color:#b71c1c}.button-group[_ngcontent-%COMP%]{margin-top:2em;display:flex;gap:20px}a[_ngcontent-%COMP%]:visited, a[_ngcontent-%COMP%]:link{color:var(--kip-blue-color)}"]})}return n})();export{N as WidgetTutorialComponent};
1
+ import {d1 as Hj,w,a as G,G as Gi,J as JD,bh as xp,bP as si,P as Pi,_ as _w,u as ul,e as EE,M as Mw,T as TT,h as Fw,c as $h,k as Qh,l as ud,g as qw,m as dd}from'./main-YKDNK5VZ.js';function y(n,k){if(n&1){let r=Fw();Pi(0,"h3"),TT(1,"Getting Started"),ul(),Pi(2,"p"),TT(3,"Welcome to KIP! Here are some basic gestures to help you navigate the application. Access the "),Pi(4,"a",1),TT(5,"KIP Help"),ul(),TT(6," documentation to learn more about KIP."),ul(),Pi(7,"table",2)(8,"thead")(9,"tr")(10,"th"),TT(11,"Actions"),ul(),Pi(12,"th"),TT(13,"Touch"),ul(),Pi(14,"th"),TT(15,"Mouse"),ul(),Pi(16,"th"),TT(17,"Keyboard Shortcuts"),ul()()(),Pi(18,"tbody")(19,"tr")(20,"td"),TT(21,"Open Actions menu"),ul(),Pi(22,"td"),TT(23,"Swipe left"),ul(),Pi(24,"td"),TT(25,"Click, drag left, and release"),ul(),Pi(26,"td")(27,"kbd"),TT(28,"Shift"),ul(),TT(29," + "),Pi(30,"kbd"),TT(31,"Ctrl"),ul(),TT(32," + "),Pi(33,"kbd",3),TT(34,"\u2190"),ul(),TT(35," (Left Arrow)"),ul()(),Pi(36,"tr")(37,"td"),TT(38,"Open Notification menu"),ul(),Pi(39,"td"),TT(40,"Swipe right"),ul(),Pi(41,"td"),TT(42,"Click, drag right, and release"),ul(),Pi(43,"td")(44,"kbd"),TT(45,"Shift"),ul(),TT(46," + "),Pi(47,"kbd"),TT(48,"Ctrl"),ul(),TT(49," + "),Pi(50,"kbd",3),TT(51,"\u2192"),ul(),TT(52," (Right Arrow)"),ul()(),Pi(53,"tr")(54,"td"),TT(55,"Cycle through dashboards"),ul(),Pi(56,"td"),TT(57,"Swipe up/down"),ul(),Pi(58,"td"),TT(59,"Click, drag up/down, and release"),ul(),Pi(60,"td")(61,"kbd"),TT(62,"Shift"),ul(),TT(63," + "),Pi(64,"kbd"),TT(65,"Ctrl"),ul(),TT(66," + "),Pi(67,"kbd",3),TT(68,"\u2191"),ul(),TT(69,"/"),Pi(70,"kbd",3),TT(71,"\u2193"),ul(),TT(72," (Up/Down Arrow)"),ul()(),Pi(73,"tr")(74,"td"),TT(75,"Toggle Fullscreen"),ul(),Pi(76,"td"),TT(77,"N/A"),ul(),Pi(78,"td"),TT(79,"N/A"),ul(),Pi(80,"td")(81,"kbd"),TT(82,"Shift"),ul(),TT(83," + "),Pi(84,"kbd"),TT(85,"Ctrl"),ul(),TT(86," + "),Pi(87,"kbd"),TT(88,"F"),ul()()(),Pi(89,"tr")(90,"td"),TT(91,"Toggle Night mode"),ul(),Pi(92,"td"),TT(93,"N/A"),ul(),Pi(94,"td"),TT(95,"N/A"),ul(),Pi(96,"td")(97,"kbd"),TT(98,"Shift"),ul(),TT(99," + "),Pi(100,"kbd"),TT(101,"Ctrl"),ul(),TT(102," + "),Pi(103,"kbd"),TT(104,"N"),ul()()(),Pi(105,"tr")(106,"td"),TT(107,"Toggle dashboard edit mode"),ul(),Pi(108,"td"),TT(109,"N/A"),ul(),Pi(110,"td"),TT(111,"N/A"),ul(),Pi(112,"td")(113,"kbd"),TT(114,"Shift"),ul(),TT(115," + "),Pi(116,"kbd"),TT(117,"Ctrl"),ul(),TT(118," + "),Pi(119,"kbd"),TT(120,"E"),ul()()()()(),Pi(121,"i"),TT(122,"Note that the words Touch and Tap are synonymous with mouse Click."),ul(),$h(123,"br")(124,"br"),Pi(125,"h3"),TT(126,"Login to Signal K"),ul(),Pi(127,"p"),TT(128," The first step is to configure Signal K server authentication ("),Pi(129,"i"),TT(130,"a pre-existing Signal K server username and password is required"),ul(),TT(131,"). Go to KIP's Connectivity options, toggle "),Pi(132,"strong"),TT(133,"Login to server"),ul(),TT(134,", enter your Signal K credentials and click "),Pi(135,"strong"),TT(136,"Sign in"),ul(),TT(137,". Once completed, click the upper right X button to get back to this dashboard ("),Pi(138,"a",4),TT(139,"Connectivity options"),ul(),TT(140,"). "),ul(),Pi(141,"ul")(142,"li"),TT(143," If you don\u2019t have a Signal K account, ask your captain or access the Signal K Admin Settings / Users page and create a user. "),ul(),Pi(144,"li"),TT(145," If you see an error, double-check your username and password, and make sure your device is on the same network as your Signal K server. "),ul()(),Pi(146,"h3"),TT(147,"Option 1: Load Demonstration Dashboards"),ul(),Pi(148,"p"),TT(149," Try the sample dashboards using data from your server: "),$h(150,"br"),Pi(151,"button",5),Qh("click",function(){ud(r);let l=qw();return dd(l.loadDemoConfig())}),TT(152,"Load Demo"),ul()(),Pi(153,"h3"),TT(154,"Option 2: Create Your Own Layout"),ul(),Pi(155,"p"),TT(156,' The text you are reading is actually a widget that fills half of the dashboard. The screen is split in halves at the middle. This mode is called Chartplotter mode. It can later be turned off in Settings / Options / Display. Dashboards are "Locked" by default to prevent accidental modifications. To edit a dashboard, swipe left and hit the bottom unlock menu button. Note that you can add and manage dashboards using the Settings button from the Actions menu. '),ul(),Pi(157,"p")(158,"strong"),TT(159,"Try editing the Dashboard now to receive further instructions!"),ul()();}}function v(n,k){n&1&&(Pi(0,"h2"),TT(1,"Changing Layouts"),ul(),TT(2," Follow these simple steps to learn how to change your dashboard layout: "),Pi(3,"ol")(4,"li"),TT(5,"Resize this Tutorial widget using the now visible dashed borders or corners arrows. Resize it so it does not take up all the screen. You need free space in your dashboard to add more widgets. You can delete this Tutorial widget later when you are done with the instructions."),ul(),Pi(6,"li"),TT(7,"Touch & Hold or Click & Hold in an empty area to open the Add Widget selection panel."),ul(),Pi(8,"li"),TT(9,"Choose a widget from the selection panel to add it to the dashboard."),ul()(),Pi(10,"h3"),TT(11,"Possible widget operations"),ul(),Pi(12,"ul")(13,"li")(14,"strong"),TT(15,"Touch and drag"),ul(),TT(16," to move widgets"),ul(),Pi(17,"li")(18,"strong"),TT(19,"Drag corners and sides"),ul(),TT(20," to resize widgets"),ul(),Pi(21,"li")(22,"strong"),TT(23,"Double Tap"),ul(),TT(24," on a widget to configure it"),ul(),Pi(25,"li")(26,"strong"),TT(27,"Press and Hold"),ul(),TT(28," on a widget to delete or duplicate widgets"),ul()(),Pi(29,"h2"),TT(30,"Exiting dashboard edit mode"),ul(),Pi(31,"p"),TT(32,"Use the Save or Cancel buttons in the lower right corner to either persist your changes or revert changes."),ul(),Pi(33,"h2"),TT(34,"Adding more dashboards"),ul(),Pi(35,"p"),TT(36,"Swipe left and hit the Dashboards button. From this page you can add, rename, order, delete, and duplicate entire dashboards."),ul());}var N=(()=>{class n{id=Hj.required();type=Hj.required();theme=Hj.required();static DEFAULT_CONFIG={filterSelfPaths:true};dashboard=w(G);settings=w(Gi);loadDemoConfig(){this.settings.loadDemoConfig();}static \u0275fac=function(o){return new(o||n)};static \u0275cmp=JD({type:n,selectors:[["widget-tutorial"]],inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:3,vars:1,consts:[[1,"tutorial-container"],["routerLink","/help"],[1,"nav-table"],[2,"font-size","x-large"],["routerLink","/options"],["mat-flat-button","",2,"margin-left","15px",3,"click"]],template:function(o,l){o&1&&(Pi(0,"div",0),_w(1,y,160,0)(2,v,37,0),ul()),o&2&&(EE(),Mw(l.dashboard.isDashboardStatic()?1:2));},dependencies:[xp,si],styles:[".tutorial-container[_ngcontent-%COMP%]{position:absolute;top:0;left:0;display:block;height:100%;width:100%;overflow-y:auto}.tutorial-container[_ngcontent-%COMP%]{padding:0 15px}.nav-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin-bottom:2em}.nav-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .nav-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border:1px solid #bbb;padding:.5em 1em;text-align:center}.nav-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background:#ddd;color:#222;font-weight:700}.nav-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(2n){background:#242424}.warning[_ngcontent-%COMP%]{color:#b71c1c}.button-group[_ngcontent-%COMP%]{margin-top:2em;display:flex;gap:20px}a[_ngcontent-%COMP%]:visited, a[_ngcontent-%COMP%]:link{color:var(--kip-blue-color)}"]})}return n})();export{N as WidgetTutorialComponent};
@@ -1 +1 @@
1
- import'./chunk-By8ZVvDx.js';import {d1 as Hj,w,du as p,dy as K,ao as ue,aZ as F,bu as ut,dw as S,$ as $j,a6 as Lr,D as Dt,F as Fa,dn as ge,b0 as Wl,J as JD,_ as _w,M as Mw,f as eg,K as Kw,cp as Uh,ci as dl,T as TT,cj as fl}from'./main-BAV5VDOD.js';var _=["widgetDataChart"];function E(m,t){m&1&&Uh(0,"canvas",1,0);}function I(m,t){m&1&&(dl(0,"div",2)(1,"p"),TT(2,"Ready to configure"),fl(),dl(3,"p",3),TT(4,"Double-tap to begin"),fl()());}var U=class m{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);dsService=w(K);ngZone=w(ue);canvasService=w(F);unitsService=w(ut);datasetLifecycle=w(S);widgetDataChart=$j("widgetDataChart",{read:Lr});static DEFAULT_CONFIG={displayName:"Chart Label",color:"contrast",filterSelfPaths:true,datachartPath:null,datachartSource:null,convertUnitTo:null,timeScale:"minute",period:10,numDecimal:1,inverseYAxis:false,datasetAverageArray:"sma",showDataPoints:false,showAverageData:true,trackAgainstAverage:false,showDatasetMinimumValueLine:false,showDatasetMaximumValueLine:false,showDatasetAverageValueLine:true,showDatasetAngleAverageValueLine:false,showLabel:true,showTimeScale:false,startScaleAtZero:false,verticalChart:false,showYScale:false,yScaleSuggestedMin:void 0,yScaleSuggestedMax:void 0,enableMinMaxScaleLimit:false,yScaleMin:void 0,yScaleMax:void 0};lineChartData={datasets:[]};lineChartOptions={parsing:false,datasets:{line:{pointRadius:0,pointHoverRadius:0,tension:.4}},animations:{tension:{easing:"easeInOutCubic"}}};lineChartType="line";chart=null;dsServiceSub=null;datasetConfig=null;dataSourceInfo=null;lastVerticalChart=null;lastAverageValue=null;lastMinimumValue=null;lastMaximumValue=null;hasPath=Dt(()=>!!this.runtime.options()?.datachartPath);pathSignature=Dt(()=>{let t=this.runtime.options();if(t?.datachartPath)return [t.datachartPath,t.convertUnitTo,t.datachartSource,t.timeScale,t.period].join("|")});previousPathSignature=void 0;constructor(){Fa(()=>{let t=this.pathSignature();ge(()=>{t!==this.previousPathSignature&&ge(()=>{this.previousPathSignature=t;let e=this.runtime.options();e&&this.rebuildForDataset(e);});});}),Fa(()=>{let t=this.runtime.options(),e=this.theme();!t||!e||ge(()=>{this.lastVerticalChart!==null&&this.lastVerticalChart!==t.verticalChart?(this.lastVerticalChart=t.verticalChart??false,this.rebuildForDataset(t)):this.chart&&(this.ensureAverageDatasetPresence(),this.updateAnnotationVisibility(),this.applyDynamicTrackAverageStyling(),this.setChartOptions(t),this.setDatasetsColors(),this.ngZone.runOutsideAngular(()=>this.chart?.update("none")));});}),Fa(()=>{let t=this.runtime.options(),e=this.widgetDataChart(),a=this.hasPath();!t||!a||!e||this.chart||ge(()=>this.rebuildForDataset(t));});}rebuildForDataset(t){if(!t.datachartPath||!this.widgetDataChart()||(this.dsServiceSub?.unsubscribe(),this.lineChartData.datasets=[],this.datasetLifecycle.syncDataChartDataset(this.id(),t,this.pathSignature()),this.datasetConfig=this.dsService.getDatasetConfig(this.id())??null,this.dataSourceInfo=this.dsService.getDataSourceInfo(this.id())??null,!this.datasetConfig))return;this.createDatasets(t),this.setChartOptions(t),this.chart?.destroy();let a=this.widgetDataChart()?.nativeElement?.getContext("2d");a&&(this.chart=new Wl(a,{type:this.lineChartType,data:this.lineChartData,options:this.lineChartOptions}),this.startStreaming(),this.ngZone.runOutsideAngular(()=>this.chart?.update()));}setChartOptions(t){let e=this.datasetConfig;e&&(this.lineChartOptions.maintainAspectRatio=false,this.lineChartOptions.animation=false,this.lineChartOptions.indexAxis=t.verticalChart?"y":"x",t.verticalChart?this.lineChartOptions.scales={y:{type:"realtime",display:t.showTimeScale,position:t.verticalChart?"right":"left",suggestedMin:void 0,suggestedMax:void 0,title:{display:true,text:`Last ${e.period} ${e.timeScaleFormat}`,align:"center",color:this.getThemeColors().averageChartLine},time:{unit:e.timeScaleFormat,minUnit:"second",round:"second",displayFormats:{hour:"k:mm''",minute:"mm''",second:'ss"',millisecond:"SSS"}},ticks:{autoSkip:true,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}},x:{type:"linear",display:t.showYScale,position:t.verticalChart?"top":"bottom",suggestedMin:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMin,suggestedMax:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMax,min:t.enableMinMaxScaleLimit?t.yScaleMin:void 0,max:t.enableMinMaxScaleLimit?t.yScaleMax:void 0,beginAtZero:t.startScaleAtZero,reverse:t.inverseYAxis,title:{display:false,text:"Value Axis",align:"center",color:this.getThemeColors().averageChartLine},ticks:{maxTicksLimit:8,precision:t.numDecimal,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}}}:this.lineChartOptions.scales={x:{type:"realtime",display:t.showTimeScale,title:{display:true,text:`Last ${e.period} ${e.timeScaleFormat}`,align:"center",color:this.getThemeColors().averageChartLine},time:{unit:e.timeScaleFormat,minUnit:"second",round:"second",displayFormats:{hour:"k:mm''",minute:"mm''",second:'ss"',millisecond:"SSS"}},ticks:{autoSkip:true,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}},y:{display:t.showYScale,position:"right",suggestedMin:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMin,suggestedMax:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMax,min:t.enableMinMaxScaleLimit?t.yScaleMin:void 0,max:t.enableMinMaxScaleLimit?t.yScaleMax:void 0,beginAtZero:t.startScaleAtZero,reverse:t.inverseYAxis,title:{display:false,text:"Value Axis",align:"center",color:this.getThemeColors().averageChartLine},ticks:{maxTicksLimit:8,precision:t.numDecimal,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}}},this.lineChartOptions.plugins={title:{display:true,align:"end",padding:{top:3,bottom:0},text:"",font:{size:32},color:this.getThemeColors().chartValue},subtitle:{display:t.showLabel,align:"start",padding:{top:-35,bottom:20},text:` ${t.displayName}`,font:{size:22},color:this.getThemeColors().chartLabel},annotation:{annotations:{minimumLine:{type:"line",scaleID:t.verticalChart?"x":"y",display:t.showDatasetMinimumValueLine&&this.lastMinimumValue!==null,value:this.lastMinimumValue??0,drawTime:"afterDatasetsDraw",label:{display:t.showDatasetMinimumValueLine&&this.lastMinimumValue!==null,content:this.lastMinimumValue!==null?`${this.lastMinimumValue.toFixed(t.numDecimal??1)}`:"",position:"start",yAdjust:12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},maximumLine:{type:"line",scaleID:t.verticalChart?"x":"y",display:t.showDatasetMaximumValueLine&&this.lastMaximumValue!==null,value:this.lastMaximumValue??0,drawTime:"afterDatasetsDraw",label:{display:t.showDatasetMaximumValueLine&&this.lastMaximumValue!==null,content:this.lastMaximumValue!==null?`${this.lastMaximumValue.toFixed(t.numDecimal??1)}`:"",position:"start",yAdjust:-12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},averageLine:{type:"line",scaleID:t.verticalChart?"x":"y",display:t.showDatasetAverageValueLine&&this.lastAverageValue!==null,value:this.lastAverageValue??0,borderDash:[6,6],borderColor:this.getThemeColors().averageChartLine,drawTime:"afterDatasetsDraw",label:{display:t.showDatasetAverageValueLine&&this.lastAverageValue!==null,content:this.lastAverageValue!==null?`${this.lastAverageValue.toFixed(t.numDecimal??1)}`:"",position:"start",padding:4,color:this.getThemeColors().chartValue,backgroundColor:"rgba(63,63,63,0.7)"}}}},legend:{display:false},streaming:{duration:(this.dataSourceInfo?.maxDataPoints??0)*(this.dataSourceInfo?.sampleTime??0),delay:this.dataSourceInfo?.sampleTime??0,frameRate:e.timeScaleFormat==="day"?5:e.timeScaleFormat==="hour"?8:e.timeScaleFormat==="minute"?15:30}});}createDatasets(t){let e,a;t.inverseYAxis&&t.trackAgainstAverage?(e="start",a=false):t.inverseYAxis&&!t.trackAgainstAverage?(e=false,a="start"):!t.inverseYAxis&&t.trackAgainstAverage?(e=true,a=false):(e=false,a=true),this.lineChartData.datasets=[],this.lineChartData.datasets.push({label:"Value",data:[],order:t.trackAgainstAverage?1:0,parsing:false,tension:0,pointRadius:t.showDataPoints?t.trackAgainstAverage?0:1.5:0,pointHoverRadius:0,pointHitRadius:0,borderWidth:t.trackAgainstAverage||t.showDataPoints?0:3,fill:e}),t.showAverageData&&this.lineChartData.datasets.push({label:"Average",data:[],order:t.trackAgainstAverage?0:1,parsing:false,tension:.4,pointRadius:t.showDataPoints&&t.trackAgainstAverage?1.5:0,pointHoverRadius:0,pointHitRadius:0,borderWidth:t.trackAgainstAverage?t.showDataPoints?0:3:0,fill:a}),this.setDatasetsColors();}setDatasetsColors(){this.lineChartData.datasets.forEach(t=>{t.label==="Value"?(t.borderColor=this.getThemeColors().valueLine,t.backgroundColor=this.getThemeColors().valueFill):t.label==="Average"&&(t.borderColor=this.getThemeColors().averageLine,t.backgroundColor=this.getThemeColors().averageFill);});}ensureAverageDatasetPresence(){let t=this.runtime.options();if(!t||!this.chart)return;let e=this.lineChartData.datasets.some(a=>a.label==="Average");if(t.showAverageData&&!e){if(this.lineChartData.datasets.findIndex(n=>n.label==="Value")>=0){let n=t.inverseYAxis?t.trackAgainstAverage?false:"start":!t.trackAgainstAverage;this.lineChartData.datasets.push({label:"Average",data:[],order:t.trackAgainstAverage?0:1,parsing:false,tension:.4,pointRadius:0,pointHoverRadius:0,pointHitRadius:0,borderWidth:t.trackAgainstAverage?3:0,fill:n});}}else !t.showAverageData&&e&&(this.lineChartData.datasets=this.lineChartData.datasets.filter(a=>a.label!=="Average"));}applyDynamicTrackAverageStyling(){let t=this.runtime.options();if(!t)return;let e=this.lineChartData.datasets.find(l=>l.label==="Value"),a=this.lineChartData.datasets.find(l=>l.label==="Average"),n,r;t.inverseYAxis&&t.trackAgainstAverage?(n="start",r=false):t.inverseYAxis&&!t.trackAgainstAverage?(n=false,r="start"):!t.inverseYAxis&&t.trackAgainstAverage?(n=true,r=false):(n=false,r=true),e&&(e.order=t.trackAgainstAverage?1:0,e.borderWidth=t.trackAgainstAverage?0:3,e.fill=n),a&&(a.order=t.trackAgainstAverage?0:1,a.borderWidth=t.trackAgainstAverage?3:0,a.fill=r);}updateAnnotationVisibility(){let t=this.runtime.options();if(!t||!this.chart)return;let e=this.chart.options.plugins.annotation?.annotations;if(e){if(e.minimumLine){let a=t.showDatasetMinimumValueLine&&this.lastMinimumValue!==null;e.minimumLine.display=a,e.minimumLine.label&&(e.minimumLine.label.display=a);}if(e.maximumLine){let a=t.showDatasetMaximumValueLine&&this.lastMaximumValue!==null;e.maximumLine.display=a,e.maximumLine.label&&(e.maximumLine.label.display=a);}if(e.averageLine){let a=t.showDatasetAverageValueLine&&this.lastAverageValue!==null;e.averageLine.display=a,e.averageLine.label&&(e.averageLine.label.display=a);}}}getThemeColors(){let t=this.runtime.options()?.color,e={valueLine:"",valueFill:"",averageLine:"",averageFill:"",averageChartLine:"",chartLabel:"",chartValue:""};switch(t){case "contrast":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().contrastDimmer,e.valueFill=this.theme().contrastDimmer,e.averageLine=this.theme().contrast,e.averageFill=this.theme().contrast,e.chartValue=e.averageLine):(e.valueLine=this.theme().contrast,e.valueFill=this.theme().contrast,e.averageLine=this.theme().contrastDimmer,e.averageFill=this.theme().contrastDimmer,e.chartValue=this.theme().contrast),e.averageChartLine=this.theme().contrastDim,e.chartLabel=this.theme().contrastDim;break;case "blue":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().blueDimmer,e.valueFill=this.theme().blueDimmer,e.averageLine=this.theme().blue,e.averageFill=this.theme().blue,e.chartValue=e.averageLine):(e.valueLine=this.theme().blue,e.valueFill=this.theme().blue,e.averageLine=this.theme().blueDimmer,e.averageFill=this.theme().blueDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().blueDim,e.chartLabel=this.theme().contrastDim;break;case "green":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().greenDimmer,e.valueFill=this.theme().greenDimmer,e.averageLine=this.theme().green,e.averageFill=this.theme().green,e.chartValue=e.averageLine):(e.valueLine=this.theme().green,e.valueFill=this.theme().green,e.averageLine=this.theme().greenDimmer,e.averageFill=this.theme().greenDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().greenDim,e.chartLabel=this.theme().contrastDim;break;case "pink":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().pinkDimmer,e.valueFill=this.theme().pinkDimmer,e.averageLine=this.theme().pink,e.averageFill=this.theme().pink,e.chartValue=e.averageLine):(e.valueLine=this.theme().pink,e.valueFill=this.theme().pink,e.averageLine=this.theme().pinkDimmer,e.averageFill=this.theme().pinkDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().pinkDim,e.chartLabel=this.theme().contrastDim;break;case "orange":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().orangeDimmer,e.valueFill=this.theme().orangeDimmer,e.averageLine=this.theme().orange,e.averageFill=this.theme().orange,e.chartValue=e.averageLine):(e.valueLine=this.theme().orange,e.valueFill=this.theme().orange,e.averageLine=this.theme().orangeDimmer,e.averageFill=this.theme().orangeDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().orangeDim,e.chartLabel=this.theme().contrastDim;break;case "purple":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().purpleDimmer,e.valueFill=this.theme().purpleDimmer,e.averageLine=this.theme().purple,e.averageFill=this.theme().purple,e.chartValue=e.averageLine):(e.valueLine=this.theme().purple,e.valueFill=this.theme().purple,e.averageLine=this.theme().purpleDimmer,e.averageFill=this.theme().purpleDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().purpleDim,e.chartLabel=this.theme().contrastDim;break;case "grey":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().greyDimmer,e.valueFill=this.theme().greyDimmer,e.averageLine=this.theme().grey,e.averageFill=this.theme().grey,e.chartValue=e.averageLine):(e.valueLine=this.theme().grey,e.valueFill=this.theme().grey,e.averageLine=this.theme().greyDimmer,e.averageFill=this.theme().greyDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().greyDim,e.chartLabel=this.theme().contrastDim;break;case "yellow":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().yellowDimmer,e.valueFill=this.theme().yellowDimmer,e.averageLine=this.theme().yellow,e.averageFill=this.theme().yellow,e.chartValue=e.averageLine):(e.valueLine=this.theme().yellow,e.valueFill=this.theme().yellow,e.averageLine=this.theme().yellowDimmer,e.averageFill=this.theme().yellowDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().yellowDim,e.chartLabel=this.theme().contrastDim;break}return e}getUnitsLabel(){let t="",e=this.runtime.options()?.convertUnitTo??"";switch(e){case "percent":case "percentraw":t="%";break;case "latitudeMin":t="latitude in minutes";break;case "latitudeSec":t="latitude in secondes";break;case "longitudeMin":t="longitude in minutes";break;case "longitudeSec":t="longitude in secondes";break;default:t=e;break}return t}startStreaming(){let t=this.runtime.options();if(!t?.datachartPath)return;this.dsServiceSub?.unsubscribe();let e=this.dsService.getDatasetBatchThenLiveObservable(this.id());e&&(this.dsServiceSub=e.subscribe(a=>{if(this.chart){if(Array.isArray(a)){let n=this.transformDatasetRows(a,0);if(this.chart.data.datasets[0].data.push(...n),t.showAverageData&&this.lineChartData.datasets[1]){let l=t.datasetAverageArray??"sma",s=this.transformDatasetRows(a,l);this.chart.data.datasets[1].data.push(...s);}let r=a[a.length-1];r&&this.applyTitleAndAnnotationValues(r,t);}else {let n=this.transformDatasetRows([a],0)[0];if(this.chart.data.datasets[0].data.push(n),t.showAverageData&&this.lineChartData.datasets[1]){let r=t.datasetAverageArray??"sma",l=this.transformDatasetRows([a],r)[0];this.chart.data.datasets[1].data.push(l);}this.applyTitleAndAnnotationValues(a,t);}this.ngZone.runOutsideAngular(()=>this.chart?.update("none"));}}));}applyTitleAndAnnotationValues(t,e){if(!this.chart)return;let a=e.convertUnitTo??"",n=e.numDecimal??1,r=e.trackAgainstAverage?t.data.sma??t.data.value:t.data.value,l=this.unitsService.convertToUnit(a,r);if(l!=null&&Number.isFinite(l)){let y=this.chart.options.plugins;y?.title&&(y.title.text=`${l.toFixed(n)} ${this.getUnitsLabel()} `);}let s=t.data.lastAverage!=null?this.unitsService.convertToUnit(a,t.data.lastAverage)??void 0:void 0,h=t.data.lastMinimum!=null?this.unitsService.convertToUnit(a,t.data.lastMinimum)??void 0:void 0,g=t.data.lastMaximum!=null?this.unitsService.convertToUnit(a,t.data.lastMaximum)??void 0:void 0,i=this.chart.options.plugins.annotation?.annotations;i&&(this.lastAverageValue=s!=null&&Number.isFinite(s)?s:null,this.lastMinimumValue=h!=null&&Number.isFinite(h)?h:null,this.lastMaximumValue=g!=null&&Number.isFinite(g)?g:null,i.averageLine&&(this.lastAverageValue!==null?(i.averageLine.value=this.lastAverageValue,i.averageLine.display=e.showDatasetAverageValueLine,i.averageLine.label&&(i.averageLine.label.display=e.showDatasetAverageValueLine,i.averageLine.label.content=`${this.lastAverageValue.toFixed(n)}`)):(i.averageLine.display=false,i.averageLine.label&&(i.averageLine.label.display=false,i.averageLine.label.content=""))),i.minimumLine&&(this.lastMinimumValue!==null?(i.minimumLine.value=this.lastMinimumValue,i.minimumLine.display=e.showDatasetMinimumValueLine,i.minimumLine.label&&(i.minimumLine.label.display=e.showDatasetMinimumValueLine,i.minimumLine.label.content=`${this.lastMinimumValue.toFixed(n)}`)):(i.minimumLine.display=false,i.minimumLine.label&&(i.minimumLine.label.display=false,i.minimumLine.label.content=""))),i.maximumLine&&(this.lastMaximumValue!==null?(i.maximumLine.value=this.lastMaximumValue,i.maximumLine.display=e.showDatasetMaximumValueLine,i.maximumLine.label&&(i.maximumLine.label.display=e.showDatasetMaximumValueLine,i.maximumLine.label.content=`${this.lastMaximumValue.toFixed(n)}`)):(i.maximumLine.display=false,i.maximumLine.label&&(i.maximumLine.label.display=false,i.maximumLine.label.content=""))));}transformDatasetRows(t,e){let a=this.runtime.options();if(!a)return [];let n=s=>this.unitsService.convertToUnit(a.convertUnitTo??"",s)??s,r=a.verticalChart===true,l=a.datasetAverageArray;return t.map(s=>{if(r){if(e===0)return {x:n(s.data.value),y:s.timestamp};{let h={sma:s.data.sma,ema:s.data.ema,dema:s.data.doubleEma,avg:s.data.lastAverage};return {x:n(h[l]??s.data.value),y:s.timestamp}}}else {if(e===0)return {x:s.timestamp,y:n(s.data.value)};{let h={sma:s.data.sma,ema:s.data.ema,dema:s.data.doubleEma,avg:s.data.lastAverage};return {x:s.timestamp,y:n(h[l]??s.data.value)}}}})}ngOnDestroy(){this.dsServiceSub?.unsubscribe(),this.chart?.destroy();let t=this.widgetDataChart?.()?.nativeElement;this.canvasService.releaseCanvas(t,{clear:true,removeFromDom:true});}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=JD({type:m,selectors:[["widget-data-chart"]],viewQuery:function(e,a){e&1&&eg(a.widgetDataChart,_,5,Lr),e&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:2,vars:1,consts:[["widgetDataChart",""],[2,"z-index","inherit"],[1,"empty-state"],[1,"hint"]],template:function(e,a){e&1&&_w(0,E,2,0,"canvas",1)(1,I,5,0,"div",2),e&2&&Mw(a.hasPath()?0:1);},styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.empty-state[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;text-align:center;color:var(--mat-sys-on-surface-variant)}.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:4px 0;padding:0 16px}.empty-state[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{font-size:.85em;opacity:.7}"]})};export{U as WidgetDataChartComponent};
1
+ import'./chunk-BTOTKeBo.js';import {d1 as Hj,w,du as p,dy as K,ao as ue,aZ as R,bu as ut,dw as S,$ as $j,a6 as Lr,D as Dt,F as Fa,dn as ge,b0 as Wl,J as JD,_ as _w,M as Mw,f as eg,K as Kw,cp as Uh,ci as dl,T as TT,cj as fl}from'./main-YKDNK5VZ.js';var _=["widgetDataChart"];function E(m,t){m&1&&Uh(0,"canvas",1,0);}function I(m,t){m&1&&(dl(0,"div",2)(1,"p"),TT(2,"Ready to configure"),fl(),dl(3,"p",3),TT(4,"Double-tap to begin"),fl()());}var U=class m{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);dsService=w(K);ngZone=w(ue);canvasService=w(R);unitsService=w(ut);datasetLifecycle=w(S);widgetDataChart=$j("widgetDataChart",{read:Lr});static DEFAULT_CONFIG={displayName:"Chart Label",color:"contrast",filterSelfPaths:true,datachartPath:null,datachartSource:null,convertUnitTo:null,timeScale:"minute",period:10,numDecimal:1,inverseYAxis:false,datasetAverageArray:"sma",showDataPoints:false,showAverageData:true,trackAgainstAverage:false,showDatasetMinimumValueLine:false,showDatasetMaximumValueLine:false,showDatasetAverageValueLine:true,showDatasetAngleAverageValueLine:false,showLabel:true,showTimeScale:false,startScaleAtZero:false,verticalChart:false,showYScale:false,yScaleSuggestedMin:void 0,yScaleSuggestedMax:void 0,enableMinMaxScaleLimit:false,yScaleMin:void 0,yScaleMax:void 0};lineChartData={datasets:[]};lineChartOptions={parsing:false,datasets:{line:{pointRadius:0,pointHoverRadius:0,tension:.4}},animations:{tension:{easing:"easeInOutCubic"}}};lineChartType="line";chart=null;dsServiceSub=null;datasetConfig=null;dataSourceInfo=null;lastVerticalChart=null;lastAverageValue=null;lastMinimumValue=null;lastMaximumValue=null;hasPath=Dt(()=>!!this.runtime.options()?.datachartPath);pathSignature=Dt(()=>{let t=this.runtime.options();if(t?.datachartPath)return [t.datachartPath,t.convertUnitTo,t.datachartSource,t.timeScale,t.period].join("|")});previousPathSignature=void 0;constructor(){Fa(()=>{let t=this.pathSignature();ge(()=>{t!==this.previousPathSignature&&ge(()=>{this.previousPathSignature=t;let e=this.runtime.options();e&&this.rebuildForDataset(e);});});}),Fa(()=>{let t=this.runtime.options(),e=this.theme();!t||!e||ge(()=>{this.lastVerticalChart!==null&&this.lastVerticalChart!==t.verticalChart?(this.lastVerticalChart=t.verticalChart??false,this.rebuildForDataset(t)):this.chart&&(this.ensureAverageDatasetPresence(),this.updateAnnotationVisibility(),this.applyDynamicTrackAverageStyling(),this.setChartOptions(t),this.setDatasetsColors(),this.ngZone.runOutsideAngular(()=>this.chart?.update("none")));});}),Fa(()=>{let t=this.runtime.options(),e=this.widgetDataChart(),a=this.hasPath();!t||!a||!e||this.chart||ge(()=>this.rebuildForDataset(t));});}rebuildForDataset(t){if(!t.datachartPath||!this.widgetDataChart()||(this.dsServiceSub?.unsubscribe(),this.lineChartData.datasets=[],this.datasetLifecycle.syncDataChartDataset(this.id(),t,this.pathSignature()),this.datasetConfig=this.dsService.getDatasetConfig(this.id())??null,this.dataSourceInfo=this.dsService.getDataSourceInfo(this.id())??null,!this.datasetConfig))return;this.createDatasets(t),this.setChartOptions(t),this.chart?.destroy();let a=this.widgetDataChart()?.nativeElement?.getContext("2d");a&&(this.chart=new Wl(a,{type:this.lineChartType,data:this.lineChartData,options:this.lineChartOptions}),this.startStreaming(),this.ngZone.runOutsideAngular(()=>this.chart?.update()));}setChartOptions(t){let e=this.datasetConfig;e&&(this.lineChartOptions.maintainAspectRatio=false,this.lineChartOptions.animation=false,this.lineChartOptions.indexAxis=t.verticalChart?"y":"x",t.verticalChart?this.lineChartOptions.scales={y:{type:"realtime",display:t.showTimeScale,position:t.verticalChart?"right":"left",suggestedMin:void 0,suggestedMax:void 0,title:{display:true,text:`Last ${e.period} ${e.timeScaleFormat}`,align:"center",color:this.getThemeColors().averageChartLine},time:{unit:e.timeScaleFormat,minUnit:"second",round:"second",displayFormats:{hour:"k:mm''",minute:"mm''",second:'ss"',millisecond:"SSS"}},ticks:{autoSkip:true,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}},x:{type:"linear",display:t.showYScale,position:t.verticalChart?"top":"bottom",suggestedMin:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMin,suggestedMax:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMax,min:t.enableMinMaxScaleLimit?t.yScaleMin:void 0,max:t.enableMinMaxScaleLimit?t.yScaleMax:void 0,beginAtZero:t.startScaleAtZero,reverse:t.inverseYAxis,title:{display:false,text:"Value Axis",align:"center",color:this.getThemeColors().averageChartLine},ticks:{maxTicksLimit:8,precision:t.numDecimal,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}}}:this.lineChartOptions.scales={x:{type:"realtime",display:t.showTimeScale,title:{display:true,text:`Last ${e.period} ${e.timeScaleFormat}`,align:"center",color:this.getThemeColors().averageChartLine},time:{unit:e.timeScaleFormat,minUnit:"second",round:"second",displayFormats:{hour:"k:mm''",minute:"mm''",second:'ss"',millisecond:"SSS"}},ticks:{autoSkip:true,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}},y:{display:t.showYScale,position:"right",suggestedMin:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMin,suggestedMax:t.enableMinMaxScaleLimit?void 0:t.yScaleSuggestedMax,min:t.enableMinMaxScaleLimit?t.yScaleMin:void 0,max:t.enableMinMaxScaleLimit?t.yScaleMax:void 0,beginAtZero:t.startScaleAtZero,reverse:t.inverseYAxis,title:{display:false,text:"Value Axis",align:"center",color:this.getThemeColors().averageChartLine},ticks:{maxTicksLimit:8,precision:t.numDecimal,color:this.getThemeColors().averageChartLine,major:{enabled:true}},grid:{display:true,color:this.theme().contrastDimmer}}},this.lineChartOptions.plugins={title:{display:true,align:"end",padding:{top:3,bottom:0},text:"",font:{size:32},color:this.getThemeColors().chartValue},subtitle:{display:t.showLabel,align:"start",padding:{top:-35,bottom:20},text:` ${t.displayName}`,font:{size:22},color:this.getThemeColors().chartLabel},annotation:{annotations:{minimumLine:{type:"line",scaleID:t.verticalChart?"x":"y",display:t.showDatasetMinimumValueLine&&this.lastMinimumValue!==null,value:this.lastMinimumValue??0,drawTime:"afterDatasetsDraw",label:{display:t.showDatasetMinimumValueLine&&this.lastMinimumValue!==null,content:this.lastMinimumValue!==null?`${this.lastMinimumValue.toFixed(t.numDecimal??1)}`:"",position:"start",yAdjust:12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},maximumLine:{type:"line",scaleID:t.verticalChart?"x":"y",display:t.showDatasetMaximumValueLine&&this.lastMaximumValue!==null,value:this.lastMaximumValue??0,drawTime:"afterDatasetsDraw",label:{display:t.showDatasetMaximumValueLine&&this.lastMaximumValue!==null,content:this.lastMaximumValue!==null?`${this.lastMaximumValue.toFixed(t.numDecimal??1)}`:"",position:"start",yAdjust:-12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},averageLine:{type:"line",scaleID:t.verticalChart?"x":"y",display:t.showDatasetAverageValueLine&&this.lastAverageValue!==null,value:this.lastAverageValue??0,borderDash:[6,6],borderColor:this.getThemeColors().averageChartLine,drawTime:"afterDatasetsDraw",label:{display:t.showDatasetAverageValueLine&&this.lastAverageValue!==null,content:this.lastAverageValue!==null?`${this.lastAverageValue.toFixed(t.numDecimal??1)}`:"",position:"start",padding:4,color:this.getThemeColors().chartValue,backgroundColor:"rgba(63,63,63,0.7)"}}}},legend:{display:false},streaming:{duration:(this.dataSourceInfo?.maxDataPoints??0)*(this.dataSourceInfo?.sampleTime??0),delay:this.dataSourceInfo?.sampleTime??0,frameRate:e.timeScaleFormat==="day"?5:e.timeScaleFormat==="hour"?8:e.timeScaleFormat==="minute"?15:30}});}createDatasets(t){let e,a;t.inverseYAxis&&t.trackAgainstAverage?(e="start",a=false):t.inverseYAxis&&!t.trackAgainstAverage?(e=false,a="start"):!t.inverseYAxis&&t.trackAgainstAverage?(e=true,a=false):(e=false,a=true),this.lineChartData.datasets=[],this.lineChartData.datasets.push({label:"Value",data:[],order:t.trackAgainstAverage?1:0,parsing:false,tension:0,pointRadius:t.showDataPoints?t.trackAgainstAverage?0:1.5:0,pointHoverRadius:0,pointHitRadius:0,borderWidth:t.trackAgainstAverage||t.showDataPoints?0:3,fill:e}),t.showAverageData&&this.lineChartData.datasets.push({label:"Average",data:[],order:t.trackAgainstAverage?0:1,parsing:false,tension:.4,pointRadius:t.showDataPoints&&t.trackAgainstAverage?1.5:0,pointHoverRadius:0,pointHitRadius:0,borderWidth:t.trackAgainstAverage?t.showDataPoints?0:3:0,fill:a}),this.setDatasetsColors();}setDatasetsColors(){this.lineChartData.datasets.forEach(t=>{t.label==="Value"?(t.borderColor=this.getThemeColors().valueLine,t.backgroundColor=this.getThemeColors().valueFill):t.label==="Average"&&(t.borderColor=this.getThemeColors().averageLine,t.backgroundColor=this.getThemeColors().averageFill);});}ensureAverageDatasetPresence(){let t=this.runtime.options();if(!t||!this.chart)return;let e=this.lineChartData.datasets.some(a=>a.label==="Average");if(t.showAverageData&&!e){if(this.lineChartData.datasets.findIndex(n=>n.label==="Value")>=0){let n=t.inverseYAxis?t.trackAgainstAverage?false:"start":!t.trackAgainstAverage;this.lineChartData.datasets.push({label:"Average",data:[],order:t.trackAgainstAverage?0:1,parsing:false,tension:.4,pointRadius:0,pointHoverRadius:0,pointHitRadius:0,borderWidth:t.trackAgainstAverage?3:0,fill:n});}}else !t.showAverageData&&e&&(this.lineChartData.datasets=this.lineChartData.datasets.filter(a=>a.label!=="Average"));}applyDynamicTrackAverageStyling(){let t=this.runtime.options();if(!t)return;let e=this.lineChartData.datasets.find(l=>l.label==="Value"),a=this.lineChartData.datasets.find(l=>l.label==="Average"),n,r;t.inverseYAxis&&t.trackAgainstAverage?(n="start",r=false):t.inverseYAxis&&!t.trackAgainstAverage?(n=false,r="start"):!t.inverseYAxis&&t.trackAgainstAverage?(n=true,r=false):(n=false,r=true),e&&(e.order=t.trackAgainstAverage?1:0,e.borderWidth=t.trackAgainstAverage?0:3,e.fill=n),a&&(a.order=t.trackAgainstAverage?0:1,a.borderWidth=t.trackAgainstAverage?3:0,a.fill=r);}updateAnnotationVisibility(){let t=this.runtime.options();if(!t||!this.chart)return;let e=this.chart.options.plugins.annotation?.annotations;if(e){if(e.minimumLine){let a=t.showDatasetMinimumValueLine&&this.lastMinimumValue!==null;e.minimumLine.display=a,e.minimumLine.label&&(e.minimumLine.label.display=a);}if(e.maximumLine){let a=t.showDatasetMaximumValueLine&&this.lastMaximumValue!==null;e.maximumLine.display=a,e.maximumLine.label&&(e.maximumLine.label.display=a);}if(e.averageLine){let a=t.showDatasetAverageValueLine&&this.lastAverageValue!==null;e.averageLine.display=a,e.averageLine.label&&(e.averageLine.label.display=a);}}}getThemeColors(){let t=this.runtime.options()?.color,e={valueLine:"",valueFill:"",averageLine:"",averageFill:"",averageChartLine:"",chartLabel:"",chartValue:""};switch(t){case "contrast":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().contrastDimmer,e.valueFill=this.theme().contrastDimmer,e.averageLine=this.theme().contrast,e.averageFill=this.theme().contrast,e.chartValue=e.averageLine):(e.valueLine=this.theme().contrast,e.valueFill=this.theme().contrast,e.averageLine=this.theme().contrastDimmer,e.averageFill=this.theme().contrastDimmer,e.chartValue=this.theme().contrast),e.averageChartLine=this.theme().contrastDim,e.chartLabel=this.theme().contrastDim;break;case "blue":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().blueDimmer,e.valueFill=this.theme().blueDimmer,e.averageLine=this.theme().blue,e.averageFill=this.theme().blue,e.chartValue=e.averageLine):(e.valueLine=this.theme().blue,e.valueFill=this.theme().blue,e.averageLine=this.theme().blueDimmer,e.averageFill=this.theme().blueDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().blueDim,e.chartLabel=this.theme().contrastDim;break;case "green":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().greenDimmer,e.valueFill=this.theme().greenDimmer,e.averageLine=this.theme().green,e.averageFill=this.theme().green,e.chartValue=e.averageLine):(e.valueLine=this.theme().green,e.valueFill=this.theme().green,e.averageLine=this.theme().greenDimmer,e.averageFill=this.theme().greenDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().greenDim,e.chartLabel=this.theme().contrastDim;break;case "pink":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().pinkDimmer,e.valueFill=this.theme().pinkDimmer,e.averageLine=this.theme().pink,e.averageFill=this.theme().pink,e.chartValue=e.averageLine):(e.valueLine=this.theme().pink,e.valueFill=this.theme().pink,e.averageLine=this.theme().pinkDimmer,e.averageFill=this.theme().pinkDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().pinkDim,e.chartLabel=this.theme().contrastDim;break;case "orange":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().orangeDimmer,e.valueFill=this.theme().orangeDimmer,e.averageLine=this.theme().orange,e.averageFill=this.theme().orange,e.chartValue=e.averageLine):(e.valueLine=this.theme().orange,e.valueFill=this.theme().orange,e.averageLine=this.theme().orangeDimmer,e.averageFill=this.theme().orangeDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().orangeDim,e.chartLabel=this.theme().contrastDim;break;case "purple":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().purpleDimmer,e.valueFill=this.theme().purpleDimmer,e.averageLine=this.theme().purple,e.averageFill=this.theme().purple,e.chartValue=e.averageLine):(e.valueLine=this.theme().purple,e.valueFill=this.theme().purple,e.averageLine=this.theme().purpleDimmer,e.averageFill=this.theme().purpleDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().purpleDim,e.chartLabel=this.theme().contrastDim;break;case "grey":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().greyDimmer,e.valueFill=this.theme().greyDimmer,e.averageLine=this.theme().grey,e.averageFill=this.theme().grey,e.chartValue=e.averageLine):(e.valueLine=this.theme().grey,e.valueFill=this.theme().grey,e.averageLine=this.theme().greyDimmer,e.averageFill=this.theme().greyDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().greyDim,e.chartLabel=this.theme().contrastDim;break;case "yellow":this.runtime.options()?.trackAgainstAverage?(e.valueLine=this.theme().yellowDimmer,e.valueFill=this.theme().yellowDimmer,e.averageLine=this.theme().yellow,e.averageFill=this.theme().yellow,e.chartValue=e.averageLine):(e.valueLine=this.theme().yellow,e.valueFill=this.theme().yellow,e.averageLine=this.theme().yellowDimmer,e.averageFill=this.theme().yellowDimmer,e.chartValue=e.valueFill),e.averageChartLine=this.theme().yellowDim,e.chartLabel=this.theme().contrastDim;break}return e}getUnitsLabel(){let t="",e=this.runtime.options()?.convertUnitTo??"";switch(e){case "percent":case "percentraw":t="%";break;case "latitudeMin":t="latitude in minutes";break;case "latitudeSec":t="latitude in secondes";break;case "longitudeMin":t="longitude in minutes";break;case "longitudeSec":t="longitude in secondes";break;default:t=e;break}return t}startStreaming(){let t=this.runtime.options();if(!t?.datachartPath)return;this.dsServiceSub?.unsubscribe();let e=this.dsService.getDatasetBatchThenLiveObservable(this.id());e&&(this.dsServiceSub=e.subscribe(a=>{if(this.chart){if(Array.isArray(a)){let n=this.transformDatasetRows(a,0);if(this.chart.data.datasets[0].data.push(...n),t.showAverageData&&this.lineChartData.datasets[1]){let l=t.datasetAverageArray??"sma",s=this.transformDatasetRows(a,l);this.chart.data.datasets[1].data.push(...s);}let r=a[a.length-1];r&&this.applyTitleAndAnnotationValues(r,t);}else {let n=this.transformDatasetRows([a],0)[0];if(this.chart.data.datasets[0].data.push(n),t.showAverageData&&this.lineChartData.datasets[1]){let r=t.datasetAverageArray??"sma",l=this.transformDatasetRows([a],r)[0];this.chart.data.datasets[1].data.push(l);}this.applyTitleAndAnnotationValues(a,t);}this.ngZone.runOutsideAngular(()=>this.chart?.update("none"));}}));}applyTitleAndAnnotationValues(t,e){if(!this.chart)return;let a=e.convertUnitTo??"",n=e.numDecimal??1,r=e.trackAgainstAverage?t.data.sma??t.data.value:t.data.value,l=this.unitsService.convertToUnit(a,r);if(l!=null&&Number.isFinite(l)){let y=this.chart.options.plugins;y?.title&&(y.title.text=`${l.toFixed(n)} ${this.getUnitsLabel()} `);}let s=t.data.lastAverage!=null?this.unitsService.convertToUnit(a,t.data.lastAverage)??void 0:void 0,h=t.data.lastMinimum!=null?this.unitsService.convertToUnit(a,t.data.lastMinimum)??void 0:void 0,g=t.data.lastMaximum!=null?this.unitsService.convertToUnit(a,t.data.lastMaximum)??void 0:void 0,i=this.chart.options.plugins.annotation?.annotations;i&&(this.lastAverageValue=s!=null&&Number.isFinite(s)?s:null,this.lastMinimumValue=h!=null&&Number.isFinite(h)?h:null,this.lastMaximumValue=g!=null&&Number.isFinite(g)?g:null,i.averageLine&&(this.lastAverageValue!==null?(i.averageLine.value=this.lastAverageValue,i.averageLine.display=e.showDatasetAverageValueLine,i.averageLine.label&&(i.averageLine.label.display=e.showDatasetAverageValueLine,i.averageLine.label.content=`${this.lastAverageValue.toFixed(n)}`)):(i.averageLine.display=false,i.averageLine.label&&(i.averageLine.label.display=false,i.averageLine.label.content=""))),i.minimumLine&&(this.lastMinimumValue!==null?(i.minimumLine.value=this.lastMinimumValue,i.minimumLine.display=e.showDatasetMinimumValueLine,i.minimumLine.label&&(i.minimumLine.label.display=e.showDatasetMinimumValueLine,i.minimumLine.label.content=`${this.lastMinimumValue.toFixed(n)}`)):(i.minimumLine.display=false,i.minimumLine.label&&(i.minimumLine.label.display=false,i.minimumLine.label.content=""))),i.maximumLine&&(this.lastMaximumValue!==null?(i.maximumLine.value=this.lastMaximumValue,i.maximumLine.display=e.showDatasetMaximumValueLine,i.maximumLine.label&&(i.maximumLine.label.display=e.showDatasetMaximumValueLine,i.maximumLine.label.content=`${this.lastMaximumValue.toFixed(n)}`)):(i.maximumLine.display=false,i.maximumLine.label&&(i.maximumLine.label.display=false,i.maximumLine.label.content=""))));}transformDatasetRows(t,e){let a=this.runtime.options();if(!a)return [];let n=s=>this.unitsService.convertToUnit(a.convertUnitTo??"",s)??s,r=a.verticalChart===true,l=a.datasetAverageArray;return t.map(s=>{if(r){if(e===0)return {x:n(s.data.value),y:s.timestamp};{let h={sma:s.data.sma,ema:s.data.ema,dema:s.data.doubleEma,avg:s.data.lastAverage};return {x:n(h[l]??s.data.value),y:s.timestamp}}}else {if(e===0)return {x:s.timestamp,y:n(s.data.value)};{let h={sma:s.data.sma,ema:s.data.ema,dema:s.data.doubleEma,avg:s.data.lastAverage};return {x:s.timestamp,y:n(h[l]??s.data.value)}}}})}ngOnDestroy(){this.dsServiceSub?.unsubscribe(),this.chart?.destroy();let t=this.widgetDataChart?.()?.nativeElement;this.canvasService.releaseCanvas(t,{clear:true,removeFromDom:true});}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=JD({type:m,selectors:[["widget-data-chart"]],viewQuery:function(e,a){e&1&&eg(a.widgetDataChart,_,5,Lr),e&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:2,vars:1,consts:[["widgetDataChart",""],[2,"z-index","inherit"],[1,"empty-state"],[1,"hint"]],template:function(e,a){e&1&&_w(0,E,2,0,"canvas",1)(1,I,5,0,"div",2),e&2&&Mw(a.hasPath()?0:1);},styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.empty-state[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;text-align:center;color:var(--mat-sys-on-surface-variant)}.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:4px 0;padding:0 16px}.empty-state[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{font-size:.85em;opacity:.7}"]})};export{U as WidgetDataChartComponent};