@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.
- package/CHANGELOG.md +12 -3
- package/package.json +1 -1
- package/public/{chunk-CNMFlw_H.js → chunk-7lulvsGI.js} +1 -1
- package/public/{chunk-CIlfzV9R.js → chunk-8hkXyEzG.js} +1 -1
- package/public/{chunk-DWLISAZi.js → chunk-B15lj2T8.js} +1 -1
- package/public/{chunk-BQr-tSkv.js → chunk-B6AwCAvV.js} +1 -1
- package/public/{chunk-CwSa_BNV.js → chunk-B6XxnPxk.js} +1 -1
- package/public/{chunk-DE4ylhpq.js → chunk-B8gfh4xf.js} +1 -1
- package/public/{chunk-C2VQxCXa.js → chunk-B8zRhoG8.js} +1 -1
- package/public/{chunk-Bp0MQwPM.js → chunk-BIYHVfJl.js} +1 -1
- package/public/{chunk-DzTTqoF_.js → chunk-BW4m3O2L.js} +1 -1
- package/public/{chunk-Ii9n-oiL.js → chunk-B_PiPxb4.js} +1 -1
- package/public/chunk-Bb1mO304.js +1 -0
- package/public/{chunk-MjWuPUhu.js → chunk-BdBWqZzL.js} +1 -1
- package/public/{chunk-hd2_AKwt.js → chunk-BgyxBAyq.js} +1 -1
- package/public/{chunk-JbEkcxJm.js → chunk-Bhah8DNM.js} +1 -1
- package/public/{chunk-DDqeRiB0.js → chunk-Bq-eHuZV.js} +1 -1
- package/public/{chunk-CpuB_ZZz.js → chunk-BxV0O2fU.js} +1 -1
- package/public/{chunk-PheXEqie.js → chunk-Bz9bswDl.js} +1 -1
- package/public/{chunk-BOAD0N2a.js → chunk-C3CwUYvD.js} +1 -1
- package/public/{chunk-CkXTl3su.js → chunk-C4FGoLDg.js} +1 -1
- package/public/{chunk-sNakMDHi.js → chunk-CCiqU2uY.js} +1 -1
- package/public/{chunk-00hwknVI.js → chunk-CHKQxw6E.js} +1 -1
- package/public/{chunk-B82ADJSs.js → chunk-CJIxuzvd.js} +1 -1
- package/public/{chunk-DumLX5k_.js → chunk-COMZv7NY.js} +1 -1
- package/public/{chunk-dgaOX1wC.js → chunk-CSpA60X7.js} +1 -1
- package/public/{chunk-C6UXF7BI.js → chunk-CU8RPnsi.js} +1 -1
- package/public/{chunk-CNNTuNlM.js → chunk-CcvYOops.js} +1 -1
- package/public/{chunk-CA6RRaxd.js → chunk-CdSWuWKr.js} +1 -1
- package/public/{chunk-DQnoPLyC.js → chunk-CjsnWLUr.js} +1 -1
- package/public/{chunk-BX6skw5k.js → chunk-CkfPr-c5.js} +1 -1
- package/public/{chunk-nu4vZg-z.js → chunk-CoEM_FqS.js} +1 -1
- package/public/{chunk-DNS-qsFC.js → chunk-Cr34s2uQ.js} +1 -1
- package/public/{chunk-BJz7Ij9E.js → chunk-Cu9FE8cB.js} +1 -1
- package/public/{chunk-B6bEhzNR.js → chunk-CyURmwWh.js} +1 -1
- package/public/{chunk-CrBxxZCe.js → chunk-D-xDPCf7.js} +1 -1
- package/public/{chunk-5U8d2Ygo.js → chunk-D0MyVrEL.js} +1 -1
- package/public/{chunk-DjZgzSiH.js → chunk-DBA0eRqb.js} +1 -1
- package/public/{chunk-BKj60jdq.js → chunk-DGOvRnAo.js} +1 -1
- package/public/{chunk-CXvG8mMq.js → chunk-DMhuBqKs.js} +1 -1
- package/public/{chunk-DchvLV_Y.js → chunk-DMoEBcor.js} +1 -1
- package/public/chunk-DSvdWjO4.js +1 -0
- package/public/{chunk-D4xZ2tGB.js → chunk-DVB9tiW3.js} +1 -1
- package/public/{chunk-Dxlia2NE.js → chunk-D_wrJJxl.js} +1 -1
- package/public/{chunk-BwOIef42.js → chunk-DfGLo6Tb.js} +1 -1
- package/public/{chunk-BdokyhBM.js → chunk-Di5pPpU7.js} +1 -1
- package/public/{chunk-BoNDCNGE.js → chunk-DjavLLpP.js} +1 -1
- package/public/{chunk-CL2xiH57.js → chunk-Dv77RFHm.js} +1 -1
- package/public/{chunk-AANk-NXH.js → chunk-NnB8OYZt.js} +3 -3
- package/public/{chunk-By8ZVvDx.js → chunk-h2q_pbbF.js} +1 -1
- package/public/{chunk-tAiV3ARh.js → chunk-o977r5_s.js} +1 -1
- package/public/{chunk-DXkKj21H.js → chunk-oPq9Nexl.js} +1 -1
- package/public/{chunk-VgxMqRPk.js → chunk-oZiyAw_P.js} +1 -1
- package/public/chunk-zg7II0hz.js +1 -0
- package/public/index.html +1 -1
- package/public/{main-BAV5VDOD.js → main-BNR44HGB.js} +20 -20
- package/public/chunk-Blokg6Ds.js +0 -1
- package/public/chunk-CpMCBDvH.js +0 -1
- package/public/chunk-y1imvaA-.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
# v4.
|
|
1
|
+
# v4.8.2
|
|
2
|
+
## New Contributors
|
|
3
|
+
* Special thanks to @tomaioo for their first contributions.
|
|
4
|
+
## Improvements
|
|
5
|
+
* AIS UI freezes with very high number of targets
|
|
6
|
+
* Improve browser resize (fullscreen, landscape, portrait) handling for better responsiveness and layout stability.
|
|
7
|
+
## Fixes
|
|
8
|
+
* Fix Classic Steel widget not resizing in parent container.
|
|
9
|
+
* Security fix: Potential DOM-based XSS via Dialog Data
|
|
10
|
+
# v4.8.1
|
|
2
11
|
## New Contributors
|
|
3
12
|
* Special thanks to @dillan for their first of many contributions.
|
|
4
13
|
* Special thanks to @macjl for their first of many contributions.
|
|
@@ -15,10 +24,10 @@
|
|
|
15
24
|
* Fixed the autopilot static standby button label for clearer control feedback. Fixes #1072.
|
|
16
25
|
* Corrected the autopilot key map. Fixes #1073.
|
|
17
26
|
* Fixed Help image 404 errors when KIP is served under a base href. Fixes #1056.
|
|
18
|
-
* Resolved
|
|
27
|
+
* Resolved test suite issues. Fixes #1074.
|
|
19
28
|
* Fixed remote storage request handling. Fixes #1075.
|
|
20
29
|
* Corrected Windsteer simple mode's True Wind Angle offset and simplified the interface to better match familiar, classic wind gauge features. Fixes #1066, #1063.
|
|
21
|
-
* Added circular directional angle support in the Data Charts widget using the Advancedwind wind shift path. Fixes #1070.
|
|
30
|
+
* Added circular directional angle support in the Data Charts widget when using the Advancedwind wind shift path. Fixes #1070.
|
|
22
31
|
# v4.8.0
|
|
23
32
|
## New Features
|
|
24
33
|
* Solar Charger Widget: Get instant clarity on your solar system with a compact, purpose-built Solar Charger Widget. Track individual panels or full arrays in real time, including State of Charge, remaining capacity, remaining time, voltage, current, power flow, and temperature. Device discovery is automatic, and Zones support keeps warnings and alarms state highly visible.
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {m as me}from'./chunk-
|
|
1
|
+
import {m as me}from'./chunk-BIYHVfJl.js';import {w as w$1,aQ as ee,aX as He,aR as lt,G as Gi,J as JD}from'./main-BNR44HGB.js';var w=(()=>{class o{dialog=w$1(ee);auth=w$1(He);toast=w$1(lt);settings=w$1(Gi);connectionConfig=null;ngOnInit(){this.connectionConfig=this.settings.getConnectionConfig(),this.openUserCredentialModal("Sign in failed: Incorrect user/password. Enter valide credentials or access the Confifuration/Settings menu, validate the server URL or/and disable the user Sign in option");}openUserCredentialModal(t){let n=this.connectionConfig;if(!n)return;this.dialog.open(me,{disableClose:true,data:{user:n.loginName,password:n.loginPassword,error:t}}).afterClosed().subscribe(s=>{s===void 0||!s||(n.loginName=s.user,n.loginPassword=s.password,this.settings.setConnectionConfig(n),this.serverLogin());});}serverLogin(t){let n=this.connectionConfig;n&&this.auth.login({usr:n.loginName,pwd:n.loginPassword,newUrl:t}).then(()=>{this.settings.reloadApp();}).catch(e=>{e.status==401?(this.openUserCredentialModal("Sign in failed: Invalide user/password. Enter valide credentials"),console.log("[Setting-SignalK Component] Sign in failed: "+e.error.message)):e.status==404?(this.toast.show("Login API not found at URL. See connection detail status in Configuration/Settings",5e3,false,"error"),console.log("[Setting-SignalK Component] Sign in failed: "+e.error.message)):e.status==0?(this.toast.show("Cannot reach server at Signal K URL. See connection detail status in Configuration/Settings",5e3,false,"error"),console.log("[Setting-SignalK Component] Sign in failed: Cannot reach server at Signal K URL:"+e.message)):(this.toast.show("Unknown authentication failure: "+JSON.stringify(e),5e3,false,"error"),console.log("[Setting-SignalK Component] Unknown login error response: "+JSON.stringify(e)));});}static \u0275fac=function(n){return new(n||o)};static \u0275cmp=JD({type:o,selectors:[["app-widget-login"]],decls:0,vars:0,template:function(n,e){},encapsulation:2})}return o})();export{w as WidgetLoginComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {O}from'./chunk-
|
|
1
|
+
import {O}from'./chunk-o977r5_s.js';import {w,G as Gi,aS as De$1,cu as T,aY as xe,v as vt,D as Dt,a_ as Gp,F as Fa,cv as G,cw as z,J as JD,cx as ut,cy as He,cz as ht,cA as Te,a2 as Jt,a3 as Xt,a4 as Zt,O as Op,cB as Mt,cC as Dt$1,p as R,y as yt,b as wt,c as $h,P as Pi,X as xw,cs as Sw,u as ul,_ as _w,B as Bh,e as EE,Y as Aw,M as Mw,T as TT,h as Fw,k as Qh,l as ud,g as qw,m as dd,s as sg,aA as gg}from'./main-BNR44HGB.js';var te=(n,a)=>a.id;function ie(n,a){if(n&1){let e=Fw();Pi(0,"button",9),Qh("click",function(){let t=ud(e).$implicit,o=qw();return dd(o.displayDashboards(t.displayId))}),TT(1),ul();}if(n&2){let e=a.$implicit,i=qw();sg("selected",i.selectedDisplayButtonId()===e.displayId),EE(),gg(e.displayName);}}function ne(n,a){n&1&&(Pi(0,"button",5)(1,"i"),TT(2,'"No Remote"'),ul()());}function se(n,a){n&1&&(Pi(0,"div",7),$h(1,"mat-progress-spinner",10),ul());}function oe(n,a){if(n&1){let e=Fw();Pi(0,"tile-large-icon",12,0),Qh("click",function(){let t=ud(e).$index,o=qw(2);return dd(o.setActiveScreen(t))}),ul();}if(n&2){let e=a.$implicit,i=a.$index,t=qw(2);Bh("active",t.activeScreenIdx()===i)("svgIcon",e.icon)("iconSize",72)("label",e.name);}}function ae(n,a){if(n&1&&xw(0,oe,2,4,"tile-large-icon",11,te),n&2){let e=qw();Aw(e.screens());}}function re(n,a){n&1&&(Pi(0,"div",8)(1,"mat-icon",13),TT(2,"cast"),ul(),Pi(3,"div",14)(4,"p"),TT(5,"Select an available remote KIP in the menu."),ul(),Pi(6,"p"),TT(7,"To allow remote control of a dashboard, on that KIP device open Options \u2192 Display \u2192 Remote Control and enable it."),ul()()());}var De=(()=>{class n{COMMAND_REQUEST_ACTIVE_SCREEN_PATH="self.kip.remote.requestActiveScreen";_settings=w(Gi);_data=w(De$1);_requests=w(T);_destroyRef=w(xe);pageTitle="Remote Control";appID=this._settings.KipUUID;displayId=vt(null);selectedDisplayButtonId=vt(null);screensLoading=vt(false);displaysMap=vt({});selectedDisplaySub=null;selectedScreenIndexSub=null;displays=Dt(()=>Object.values(this.displaysMap()).filter(i=>i.displayId!==this.appID).sort((i,t)=>{let o=(i.displayName??"").toLowerCase(),s=(t.displayName??"").toLowerCase();return o&&s?o.localeCompare(s):o?-1:s?1:i.displayId.localeCompare(t.displayId)}));screens=vt([]);activeScreenIdx=vt(null);constructor(){this._data.subscribePathTree("self.displays.*").pipe(Gp(this._destroyRef)).subscribe(({path:e,update:i})=>{this.updateDisplayCatalog(e,i.data.value);}),Fa(()=>{let e=this.displays(),i=this.selectedDisplayButtonId();if(!e.length){this.displayDashboards(null);return}(!i||!e.some(t=>t.displayId===i))&&this.displayDashboards(e[0].displayId);}),Fa(()=>{this.rebindSelectedDisplaySubscriptions(this.displayId());});}updateDisplayCatalog(e,i){let t=this.extractDisplayId(e);if(!t||t===this.appID)return;let o=`self.displays.${t}`;this.displaysMap.update(s=>{let r=G({},s);if(e===o&&(i===null||typeof i>"u"))return delete r[t],r;let _=(r[t]??{displayName:null}).displayName;if(e===o&&i&&typeof i=="object"){let x=i;typeof x.displayName=="string"?_=x.displayName:x.displayName===null&&(_=null);}return r[t]={displayId:t,displayName:_},r});}rebindSelectedDisplaySubscriptions(e){if(this.selectedDisplaySub?.unsubscribe(),this.selectedDisplaySub=null,this.selectedScreenIndexSub?.unsubscribe(),this.selectedScreenIndexSub=null,!e){this.screensLoading.set(false),this.screens.set([]),this.activeScreenIdx.set(null);return}this.screensLoading.set(true),this.selectedDisplaySub=this._data.subscribePath(`self.displays.${e}`,"default").pipe(Gp(this._destroyRef)).subscribe(i=>{this.screensLoading.set(false);let t=i.data.value,o=Array.isArray(t?.screens)?t.screens.filter(s=>!!s&&typeof s=="object"&&typeof s.id=="string"&&typeof s.name=="string"&&typeof s.icon=="string"):[];this.screens.set(o),t&&Object.prototype.hasOwnProperty.call(t,"displayName")&&this.displaysMap.update(s=>{let r=s[e];if(!r)return s;let h=typeof t.displayName=="string"?t.displayName:t.displayName===null?null:r.displayName;return h===r.displayName?s:z(G({},s),{[e]:z(G({},r),{displayName:h})})});}),this.selectedScreenIndexSub=this._data.subscribePath(`self.displays.${e}.screenIndex`,"default").pipe(Gp(this._destroyRef)).subscribe(i=>{let t=i.data.value;this.activeScreenIdx.set(typeof t=="number"?t:null);});}extractDisplayId(e){return e.match(/^self\.displays\.([^.]+)(?:\.|$)/)?.[1]??null}displayDashboards(e){this.displayId.set(e),this.selectedDisplayButtonId.set(e);}setActiveScreen(e){let i=this.activeScreenIdx(),t=this.displayId();if(!t)return;this.activeScreenIdx.set(e),this._requests.putRequest(this.COMMAND_REQUEST_ACTIVE_SCREEN_PATH,{displayId:t,screenIdx:e},this.appID)||(console.error("Failed to set active screen: request was not accepted"),this.activeScreenIdx.set(i));}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=JD({type:n,selectors:[["remote-control"]],decls:11,vars:3,consts:[["tile",""],["svgIconId","remote-control",3,"pageTitle"],[1,"sidenav-remote-control-container"],["mode","side","opened",""],["mat-list-item","","tabindex","0",3,"selected"],["mat-list-item","","tabindex","0","disabled","true",2,"text-align","center"],[1,"sidenav-remote-control-content"],["aria-label","Loading screens",1,"loading-container"],["role","status","aria-live","polite",1,"empty-state-msg"],["mat-list-item","","tabindex","0",3,"click"],["mode","indeterminate","diameter","64","strokeWidth","5"],[3,"active","svgIcon","iconSize","label"],[3,"click","active","svgIcon","iconSize","label"],["aria-hidden","true","color","primary",1,"empty-state-icon"],[1,"copy"]],template:function(i,t){i&1&&($h(0,"page-header",1),Pi(1,"mat-sidenav-container",2)(2,"mat-sidenav",3)(3,"mat-action-list"),xw(4,ie,2,3,"button",4,Sw,false,ne,3,0,"button",5),ul()(),Pi(7,"mat-sidenav-content",6),_w(8,se,2,0,"div",7)(9,ae,2,0)(10,re,8,0,"div",8),ul()()),i&2&&(Bh("pageTitle",t.pageTitle),EE(4),Aw(t.displays()),EE(4),Mw(t.screensLoading()?8:t.screens().length?9:10));},dependencies:[O,ut,He,ht,Te,Jt,Xt,Zt,Op,Mt,Dt$1,R,yt,wt],styles:[".sidenav-remote-control-container[_ngcontent-%COMP%]{height:calc(100% - 87px);width:calc(100% - 48px);margin:0 24px 24px;border:1px solid var(--mat-sys-outline-variant)}mat-sidenav[_ngcontent-%COMP%]{width:150px;--mat-sidenav-container-shape: square}.selected[_ngcontent-%COMP%]{background-color:var(--mat-sys-inverse-on-surface)}.loading-container[_ngcontent-%COMP%]{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.sidenav-remote-control-content[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start;height:100%;width:100%;padding:5px;gap:5px;overflow-y:auto;scrollbar-width:none;overflow-x:hidden;scroll-behavior:smooth;flex:1 1 auto;min-height:0}tile-large-icon[_ngcontent-%COMP%]{width:190px}.empty-state-msg[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;height:100%;width:calc(100% - 150px);min-height:70vh;padding:2rem;text-align:center;color:var(--mat-sys-outline-variant);font-style:italic}.empty-state-icon[_ngcontent-%COMP%]{font-size:4rem;width:4rem;height:4rem;color:var(--mat-sys-outline-variant);margin-bottom:1rem}"]})}return n})();export{De as RemoteControlComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {d1 as Hj,w,du as p,dF as l,aZ as
|
|
1
|
+
import {d1 as Hj,w,du as p,dF as l,aZ as R,aY as xe,$ as $j,v as vt,F as Fa,dn as ge,a_ as Gp,dx as n$1,J as JD,O as Op,bh as xp,y as yt,b as wt,P as Pi,c as $h,k as Qh,cn as wd,T as TT,u as ul,cV as Td,_ as _w,e as EE,M as Mw,f as eg,K as Kw,h as Fw,l as ud,g as qw,m as dd}from'./main-BNR44HGB.js';var D=["canvasMainRef"];function B(c,L){if(c&1){let e=Fw();Pi(0,"button",14),Qh("click",function(){ud(e);let i=qw();return dd(i.startTimer())}),TT(1," Start "),ul();}}function G(c,L){if(c&1){let e=Fw();Pi(0,"button",15),Qh("click",function(){ud(e);let i=qw();return dd(i.pauseTimer())}),TT(1," Pause "),ul();}}var et=(()=>{class c{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);timers=w(l);canvas=w(R);destroyRef=w(xe);timerSub;static DEFAULT_CONFIG={timerLength:-300,color:"contrast",playBeeps:true};canvasRef=$j.required("canvasMainRef");canvasElement=null;ctx=null;cssWidth=0;cssHeight=0;maxTextWidth=0;maxTextHeight=0;dataValue=null;zoneState=null;currentValueLength=0;valueFontSize=1;flashOn=false;flashInterval=null;timerRunning=vt(false);timeName="race";warnColor="";textColor="";constructor(){Fa(()=>{let e=this.runtime.options(),t=this.theme();!e||!t||ge(()=>{this.applyColors(e.color??"contrast",t),this.draw();});}),Fa(()=>{let e=this.runtime.options();e&&this.ensureTimer(e.timerLength??-300);});}ngAfterViewInit(){this.canvasElement=this.canvasRef().nativeElement,this.ctx=this.canvasElement.getContext("2d"),this.canvas.registerCanvas(this.canvasElement,{autoRelease:true,onResize:(e,t)=>{this.cssWidth=e,this.cssHeight=t,this.maxTextWidth=Math.floor(this.cssWidth*.95),this.maxTextHeight=Math.floor(this.cssHeight),this.draw();}}),this.cssHeight=Math.round(this.canvasElement.getBoundingClientRect().height),this.cssWidth=Math.round(this.canvasElement.getBoundingClientRect().width),this.maxTextWidth=Math.floor(this.cssWidth*.95),this.maxTextHeight=Math.floor(this.cssHeight),this.draw();}ensureTimer(e){this.timerSub?.unsubscribe();let t=this.timers.createTimer(this.timeName,e,1e3);this.timerSub=t.pipe(Gp(this.destroyRef)).subscribe(i=>{this.dataValue=i,this.timerRunning.set(this.timers.isRunning(this.timeName)),i>0?this.zoneState=n$1.Normal:i===0?(this.zoneState=n$1.Normal,this.beep(500,2e3)):i>-10?(this.zoneState=n$1.Alarm,this.beep(450,100)):i>=-29?this.zoneState=n$1.Warn:i===-30?(this.zoneState=n$1.Warn,this.beep(400,200)):this.zoneState=n$1.Normal,this.zoneState===n$1.Alarm&&!this.flashInterval?this.flashInterval=setInterval(()=>{this.flashOn=!this.flashOn,this.draw();},500):this.zoneState!==n$1.Alarm&&this.flashInterval&&(clearInterval(this.flashInterval),this.flashInterval=null,this.flashOn=false),this.draw();});}startTimer(){this.timers.startTimer(this.timeName),this.timerRunning.set(true);}resetTimer(){this.timers.deleteTimer(this.timeName),this.timerRunning.set(false);let e=this.runtime.options();this.ensureTimer(e?.timerLength??-300),this.draw();}pauseTimer(){this.timers.stopTimer(this.timeName),this.timerRunning.set(false);}roundToMin(){if(this.dataValue==null)return;let t=(this.dataValue<0?-this.dataValue:this.dataValue)%60;this.dataValue>0?this.timers.setTimer(this.timeName,this.dataValue+(t>30?60-t:-t)):this.timers.setTimer(this.timeName,this.dataValue+(t>30?-(60-t):t));}addTime(e){this.dataValue!=null&&this.timers.setTimer(this.timeName,this.dataValue+e);}removeTime(e){this.dataValue!=null&&this.timers.setTimer(this.timeName,this.dataValue-e);}applyColors(e,t){switch(e){case "contrast":this.textColor=t.contrast,this.warnColor=t.zoneAlarm;break;case "blue":this.textColor=t.blue,this.warnColor=t.zoneAlarm;break;case "green":this.textColor=t.green,this.warnColor=t.zoneAlarm;break;case "pink":this.textColor=t.pink,this.warnColor=t.zoneAlarm;break;case "orange":this.textColor=t.orange,this.warnColor=t.zoneAlarm;break;case "purple":this.textColor=t.purple,this.warnColor=t.zoneAlarm;break;case "grey":this.textColor=t.grey,this.warnColor=t.zoneAlarm;break;case "yellow":this.textColor=t.yellow,this.warnColor=t.zoneAlarm;break;default:this.textColor=t.contrast,this.warnColor=t.zoneAlarm;break}}beep(e=440,t=100){if(this.runtime.options()?.playBeeps){let i=new(window.AudioContext||window.webkitAudioContext),a=i.createOscillator(),p=i.createGain();a.connect(p),p.connect(i.destination),a.type="sine",a.frequency.value=e,p.gain.value=.1,a.start(),a.stop(i.currentTime+t/1e3);}}ngOnDestroy(){try{this.canvasElement&&this.canvas.unregisterCanvas(this.canvasElement);}catch(e){}this.flashInterval&&(clearInterval(this.flashInterval),this.flashInterval=null);}draw(){if(!this.ctx)return;this.canvas.clearCanvas(this.ctx,this.cssWidth,this.cssHeight);let e;if(this.dataValue!=null){let t=Math.abs(this.dataValue),i=Math.floor(t/60),a=Math.floor(t%60);e=`${i}:${("0"+a).slice(-2)}`,this.dataValue<0&&(e=`-${e}`);}else e="--";switch(this.currentValueLength!==e.length&&(this.currentValueLength=e.length,this.valueFontSize=this.canvas.calculateOptimalFontSize(this.ctx,e,this.maxTextWidth,this.maxTextHeight,"bold")),this.zoneState){case n$1.Alarm:this.flashOn?this.ctx.fillStyle=this.textColor:(this.canvas.drawRectangle(this.ctx,0,0,this.cssWidth,this.cssHeight,this.warnColor),this.ctx.fillStyle=this.textColor);break;case n$1.Warn:this.ctx.fillStyle=this.warnColor;break;default:this.ctx.fillStyle=this.textColor;}this.canvas.drawText(this.ctx,e,this.cssWidth/2,this.cssHeight/2,this.maxTextWidth,this.maxTextHeight,"bold",this.ctx.fillStyle,"center","middle");}static \u0275fac=function(t){return new(t||c)};static \u0275cmp=JD({type:c,selectors:[["widget-racetimer"]],viewQuery:function(t,i){t&1&&eg(i.canvasRef,D,5),t&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:35,vars:2,consts:[["canvasMainRef",""],[1,"racetimer-wrapper"],[1,"racetimer-canvas"],[1,"timerBarContainer"],[1,"timer-button-groups","timer-adjusters-group"],["mat-flat-button","",1,"button","other-small-button",3,"click"],[1,"buttons-svg-icon"],["width","100%","height","100%","viewBox","0 0 100 14","preserveAspectRatio","xMidYMid meet",1,"svg-content"],[0,"xml","space","preserve","x","50","y","11"],["mat-flat-button","",1,"button","main-button",3,"click"],[1,"timer-button-groups","timer-countdown-group"],["mat-flat-button","",1,"timer-start-button","button-color-red"],["mat-flat-button","",1,"timer-start-button"],["mat-flat-button","",1,"timer-synch-button","button-color-red",3,"click"],["mat-flat-button","",1,"timer-start-button","button-color-red",3,"click"],["mat-flat-button","",1,"timer-start-button",3,"click"]],template:function(t,i){t&1&&(Pi(0,"div",1),$h(1,"canvas",2,0),Pi(3,"div",3)(4,"div",4)(5,"button",5),Qh("click",function(){return i.removeTime(5)}),Pi(6,"mat-icon",6),wd(),Pi(7,"svg",7)(8,"text",8),TT(9,"-5s"),ul()()()(),Td(),Pi(10,"button",5),Qh("click",function(){return i.removeTime(60)}),Pi(11,"mat-icon",6),wd(),Pi(12,"svg",7)(13,"text",8),TT(14,"-60s"),ul()()()(),Td(),Pi(15,"button",9),Qh("click",function(){return i.resetTimer()}),Pi(16,"mat-icon",6),wd(),Pi(17,"svg",7)(18,"text",8),TT(19,"Reset"),ul()()()(),Td(),Pi(20,"button",5),Qh("click",function(){return i.addTime(60)}),Pi(21,"mat-icon",6),wd(),Pi(22,"svg",7)(23,"text",8),TT(24,"+60s"),ul()()()(),Td(),Pi(25,"button",5),Qh("click",function(){return i.addTime(5)}),Pi(26,"mat-icon",6),wd(),Pi(27,"svg",7)(28,"text",8),TT(29,"+5s"),ul()()()()(),Td(),Pi(30,"div",10),_w(31,B,2,0,"button",11),_w(32,G,2,0,"button",12),Pi(33,"button",13),Qh("click",function(){return i.roundToMin()}),TT(34," Synch "),ul()()()()),t&2&&(EE(31),Mw(i.timerRunning()?-1:31),EE(),Mw(i.timerRunning()?32:-1));},dependencies:[Op,xp,yt,wt],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.racetimer-wrapper[_ngcontent-%COMP%]{width:100%;height:100%;min-height:1px}.racetimer-canvas[_ngcontent-%COMP%]{width:100%!important;height:100%!important;display:block}.button-color-red[_ngcontent-%COMP%]{--mat-button-filled-container-color: var(--kip-port-color);--mat-button-filled-label-text-color: var(--kip-contrast-color)}.timerBarContainer[_ngcontent-%COMP%]{position:absolute;left:0;bottom:0;height:23%;width:100%;padding:0 10px 10px;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-end;align-items:stretch;gap:10px}.timer-button-groups[_ngcontent-%COMP%]{min-width:247px;max-width:100%;--mat-button-filled-container-shape: 5px}.timer-adjusters-group[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;gap:10px;height:100%}.timer-countdown-group[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1}.timer-synch-button[_ngcontent-%COMP%]{width:calc(50% - 5px);margin-left:5px}.timer-start-button[_ngcontent-%COMP%]{width:calc(50% - 5px);margin-right:5px}.buttons-svg-icon[_ngcontent-%COMP%]{width:100%;height:100%;margin:0;padding:0}.button[_ngcontent-%COMP%]{min-width:0px;height:100%;width:100%;border-radius:12px;align-items:center;justify-content:center;cursor:pointer;--mat-button-filled-container-height: 100%;--mat-button-filled-horizontal-padding: 0px;--mat-button-filled-icon-spacing: 0px}.main-button[_ngcontent-%COMP%]{flex:1 1 auto;--mat-button-filled-container-color: var(--kip-port-color);--mat-button-filled-label-text-color: var(--kip-contrast-color)}.svg-content[_ngcontent-%COMP%]{width:100%;height:100%;padding:0;margin:0}.svg-content[_ngcontent-%COMP%] text[_ngcontent-%COMP%]{font-family:Roboto;font-size:15px;font-weight:700;text-align:center;text-anchor:middle;font-style:normal;font-variant:normal;font-stretch:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:none}"]})}return c})();export{et as WidgetRaceTimerComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {c2 as bh,c3 as Qs,cW as Ur,a6 as Lr,ao as ue,J as JD,c9 as Sh,c as $h,ak as nw,b$ as Jh,c0 as Zw,c1 as Yw,cL as vb,cM as yb}from'./main-BAV5VDOD.js';var me=yb((It,ne)=>{(function(S){"use strict";function Y(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}return Array.from(t)}function b(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !e||typeof e!="object"&&typeof e!="function"?t:e}function T(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e);}function N(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function D(t,e){if(e||(e=typeof window>"u"?global:window),e[t]!==void 0)return e[t];if(te===null){var i=window.getComputedStyle(document.documentElement,"");te=(Array.prototype.slice.call(i).join("").match(/-(moz|webkit|ms)-/)||i.OLink===""&&["","o"]||["",""])[1];}if(te==="")return null;var r=t.charAt(0).toUpperCase()+t.substr(1),n=e[te+r];return n!==void 0?n:null}function ge(t,e,i,r,n,a,o){if(typeof r!="function")throw new TypeError("Invalid animation rule:",r);var l=t-i,s=l/n,d=0;s>1&&(s=1),s!==1&&(d=r(s),isFinite(d)&&!isNaN(d)&&(s=d)),e&&e(s),l<n?o.frame=Re(function(u){return ge(u,e,i,r,n,a,o)}):(a&&a(),o.inProgress=!1);}function U(){Array.prototype.constructor.apply(this,arguments);}function $e(t){if(!(t instanceof DOMException&&t.result===2152923147))throw t}function Ke(t,e){return e.replace(Pt,function(i,r){var n=t[r];return n!==void 0?n:i})}function et(t){return t.majorTicks instanceof Array||(t.majorTicks=t.majorTicks?[t.majorTicks]:[]),t.majorTicks.length||(t.majorTicks.push(h.formatMajorTickNumber(t.minValue,t)),t.majorTicks.push(h.formatMajorTickNumber(t.maxValue,t))),[t.tickSide!=="right",t.tickSide!=="left"]}function ve(t,e,i,r,n,a){t.beginPath(),t.moveTo(e+a,i),t.lineTo(e+r-a,i),t.quadraticCurveTo(e+r,i,e+r,i+a),t.lineTo(e+r,i+n-a),t.quadraticCurveTo(e+r,i+n,e+r-a,i+n),t.lineTo(e+a,i+n),t.quadraticCurveTo(e,i+n,e,i+n-a),t.lineTo(e,i+a),t.quadraticCurveTo(e,i,e+a,i),t.closePath();}function ae(t,e){var i=e.valueDec,r=e.valueInt,n=0,a=void 0,o=void 0,l=void 0;if(t=parseFloat(t),l=t<0,t=Math.abs(t),i>0){for(o=t.toFixed(i).toString().split("."),a=r-o[0].length;n<a;++n)o[0]="0"+o[0];o=(l?"-":"")+o[0]+"."+o[1];}else {for(o=Math.round(t).toString(),a=r-o.length;n<a;++n)o="0"+o;o=(l?"-":"")+o;}return o}function tt(t,e){var i=void 0,r=!1;return i=e.majorTicksDec===0?Math.round(t).toString():t.toFixed(e.majorTicksDec),e.majorTicksInt>1?(r=~i.indexOf("."),~i.indexOf("-")?"-"+[e.majorTicksInt+e.majorTicksDec+2+(r?1:0)-i.length].join("0")+i.replace("-",""):[e.majorTicksInt+e.majorTicksDec+1+(r?1:0)-i.length].join("0")+i):i}function it(t){return t*Math.PI/180}function rt(t,e){return {x:-t*Math.sin(e),y:t*Math.cos(e)}}function nt(t,e,i,r){var n=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,o=t.createLinearGradient(n?0:a,n?a:0,n?0:r,n?r:0);return o.addColorStop(0,e),o.addColorStop(1,i),o}function at(t,e){e.needleShadow&&(t.shadowOffsetX=2,t.shadowOffsetY=2,t.shadowBlur=10,t.shadowColor=e.colorNeedleShadowDown);}function be(t,e,i){return t["font"+e+"Style"]+" "+t["font"+e+"Weight"]+" "+t["font"+e+"Size"]*i+"px "+t["font"+e]}function pe(t){t.shadowOffsetX=null,t.shadowOffsetY=null,t.shadowBlur=null,t.shadowColor="",t.strokeStyle=null,t.lineWidth=0,t.save();}function we(t,e,i,r){e.valueTextShadow&&(t.shadowOffsetX=i,t.shadowOffsetY=i,t.shadowBlur=r,t.shadowColor=e.colorValueTextShadow);}function ot(t,e,i,r,n,a){if(e.valueBox){pe(t);var o=e.valueDec?1+e.valueDec:0,l="9".repeat(Math.max.apply(null,[String(parseInt(i)).length+o].concat(e.majorTicks.map(function(O){return String(parseInt(O,10)).length+o})))),s=e.valueText||ae(i,e),d=a/200,u=a/100,c=.4*u,f=1.2*u;t.font=be(e,"Value",d),we(t,e,c,f);var m=t.measureText(e.valueText?s:"-"+ae(Number(l),e)).width;pe(t);var p=parseFloat(e.fontValueSize)*d+c+f,P=u*parseFloat(e.valueBoxStroke),v=2*a-2*P,W=m+10*u,A=1.1*p+c+f,M=u*e.valueBoxBorderRadius,x=(parseFloat(e.valueBoxWidth)||0)/100*v;x>W&&(W=x),W>v&&(W=v);var V=r-W/2,y=n-A/2,g=n-5.75*u;if(t.beginPath(),M?ve(t,V,y,W,A,M):t.rect(V,y,W,A),P){var w=t.createRadialGradient(r,g,10*u,r,g,20*u);w.addColorStop(0,e.colorValueBoxRect),w.addColorStop(1,e.colorValueBoxRectEnd),t.strokeStyle=w,t.lineWidth=P,t.stroke();}e.colorValueBoxShadow&&(t.shadowBlur=1.2*u,t.shadowColor=e.colorValueBoxShadow),e.colorValueBoxBackground&&(t.fillStyle=e.colorValueBoxBackground,t.fill()),t.closePath(),t.restore(),we(t,e,c,f),t.fillStyle=e.colorValueText,t.textAlign="center",t.textBaseline="alphabetic",t.fillText(s,V+W/2,n+A/2-p/3),t.restore();}}function st(t){var e=t.value,i=t.minValue,r=t.maxValue,n=.01*(r-i);return {normal:e<i?i:e>r?r:e,indented:e<i?i-n:e>r?r+n:e}}function lt(t,e,i,r,n){i.beginPath(),i.arc(0,0,R(t),0,2*Z,!0),i.lineWidth=e,i.strokeStyle=n?h.linearGradient(i,r,n,t):r,i.stroke(),i.closePath();}function Q(t,e){var i=I.pixelRatio;return t.maxRadius||(t.maxRadius=t.max-e.borderShadowWidth-e.borderOuterWidth*i-e.borderMiddleWidth*i-e.borderInnerWidth*i+(e.borderOuterWidth?.5:0)+(e.borderMiddleWidth?.5:0)+(e.borderInnerWidth?.5:0)),t.maxRadius}function ke(t,e){function i(c,f,m,p,P,v){return f&&(!v&&e.borderShadowWidth&&(m.save(),m.shadowBlur=e.borderShadowWidth,m.shadowColor=e.colorBorderShadow),lt(c,f*r,m,p,P),!v&&e.borderShadowWidth&&(v=!0,m.restore())),v}var r=I.pixelRatio,n=e.borderShadowWidth*r,a=t.max-n-e.borderOuterWidth*r/2,o=a-e.borderOuterWidth*r/2-e.borderMiddleWidth*r/2+.5,l=o-e.borderMiddleWidth*r/2-e.borderInnerWidth*r/2+.5,s=Q(t,e),d=void 0,u=!1;t.save(),u=i(a,e.borderOuterWidth,t,e.colorBorderOuter,e.colorBorderOuterEnd,u),u=i(o,e.borderMiddleWidth,t,e.colorBorderMiddle,e.colorBorderMiddleEnd,u),u=i(l,e.borderInnerWidth,t,e.colorBorderInner,e.colorBorderInnerEnd,u),!u&&e.borderShadowWidth&&(t.shadowBlur=e.borderShadowWidth,t.shadowColor=e.colorBorderShadow),t.beginPath(),t.arc(0,0,R(s),0,2*Z,!0),e.colorPlateEnd?(d=t.createRadialGradient(0,0,s/2,0,0,s),d.addColorStop(0,e.colorPlate),d.addColorStop(1,e.colorPlateEnd)):d=e.colorPlate,t.fillStyle=d,t.fill(),t.closePath(),t.restore();}function ye(t,e){if(e.highlights!=="false"&&e.highlights.length&&e.highlightsWidth!==0){var i=t.max*(parseFloat(e.highlightsWidth)||0)/100,r=R($(t,e)-i/2),n=e.highlights.length,a=(e.maxValue-e.minValue)/e.ticksAngle;t.save();for(var o=0;o<n;o++){var l=e.highlights[o];t.lineWidth=i,t.lineCap=e.highlightsLineCap,t.strokeStyle=l.color,t.beginPath(),t.rotate(ue),t.arc(0,0,r,h.radians(e.startAngle+(l.from-e.minValue)/a),h.radians(e.startAngle+(l.to-e.minValue)/a),!1),t.stroke(),t.closePath(),t.restore(),t.save();}t.restore();}}function xe(t,e){var i=$(t,e),r=void 0,n=void 0,a=void 0,o=0,l=Math.abs(e.minorTicks)||0,s=e.ticksAngle/(e.maxValue-e.minValue);e.exactTicks?(n=e.maxValue-e.minValue,r=l?n/l:0,o=(_.mod(e.majorTicks[0],l)||0)*s):r=l*(e.majorTicks.length-1),t.lineWidth=I.pixelRatio,t.strokeStyle=e.colorMinorTicks||e.colorStrokeTicks,t.save();for(var d=0;d<r;++d)(a=e.startAngle+o+d*(e.ticksAngle/r))<=e.ticksAngle+e.startAngle&&(t.rotate(h.radians(a)),t.beginPath(),t.moveTo(0,i),t.lineTo(0,i-.075*t.max),dt(t));t.restore();}function $(t,e){var i=t.max/100;return Q(t,e)-5*i-(e.barWidth?2*(parseFloat(e.barStrokeWidth)||0)+((parseFloat(e.barWidth)||0)+5)*i:0)}function Te(t,e){h.prepareTicks(e);var i=R($(t,e)),r=void 0,n=e.majorTicks.length,a=I.pixelRatio;t.lineWidth=2*a,r=e.colorMajorTicks instanceof Array?e.colorMajorTicks:new Array(n).fill(e.colorStrokeTicks||e.colorMajorTicks);for(var o=0;o<n;++o)t.save(),t.strokeStyle=r[o],t.rotate(h.radians(Se(e,e.exactTicks?e.majorTicks[o]:o,n))),t.beginPath(),t.moveTo(0,i),t.lineTo(0,i-.15*t.max),t.stroke(),t.closePath(),t.restore();e.strokeTicks&&(t.save(),t.strokeStyle=e.colorStrokeTicks||r[0],t.rotate(ue),t.beginPath(),t.arc(0,0,i,h.radians(e.startAngle),h.radians(e.startAngle+e.ticksAngle),!1),t.stroke(),t.closePath(),t.restore());}function Se(t,e,i){if(t.exactTicks){var r=t.ticksAngle/(t.maxValue-t.minValue);return t.startAngle+r*(e-t.minValue)}return t.startAngle+e*(t.ticksAngle/(i-1))}function dt(t){t.stroke(),t.restore(),t.closePath(),t.save();}function Ve(t,e){var i=$(t,e)-.15*t.max,r={},n=0,a=e.majorTicks.length,o=e.animationTarget!=="needle",l=e.colorNumbers instanceof Array?e.colorNumbers:new Array(a).fill(e.colorNumbers),s=o?-(e.value-e.minValue)/(e.maxValue-e.minValue)*e.ticksAngle:0;for(o&&(t.save(),t.rotate(-h.radians(s))),t.font=h.font(e,"Numbers",t.max/200),t.lineWidth=0,t.textAlign="center",t.textBaseline="middle";n<a;++n){var d=s+Se(e,e.exactTicks?e.majorTicks[n]:n,a),u=t.measureText(e.majorTicks[n]).width,c=e.fontNumbersSize,f=Math.sqrt(u*u+c*c)/2,m=h.radialPoint(i-f-e.numbersMargin/100*t.max,h.radians(d));d===360&&(d=0),r[d]||(r[d]=!0,t.fillStyle=l[n],t.fillText(e.majorTicks[n],m.x,m.y));}o&&t.restore();}function Oe(t,e){e.title&&(t.save(),t.font=h.font(e,"Title",t.max/200),t.fillStyle=e.colorTitle,t.textAlign="center",t.fillText(e.title,0,-t.max/4.25,.8*t.max),t.restore());}function We(t,e){e.units&&(t.save(),t.font=h.font(e,"Units",t.max/200),t.fillStyle=e.colorUnits,t.textAlign="center",t.fillText(h.formatContext(e,e.units),0,t.max/3.25,.8*t.max),t.restore());}function Ae(t,e){if(e.needle){var i=e.animationTarget!=="needle",r=e.ticksAngle<360?h.normalizedValue(e).indented:e.value,n=i?e.startAngle:e.startAngle+(r-e.minValue)/(e.maxValue-e.minValue)*e.ticksAngle;e.barStartPosition==="right"&&(n=e.startAngle+e.ticksAngle-(r-e.minValue)/(e.maxValue-e.minValue)*e.ticksAngle);var a=Q(t,e),o=R(a/100*e.needleCircleSize),l=R(a/100*e.needleCircleSize*.75),s=R(a/100*e.needleEnd),d=R(e.needleStart?a/100*e.needleStart:0),u=a/100*e.needleWidth,c=a/100*e.needleWidth/2,f=I.pixelRatio;t.save(),h.drawNeedleShadow(t,e),t.rotate(h.radians(n)),t.fillStyle=h.linearGradient(t,e.colorNeedle,e.colorNeedleEnd,s-d),e.needleType==="arrow"?(t.beginPath(),t.moveTo(-c,-d),t.lineTo(-u,0),t.lineTo(-1*f,s),t.lineTo(f,s),t.lineTo(u,0),t.lineTo(c,-d),t.closePath(),t.fill(),t.beginPath(),t.lineTo(-.5*f,s),t.lineTo(-1*f,s),t.lineTo(-u,0),t.lineTo(-c,-d),t.lineTo(c/2*f-2*f,-d),t.closePath(),t.fillStyle=e.colorNeedleShadowUp,t.fill()):(t.beginPath(),t.moveTo(-c,s),t.lineTo(-c,d),t.lineTo(c,d),t.lineTo(c,s),t.closePath(),t.fill()),t.restore(),e.needleCircleSize&&(t.save(),h.drawNeedleShadow(t,e),e.needleCircleOuter&&(t.beginPath(),t.arc(0,0,o,0,2*Z,!0),t.fillStyle=h.linearGradient(t,e.colorNeedleCircleOuter,e.colorNeedleCircleOuterEnd,o),t.fill(),t.closePath()),e.needleCircleInner&&(t.beginPath(),t.arc(0,0,l,0,2*Z,!0),t.fillStyle=h.linearGradient(t,e.colorNeedleCircleInner,e.colorNeedleCircleInnerEnd,l),t.fill(),t.closePath()),t.restore());}}function Pe(t,e,i){h.drawValueBox(t,e,i,0,t.max-.33*t.max,t.max);}function ut(t){var e=t.startAngle,i=t.startAngle+t.ticksAngle,r=e,n=e+(h.normalizedValue(t).normal-t.minValue)/(t.maxValue-t.minValue)*t.ticksAngle;if(t.barStartPosition==="middle"){var a=.5*(t.minValue+t.maxValue);t.value<a?(r=180-(a-h.normalizedValue(t).normal)/(t.maxValue-t.minValue)*t.ticksAngle,n=180):(r=180,n=180+(h.normalizedValue(t).normal-a)/(t.maxValue-t.minValue)*t.ticksAngle);}else t.barStartPosition==="right"&&(r=i-n+e,n=i);return {startAngle:r,endAngle:n}}function Me(t,e){var i=t.max/100,r=Q(t,e)-5*i,n=parseFloat(e.barStrokeWidth+"")||0,a=(parseFloat(e.barWidth+"")||0)*i,o=r-2*n-a,l=(r-o)/2,s=o+l,d=n/s,u=e.startAngle,c=e.startAngle+e.ticksAngle;if(t.save(),t.rotate(ue),n&&(t.beginPath(),t.arc(0,0,s,h.radians(u)-d,h.radians(c)+d,!1),t.strokeStyle=e.colorBarStroke,t.lineWidth=2*l,t.stroke(),t.closePath()),a&&(t.beginPath(),t.arc(0,0,s,h.radians(u),h.radians(c),!1),t.strokeStyle=e.colorBar,t.lineWidth=a,t.stroke(),t.closePath(),e.barShadow&&(t.save(),t.beginPath(),t.arc(0,0,r,h.radians(u),h.radians(c),!1),t.clip(),t.beginPath(),t.strokeStyle=e.colorBar,t.lineWidth=1,t.shadowBlur=e.barShadow,t.shadowColor=e.colorBarShadow,t.shadowOffsetX=0,t.shadowOffsetY=0,t.arc(0,0,r,h.radians(e.startAngle),h.radians(e.startAngle+e.ticksAngle),!1),t.stroke(),t.closePath(),t.restore()),e.barProgress)){var f=ut(e),m=f.startAngle,p=f.endAngle;t.beginPath(),t.arc(0,0,s,h.radians(m),h.radians(p),!1),t.strokeStyle=e.colorBarProgress,t.lineWidth=a,t.stroke(),t.closePath();}t.restore();}function Ce(t){return t.options.animatedValue?t.options.value:t.value}function ct(t,e,i,r,n,a,o,l){t.beginPath(),t.fillStyle=l?h.linearGradient(t,o,l,n>a?n:a,a>n,n>a?i:r):o,e>0?h.roundRect(t,i,r,n,a,e):t.rect(i,r,n,a),t.fill(),t.closePath();}function ht(t,e,i,r,n,a,o,l,s){t.beginPath(),t.lineWidth=e,t.strokeStyle=s?h.linearGradient(t,l,s,o,!0,n):l,i>0?h.roundRect(t,r,n,a,o,i):t.rect(r,n,a,o),t.stroke(),t.closePath();}function ft(t,e,i,r,n,a){function o(O,C,B,j){return O&&(!j&&e.borderShadowWidth&&(t.save(),t.shadowBlur=e.borderShadowWidth,t.shadowColor=e.colorBorderShadow),ht(t,O*l,s,i+O*l/2-g,r+O*l/2-g,d,m,C,B),g+=.5*l,!j&&e.borderShadowWidth&&(j=!0,t.restore())),j}var l=I.pixelRatio,s=e.borderRadius*l,d=n-e.borderShadowWidth-e.borderOuterWidth*l,u=d-e.borderOuterWidth*l-e.borderMiddleWidth*l,c=u-e.borderMiddleWidth*l-e.borderInnerWidth*l,f=c-e.borderInnerWidth*l,m=a-e.borderShadowWidth-e.borderOuterWidth*l,p=m-e.borderOuterWidth*l-e.borderMiddleWidth*l,P=p-e.borderMiddleWidth*l-e.borderInnerWidth*l,v=P-e.borderInnerWidth*l,W=i-(u-d)/2,A=W-(c-u)/2,M=A-(f-c)/2,x=r-(p-m)/2,V=x-(P-p)/2,y=V-(v-P)/2,g=0,w=!1;return t.save(),w=o(e.borderOuterWidth,e.colorBorderOuter,e.colorBorderOuterEnd,w),w=o(e.borderMiddleWidth,e.colorBorderMiddle,e.colorBorderMiddleEnd,w),w=o(e.borderInnerWidth,e.colorBorderInner,e.colorBorderInnerEnd,w),!w&&e.borderShadowWidth&&(t.shadowBlur=e.borderShadowWidth,t.shadowColor=e.colorBorderShadow),ct(t,s,M,y,f+2*g,v+2*g,e.colorPlate,e.colorPlateEnd),t.restore(),[M,y,f,v]}function mt(t,e,i,r,n,a){var o=I.pixelRatio,l=a>=n,s=l?.85*n:a,d=l?a:n;i=l?k(i+(n-s)/2):i;var u=!!e.title,c=!!e.units,f=!!e.valueBox,m=void 0,p=void 0,P=void 0;l?(p=k(.05*d),m=k(.075*d),P=k(.11*d),u&&(d-=m,r+=m),c&&(d-=p),f&&(d-=P)):(p=m=k(.15*s),u&&(s-=m,r+=m),c&&(s-=p));var v=2*e.barStrokeWidth,W=e.barBeginCircle?k(s*e.barBeginCircle/200-v/2):0,A=k(s*e.barWidth/100-v),M=k(d*e.barLength/100-v),x=k((d-M)/2),V=k(i+(l?s/2:x+W)),y=k(r+(l?d-x-W+v/2:s/2)),g=!l||e.hasLeft&&e.hasRight?0:(e.hasRight?-1:1)*e.ticksWidth/100*s,w=l||e.hasLeft&&e.hasRight?0:(e.hasRight?-1:1)*e.ticksWidth/100*s;return t.barDimensions={isVertical:l,width:s,length:d,barWidth:A,barLength:M,strokeWidth:v,barMargin:x,radius:W,pixelRatio:o,barOffset:null,titleMargin:u?m:0,unitsMargin:c?p:0,get ticksLength(){return this.barLength-this.barOffset-this.strokeWidth},X:i+g,Y:r+w,x0:V+g,y0:y+w,baseX:i,baseY:r,ticksPadding:e.ticksPadding/100},t.barDimensions}function Be(t,e,i,r,n,a,o){var l=mt(t,e,r,n,a,o),s=l.isVertical,d=l.width,u=l.barWidth,c=l.barLength,f=l.strokeWidth,m=l.barMargin,p=l.radius,P=l.x0,v=l.y0,W=l.X,A=l.Y,M=c;t.save(),t.beginPath();var x=null;if(e.barBeginCircle){var V=h.radians(s?270:0),y=Math.asin(u/2/p),g=Math.cos(y),w=Math.sin(y),O=P+(s?p*w:p*g-f/2),C=s?v-p*g:v+p*w,B=R(s?C-v:O-P);x=k(B+p);var j=s?k(P-p*w):O,E=s?C:k(v-p*w);i==="progress"&&(c=x+(c-x)*(h.normalizedValue(e).normal-e.minValue)/(e.maxValue-e.minValue));var J=k(O+c-x+f/2),z=k(C-c+x-f/2);t.arc(P,v,p,V+y,V-y),s?(t.moveTo(O,E),t.lineTo(O,z),t.lineTo(j,z),t.lineTo(j,E)):(t.moveTo(O,E),t.lineTo(J,E),t.lineTo(J,C),t.lineTo(O,C));}else {var Le=k(s?W+(d-u)/2:W+m),Ge=k(s?A+c+m:A+(d-u)/2);i==="progress"&&(c*=(e.value-e.minValue)/(e.maxValue-e.minValue)),s?t.rect(Le,Ge,u,-c):t.rect(Le,Ge,c,u);}i!=="progress"&&e.barStrokeWidth&&(t.lineWidth=f,t.strokeStyle=e.colorBarStroke,t.stroke()),i!=="progress"&&e.colorBar?(t.fillStyle=e.colorBarEnd?h.linearGradient(t,e.colorBar,e.colorBarEnd,c,s,s?A:W):e.colorBar,t.fill()):i==="progress"&&e.colorBarProgress&&(t.fillStyle=e.colorBarProgressEnd?h.linearGradient(t,e.colorBarProgress,e.colorBarProgressEnd,M,s,s?A:W):e.colorBarProgress,t.fill()),t.closePath(),t.restore(),e.barBeginCircle&&(t.barDimensions.radius+=f),t.barDimensions.barOffset=x,t.barDimensions.barWidth+=f,t.barDimensions.barLength+=f;}function gt(t,e,i,r,n,a){Be(t,e,"",i,r,n,a);}function Ne(t,e){return e.needleSide!==t||e.tickSide!==t||e.numberSide!==t}function vt(t,e,i,r,n,a){e.barProgress&&Be(t,e,"progress",i,r,n,a);}function bt(t,e){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.barWidth,l=i.barOffset,s=i.barMargin,d=i.X,u=i.Y,c=i.ticksLength,f=i.ticksPadding,m=n*(parseFloat(e.highlightsWidth)||0)/100;if(e.highlights&&m){var p=e.tickSide!=="right",P=e.tickSide!=="left",v=0,W=e.highlights.length,A=(n-o)/2,M=e.maxValue-e.minValue,x=k(r?d+A:d+s+l),V=m,y=r?u+a-s-l:u+A,g=k((e.ticksWidth/100+f)*n)+(m-e.ticksWidth/100*n),w=k(o+f*n);for(t.save();v<W;v++){var O=e.highlights[v],C=c*R(e.minValue-O.from)/M,B=c*R((O.to-O.from)/M);t.beginPath(),t.fillStyle=O.color,r?(p&&t.rect(x-g,y-C,V,-B),P&&t.rect(x+w,y-C,V,-B)):(p&&t.rect(x+C,y-g,B,V),P&&t.rect(x+C,y+w,B,V)),t.fill(),t.closePath();}t.restore();}}function K(t,e,i,r,n){t.beginPath(),t.moveTo(e,i),t.lineTo(r,n),t.stroke(),t.closePath();}function je(t,e,i,r,n,a,o,l,s){var d=t.barDimensions,u=d.isVertical,c=d.length,f=d.barWidth,m=d.barOffset,p=d.barMargin,P=d.pixelRatio,v=d.width,W=d.X,A=d.Y,M=d.ticksLength,x=d.ticksPadding,V=(v-f)/2,y=void 0,g=void 0,w=0,O=i.length,C=void 0,B=s*v,j=V-x*v,E=V+f+B+x*v,J=e instanceof Array?e:new Array(i.length).fill(e);t.save(),t.lineWidth=l*P;for(var z=M/(n-r);w<O;w++)C=i[w],t.strokeStyle=J[w],u?(g=A+c-p-m+(r-C)*z,a&&(y=W+j,K(t,y,g,k(y-B),g)),o&&(y=W+E,K(t,y,g,k(y-B),g))):(y=W+p+m-(r-C)*z,a&&(g=A+j,K(t,y,g,y,k(g-B))),o&&(g=A+E,K(t,y,k(g),y,g-B)));t.restore();}function pt(t,e){var i=h.prepareTicks(e),r=Ie(i,2),n=r[0],a=r[1],o=2,l=(e.maxValue-e.minValue)/(e.majorTicks.length-1),s=e.colorMajorTicks instanceof Array?e.colorMajorTicks:new Array(e.majorTicks.length).fill(e.colorStrokeTicks||e.colorMajorTicks);if(je(t,s,e.exactTicks?e.majorTicks:e.majorTicks.map(function(B,j){return e.minValue+l*j}),e.minValue,e.maxValue,n,a,o,e.ticksWidth/100),e.strokeTicks){var d=t.barDimensions,u=d.isVertical,c=d.length,f=d.width,m=d.barWidth,p=d.barMargin,P=d.barOffset,v=d.X,W=d.Y,A=d.ticksLength,M=d.pixelRatio,x=d.ticksPadding,V=(f-m)/2+m+x*f,y=(f-m)/2-x*f,g=void 0,w=void 0,O=void 0,C=void 0;t.strokeStyle=e.colorStrokeTicks||s[0],o*=M,u?(w=W+c-p-P+o/2,C=w-A-o,n&&(O=g=k(v+y),ee(t,g,w,O,C)),a&&(O=g=k(v+V),ee(t,g,w,O,C))):(g=v+p+P-o/2,O=g+A+o,n&&(C=w=k(W+y),ee(t,g,w,O,C)),a&&(C=w=k(W+V),ee(t,g,w,O,C)));}}function ee(t,e,i,r,n){t.beginPath(),t.moveTo(e,i),t.lineTo(r,n),t.stroke(),t.closePath();}function wt(t,e){var i=h.prepareTicks(e),r=Ie(i,2),n=r[0],a=r[1],o=[],l=e.minValue,s=Math.abs(e.minorTicks)||0,d=s?(e.maxValue-e.minValue)/(s*(e.majorTicks.length-1)):0;if(s)if(e.exactTicks)for(var u=_.mod(e.majorTicks[0],s)||0;l<e.maxValue;l+=s)u+l<e.maxValue&&o.push(u+l);else for(;l<e.maxValue;l+=d)o.push(l);je(t,e.colorMinorTicks||e.colorStrokeTicks,o,e.minValue,e.maxValue,n,a,1,e.ticksWidthMinor/100);}function kt(t,e){var i=t.barDimensions,r=i.isVertical,n=i.length,a=i.width,o=i.barWidth,l=i.barMargin,s=i.barOffset,d=i.X,u=i.Y,c=i.ticksLength,f=i.ticksPadding,m=e.maxValue-e.minValue,p=m/(e.majorTicks.length-1),P=e.exactTicks?e.majorTicks:e.majorTicks.map(function(J,z){return e.minValue+p*z}),v=P.length,W=e.numberSide!=="right",A=e.numberSide!=="left",M=e.fontNumbersSize*a/200,x=0,V=(e.ticksWidth/100+2*f)*a,y=(a-o)/2-V,g=(a-o)/2+o+V,w=void 0,O=void 0,C=void 0,B=void 0,j=e.colorNumbers instanceof Array?e.colorNumbers:new Array(v).fill(e.colorNumbers),E=e.numbersMargin/100*a;for(t.font=h.font(e,"Numbers",a/200),t.lineWidth=0,t.textAlign="center";x<v;x++)t.fillStyle=j[x],B=e.majorTicks[x],C=e.exactTicks?c*((P[x]-e.minValue)/m):x*c/(v-1),r?(O=u+n-l-s-C+M/3,W&&(t.textAlign="right",t.fillText(B,d+y-E,O)),A&&(t.textAlign="left",t.fillText(B,d+g+E,O))):(t.measureText(B).width,w=d+l+s+C,W&&t.fillText(B,w,u+y-E),A&&t.fillText(B,w,u+g+M+E));}function yt(t,e){if(e.title){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.baseX,l=i.baseY,s=i.titleMargin,d=e.fontTitleSize*n/200,u=k(o+(r?n:a)/2),c=k(l+s/2-(r?d:d/2)-.025*(r?a:n));t.save(),t.textAlign="center",t.fillStyle=e.colorTitle,t.font=h.font(e,"Title",n/200),t.lineWidth=0,t.fillText(e.title,u,c,r?n:a),t.restore();}}function xt(t,e){if(e.units){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.baseX,l=i.baseY,s=i.unitsMargin,d=e.fontUnitsSize*n/200,u=k(o+(r?n:a)/2),c=k(l+(r?a:n)+s/2-d/2);t.save(),t.textAlign="center",t.fillStyle=e.colorUnits,t.font=h.font(e,"Units",n/200),t.lineWidth=0,t.fillText(h.formatContext(e,e.units),u,c,r?n:a),t.restore();}}function Tt(t,e){if(e.needle){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.barWidth,l=i.barOffset,s=i.barMargin,d=i.ticksLength,u=i.X,c=i.Y,f=i.ticksPadding,m=e.needleSide!=="right",p=e.needleSide!=="left",P=d*(h.normalizedValue(e).indented-e.minValue)/(e.maxValue-e.minValue),v=(e.ticksWidth/100+f)*n,W=o/2+v,A=W*(e.needleEnd/100),M=void 0,x=void 0,V=void 0,y=void 0,g=e.needleType.toLowerCase()==="arrow"?Vt:St,w=(n-o)/2,O=W*(e.needleStart/100),C=w-v-O,B=w+o+v+O;t.save(),h.drawNeedleShadow(t,e),r?(V=k(c+a-s-l-P),m&&(M=k(u+C),x=M+A,g(t,e,M,V,x,V,A)),p&&(M=k(u+B),x=M-A,g(t,e,M,V,x,V,A,!0))):(M=k(u+s+l+P),m&&(V=k(c+C),y=V+A,g(t,e,M,V,M,y,A)),p&&(V=k(c+B),y=V-A,g(t,e,M,V,M,y,A,!0))),t.restore();}}function Ee(t,e,i,r){return e.colorNeedleEnd?h.linearGradient(t,r?e.colorNeedleEnd:e.colorNeedle,r?e.colorNeedle:e.colorNeedleEnd,i,!t.barDimensions.isVertical):e.colorNeedle}function St(t,e,i,r,n,a,o,l){t.lineWidth=e.needleWidth,t.strokeStyle=Ee(t,e,o,l),t.beginPath(),t.moveTo(i,r),t.lineTo(n,a),t.stroke(),t.closePath();}function Vt(t,e,i,r,n,a,o,l){var s=k(.4*o),d=o-s,u=i===n,c=e.needleWidth/2;t.fillStyle=Ee(t,e,o,l),t.beginPath(),u?(r>a&&(d*=-1),t.moveTo(i-c,r),t.lineTo(i+c,r),t.lineTo(i+c,r+d),t.lineTo(i,a),t.lineTo(i-c,r+d),t.lineTo(i-c,r)):(i>n&&(d*=-1),t.moveTo(i,r-c),t.lineTo(i,r+c),t.lineTo(i+d,r+c),t.lineTo(n,r),t.lineTo(i+d,r-c),t.lineTo(i,r-c)),t.fill(),t.closePath();}function Ot(t,e,i,r,n,a,o){var l=(parseFloat(e.fontValueSize)||0)*a/200,s=(.11*o-l)/2;t.barDimensions.isVertical&&h.drawValueBox(t,e,i,r+a/2,n+o-l-s,a);}var Ie=(function(){function t(e,i){var r=[],n=!0,a=!1,o=void 0;try{for(var l,s=e[Symbol.iterator]();!(n=(l=s.next()).done)&&(r.push(l.value),!i||r.length!==i);n=!0);}catch(d){a=!0,o=d;}finally{try{!n&&s.return&&s.return();}finally{if(a)throw o}}return r}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),oe=function t(e,i,r){e===null&&(e=Function.prototype);var n=Object.getOwnPropertyDescriptor(e,i);if(n===void 0){var a=Object.getPrototypeOf(e);return a===null?void 0:t(a,i,r)}if("value"in n)return n.value;var o=n.get;if(o!==void 0)return o.call(r)},Wt=function t(e,i,r,n){var a=Object.getOwnPropertyDescriptor(e,i);if(a===void 0){var o=Object.getPrototypeOf(e);o!==null&&t(o,i,r,n);}else if("value"in a&&a.writable)a.value=r;else {var l=a.set;l!==void 0&&l.call(n,r);}return r},G=(function(){function t(e,i){for(var r=0;r<i.length;r++){var n=i[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n);}}return function(e,i,r){return i&&t(e.prototype,i),r&&t(e,r),e}})(),te=null,At=(function(){function t(){N(this,t),this._events={},this.addListener=this.on,this.removeListener=this.off;}return G(t,[{key:"emit",value:function(e){if(this._events[e]){for(var i=0,r=this._events[e].length,n=arguments.length,a=Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];for(;i<r;i++)this._events[e][i]&&this._events[e][i].apply(this,a);}}},{key:"once",value:function(e){for(var i=arguments.length,r=Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];for(var a=0,o=r.length,l=this;a<o;a++)(function(){var s=r[a],d=function u(){l.off(e,u),s.apply(l,arguments);};r[a]=d;})();this.on.apply(this,[e].concat(r));}},{key:"on",value:function(e){this._events[e]||(this._events[e]=[]);for(var i=0,r=arguments.length<=1?0:arguments.length-1;i<r;i++)this._events[e].push(arguments.length<=i+1?void 0:arguments[i+1]);}},{key:"off",value:function(e){if(this._events[e])for(var i=0,r=arguments.length<=1?0:arguments.length-1;i<r;i++)for(var n=arguments.length<=i+1?void 0:arguments[i+1],a=void 0;~(a=this._events[e].indexOf(n));)this._events[e].splice(a,1);}},{key:"removeAllListeners",value:function(e){delete this._events[e];}},{key:"listeners",get:function(){return this._events}}]),t})(),Re=D("requestAnimationFrame")||function(t){return setTimeout(function(){return t(new Date().getTime())},1e3/60)},q={linear:function(t){return t},quad:function(t){return Math.pow(t,2)},dequad:function(t){return 1-q.quad(1-t)},quint:function(t){return Math.pow(t,5)},dequint:function(t){return 1-Math.pow(1-t,5)},cycle:function(t){return 1-Math.sin(Math.acos(t))},decycle:function(t){return Math.sin(Math.acos(1-t))},bounce:function(t){return 1-q.debounce(1-t)},debounce:function(t){for(var e=0,i=1;;e+=i,i/=2)if(t>=(7-4*e)/11)return -Math.pow((11-6*e-11*t)/4,2)+Math.pow(i,2)},elastic:function(t){return 1-q.delastic(1-t)},delastic:function(t){return Math.pow(2,10*(t-1))*Math.cos(20*Math.PI*1.5/3*t)}},se=(function(){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"linear",i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){};if(N(this,t),this.duration=i,this.rule=e,this.draw=r,this.end=n,typeof this.draw!="function")throw new TypeError("Invalid animation draw callback:",r);if(typeof this.end!="function")throw new TypeError("Invalid animation end callback:",n)}return G(t,[{key:"animate",value:function(e,i){var r=this;this.frame&&this.cancel();var n=window.performance&&window.performance.now?window.performance.now():D("animationStartTime")||Date.now();e=e||this.draw,i=i||this.end,this.draw=e,this.end=i,this.frame=Re(function(a){return ge(a,e,n,q[r.rule]||r.rule,r.duration,i,r)});}},{key:"cancel",value:function(){this.frame&&((D("cancelAnimationFrame")||function(e){})(this.frame),this.frame=null);}},{key:"destroy",value:function(){this.cancel(),this.draw=null,this.end=null;}}]),t})();se.rules=q;var X=(function(){function t(e,i,r){N(this,t),this.options=e,this.element=i.toLowerCase(),this.type=t.toDashed(r),this.Type=S[r],this.mutationsObserved=!1,this.isObservable=!!window.MutationObserver,window.GAUGES_NO_AUTO_INIT||t.domReady(this.traverse.bind(this));}return G(t,[{key:"isValidNode",value:function(e){return !(!e.tagName||e.tagName.toLowerCase()!==this.element||e.getAttribute("data-type")!==this.type)}},{key:"traverse",value:function(){for(var e=document.getElementsByTagName(this.element),i=0,r=e.length;i<r;i++)this.process(e[i]);this.isObservable&&!this.mutationsObserved&&(new MutationObserver(this.observe.bind(this)).observe(document.body,{childList:!0,subtree:!0,attributes:!0,characterData:!0,attributeOldValue:!0,characterDataOldValue:!0}),this.mutationsObserved=!0);}},{key:"observe",value:function(e){for(var i=0,r=e.length;i<r;i++){var n=e[i];if(n.type==="attributes"&&n.attributeName==="data-type"&&this.isValidNode(n.target)&&n.oldValue!==this.type)setTimeout(this.process.bind(this,n.target));else if(n.addedNodes&&n.addedNodes.length)for(var a=0,o=n.addedNodes.length;a<o;a++)setTimeout(this.process.bind(this,n.addedNodes[a]));}}},{key:"process",value:function(e){var i=this;if(!this.isValidNode(e))return null;var r=void 0,n=JSON.parse(JSON.stringify(this.options)),a=null;for(r in n)if(n.hasOwnProperty(r)){var o=t.toAttributeName(r),l=t.parse(e.getAttribute(o));l!=null&&(n[r]=l);}return n.renderTo=e,a=new this.Type(n),a.draw&&a.draw(),this.isObservable&&(a.observer=new MutationObserver(function(s){s.forEach(function(d){if(d.type==="attributes"){var u=d.attributeName.toLowerCase(),c=e.getAttribute(u).toLowerCase();if(u==="data-type"&&c&&c!==i.type)a.observer.disconnect(),delete a.observer,a.destroy&&a.destroy();else if(u.substr(0,5)==="data-"){var f=u.substr(5).split("-").map(function(p,P){return P?p.charAt(0).toUpperCase()+p.substr(1):p}).join(""),m={};m[f]=t.parse(e.getAttribute(d.attributeName)),f==="value"?a&&(a.value=m[f]):a.update&&a.update(m);}}});}),a.observer.observe(e,{attributes:!0})),a}}],[{key:"parse",value:function(e){if(e==="true")return !0;if(e==="false")return !1;if(e!=="undefined"){if(e==="null")return null;if(/^[-+#.\w\d\s]+(?:,[-+#.\w\d\s]*)+$/.test(e))return e.split(",");try{return JSON.parse(e)}catch(i){}return e}}},{key:"toDashed",value:function(e){for(var i=e.split(/(?=[A-Z])/),r=1,n=i.length,a=i[0].toLowerCase();r<n;r++)a+="-"+i[r].toLowerCase();return a}},{key:"toCamelCase",value:function(e){for(var i=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],r=e.split(/-/),n=0,a=r.length,o="";n<a;n++)o+=n||i?r[n][0].toUpperCase()+r[n].substr(1).toLowerCase():r[n].toLowerCase();return o}},{key:"toAttributeName",value:function(e){return "data-"+t.toDashed(e)}},{key:"domReady",value:function(e){if(/comp|inter|loaded/.test((window.document||{}).readyState+""))return e();window.addEventListener?window.addEventListener("DOMContentLoaded",e,!1):window.attachEvent&&window.attachEvent("onload",e);}}]),t})(),I=(function(){function t(e,i,r){N(this,t),t.collection.push(this),this.width=i||0,this.height=r||0,this.element=e,this.init();}return G(t,[{key:"init",value:function(){var e=t.pixelRatio;this.element.width=this.width*e,this.element.height=this.height*e,this.element.style.width=this.width+"px",this.element.style.height=this.height+"px",this.elementClone=this.element.cloneNode(!0),this.context=this.element.getContext("2d"),this.contextClone=this.elementClone.getContext("2d"),this.drawWidth=this.element.width,this.drawHeight=this.element.height,this.drawX=this.drawWidth/2,this.drawY=this.drawHeight/2,this.minSide=this.drawX<this.drawY?this.drawX:this.drawY,this.contextClone.translate(this.drawX,this.drawY),this.elementClone.initialized=!1,this.context.translate(this.drawX,this.drawY),this.context.max=this.contextClone.max=this.minSide,this.context.maxRadius=this.contextClone.maxRadius=null;}},{key:"destroy",value:function(){var e=t.collection.indexOf(this);~e&&t.collection.splice(e,1),this.context.clearRect(-this.drawX,-this.drawY,this.drawWidth,this.drawHeight),this.context.max=null,delete this.context.max,this.context.maxRadius=null,delete this.context.maxRadius,this.context=null,this.contextClone=null,this.elementClone=null,this.element=null,this.onRedraw=null;}},{key:"commit",value:function(){var e=t.pixelRatio;return e!==1&&this.contextClone.scale(e,e),this}},{key:"redraw",value:function(){return this.init(),this.onRedraw&&this.onRedraw(),this}}],[{key:"redraw",value:function(){for(var e=0,i=t.collection.length;e<i;e++)t.collection[e].redraw();}},{key:"pixelRatio",get:function(){return window.devicePixelRatio||1}}]),t})();I.collection=[],window.matchMedia&&window.matchMedia("screen and (min-resolution: 2dppx)").addListener(I.redraw);var le={renderTo:null,width:0,height:0,minValue:0,maxValue:100,value:0,units:!1,exactTicks:!1,majorTicks:[0,20,40,60,80,100],minorTicks:10,strokeTicks:!0,animatedValue:!1,animateOnInit:!1,title:!1,borders:!0,numbersMargin:1,listeners:null,valueInt:3,valueDec:2,majorTicksInt:1,majorTicksDec:0,animation:!0,animationDuration:500,animationRule:"cycle",colorPlate:"#fff",colorPlateEnd:"",colorMajorTicks:"#444",colorMinorTicks:"#666",colorStrokeTicks:"",colorTitle:"#888",colorUnits:"#888",colorNumbers:"#444",colorNeedle:"rgba(240,128,128,1)",colorNeedleEnd:"rgba(255,160,122,.9)",colorValueText:"#444",colorValueTextShadow:"rgba(0,0,0,0.3)",colorBorderShadow:"rgba(0,0,0,0.5)",colorBorderOuter:"#ddd",colorBorderOuterEnd:"#aaa",colorBorderMiddle:"#eee",colorBorderMiddleEnd:"#f0f0f0",colorBorderInner:"#fafafa",colorBorderInnerEnd:"#ccc",colorValueBoxRect:"#888",colorValueBoxRectEnd:"#666",colorValueBoxBackground:"#babab2",colorValueBoxShadow:"rgba(0,0,0,1)",colorNeedleShadowUp:"rgba(2,255,255,0.2)",colorNeedleShadowDown:"rgba(188,143,143,0.45)",colorBarStroke:"#222",colorBar:"#ccc",colorBarProgress:"#888",colorBarShadow:"#000",fontNumbers:"Arial",fontTitle:"Arial",fontUnits:"Arial",fontValue:"Arial",fontNumbersSize:20,fontTitleSize:24,fontUnitsSize:22,fontValueSize:26,fontNumbersStyle:"normal",fontTitleStyle:"normal",fontUnitsStyle:"normal",fontValueStyle:"normal",fontNumbersWeight:"normal",fontTitleWeight:"normal",fontUnitsWeight:"normal",fontValueWeight:"normal",needle:!0,needleShadow:!0,needleType:"arrow",needleStart:5,needleEnd:85,needleWidth:4,borderOuterWidth:3,borderMiddleWidth:3,borderInnerWidth:3,borderShadowWidth:3,valueBox:!0,valueBoxStroke:5,valueBoxWidth:0,valueText:"",valueTextShadow:!0,valueBoxBorderRadius:2.5,highlights:[{from:20,to:60,color:"#eee"},{from:60,to:80,color:"#ccc"},{from:80,to:100,color:"#999"}],highlightsWidth:15,highlightsLineCap:"butt",barWidth:20,barStrokeWidth:0,barProgress:!0,barShadow:0};U.prototype=Object.create(Array.prototype),U.prototype.constructor=U,U.prototype.get=function(t){if(typeof t=="string")for(var e=0,i=this.length;e<i;e++){var r=this[e].options.renderTo.tagName?this[e].options.renderTo:document.getElementById(this[e].options.renderTo||"");if(r.getAttribute("id")===t)return this[e]}else if(typeof t=="number")return this[t];return null};var de="2.2.1",k=Math.round,R=Math.abs,H=new U;H.version=de;var _=(function(t){function e(i){N(this,e);var r=b(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n=r.constructor.name;if(n==="BaseGauge")throw new TypeError("Attempt to instantiate abstract class!");if(H.push(r),i.listeners&&Object.keys(i.listeners).forEach(function(o){(i.listeners[o]instanceof Array?i.listeners[o]:[i.listeners[o]]).forEach(function(l){r.on(o,l);});}),r.version=de,r.type=S[n]||e,r.initialized=!1,i.minValue=parseFloat(i.minValue),i.maxValue=parseFloat(i.maxValue),i.value=parseFloat(i.value)||0,i.borders||(i.borderInnerWidth=i.borderMiddleWidth=i.borderOuterWidth=0),!i.renderTo)throw TypeError("Canvas element was not specified when creating the Gauge object!");var a=i.renderTo.tagName?i.renderTo:document.getElementById(i.renderTo);if(!(a instanceof HTMLCanvasElement))throw TypeError("Given gauge canvas element is invalid!");return i.width=parseFloat(i.width)||0,i.height=parseFloat(i.height)||0,i.width&&i.height||(i.width||(i.width=a.parentNode?a.parentNode.offsetWidth:a.offsetWidth),i.height||(i.height=a.parentNode?a.parentNode.offsetHeight:a.offsetHeight)),r.options=i||{},r.options.animateOnInit&&(r._value=r.options.value,r.options.value=r.options.minValue),r.canvas=new I(a,i.width,i.height),r.canvas.onRedraw=r.draw.bind(r),r.animation=new se(i.animationRule,i.animationDuration),r}return T(e,t),G(e,[{key:"update",value:function(i){return Object.assign(this.options,this.type.configure(i||{})),this.canvas.width=this.options.width,this.canvas.height=this.options.height,this.animation.rule=this.options.animationRule,this.animation.duration=this.options.animationDuration,this.canvas.redraw(),this}},{key:"destroy",value:function(){var i=H.indexOf(this);~i&&H.splice(i,1),this.canvas.destroy(),this.canvas=null,this.animation.destroy(),this.animation=null,this.emit("destroy");}},{key:"draw",value:function(){return this.options.animateOnInit&&!this.initialized&&(this.value=this._value,this.initialized=!0,this.emit("init")),this.emit("render"),this}},{key:"value",set:function(i){var r=this;i=e.ensureValue(i,this.options.minValue);var n=this.options.value;if(i!==n)if(this.options.animation){if(this.animation.frame&&(this.options.value=this._value,this._value===i))return this.animation.cancel(),void delete this._value;this._value===void 0&&(this._value=i),this.emit("animationStart"),this.animation.animate(function(a){var o=n+(i-n)*a;r.options.animatedValue&&r.emit("value",o,r.value),r.options.value=o,r.draw(),r.emit("animate",a,r.options.value);},function(){r._value!==void 0&&(r.emit("value",r._value,r.value),r.options.value=r._value,delete r._value),r.draw(),r.emit("animationEnd"),r.animation.frame=null;});}else this.emit("value",i,this.value),this.options.value=i,this.draw();},get:function(){return this._value===void 0?this.options.value:this._value}}],[{key:"configure",value:function(i){return i}},{key:"initialize",value:function(i,r){return new X(r,"canvas",i)}},{key:"fromElement",value:function(i){var r=X.toCamelCase(i.getAttribute("data-type")),n=i.attributes,a=0,o=n.length,l={};if(r){for(/Gauge$/.test(r)||(r+="Gauge");a<o;a++)l[X.toCamelCase(n[a].name.replace(/^data-/,""),!1)]=X.parse(n[a].value);new X(l,i.tagName,r).process(i);}}},{key:"ensureValue",value:function(i){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return i=parseFloat(i),!isNaN(i)&&isFinite(i)||(i=parseFloat(r)||0),i}},{key:"mod",value:function(i,r){return (i%r+r)%r}},{key:"version",get:function(){return de}}]),e})(At);S!==void 0&&(S.BaseGauge=_,S.gauges=(window.document||{}).gauges=H);var Pt=/{([_a-zA-Z]+[_a-zA-Z0-9]*)}/g,h={roundRect:ve,padValue:ae,formatMajorTickNumber:tt,radians:it,radialPoint:rt,linearGradient:nt,drawNeedleShadow:at,drawValueBox:ot,verifyError:$e,prepareTicks:et,font:be,normalizedValue:st,formatContext:Ke},Z=Math.PI,ue=Z/2,_e=Object.assign({},le,{ticksAngle:270,startAngle:45,colorNeedleCircleOuter:"#f0f0f0",colorNeedleCircleOuterEnd:"#ccc",colorNeedleCircleInner:"#e8e8e8",colorNeedleCircleInnerEnd:"#f5f5f5",needleCircleSize:10,needleCircleInner:!0,needleCircleOuter:!0,needleStart:20,animationTarget:"needle",useMinPath:!1,barWidth:0,barStartPosition:"left"}),Mt=(function(t){function e(i){return N(this,e),i=Object.assign({},_e,i||{}),b(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,e.configure(i)))}return T(e,t),G(e,[{key:"draw",value:function(){try{var i=this.canvas,r=[-i.drawX,-i.drawY,i.drawWidth,i.drawHeight],n=r[0],a=r[1],o=r[2],l=r[3],s=this.options;if(s.animationTarget==="needle"){if(!i.elementClone.initialized){var d=i.contextClone;d.clearRect(n,a,o,l),this.emit("beforePlate"),ke(d,s),this.emit("beforeHighlights"),ye(d,s),this.emit("beforeMinorTicks"),xe(d,s),this.emit("beforeMajorTicks"),Te(d,s),this.emit("beforeNumbers"),Ve(d,s),this.emit("beforeTitle"),Oe(d,s),this.emit("beforeUnits"),We(d,s),i.elementClone.initialized=!0;}this.canvas.commit(),i.context.clearRect(n,a,o,l),i.context.drawImage(i.elementClone,n,a,o,l),this.emit("beforeProgressBar"),Me(i.context,s),this.emit("beforeValueBox"),Pe(i.context,s,Ce(this)),this.emit("beforeNeedle"),Ae(i.context,s);}else {var u=-h.radians((s.value-s.minValue)/(s.maxValue-s.minValue)*s.ticksAngle);if(i.context.clearRect(n,a,o,l),this.emit("beforePlate"),ke(i.context,s),i.context.rotate(u),this.emit("beforeHighlights"),ye(i.context,s),this.emit("beforeMinorTicks"),xe(i.context,s),this.emit("beforeMajorTicks"),Te(i.context,s),this.emit("beforeNumbers"),Ve(i.context,s),this.emit("beforeProgressBar"),Me(i.context,s),i.context.rotate(-u),!i.elementClone.initialized){var c=i.contextClone;c.clearRect(n,a,o,l),this.emit("beforeTitle"),Oe(c,s),this.emit("beforeUnits"),We(c,s),this.emit("beforeNeedle"),Ae(c,s),i.elementClone.initialized=!0;}i.context.drawImage(i.elementClone,n,a,o,l);}this.emit("beforeValueBox"),Pe(i.context,s,Ce(this)),oe(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"draw",this).call(this);}catch(f){h.verifyError(f);}return this}},{key:"value",set:function(i){i=_.ensureValue(i,this.options.minValue),this.options.animation&&this.options.ticksAngle===360&&this.options.useMinPath&&(this._value=i,i=this.options.value+((i-this.options.value)%360+540)%360-180),Wt(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"value",i,this);},get:function(){return oe(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"value",this)}}],[{key:"configure",value:function(i){return i.barWidth>50&&(i.barWidth=50),isNaN(i.startAngle)&&(i.startAngle=45),isNaN(i.ticksAngle)&&(i.ticksAngle=270),i.ticksAngle>360&&(i.ticksAngle=360),i.ticksAngle<0&&(i.ticksAngle=0),i.startAngle<0&&(i.startAngle=0),i.startAngle>360&&(i.startAngle=360),i}}]),e})(_);S!==void 0&&(S.RadialGauge=Mt),_.initialize("RadialGauge",_e);var De=Object.assign({},le,{borderRadius:0,barBeginCircle:30,colorBarEnd:"",colorBarProgressEnd:"",needleWidth:6,tickSide:"both",needleSide:"both",numberSide:"both",ticksWidth:10,ticksWidthMinor:5,ticksPadding:5,barLength:85,fontTitleSize:26,highlightsWidth:10}),Ct=(function(t){function e(i){return N(this,e),i=Object.assign({},De,i||{}),b(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,e.configure(i)))}return T(e,t),G(e,[{key:"draw",value:function(){try{var i=this.canvas,r=[-i.drawX,-i.drawY,i.drawWidth,i.drawHeight],n=r[0],a=r[1],o=r[2],l=r[3],s=this.options;if(!i.elementClone.initialized){var d=i.contextClone;d.clearRect(n,a,o,l),this.emit("beforePlate"),this.drawBox=ft(d,s,n,a,o,l),this.emit("beforeBar"),gt.apply(void 0,[d,s].concat(Y(this.drawBox))),i.contextClone.barDimensions=d.barDimensions,this.emit("beforeHighlights"),bt(d,s),this.emit("beforeMinorTicks"),wt(d,s),this.emit("beforeMajorTicks"),pt(d,s),this.emit("beforeNumbers"),kt(d,s),this.emit("beforeTitle"),yt(d,s),this.emit("beforeUnits"),xt(d,s),i.elementClone.initialized=!0;}this.canvas.commit(),i.context.clearRect(n,a,o,l),i.context.drawImage(i.elementClone,n,a,o,l),this.emit("beforeProgressBar"),vt.apply(void 0,[i.context,s].concat(Y(this.drawBox))),this.emit("beforeNeedle"),Tt(i.context,s),this.emit("beforeValueBox"),Ot.apply(void 0,[i.context,s,s.animatedValue?this.options.value:this.value].concat(Y(this.drawBox))),oe(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"draw",this).call(this);}catch(u){h.verifyError(u);}return this}}],[{key:"configure",value:function(i){return i.barStrokeWidth>=i.barWidth&&(i.barStrokeWidth=k(i.barWidth/2)),i.hasLeft=Ne("right",i),i.hasRight=Ne("left",i),i.value>i.maxValue&&(i.value=i.maxValue),i.value<i.minValue&&(i.value=i.minValue),_.configure(i)}}]),e})(_);S!==void 0&&(S.LinearGauge=Ct),_.initialize("LinearGauge",De),typeof ne<"u"&&Object.assign(S,{Collection:U,GenericOptions:le,Animation:se,BaseGauge:_,drawings:h,SmartCanvas:I,DomObserver:X,vendorize:D});})(typeof ne<"u"?ne.exports:window);});var L=vb(me(),1);vb(me(),1);var Nt=["gauge"],jt=S=>S.replace(/(\-\w)/g,Y=>Y[1].toUpperCase()),Et=S=>S.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ze=S=>jt(S),Je=(()=>{class S{el;zone;canvas;gauge;isInited=false;preInitValue;preInitOptions;domListener;constructor(b,T){this.el=b,this.zone=T;}get options(){let b={};b.renderTo=this.canvas.nativeElement;for(let T of this.el.nativeElement.attributes){let N=Ze(T.name);b[N]=L.DomObserver.parse(T.value);}for(let T in this.preInitOptions)b[T]=this.preInitOptions[T];return this.isInited&&(this.preInitOptions=null),b}set options(b){if(!this.isInited){this.preInitOptions=b;return}this.update(b);}set value(b){if(!this.isInited){this.preInitValue=b;return}this.zone.runOutsideAngular(()=>{this.gauge.value=b;});}update(b){if(b)for(let T in b){let N=b[T].toString();if(T==="value")this.value=L.DomObserver.parse(N);else {let D=Et(T);this.el.nativeElement.setAttribute(D,N);}}}ngOnDestroy(){this.destroy(),this.cleanup();}cleanup(){}destroy(){this.stopListeningForDOMEvents(),this.gauge.destroy();}ngAfterViewInit(){this.initGauge(),this.listenForDOMEvents(),this.isInited=true,this.preInitValue&&(this.value=this.preInitValue);}listenForDOMEvents(){this.domListener=new MutationObserver(b=>{let T={};b.forEach(N=>{N.type==="attributes"&&(T[Ze(N.attributeName)]=L.DomObserver.parse(this.el.nativeElement.getAttribute(N.attributeName)));}),this.basicUpdate(T);}),this.domListener.observe(this.el.nativeElement,{attributes:true});}stopListeningForDOMEvents(){this.domListener&&(this.domListener.disconnect(),this.domListener=null);}initGauge(){let b=this.options;(!b.hasOwnProperty("renderTo")||!b.renderTo)&&(b.renderTo=this.canvas.nativeElement),this.basicUpdate(b);}basicUpdate(b){typeof b.value=="number"&&(this.value=b.value,delete b.value),Object.keys(b).length&&this.gauge.update(b);}static \u0275fac=function(T){return new(T||S)(Ur(Lr),Ur(ue))};static \u0275dir=nw({type:S,viewQuery:function(T,N){if(T&1&&Jh(Nt,7),T&2){let D;Zw(D=Yw())&&(N.canvas=D.first);}},inputs:{options:"options",value:"value"}})}return S})();var Dt=(()=>{class S extends Je{constructor(b,T){super(b,T);}ngOnInit(){this.gauge=new L.LinearGauge(this.options).draw();}static \u0275fac=function(T){return new(T||S)(Ur(Lr),Ur(ue))};static \u0275cmp=JD({type:S,selectors:[["linear-gauge"]],features:[Sh],decls:2,vars:0,consts:[["gauge",""]],template:function(T,N){T&1&&$h(0,"canvas",null,0);},encapsulation:2})}return S})();var Lt=(()=>{class S extends Je{constructor(b,T){super(b,T);}ngOnInit(){this.gauge=new L.RadialGauge(this.options).draw();}static \u0275fac=function(T){return new(T||S)(Ur(Lr),Ur(ue))};static \u0275cmp=JD({type:S,selectors:[["radial-gauge"]],features:[Sh],decls:2,vars:0,consts:[["gauge",""]],template:function(T,N){T&1&&$h(0,"canvas",null,0);},encapsulation:2})}return S})(),Gt=(()=>{class S{static \u0275fac=function(T){return new(T||S)};static \u0275mod=bh({type:S});static \u0275inj=Qs({})}return S})();export{Dt as D,Gt as G,Lt as L};
|
|
1
|
+
import {c2 as bh,c3 as Qs,cW as Ur,a6 as Lr,ao as ue,J as JD,c9 as Sh,c as $h,ak as nw,b$ as Jh,c0 as Zw,c1 as Yw,cL as vb,cM as yb}from'./main-BNR44HGB.js';var me=yb((It,ne)=>{(function(S){"use strict";function Y(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}return Array.from(t)}function b(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !e||typeof e!="object"&&typeof e!="function"?t:e}function T(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e);}function N(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function D(t,e){if(e||(e=typeof window>"u"?global:window),e[t]!==void 0)return e[t];if(te===null){var i=window.getComputedStyle(document.documentElement,"");te=(Array.prototype.slice.call(i).join("").match(/-(moz|webkit|ms)-/)||i.OLink===""&&["","o"]||["",""])[1];}if(te==="")return null;var r=t.charAt(0).toUpperCase()+t.substr(1),n=e[te+r];return n!==void 0?n:null}function ge(t,e,i,r,n,a,o){if(typeof r!="function")throw new TypeError("Invalid animation rule:",r);var l=t-i,s=l/n,d=0;s>1&&(s=1),s!==1&&(d=r(s),isFinite(d)&&!isNaN(d)&&(s=d)),e&&e(s),l<n?o.frame=Re(function(u){return ge(u,e,i,r,n,a,o)}):(a&&a(),o.inProgress=!1);}function U(){Array.prototype.constructor.apply(this,arguments);}function $e(t){if(!(t instanceof DOMException&&t.result===2152923147))throw t}function Ke(t,e){return e.replace(Pt,function(i,r){var n=t[r];return n!==void 0?n:i})}function et(t){return t.majorTicks instanceof Array||(t.majorTicks=t.majorTicks?[t.majorTicks]:[]),t.majorTicks.length||(t.majorTicks.push(h.formatMajorTickNumber(t.minValue,t)),t.majorTicks.push(h.formatMajorTickNumber(t.maxValue,t))),[t.tickSide!=="right",t.tickSide!=="left"]}function ve(t,e,i,r,n,a){t.beginPath(),t.moveTo(e+a,i),t.lineTo(e+r-a,i),t.quadraticCurveTo(e+r,i,e+r,i+a),t.lineTo(e+r,i+n-a),t.quadraticCurveTo(e+r,i+n,e+r-a,i+n),t.lineTo(e+a,i+n),t.quadraticCurveTo(e,i+n,e,i+n-a),t.lineTo(e,i+a),t.quadraticCurveTo(e,i,e+a,i),t.closePath();}function ae(t,e){var i=e.valueDec,r=e.valueInt,n=0,a=void 0,o=void 0,l=void 0;if(t=parseFloat(t),l=t<0,t=Math.abs(t),i>0){for(o=t.toFixed(i).toString().split("."),a=r-o[0].length;n<a;++n)o[0]="0"+o[0];o=(l?"-":"")+o[0]+"."+o[1];}else {for(o=Math.round(t).toString(),a=r-o.length;n<a;++n)o="0"+o;o=(l?"-":"")+o;}return o}function tt(t,e){var i=void 0,r=!1;return i=e.majorTicksDec===0?Math.round(t).toString():t.toFixed(e.majorTicksDec),e.majorTicksInt>1?(r=~i.indexOf("."),~i.indexOf("-")?"-"+[e.majorTicksInt+e.majorTicksDec+2+(r?1:0)-i.length].join("0")+i.replace("-",""):[e.majorTicksInt+e.majorTicksDec+1+(r?1:0)-i.length].join("0")+i):i}function it(t){return t*Math.PI/180}function rt(t,e){return {x:-t*Math.sin(e),y:t*Math.cos(e)}}function nt(t,e,i,r){var n=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,o=t.createLinearGradient(n?0:a,n?a:0,n?0:r,n?r:0);return o.addColorStop(0,e),o.addColorStop(1,i),o}function at(t,e){e.needleShadow&&(t.shadowOffsetX=2,t.shadowOffsetY=2,t.shadowBlur=10,t.shadowColor=e.colorNeedleShadowDown);}function be(t,e,i){return t["font"+e+"Style"]+" "+t["font"+e+"Weight"]+" "+t["font"+e+"Size"]*i+"px "+t["font"+e]}function pe(t){t.shadowOffsetX=null,t.shadowOffsetY=null,t.shadowBlur=null,t.shadowColor="",t.strokeStyle=null,t.lineWidth=0,t.save();}function we(t,e,i,r){e.valueTextShadow&&(t.shadowOffsetX=i,t.shadowOffsetY=i,t.shadowBlur=r,t.shadowColor=e.colorValueTextShadow);}function ot(t,e,i,r,n,a){if(e.valueBox){pe(t);var o=e.valueDec?1+e.valueDec:0,l="9".repeat(Math.max.apply(null,[String(parseInt(i)).length+o].concat(e.majorTicks.map(function(O){return String(parseInt(O,10)).length+o})))),s=e.valueText||ae(i,e),d=a/200,u=a/100,c=.4*u,f=1.2*u;t.font=be(e,"Value",d),we(t,e,c,f);var m=t.measureText(e.valueText?s:"-"+ae(Number(l),e)).width;pe(t);var p=parseFloat(e.fontValueSize)*d+c+f,P=u*parseFloat(e.valueBoxStroke),v=2*a-2*P,W=m+10*u,A=1.1*p+c+f,M=u*e.valueBoxBorderRadius,x=(parseFloat(e.valueBoxWidth)||0)/100*v;x>W&&(W=x),W>v&&(W=v);var V=r-W/2,y=n-A/2,g=n-5.75*u;if(t.beginPath(),M?ve(t,V,y,W,A,M):t.rect(V,y,W,A),P){var w=t.createRadialGradient(r,g,10*u,r,g,20*u);w.addColorStop(0,e.colorValueBoxRect),w.addColorStop(1,e.colorValueBoxRectEnd),t.strokeStyle=w,t.lineWidth=P,t.stroke();}e.colorValueBoxShadow&&(t.shadowBlur=1.2*u,t.shadowColor=e.colorValueBoxShadow),e.colorValueBoxBackground&&(t.fillStyle=e.colorValueBoxBackground,t.fill()),t.closePath(),t.restore(),we(t,e,c,f),t.fillStyle=e.colorValueText,t.textAlign="center",t.textBaseline="alphabetic",t.fillText(s,V+W/2,n+A/2-p/3),t.restore();}}function st(t){var e=t.value,i=t.minValue,r=t.maxValue,n=.01*(r-i);return {normal:e<i?i:e>r?r:e,indented:e<i?i-n:e>r?r+n:e}}function lt(t,e,i,r,n){i.beginPath(),i.arc(0,0,R(t),0,2*Z,!0),i.lineWidth=e,i.strokeStyle=n?h.linearGradient(i,r,n,t):r,i.stroke(),i.closePath();}function Q(t,e){var i=I.pixelRatio;return t.maxRadius||(t.maxRadius=t.max-e.borderShadowWidth-e.borderOuterWidth*i-e.borderMiddleWidth*i-e.borderInnerWidth*i+(e.borderOuterWidth?.5:0)+(e.borderMiddleWidth?.5:0)+(e.borderInnerWidth?.5:0)),t.maxRadius}function ke(t,e){function i(c,f,m,p,P,v){return f&&(!v&&e.borderShadowWidth&&(m.save(),m.shadowBlur=e.borderShadowWidth,m.shadowColor=e.colorBorderShadow),lt(c,f*r,m,p,P),!v&&e.borderShadowWidth&&(v=!0,m.restore())),v}var r=I.pixelRatio,n=e.borderShadowWidth*r,a=t.max-n-e.borderOuterWidth*r/2,o=a-e.borderOuterWidth*r/2-e.borderMiddleWidth*r/2+.5,l=o-e.borderMiddleWidth*r/2-e.borderInnerWidth*r/2+.5,s=Q(t,e),d=void 0,u=!1;t.save(),u=i(a,e.borderOuterWidth,t,e.colorBorderOuter,e.colorBorderOuterEnd,u),u=i(o,e.borderMiddleWidth,t,e.colorBorderMiddle,e.colorBorderMiddleEnd,u),u=i(l,e.borderInnerWidth,t,e.colorBorderInner,e.colorBorderInnerEnd,u),!u&&e.borderShadowWidth&&(t.shadowBlur=e.borderShadowWidth,t.shadowColor=e.colorBorderShadow),t.beginPath(),t.arc(0,0,R(s),0,2*Z,!0),e.colorPlateEnd?(d=t.createRadialGradient(0,0,s/2,0,0,s),d.addColorStop(0,e.colorPlate),d.addColorStop(1,e.colorPlateEnd)):d=e.colorPlate,t.fillStyle=d,t.fill(),t.closePath(),t.restore();}function ye(t,e){if(e.highlights!=="false"&&e.highlights.length&&e.highlightsWidth!==0){var i=t.max*(parseFloat(e.highlightsWidth)||0)/100,r=R($(t,e)-i/2),n=e.highlights.length,a=(e.maxValue-e.minValue)/e.ticksAngle;t.save();for(var o=0;o<n;o++){var l=e.highlights[o];t.lineWidth=i,t.lineCap=e.highlightsLineCap,t.strokeStyle=l.color,t.beginPath(),t.rotate(ue),t.arc(0,0,r,h.radians(e.startAngle+(l.from-e.minValue)/a),h.radians(e.startAngle+(l.to-e.minValue)/a),!1),t.stroke(),t.closePath(),t.restore(),t.save();}t.restore();}}function xe(t,e){var i=$(t,e),r=void 0,n=void 0,a=void 0,o=0,l=Math.abs(e.minorTicks)||0,s=e.ticksAngle/(e.maxValue-e.minValue);e.exactTicks?(n=e.maxValue-e.minValue,r=l?n/l:0,o=(_.mod(e.majorTicks[0],l)||0)*s):r=l*(e.majorTicks.length-1),t.lineWidth=I.pixelRatio,t.strokeStyle=e.colorMinorTicks||e.colorStrokeTicks,t.save();for(var d=0;d<r;++d)(a=e.startAngle+o+d*(e.ticksAngle/r))<=e.ticksAngle+e.startAngle&&(t.rotate(h.radians(a)),t.beginPath(),t.moveTo(0,i),t.lineTo(0,i-.075*t.max),dt(t));t.restore();}function $(t,e){var i=t.max/100;return Q(t,e)-5*i-(e.barWidth?2*(parseFloat(e.barStrokeWidth)||0)+((parseFloat(e.barWidth)||0)+5)*i:0)}function Te(t,e){h.prepareTicks(e);var i=R($(t,e)),r=void 0,n=e.majorTicks.length,a=I.pixelRatio;t.lineWidth=2*a,r=e.colorMajorTicks instanceof Array?e.colorMajorTicks:new Array(n).fill(e.colorStrokeTicks||e.colorMajorTicks);for(var o=0;o<n;++o)t.save(),t.strokeStyle=r[o],t.rotate(h.radians(Se(e,e.exactTicks?e.majorTicks[o]:o,n))),t.beginPath(),t.moveTo(0,i),t.lineTo(0,i-.15*t.max),t.stroke(),t.closePath(),t.restore();e.strokeTicks&&(t.save(),t.strokeStyle=e.colorStrokeTicks||r[0],t.rotate(ue),t.beginPath(),t.arc(0,0,i,h.radians(e.startAngle),h.radians(e.startAngle+e.ticksAngle),!1),t.stroke(),t.closePath(),t.restore());}function Se(t,e,i){if(t.exactTicks){var r=t.ticksAngle/(t.maxValue-t.minValue);return t.startAngle+r*(e-t.minValue)}return t.startAngle+e*(t.ticksAngle/(i-1))}function dt(t){t.stroke(),t.restore(),t.closePath(),t.save();}function Ve(t,e){var i=$(t,e)-.15*t.max,r={},n=0,a=e.majorTicks.length,o=e.animationTarget!=="needle",l=e.colorNumbers instanceof Array?e.colorNumbers:new Array(a).fill(e.colorNumbers),s=o?-(e.value-e.minValue)/(e.maxValue-e.minValue)*e.ticksAngle:0;for(o&&(t.save(),t.rotate(-h.radians(s))),t.font=h.font(e,"Numbers",t.max/200),t.lineWidth=0,t.textAlign="center",t.textBaseline="middle";n<a;++n){var d=s+Se(e,e.exactTicks?e.majorTicks[n]:n,a),u=t.measureText(e.majorTicks[n]).width,c=e.fontNumbersSize,f=Math.sqrt(u*u+c*c)/2,m=h.radialPoint(i-f-e.numbersMargin/100*t.max,h.radians(d));d===360&&(d=0),r[d]||(r[d]=!0,t.fillStyle=l[n],t.fillText(e.majorTicks[n],m.x,m.y));}o&&t.restore();}function Oe(t,e){e.title&&(t.save(),t.font=h.font(e,"Title",t.max/200),t.fillStyle=e.colorTitle,t.textAlign="center",t.fillText(e.title,0,-t.max/4.25,.8*t.max),t.restore());}function We(t,e){e.units&&(t.save(),t.font=h.font(e,"Units",t.max/200),t.fillStyle=e.colorUnits,t.textAlign="center",t.fillText(h.formatContext(e,e.units),0,t.max/3.25,.8*t.max),t.restore());}function Ae(t,e){if(e.needle){var i=e.animationTarget!=="needle",r=e.ticksAngle<360?h.normalizedValue(e).indented:e.value,n=i?e.startAngle:e.startAngle+(r-e.minValue)/(e.maxValue-e.minValue)*e.ticksAngle;e.barStartPosition==="right"&&(n=e.startAngle+e.ticksAngle-(r-e.minValue)/(e.maxValue-e.minValue)*e.ticksAngle);var a=Q(t,e),o=R(a/100*e.needleCircleSize),l=R(a/100*e.needleCircleSize*.75),s=R(a/100*e.needleEnd),d=R(e.needleStart?a/100*e.needleStart:0),u=a/100*e.needleWidth,c=a/100*e.needleWidth/2,f=I.pixelRatio;t.save(),h.drawNeedleShadow(t,e),t.rotate(h.radians(n)),t.fillStyle=h.linearGradient(t,e.colorNeedle,e.colorNeedleEnd,s-d),e.needleType==="arrow"?(t.beginPath(),t.moveTo(-c,-d),t.lineTo(-u,0),t.lineTo(-1*f,s),t.lineTo(f,s),t.lineTo(u,0),t.lineTo(c,-d),t.closePath(),t.fill(),t.beginPath(),t.lineTo(-.5*f,s),t.lineTo(-1*f,s),t.lineTo(-u,0),t.lineTo(-c,-d),t.lineTo(c/2*f-2*f,-d),t.closePath(),t.fillStyle=e.colorNeedleShadowUp,t.fill()):(t.beginPath(),t.moveTo(-c,s),t.lineTo(-c,d),t.lineTo(c,d),t.lineTo(c,s),t.closePath(),t.fill()),t.restore(),e.needleCircleSize&&(t.save(),h.drawNeedleShadow(t,e),e.needleCircleOuter&&(t.beginPath(),t.arc(0,0,o,0,2*Z,!0),t.fillStyle=h.linearGradient(t,e.colorNeedleCircleOuter,e.colorNeedleCircleOuterEnd,o),t.fill(),t.closePath()),e.needleCircleInner&&(t.beginPath(),t.arc(0,0,l,0,2*Z,!0),t.fillStyle=h.linearGradient(t,e.colorNeedleCircleInner,e.colorNeedleCircleInnerEnd,l),t.fill(),t.closePath()),t.restore());}}function Pe(t,e,i){h.drawValueBox(t,e,i,0,t.max-.33*t.max,t.max);}function ut(t){var e=t.startAngle,i=t.startAngle+t.ticksAngle,r=e,n=e+(h.normalizedValue(t).normal-t.minValue)/(t.maxValue-t.minValue)*t.ticksAngle;if(t.barStartPosition==="middle"){var a=.5*(t.minValue+t.maxValue);t.value<a?(r=180-(a-h.normalizedValue(t).normal)/(t.maxValue-t.minValue)*t.ticksAngle,n=180):(r=180,n=180+(h.normalizedValue(t).normal-a)/(t.maxValue-t.minValue)*t.ticksAngle);}else t.barStartPosition==="right"&&(r=i-n+e,n=i);return {startAngle:r,endAngle:n}}function Me(t,e){var i=t.max/100,r=Q(t,e)-5*i,n=parseFloat(e.barStrokeWidth+"")||0,a=(parseFloat(e.barWidth+"")||0)*i,o=r-2*n-a,l=(r-o)/2,s=o+l,d=n/s,u=e.startAngle,c=e.startAngle+e.ticksAngle;if(t.save(),t.rotate(ue),n&&(t.beginPath(),t.arc(0,0,s,h.radians(u)-d,h.radians(c)+d,!1),t.strokeStyle=e.colorBarStroke,t.lineWidth=2*l,t.stroke(),t.closePath()),a&&(t.beginPath(),t.arc(0,0,s,h.radians(u),h.radians(c),!1),t.strokeStyle=e.colorBar,t.lineWidth=a,t.stroke(),t.closePath(),e.barShadow&&(t.save(),t.beginPath(),t.arc(0,0,r,h.radians(u),h.radians(c),!1),t.clip(),t.beginPath(),t.strokeStyle=e.colorBar,t.lineWidth=1,t.shadowBlur=e.barShadow,t.shadowColor=e.colorBarShadow,t.shadowOffsetX=0,t.shadowOffsetY=0,t.arc(0,0,r,h.radians(e.startAngle),h.radians(e.startAngle+e.ticksAngle),!1),t.stroke(),t.closePath(),t.restore()),e.barProgress)){var f=ut(e),m=f.startAngle,p=f.endAngle;t.beginPath(),t.arc(0,0,s,h.radians(m),h.radians(p),!1),t.strokeStyle=e.colorBarProgress,t.lineWidth=a,t.stroke(),t.closePath();}t.restore();}function Ce(t){return t.options.animatedValue?t.options.value:t.value}function ct(t,e,i,r,n,a,o,l){t.beginPath(),t.fillStyle=l?h.linearGradient(t,o,l,n>a?n:a,a>n,n>a?i:r):o,e>0?h.roundRect(t,i,r,n,a,e):t.rect(i,r,n,a),t.fill(),t.closePath();}function ht(t,e,i,r,n,a,o,l,s){t.beginPath(),t.lineWidth=e,t.strokeStyle=s?h.linearGradient(t,l,s,o,!0,n):l,i>0?h.roundRect(t,r,n,a,o,i):t.rect(r,n,a,o),t.stroke(),t.closePath();}function ft(t,e,i,r,n,a){function o(O,C,B,j){return O&&(!j&&e.borderShadowWidth&&(t.save(),t.shadowBlur=e.borderShadowWidth,t.shadowColor=e.colorBorderShadow),ht(t,O*l,s,i+O*l/2-g,r+O*l/2-g,d,m,C,B),g+=.5*l,!j&&e.borderShadowWidth&&(j=!0,t.restore())),j}var l=I.pixelRatio,s=e.borderRadius*l,d=n-e.borderShadowWidth-e.borderOuterWidth*l,u=d-e.borderOuterWidth*l-e.borderMiddleWidth*l,c=u-e.borderMiddleWidth*l-e.borderInnerWidth*l,f=c-e.borderInnerWidth*l,m=a-e.borderShadowWidth-e.borderOuterWidth*l,p=m-e.borderOuterWidth*l-e.borderMiddleWidth*l,P=p-e.borderMiddleWidth*l-e.borderInnerWidth*l,v=P-e.borderInnerWidth*l,W=i-(u-d)/2,A=W-(c-u)/2,M=A-(f-c)/2,x=r-(p-m)/2,V=x-(P-p)/2,y=V-(v-P)/2,g=0,w=!1;return t.save(),w=o(e.borderOuterWidth,e.colorBorderOuter,e.colorBorderOuterEnd,w),w=o(e.borderMiddleWidth,e.colorBorderMiddle,e.colorBorderMiddleEnd,w),w=o(e.borderInnerWidth,e.colorBorderInner,e.colorBorderInnerEnd,w),!w&&e.borderShadowWidth&&(t.shadowBlur=e.borderShadowWidth,t.shadowColor=e.colorBorderShadow),ct(t,s,M,y,f+2*g,v+2*g,e.colorPlate,e.colorPlateEnd),t.restore(),[M,y,f,v]}function mt(t,e,i,r,n,a){var o=I.pixelRatio,l=a>=n,s=l?.85*n:a,d=l?a:n;i=l?k(i+(n-s)/2):i;var u=!!e.title,c=!!e.units,f=!!e.valueBox,m=void 0,p=void 0,P=void 0;l?(p=k(.05*d),m=k(.075*d),P=k(.11*d),u&&(d-=m,r+=m),c&&(d-=p),f&&(d-=P)):(p=m=k(.15*s),u&&(s-=m,r+=m),c&&(s-=p));var v=2*e.barStrokeWidth,W=e.barBeginCircle?k(s*e.barBeginCircle/200-v/2):0,A=k(s*e.barWidth/100-v),M=k(d*e.barLength/100-v),x=k((d-M)/2),V=k(i+(l?s/2:x+W)),y=k(r+(l?d-x-W+v/2:s/2)),g=!l||e.hasLeft&&e.hasRight?0:(e.hasRight?-1:1)*e.ticksWidth/100*s,w=l||e.hasLeft&&e.hasRight?0:(e.hasRight?-1:1)*e.ticksWidth/100*s;return t.barDimensions={isVertical:l,width:s,length:d,barWidth:A,barLength:M,strokeWidth:v,barMargin:x,radius:W,pixelRatio:o,barOffset:null,titleMargin:u?m:0,unitsMargin:c?p:0,get ticksLength(){return this.barLength-this.barOffset-this.strokeWidth},X:i+g,Y:r+w,x0:V+g,y0:y+w,baseX:i,baseY:r,ticksPadding:e.ticksPadding/100},t.barDimensions}function Be(t,e,i,r,n,a,o){var l=mt(t,e,r,n,a,o),s=l.isVertical,d=l.width,u=l.barWidth,c=l.barLength,f=l.strokeWidth,m=l.barMargin,p=l.radius,P=l.x0,v=l.y0,W=l.X,A=l.Y,M=c;t.save(),t.beginPath();var x=null;if(e.barBeginCircle){var V=h.radians(s?270:0),y=Math.asin(u/2/p),g=Math.cos(y),w=Math.sin(y),O=P+(s?p*w:p*g-f/2),C=s?v-p*g:v+p*w,B=R(s?C-v:O-P);x=k(B+p);var j=s?k(P-p*w):O,E=s?C:k(v-p*w);i==="progress"&&(c=x+(c-x)*(h.normalizedValue(e).normal-e.minValue)/(e.maxValue-e.minValue));var J=k(O+c-x+f/2),z=k(C-c+x-f/2);t.arc(P,v,p,V+y,V-y),s?(t.moveTo(O,E),t.lineTo(O,z),t.lineTo(j,z),t.lineTo(j,E)):(t.moveTo(O,E),t.lineTo(J,E),t.lineTo(J,C),t.lineTo(O,C));}else {var Le=k(s?W+(d-u)/2:W+m),Ge=k(s?A+c+m:A+(d-u)/2);i==="progress"&&(c*=(e.value-e.minValue)/(e.maxValue-e.minValue)),s?t.rect(Le,Ge,u,-c):t.rect(Le,Ge,c,u);}i!=="progress"&&e.barStrokeWidth&&(t.lineWidth=f,t.strokeStyle=e.colorBarStroke,t.stroke()),i!=="progress"&&e.colorBar?(t.fillStyle=e.colorBarEnd?h.linearGradient(t,e.colorBar,e.colorBarEnd,c,s,s?A:W):e.colorBar,t.fill()):i==="progress"&&e.colorBarProgress&&(t.fillStyle=e.colorBarProgressEnd?h.linearGradient(t,e.colorBarProgress,e.colorBarProgressEnd,M,s,s?A:W):e.colorBarProgress,t.fill()),t.closePath(),t.restore(),e.barBeginCircle&&(t.barDimensions.radius+=f),t.barDimensions.barOffset=x,t.barDimensions.barWidth+=f,t.barDimensions.barLength+=f;}function gt(t,e,i,r,n,a){Be(t,e,"",i,r,n,a);}function Ne(t,e){return e.needleSide!==t||e.tickSide!==t||e.numberSide!==t}function vt(t,e,i,r,n,a){e.barProgress&&Be(t,e,"progress",i,r,n,a);}function bt(t,e){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.barWidth,l=i.barOffset,s=i.barMargin,d=i.X,u=i.Y,c=i.ticksLength,f=i.ticksPadding,m=n*(parseFloat(e.highlightsWidth)||0)/100;if(e.highlights&&m){var p=e.tickSide!=="right",P=e.tickSide!=="left",v=0,W=e.highlights.length,A=(n-o)/2,M=e.maxValue-e.minValue,x=k(r?d+A:d+s+l),V=m,y=r?u+a-s-l:u+A,g=k((e.ticksWidth/100+f)*n)+(m-e.ticksWidth/100*n),w=k(o+f*n);for(t.save();v<W;v++){var O=e.highlights[v],C=c*R(e.minValue-O.from)/M,B=c*R((O.to-O.from)/M);t.beginPath(),t.fillStyle=O.color,r?(p&&t.rect(x-g,y-C,V,-B),P&&t.rect(x+w,y-C,V,-B)):(p&&t.rect(x+C,y-g,B,V),P&&t.rect(x+C,y+w,B,V)),t.fill(),t.closePath();}t.restore();}}function K(t,e,i,r,n){t.beginPath(),t.moveTo(e,i),t.lineTo(r,n),t.stroke(),t.closePath();}function je(t,e,i,r,n,a,o,l,s){var d=t.barDimensions,u=d.isVertical,c=d.length,f=d.barWidth,m=d.barOffset,p=d.barMargin,P=d.pixelRatio,v=d.width,W=d.X,A=d.Y,M=d.ticksLength,x=d.ticksPadding,V=(v-f)/2,y=void 0,g=void 0,w=0,O=i.length,C=void 0,B=s*v,j=V-x*v,E=V+f+B+x*v,J=e instanceof Array?e:new Array(i.length).fill(e);t.save(),t.lineWidth=l*P;for(var z=M/(n-r);w<O;w++)C=i[w],t.strokeStyle=J[w],u?(g=A+c-p-m+(r-C)*z,a&&(y=W+j,K(t,y,g,k(y-B),g)),o&&(y=W+E,K(t,y,g,k(y-B),g))):(y=W+p+m-(r-C)*z,a&&(g=A+j,K(t,y,g,y,k(g-B))),o&&(g=A+E,K(t,y,k(g),y,g-B)));t.restore();}function pt(t,e){var i=h.prepareTicks(e),r=Ie(i,2),n=r[0],a=r[1],o=2,l=(e.maxValue-e.minValue)/(e.majorTicks.length-1),s=e.colorMajorTicks instanceof Array?e.colorMajorTicks:new Array(e.majorTicks.length).fill(e.colorStrokeTicks||e.colorMajorTicks);if(je(t,s,e.exactTicks?e.majorTicks:e.majorTicks.map(function(B,j){return e.minValue+l*j}),e.minValue,e.maxValue,n,a,o,e.ticksWidth/100),e.strokeTicks){var d=t.barDimensions,u=d.isVertical,c=d.length,f=d.width,m=d.barWidth,p=d.barMargin,P=d.barOffset,v=d.X,W=d.Y,A=d.ticksLength,M=d.pixelRatio,x=d.ticksPadding,V=(f-m)/2+m+x*f,y=(f-m)/2-x*f,g=void 0,w=void 0,O=void 0,C=void 0;t.strokeStyle=e.colorStrokeTicks||s[0],o*=M,u?(w=W+c-p-P+o/2,C=w-A-o,n&&(O=g=k(v+y),ee(t,g,w,O,C)),a&&(O=g=k(v+V),ee(t,g,w,O,C))):(g=v+p+P-o/2,O=g+A+o,n&&(C=w=k(W+y),ee(t,g,w,O,C)),a&&(C=w=k(W+V),ee(t,g,w,O,C)));}}function ee(t,e,i,r,n){t.beginPath(),t.moveTo(e,i),t.lineTo(r,n),t.stroke(),t.closePath();}function wt(t,e){var i=h.prepareTicks(e),r=Ie(i,2),n=r[0],a=r[1],o=[],l=e.minValue,s=Math.abs(e.minorTicks)||0,d=s?(e.maxValue-e.minValue)/(s*(e.majorTicks.length-1)):0;if(s)if(e.exactTicks)for(var u=_.mod(e.majorTicks[0],s)||0;l<e.maxValue;l+=s)u+l<e.maxValue&&o.push(u+l);else for(;l<e.maxValue;l+=d)o.push(l);je(t,e.colorMinorTicks||e.colorStrokeTicks,o,e.minValue,e.maxValue,n,a,1,e.ticksWidthMinor/100);}function kt(t,e){var i=t.barDimensions,r=i.isVertical,n=i.length,a=i.width,o=i.barWidth,l=i.barMargin,s=i.barOffset,d=i.X,u=i.Y,c=i.ticksLength,f=i.ticksPadding,m=e.maxValue-e.minValue,p=m/(e.majorTicks.length-1),P=e.exactTicks?e.majorTicks:e.majorTicks.map(function(J,z){return e.minValue+p*z}),v=P.length,W=e.numberSide!=="right",A=e.numberSide!=="left",M=e.fontNumbersSize*a/200,x=0,V=(e.ticksWidth/100+2*f)*a,y=(a-o)/2-V,g=(a-o)/2+o+V,w=void 0,O=void 0,C=void 0,B=void 0,j=e.colorNumbers instanceof Array?e.colorNumbers:new Array(v).fill(e.colorNumbers),E=e.numbersMargin/100*a;for(t.font=h.font(e,"Numbers",a/200),t.lineWidth=0,t.textAlign="center";x<v;x++)t.fillStyle=j[x],B=e.majorTicks[x],C=e.exactTicks?c*((P[x]-e.minValue)/m):x*c/(v-1),r?(O=u+n-l-s-C+M/3,W&&(t.textAlign="right",t.fillText(B,d+y-E,O)),A&&(t.textAlign="left",t.fillText(B,d+g+E,O))):(t.measureText(B).width,w=d+l+s+C,W&&t.fillText(B,w,u+y-E),A&&t.fillText(B,w,u+g+M+E));}function yt(t,e){if(e.title){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.baseX,l=i.baseY,s=i.titleMargin,d=e.fontTitleSize*n/200,u=k(o+(r?n:a)/2),c=k(l+s/2-(r?d:d/2)-.025*(r?a:n));t.save(),t.textAlign="center",t.fillStyle=e.colorTitle,t.font=h.font(e,"Title",n/200),t.lineWidth=0,t.fillText(e.title,u,c,r?n:a),t.restore();}}function xt(t,e){if(e.units){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.baseX,l=i.baseY,s=i.unitsMargin,d=e.fontUnitsSize*n/200,u=k(o+(r?n:a)/2),c=k(l+(r?a:n)+s/2-d/2);t.save(),t.textAlign="center",t.fillStyle=e.colorUnits,t.font=h.font(e,"Units",n/200),t.lineWidth=0,t.fillText(h.formatContext(e,e.units),u,c,r?n:a),t.restore();}}function Tt(t,e){if(e.needle){var i=t.barDimensions,r=i.isVertical,n=i.width,a=i.length,o=i.barWidth,l=i.barOffset,s=i.barMargin,d=i.ticksLength,u=i.X,c=i.Y,f=i.ticksPadding,m=e.needleSide!=="right",p=e.needleSide!=="left",P=d*(h.normalizedValue(e).indented-e.minValue)/(e.maxValue-e.minValue),v=(e.ticksWidth/100+f)*n,W=o/2+v,A=W*(e.needleEnd/100),M=void 0,x=void 0,V=void 0,y=void 0,g=e.needleType.toLowerCase()==="arrow"?Vt:St,w=(n-o)/2,O=W*(e.needleStart/100),C=w-v-O,B=w+o+v+O;t.save(),h.drawNeedleShadow(t,e),r?(V=k(c+a-s-l-P),m&&(M=k(u+C),x=M+A,g(t,e,M,V,x,V,A)),p&&(M=k(u+B),x=M-A,g(t,e,M,V,x,V,A,!0))):(M=k(u+s+l+P),m&&(V=k(c+C),y=V+A,g(t,e,M,V,M,y,A)),p&&(V=k(c+B),y=V-A,g(t,e,M,V,M,y,A,!0))),t.restore();}}function Ee(t,e,i,r){return e.colorNeedleEnd?h.linearGradient(t,r?e.colorNeedleEnd:e.colorNeedle,r?e.colorNeedle:e.colorNeedleEnd,i,!t.barDimensions.isVertical):e.colorNeedle}function St(t,e,i,r,n,a,o,l){t.lineWidth=e.needleWidth,t.strokeStyle=Ee(t,e,o,l),t.beginPath(),t.moveTo(i,r),t.lineTo(n,a),t.stroke(),t.closePath();}function Vt(t,e,i,r,n,a,o,l){var s=k(.4*o),d=o-s,u=i===n,c=e.needleWidth/2;t.fillStyle=Ee(t,e,o,l),t.beginPath(),u?(r>a&&(d*=-1),t.moveTo(i-c,r),t.lineTo(i+c,r),t.lineTo(i+c,r+d),t.lineTo(i,a),t.lineTo(i-c,r+d),t.lineTo(i-c,r)):(i>n&&(d*=-1),t.moveTo(i,r-c),t.lineTo(i,r+c),t.lineTo(i+d,r+c),t.lineTo(n,r),t.lineTo(i+d,r-c),t.lineTo(i,r-c)),t.fill(),t.closePath();}function Ot(t,e,i,r,n,a,o){var l=(parseFloat(e.fontValueSize)||0)*a/200,s=(.11*o-l)/2;t.barDimensions.isVertical&&h.drawValueBox(t,e,i,r+a/2,n+o-l-s,a);}var Ie=(function(){function t(e,i){var r=[],n=!0,a=!1,o=void 0;try{for(var l,s=e[Symbol.iterator]();!(n=(l=s.next()).done)&&(r.push(l.value),!i||r.length!==i);n=!0);}catch(d){a=!0,o=d;}finally{try{!n&&s.return&&s.return();}finally{if(a)throw o}}return r}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),oe=function t(e,i,r){e===null&&(e=Function.prototype);var n=Object.getOwnPropertyDescriptor(e,i);if(n===void 0){var a=Object.getPrototypeOf(e);return a===null?void 0:t(a,i,r)}if("value"in n)return n.value;var o=n.get;if(o!==void 0)return o.call(r)},Wt=function t(e,i,r,n){var a=Object.getOwnPropertyDescriptor(e,i);if(a===void 0){var o=Object.getPrototypeOf(e);o!==null&&t(o,i,r,n);}else if("value"in a&&a.writable)a.value=r;else {var l=a.set;l!==void 0&&l.call(n,r);}return r},G=(function(){function t(e,i){for(var r=0;r<i.length;r++){var n=i[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n);}}return function(e,i,r){return i&&t(e.prototype,i),r&&t(e,r),e}})(),te=null,At=(function(){function t(){N(this,t),this._events={},this.addListener=this.on,this.removeListener=this.off;}return G(t,[{key:"emit",value:function(e){if(this._events[e]){for(var i=0,r=this._events[e].length,n=arguments.length,a=Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];for(;i<r;i++)this._events[e][i]&&this._events[e][i].apply(this,a);}}},{key:"once",value:function(e){for(var i=arguments.length,r=Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];for(var a=0,o=r.length,l=this;a<o;a++)(function(){var s=r[a],d=function u(){l.off(e,u),s.apply(l,arguments);};r[a]=d;})();this.on.apply(this,[e].concat(r));}},{key:"on",value:function(e){this._events[e]||(this._events[e]=[]);for(var i=0,r=arguments.length<=1?0:arguments.length-1;i<r;i++)this._events[e].push(arguments.length<=i+1?void 0:arguments[i+1]);}},{key:"off",value:function(e){if(this._events[e])for(var i=0,r=arguments.length<=1?0:arguments.length-1;i<r;i++)for(var n=arguments.length<=i+1?void 0:arguments[i+1],a=void 0;~(a=this._events[e].indexOf(n));)this._events[e].splice(a,1);}},{key:"removeAllListeners",value:function(e){delete this._events[e];}},{key:"listeners",get:function(){return this._events}}]),t})(),Re=D("requestAnimationFrame")||function(t){return setTimeout(function(){return t(new Date().getTime())},1e3/60)},q={linear:function(t){return t},quad:function(t){return Math.pow(t,2)},dequad:function(t){return 1-q.quad(1-t)},quint:function(t){return Math.pow(t,5)},dequint:function(t){return 1-Math.pow(1-t,5)},cycle:function(t){return 1-Math.sin(Math.acos(t))},decycle:function(t){return Math.sin(Math.acos(1-t))},bounce:function(t){return 1-q.debounce(1-t)},debounce:function(t){for(var e=0,i=1;;e+=i,i/=2)if(t>=(7-4*e)/11)return -Math.pow((11-6*e-11*t)/4,2)+Math.pow(i,2)},elastic:function(t){return 1-q.delastic(1-t)},delastic:function(t){return Math.pow(2,10*(t-1))*Math.cos(20*Math.PI*1.5/3*t)}},se=(function(){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"linear",i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){};if(N(this,t),this.duration=i,this.rule=e,this.draw=r,this.end=n,typeof this.draw!="function")throw new TypeError("Invalid animation draw callback:",r);if(typeof this.end!="function")throw new TypeError("Invalid animation end callback:",n)}return G(t,[{key:"animate",value:function(e,i){var r=this;this.frame&&this.cancel();var n=window.performance&&window.performance.now?window.performance.now():D("animationStartTime")||Date.now();e=e||this.draw,i=i||this.end,this.draw=e,this.end=i,this.frame=Re(function(a){return ge(a,e,n,q[r.rule]||r.rule,r.duration,i,r)});}},{key:"cancel",value:function(){this.frame&&((D("cancelAnimationFrame")||function(e){})(this.frame),this.frame=null);}},{key:"destroy",value:function(){this.cancel(),this.draw=null,this.end=null;}}]),t})();se.rules=q;var X=(function(){function t(e,i,r){N(this,t),this.options=e,this.element=i.toLowerCase(),this.type=t.toDashed(r),this.Type=S[r],this.mutationsObserved=!1,this.isObservable=!!window.MutationObserver,window.GAUGES_NO_AUTO_INIT||t.domReady(this.traverse.bind(this));}return G(t,[{key:"isValidNode",value:function(e){return !(!e.tagName||e.tagName.toLowerCase()!==this.element||e.getAttribute("data-type")!==this.type)}},{key:"traverse",value:function(){for(var e=document.getElementsByTagName(this.element),i=0,r=e.length;i<r;i++)this.process(e[i]);this.isObservable&&!this.mutationsObserved&&(new MutationObserver(this.observe.bind(this)).observe(document.body,{childList:!0,subtree:!0,attributes:!0,characterData:!0,attributeOldValue:!0,characterDataOldValue:!0}),this.mutationsObserved=!0);}},{key:"observe",value:function(e){for(var i=0,r=e.length;i<r;i++){var n=e[i];if(n.type==="attributes"&&n.attributeName==="data-type"&&this.isValidNode(n.target)&&n.oldValue!==this.type)setTimeout(this.process.bind(this,n.target));else if(n.addedNodes&&n.addedNodes.length)for(var a=0,o=n.addedNodes.length;a<o;a++)setTimeout(this.process.bind(this,n.addedNodes[a]));}}},{key:"process",value:function(e){var i=this;if(!this.isValidNode(e))return null;var r=void 0,n=JSON.parse(JSON.stringify(this.options)),a=null;for(r in n)if(n.hasOwnProperty(r)){var o=t.toAttributeName(r),l=t.parse(e.getAttribute(o));l!=null&&(n[r]=l);}return n.renderTo=e,a=new this.Type(n),a.draw&&a.draw(),this.isObservable&&(a.observer=new MutationObserver(function(s){s.forEach(function(d){if(d.type==="attributes"){var u=d.attributeName.toLowerCase(),c=e.getAttribute(u).toLowerCase();if(u==="data-type"&&c&&c!==i.type)a.observer.disconnect(),delete a.observer,a.destroy&&a.destroy();else if(u.substr(0,5)==="data-"){var f=u.substr(5).split("-").map(function(p,P){return P?p.charAt(0).toUpperCase()+p.substr(1):p}).join(""),m={};m[f]=t.parse(e.getAttribute(d.attributeName)),f==="value"?a&&(a.value=m[f]):a.update&&a.update(m);}}});}),a.observer.observe(e,{attributes:!0})),a}}],[{key:"parse",value:function(e){if(e==="true")return !0;if(e==="false")return !1;if(e!=="undefined"){if(e==="null")return null;if(/^[-+#.\w\d\s]+(?:,[-+#.\w\d\s]*)+$/.test(e))return e.split(",");try{return JSON.parse(e)}catch(i){}return e}}},{key:"toDashed",value:function(e){for(var i=e.split(/(?=[A-Z])/),r=1,n=i.length,a=i[0].toLowerCase();r<n;r++)a+="-"+i[r].toLowerCase();return a}},{key:"toCamelCase",value:function(e){for(var i=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],r=e.split(/-/),n=0,a=r.length,o="";n<a;n++)o+=n||i?r[n][0].toUpperCase()+r[n].substr(1).toLowerCase():r[n].toLowerCase();return o}},{key:"toAttributeName",value:function(e){return "data-"+t.toDashed(e)}},{key:"domReady",value:function(e){if(/comp|inter|loaded/.test((window.document||{}).readyState+""))return e();window.addEventListener?window.addEventListener("DOMContentLoaded",e,!1):window.attachEvent&&window.attachEvent("onload",e);}}]),t})(),I=(function(){function t(e,i,r){N(this,t),t.collection.push(this),this.width=i||0,this.height=r||0,this.element=e,this.init();}return G(t,[{key:"init",value:function(){var e=t.pixelRatio;this.element.width=this.width*e,this.element.height=this.height*e,this.element.style.width=this.width+"px",this.element.style.height=this.height+"px",this.elementClone=this.element.cloneNode(!0),this.context=this.element.getContext("2d"),this.contextClone=this.elementClone.getContext("2d"),this.drawWidth=this.element.width,this.drawHeight=this.element.height,this.drawX=this.drawWidth/2,this.drawY=this.drawHeight/2,this.minSide=this.drawX<this.drawY?this.drawX:this.drawY,this.contextClone.translate(this.drawX,this.drawY),this.elementClone.initialized=!1,this.context.translate(this.drawX,this.drawY),this.context.max=this.contextClone.max=this.minSide,this.context.maxRadius=this.contextClone.maxRadius=null;}},{key:"destroy",value:function(){var e=t.collection.indexOf(this);~e&&t.collection.splice(e,1),this.context.clearRect(-this.drawX,-this.drawY,this.drawWidth,this.drawHeight),this.context.max=null,delete this.context.max,this.context.maxRadius=null,delete this.context.maxRadius,this.context=null,this.contextClone=null,this.elementClone=null,this.element=null,this.onRedraw=null;}},{key:"commit",value:function(){var e=t.pixelRatio;return e!==1&&this.contextClone.scale(e,e),this}},{key:"redraw",value:function(){return this.init(),this.onRedraw&&this.onRedraw(),this}}],[{key:"redraw",value:function(){for(var e=0,i=t.collection.length;e<i;e++)t.collection[e].redraw();}},{key:"pixelRatio",get:function(){return window.devicePixelRatio||1}}]),t})();I.collection=[],window.matchMedia&&window.matchMedia("screen and (min-resolution: 2dppx)").addListener(I.redraw);var le={renderTo:null,width:0,height:0,minValue:0,maxValue:100,value:0,units:!1,exactTicks:!1,majorTicks:[0,20,40,60,80,100],minorTicks:10,strokeTicks:!0,animatedValue:!1,animateOnInit:!1,title:!1,borders:!0,numbersMargin:1,listeners:null,valueInt:3,valueDec:2,majorTicksInt:1,majorTicksDec:0,animation:!0,animationDuration:500,animationRule:"cycle",colorPlate:"#fff",colorPlateEnd:"",colorMajorTicks:"#444",colorMinorTicks:"#666",colorStrokeTicks:"",colorTitle:"#888",colorUnits:"#888",colorNumbers:"#444",colorNeedle:"rgba(240,128,128,1)",colorNeedleEnd:"rgba(255,160,122,.9)",colorValueText:"#444",colorValueTextShadow:"rgba(0,0,0,0.3)",colorBorderShadow:"rgba(0,0,0,0.5)",colorBorderOuter:"#ddd",colorBorderOuterEnd:"#aaa",colorBorderMiddle:"#eee",colorBorderMiddleEnd:"#f0f0f0",colorBorderInner:"#fafafa",colorBorderInnerEnd:"#ccc",colorValueBoxRect:"#888",colorValueBoxRectEnd:"#666",colorValueBoxBackground:"#babab2",colorValueBoxShadow:"rgba(0,0,0,1)",colorNeedleShadowUp:"rgba(2,255,255,0.2)",colorNeedleShadowDown:"rgba(188,143,143,0.45)",colorBarStroke:"#222",colorBar:"#ccc",colorBarProgress:"#888",colorBarShadow:"#000",fontNumbers:"Arial",fontTitle:"Arial",fontUnits:"Arial",fontValue:"Arial",fontNumbersSize:20,fontTitleSize:24,fontUnitsSize:22,fontValueSize:26,fontNumbersStyle:"normal",fontTitleStyle:"normal",fontUnitsStyle:"normal",fontValueStyle:"normal",fontNumbersWeight:"normal",fontTitleWeight:"normal",fontUnitsWeight:"normal",fontValueWeight:"normal",needle:!0,needleShadow:!0,needleType:"arrow",needleStart:5,needleEnd:85,needleWidth:4,borderOuterWidth:3,borderMiddleWidth:3,borderInnerWidth:3,borderShadowWidth:3,valueBox:!0,valueBoxStroke:5,valueBoxWidth:0,valueText:"",valueTextShadow:!0,valueBoxBorderRadius:2.5,highlights:[{from:20,to:60,color:"#eee"},{from:60,to:80,color:"#ccc"},{from:80,to:100,color:"#999"}],highlightsWidth:15,highlightsLineCap:"butt",barWidth:20,barStrokeWidth:0,barProgress:!0,barShadow:0};U.prototype=Object.create(Array.prototype),U.prototype.constructor=U,U.prototype.get=function(t){if(typeof t=="string")for(var e=0,i=this.length;e<i;e++){var r=this[e].options.renderTo.tagName?this[e].options.renderTo:document.getElementById(this[e].options.renderTo||"");if(r.getAttribute("id")===t)return this[e]}else if(typeof t=="number")return this[t];return null};var de="2.2.1",k=Math.round,R=Math.abs,H=new U;H.version=de;var _=(function(t){function e(i){N(this,e);var r=b(this,(e.__proto__||Object.getPrototypeOf(e)).call(this)),n=r.constructor.name;if(n==="BaseGauge")throw new TypeError("Attempt to instantiate abstract class!");if(H.push(r),i.listeners&&Object.keys(i.listeners).forEach(function(o){(i.listeners[o]instanceof Array?i.listeners[o]:[i.listeners[o]]).forEach(function(l){r.on(o,l);});}),r.version=de,r.type=S[n]||e,r.initialized=!1,i.minValue=parseFloat(i.minValue),i.maxValue=parseFloat(i.maxValue),i.value=parseFloat(i.value)||0,i.borders||(i.borderInnerWidth=i.borderMiddleWidth=i.borderOuterWidth=0),!i.renderTo)throw TypeError("Canvas element was not specified when creating the Gauge object!");var a=i.renderTo.tagName?i.renderTo:document.getElementById(i.renderTo);if(!(a instanceof HTMLCanvasElement))throw TypeError("Given gauge canvas element is invalid!");return i.width=parseFloat(i.width)||0,i.height=parseFloat(i.height)||0,i.width&&i.height||(i.width||(i.width=a.parentNode?a.parentNode.offsetWidth:a.offsetWidth),i.height||(i.height=a.parentNode?a.parentNode.offsetHeight:a.offsetHeight)),r.options=i||{},r.options.animateOnInit&&(r._value=r.options.value,r.options.value=r.options.minValue),r.canvas=new I(a,i.width,i.height),r.canvas.onRedraw=r.draw.bind(r),r.animation=new se(i.animationRule,i.animationDuration),r}return T(e,t),G(e,[{key:"update",value:function(i){return Object.assign(this.options,this.type.configure(i||{})),this.canvas.width=this.options.width,this.canvas.height=this.options.height,this.animation.rule=this.options.animationRule,this.animation.duration=this.options.animationDuration,this.canvas.redraw(),this}},{key:"destroy",value:function(){var i=H.indexOf(this);~i&&H.splice(i,1),this.canvas.destroy(),this.canvas=null,this.animation.destroy(),this.animation=null,this.emit("destroy");}},{key:"draw",value:function(){return this.options.animateOnInit&&!this.initialized&&(this.value=this._value,this.initialized=!0,this.emit("init")),this.emit("render"),this}},{key:"value",set:function(i){var r=this;i=e.ensureValue(i,this.options.minValue);var n=this.options.value;if(i!==n)if(this.options.animation){if(this.animation.frame&&(this.options.value=this._value,this._value===i))return this.animation.cancel(),void delete this._value;this._value===void 0&&(this._value=i),this.emit("animationStart"),this.animation.animate(function(a){var o=n+(i-n)*a;r.options.animatedValue&&r.emit("value",o,r.value),r.options.value=o,r.draw(),r.emit("animate",a,r.options.value);},function(){r._value!==void 0&&(r.emit("value",r._value,r.value),r.options.value=r._value,delete r._value),r.draw(),r.emit("animationEnd"),r.animation.frame=null;});}else this.emit("value",i,this.value),this.options.value=i,this.draw();},get:function(){return this._value===void 0?this.options.value:this._value}}],[{key:"configure",value:function(i){return i}},{key:"initialize",value:function(i,r){return new X(r,"canvas",i)}},{key:"fromElement",value:function(i){var r=X.toCamelCase(i.getAttribute("data-type")),n=i.attributes,a=0,o=n.length,l={};if(r){for(/Gauge$/.test(r)||(r+="Gauge");a<o;a++)l[X.toCamelCase(n[a].name.replace(/^data-/,""),!1)]=X.parse(n[a].value);new X(l,i.tagName,r).process(i);}}},{key:"ensureValue",value:function(i){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return i=parseFloat(i),!isNaN(i)&&isFinite(i)||(i=parseFloat(r)||0),i}},{key:"mod",value:function(i,r){return (i%r+r)%r}},{key:"version",get:function(){return de}}]),e})(At);S!==void 0&&(S.BaseGauge=_,S.gauges=(window.document||{}).gauges=H);var Pt=/{([_a-zA-Z]+[_a-zA-Z0-9]*)}/g,h={roundRect:ve,padValue:ae,formatMajorTickNumber:tt,radians:it,radialPoint:rt,linearGradient:nt,drawNeedleShadow:at,drawValueBox:ot,verifyError:$e,prepareTicks:et,font:be,normalizedValue:st,formatContext:Ke},Z=Math.PI,ue=Z/2,_e=Object.assign({},le,{ticksAngle:270,startAngle:45,colorNeedleCircleOuter:"#f0f0f0",colorNeedleCircleOuterEnd:"#ccc",colorNeedleCircleInner:"#e8e8e8",colorNeedleCircleInnerEnd:"#f5f5f5",needleCircleSize:10,needleCircleInner:!0,needleCircleOuter:!0,needleStart:20,animationTarget:"needle",useMinPath:!1,barWidth:0,barStartPosition:"left"}),Mt=(function(t){function e(i){return N(this,e),i=Object.assign({},_e,i||{}),b(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,e.configure(i)))}return T(e,t),G(e,[{key:"draw",value:function(){try{var i=this.canvas,r=[-i.drawX,-i.drawY,i.drawWidth,i.drawHeight],n=r[0],a=r[1],o=r[2],l=r[3],s=this.options;if(s.animationTarget==="needle"){if(!i.elementClone.initialized){var d=i.contextClone;d.clearRect(n,a,o,l),this.emit("beforePlate"),ke(d,s),this.emit("beforeHighlights"),ye(d,s),this.emit("beforeMinorTicks"),xe(d,s),this.emit("beforeMajorTicks"),Te(d,s),this.emit("beforeNumbers"),Ve(d,s),this.emit("beforeTitle"),Oe(d,s),this.emit("beforeUnits"),We(d,s),i.elementClone.initialized=!0;}this.canvas.commit(),i.context.clearRect(n,a,o,l),i.context.drawImage(i.elementClone,n,a,o,l),this.emit("beforeProgressBar"),Me(i.context,s),this.emit("beforeValueBox"),Pe(i.context,s,Ce(this)),this.emit("beforeNeedle"),Ae(i.context,s);}else {var u=-h.radians((s.value-s.minValue)/(s.maxValue-s.minValue)*s.ticksAngle);if(i.context.clearRect(n,a,o,l),this.emit("beforePlate"),ke(i.context,s),i.context.rotate(u),this.emit("beforeHighlights"),ye(i.context,s),this.emit("beforeMinorTicks"),xe(i.context,s),this.emit("beforeMajorTicks"),Te(i.context,s),this.emit("beforeNumbers"),Ve(i.context,s),this.emit("beforeProgressBar"),Me(i.context,s),i.context.rotate(-u),!i.elementClone.initialized){var c=i.contextClone;c.clearRect(n,a,o,l),this.emit("beforeTitle"),Oe(c,s),this.emit("beforeUnits"),We(c,s),this.emit("beforeNeedle"),Ae(c,s),i.elementClone.initialized=!0;}i.context.drawImage(i.elementClone,n,a,o,l);}this.emit("beforeValueBox"),Pe(i.context,s,Ce(this)),oe(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"draw",this).call(this);}catch(f){h.verifyError(f);}return this}},{key:"value",set:function(i){i=_.ensureValue(i,this.options.minValue),this.options.animation&&this.options.ticksAngle===360&&this.options.useMinPath&&(this._value=i,i=this.options.value+((i-this.options.value)%360+540)%360-180),Wt(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"value",i,this);},get:function(){return oe(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"value",this)}}],[{key:"configure",value:function(i){return i.barWidth>50&&(i.barWidth=50),isNaN(i.startAngle)&&(i.startAngle=45),isNaN(i.ticksAngle)&&(i.ticksAngle=270),i.ticksAngle>360&&(i.ticksAngle=360),i.ticksAngle<0&&(i.ticksAngle=0),i.startAngle<0&&(i.startAngle=0),i.startAngle>360&&(i.startAngle=360),i}}]),e})(_);S!==void 0&&(S.RadialGauge=Mt),_.initialize("RadialGauge",_e);var De=Object.assign({},le,{borderRadius:0,barBeginCircle:30,colorBarEnd:"",colorBarProgressEnd:"",needleWidth:6,tickSide:"both",needleSide:"both",numberSide:"both",ticksWidth:10,ticksWidthMinor:5,ticksPadding:5,barLength:85,fontTitleSize:26,highlightsWidth:10}),Ct=(function(t){function e(i){return N(this,e),i=Object.assign({},De,i||{}),b(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,e.configure(i)))}return T(e,t),G(e,[{key:"draw",value:function(){try{var i=this.canvas,r=[-i.drawX,-i.drawY,i.drawWidth,i.drawHeight],n=r[0],a=r[1],o=r[2],l=r[3],s=this.options;if(!i.elementClone.initialized){var d=i.contextClone;d.clearRect(n,a,o,l),this.emit("beforePlate"),this.drawBox=ft(d,s,n,a,o,l),this.emit("beforeBar"),gt.apply(void 0,[d,s].concat(Y(this.drawBox))),i.contextClone.barDimensions=d.barDimensions,this.emit("beforeHighlights"),bt(d,s),this.emit("beforeMinorTicks"),wt(d,s),this.emit("beforeMajorTicks"),pt(d,s),this.emit("beforeNumbers"),kt(d,s),this.emit("beforeTitle"),yt(d,s),this.emit("beforeUnits"),xt(d,s),i.elementClone.initialized=!0;}this.canvas.commit(),i.context.clearRect(n,a,o,l),i.context.drawImage(i.elementClone,n,a,o,l),this.emit("beforeProgressBar"),vt.apply(void 0,[i.context,s].concat(Y(this.drawBox))),this.emit("beforeNeedle"),Tt(i.context,s),this.emit("beforeValueBox"),Ot.apply(void 0,[i.context,s,s.animatedValue?this.options.value:this.value].concat(Y(this.drawBox))),oe(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"draw",this).call(this);}catch(u){h.verifyError(u);}return this}}],[{key:"configure",value:function(i){return i.barStrokeWidth>=i.barWidth&&(i.barStrokeWidth=k(i.barWidth/2)),i.hasLeft=Ne("right",i),i.hasRight=Ne("left",i),i.value>i.maxValue&&(i.value=i.maxValue),i.value<i.minValue&&(i.value=i.minValue),_.configure(i)}}]),e})(_);S!==void 0&&(S.LinearGauge=Ct),_.initialize("LinearGauge",De),typeof ne<"u"&&Object.assign(S,{Collection:U,GenericOptions:le,Animation:se,BaseGauge:_,drawings:h,SmartCanvas:I,DomObserver:X,vendorize:D});})(typeof ne<"u"?ne.exports:window);});var L=vb(me(),1);vb(me(),1);var Nt=["gauge"],jt=S=>S.replace(/(\-\w)/g,Y=>Y[1].toUpperCase()),Et=S=>S.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ze=S=>jt(S),Je=(()=>{class S{el;zone;canvas;gauge;isInited=false;preInitValue;preInitOptions;domListener;constructor(b,T){this.el=b,this.zone=T;}get options(){let b={};b.renderTo=this.canvas.nativeElement;for(let T of this.el.nativeElement.attributes){let N=Ze(T.name);b[N]=L.DomObserver.parse(T.value);}for(let T in this.preInitOptions)b[T]=this.preInitOptions[T];return this.isInited&&(this.preInitOptions=null),b}set options(b){if(!this.isInited){this.preInitOptions=b;return}this.update(b);}set value(b){if(!this.isInited){this.preInitValue=b;return}this.zone.runOutsideAngular(()=>{this.gauge.value=b;});}update(b){if(b)for(let T in b){let N=b[T].toString();if(T==="value")this.value=L.DomObserver.parse(N);else {let D=Et(T);this.el.nativeElement.setAttribute(D,N);}}}ngOnDestroy(){this.destroy(),this.cleanup();}cleanup(){}destroy(){this.stopListeningForDOMEvents(),this.gauge.destroy();}ngAfterViewInit(){this.initGauge(),this.listenForDOMEvents(),this.isInited=true,this.preInitValue&&(this.value=this.preInitValue);}listenForDOMEvents(){this.domListener=new MutationObserver(b=>{let T={};b.forEach(N=>{N.type==="attributes"&&(T[Ze(N.attributeName)]=L.DomObserver.parse(this.el.nativeElement.getAttribute(N.attributeName)));}),this.basicUpdate(T);}),this.domListener.observe(this.el.nativeElement,{attributes:true});}stopListeningForDOMEvents(){this.domListener&&(this.domListener.disconnect(),this.domListener=null);}initGauge(){let b=this.options;(!b.hasOwnProperty("renderTo")||!b.renderTo)&&(b.renderTo=this.canvas.nativeElement),this.basicUpdate(b);}basicUpdate(b){typeof b.value=="number"&&(this.value=b.value,delete b.value),Object.keys(b).length&&this.gauge.update(b);}static \u0275fac=function(T){return new(T||S)(Ur(Lr),Ur(ue))};static \u0275dir=nw({type:S,viewQuery:function(T,N){if(T&1&&Jh(Nt,7),T&2){let D;Zw(D=Yw())&&(N.canvas=D.first);}},inputs:{options:"options",value:"value"}})}return S})();var Dt=(()=>{class S extends Je{constructor(b,T){super(b,T);}ngOnInit(){this.gauge=new L.LinearGauge(this.options).draw();}static \u0275fac=function(T){return new(T||S)(Ur(Lr),Ur(ue))};static \u0275cmp=JD({type:S,selectors:[["linear-gauge"]],features:[Sh],decls:2,vars:0,consts:[["gauge",""]],template:function(T,N){T&1&&$h(0,"canvas",null,0);},encapsulation:2})}return S})();var Lt=(()=>{class S extends Je{constructor(b,T){super(b,T);}ngOnInit(){this.gauge=new L.RadialGauge(this.options).draw();}static \u0275fac=function(T){return new(T||S)(Ur(Lr),Ur(ue))};static \u0275cmp=JD({type:S,selectors:[["radial-gauge"]],features:[Sh],decls:2,vars:0,consts:[["gauge",""]],template:function(T,N){T&1&&$h(0,"canvas",null,0);},encapsulation:2})}return S})(),Gt=(()=>{class S{static \u0275fac=function(T){return new(T||S)};static \u0275mod=bh({type:S});static \u0275inj=Qs({})}return S})();export{Dt as D,Gt as G,Lt as L};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {G as Gt,L as Lt}from'./chunk-
|
|
1
|
+
import {G as Gt,L as Lt}from'./chunk-B6AwCAvV.js';import {u}from'./chunk-BgyxBAyq.js';import {c}from'./chunk-D_wrJJxl.js';import {d1 as Hj,w,du as p,dv as rt,v as vt,D as Dt,$ as $j,a6 as Lr,dx as n$1,F as Fa,dn as ge,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-BNR44HGB.js';var O=["compassGauge"];function L(n,p){if(n&1){let a=Fw();Pi(0,"radial-gauge",2,0),Qh("resizeChange",function(e){ud(a);let o=qw();return dd(o.onResized(e))}),ul();}if(n&2){let a=qw();Bh("options",a.gaugeOptions)("value",a.displayValue()),Hh("value-text",a.textValue())("color-stroke-ticks",a.colorStrokeTicks);}}function z(n){let p=n.match(/(\d+(\.\d+)?|\.\d+)/g);if(!p||p.length<3)throw new Error("Invalid RGBA format");let[a,t,e,o=1]=p.map(Number),s=o===1?"":Math.round(o*255).toString(16).padStart(2,"0").toUpperCase();return "#"+((1<<24)+(a<<16)+(t<<8)+e).toString(16).slice(1).toUpperCase()+s}function U(n){return n<0&&(n=360+n),n}var $=(()=>{class n{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);streams=w(rt);static DEFAULT_CONFIG={displayName:"Gauge Label",filterSelfPaths:true,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",suppressBootstrapNull:true,isPathConfigurable:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",showConvertUnitTo:false,convertUnitTo:"deg",sampleTime:500}},supportAutomaticHistoricalSeries:true,gauge:{type:"ngRadial",subType:"baseplateCompass",enableTicks:true,compassUseNumbers:false,showValueBox:false},enableTimeout:false,color:"contrast",dataTimeout:5};LINE="line";NEEDLE_START=40;NEEDLE_END=100;NEEDLE_CIRCLE_SIZE=15;BORDER_MIDDLE_WIDTH=2;BORDER_INNER_WIDTH=2;ANIMATION_TARGET_PLATE="plate";ANIMATION_TARGET_NEEDLE="needle";textValue=vt("--");value=vt(void 0);displayValue=Dt(()=>this.value()??0);shouldRenderGauge=Dt(()=>this.value()!==void 0);gaugeBootstrapped=vt(false);animationEnabled=Dt(()=>this.gaugeBootstrapped());ngGauge=$j("compassGauge");gauge=$j("compassGauge",{read:Lr});viewReady=vt(false);gaugeOptions={};colorStrokeTicks="";currentState=vt(n$1.Normal);lastAppliedState=null;negToPortPaths=["self.environment.wind.angleApparent","self.environment.wind.angleTrueGround","self.environment.wind.angleTrueWater","self.environment.wind.angleTrueWaterDamped","self.performance.beatAngle","self.performance.gybeAngle","self.performance.targetAngle","self.performance.optimumWindAngle"];displayName=Dt(()=>this.runtime.options()?.displayName);constructor(){Fa(()=>{let a=this.runtime.options(),t=this.theme();if(!a||!t)return;let e=a.paths?.gaugePath;e?.path&&ge(()=>this.streams.observe("gaugePath",o=>{let s=o?.data?.value??null;if(s==null)this.value.set(0),this.textValue.set("--");else {let r=e.path;r&&this.negToPortPaths.includes(r)&&(s=U(s));let T=Math.min(Math.max(s,0),360);this.value.set(T),this.textValue.set(T.toFixed(0));}let i=o?.state??n$1.Normal;i!==this.currentState()&&this.currentState.set(i);}));}),Fa(()=>{let a=this.runtime.options(),t=this.theme();!a||!t||ge(()=>{if(this.buildGaugeOptions(a,t),this.viewReady())try{this.ngGauge()?.update(this.gaugeOptions);}catch(e){}});}),Fa(()=>{let a=this.ngGauge();!a||this.gaugeBootstrapped()||ge(()=>{try{requestAnimationFrame(()=>{this.gaugeBootstrapped.set(!0);try{a.update({animation:!0,animatedValue:!0});}catch(t){}});}catch(t){}});}),Fa(()=>{let a=this.runtime.options(),t=this.theme(),e=this.currentState();!a||!t||this.viewReady()&&e!==this.lastAppliedState&&ge(()=>{let o={};switch(e){case n$1.Emergency:o.colorValueText=t.zoneEmergency;break;case n$1.Alarm:o.colorValueText=t.zoneAlarm;break;case n$1.Warn:o.colorValueText=t.zoneWarn;break;case n$1.Alert:o.colorValueText=t.zoneAlert;break;default:o.colorValueText=t.contrast;break}try{this.ngGauge()?.update(o);}catch(s){}this.lastAppliedState=e;});});}buildGaugeOptions(a,t){let e=this.gaugeOptions={},o=a.paths?.gaugePath;e.title=this.displayName(),e.minValue=0,e.maxValue=360,e.units=o?.convertUnitTo||"",e.valueDec=a.numDecimal??0,e.valueInt=a.numInt??1,e.barProgress=false,e.barWidth=0,e.valueBox=!!a.gauge?.showValueBox,e.fontValueSize=60,e.valueBoxWidth=30,e.valueBoxBorderRadius=10,e.valueBoxStroke=0,e.ticksAngle=360,e.startAngle=180,e.exactTicks=false,e.strokeTicks="",e.majorTicks=a.gauge?.compassUseNumbers?["N","30","60","E","120","150","S","210","240","W","300","330","N"]:["N","NE","E","SE","S","SW","W","NW","N"],e.majorTicksDec=0,e.majorTicksInt=1,e.numbersMargin=5,e.fontNumbersSize=25,e.minorTicks=a.gauge?.compassUseNumbers?3:2,e.needle=true,e.needleType=this.LINE,e.needleStart=this.NEEDLE_START,e.needleEnd=this.NEEDLE_END,e.needleCircleSize=this.NEEDLE_CIRCLE_SIZE,e.needleWidth=4,e.needleShadow=false,e.needleCircleInner=false,e.needleCircleOuter=false,e.borders=true,e.borderOuterWidth=0,e.borderMiddleWidth=this.BORDER_MIDDLE_WIDTH,e.borderInnerWidth=this.BORDER_INNER_WIDTH,e.borderShadowWidth=0,e.highlights=[],e.highlightsWidth=0,e.fontTitle="Roboto",e.fontTitleWeight="normal",e.fontTitleSize=25,e.fontUnits="Roboto",e.fontUnitsSize=25,e.fontUnitsWeight="normal",e.barStrokeWidth=0,e.barShadow=0,e.fontValue="Roboto",e.fontValueWeight="bold",e.valueTextShadow=false,e.colorValueBoxShadow="",e.fontNumbers="Roboto",e.fontNumbersWeight="bold",a.gauge?.subType==="marineCompass"?(e.animationTarget=this.ANIMATION_TARGET_PLATE,e.useMinPath=true):(e.animationTarget=this.ANIMATION_TARGET_NEEDLE,e.useMinPath=true),e.animateOnInit=false,e.animation=this.animationEnabled(),e.animatedValue=this.animationEnabled(),e.animationRule="linear",e.animationDuration=(o?.sampleTime??500)-50;let s=c(a.color??"contrast",t),i=z(s.dim),r=z(c("contrast",t).dim);e.colorBarProgress=s.color,e.colorBorderMiddle=i,e.colorBorderMiddleEnd=i,e.colorNeedle=s.color,e.colorNeedleEnd=s.color,e.colorTitle=r,e.colorUnits=r,e.colorValueText=s.color,e.colorMinorTicks=r,e.colorNumbers=a.gauge?.compassUseNumbers?[t.port,r,r,i,r,r,i,r,r,i,r,r,t.port]:[t.port,i,i,i,i,i,i,i,t.port],e.colorMajorTicks=a.gauge?.compassUseNumbers?[t.port,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.port]:[t.port,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.contrast,t.port],e.colorPlate=e.colorPlateEnd=e.colorBorderInner=e.colorBorderInnerEnd=t.cardColor,e.colorBar=t.background,e.colorBarStroke="",e.colorValueBoxBackground=t.background,e.colorNeedleShadowUp="",e.colorNeedleShadowDown="",e.colorNeedleCircleInner=e.colorPlate,e.colorNeedleCircleInnerEnd=e.colorPlate,e.colorNeedleCircleOuter=e.colorPlate,e.colorNeedleCircleOuterEnd=e.colorPlate;}setCanvasSize(){let a=this.gauge()?.nativeElement;if(!a)return;let t=a.getBoundingClientRect(),e={height:t.height,width:t.width};try{this.ngGauge()?.update(e);}catch(o){}}ngAfterViewInit(){this.viewReady.set(true),this.setCanvasSize();try{this.ngGauge()?.update(this.gaugeOptions);}catch(a){}}onResized(a){let t={height:a.contentRect.height,width:a.contentRect.width};try{this.ngGauge()?.update(t);}catch(e){}}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=JD({type:n,selectors:[["widget-gauge-ng-compass"]],viewQuery:function(t,e){t&1&&eg(e.ngGauge,O,5)(e.gauge,O,5,Lr),t&2&&Kw(2);},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:1,vars:1,consts:[["compassGauge",""],["kipResizeObserver","",3,"options","value"],["kipResizeObserver","",3,"resizeChange","options","value"]],template:function(t,e){t&1&&_w(0,L,2,4,"radial-gauge",1),t&2&&Mw(e.shouldRenderGauge()?0:-1);},dependencies:[u,Gt,Lt],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%} radial-gauge{display:block;position:relative;width:100%;min-width:8px;height:100%;overflow:clip} radial-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px}"]})}return n})();export{$ as WidgetGaugeNgCompassComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {d1 as Hj,w,du as p,dv as rt,D as Dt,$ as $j,ao as ue,F as Fa,dn as ge,J as JD,ci as dl,T as TT,cj as fl,d as ig,e as EE,b_ as Gh,f as eg,K as Kw}from'./main-
|
|
1
|
+
import {d1 as Hj,w,du as p,dv as rt,D as Dt,$ as $j,ao as ue,F as Fa,dn as ge,J as JD,ci as dl,T as TT,cj as fl,d as ig,e as EE,b_ as Gh,f as eg,K as Kw}from'./main-BNR44HGB.js';var T=["hWrapper"];function P(i){return {Red:i.ColorDef.RED,Green:i.ColorDef.GREEN,Blue:i.ColorDef.BLUE,Orange:i.ColorDef.ORANGE,Yellow:i.ColorDef.YELLOW,Cyan:i.ColorDef.CYAN,Magenta:i.ColorDef.MAGENTA,White:i.ColorDef.WHITE,Gray:i.ColorDef.GRAY,Black:i.ColorDef.BLACK,Raith:i.ColorDef.RAITH,"Green LCD":i.ColorDef.GREEN_LCD,"JUG Green":i.ColorDef.JUG_GREEN}}function A(i){return {blackMetal:i.FrameDesign.BLACK_METAL,metal:i.FrameDesign.METAL,shinyMetal:i.FrameDesign.SHINY_METAL,brass:i.FrameDesign.BRASS,steel:i.FrameDesign.STEEL,chrome:i.FrameDesign.CHROME,gold:i.FrameDesign.GOLD,anthracite:i.FrameDesign.ANTHRACITE,tiltedGray:i.FrameDesign.TILTED_GRAY,tiltedBlack:i.FrameDesign.TILTED_BLACK,glossyMetal:i.FrameDesign.GLOSSY_METAL}}var I=(()=>{class i{id=Hj.required();type=Hj.required();theme=Hj.required();runtime=w(p);streams=w(rt);normalizedConfig=Dt(()=>this.runtime.options()??i.DEFAULT_CONFIG);horizonPaths=Dt(()=>this.normalizedConfig().paths??{});static DEFAULT_CONFIG={supportAutomaticHistoricalSeries:true,displayName:"Horizon",filterSelfPaths:true,paths:{gaugePitchPath:{description:"Attitude Pitch Data",path:"self.navigation.attitude.pitch",source:"default",pathType:"number",pathRequired:false,isPathConfigurable:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",sampleTime:1e3},gaugeRollPath:{description:"Attitude Roll Data",path:"self.navigation.attitude.roll",source:"default",pathType:"number",pathRequired:false,isPathConfigurable:true,showPathSkUnitsFilter:false,pathSkUnitsFilter:"rad",convertUnitTo:"deg",sampleTime:1e3}},gauge:{type:"horizon",noFrameVisible:false,faceColor:"anthracite",invertPitch:false,invertRoll:false},enableTimeout:false,dataTimeout:5};wrapperRef=$j("hWrapper");resizeObserver=null;currentSize=0;structuralKey="";pendingSize=null;sizeCommitTimer=null;SIZE_STABLE_MS=180;ngZone=w(ue);gaugeOptions={};frameVisibleView=Dt(()=>!(this.runtime.options()?.gauge?.noFrameVisible??false));gauge=null;latestPitch=0;latestRoll=0;constructor(){Fa(()=>{let t=this.normalizedConfig();this.horizonPaths().gaugePitchPath?.path&&ge(()=>this.streams.observe("gaugePitchPath",n=>{let a=n?.data?.value??0;if(this.latestPitch=a,this.gauge){let r=t.gauge?.invertPitch?-a:a;try{this.gauge.setPitchAnimated(r);}catch(s){}}}));}),Fa(()=>{let t=this.normalizedConfig();this.horizonPaths().gaugeRollPath?.path&&ge(()=>this.streams.observe("gaugeRollPath",n=>{let a=n?.data?.value??0;if(this.latestRoll=a,this.gauge){let r=t.gauge?.invertRoll?-a:a;try{this.gauge.setRollAnimated(r);}catch(s){}}}));}),Fa(()=>{let t=this.runtime.options();if(!t)return;let e=`${t.gauge?.noFrameVisible??false}|${t.gauge?.faceColor??"anthracite"}`;if(e===this.structuralKey){this.applyInversions(t);return}this.structuralKey=e,this.currentSize>=50&&(this.buildOptions(t,this.currentSize),this.rebuildGauge());});}ngAfterViewInit(){let t=this.wrapperRef()?.nativeElement;if(!t)return;let e=()=>{if(this.pendingSize==null||this.pendingSize===this.currentSize||this.pendingSize<50)return;let r=this.pendingSize,s=this.runtime.options();if(!s)return;this.currentSize=r;let o=document.getElementById(this.id()+"-canvas");o&&((o.width!==r||o.height!==r)&&(o.width=r,o.height=r),o.style.width=r+"px",o.style.height=r+"px"),this.buildOptions(s,r),this.rebuildGauge(),this.pendingSize=null;},n=()=>{this.sizeCommitTimer&&clearTimeout(this.sizeCommitTimer),this.sizeCommitTimer=window.setTimeout(()=>{e(),this.sizeCommitTimer=null;},this.SIZE_STABLE_MS);},a=()=>{let r=t.getBoundingClientRect(),s=Math.round(Math.min(r.width,r.height)),o=this.pendingSize??this.currentSize;if(!s||s<50||o&&Math.abs(o-s)<4)return;if(this.currentSize===0&&this.pendingSize===null){this.pendingSize=s,e();return}this.pendingSize=s;let u=document.getElementById(this.id()+"-canvas");u&&(u.style.width=s+"px",u.style.height=s+"px"),n();};this.ngZone.runOutsideAngular(()=>{this.resizeObserver=new ResizeObserver(()=>a()),this.resizeObserver.observe(t),a();});}buildOptions(t,e){if(typeof steelseries>"u")return;let n=A(steelseries),a=P(steelseries),r=t.gauge?.faceColor??"anthracite";this.gaugeOptions={pointerColor:a.Red,frameVisible:!(t.gauge?.noFrameVisible??false),frameDesign:n[r],foregroundVisible:false,size:e};}rebuildGauge(){let t=this.id()+"-canvas";if(this.gauge)try{this.gauge=null;}catch(n){}let e=document.getElementById(t);if(e){this.currentSize&&(e.width!==this.currentSize||e.height!==this.currentSize)&&(e.width=this.currentSize,e.height=this.currentSize);let n=e.getContext("2d");n&&n.clearRect(0,0,e.width,e.height);}try{this.gauge=new steelseries.Horizon(t,this.gaugeOptions);let n=this.runtime.options();n&&this.gauge&&this.applyInversions(n);}catch(n){}}applyInversions(t){if(this.gauge){try{this.gauge.setPitchAnimated(t.gauge?.invertPitch?-this.latestPitch:this.latestPitch);}catch(e){}try{this.gauge.setRollAnimated(t.gauge?.invertRoll?-this.latestRoll:this.latestRoll);}catch(e){}}}ngOnDestroy(){if(this.resizeObserver){try{this.resizeObserver.disconnect();}catch(e){}this.resizeObserver=null;}this.sizeCommitTimer&&(clearTimeout(this.sizeCommitTimer),this.sizeCommitTimer=null);let t=document.getElementById(this.id()+"-canvas");if(t)try{let e=t.getContext("2d");e&&e.clearRect(0,0,t.width,t.height),t.width=0,t.height=0;}catch(e){}this.gauge=null;}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=JD({type:i,selectors:[["widget-horizon"]],viewQuery:function(e,n){e&1&&eg(n.wrapperRef,T,5),e&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"]},decls:4,vars:3,consts:[["hWrapper",""],[1,"canvas-wrap"],[2,"z-index","inherit",3,"id"]],template:function(e,n){e&1&&(dl(0,"div",1,0)(2,"canvas",2),TT(3," Browser does not support canvas element. "),fl()()),e&2&&(ig("padding",n.frameVisibleView()?"10px":"0px"),EE(2),Gh("id",n.id()+"-canvas"));},styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.canvas-wrap[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0}.canvas-wrap[_ngcontent-%COMP%] > canvas[_ngcontent-%COMP%]{display:block;position:static;transform:none}"]})}return i})();export{I as WidgetHorizonComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {C,e}from'./chunk-B6bEhzNR.js';import {g as ge$2}from'./chunk-TakPRI3t.js';import {e9 as a,d1 as Hj,w,du as p,aS as De,bu as ut,aY as xe,$ as $j,v as vt,D as Dt,F as Fa,dn as ge$1,a_ as Gp,cv as G,cw as z,dx as n$1,J as JD,dC as x,c as $h,cn as wd,_ as _w,B as Bh,e as EE,M as Mw,f as eg,K as Kw,P as Pi,T as TT,u as ul}from'./main-BAV5VDOD.js';import {c}from'./chunk-Dxlia2NE.js';var ge=["chargerSvg"];function me(c,e){c&1&&(Pi(0,"div",3)(1,"div",4),TT(2,"No chargers detected"),ul(),Pi(3,"div",5),TT(4,"Check Signal K charger paths or select chargers in widget settings."),ul()());}function fe(c){return c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var le=class c$1{static CHARGER_DESCRIPTOR=a("widget-charger");static SELF_ROOT_PATH=(()=>{let e=c$1.CHARGER_DESCRIPTOR?.selfRootPath;if(!e)throw new Error("[WidgetChargerComponent] Descriptor missing or selfRootPath not set; check widget registration.");return e})();static ROOT_PATTERN=`${c$1.SELF_ROOT_PATH}.*`;static PATH_REGEX=new RegExp(`^${fe(c$1.SELF_ROOT_PATH)}\\.([^.]+)\\.(.+)$`);static VIEWBOX_WIDTH=200;static CARD_HEIGHT=100;static COMPACT_CARD_HEIGHT=100;static CARD_GAP=8;static PATH_BATCH_WINDOW_MS=500;static CHARGER_DISPLAY_BASE_WIDTH=145;static CHARGER_DISPLAY_BASE_HEIGHT=37;static CHARGER_DISPLAY_HORIZONTAL_MARGIN=40;static DEFAULT_CONFIG={color:"contrast",ignoreZones:false,charger:{trackedDevices:[],optionsById:{}}};id=Hj.required();type=Hj.required();theme=Hj.required();renderMode=Hj(null);runtime=w(p);data=w(De);units=w(ut);destroyRef=w(xe);svgRef=$j.required("chargerSvg");svg;layer;pendingPathUpdates=new Map;pathBatchTimerId=null;initialPathPaintDone=false;renderFrameId=null;pendingRenderSnapshot=null;discoveredChargerIds=vt([]);trackedDevices=vt([]);chargersByKey=vt({});visibleChargerKeys=Dt(()=>{let e=this.trackedDevices();if(e.length)return e.map(s=>s.key);let r=this.chargersByKey(),t=new Set(this.discoveredChargerIds()),i=Object.keys(r).filter(s=>{let o=r[s];return !!o&&t.has(o.id)}).sort((s,o)=>s.localeCompare(o)),a=new Map;return i.forEach(s=>{let o=r[s];o&&s!==o.id&&a.set(o.id,true);}),i.filter(s=>{let o=r[s];return o?s!==o.id?true:!a.get(o.id):false})});visibleChargers=Dt(()=>{let e=this.visibleChargerKeys(),r=this.chargersByKey();return e.map(t=>r[t]).filter(t=>!!t)});hasChargers=Dt(()=>this.visibleChargers().length>0);isCompactCardMode=Dt(()=>this.renderMode()==="compact");colorRole=Dt(()=>this.runtime.options()?.color??"contrast");ignoreZones=Dt(()=>this.runtime.options()?.ignoreZones??false);displayLabel=Dt(()=>{let e=this.visibleChargers();return e.length!==1?"Chargers":this.resolveTitleText(e[0])});labelColor=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e).dim:"var(--kip-contrast-dim-color)"});widgetColors=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e):null});displayModels=Dt(()=>{let e=this.visibleChargers(),r=new Map;e.forEach(a=>r.set(a.id,(r.get(a.id)??0)+1));let t=new Set([...r.entries()].filter(([,a])=>a>1).map(([a])=>a)),i={};for(let a of e){let s=a.deviceKey??a.id,o=!!a.source&&t.has(a.id),[n,m,p,h]=this.buildMetricRows(a);i[s]={id:a.id,source:a.source??null,deviceKey:a.deviceKey,titleText:this.resolveTitleText(a,o),modeText:this.isCompactCardMode()?"":this.resolveModeText(a),voltageText:n,currentText:m,powerText:p,temperatureText:h};}return i});constructor(){Fa(()=>{let t=this.runtime.options();t&&ge$1(()=>this.applyConfig(t));}),Fa(()=>{let t=this.displayModels(),i=this.visibleChargers(),a=this.widgetColors();!this.svg||!a||this.requestRender({chargers:i,displayModels:t,widgetColors:a});});let e=[this.data.subscribePathTreeWithInitial(c$1.ROOT_PATTERN)],r=false;for(let t of e)if(t.initial.length){r=true;for(let i of t.initial)this.enqueuePathUpdate(i,true);}r&&(this.flushPendingPathUpdates(),this.initialPathPaintDone=true);for(let t of e)t.live$.pipe(Gp(this.destroyRef)).subscribe(i=>{this.enqueuePathUpdate(i);});}ngAfterViewInit(){this.initializeSvg(),this.requestRender();}ngOnDestroy(){this.pathBatchTimerId!==null&&(clearTimeout(this.pathBatchTimerId),this.pathBatchTimerId=null),this.renderFrameId!==null&&(cancelAnimationFrame(this.renderFrameId),this.renderFrameId=null),this.pendingRenderSnapshot=null;}initializeSvg(){this.svg=ge$2(this.svgRef().nativeElement),this.svg.attr("viewBox",`0 0 ${c$1.VIEWBOX_WIDTH} ${c$1.CARD_HEIGHT}`).attr("preserveAspectRatio","xMidYMid meet").attr("role","img").attr("aria-label","Charger View"),this.layer=this.svg.append("g").attr("class","charger-layer");}applyConfig(e){let r=this.normalizeTrackedDevices(e.charger?.trackedDevices);this.trackedDevices.set(r),this.reprojectSnapshotsToDeviceKeys(r);}normalizeTrackedDevices(e){if(!Array.isArray(e))return [];let r=new Map;return e.forEach(t=>{if(!t||typeof t!="object")return;let i=t,a=this.normalizeOptionalString(i.id),s=this.normalizeOptionalString(i.source);if(!a||!s)return;let o=this.normalizeOptionalString(i.key)??`${a}||${s}`;r.set(o,{id:a,source:s,key:o});}),[...r.values()].sort((t,i)=>t.key.localeCompare(i.key))}buildIdToDeviceKeysMap(){let e=new Map;return this.trackedDevices().forEach(r=>{let t=e.get(r.id)??[];t.push(r.key),e.set(r.id,t);}),e}reprojectSnapshotsToDeviceKeys(e){if(!e.length)return;let r=new Map,t=new Map;e.forEach(i=>{let a=r.get(i.id)??[];a.push(i.key),r.set(i.id,a),t.set(i.key,i);}),this.chargersByKey.update(i=>{let a=i,s=false;return r.forEach((o,n)=>{let m=i[n];if(m){for(let p of o){if(i[p])continue;let h=t.get(p);s||(a=G({},i),s=true),a[p]=z(G({},m),{source:h?.source??null,deviceKey:p});}a[n]&&(a[n].deviceKey===void 0||a[n].deviceKey===n)&&(s||(a=G({},i),s=true),delete a[n]);}}),s?a:i});}normalizeOptionalString(e){if(typeof e!="string")return null;let r=e.trim();return r.length>0?r:null}enqueuePathUpdate(e,r=false){let t=this.parsePath(e.path);if(!t)return;let i=e.update?.data?.value??null,a=e.update?.state??null,s=this.extractUpdateSource(e),o=`${t.id}::${s??"*"}::${t.key}`;if(this.pendingPathUpdates.set(o,{id:t.id,key:t.key,source:s,value:i,state:a}),!r){if(!this.initialPathPaintDone){this.initialPathPaintDone=true,this.flushPendingPathUpdates();return}this.pathBatchTimerId===null&&(this.pathBatchTimerId=window.setTimeout(()=>{this.pathBatchTimerId=null,this.flushPendingPathUpdates();},c$1.PATH_BATCH_WINDOW_MS));}}parsePath(e){let r=e.match(c$1.PATH_REGEX);return r?{id:r[1],key:r[2]}:null}flushPendingPathUpdates(){if(!this.pendingPathUpdates.size)return;let e=Array.from(this.pendingPathUpdates.values());this.pendingPathUpdates.clear(),new Set(e.map(a=>a.id)).forEach(a=>this.trackDiscoveredCharger(a));let t=this.buildIdToDeviceKeysMap(),i=new Map;this.trackedDevices().forEach(a=>i.set(a.key,a)),this.chargersByKey.update(a=>{let s=a,o=false;for(let n of e){let m=t.get(n.id),p=!!m?.length,h=[];if(p)if(n.source){let y=`${n.id}||${n.source}`;h=m?.includes(y)?[y]:[];}else h=m??[];else h=[n.source?`${n.id}||${n.source}`:n.id];for(let y of h){let b=p?i.get(y):null,f=s[y]??{id:n.id,source:b?.source??n.source??null,deviceKey:p||n.source?y:void 0},d=G({},f);if(!this.applyValue(d,n.key,n.value,n.state))continue;let M=d.rawPower!=null?d.rawPower:d.voltage!=null&&d.current!=null?d.voltage*d.current:null;M!=null?d.power=Number.isFinite(M)?M:null:d.power=null,d.rawPower==null&&(d.powerState=this.resolveMostSevereState(d.voltageState??null,d.currentState??null)),o||(s=G({},s),o=true),s[y]=d;}}return o?s:a});}extractUpdateSource(e){let r=this.normalizeOptionalString(e.source);return r||(this.normalizeOptionalString(e.update?.data?.source)??null)}trackDiscoveredCharger(e){let r=this.discoveredChargerIds();r.includes(e)||this.discoveredChargerIds.set([...r,e].sort((t,i)=>t.localeCompare(i)));}applyValue(e,r,t,i){switch(r){case "name":return this.setValue(e,"name",this.toStringValue(t));case "location":return this.setValue(e,"location",this.toStringValue(t));case "associatedBus":return this.setValue(e,"associatedBus",this.toStringValue(t));case "state":return this.setMetricValue(e,"state","stateState",this.toStringValue(t),i);case "offReason":return this.setMetricValue(e,"offReason","offReasonState",this.toStringValue(t),i);case "error":return this.setMetricValue(e,"error","errorState",this.toStringValue(t),i);case "mode":return this.setMetricValue(e,"mode","modeState",this.toStringValue(t),i);case "modeState":return this.setMetricValue(e,"mode","modeState",this.toStringValue(t),i);case "modeNumber":return this.setMetricValue(e,"modeNumber","modeNumberState",this.toNumber(t,""),i);case "chargingMode":return this.setMetricValue(e,"chargingMode","chargingModeState",this.toStringValue(t),i);case "chargingModeNumber":return this.setMetricValue(e,"chargingModeNumber","chargingModeNumberState",this.toNumber(t,""),i);case "output.voltage":{let a=this.toNumber(t,"V"),s=this.setMetricValue(e,"outputVoltage","outputVoltageState",a,i),o=this.setMetricValue(e,"voltage","voltageState",a,i);return s||o}case "input.voltage":return this.setMetricValue(e,"inputVoltage","inputVoltageState",this.toNumber(t,"V"),i);case "voltage":return this.setMetricValue(e,"voltage","voltageState",this.toNumber(t,"V"),i);case "current":return this.setMetricValue(e,"current","currentState",this.toNumber(t,"A"),i);case "power":return this.setMetricValue(e,"rawPower","powerState",this.toNumber(t,"W"),i);case "temperature":return this.setMetricValue(e,"temperature","temperatureState",this.toNumber(t,this.units.getDefaults().Temperature),i);case "leds.absorption":return this.setMetricValue(e,"ledsAbsorption","ledsAbsorptionState",this.toBoolean(t),i);case "leds.bulk":return this.setMetricValue(e,"ledsBulk","ledsBulkState",this.toBoolean(t),i);case "leds.float":return this.setMetricValue(e,"ledsFloat","ledsFloatState",this.toBoolean(t),i);case "leds.inverter":return this.setMetricValue(e,"ledsInverter","ledsInverterState",this.toBoolean(t),i);case "leds.lowBattery":return this.setMetricValue(e,"ledsLowBattery","ledsLowBatteryState",this.toBoolean(t),i);case "leds.mains":return this.setMetricValue(e,"ledsMains","ledsMainsState",this.toBoolean(t),i);case "leds.overload":return this.setMetricValue(e,"ledsOverload","ledsOverloadState",this.toBoolean(t),i);case "leds.temperature":return this.setMetricValue(e,"ledsTemperature","ledsTemperatureState",this.toBoolean(t),i);default:return false}}setValue(e,r,t){return Object.is(e[r],t)?false:(e[r]=t,true)}setMetricValue(e,r,t,i,a){let s=!Object.is(e[r],i),o=!Object.is(e[t],a);return !s&&!o?false:(e[r]=i,e[t]=a,true)}requestRender(e){let r=this.widgetColors();!this.svg||!r||(this.pendingRenderSnapshot=e??{chargers:this.visibleChargers(),displayModels:this.displayModels(),widgetColors:r},this.renderFrameId===null&&(this.renderFrameId=requestAnimationFrame(()=>{this.renderFrameId=null;let t=this.pendingRenderSnapshot;this.pendingRenderSnapshot=null,t&&this.render(t);})));}render(e$1){if(!this.layer||!this.svg)return;let r=this.isCompactCardMode(),t=r?C:e,i=r?c$1.COMPACT_CARD_HEIGHT:c$1.CARD_HEIGHT,a=c$1.VIEWBOX_WIDTH-c$1.CHARGER_DISPLAY_HORIZONTAL_MARGIN,s=a/c$1.CHARGER_DISPLAY_BASE_WIDTH,o=a,n=(c$1.VIEWBOX_WIDTH-o)/2,m=r?8:t.titleY,p=r?33:60,h=e$1.chargers.map((l,P)=>({key:l.deviceKey??l.id,id:l.id,charger:l,y:P*(i+c$1.CARD_GAP)})),y=h.length?h[h.length-1].y+i:i;this.svg.attr("viewBox",`0 0 ${c$1.VIEWBOX_WIDTH} ${y}`);let b=this.layer.selectAll("g.charger-card").data(h,l=>l.key),f=b.enter().append("g").attr("class","charger-card"),d=f.append("g").attr("class","charger-display-group");d.append("path").attr("class","charger-shape-bulk").attr("d","m 39.280608,10.70371 1.604609,-3.7808024 c 0.06926,-0.1631805 0.314475,-0.553581 0.314475,-0.4368876 v 27.475177 c 0,0.116694 -0.142713,0.210638 -0.319983,0.210638 H 9.2681756 c -0.1772706,0 -0.3711555,-0.105758 -0.319983,-0.210638 l 1.2797184,-2.622833 c 1.150699,-2.358403 3.86281,-5.455024 6.286778,-6.406312 3.251217,-1.275942 7.834296,-2.821704 11.746419,-4.103315 4.312764,-1.412861 9.246151,-5.946636 11.0195,-10.125027 z").attr("transform","matrix(1.1068428,0,0,1.1601894,-8.804611,-6.1382561)").attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),d.append("rect").attr("class","charger-shape-absorption").attr("width",19.67485).attr("height",32.383526).attr("x",40.545158).attr("y",1.1331999).attr("rx",.19520389).attr("ry",.24451913).attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linecap","butt").attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),d.append("path").attr("class","charger-shape-float").attr("d","m 66.03898,6.4101715 4.16646,3.2472635 c 1.876083,1.462185 5.139444,3.529899 7.448846,4.069504 5.055358,1.181215 11.386089,1.251612 11.38595,1.349059 l -0.02667,18.73082 c 0,0.127151 -0.103075,0.230227 -0.230226,0.230227 H 66.03898 c -0.127151,0 -0.230226,-0.103076 -0.230226,-0.230227 V 6.6403978 c 0,-0.1271504 0.103076,-0.2302261 0.230226,-0.2302263 z").attr("transform","matrix(1.1068428,0,0,1.1601894,-8.7228087,-6.1382561)").attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linecap","butt").attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),d.append("path").attr("class","charger-shape-storage").attr("d","m 93.39395,15.253553 c 2.347866,2.587905 8.59059,4.802212 13.94479,4.852641 11.92289,0.112298 30.60094,0.205911 30.60096,0.259031 l 0.006,13.361558 c 3e-5,0.07786 -0.19912,0.140548 -0.44645,0.140548 h -44.1053 c -0.247332,0 -0.446448,-0.06269 -0.446448,-0.140548 V 15.394101 c 0,-0.07786 0.280259,-0.323728 0.446448,-0.140548 z").attr("transform","matrix(1.1077284,0,0,1.1178939,-8.9068494,-4.6850995)").attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),f.append("text").attr("class","charger-title"),f.append("text").attr("class","charger-mode");let E=f.append("text").attr("class","charger-voltage");E.append("tspan").attr("class","voltage-metric-value"),E.append("tspan").attr("class","voltage-metric-unit");let M=f.append("text").attr("class","charger-current");M.append("tspan").attr("class","current-metric-value"),M.append("tspan").attr("class","current-metric-unit");let L=f.append("text").attr("class","charger-power");L.append("tspan").attr("class","power-metric-value"),L.append("tspan").attr("class","power-metric-unit");let z=f.append("text").attr("class","charger-temperature");z.append("tspan").attr("class","temperature-metric-value"),z.append("tspan").attr("class","temperature-metric-unit");let u=f.merge(b);u.attr("transform",l=>`translate(0, ${l.y})`),u.select("g.charger-display-group").attr("transform",`translate(${n}, ${p}) scale(${s})`).each((l,P,ce)=>{let v=this.resolveShapeMode(l.charger),S=this.isShapeMode(v,"power supply"),D=e$1.widgetColors.dim,x="var(--mat-sys-background)",R=this.isShapeMode(v,"sustain")||S?"none":this.isShapeMode(v,"equalization")?"var(--kip-zone-alert-color)":this.isShapeMode(v,"overload")?"var(--kip-zone-alarm-color)":e$1.widgetColors.color,I=ge$2(ce[P]);I.select("path.charger-shape-bulk").attr("fill",this.isShapeMode(v,"bulk")||this.isShapeMode(v,"boost")||S?D:x).attr("stroke",R),I.select("rect.charger-shape-absorption").attr("fill",this.isShapeMode(v,"absorption")||S?D:x).attr("stroke",R),I.select("path.charger-shape-float").attr("fill",this.isShapeMode(v,"float")||S?D:x).attr("stroke",R),I.select("path.charger-shape-storage").attr("fill",this.isShapeMode(v,"storage")||S?D:x).attr("stroke",R);}),e$1.chargers.length>1?u.select("text.charger-title").attr("x",t.titleX).attr("y",m).attr("font-size",t.titleFontSize).attr("fill","var(--kip-contrast-dim-color)").text(l=>e$1.displayModels[l.key]?.titleText??this.resolveTitleText(l.charger)):u.select("text.charger-title").text(""),u.select("text.charger-voltage").attr("x",197).attr("y",25).attr("text-anchor","end").attr("font-size",t.primaryFontSize).attr("font-weight",t.primaryFontWeight).attr("fill","var(--kip-contrast-color)"),u.select("tspan.voltage-metric-value").text(l=>e$1.displayModels[l.key]?.voltageText??""),u.select("tspan.voltage-metric-unit").attr("dx",1).attr("font-size",22).attr("font-weight",500).attr("fill","var(--kip-contrast-color)").text("V"),u.select("text.charger-current").attr("x",197).attr("y",48).attr("text-anchor","end").attr("font-size",t.lineOneFontSize).attr("fill","var(--kip-contrast-color)"),u.select("tspan.current-metric-value").text(l=>e$1.displayModels[l.key]?.currentText??""),u.select("tspan.current-metric-unit").attr("dx",1).attr("font-size",12).attr("fill","var(--kip-contrast-color)").text("A"),u.select("text.charger-power").attr("x",5).attr("y",22).attr("fill","var(--kip-contrast-dim-color)").attr("font-size",10),u.select("tspan.power-metric-value").text(l=>e$1.displayModels[l.key]?.powerText??""),u.select("tspan.power-metric-unit").attr("dx",1).attr("font-size",6).attr("fill","var(--kip-contrast-dim-color)").text("W"),u.select("text.charger-temperature").attr("x",5).attr("y",34).attr("fill","var(--kip-contrast-dim-color)").attr("font-size",10),u.select("tspan.temperature-metric-value").text(l=>e$1.displayModels[l.key]?.temperatureText??""),u.select("tspan.temperature-metric-unit").attr("dx",1).attr("font-size",6).attr("fill","var(--kip-contrast-dim-color)").text(`${this.units.getDefaults().Temperature==="celsius"?"\xB0C":"\xB0F"}`),u.select("text.charger-mode").attr("x",5).attr("y",46).attr("font-size",10).attr("fill","var(--kip-contrast-dim-color)").text(l=>e$1.displayModels[l.key]?.modeText??""),b.exit().remove();}resolveTitleText(e,r=false){let t=e.name||`Charger ${e.id}`;return !r||!e.source?t:`${t} [${e.source}]`}resolveModeText(e){if(e.chargingMode)return `Mode: ${e.chargingMode.charAt(0).toUpperCase()+e.chargingMode.slice(1)}`;if(e.mode)return `Mode: ${e.mode}`;let t=[{active:e.ledsAbsorption,label:"Absorption"},{active:e.ledsBulk,label:"Bulk"},{active:e.ledsFloat,label:"Float"},{active:e.ledsInverter,label:"Inverter"},{active:e.ledsLowBattery,label:"Low Battery"},{active:e.ledsMains,label:"Mains"},{active:e.ledsOverload,label:"Overload"},{active:e.ledsTemperature,label:"Temperature"}].filter(i=>i.active===true).map(i=>i.label);return t.length?`Mode: ${t.join(" / ")}`:"Mode --"}resolveShapeMode(e){return (e.chargingMode??e.mode??"").trim().toLowerCase()}isShapeMode(e,r){return !e||!r?false:e===r||e.includes(r)}buildMetricRows(e){return this.renderMode()==="full"||this.renderMode()===null?[`${this.formatValue(e.voltage,1)}`,`${this.formatValue(e.current,1)}`,`Power: ${this.formatValue(e.power,0)}`,`Temp: ${this.formatTemperature(e.temperature)}`]:[`${this.formatValue(e.voltage,1)}`,`${this.formatValue(e.current,1)}`,`P: ${this.formatValue(e.power,0)}`,`T: ${this.formatTemperature(e.temperature)}`]}formatValue(e,r){return e==null||Number.isNaN(e)?"-":`${e.toFixed(r)}`}formatTemperature(e){return e==null||Number.isNaN(e)?"-":`${e.toFixed(0)}`}toStringValue(e){return typeof e=="string"?e:null}toBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return true;if(e===0)return false}if(typeof e=="string"){let r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="on")return true;if(r==="false"||r==="0"||r==="off")return false}return null}resolveMostSevereState(...e){return e.some(r=>r===n$1.Alert)?n$1.Alert:e.some(r=>r===n$1.Alarm)?n$1.Alarm:e.some(r=>r===n$1.Warn)?n$1.Warn:e.some(r=>r===n$1.Normal)?n$1.Normal:null}toNumber(e,r){if(e==null||typeof e=="boolean")return null;let t=typeof e=="number"?e:Number(e);if(!Number.isFinite(t))return null;let i=this.units.convertToUnit(r,t);return Number.isFinite(i)?i:t}static \u0275fac=function(r){return new(r||c$1)};static \u0275cmp=JD({type:c$1,selectors:[["widget-charger"]],viewQuery:function(r,t){r&1&&eg(t.svgRef,ge,5),r&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"],renderMode:[1,"renderMode"]},decls:4,vars:3,consts:[["chargerSvg",""],[3,"text","color"],["aria-hidden","false",1,"charger-svg"],[1,"charger-empty"],[1,"charger-empty-title"],[1,"charger-empty-sub"]],template:function(r,t){r&1&&($h(0,"widget-title",1),wd(),$h(1,"svg",2,0),_w(3,me,5,0,"div",3)),r&2&&(Bh("text",t.displayLabel())("color",t.labelColor()),EE(3),Mw(t.hasChargers()?-1:3));},dependencies:[x],styles:["[_nghost-%COMP%]{display:block;height:100%;width:100%;position:relative;overflow:hidden}.charger-svg[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20;padding:0 10px 10px}.charger-empty[_ngcontent-%COMP%]{position:absolute;inset:0;margin:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--mat-sys-on-surface);background:color-mix(in srgb,var(--kip-widget-card-background-color) 92%,transparent)}.charger-empty-title[_ngcontent-%COMP%]{font-size:18px;font-weight:600}.charger-empty-sub[_ngcontent-%COMP%]{font-size:14px;opacity:.8}"]})};export{le as WidgetChargerComponent};
|
|
1
|
+
import {C,e}from'./chunk-CyURmwWh.js';import {g as ge$2}from'./chunk-TakPRI3t.js';import {e9 as a,d1 as Hj,w,du as p,aS as De,bu as ut,aY as xe,$ as $j,v as vt,D as Dt,F as Fa,dn as ge$1,a_ as Gp,cv as G,cw as z,dx as n$1,J as JD,dC as x,c as $h,cn as wd,_ as _w,B as Bh,e as EE,M as Mw,f as eg,K as Kw,P as Pi,T as TT,u as ul}from'./main-BNR44HGB.js';import {c}from'./chunk-D_wrJJxl.js';var ge=["chargerSvg"];function me(c,e){c&1&&(Pi(0,"div",3)(1,"div",4),TT(2,"No chargers detected"),ul(),Pi(3,"div",5),TT(4,"Check Signal K charger paths or select chargers in widget settings."),ul()());}function fe(c){return c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var le=class c$1{static CHARGER_DESCRIPTOR=a("widget-charger");static SELF_ROOT_PATH=(()=>{let e=c$1.CHARGER_DESCRIPTOR?.selfRootPath;if(!e)throw new Error("[WidgetChargerComponent] Descriptor missing or selfRootPath not set; check widget registration.");return e})();static ROOT_PATTERN=`${c$1.SELF_ROOT_PATH}.*`;static PATH_REGEX=new RegExp(`^${fe(c$1.SELF_ROOT_PATH)}\\.([^.]+)\\.(.+)$`);static VIEWBOX_WIDTH=200;static CARD_HEIGHT=100;static COMPACT_CARD_HEIGHT=100;static CARD_GAP=8;static PATH_BATCH_WINDOW_MS=500;static CHARGER_DISPLAY_BASE_WIDTH=145;static CHARGER_DISPLAY_BASE_HEIGHT=37;static CHARGER_DISPLAY_HORIZONTAL_MARGIN=40;static DEFAULT_CONFIG={color:"contrast",ignoreZones:false,charger:{trackedDevices:[],optionsById:{}}};id=Hj.required();type=Hj.required();theme=Hj.required();renderMode=Hj(null);runtime=w(p);data=w(De);units=w(ut);destroyRef=w(xe);svgRef=$j.required("chargerSvg");svg;layer;pendingPathUpdates=new Map;pathBatchTimerId=null;initialPathPaintDone=false;renderFrameId=null;pendingRenderSnapshot=null;discoveredChargerIds=vt([]);trackedDevices=vt([]);chargersByKey=vt({});visibleChargerKeys=Dt(()=>{let e=this.trackedDevices();if(e.length)return e.map(s=>s.key);let r=this.chargersByKey(),t=new Set(this.discoveredChargerIds()),i=Object.keys(r).filter(s=>{let o=r[s];return !!o&&t.has(o.id)}).sort((s,o)=>s.localeCompare(o)),a=new Map;return i.forEach(s=>{let o=r[s];o&&s!==o.id&&a.set(o.id,true);}),i.filter(s=>{let o=r[s];return o?s!==o.id?true:!a.get(o.id):false})});visibleChargers=Dt(()=>{let e=this.visibleChargerKeys(),r=this.chargersByKey();return e.map(t=>r[t]).filter(t=>!!t)});hasChargers=Dt(()=>this.visibleChargers().length>0);isCompactCardMode=Dt(()=>this.renderMode()==="compact");colorRole=Dt(()=>this.runtime.options()?.color??"contrast");ignoreZones=Dt(()=>this.runtime.options()?.ignoreZones??false);displayLabel=Dt(()=>{let e=this.visibleChargers();return e.length!==1?"Chargers":this.resolveTitleText(e[0])});labelColor=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e).dim:"var(--kip-contrast-dim-color)"});widgetColors=Dt(()=>{let e=this.theme();return e?c(this.colorRole(),e):null});displayModels=Dt(()=>{let e=this.visibleChargers(),r=new Map;e.forEach(a=>r.set(a.id,(r.get(a.id)??0)+1));let t=new Set([...r.entries()].filter(([,a])=>a>1).map(([a])=>a)),i={};for(let a of e){let s=a.deviceKey??a.id,o=!!a.source&&t.has(a.id),[n,m,p,h]=this.buildMetricRows(a);i[s]={id:a.id,source:a.source??null,deviceKey:a.deviceKey,titleText:this.resolveTitleText(a,o),modeText:this.isCompactCardMode()?"":this.resolveModeText(a),voltageText:n,currentText:m,powerText:p,temperatureText:h};}return i});constructor(){Fa(()=>{let t=this.runtime.options();t&&ge$1(()=>this.applyConfig(t));}),Fa(()=>{let t=this.displayModels(),i=this.visibleChargers(),a=this.widgetColors();!this.svg||!a||this.requestRender({chargers:i,displayModels:t,widgetColors:a});});let e=[this.data.subscribePathTreeWithInitial(c$1.ROOT_PATTERN)],r=false;for(let t of e)if(t.initial.length){r=true;for(let i of t.initial)this.enqueuePathUpdate(i,true);}r&&(this.flushPendingPathUpdates(),this.initialPathPaintDone=true);for(let t of e)t.live$.pipe(Gp(this.destroyRef)).subscribe(i=>{this.enqueuePathUpdate(i);});}ngAfterViewInit(){this.initializeSvg(),this.requestRender();}ngOnDestroy(){this.pathBatchTimerId!==null&&(clearTimeout(this.pathBatchTimerId),this.pathBatchTimerId=null),this.renderFrameId!==null&&(cancelAnimationFrame(this.renderFrameId),this.renderFrameId=null),this.pendingRenderSnapshot=null;}initializeSvg(){this.svg=ge$2(this.svgRef().nativeElement),this.svg.attr("viewBox",`0 0 ${c$1.VIEWBOX_WIDTH} ${c$1.CARD_HEIGHT}`).attr("preserveAspectRatio","xMidYMid meet").attr("role","img").attr("aria-label","Charger View"),this.layer=this.svg.append("g").attr("class","charger-layer");}applyConfig(e){let r=this.normalizeTrackedDevices(e.charger?.trackedDevices);this.trackedDevices.set(r),this.reprojectSnapshotsToDeviceKeys(r);}normalizeTrackedDevices(e){if(!Array.isArray(e))return [];let r=new Map;return e.forEach(t=>{if(!t||typeof t!="object")return;let i=t,a=this.normalizeOptionalString(i.id),s=this.normalizeOptionalString(i.source);if(!a||!s)return;let o=this.normalizeOptionalString(i.key)??`${a}||${s}`;r.set(o,{id:a,source:s,key:o});}),[...r.values()].sort((t,i)=>t.key.localeCompare(i.key))}buildIdToDeviceKeysMap(){let e=new Map;return this.trackedDevices().forEach(r=>{let t=e.get(r.id)??[];t.push(r.key),e.set(r.id,t);}),e}reprojectSnapshotsToDeviceKeys(e){if(!e.length)return;let r=new Map,t=new Map;e.forEach(i=>{let a=r.get(i.id)??[];a.push(i.key),r.set(i.id,a),t.set(i.key,i);}),this.chargersByKey.update(i=>{let a=i,s=false;return r.forEach((o,n)=>{let m=i[n];if(m){for(let p of o){if(i[p])continue;let h=t.get(p);s||(a=G({},i),s=true),a[p]=z(G({},m),{source:h?.source??null,deviceKey:p});}a[n]&&(a[n].deviceKey===void 0||a[n].deviceKey===n)&&(s||(a=G({},i),s=true),delete a[n]);}}),s?a:i});}normalizeOptionalString(e){if(typeof e!="string")return null;let r=e.trim();return r.length>0?r:null}enqueuePathUpdate(e,r=false){let t=this.parsePath(e.path);if(!t)return;let i=e.update?.data?.value??null,a=e.update?.state??null,s=this.extractUpdateSource(e),o=`${t.id}::${s??"*"}::${t.key}`;if(this.pendingPathUpdates.set(o,{id:t.id,key:t.key,source:s,value:i,state:a}),!r){if(!this.initialPathPaintDone){this.initialPathPaintDone=true,this.flushPendingPathUpdates();return}this.pathBatchTimerId===null&&(this.pathBatchTimerId=window.setTimeout(()=>{this.pathBatchTimerId=null,this.flushPendingPathUpdates();},c$1.PATH_BATCH_WINDOW_MS));}}parsePath(e){let r=e.match(c$1.PATH_REGEX);return r?{id:r[1],key:r[2]}:null}flushPendingPathUpdates(){if(!this.pendingPathUpdates.size)return;let e=Array.from(this.pendingPathUpdates.values());this.pendingPathUpdates.clear(),new Set(e.map(a=>a.id)).forEach(a=>this.trackDiscoveredCharger(a));let t=this.buildIdToDeviceKeysMap(),i=new Map;this.trackedDevices().forEach(a=>i.set(a.key,a)),this.chargersByKey.update(a=>{let s=a,o=false;for(let n of e){let m=t.get(n.id),p=!!m?.length,h=[];if(p)if(n.source){let y=`${n.id}||${n.source}`;h=m?.includes(y)?[y]:[];}else h=m??[];else h=[n.source?`${n.id}||${n.source}`:n.id];for(let y of h){let b=p?i.get(y):null,f=s[y]??{id:n.id,source:b?.source??n.source??null,deviceKey:p||n.source?y:void 0},d=G({},f);if(!this.applyValue(d,n.key,n.value,n.state))continue;let M=d.rawPower!=null?d.rawPower:d.voltage!=null&&d.current!=null?d.voltage*d.current:null;M!=null?d.power=Number.isFinite(M)?M:null:d.power=null,d.rawPower==null&&(d.powerState=this.resolveMostSevereState(d.voltageState??null,d.currentState??null)),o||(s=G({},s),o=true),s[y]=d;}}return o?s:a});}extractUpdateSource(e){let r=this.normalizeOptionalString(e.source);return r||(this.normalizeOptionalString(e.update?.data?.source)??null)}trackDiscoveredCharger(e){let r=this.discoveredChargerIds();r.includes(e)||this.discoveredChargerIds.set([...r,e].sort((t,i)=>t.localeCompare(i)));}applyValue(e,r,t,i){switch(r){case "name":return this.setValue(e,"name",this.toStringValue(t));case "location":return this.setValue(e,"location",this.toStringValue(t));case "associatedBus":return this.setValue(e,"associatedBus",this.toStringValue(t));case "state":return this.setMetricValue(e,"state","stateState",this.toStringValue(t),i);case "offReason":return this.setMetricValue(e,"offReason","offReasonState",this.toStringValue(t),i);case "error":return this.setMetricValue(e,"error","errorState",this.toStringValue(t),i);case "mode":return this.setMetricValue(e,"mode","modeState",this.toStringValue(t),i);case "modeState":return this.setMetricValue(e,"mode","modeState",this.toStringValue(t),i);case "modeNumber":return this.setMetricValue(e,"modeNumber","modeNumberState",this.toNumber(t,""),i);case "chargingMode":return this.setMetricValue(e,"chargingMode","chargingModeState",this.toStringValue(t),i);case "chargingModeNumber":return this.setMetricValue(e,"chargingModeNumber","chargingModeNumberState",this.toNumber(t,""),i);case "output.voltage":{let a=this.toNumber(t,"V"),s=this.setMetricValue(e,"outputVoltage","outputVoltageState",a,i),o=this.setMetricValue(e,"voltage","voltageState",a,i);return s||o}case "input.voltage":return this.setMetricValue(e,"inputVoltage","inputVoltageState",this.toNumber(t,"V"),i);case "voltage":return this.setMetricValue(e,"voltage","voltageState",this.toNumber(t,"V"),i);case "current":return this.setMetricValue(e,"current","currentState",this.toNumber(t,"A"),i);case "power":return this.setMetricValue(e,"rawPower","powerState",this.toNumber(t,"W"),i);case "temperature":return this.setMetricValue(e,"temperature","temperatureState",this.toNumber(t,this.units.getDefaults().Temperature),i);case "leds.absorption":return this.setMetricValue(e,"ledsAbsorption","ledsAbsorptionState",this.toBoolean(t),i);case "leds.bulk":return this.setMetricValue(e,"ledsBulk","ledsBulkState",this.toBoolean(t),i);case "leds.float":return this.setMetricValue(e,"ledsFloat","ledsFloatState",this.toBoolean(t),i);case "leds.inverter":return this.setMetricValue(e,"ledsInverter","ledsInverterState",this.toBoolean(t),i);case "leds.lowBattery":return this.setMetricValue(e,"ledsLowBattery","ledsLowBatteryState",this.toBoolean(t),i);case "leds.mains":return this.setMetricValue(e,"ledsMains","ledsMainsState",this.toBoolean(t),i);case "leds.overload":return this.setMetricValue(e,"ledsOverload","ledsOverloadState",this.toBoolean(t),i);case "leds.temperature":return this.setMetricValue(e,"ledsTemperature","ledsTemperatureState",this.toBoolean(t),i);default:return false}}setValue(e,r,t){return Object.is(e[r],t)?false:(e[r]=t,true)}setMetricValue(e,r,t,i,a){let s=!Object.is(e[r],i),o=!Object.is(e[t],a);return !s&&!o?false:(e[r]=i,e[t]=a,true)}requestRender(e){let r=this.widgetColors();!this.svg||!r||(this.pendingRenderSnapshot=e??{chargers:this.visibleChargers(),displayModels:this.displayModels(),widgetColors:r},this.renderFrameId===null&&(this.renderFrameId=requestAnimationFrame(()=>{this.renderFrameId=null;let t=this.pendingRenderSnapshot;this.pendingRenderSnapshot=null,t&&this.render(t);})));}render(e$1){if(!this.layer||!this.svg)return;let r=this.isCompactCardMode(),t=r?C:e,i=r?c$1.COMPACT_CARD_HEIGHT:c$1.CARD_HEIGHT,a=c$1.VIEWBOX_WIDTH-c$1.CHARGER_DISPLAY_HORIZONTAL_MARGIN,s=a/c$1.CHARGER_DISPLAY_BASE_WIDTH,o=a,n=(c$1.VIEWBOX_WIDTH-o)/2,m=r?8:t.titleY,p=r?33:60,h=e$1.chargers.map((l,P)=>({key:l.deviceKey??l.id,id:l.id,charger:l,y:P*(i+c$1.CARD_GAP)})),y=h.length?h[h.length-1].y+i:i;this.svg.attr("viewBox",`0 0 ${c$1.VIEWBOX_WIDTH} ${y}`);let b=this.layer.selectAll("g.charger-card").data(h,l=>l.key),f=b.enter().append("g").attr("class","charger-card"),d=f.append("g").attr("class","charger-display-group");d.append("path").attr("class","charger-shape-bulk").attr("d","m 39.280608,10.70371 1.604609,-3.7808024 c 0.06926,-0.1631805 0.314475,-0.553581 0.314475,-0.4368876 v 27.475177 c 0,0.116694 -0.142713,0.210638 -0.319983,0.210638 H 9.2681756 c -0.1772706,0 -0.3711555,-0.105758 -0.319983,-0.210638 l 1.2797184,-2.622833 c 1.150699,-2.358403 3.86281,-5.455024 6.286778,-6.406312 3.251217,-1.275942 7.834296,-2.821704 11.746419,-4.103315 4.312764,-1.412861 9.246151,-5.946636 11.0195,-10.125027 z").attr("transform","matrix(1.1068428,0,0,1.1601894,-8.804611,-6.1382561)").attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),d.append("rect").attr("class","charger-shape-absorption").attr("width",19.67485).attr("height",32.383526).attr("x",40.545158).attr("y",1.1331999).attr("rx",.19520389).attr("ry",.24451913).attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linecap","butt").attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),d.append("path").attr("class","charger-shape-float").attr("d","m 66.03898,6.4101715 4.16646,3.2472635 c 1.876083,1.462185 5.139444,3.529899 7.448846,4.069504 5.055358,1.181215 11.386089,1.251612 11.38595,1.349059 l -0.02667,18.73082 c 0,0.127151 -0.103075,0.230227 -0.230226,0.230227 H 66.03898 c -0.127151,0 -0.230226,-0.103076 -0.230226,-0.230227 V 6.6403978 c 0,-0.1271504 0.103076,-0.2302261 0.230226,-0.2302263 z").attr("transform","matrix(1.1068428,0,0,1.1601894,-8.7228087,-6.1382561)").attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linecap","butt").attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),d.append("path").attr("class","charger-shape-storage").attr("d","m 93.39395,15.253553 c 2.347866,2.587905 8.59059,4.802212 13.94479,4.852641 11.92289,0.112298 30.60094,0.205911 30.60096,0.259031 l 0.006,13.361558 c 3e-5,0.07786 -0.19912,0.140548 -0.44645,0.140548 h -44.1053 c -0.247332,0 -0.446448,-0.06269 -0.446448,-0.140548 V 15.394101 c 0,-0.07786 0.280259,-0.323728 0.446448,-0.140548 z").attr("transform","matrix(1.1077284,0,0,1.1178939,-8.9068494,-4.6850995)").attr("fill","var(--mat-sys-background)").attr("stroke",e$1.widgetColors.color).attr("stroke-width",2).attr("stroke-linejoin","miter").attr("stroke-miterlimit",0).attr("paint-order","markers stroke fill"),f.append("text").attr("class","charger-title"),f.append("text").attr("class","charger-mode");let E=f.append("text").attr("class","charger-voltage");E.append("tspan").attr("class","voltage-metric-value"),E.append("tspan").attr("class","voltage-metric-unit");let M=f.append("text").attr("class","charger-current");M.append("tspan").attr("class","current-metric-value"),M.append("tspan").attr("class","current-metric-unit");let L=f.append("text").attr("class","charger-power");L.append("tspan").attr("class","power-metric-value"),L.append("tspan").attr("class","power-metric-unit");let z=f.append("text").attr("class","charger-temperature");z.append("tspan").attr("class","temperature-metric-value"),z.append("tspan").attr("class","temperature-metric-unit");let u=f.merge(b);u.attr("transform",l=>`translate(0, ${l.y})`),u.select("g.charger-display-group").attr("transform",`translate(${n}, ${p}) scale(${s})`).each((l,P,ce)=>{let v=this.resolveShapeMode(l.charger),S=this.isShapeMode(v,"power supply"),D=e$1.widgetColors.dim,x="var(--mat-sys-background)",R=this.isShapeMode(v,"sustain")||S?"none":this.isShapeMode(v,"equalization")?"var(--kip-zone-alert-color)":this.isShapeMode(v,"overload")?"var(--kip-zone-alarm-color)":e$1.widgetColors.color,I=ge$2(ce[P]);I.select("path.charger-shape-bulk").attr("fill",this.isShapeMode(v,"bulk")||this.isShapeMode(v,"boost")||S?D:x).attr("stroke",R),I.select("rect.charger-shape-absorption").attr("fill",this.isShapeMode(v,"absorption")||S?D:x).attr("stroke",R),I.select("path.charger-shape-float").attr("fill",this.isShapeMode(v,"float")||S?D:x).attr("stroke",R),I.select("path.charger-shape-storage").attr("fill",this.isShapeMode(v,"storage")||S?D:x).attr("stroke",R);}),e$1.chargers.length>1?u.select("text.charger-title").attr("x",t.titleX).attr("y",m).attr("font-size",t.titleFontSize).attr("fill","var(--kip-contrast-dim-color)").text(l=>e$1.displayModels[l.key]?.titleText??this.resolveTitleText(l.charger)):u.select("text.charger-title").text(""),u.select("text.charger-voltage").attr("x",197).attr("y",25).attr("text-anchor","end").attr("font-size",t.primaryFontSize).attr("font-weight",t.primaryFontWeight).attr("fill","var(--kip-contrast-color)"),u.select("tspan.voltage-metric-value").text(l=>e$1.displayModels[l.key]?.voltageText??""),u.select("tspan.voltage-metric-unit").attr("dx",1).attr("font-size",22).attr("font-weight",500).attr("fill","var(--kip-contrast-color)").text("V"),u.select("text.charger-current").attr("x",197).attr("y",48).attr("text-anchor","end").attr("font-size",t.lineOneFontSize).attr("fill","var(--kip-contrast-color)"),u.select("tspan.current-metric-value").text(l=>e$1.displayModels[l.key]?.currentText??""),u.select("tspan.current-metric-unit").attr("dx",1).attr("font-size",12).attr("fill","var(--kip-contrast-color)").text("A"),u.select("text.charger-power").attr("x",5).attr("y",22).attr("fill","var(--kip-contrast-dim-color)").attr("font-size",10),u.select("tspan.power-metric-value").text(l=>e$1.displayModels[l.key]?.powerText??""),u.select("tspan.power-metric-unit").attr("dx",1).attr("font-size",6).attr("fill","var(--kip-contrast-dim-color)").text("W"),u.select("text.charger-temperature").attr("x",5).attr("y",34).attr("fill","var(--kip-contrast-dim-color)").attr("font-size",10),u.select("tspan.temperature-metric-value").text(l=>e$1.displayModels[l.key]?.temperatureText??""),u.select("tspan.temperature-metric-unit").attr("dx",1).attr("font-size",6).attr("fill","var(--kip-contrast-dim-color)").text(`${this.units.getDefaults().Temperature==="celsius"?"\xB0C":"\xB0F"}`),u.select("text.charger-mode").attr("x",5).attr("y",46).attr("font-size",10).attr("fill","var(--kip-contrast-dim-color)").text(l=>e$1.displayModels[l.key]?.modeText??""),b.exit().remove();}resolveTitleText(e,r=false){let t=e.name||`Charger ${e.id}`;return !r||!e.source?t:`${t} [${e.source}]`}resolveModeText(e){if(e.chargingMode)return `Mode: ${e.chargingMode.charAt(0).toUpperCase()+e.chargingMode.slice(1)}`;if(e.mode)return `Mode: ${e.mode}`;let t=[{active:e.ledsAbsorption,label:"Absorption"},{active:e.ledsBulk,label:"Bulk"},{active:e.ledsFloat,label:"Float"},{active:e.ledsInverter,label:"Inverter"},{active:e.ledsLowBattery,label:"Low Battery"},{active:e.ledsMains,label:"Mains"},{active:e.ledsOverload,label:"Overload"},{active:e.ledsTemperature,label:"Temperature"}].filter(i=>i.active===true).map(i=>i.label);return t.length?`Mode: ${t.join(" / ")}`:"Mode --"}resolveShapeMode(e){return (e.chargingMode??e.mode??"").trim().toLowerCase()}isShapeMode(e,r){return !e||!r?false:e===r||e.includes(r)}buildMetricRows(e){return this.renderMode()==="full"||this.renderMode()===null?[`${this.formatValue(e.voltage,1)}`,`${this.formatValue(e.current,1)}`,`Power: ${this.formatValue(e.power,0)}`,`Temp: ${this.formatTemperature(e.temperature)}`]:[`${this.formatValue(e.voltage,1)}`,`${this.formatValue(e.current,1)}`,`P: ${this.formatValue(e.power,0)}`,`T: ${this.formatTemperature(e.temperature)}`]}formatValue(e,r){return e==null||Number.isNaN(e)?"-":`${e.toFixed(r)}`}formatTemperature(e){return e==null||Number.isNaN(e)?"-":`${e.toFixed(0)}`}toStringValue(e){return typeof e=="string"?e:null}toBoolean(e){if(typeof e=="boolean")return e;if(typeof e=="number"){if(e===1)return true;if(e===0)return false}if(typeof e=="string"){let r=e.trim().toLowerCase();if(r==="true"||r==="1"||r==="on")return true;if(r==="false"||r==="0"||r==="off")return false}return null}resolveMostSevereState(...e){return e.some(r=>r===n$1.Alert)?n$1.Alert:e.some(r=>r===n$1.Alarm)?n$1.Alarm:e.some(r=>r===n$1.Warn)?n$1.Warn:e.some(r=>r===n$1.Normal)?n$1.Normal:null}toNumber(e,r){if(e==null||typeof e=="boolean")return null;let t=typeof e=="number"?e:Number(e);if(!Number.isFinite(t))return null;let i=this.units.convertToUnit(r,t);return Number.isFinite(i)?i:t}static \u0275fac=function(r){return new(r||c$1)};static \u0275cmp=JD({type:c$1,selectors:[["widget-charger"]],viewQuery:function(r,t){r&1&&eg(t.svgRef,ge,5),r&2&&Kw();},inputs:{id:[1,"id"],type:[1,"type"],theme:[1,"theme"],renderMode:[1,"renderMode"]},decls:4,vars:3,consts:[["chargerSvg",""],[3,"text","color"],["aria-hidden","false",1,"charger-svg"],[1,"charger-empty"],[1,"charger-empty-title"],[1,"charger-empty-sub"]],template:function(r,t){r&1&&($h(0,"widget-title",1),wd(),$h(1,"svg",2,0),_w(3,me,5,0,"div",3)),r&2&&(Bh("text",t.displayLabel())("color",t.labelColor()),EE(3),Mw(t.hasChargers()?-1:3));},dependencies:[x],styles:["[_nghost-%COMP%]{display:block;height:100%;width:100%;position:relative;overflow:hidden}.charger-svg[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20;padding:0 10px 10px}.charger-empty[_ngcontent-%COMP%]{position:absolute;inset:0;margin:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--mat-sys-on-surface);background:color-mix(in srgb,var(--kip-widget-card-background-color) 92%,transparent)}.charger-empty-title[_ngcontent-%COMP%]{font-size:18px;font-weight:600}.charger-empty-sub[_ngcontent-%COMP%]{font-size:14px;opacity:.8}"]})};export{le as WidgetChargerComponent};
|