@mxtommy/kip 3.4.0 → 3.4.2-beta.1
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 +7 -0
- package/package.json +1 -1
- package/public/{chunk-BJZD62ZD.js → chunk-5FUAHCDM.js} +1 -1
- package/public/{chunk-AERKQXJA.js → chunk-5KKRPVJE.js} +15 -15
- package/public/{chunk-KP4DUCFG.js → chunk-5R5BV2XK.js} +1 -1
- package/public/{chunk-UMSIBYU7.js → chunk-BDMHNK6W.js} +1 -1
- package/public/{chunk-PYQ6T3Y3.js → chunk-BVMWKICM.js} +1 -1
- package/public/chunk-DAVKA3BG.js +1 -0
- package/public/{chunk-2GTOB75T.js → chunk-FRJM6ZUY.js} +1 -1
- package/public/{chunk-7ICUQ4VK.js → chunk-HZN6ZOWD.js} +1 -1
- package/public/{chunk-X2CUXUMC.js → chunk-JX2ORMOL.js} +1 -1
- package/public/{chunk-IMRKPLTP.js → chunk-NXU5RHTP.js} +1 -1
- package/public/{chunk-QBA5REXT.js → chunk-O6UODD7I.js} +1 -1
- package/public/{chunk-MRXTLXGU.js → chunk-OJAICHIT.js} +1 -1
- package/public/{chunk-OGPSK2OV.js → chunk-OKDNLHRI.js} +1 -1
- package/public/chunk-P457HUA5.js +8 -0
- package/public/{chunk-F5AFZMSJ.js → chunk-SE4IM4AK.js} +1 -1
- package/public/{chunk-KE3BK62I.js → chunk-SK4FQEPS.js} +1 -1
- package/public/{chunk-EGXTT4GK.js → chunk-T7T34DNY.js} +1 -1
- package/public/{chunk-JITOBNFA.js → chunk-U7WT5AK3.js} +1 -1
- package/public/chunk-UPJO7TXR.js +4 -0
- package/public/{chunk-ROXSW22U.js → chunk-VTJ7KOEH.js} +1 -1
- package/public/{chunk-KUPVE24U.js → chunk-WVZ5YLYA.js} +1 -1
- package/public/{chunk-HTFWAMIE.js → chunk-WXPXINX2.js} +1 -1
- package/public/{chunk-GSG5IFZ7.js → chunk-WXZOPZRK.js} +1 -1
- package/public/{chunk-BK65F7S6.js → chunk-YEKIPLS4.js} +1 -1
- package/public/{chunk-IJ7MVHXO.js → chunk-ZI6ZQBWP.js} +1 -1
- package/public/{chunk-FQWKFMCL.js → chunk-ZZZPD7N5.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-2QGKGFMT.js → main-RY7FDAHK.js} +15 -16
- package/public/chunk-2IGGX6BI.js +0 -8
- package/public/chunk-RPHEZR7W.js +0 -1
- package/public/chunk-VYP5YLKW.js +0 -4
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import{A as Rd,B as Nd,C as Ji,D as bn,E as Wd,F as Bd,G as zd,H as Vd,I as Ld,J as Fd,K as Hd,a as Qi,b as Ki,c as xo,d as vn,e as Ir,f as gi,g as Zi,h as Zt,i as Eo,j as Do,k as or,l as yn,m as Po,n as Mo,o as vi,p as Ka,q as Ao,r as Rr,s as Od,t as Za,u as Ja,v as es,w as ts,x as ar,y as Nr,z as Id}from"./chunk-IJ7MVHXO.js";import{b as jd,g as $d}from"./chunk-F5AFZMSJ.js";import{a as ct,b as Sd,c as So,d as nr,e as rr,f as Td,g as xd,h as Ed}from"./chunk-2IGGX6BI.js";import{d as kd}from"./chunk-BK65F7S6.js";import{a as Dd,b as Pd,c as Md,d as Ad,e as ko,f as To}from"./chunk-X2CUXUMC.js";import{a as ir}from"./chunk-GSG5IFZ7.js";import{a as Ud,b as Gd,c as qd}from"./chunk-KP4DUCFG.js";import{a as Co}from"./chunk-OGPSK2OV.js";import"./chunk-2GTOB75T.js";import"./chunk-UMSIBYU7.js";import{a as ql,b as jl,c as $l,d as Yl,e as Xl,f as Ql,g as Qn,h as Kl,i as go,k as Zl,l as Jl,m as ed,n as id,o as di,p as Pt}from"./chunk-PYQ6T3Y3.js";import{f as _d}from"./chunk-IMRKPLTP.js";import{a as Dt}from"./chunk-RPHEZR7W.js";import{a as Cd}from"./chunk-MRXTLXGU.js";import{a as Ei,b as Ll,c as Fl,d as Xn,e as po,g as fo,h as Ht,i as si,j as Kn,k as ie,l as Zn,m as li,n as Yi,o as td,p as Xi,x as wd}from"./chunk-VYP5YLKW.js";import{$ as Ln,$b as co,$c as Yn,$d as vo,$e as bd,Aa as Ke,Ac as Pe,Ae as Gt,Ba as fi,Bb as Ar,Bc as Me,Be as wo,Ca as Hi,Cc as Al,Da as Ui,Db as mt,Dc as Ol,De as Kt,Ea as oo,Eb as yt,Ec as Il,Ee as Ya,Fb as qi,Fc as ji,Fe as md,G as gl,Ge as pd,H as za,Hc as jn,Hd as Hl,I as vl,Ia as Ye,Id as Ul,J as yl,Jd as Gl,Je as Xa,K as Vn,Kd as pn,Lc as $n,Ld as Ut,Ma as Gi,Mb as Dl,Mc as uo,Na as Un,Nc as Rl,O as ro,Pa as it,Pc as ja,Pe as fd,Q as bl,Qa as Cl,Qb as ce,Qe as tr,R as Va,Rb as Ae,Rc as Et,Rd as Jn,Re as gd,S as La,Sb as Oe,Sc as xi,Se as Qa,Tb as Gn,Tc as be,Td as $a,U as _l,Va as Ga,Vb as ki,Wb as Ti,Wc as $i,Wd as nd,We as vd,Xb as j,Xc as G,Yb as v,Yc as Ce,Yd as rd,Zb as C,Zd as od,_ as Fa,_b as B,_c as Or,_e as yd,a as X,ac as ho,b as $e,c as pl,cc as ee,ce as yo,d as Ra,dd as mo,de as ad,e as Mr,ea as Ha,ec as F,ee as sd,f as Na,fc as re,fe as ld,g as no,ga as Qt,gb as ao,gc as ai,gd as Nl,ge as bo,ha as Ua,hb as so,hc as xt,he as dd,ic as mn,jb as Sl,jc as nt,ka as Fe,kb as D,kc as Ge,lc as qe,m as vt,mb as kl,me as cd,na as st,nb as Tl,nc as we,ne as hd,o as Fi,oa as ri,ob as lo,oc as Ze,oe as er,pb as Lt,pc as Pl,pd as Wl,qa as Fn,qc as xe,qe as _o,ra as Hn,rb as qa,rc as Ft,re as fn,sa as M,sb as xl,se as gn,t as fl,tc as qn,td as Bl,u as Wa,ua as wl,uc as P,vb as U,vc as rt,wb as oi,wc as pt,wd as zl,xb as Si,xc as Ml,y as Ba,ya as z,yb as El,yd as Vl,ye as ud,z as Xt,za as V,zb as pe,zc as De}from"./chunk-AERKQXJA.js";var ls=Ra(zo=>{(function(){"use strict";var r=function(){this.init()};r.prototype={init:function(){var s=this||n;return s._counter=1e3,s._html5AudioPool=[],s.html5PoolSize=10,s._codecs={},s._howls=[],s._muted=!1,s._volume=1,s._canPlayEvent="canplaythrough",s._navigator=typeof window<"u"&&window.navigator?window.navigator:null,s.masterGain=null,s.noAudio=!1,s.usingWebAudio=!0,s.autoSuspend=!0,s.ctx=null,s.autoUnlock=!0,s._setup(),s},volume:function(s){var c=this||n;if(s=parseFloat(s),c.ctx||f(),typeof s<"u"&&s>=0&&s<=1){if(c._volume=s,c._muted)return c;c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s,n.ctx.currentTime);for(var m=0;m<c._howls.length;m++)if(!c._howls[m]._webAudio)for(var y=c._howls[m]._getSoundIds(),_=0;_<y.length;_++){var T=c._howls[m]._soundById(y[_]);T&&T._node&&(T._node.volume=T._volume*s)}return c}return c._volume},mute:function(s){var c=this||n;c.ctx||f(),c._muted=s,c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s?0:c._volume,n.ctx.currentTime);for(var m=0;m<c._howls.length;m++)if(!c._howls[m]._webAudio)for(var y=c._howls[m]._getSoundIds(),_=0;_<y.length;_++){var T=c._howls[m]._soundById(y[_]);T&&T._node&&(T._node.muted=s?!0:T._muted)}return c},stop:function(){for(var s=this||n,c=0;c<s._howls.length;c++)s._howls[c].stop();return s},unload:function(){for(var s=this||n,c=s._howls.length-1;c>=0;c--)s._howls[c].unload();return s.usingWebAudio&&s.ctx&&typeof s.ctx.close<"u"&&(s.ctx.close(),s.ctx=null,f()),s},codecs:function(s){return(this||n)._codecs[s.replace(/^x-/,"")]},_setup:function(){var s=this||n;if(s.state=s.ctx&&s.ctx.state||"suspended",s._autoSuspend(),!s.usingWebAudio)if(typeof Audio<"u")try{var c=new Audio;typeof c.oncanplaythrough>"u"&&(s._canPlayEvent="canplay")}catch{s.noAudio=!0}else s.noAudio=!0;try{var c=new Audio;c.muted&&(s.noAudio=!0)}catch{}return s.noAudio||s._setupCodecs(),s},_setupCodecs:function(){var s=this||n,c=null;try{c=typeof Audio<"u"?new Audio:null}catch{return s}if(!c||typeof c.canPlayType!="function")return s;var m=c.canPlayType("audio/mpeg;").replace(/^no$/,""),y=s._navigator?s._navigator.userAgent:"",_=y.match(/OPR\/(\d+)/g),T=_&&parseInt(_[0].split("/")[1],10)<33,E=y.indexOf("Safari")!==-1&&y.indexOf("Chrome")===-1,L=y.match(/Version\/(.*?) /),Y=E&&L&&parseInt(L[1],10)<15;return s._codecs={mp3:!!(!T&&(m||c.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!m,opus:!!c.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(c.canPlayType('audio/wav; codecs="1"')||c.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!c.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!c.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(c.canPlayType("audio/x-m4a;")||c.canPlayType("audio/m4a;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(c.canPlayType("audio/x-m4b;")||c.canPlayType("audio/m4b;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(c.canPlayType("audio/x-mp4;")||c.canPlayType("audio/mp4;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!Y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!Y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!c.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(c.canPlayType("audio/x-flac;")||c.canPlayType("audio/flac;")).replace(/^no$/,"")},s},_unlockAudio:function(){var s=this||n;if(!(s._audioUnlocked||!s.ctx)){s._audioUnlocked=!1,s.autoUnlock=!1,!s._mobileUnloaded&&s.ctx.sampleRate!==44100&&(s._mobileUnloaded=!0,s.unload()),s._scratchBuffer=s.ctx.createBuffer(1,1,22050);var c=function(m){for(;s._html5AudioPool.length<s.html5PoolSize;)try{var y=new Audio;y._unlocked=!0,s._releaseHtml5Audio(y)}catch{s.noAudio=!0;break}for(var _=0;_<s._howls.length;_++)if(!s._howls[_]._webAudio)for(var T=s._howls[_]._getSoundIds(),E=0;E<T.length;E++){var L=s._howls[_]._soundById(T[E]);L&&L._node&&!L._node._unlocked&&(L._node._unlocked=!0,L._node.load())}s._autoResume();var Y=s.ctx.createBufferSource();Y.buffer=s._scratchBuffer,Y.connect(s.ctx.destination),typeof Y.start>"u"?Y.noteOn(0):Y.start(0),typeof s.ctx.resume=="function"&&s.ctx.resume(),Y.onended=function(){Y.disconnect(0),s._audioUnlocked=!0,document.removeEventListener("touchstart",c,!0),document.removeEventListener("touchend",c,!0),document.removeEventListener("click",c,!0),document.removeEventListener("keydown",c,!0);for(var te=0;te<s._howls.length;te++)s._howls[te]._emit("unlock")}};return document.addEventListener("touchstart",c,!0),document.addEventListener("touchend",c,!0),document.addEventListener("click",c,!0),document.addEventListener("keydown",c,!0),s}},_obtainHtml5Audio:function(){var s=this||n;if(s._html5AudioPool.length)return s._html5AudioPool.pop();var c=new Audio().play();return c&&typeof Promise<"u"&&(c instanceof Promise||typeof c.then=="function")&&c.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(s){var c=this||n;return s._unlocked&&c._html5AudioPool.push(s),c},_autoSuspend:function(){var s=this;if(!(!s.autoSuspend||!s.ctx||typeof s.ctx.suspend>"u"||!n.usingWebAudio)){for(var c=0;c<s._howls.length;c++)if(s._howls[c]._webAudio){for(var m=0;m<s._howls[c]._sounds.length;m++)if(!s._howls[c]._sounds[m]._paused)return s}return s._suspendTimer&&clearTimeout(s._suspendTimer),s._suspendTimer=setTimeout(function(){if(s.autoSuspend){s._suspendTimer=null,s.state="suspending";var y=function(){s.state="suspended",s._resumeAfterSuspend&&(delete s._resumeAfterSuspend,s._autoResume())};s.ctx.suspend().then(y,y)}},3e4),s}},_autoResume:function(){var s=this;if(!(!s.ctx||typeof s.ctx.resume>"u"||!n.usingWebAudio))return s.state==="running"&&s.ctx.state!=="interrupted"&&s._suspendTimer?(clearTimeout(s._suspendTimer),s._suspendTimer=null):s.state==="suspended"||s.state==="running"&&s.ctx.state==="interrupted"?(s.ctx.resume().then(function(){s.state="running";for(var c=0;c<s._howls.length;c++)s._howls[c]._emit("resume")}),s._suspendTimer&&(clearTimeout(s._suspendTimer),s._suspendTimer=null)):s.state==="suspending"&&(s._resumeAfterSuspend=!0),s}};var n=new r,e=function(s){var c=this;if(!s.src||s.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}c.init(s)};e.prototype={init:function(s){var c=this;return n.ctx||f(),c._autoplay=s.autoplay||!1,c._format=typeof s.format!="string"?s.format:[s.format],c._html5=s.html5||!1,c._muted=s.mute||!1,c._loop=s.loop||!1,c._pool=s.pool||5,c._preload=typeof s.preload=="boolean"||s.preload==="metadata"?s.preload:!0,c._rate=s.rate||1,c._sprite=s.sprite||{},c._src=typeof s.src!="string"?s.src:[s.src],c._volume=s.volume!==void 0?s.volume:1,c._xhr={method:s.xhr&&s.xhr.method?s.xhr.method:"GET",headers:s.xhr&&s.xhr.headers?s.xhr.headers:null,withCredentials:s.xhr&&s.xhr.withCredentials?s.xhr.withCredentials:!1},c._duration=0,c._state="unloaded",c._sounds=[],c._endTimers={},c._queue=[],c._playLock=!1,c._onend=s.onend?[{fn:s.onend}]:[],c._onfade=s.onfade?[{fn:s.onfade}]:[],c._onload=s.onload?[{fn:s.onload}]:[],c._onloaderror=s.onloaderror?[{fn:s.onloaderror}]:[],c._onplayerror=s.onplayerror?[{fn:s.onplayerror}]:[],c._onpause=s.onpause?[{fn:s.onpause}]:[],c._onplay=s.onplay?[{fn:s.onplay}]:[],c._onstop=s.onstop?[{fn:s.onstop}]:[],c._onmute=s.onmute?[{fn:s.onmute}]:[],c._onvolume=s.onvolume?[{fn:s.onvolume}]:[],c._onrate=s.onrate?[{fn:s.onrate}]:[],c._onseek=s.onseek?[{fn:s.onseek}]:[],c._onunlock=s.onunlock?[{fn:s.onunlock}]:[],c._onresume=[],c._webAudio=n.usingWebAudio&&!c._html5,typeof n.ctx<"u"&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(c),c._autoplay&&c._queue.push({event:"play",action:function(){c.play()}}),c._preload&&c._preload!=="none"&&c.load(),c},load:function(){var s=this,c=null;if(n.noAudio){s._emit("loaderror",null,"No audio support.");return}typeof s._src=="string"&&(s._src=[s._src]);for(var m=0;m<s._src.length;m++){var y,_;if(s._format&&s._format[m])y=s._format[m];else{if(_=s._src[m],typeof _!="string"){s._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}y=/^data:audio\/([^;,]+);/i.exec(_),y||(y=/\.([^.]+)$/.exec(_.split("?",1)[0])),y&&(y=y[1].toLowerCase())}if(y||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),y&&n.codecs(y)){c=s._src[m];break}}if(!c){s._emit("loaderror",null,"No codec support for selected audio sources.");return}return s._src=c,s._state="loading",window.location.protocol==="https:"&&c.slice(0,5)==="http:"&&(s._html5=!0,s._webAudio=!1),new t(s),s._webAudio&&o(s),s},play:function(s,c){var m=this,y=null;if(typeof s=="number")y=s,s=null;else{if(typeof s=="string"&&m._state==="loaded"&&!m._sprite[s])return null;if(typeof s>"u"&&(s="__default",!m._playLock)){for(var _=0,T=0;T<m._sounds.length;T++)m._sounds[T]._paused&&!m._sounds[T]._ended&&(_++,y=m._sounds[T]._id);_===1?s=null:y=null}}var E=y?m._soundById(y):m._inactiveSound();if(!E)return null;if(y&&!s&&(s=E._sprite||"__default"),m._state!=="loaded"){E._sprite=s,E._ended=!1;var L=E._id;return m._queue.push({event:"play",action:function(){m.play(L)}}),L}if(y&&!E._paused)return c||m._loadQueue("play"),E._id;m._webAudio&&n._autoResume();var Y=Math.max(0,E._seek>0?E._seek:m._sprite[s][0]/1e3),te=Math.max(0,(m._sprite[s][0]+m._sprite[s][1])/1e3-Y),_e=te*1e3/Math.abs(E._rate),He=m._sprite[s][0]/1e3,je=(m._sprite[s][0]+m._sprite[s][1])/1e3;E._sprite=s,E._ended=!1;var Je=function(){E._paused=!1,E._seek=Y,E._start=He,E._stop=je,E._loop=!!(E._loop||m._sprite[s][2])};if(Y>=je){m._ended(E);return}var se=E._node;if(m._webAudio){var ht=function(){m._playLock=!1,Je(),m._refreshBuffer(E);var ut=E._muted||m._muted?0:E._volume;se.gain.setValueAtTime(ut,n.ctx.currentTime),E._playStart=n.ctx.currentTime,typeof se.bufferSource.start>"u"?E._loop?se.bufferSource.noteGrainOn(0,Y,86400):se.bufferSource.noteGrainOn(0,Y,te):E._loop?se.bufferSource.start(0,Y,86400):se.bufferSource.start(0,Y,te),_e!==1/0&&(m._endTimers[E._id]=setTimeout(m._ended.bind(m,E),_e)),c||setTimeout(function(){m._emit("play",E._id),m._loadQueue()},0)};n.state==="running"&&n.ctx.state!=="interrupted"?ht():(m._playLock=!0,m.once("resume",ht),m._clearTimer(E._id))}else{var lt=function(){se.currentTime=Y,se.muted=E._muted||m._muted||n._muted||se.muted,se.volume=E._volume*n.volume(),se.playbackRate=E._rate;try{var ut=se.play();if(ut&&typeof Promise<"u"&&(ut instanceof Promise||typeof ut.then=="function")?(m._playLock=!0,Je(),ut.then(function(){m._playLock=!1,se._unlocked=!0,c?m._loadQueue():m._emit("play",E._id)}).catch(function(){m._playLock=!1,m._emit("playerror",E._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),E._ended=!0,E._paused=!0})):c||(m._playLock=!1,Je(),m._emit("play",E._id)),se.playbackRate=E._rate,se.paused){m._emit("playerror",E._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}s!=="__default"||E._loop?m._endTimers[E._id]=setTimeout(m._ended.bind(m,E),_e):(m._endTimers[E._id]=function(){m._ended(E),se.removeEventListener("ended",m._endTimers[E._id],!1)},se.addEventListener("ended",m._endTimers[E._id],!1))}catch(At){m._emit("playerror",E._id,At)}};se.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(se.src=m._src,se.load());var Wt=window&&window.ejecta||!se.readyState&&n._navigator.isCocoonJS;if(se.readyState>=3||Wt)lt();else{m._playLock=!0,m._state="loading";var ft=function(){m._state="loaded",lt(),se.removeEventListener(n._canPlayEvent,ft,!1)};se.addEventListener(n._canPlayEvent,ft,!1),m._clearTimer(E._id)}}return E._id},pause:function(s){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"pause",action:function(){c.pause(s)}}),c;for(var m=c._getSoundIds(s),y=0;y<m.length;y++){c._clearTimer(m[y]);var _=c._soundById(m[y]);if(_&&!_._paused&&(_._seek=c.seek(m[y]),_._rateSeek=0,_._paused=!0,c._stopFade(m[y]),_._node))if(c._webAudio){if(!_._node.bufferSource)continue;typeof _._node.bufferSource.stop>"u"?_._node.bufferSource.noteOff(0):_._node.bufferSource.stop(0),c._cleanBuffer(_._node)}else(!isNaN(_._node.duration)||_._node.duration===1/0)&&_._node.pause();arguments[1]||c._emit("pause",_?_._id:null)}return c},stop:function(s,c){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"stop",action:function(){m.stop(s)}}),m;for(var y=m._getSoundIds(s),_=0;_<y.length;_++){m._clearTimer(y[_]);var T=m._soundById(y[_]);T&&(T._seek=T._start||0,T._rateSeek=0,T._paused=!0,T._ended=!0,m._stopFade(y[_]),T._node&&(m._webAudio?T._node.bufferSource&&(typeof T._node.bufferSource.stop>"u"?T._node.bufferSource.noteOff(0):T._node.bufferSource.stop(0),m._cleanBuffer(T._node)):(!isNaN(T._node.duration)||T._node.duration===1/0)&&(T._node.currentTime=T._start||0,T._node.pause(),T._node.duration===1/0&&m._clearSound(T._node))),c||m._emit("stop",T._id))}return m},mute:function(s,c){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"mute",action:function(){m.mute(s,c)}}),m;if(typeof c>"u")if(typeof s=="boolean")m._muted=s;else return m._muted;for(var y=m._getSoundIds(c),_=0;_<y.length;_++){var T=m._soundById(y[_]);T&&(T._muted=s,T._interval&&m._stopFade(T._id),m._webAudio&&T._node?T._node.gain.setValueAtTime(s?0:T._volume,n.ctx.currentTime):T._node&&(T._node.muted=n._muted?!0:s),m._emit("mute",T._id))}return m},volume:function(){var s=this,c=arguments,m,y;if(c.length===0)return s._volume;if(c.length===1||c.length===2&&typeof c[1]>"u"){var _=s._getSoundIds(),T=_.indexOf(c[0]);T>=0?y=parseInt(c[0],10):m=parseFloat(c[0])}else c.length>=2&&(m=parseFloat(c[0]),y=parseInt(c[1],10));var E;if(typeof m<"u"&&m>=0&&m<=1){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"volume",action:function(){s.volume.apply(s,c)}}),s;typeof y>"u"&&(s._volume=m),y=s._getSoundIds(y);for(var L=0;L<y.length;L++)E=s._soundById(y[L]),E&&(E._volume=m,c[2]||s._stopFade(y[L]),s._webAudio&&E._node&&!E._muted?E._node.gain.setValueAtTime(m,n.ctx.currentTime):E._node&&!E._muted&&(E._node.volume=m*n.volume()),s._emit("volume",E._id))}else return E=y?s._soundById(y):s._sounds[0],E?E._volume:0;return s},fade:function(s,c,m,y){var _=this;if(_._state!=="loaded"||_._playLock)return _._queue.push({event:"fade",action:function(){_.fade(s,c,m,y)}}),_;s=Math.min(Math.max(0,parseFloat(s)),1),c=Math.min(Math.max(0,parseFloat(c)),1),m=parseFloat(m),_.volume(s,y);for(var T=_._getSoundIds(y),E=0;E<T.length;E++){var L=_._soundById(T[E]);if(L){if(y||_._stopFade(T[E]),_._webAudio&&!L._muted){var Y=n.ctx.currentTime,te=Y+m/1e3;L._volume=s,L._node.gain.setValueAtTime(s,Y),L._node.gain.linearRampToValueAtTime(c,te)}_._startFadeInterval(L,s,c,m,T[E],typeof y>"u")}}return _},_startFadeInterval:function(s,c,m,y,_,T){var E=this,L=c,Y=m-c,te=Math.abs(Y/.01),_e=Math.max(4,te>0?y/te:y),He=Date.now();s._fadeTo=m,s._interval=setInterval(function(){var je=(Date.now()-He)/y;He=Date.now(),L+=Y*je,L=Math.round(L*100)/100,Y<0?L=Math.max(m,L):L=Math.min(m,L),E._webAudio?s._volume=L:E.volume(L,s._id,!0),T&&(E._volume=L),(m<c&&L<=m||m>c&&L>=m)&&(clearInterval(s._interval),s._interval=null,s._fadeTo=null,E.volume(m,s._id),E._emit("fade",s._id))},_e)},_stopFade:function(s){var c=this,m=c._soundById(s);return m&&m._interval&&(c._webAudio&&m._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(m._interval),m._interval=null,c.volume(m._fadeTo,s),m._fadeTo=null,c._emit("fade",s)),c},loop:function(){var s=this,c=arguments,m,y,_;if(c.length===0)return s._loop;if(c.length===1)if(typeof c[0]=="boolean")m=c[0],s._loop=m;else return _=s._soundById(parseInt(c[0],10)),_?_._loop:!1;else c.length===2&&(m=c[0],y=parseInt(c[1],10));for(var T=s._getSoundIds(y),E=0;E<T.length;E++)_=s._soundById(T[E]),_&&(_._loop=m,s._webAudio&&_._node&&_._node.bufferSource&&(_._node.bufferSource.loop=m,m&&(_._node.bufferSource.loopStart=_._start||0,_._node.bufferSource.loopEnd=_._stop,s.playing(T[E])&&(s.pause(T[E],!0),s.play(T[E],!0)))));return s},rate:function(){var s=this,c=arguments,m,y;if(c.length===0)y=s._sounds[0]._id;else if(c.length===1){var _=s._getSoundIds(),T=_.indexOf(c[0]);T>=0?y=parseInt(c[0],10):m=parseFloat(c[0])}else c.length===2&&(m=parseFloat(c[0]),y=parseInt(c[1],10));var E;if(typeof m=="number"){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"rate",action:function(){s.rate.apply(s,c)}}),s;typeof y>"u"&&(s._rate=m),y=s._getSoundIds(y);for(var L=0;L<y.length;L++)if(E=s._soundById(y[L]),E){s.playing(y[L])&&(E._rateSeek=s.seek(y[L]),E._playStart=s._webAudio?n.ctx.currentTime:E._playStart),E._rate=m,s._webAudio&&E._node&&E._node.bufferSource?E._node.bufferSource.playbackRate.setValueAtTime(m,n.ctx.currentTime):E._node&&(E._node.playbackRate=m);var Y=s.seek(y[L]),te=(s._sprite[E._sprite][0]+s._sprite[E._sprite][1])/1e3-Y,_e=te*1e3/Math.abs(E._rate);(s._endTimers[y[L]]||!E._paused)&&(s._clearTimer(y[L]),s._endTimers[y[L]]=setTimeout(s._ended.bind(s,E),_e)),s._emit("rate",E._id)}}else return E=s._soundById(y),E?E._rate:s._rate;return s},seek:function(){var s=this,c=arguments,m,y;if(c.length===0)s._sounds.length&&(y=s._sounds[0]._id);else if(c.length===1){var _=s._getSoundIds(),T=_.indexOf(c[0]);T>=0?y=parseInt(c[0],10):s._sounds.length&&(y=s._sounds[0]._id,m=parseFloat(c[0]))}else c.length===2&&(m=parseFloat(c[0]),y=parseInt(c[1],10));if(typeof y>"u")return 0;if(typeof m=="number"&&(s._state!=="loaded"||s._playLock))return s._queue.push({event:"seek",action:function(){s.seek.apply(s,c)}}),s;var E=s._soundById(y);if(E)if(typeof m=="number"&&m>=0){var L=s.playing(y);L&&s.pause(y,!0),E._seek=m,E._ended=!1,s._clearTimer(y),!s._webAudio&&E._node&&!isNaN(E._node.duration)&&(E._node.currentTime=m);var Y=function(){L&&s.play(y,!0),s._emit("seek",y)};if(L&&!s._webAudio){var te=function(){s._playLock?setTimeout(te,0):Y()};setTimeout(te,0)}else Y()}else if(s._webAudio){var _e=s.playing(y)?n.ctx.currentTime-E._playStart:0,He=E._rateSeek?E._rateSeek-E._seek:0;return E._seek+(He+_e*Math.abs(E._rate))}else return E._node.currentTime;return s},playing:function(s){var c=this;if(typeof s=="number"){var m=c._soundById(s);return m?!m._paused:!1}for(var y=0;y<c._sounds.length;y++)if(!c._sounds[y]._paused)return!0;return!1},duration:function(s){var c=this,m=c._duration,y=c._soundById(s);return y&&(m=c._sprite[y._sprite][1]/1e3),m},state:function(){return this._state},unload:function(){for(var s=this,c=s._sounds,m=0;m<c.length;m++)c[m]._paused||s.stop(c[m]._id),s._webAudio||(s._clearSound(c[m]._node),c[m]._node.removeEventListener("error",c[m]._errorFn,!1),c[m]._node.removeEventListener(n._canPlayEvent,c[m]._loadFn,!1),c[m]._node.removeEventListener("ended",c[m]._endFn,!1),n._releaseHtml5Audio(c[m]._node)),delete c[m]._node,s._clearTimer(c[m]._id);var y=n._howls.indexOf(s);y>=0&&n._howls.splice(y,1);var _=!0;for(m=0;m<n._howls.length;m++)if(n._howls[m]._src===s._src||s._src.indexOf(n._howls[m]._src)>=0){_=!1;break}return i&&_&&delete i[s._src],n.noAudio=!1,s._state="unloaded",s._sounds=[],s=null,null},on:function(s,c,m,y){var _=this,T=_["_on"+s];return typeof c=="function"&&T.push(y?{id:m,fn:c,once:y}:{id:m,fn:c}),_},off:function(s,c,m){var y=this,_=y["_on"+s],T=0;if(typeof c=="number"&&(m=c,c=null),c||m)for(T=0;T<_.length;T++){var E=m===_[T].id;if(c===_[T].fn&&E||!c&&E){_.splice(T,1);break}}else if(s)y["_on"+s]=[];else{var L=Object.keys(y);for(T=0;T<L.length;T++)L[T].indexOf("_on")===0&&Array.isArray(y[L[T]])&&(y[L[T]]=[])}return y},once:function(s,c,m){var y=this;return y.on(s,c,m,1),y},_emit:function(s,c,m){for(var y=this,_=y["_on"+s],T=_.length-1;T>=0;T--)(!_[T].id||_[T].id===c||s==="load")&&(setTimeout((function(E){E.call(this,c,m)}).bind(y,_[T].fn),0),_[T].once&&y.off(s,_[T].fn,_[T].id));return y._loadQueue(s),y},_loadQueue:function(s){var c=this;if(c._queue.length>0){var m=c._queue[0];m.event===s&&(c._queue.shift(),c._loadQueue()),s||m.action()}return c},_ended:function(s){var c=this,m=s._sprite;if(!c._webAudio&&s._node&&!s._node.paused&&!s._node.ended&&s._node.currentTime<s._stop)return setTimeout(c._ended.bind(c,s),100),c;var y=!!(s._loop||c._sprite[m][2]);if(c._emit("end",s._id),!c._webAudio&&y&&c.stop(s._id,!0).play(s._id),c._webAudio&&y){c._emit("play",s._id),s._seek=s._start||0,s._rateSeek=0,s._playStart=n.ctx.currentTime;var _=(s._stop-s._start)*1e3/Math.abs(s._rate);c._endTimers[s._id]=setTimeout(c._ended.bind(c,s),_)}return c._webAudio&&!y&&(s._paused=!0,s._ended=!0,s._seek=s._start||0,s._rateSeek=0,c._clearTimer(s._id),c._cleanBuffer(s._node),n._autoSuspend()),!c._webAudio&&!y&&c.stop(s._id,!0),c},_clearTimer:function(s){var c=this;if(c._endTimers[s]){if(typeof c._endTimers[s]!="function")clearTimeout(c._endTimers[s]);else{var m=c._soundById(s);m&&m._node&&m._node.removeEventListener("ended",c._endTimers[s],!1)}delete c._endTimers[s]}return c},_soundById:function(s){for(var c=this,m=0;m<c._sounds.length;m++)if(s===c._sounds[m]._id)return c._sounds[m];return null},_inactiveSound:function(){var s=this;s._drain();for(var c=0;c<s._sounds.length;c++)if(s._sounds[c]._ended)return s._sounds[c].reset();return new t(s)},_drain:function(){var s=this,c=s._pool,m=0,y=0;if(!(s._sounds.length<c)){for(y=0;y<s._sounds.length;y++)s._sounds[y]._ended&&m++;for(y=s._sounds.length-1;y>=0;y--){if(m<=c)return;s._sounds[y]._ended&&(s._webAudio&&s._sounds[y]._node&&s._sounds[y]._node.disconnect(0),s._sounds.splice(y,1),m--)}}},_getSoundIds:function(s){var c=this;if(typeof s>"u"){for(var m=[],y=0;y<c._sounds.length;y++)m.push(c._sounds[y]._id);return m}else return[s]},_refreshBuffer:function(s){var c=this;return s._node.bufferSource=n.ctx.createBufferSource(),s._node.bufferSource.buffer=i[c._src],s._panner?s._node.bufferSource.connect(s._panner):s._node.bufferSource.connect(s._node),s._node.bufferSource.loop=s._loop,s._loop&&(s._node.bufferSource.loopStart=s._start||0,s._node.bufferSource.loopEnd=s._stop||0),s._node.bufferSource.playbackRate.setValueAtTime(s._rate,n.ctx.currentTime),c},_cleanBuffer:function(s){var c=this,m=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(!s.bufferSource)return c;if(n._scratchBuffer&&s.bufferSource&&(s.bufferSource.onended=null,s.bufferSource.disconnect(0),m))try{s.bufferSource.buffer=n._scratchBuffer}catch{}return s.bufferSource=null,c},_clearSound:function(s){var c=/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent);c||(s.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(s){this._parent=s,this.init()};t.prototype={init:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++n._counter,c._sounds.push(s),s.create(),s},create:function(){var s=this,c=s._parent,m=n._muted||s._muted||s._parent._muted?0:s._volume;return c._webAudio?(s._node=typeof n.ctx.createGain>"u"?n.ctx.createGainNode():n.ctx.createGain(),s._node.gain.setValueAtTime(m,n.ctx.currentTime),s._node.paused=!0,s._node.connect(n.masterGain)):n.noAudio||(s._node=n._obtainHtml5Audio(),s._errorFn=s._errorListener.bind(s),s._node.addEventListener("error",s._errorFn,!1),s._loadFn=s._loadListener.bind(s),s._node.addEventListener(n._canPlayEvent,s._loadFn,!1),s._endFn=s._endListener.bind(s),s._node.addEventListener("ended",s._endFn,!1),s._node.src=c._src,s._node.preload=c._preload===!0?"auto":c._preload,s._node.volume=m*n.volume(),s._node.load()),s},reset:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._rateSeek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++n._counter,s},_errorListener:function(){var s=this;s._parent._emit("loaderror",s._id,s._node.error?s._node.error.code:0),s._node.removeEventListener("error",s._errorFn,!1)},_loadListener:function(){var s=this,c=s._parent;c._duration=Math.ceil(s._node.duration*10)/10,Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue()),s._node.removeEventListener(n._canPlayEvent,s._loadFn,!1)},_endListener:function(){var s=this,c=s._parent;c._duration===1/0&&(c._duration=Math.ceil(s._node.duration*10)/10,c._sprite.__default[1]===1/0&&(c._sprite.__default[1]=c._duration*1e3),c._ended(s)),s._node.removeEventListener("ended",s._endFn,!1)}};var i={},o=function(s){var c=s._src;if(i[c]){s._duration=i[c].duration,d(s);return}if(/^data:[^;]+;base64,/.test(c)){for(var m=atob(c.split(",")[1]),y=new Uint8Array(m.length),_=0;_<m.length;++_)y[_]=m.charCodeAt(_);l(y.buffer,s)}else{var T=new XMLHttpRequest;T.open(s._xhr.method,c,!0),T.withCredentials=s._xhr.withCredentials,T.responseType="arraybuffer",s._xhr.headers&&Object.keys(s._xhr.headers).forEach(function(E){T.setRequestHeader(E,s._xhr.headers[E])}),T.onload=function(){var E=(T.status+"")[0];if(E!=="0"&&E!=="2"&&E!=="3"){s._emit("loaderror",null,"Failed loading audio file with status: "+T.status+".");return}l(T.response,s)},T.onerror=function(){s._webAudio&&(s._html5=!0,s._webAudio=!1,s._sounds=[],delete i[c],s.load())},a(T)}},a=function(s){try{s.send()}catch{s.onerror()}},l=function(s,c){var m=function(){c._emit("loaderror",null,"Decoding audio data failed.")},y=function(_){_&&c._sounds.length>0?(i[c._src]=_,d(c,_)):m()};typeof Promise<"u"&&n.ctx.decodeAudioData.length===1?n.ctx.decodeAudioData(s).then(y).catch(m):n.ctx.decodeAudioData(s,y,m)},d=function(s,c){c&&!s._duration&&(s._duration=c.duration),Object.keys(s._sprite).length===0&&(s._sprite={__default:[0,s._duration*1e3]}),s._state!=="loaded"&&(s._state="loaded",s._emit("load"),s._loadQueue())},f=function(){if(n.usingWebAudio){try{typeof AudioContext<"u"?n.ctx=new AudioContext:typeof webkitAudioContext<"u"?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch{n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var s=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),c=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),m=c?parseInt(c[1],10):null;if(s&&m&&m<9){var y=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!y&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=typeof n.ctx.createGain>"u"?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:n,Howl:e}}),typeof zo<"u"&&(zo.Howler=n,zo.Howl=e),typeof global<"u"?(global.HowlerGlobal=r,global.Howler=n,global.Howl=e,global.Sound=t):typeof window<"u"&&(window.HowlerGlobal=r,window.Howler=n,window.Howl=e,window.Sound=t)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(n){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var t=e._howls.length-1;t>=0;t--)e._howls[t].stereo(n);return e},HowlerGlobal.prototype.pos=function(n,e,t){var i=this;if(!i.ctx||!i.ctx.listener)return i;if(e=typeof e!="number"?i._pos[1]:e,t=typeof t!="number"?i._pos[2]:t,typeof n=="number")i._pos=[n,e,t],typeof i.ctx.listener.positionX<"u"?(i.ctx.listener.positionX.setTargetAtTime(i._pos[0],Howler.ctx.currentTime,.1),i.ctx.listener.positionY.setTargetAtTime(i._pos[1],Howler.ctx.currentTime,.1),i.ctx.listener.positionZ.setTargetAtTime(i._pos[2],Howler.ctx.currentTime,.1)):i.ctx.listener.setPosition(i._pos[0],i._pos[1],i._pos[2]);else return i._pos;return i},HowlerGlobal.prototype.orientation=function(n,e,t,i,o,a){var l=this;if(!l.ctx||!l.ctx.listener)return l;var d=l._orientation;if(e=typeof e!="number"?d[1]:e,t=typeof t!="number"?d[2]:t,i=typeof i!="number"?d[3]:i,o=typeof o!="number"?d[4]:o,a=typeof a!="number"?d[5]:a,typeof n=="number")l._orientation=[n,e,t,i,o,a],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(n,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(n,e,t,i,o,a);else return d;return l},Howl.prototype.init=function(n){return function(e){var t=this;return t._orientation=e.orientation||[1,0,0],t._stereo=e.stereo||null,t._pos=e.pos||null,t._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},t._onstereo=e.onstereo?[{fn:e.onstereo}]:[],t._onpos=e.onpos?[{fn:e.onpos}]:[],t._onorientation=e.onorientation?[{fn:e.onorientation}]:[],n.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,e){var t=this;if(!t._webAudio)return t;if(t._state!=="loaded")return t._queue.push({event:"stereo",action:function(){t.stereo(n,e)}}),t;var i=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof n=="number")t._stereo=n,t._pos=[n,0,0];else return t._stereo;for(var o=t._getSoundIds(e),a=0;a<o.length;a++){var l=t._soundById(o[a]);if(l)if(typeof n=="number")l._stereo=n,l._pos=[n,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&r(l,i),i==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(n,0,0):l._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),t._emit("stereo",l._id);else return l._stereo}return t},Howl.prototype.pos=function(n,e,t,i){var o=this;if(!o._webAudio)return o;if(o._state!=="loaded")return o._queue.push({event:"pos",action:function(){o.pos(n,e,t,i)}}),o;if(e=typeof e!="number"?0:e,t=typeof t!="number"?-.5:t,typeof i>"u")if(typeof n=="number")o._pos=[n,e,t];else return o._pos;for(var a=o._getSoundIds(i),l=0;l<a.length;l++){var d=o._soundById(a[l]);if(d)if(typeof n=="number")d._pos=[n,e,t],d._node&&((!d._panner||d._panner.pan)&&r(d,"spatial"),typeof d._panner.positionX<"u"?(d._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),d._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),d._panner.positionZ.setValueAtTime(t,Howler.ctx.currentTime)):d._panner.setPosition(n,e,t)),o._emit("pos",d._id);else return d._pos}return o},Howl.prototype.orientation=function(n,e,t,i){var o=this;if(!o._webAudio)return o;if(o._state!=="loaded")return o._queue.push({event:"orientation",action:function(){o.orientation(n,e,t,i)}}),o;if(e=typeof e!="number"?o._orientation[1]:e,t=typeof t!="number"?o._orientation[2]:t,typeof i>"u")if(typeof n=="number")o._orientation=[n,e,t];else return o._orientation;for(var a=o._getSoundIds(i),l=0;l<a.length;l++){var d=o._soundById(a[l]);if(d)if(typeof n=="number")d._orientation=[n,e,t],d._node&&(d._panner||(d._pos||(d._pos=o._pos||[0,0,-.5]),r(d,"spatial")),typeof d._panner.orientationX<"u"?(d._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),d._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),d._panner.orientationZ.setValueAtTime(t,Howler.ctx.currentTime)):d._panner.setOrientation(n,e,t)),o._emit("orientation",d._id);else return d._orientation}return o},Howl.prototype.pannerAttr=function(){var n=this,e=arguments,t,i,o;if(!n._webAudio)return n;if(e.length===0)return n._pannerAttr;if(e.length===1)if(typeof e[0]=="object")t=e[0],typeof i>"u"&&(t.pannerAttr||(t.pannerAttr={coneInnerAngle:t.coneInnerAngle,coneOuterAngle:t.coneOuterAngle,coneOuterGain:t.coneOuterGain,distanceModel:t.distanceModel,maxDistance:t.maxDistance,refDistance:t.refDistance,rolloffFactor:t.rolloffFactor,panningModel:t.panningModel}),n._pannerAttr={coneInnerAngle:typeof t.pannerAttr.coneInnerAngle<"u"?t.pannerAttr.coneInnerAngle:n._coneInnerAngle,coneOuterAngle:typeof t.pannerAttr.coneOuterAngle<"u"?t.pannerAttr.coneOuterAngle:n._coneOuterAngle,coneOuterGain:typeof t.pannerAttr.coneOuterGain<"u"?t.pannerAttr.coneOuterGain:n._coneOuterGain,distanceModel:typeof t.pannerAttr.distanceModel<"u"?t.pannerAttr.distanceModel:n._distanceModel,maxDistance:typeof t.pannerAttr.maxDistance<"u"?t.pannerAttr.maxDistance:n._maxDistance,refDistance:typeof t.pannerAttr.refDistance<"u"?t.pannerAttr.refDistance:n._refDistance,rolloffFactor:typeof t.pannerAttr.rolloffFactor<"u"?t.pannerAttr.rolloffFactor:n._rolloffFactor,panningModel:typeof t.pannerAttr.panningModel<"u"?t.pannerAttr.panningModel:n._panningModel});else return o=n._soundById(parseInt(e[0],10)),o?o._pannerAttr:n._pannerAttr;else e.length===2&&(t=e[0],i=parseInt(e[1],10));for(var a=n._getSoundIds(i),l=0;l<a.length;l++)if(o=n._soundById(a[l]),o){var d=o._pannerAttr;d={coneInnerAngle:typeof t.coneInnerAngle<"u"?t.coneInnerAngle:d.coneInnerAngle,coneOuterAngle:typeof t.coneOuterAngle<"u"?t.coneOuterAngle:d.coneOuterAngle,coneOuterGain:typeof t.coneOuterGain<"u"?t.coneOuterGain:d.coneOuterGain,distanceModel:typeof t.distanceModel<"u"?t.distanceModel:d.distanceModel,maxDistance:typeof t.maxDistance<"u"?t.maxDistance:d.maxDistance,refDistance:typeof t.refDistance<"u"?t.refDistance:d.refDistance,rolloffFactor:typeof t.rolloffFactor<"u"?t.rolloffFactor:d.rolloffFactor,panningModel:typeof t.panningModel<"u"?t.panningModel:d.panningModel};var f=o._panner;f||(o._pos||(o._pos=n._pos||[0,0,-.5]),r(o,"spatial"),f=o._panner),f.coneInnerAngle=d.coneInnerAngle,f.coneOuterAngle=d.coneOuterAngle,f.coneOuterGain=d.coneOuterGain,f.distanceModel=d.distanceModel,f.maxDistance=d.maxDistance,f.refDistance=d.refDistance,f.rolloffFactor=d.rolloffFactor,f.panningModel=d.panningModel}return n},Sound.prototype.init=function(n){return function(){var e=this,t=e._parent;e._orientation=t._orientation,e._stereo=t._stereo,e._pos=t._pos,e._pannerAttr=t._pannerAttr,n.call(this),e._stereo?t.stereo(e._stereo):e._pos&&t.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(n){return function(){var e=this,t=e._parent;return e._orientation=t._orientation,e._stereo=t._stereo,e._pos=t._pos,e._pannerAttr=t._pannerAttr,e._stereo?t.stereo(e._stereo):e._pos?t.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,t._refreshBuffer(e)),n.call(this)}}(Sound.prototype.reset);var r=function(n,e){e=e||"spatial",e==="spatial"?(n._panner=Howler.ctx.createPanner(),n._panner.coneInnerAngle=n._pannerAttr.coneInnerAngle,n._panner.coneOuterAngle=n._pannerAttr.coneOuterAngle,n._panner.coneOuterGain=n._pannerAttr.coneOuterGain,n._panner.distanceModel=n._pannerAttr.distanceModel,n._panner.maxDistance=n._pannerAttr.maxDistance,n._panner.refDistance=n._pannerAttr.refDistance,n._panner.rolloffFactor=n._pannerAttr.rolloffFactor,n._panner.panningModel=n._pannerAttr.panningModel,typeof n._panner.positionX<"u"?(n._panner.positionX.setValueAtTime(n._pos[0],Howler.ctx.currentTime),n._panner.positionY.setValueAtTime(n._pos[1],Howler.ctx.currentTime),n._panner.positionZ.setValueAtTime(n._pos[2],Howler.ctx.currentTime)):n._panner.setPosition(n._pos[0],n._pos[1],n._pos[2]),typeof n._panner.orientationX<"u"?(n._panner.orientationX.setValueAtTime(n._orientation[0],Howler.ctx.currentTime),n._panner.orientationY.setValueAtTime(n._orientation[1],Howler.ctx.currentTime),n._panner.orientationZ.setValueAtTime(n._orientation[2],Howler.ctx.currentTime)):n._panner.setOrientation(n._orientation[0],n._orientation[1],n._orientation[2])):(n._panner=Howler.ctx.createStereoPanner(),n._panner.pan.setValueAtTime(n._stereo,Howler.ctx.currentTime)),n._panner.connect(n._node),n._paused||n._parent.pause(n._id,!0).play(n._id,!0)}})()});var ks=Ra((IC,Qo)=>{(function(r){"use strict";function n(u){if(Array.isArray(u)){for(var h=0,p=Array(u.length);h<u.length;h++)p[h]=u[h];return p}return Array.from(u)}function e(u,h){if(!u)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!h||typeof h!="object"&&typeof h!="function"?u:h}function t(u,h){if(typeof h!="function"&&h!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof h);u.prototype=Object.create(h&&h.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}}),h&&(Object.setPrototypeOf?Object.setPrototypeOf(u,h):u.__proto__=h)}function i(u,h){if(!(u instanceof h))throw new TypeError("Cannot call a class as a function")}function o(u,h){if(h||(h=typeof window>"u"?global:window),h[u]!==void 0)return h[u];if(Ai===null){var p=window.getComputedStyle(document.documentElement,"");Ai=(Array.prototype.slice.call(p).join("").match(/-(moz|webkit|ms)-/)||p.OLink===""&&["","o"]||["",""])[1]}if(Ai==="")return null;var w=u.charAt(0).toUpperCase()+u.substr(1),k=h[Ai+w];return k!==void 0?k:null}function a(u,h,p,w,k,x,O){if(typeof w!="function")throw new TypeError("Invalid animation rule:",w);var N=u-p,R=N/k,W=0;R>1&&(R=1),R!==1&&(W=w(R),isFinite(W)&&!isNaN(W)&&(R=W)),h&&h(R),N<k?O.frame=Jr(function(q){return a(q,h,p,w,k,x,O)}):(x&&x(),O.inProgress=!1)}function l(){Array.prototype.constructor.apply(this,arguments)}function d(u){if(!(u instanceof DOMException&&u.result===2152923147))throw u}function f(u,h){return h.replace(Pa,function(p,w){var k=u[w];return k!==void 0?k:p})}function s(u){return u.majorTicks instanceof Array||(u.majorTicks=u.majorTicks?[u.majorTicks]:[]),u.majorTicks.length||(u.majorTicks.push(Z.formatMajorTickNumber(u.minValue,u)),u.majorTicks.push(Z.formatMajorTickNumber(u.maxValue,u))),[u.tickSide!=="right",u.tickSide!=="left"]}function c(u,h,p,w,k,x){u.beginPath(),u.moveTo(h+x,p),u.lineTo(h+w-x,p),u.quadraticCurveTo(h+w,p,h+w,p+x),u.lineTo(h+w,p+k-x),u.quadraticCurveTo(h+w,p+k,h+w-x,p+k),u.lineTo(h+x,p+k),u.quadraticCurveTo(h,p+k,h,p+k-x),u.lineTo(h,p+x),u.quadraticCurveTo(h,p,h+x,p),u.closePath()}function m(u,h){var p=h.valueDec,w=h.valueInt,k=0,x=void 0,O=void 0,N=void 0;if(u=parseFloat(u),N=u<0,u=Math.abs(u),p>0){for(O=u.toFixed(p).toString().split("."),x=w-O[0].length;k<x;++k)O[0]="0"+O[0];O=(N?"-":"")+O[0]+"."+O[1]}else{for(O=Math.round(u).toString(),x=w-O.length;k<x;++k)O="0"+O;O=(N?"-":"")+O}return O}function y(u,h){var p=void 0,w=!1;return p=h.majorTicksDec===0?Math.round(u).toString():u.toFixed(h.majorTicksDec),h.majorTicksInt>1?(w=~p.indexOf("."),~p.indexOf("-")?"-"+[h.majorTicksInt+h.majorTicksDec+2+(w?1:0)-p.length].join("0")+p.replace("-",""):[h.majorTicksInt+h.majorTicksDec+1+(w?1:0)-p.length].join("0")+p):p}function _(u){return u*Math.PI/180}function T(u,h){return{x:-u*Math.sin(h),y:u*Math.cos(h)}}function E(u,h,p,w){var k=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],x=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,O=u.createLinearGradient(k?0:x,k?x:0,k?0:w,k?w:0);return O.addColorStop(0,h),O.addColorStop(1,p),O}function L(u,h){h.needleShadow&&(u.shadowOffsetX=2,u.shadowOffsetY=2,u.shadowBlur=10,u.shadowColor=h.colorNeedleShadowDown)}function Y(u,h,p){return u["font"+h+"Style"]+" "+u["font"+h+"Weight"]+" "+u["font"+h+"Size"]*p+"px "+u["font"+h]}function te(u){u.shadowOffsetX=null,u.shadowOffsetY=null,u.shadowBlur=null,u.shadowColor="",u.strokeStyle=null,u.lineWidth=0,u.save()}function _e(u,h,p,w){h.valueTextShadow&&(u.shadowOffsetX=p,u.shadowOffsetY=p,u.shadowBlur=w,u.shadowColor=h.colorValueTextShadow)}function He(u,h,p,w,k,x){if(h.valueBox){te(u);var O=h.valueDec?1+h.valueDec:0,N="9".repeat(Math.max.apply(null,[String(parseInt(p)).length+O].concat(h.majorTicks.map(function(ye){return String(parseInt(ye,10)).length+O})))),R=h.valueText||m(p,h),W=x/200,q=x/100,$=.4*q,J=1.2*q;u.font=Y(h,"Value",W),_e(u,h,$,J);var de=u.measureText(h.valueText?R:"-"+m(Number(N),h)).width;te(u);var me=parseFloat(h.fontValueSize)*W+$+J,Re=q*parseFloat(h.valueBoxStroke),fe=2*x-2*Re,Be=de+10*q,ze=1.1*me+$+J,Ve=q*h.valueBoxBorderRadius,ue=(parseFloat(h.valueBoxWidth)||0)/100*fe;ue>Be&&(Be=ue),Be>fe&&(Be=fe);var ke=w-Be/2,ge=k-ze/2,ae=k-5.75*q;if(u.beginPath(),Ve?c(u,ke,ge,Be,ze,Ve):u.rect(ke,ge,Be,ze),Re){var ve=u.createRadialGradient(w,ae,10*q,w,ae,20*q);ve.addColorStop(0,h.colorValueBoxRect),ve.addColorStop(1,h.colorValueBoxRectEnd),u.strokeStyle=ve,u.lineWidth=Re,u.stroke()}h.colorValueBoxShadow&&(u.shadowBlur=1.2*q,u.shadowColor=h.colorValueBoxShadow),h.colorValueBoxBackground&&(u.fillStyle=h.colorValueBoxBackground,u.fill()),u.closePath(),u.restore(),_e(u,h,$,J),u.fillStyle=h.colorValueText,u.textAlign="center",u.textBaseline="alphabetic",u.fillText(R,ke+Be/2,k+ze/2-me/3),u.restore()}}function je(u){var h=u.value,p=u.minValue,w=u.maxValue,k=.01*(w-p);return{normal:h<p?p:h>w?w:h,indented:h<p?p-k:h>w?w+k:h}}function Je(u,h,p,w,k){p.beginPath(),p.arc(0,0,zt(u),0,2*un,!0),p.lineWidth=h,p.strokeStyle=k?Z.linearGradient(p,w,k,u):w,p.stroke(),p.closePath()}function se(u,h){var p=Yt.pixelRatio;return u.maxRadius||(u.maxRadius=u.max-h.borderShadowWidth-h.borderOuterWidth*p-h.borderMiddleWidth*p-h.borderInnerWidth*p+(h.borderOuterWidth?.5:0)+(h.borderMiddleWidth?.5:0)+(h.borderInnerWidth?.5:0)),u.maxRadius}function ht(u,h){function p($,J,de,me,Re,fe){return J&&(!fe&&h.borderShadowWidth&&(de.save(),de.shadowBlur=h.borderShadowWidth,de.shadowColor=h.colorBorderShadow),Je($,J*w,de,me,Re),!fe&&h.borderShadowWidth&&(fe=!0,de.restore())),fe}var w=Yt.pixelRatio,k=h.borderShadowWidth*w,x=u.max-k-h.borderOuterWidth*w/2,O=x-h.borderOuterWidth*w/2-h.borderMiddleWidth*w/2+.5,N=O-h.borderMiddleWidth*w/2-h.borderInnerWidth*w/2+.5,R=se(u,h),W=void 0,q=!1;u.save(),q=p(x,h.borderOuterWidth,u,h.colorBorderOuter,h.colorBorderOuterEnd,q),q=p(O,h.borderMiddleWidth,u,h.colorBorderMiddle,h.colorBorderMiddleEnd,q),q=p(N,h.borderInnerWidth,u,h.colorBorderInner,h.colorBorderInnerEnd,q),!q&&h.borderShadowWidth&&(u.shadowBlur=h.borderShadowWidth,u.shadowColor=h.colorBorderShadow),u.beginPath(),u.arc(0,0,zt(R),0,2*un,!0),h.colorPlateEnd?(W=u.createRadialGradient(0,0,R/2,0,0,R),W.addColorStop(0,h.colorPlate),W.addColorStop(1,h.colorPlateEnd)):W=h.colorPlate,u.fillStyle=W,u.fill(),u.closePath(),u.restore()}function lt(u,h){if(h.highlights!=="false"&&h.highlights.length&&h.highlightsWidth!==0){var p=u.max*(parseFloat(h.highlightsWidth)||0)/100,w=zt(ft(u,h)-p/2),k=h.highlights.length,x=(h.maxValue-h.minValue)/h.ticksAngle;u.save();for(var O=0;O<k;O++){var N=h.highlights[O];u.lineWidth=p,u.lineCap=h.highlightsLineCap,u.strokeStyle=N.color,u.beginPath(),u.rotate(Nn),u.arc(0,0,w,Z.radians(h.startAngle+(N.from-h.minValue)/x),Z.radians(h.startAngle+(N.to-h.minValue)/x),!1),u.stroke(),u.closePath(),u.restore(),u.save()}u.restore()}}function Wt(u,h){var p=ft(u,h),w=void 0,k=void 0,x=void 0,O=0,N=Math.abs(h.minorTicks)||0,R=h.ticksAngle/(h.maxValue-h.minValue);h.exactTicks?(k=h.maxValue-h.minValue,w=N?k/N:0,O=(Vt.mod(h.majorTicks[0],N)||0)*R):w=N*(h.majorTicks.length-1),u.lineWidth=Yt.pixelRatio,u.strokeStyle=h.colorMinorTicks||h.colorStrokeTicks,u.save();for(var W=0;W<w;++W)(x=h.startAngle+O+W*(h.ticksAngle/w))<=h.ticksAngle+h.startAngle&&(u.rotate(Z.radians(x)),u.beginPath(),u.moveTo(0,p),u.lineTo(0,p-.075*u.max),Wi(u));u.restore()}function ft(u,h){var p=u.max/100;return se(u,h)-5*p-(h.barWidth?2*(parseFloat(h.barStrokeWidth)||0)+((parseFloat(h.barWidth)||0)+5)*p:0)}function ut(u,h){Z.prepareTicks(h);var p=zt(ft(u,h)),w=void 0,k=h.majorTicks.length,x=Yt.pixelRatio;u.lineWidth=2*x,w=h.colorMajorTicks instanceof Array?h.colorMajorTicks:new Array(k).fill(h.colorStrokeTicks||h.colorMajorTicks);for(var O=0;O<k;++O)u.save(),u.strokeStyle=w[O],u.rotate(Z.radians(At(h,h.exactTicks?h.majorTicks[O]:O,k))),u.beginPath(),u.moveTo(0,p),u.lineTo(0,p-.15*u.max),u.stroke(),u.closePath(),u.restore();h.strokeTicks&&(u.save(),u.strokeStyle=h.colorStrokeTicks||w[0],u.rotate(Nn),u.beginPath(),u.arc(0,0,p,Z.radians(h.startAngle),Z.radians(h.startAngle+h.ticksAngle),!1),u.stroke(),u.closePath(),u.restore())}function At(u,h,p){if(u.exactTicks){var w=u.ticksAngle/(u.maxValue-u.minValue);return u.startAngle+w*(h-u.minValue)}return u.startAngle+h*(u.ticksAngle/(p-1))}function Wi(u){u.stroke(),u.restore(),u.closePath(),u.save()}function Q(u,h){var p=ft(u,h)-.15*u.max,w={},k=0,x=h.majorTicks.length,O=h.animationTarget!=="needle",N=h.colorNumbers instanceof Array?h.colorNumbers:new Array(x).fill(h.colorNumbers),R=O?-(h.value-h.minValue)/(h.maxValue-h.minValue)*h.ticksAngle:0;for(O&&(u.save(),u.rotate(-Z.radians(R))),u.font=Z.font(h,"Numbers",u.max/200),u.lineWidth=0,u.textAlign="center",u.textBaseline="middle";k<x;++k){var W=R+At(h,h.exactTicks?h.majorTicks[k]:k,x),q=u.measureText(h.majorTicks[k]).width,$=h.fontNumbersSize,J=Math.sqrt(q*q+$*$)/2,de=Z.radialPoint(p-J-h.numbersMargin/100*u.max,Z.radians(W));W===360&&(W=0),w[W]||(w[W]=!0,u.fillStyle=N[k],u.fillText(h.majorTicks[k],de.x,de.y))}O&&u.restore()}function ne(u,h){h.title&&(u.save(),u.font=Z.font(h,"Title",u.max/200),u.fillStyle=h.colorTitle,u.textAlign="center",u.fillText(h.title,0,-u.max/4.25,.8*u.max),u.restore())}function le(u,h){h.units&&(u.save(),u.font=Z.font(h,"Units",u.max/200),u.fillStyle=h.colorUnits,u.textAlign="center",u.fillText(Z.formatContext(h,h.units),0,u.max/3.25,.8*u.max),u.restore())}function Ie(u,h){if(h.needle){var p=h.animationTarget!=="needle",w=h.ticksAngle<360?Z.normalizedValue(h).indented:h.value,k=p?h.startAngle:h.startAngle+(w-h.minValue)/(h.maxValue-h.minValue)*h.ticksAngle;h.barStartPosition==="right"&&(k=h.startAngle+h.ticksAngle-(w-h.minValue)/(h.maxValue-h.minValue)*h.ticksAngle);var x=se(u,h),O=zt(x/100*h.needleCircleSize),N=zt(x/100*h.needleCircleSize*.75),R=zt(x/100*h.needleEnd),W=zt(h.needleStart?x/100*h.needleStart:0),q=x/100*h.needleWidth,$=x/100*h.needleWidth/2,J=Yt.pixelRatio;u.save(),Z.drawNeedleShadow(u,h),u.rotate(Z.radians(k)),u.fillStyle=Z.linearGradient(u,h.colorNeedle,h.colorNeedleEnd,R-W),h.needleType==="arrow"?(u.beginPath(),u.moveTo(-$,-W),u.lineTo(-q,0),u.lineTo(-1*J,R),u.lineTo(J,R),u.lineTo(q,0),u.lineTo($,-W),u.closePath(),u.fill(),u.beginPath(),u.lineTo(-.5*J,R),u.lineTo(-1*J,R),u.lineTo(-q,0),u.lineTo(-$,-W),u.lineTo($/2*J-2*J,-W),u.closePath(),u.fillStyle=h.colorNeedleShadowUp,u.fill()):(u.beginPath(),u.moveTo(-$,R),u.lineTo(-$,W),u.lineTo($,W),u.lineTo($,R),u.closePath(),u.fill()),u.restore(),h.needleCircleSize&&(u.save(),Z.drawNeedleShadow(u,h),h.needleCircleOuter&&(u.beginPath(),u.arc(0,0,O,0,2*un,!0),u.fillStyle=Z.linearGradient(u,h.colorNeedleCircleOuter,h.colorNeedleCircleOuterEnd,O),u.fill(),u.closePath()),h.needleCircleInner&&(u.beginPath(),u.arc(0,0,N,0,2*un,!0),u.fillStyle=Z.linearGradient(u,h.colorNeedleCircleInner,h.colorNeedleCircleInnerEnd,N),u.fill(),u.closePath()),u.restore())}}function dt(u,h,p){Z.drawValueBox(u,h,p,0,u.max-.33*u.max,u.max)}function bt(u){var h=u.startAngle,p=u.startAngle+u.ticksAngle,w=h,k=h+(Z.normalizedValue(u).normal-u.minValue)/(u.maxValue-u.minValue)*u.ticksAngle;if(u.barStartPosition==="middle"){var x=.5*(u.minValue+u.maxValue);u.value<x?(w=180-(x-Z.normalizedValue(u).normal)/(u.maxValue-u.minValue)*u.ticksAngle,k=180):(w=180,k=180+(Z.normalizedValue(u).normal-x)/(u.maxValue-u.minValue)*u.ticksAngle)}else u.barStartPosition==="right"&&(w=p-k+h,k=p);return{startAngle:w,endAngle:k}}function _t(u,h){var p=u.max/100,w=se(u,h)-5*p,k=parseFloat(h.barStrokeWidth+"")||0,x=(parseFloat(h.barWidth+"")||0)*p,O=w-2*k-x,N=(w-O)/2,R=O+N,W=k/R,q=h.startAngle,$=h.startAngle+h.ticksAngle;if(u.save(),u.rotate(Nn),k&&(u.beginPath(),u.arc(0,0,R,Z.radians(q)-W,Z.radians($)+W,!1),u.strokeStyle=h.colorBarStroke,u.lineWidth=2*N,u.stroke(),u.closePath()),x&&(u.beginPath(),u.arc(0,0,R,Z.radians(q),Z.radians($),!1),u.strokeStyle=h.colorBar,u.lineWidth=x,u.stroke(),u.closePath(),h.barShadow&&(u.save(),u.beginPath(),u.arc(0,0,w,Z.radians(q),Z.radians($),!1),u.clip(),u.beginPath(),u.strokeStyle=h.colorBar,u.lineWidth=1,u.shadowBlur=h.barShadow,u.shadowColor=h.colorBarShadow,u.shadowOffsetX=0,u.shadowOffsetY=0,u.arc(0,0,w,Z.radians(h.startAngle),Z.radians(h.startAngle+h.ticksAngle),!1),u.stroke(),u.closePath(),u.restore()),h.barProgress)){var J=bt(h),de=J.startAngle,me=J.endAngle;u.beginPath(),u.arc(0,0,R,Z.radians(de),Z.radians(me),!1),u.strokeStyle=h.colorBarProgress,u.lineWidth=x,u.stroke(),u.closePath()}u.restore()}function Ot(u){return u.options.animatedValue?u.options.value:u.value}function et(u,h,p,w,k,x,O,N){u.beginPath(),u.fillStyle=N?Z.linearGradient(u,O,N,k>x?k:x,x>k,k>x?p:w):O,h>0?Z.roundRect(u,p,w,k,x,h):u.rect(p,w,k,x),u.fill(),u.closePath()}function On(u,h,p,w,k,x,O,N,R){u.beginPath(),u.lineWidth=h,u.strokeStyle=R?Z.linearGradient(u,N,R,O,!0,k):N,p>0?Z.roundRect(u,w,k,x,O,p):u.rect(w,k,x,O),u.stroke(),u.closePath()}function gt(u,h,p,w,k,x){function O(ye,Ee,Qe,Ct){return ye&&(!Ct&&h.borderShadowWidth&&(u.save(),u.shadowBlur=h.borderShadowWidth,u.shadowColor=h.colorBorderShadow),On(u,ye*N,R,p+ye*N/2-ae,w+ye*N/2-ae,W,de,Ee,Qe),ae+=.5*N,!Ct&&h.borderShadowWidth&&(Ct=!0,u.restore())),Ct}var N=Yt.pixelRatio,R=h.borderRadius*N,W=k-h.borderShadowWidth-h.borderOuterWidth*N,q=W-h.borderOuterWidth*N-h.borderMiddleWidth*N,$=q-h.borderMiddleWidth*N-h.borderInnerWidth*N,J=$-h.borderInnerWidth*N,de=x-h.borderShadowWidth-h.borderOuterWidth*N,me=de-h.borderOuterWidth*N-h.borderMiddleWidth*N,Re=me-h.borderMiddleWidth*N-h.borderInnerWidth*N,fe=Re-h.borderInnerWidth*N,Be=p-(q-W)/2,ze=Be-($-q)/2,Ve=ze-(J-$)/2,ue=w-(me-de)/2,ke=ue-(Re-me)/2,ge=ke-(fe-Re)/2,ae=0,ve=!1;return u.save(),ve=O(h.borderOuterWidth,h.colorBorderOuter,h.colorBorderOuterEnd,ve),ve=O(h.borderMiddleWidth,h.colorBorderMiddle,h.colorBorderMiddleEnd,ve),ve=O(h.borderInnerWidth,h.colorBorderInner,h.colorBorderInnerEnd,ve),!ve&&h.borderShadowWidth&&(u.shadowBlur=h.borderShadowWidth,u.shadowColor=h.colorBorderShadow),et(u,R,Ve,ge,J+2*ae,fe+2*ae,h.colorPlate,h.colorPlateEnd),u.restore(),[Ve,ge,J,fe]}function tt(u,h,p,w,k,x){var O=Yt.pixelRatio,N=x>=k,R=N?.85*k:x,W=N?x:k;p=N?Se(p+(k-R)/2):p;var q=!!h.title,$=!!h.units,J=!!h.valueBox,de=void 0,me=void 0,Re=void 0;N?(me=Se(.05*W),de=Se(.075*W),Re=Se(.11*W),q&&(W-=de,w+=de),$&&(W-=me),J&&(W-=Re)):(me=de=Se(.15*R),q&&(R-=de,w+=de),$&&(R-=me));var fe=2*h.barStrokeWidth,Be=h.barBeginCircle?Se(R*h.barBeginCircle/200-fe/2):0,ze=Se(R*h.barWidth/100-fe),Ve=Se(W*h.barLength/100-fe),ue=Se((W-Ve)/2),ke=Se(p+(N?R/2:ue+Be)),ge=Se(w+(N?W-ue-Be+fe/2:R/2)),ae=!N||h.hasLeft&&h.hasRight?0:(h.hasRight?-1:1)*h.ticksWidth/100*R,ve=N||h.hasLeft&&h.hasRight?0:(h.hasRight?-1:1)*h.ticksWidth/100*R;return u.barDimensions={isVertical:N,width:R,length:W,barWidth:ze,barLength:Ve,strokeWidth:fe,barMargin:ue,radius:Be,pixelRatio:O,barOffset:null,titleMargin:q?de:0,unitsMargin:$?me:0,get ticksLength(){return this.barLength-this.barOffset-this.strokeWidth},X:p+ae,Y:w+ve,x0:ke+ae,y0:ge+ve,baseX:p,baseY:w,ticksPadding:h.ticksPadding/100},u.barDimensions}function Ue(u,h,p,w,k,x,O){var N=tt(u,h,w,k,x,O),R=N.isVertical,W=N.width,q=N.barWidth,$=N.barLength,J=N.strokeWidth,de=N.barMargin,me=N.radius,Re=N.x0,fe=N.y0,Be=N.X,ze=N.Y,Ve=$;u.save(),u.beginPath();var ue=null;if(h.barBeginCircle){var ke=Z.radians(R?270:0),ge=Math.asin(q/2/me),ae=Math.cos(ge),ve=Math.sin(ge),ye=Re+(R?me*ve:me*ae-J/2),Ee=R?fe-me*ae:fe+me*ve,Qe=zt(R?Ee-fe:ye-Re);ue=Se(Qe+me);var Ct=R?Se(Re-me*ve):ye,St=R?Ee:Se(fe-me*ve);p==="progress"&&($=ue+($-ue)*(Z.normalizedValue(h).normal-h.minValue)/(h.maxValue-h.minValue));var kt=Se(ye+$-ue+J/2),ni=Se(Ee-$+ue-J/2);u.arc(Re,fe,me,ke+ge,ke-ge),R?(u.moveTo(ye,St),u.lineTo(ye,ni),u.lineTo(Ct,ni),u.lineTo(Ct,St)):(u.moveTo(ye,St),u.lineTo(kt,St),u.lineTo(kt,Ee),u.lineTo(ye,Ee))}else{var Bn=Se(R?Be+(W-q)/2:Be+de),zn=Se(R?ze+$+de:ze+(W-q)/2);p==="progress"&&($*=(h.value-h.minValue)/(h.maxValue-h.minValue)),R?u.rect(Bn,zn,q,-$):u.rect(Bn,zn,$,q)}p!=="progress"&&h.barStrokeWidth&&(u.lineWidth=J,u.strokeStyle=h.colorBarStroke,u.stroke()),p!=="progress"&&h.colorBar?(u.fillStyle=h.colorBarEnd?Z.linearGradient(u,h.colorBar,h.colorBarEnd,$,R,R?ze:Be):h.colorBar,u.fill()):p==="progress"&&h.colorBarProgress&&(u.fillStyle=h.colorBarProgressEnd?Z.linearGradient(u,h.colorBarProgress,h.colorBarProgressEnd,Ve,R,R?ze:Be):h.colorBarProgress,u.fill()),u.closePath(),u.restore(),h.barBeginCircle&&(u.barDimensions.radius+=J),u.barDimensions.barOffset=ue,u.barDimensions.barWidth+=J,u.barDimensions.barLength+=J}function Xe(u,h,p,w,k,x){Ue(u,h,"",p,w,k,x)}function ei(u,h){return h.needleSide!==u||h.tickSide!==u||h.numberSide!==u}function pi(u,h,p,w,k,x){h.barProgress&&Ue(u,h,"progress",p,w,k,x)}function cn(u,h){var p=u.barDimensions,w=p.isVertical,k=p.width,x=p.length,O=p.barWidth,N=p.barOffset,R=p.barMargin,W=p.X,q=p.Y,$=p.ticksLength,J=p.ticksPadding,de=k*(parseFloat(h.highlightsWidth)||0)/100;if(h.highlights&&de){var me=h.tickSide!=="right",Re=h.tickSide!=="left",fe=0,Be=h.highlights.length,ze=(k-O)/2,Ve=h.maxValue-h.minValue,ue=Se(w?W+ze:W+R+N),ke=de,ge=w?q+x-R-N:q+ze,ae=Se((h.ticksWidth/100+J)*k)+(de-h.ticksWidth/100*k),ve=Se(O+J*k);for(u.save();fe<Be;fe++){var ye=h.highlights[fe],Ee=$*zt(h.minValue-ye.from)/Ve,Qe=$*zt((ye.to-ye.from)/Ve);u.beginPath(),u.fillStyle=ye.color,w?(me&&u.rect(ue-ae,ge-Ee,ke,-Qe),Re&&u.rect(ue+ve,ge-Ee,ke,-Qe)):(me&&u.rect(ue+Ee,ge-ae,Qe,ke),Re&&u.rect(ue+Ee,ge+ve,Qe,ke)),u.fill(),u.closePath()}u.restore()}}function _i(u,h,p,w,k){u.beginPath(),u.moveTo(h,p),u.lineTo(w,k),u.stroke(),u.closePath()}function Bi(u,h,p,w,k,x,O,N,R){var W=u.barDimensions,q=W.isVertical,$=W.length,J=W.barWidth,de=W.barOffset,me=W.barMargin,Re=W.pixelRatio,fe=W.width,Be=W.X,ze=W.Y,Ve=W.ticksLength,ue=W.ticksPadding,ke=(fe-J)/2,ge=void 0,ae=void 0,ve=0,ye=p.length,Ee=void 0,Qe=R*fe,Ct=ke-ue*fe,St=ke+J+Qe+ue*fe,kt=h instanceof Array?h:new Array(p.length).fill(h);u.save(),u.lineWidth=N*Re;for(var ni=Ve/(k-w);ve<ye;ve++)Ee=p[ve],u.strokeStyle=kt[ve],q?(ae=ze+$-me-de+(w-Ee)*ni,x&&(ge=Be+Ct,_i(u,ge,ae,Se(ge-Qe),ae)),O&&(ge=Be+St,_i(u,ge,ae,Se(ge-Qe),ae))):(ge=Be+me+de-(w-Ee)*ni,x&&(ae=ze+Ct,_i(u,ge,ae,ge,Se(ae-Qe))),O&&(ae=ze+St,_i(u,ge,Se(ae),ge,ae-Qe)));u.restore()}function ti(u,h){var p=Z.prepareTicks(h),w=xr(p,2),k=w[0],x=w[1],O=2,N=(h.maxValue-h.minValue)/(h.majorTicks.length-1),R=h.colorMajorTicks instanceof Array?h.colorMajorTicks:new Array(h.majorTicks.length).fill(h.colorStrokeTicks||h.colorMajorTicks);if(Bi(u,R,h.exactTicks?h.majorTicks:h.majorTicks.map(function(Qe,Ct){return h.minValue+N*Ct}),h.minValue,h.maxValue,k,x,O,h.ticksWidth/100),h.strokeTicks){var W=u.barDimensions,q=W.isVertical,$=W.length,J=W.width,de=W.barWidth,me=W.barMargin,Re=W.barOffset,fe=W.X,Be=W.Y,ze=W.ticksLength,Ve=W.pixelRatio,ue=W.ticksPadding,ke=(J-de)/2+de+ue*J,ge=(J-de)/2-ue*J,ae=void 0,ve=void 0,ye=void 0,Ee=void 0;u.strokeStyle=h.colorStrokeTicks||R[0],O*=Ve,q?(ve=Be+$-me-Re+O/2,Ee=ve-ze-O,k&&(ye=ae=Se(fe+ge),ii(u,ae,ve,ye,Ee)),x&&(ye=ae=Se(fe+ke),ii(u,ae,ve,ye,Ee))):(ae=fe+me+Re-O/2,ye=ae+ze+O,k&&(Ee=ve=Se(Be+ge),ii(u,ae,ve,ye,Ee)),x&&(Ee=ve=Se(Be+ke),ii(u,ae,ve,ye,Ee)))}}function ii(u,h,p,w,k){u.beginPath(),u.moveTo(h,p),u.lineTo(w,k),u.stroke(),u.closePath()}function Xr(u,h){var p=Z.prepareTicks(h),w=xr(p,2),k=w[0],x=w[1],O=[],N=h.minValue,R=Math.abs(h.minorTicks)||0,W=R?(h.maxValue-h.minValue)/(R*(h.majorTicks.length-1)):0;if(R)if(h.exactTicks)for(var q=Vt.mod(h.majorTicks[0],R)||0;N<h.maxValue;N+=R)q+N<h.maxValue&&O.push(q+N);else for(;N<h.maxValue;N+=W)O.push(N);Bi(u,h.colorMinorTicks||h.colorStrokeTicks,O,h.minValue,h.maxValue,k,x,1,h.ticksWidthMinor/100)}function Qr(u,h){var p=u.barDimensions,w=p.isVertical,k=p.length,x=p.width,O=p.barWidth,N=p.barMargin,R=p.barOffset,W=p.X,q=p.Y,$=p.ticksLength,J=p.ticksPadding,de=h.maxValue-h.minValue,me=de/(h.majorTicks.length-1),Re=h.exactTicks?h.majorTicks:h.majorTicks.map(function(kt,ni){return h.minValue+me*ni}),fe=Re.length,Be=h.numberSide!=="right",ze=h.numberSide!=="left",Ve=h.fontNumbersSize*x/200,ue=0,ke=(h.ticksWidth/100+2*J)*x,ge=(x-O)/2-ke,ae=(x-O)/2+O+ke,ve=void 0,ye=void 0,Ee=void 0,Qe=void 0,Ct=h.colorNumbers instanceof Array?h.colorNumbers:new Array(fe).fill(h.colorNumbers),St=h.numbersMargin/100*x;for(u.font=Z.font(h,"Numbers",x/200),u.lineWidth=0,u.textAlign="center";ue<fe;ue++)u.fillStyle=Ct[ue],Qe=h.majorTicks[ue],Ee=h.exactTicks?$*((Re[ue]-h.minValue)/de):ue*$/(fe-1),w?(ye=q+k-N-R-Ee+Ve/3,Be&&(u.textAlign="right",u.fillText(Qe,W+ge-St,ye)),ze&&(u.textAlign="left",u.fillText(Qe,W+ae+St,ye))):(u.measureText(Qe).width,ve=W+N+R+Ee,Be&&u.fillText(Qe,ve,q+ge-St),ze&&u.fillText(Qe,ve,q+ae+Ve+St))}function In(u,h){if(h.title){var p=u.barDimensions,w=p.isVertical,k=p.width,x=p.length,O=p.baseX,N=p.baseY,R=p.titleMargin,W=h.fontTitleSize*k/200,q=Se(O+(w?k:x)/2),$=Se(N+R/2-(w?W:W/2)-.025*(w?x:k));u.save(),u.textAlign="center",u.fillStyle=h.colorTitle,u.font=Z.font(h,"Title",k/200),u.lineWidth=0,u.fillText(h.title,q,$,w?k:x),u.restore()}}function Bt(u,h){if(h.units){var p=u.barDimensions,w=p.isVertical,k=p.width,x=p.length,O=p.baseX,N=p.baseY,R=p.unitsMargin,W=h.fontUnitsSize*k/200,q=Se(O+(w?k:x)/2),$=Se(N+(w?x:k)+R/2-W/2);u.save(),u.textAlign="center",u.fillStyle=h.colorUnits,u.font=Z.font(h,"Units",k/200),u.lineWidth=0,u.fillText(Z.formatContext(h,h.units),q,$,w?k:x),u.restore()}}function Ta(u,h){if(h.needle){var p=u.barDimensions,w=p.isVertical,k=p.width,x=p.length,O=p.barWidth,N=p.barOffset,R=p.barMargin,W=p.ticksLength,q=p.X,$=p.Y,J=p.ticksPadding,de=h.needleSide!=="right",me=h.needleSide!=="left",Re=W*(Z.normalizedValue(h).indented-h.minValue)/(h.maxValue-h.minValue),fe=(h.ticksWidth/100+J)*k,Be=O/2+fe,ze=Be*(h.needleEnd/100),Ve=void 0,ue=void 0,ke=void 0,ge=void 0,ae=h.needleType.toLowerCase()==="arrow"?Ea:xa,ve=(k-O)/2,ye=Be*(h.needleStart/100),Ee=ve-fe-ye,Qe=ve+O+fe+ye;u.save(),Z.drawNeedleShadow(u,h),w?(ke=Se($+x-R-N-Re),de&&(Ve=Se(q+Ee),ue=Ve+ze,ae(u,h,Ve,ke,ue,ke,ze)),me&&(Ve=Se(q+Qe),ue=Ve-ze,ae(u,h,Ve,ke,ue,ke,ze,!0))):(Ve=Se(q+R+N+Re),de&&(ke=Se($+Ee),ge=ke+ze,ae(u,h,Ve,ke,Ve,ge,ze)),me&&(ke=Se($+Qe),ge=ke-ze,ae(u,h,Ve,ke,Ve,ge,ze,!0))),u.restore()}}function Kr(u,h,p,w){return h.colorNeedleEnd?Z.linearGradient(u,w?h.colorNeedleEnd:h.colorNeedle,w?h.colorNeedle:h.colorNeedleEnd,p,!u.barDimensions.isVertical):h.colorNeedle}function xa(u,h,p,w,k,x,O,N){u.lineWidth=h.needleWidth,u.strokeStyle=Kr(u,h,O,N),u.beginPath(),u.moveTo(p,w),u.lineTo(k,x),u.stroke(),u.closePath()}function Ea(u,h,p,w,k,x,O,N){var R=Se(.4*O),W=O-R,q=p===k,$=h.needleWidth/2;u.fillStyle=Kr(u,h,O,N),u.beginPath(),q?(w>x&&(W*=-1),u.moveTo(p-$,w),u.lineTo(p+$,w),u.lineTo(p+$,w+W),u.lineTo(p,x),u.lineTo(p-$,w+W),u.lineTo(p-$,w)):(p>k&&(W*=-1),u.moveTo(p,w-$),u.lineTo(p,w+$),u.lineTo(p+W,w+$),u.lineTo(k,w),u.lineTo(p+W,w-$),u.lineTo(p,w-$)),u.fill(),u.closePath()}function Da(u,h,p,w,k,x,O){var N=(parseFloat(h.fontValueSize)||0)*x/200,R=(.11*O-N)/2;u.barDimensions.isVertical&&Z.drawValueBox(u,h,p,w+x/2,k+O-N-R,x)}var xr=function(){function u(h,p){var w=[],k=!0,x=!1,O=void 0;try{for(var N,R=h[Symbol.iterator]();!(k=(N=R.next()).done)&&(w.push(N.value),!p||w.length!==p);k=!0);}catch(W){x=!0,O=W}finally{try{!k&&R.return&&R.return()}finally{if(x)throw O}}return w}return function(h,p){if(Array.isArray(h))return h;if(Symbol.iterator in Object(h))return u(h,p);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),Rn=function u(h,p,w){h===null&&(h=Function.prototype);var k=Object.getOwnPropertyDescriptor(h,p);if(k===void 0){var x=Object.getPrototypeOf(h);return x===null?void 0:u(x,p,w)}if("value"in k)return k.value;var O=k.get;if(O!==void 0)return O.call(w)},Zr=function u(h,p,w,k){var x=Object.getOwnPropertyDescriptor(h,p);if(x===void 0){var O=Object.getPrototypeOf(h);O!==null&&u(O,p,w,k)}else if("value"in x&&x.writable)x.value=w;else{var N=x.set;N!==void 0&&N.call(k,w)}return w},wi=function(){function u(h,p){for(var w=0;w<p.length;w++){var k=p[w];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(h,k.key,k)}}return function(h,p,w){return p&&u(h.prototype,p),w&&u(h,w),h}}(),Ai=null,Er=function(){function u(){i(this,u),this._events={},this.addListener=this.on,this.removeListener=this.off}return wi(u,[{key:"emit",value:function(h){if(this._events[h]){for(var p=0,w=this._events[h].length,k=arguments.length,x=Array(k>1?k-1:0),O=1;O<k;O++)x[O-1]=arguments[O];for(;p<w;p++)this._events[h][p]&&this._events[h][p].apply(this,x)}}},{key:"once",value:function(h){for(var p=arguments.length,w=Array(p>1?p-1:0),k=1;k<p;k++)w[k-1]=arguments[k];for(var x=0,O=w.length,N=this;x<O;x++)(function(){var R=w[x],W=function q(){N.off(h,q),R.apply(N,arguments)};w[x]=W})();this.on.apply(this,[h].concat(w))}},{key:"on",value:function(h){this._events[h]||(this._events[h]=[]);for(var p=0,w=arguments.length<=1?0:arguments.length-1;p<w;p++)this._events[h].push(arguments.length<=p+1?void 0:arguments[p+1])}},{key:"off",value:function(h){if(this._events[h])for(var p=0,w=arguments.length<=1?0:arguments.length-1;p<w;p++)for(var k=arguments.length<=p+1?void 0:arguments[p+1],x=void 0;~(x=this._events[h].indexOf(k));)this._events[h].splice(x,1)}},{key:"removeAllListeners",value:function(h){delete this._events[h]}},{key:"listeners",get:function(){return this._events}}]),u}(),Jr=o("requestAnimationFrame")||function(u){return setTimeout(function(){return u(new Date().getTime())},1e3/60)},hn={linear:function(u){return u},quad:function(u){return Math.pow(u,2)},dequad:function(u){return 1-hn.quad(1-u)},quint:function(u){return Math.pow(u,5)},dequint:function(u){return 1-Math.pow(1-u,5)},cycle:function(u){return 1-Math.sin(Math.acos(u))},decycle:function(u){return Math.sin(Math.acos(1-u))},bounce:function(u){return 1-hn.debounce(1-u)},debounce:function(u){for(var h=0,p=1;;h+=p,p/=2)if(u>=(7-4*h)/11)return-Math.pow((11-6*h-11*u)/4,2)+Math.pow(p,2)},elastic:function(u){return 1-hn.delastic(1-u)},delastic:function(u){return Math.pow(2,10*(u-1))*Math.cos(20*Math.PI*1.5/3*u)}},Dr=function(){function u(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"linear",p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},k=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){};if(i(this,u),this.duration=p,this.rule=h,this.draw=w,this.end=k,typeof this.draw!="function")throw new TypeError("Invalid animation draw callback:",w);if(typeof this.end!="function")throw new TypeError("Invalid animation end callback:",k)}return wi(u,[{key:"animate",value:function(h,p){var w=this;this.frame&&this.cancel();var k=window.performance&&window.performance.now?window.performance.now():o("animationStartTime")||Date.now();h=h||this.draw,p=p||this.end,this.draw=h,this.end=p,this.frame=Jr(function(x){return a(x,h,k,hn[w.rule]||w.rule,w.duration,p,w)})}},{key:"cancel",value:function(){this.frame&&((o("cancelAnimationFrame")||function(h){})(this.frame),this.frame=null)}},{key:"destroy",value:function(){this.cancel(),this.draw=null,this.end=null}}]),u}();Dr.rules=hn;var zi=function(){function u(h,p,w){i(this,u),this.options=h,this.element=p.toLowerCase(),this.type=u.toDashed(w),this.Type=r[w],this.mutationsObserved=!1,this.isObservable=!!window.MutationObserver,window.GAUGES_NO_AUTO_INIT||u.domReady(this.traverse.bind(this))}return wi(u,[{key:"isValidNode",value:function(h){return!(!h.tagName||h.tagName.toLowerCase()!==this.element||h.getAttribute("data-type")!==this.type)}},{key:"traverse",value:function(){for(var h=document.getElementsByTagName(this.element),p=0,w=h.length;p<w;p++)this.process(h[p]);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(h){for(var p=0,w=h.length;p<w;p++){var k=h[p];if(k.type==="attributes"&&k.attributeName==="data-type"&&this.isValidNode(k.target)&&k.oldValue!==this.type)setTimeout(this.process.bind(this,k.target));else if(k.addedNodes&&k.addedNodes.length)for(var x=0,O=k.addedNodes.length;x<O;x++)setTimeout(this.process.bind(this,k.addedNodes[x]))}}},{key:"process",value:function(h){var p=this;if(!this.isValidNode(h))return null;var w=void 0,k=JSON.parse(JSON.stringify(this.options)),x=null;for(w in k)if(k.hasOwnProperty(w)){var O=u.toAttributeName(w),N=u.parse(h.getAttribute(O));N!=null&&(k[w]=N)}return k.renderTo=h,x=new this.Type(k),x.draw&&x.draw(),this.isObservable&&(x.observer=new MutationObserver(function(R){R.forEach(function(W){if(W.type==="attributes"){var q=W.attributeName.toLowerCase(),$=h.getAttribute(q).toLowerCase();if(q==="data-type"&&$&&$!==p.type)x.observer.disconnect(),delete x.observer,x.destroy&&x.destroy();else if(q.substr(0,5)==="data-"){var J=q.substr(5).split("-").map(function(me,Re){return Re?me.charAt(0).toUpperCase()+me.substr(1):me}).join(""),de={};de[J]=u.parse(h.getAttribute(W.attributeName)),J==="value"?x&&(x.value=de[J]):x.update&&x.update(de)}}})}),x.observer.observe(h,{attributes:!0})),x}}],[{key:"parse",value:function(h){if(h==="true")return!0;if(h==="false")return!1;if(h!=="undefined"){if(h==="null")return null;if(/^[-+#.\w\d\s]+(?:,[-+#.\w\d\s]*)+$/.test(h))return h.split(",");try{return JSON.parse(h)}catch{}return h}}},{key:"toDashed",value:function(h){for(var p=h.split(/(?=[A-Z])/),w=1,k=p.length,x=p[0].toLowerCase();w<k;w++)x+="-"+p[w].toLowerCase();return x}},{key:"toCamelCase",value:function(h){for(var p=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],w=h.split(/-/),k=0,x=w.length,O="";k<x;k++)O+=k||p?w[k][0].toUpperCase()+w[k].substr(1).toLowerCase():w[k].toLowerCase();return O}},{key:"toAttributeName",value:function(h){return"data-"+u.toDashed(h)}},{key:"domReady",value:function(h){if(/comp|inter|loaded/.test((window.document||{}).readyState+""))return h();window.addEventListener?window.addEventListener("DOMContentLoaded",h,!1):window.attachEvent&&window.attachEvent("onload",h)}}]),u}(),Yt=function(){function u(h,p,w){i(this,u),u.collection.push(this),this.width=p||0,this.height=w||0,this.element=h,this.init()}return wi(u,[{key:"init",value:function(){var h=u.pixelRatio;this.element.width=this.width*h,this.element.height=this.height*h,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 h=u.collection.indexOf(this);~h&&u.collection.splice(h,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 h=u.pixelRatio;return h!==1&&this.contextClone.scale(h,h),this}},{key:"redraw",value:function(){return this.init(),this.onRedraw&&this.onRedraw(),this}}],[{key:"redraw",value:function(){for(var h=0,p=u.collection.length;h<p;h++)u.collection[h].redraw()}},{key:"pixelRatio",get:function(){return window.devicePixelRatio||1}}]),u}();Yt.collection=[],window.matchMedia&&window.matchMedia("screen and (min-resolution: 2dppx)").addListener(Yt.redraw);var Vi={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};l.prototype=Object.create(Array.prototype),l.prototype.constructor=l,l.prototype.get=function(u){if(typeof u=="string")for(var h=0,p=this.length;h<p;h++){var w=this[h].options.renderTo.tagName?this[h].options.renderTo:document.getElementById(this[h].options.renderTo||"");if(w.getAttribute("id")===u)return this[h]}else if(typeof u=="number")return this[u];return null};var Pr="2.2.1",Se=Math.round,zt=Math.abs,Li=new l;Li.version=Pr;var Vt=function(u){function h(p){i(this,h);var w=e(this,(h.__proto__||Object.getPrototypeOf(h)).call(this)),k=w.constructor.name;if(k==="BaseGauge")throw new TypeError("Attempt to instantiate abstract class!");if(Li.push(w),p.listeners&&Object.keys(p.listeners).forEach(function(O){(p.listeners[O]instanceof Array?p.listeners[O]:[p.listeners[O]]).forEach(function(N){w.on(O,N)})}),w.version=Pr,w.type=r[k]||h,w.initialized=!1,p.minValue=parseFloat(p.minValue),p.maxValue=parseFloat(p.maxValue),p.value=parseFloat(p.value)||0,p.borders||(p.borderInnerWidth=p.borderMiddleWidth=p.borderOuterWidth=0),!p.renderTo)throw TypeError("Canvas element was not specified when creating the Gauge object!");var x=p.renderTo.tagName?p.renderTo:document.getElementById(p.renderTo);if(!(x instanceof HTMLCanvasElement))throw TypeError("Given gauge canvas element is invalid!");return p.width=parseFloat(p.width)||0,p.height=parseFloat(p.height)||0,p.width&&p.height||(p.width||(p.width=x.parentNode?x.parentNode.offsetWidth:x.offsetWidth),p.height||(p.height=x.parentNode?x.parentNode.offsetHeight:x.offsetHeight)),w.options=p||{},w.options.animateOnInit&&(w._value=w.options.value,w.options.value=w.options.minValue),w.canvas=new Yt(x,p.width,p.height),w.canvas.onRedraw=w.draw.bind(w),w.animation=new Dr(p.animationRule,p.animationDuration),w}return t(h,u),wi(h,[{key:"update",value:function(p){return Object.assign(this.options,this.type.configure(p||{})),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 p=Li.indexOf(this);~p&&Li.splice(p,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(p){var w=this;p=h.ensureValue(p,this.options.minValue);var k=this.options.value;if(p!==k)if(this.options.animation){if(this.animation.frame&&(this.options.value=this._value,this._value===p))return this.animation.cancel(),void delete this._value;this._value===void 0&&(this._value=p),this.emit("animationStart"),this.animation.animate(function(x){var O=k+(p-k)*x;w.options.animatedValue&&w.emit("value",O,w.value),w.options.value=O,w.draw(),w.emit("animate",x,w.options.value)},function(){w._value!==void 0&&(w.emit("value",w._value,w.value),w.options.value=w._value,delete w._value),w.draw(),w.emit("animationEnd"),w.animation.frame=null})}else this.emit("value",p,this.value),this.options.value=p,this.draw()},get:function(){return this._value===void 0?this.options.value:this._value}}],[{key:"configure",value:function(p){return p}},{key:"initialize",value:function(p,w){return new zi(w,"canvas",p)}},{key:"fromElement",value:function(p){var w=zi.toCamelCase(p.getAttribute("data-type")),k=p.attributes,x=0,O=k.length,N={};if(w){for(/Gauge$/.test(w)||(w+="Gauge");x<O;x++)N[zi.toCamelCase(k[x].name.replace(/^data-/,""),!1)]=zi.parse(k[x].value);new zi(N,p.tagName,w).process(p)}}},{key:"ensureValue",value:function(p){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return p=parseFloat(p),!isNaN(p)&&isFinite(p)||(p=parseFloat(w)||0),p}},{key:"mod",value:function(p,w){return(p%w+w)%w}},{key:"version",get:function(){return Pr}}]),h}(Er);r!==void 0&&(r.BaseGauge=Vt,r.gauges=(window.document||{}).gauges=Li);var Pa=/{([_a-zA-Z]+[_a-zA-Z0-9]*)}/g,Z={roundRect:c,padValue:m,formatMajorTickNumber:y,radians:_,radialPoint:T,linearGradient:E,drawNeedleShadow:L,drawValueBox:He,verifyError:d,prepareTicks:s,font:Y,normalizedValue:je,formatContext:f},un=Math.PI,Nn=un/2,eo=Object.assign({},Vi,{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"}),Ma=function(u){function h(p){return i(this,h),p=Object.assign({},eo,p||{}),e(this,(h.__proto__||Object.getPrototypeOf(h)).call(this,h.configure(p)))}return t(h,u),wi(h,[{key:"draw",value:function(){try{var p=this.canvas,w=[-p.drawX,-p.drawY,p.drawWidth,p.drawHeight],k=w[0],x=w[1],O=w[2],N=w[3],R=this.options;if(R.animationTarget==="needle"){if(!p.elementClone.initialized){var W=p.contextClone;W.clearRect(k,x,O,N),this.emit("beforePlate"),ht(W,R),this.emit("beforeHighlights"),lt(W,R),this.emit("beforeMinorTicks"),Wt(W,R),this.emit("beforeMajorTicks"),ut(W,R),this.emit("beforeNumbers"),Q(W,R),this.emit("beforeTitle"),ne(W,R),this.emit("beforeUnits"),le(W,R),p.elementClone.initialized=!0}this.canvas.commit(),p.context.clearRect(k,x,O,N),p.context.drawImage(p.elementClone,k,x,O,N),this.emit("beforeProgressBar"),_t(p.context,R),this.emit("beforeValueBox"),dt(p.context,R,Ot(this)),this.emit("beforeNeedle"),Ie(p.context,R)}else{var q=-Z.radians((R.value-R.minValue)/(R.maxValue-R.minValue)*R.ticksAngle);if(p.context.clearRect(k,x,O,N),this.emit("beforePlate"),ht(p.context,R),p.context.rotate(q),this.emit("beforeHighlights"),lt(p.context,R),this.emit("beforeMinorTicks"),Wt(p.context,R),this.emit("beforeMajorTicks"),ut(p.context,R),this.emit("beforeNumbers"),Q(p.context,R),this.emit("beforeProgressBar"),_t(p.context,R),p.context.rotate(-q),!p.elementClone.initialized){var $=p.contextClone;$.clearRect(k,x,O,N),this.emit("beforeTitle"),ne($,R),this.emit("beforeUnits"),le($,R),this.emit("beforeNeedle"),Ie($,R),p.elementClone.initialized=!0}p.context.drawImage(p.elementClone,k,x,O,N)}this.emit("beforeValueBox"),dt(p.context,R,Ot(this)),Rn(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"draw",this).call(this)}catch(J){Z.verifyError(J)}return this}},{key:"value",set:function(p){p=Vt.ensureValue(p,this.options.minValue),this.options.animation&&this.options.ticksAngle===360&&this.options.useMinPath&&(this._value=p,p=this.options.value+((p-this.options.value)%360+540)%360-180),Zr(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"value",p,this)},get:function(){return Rn(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"value",this)}}],[{key:"configure",value:function(p){return p.barWidth>50&&(p.barWidth=50),isNaN(p.startAngle)&&(p.startAngle=45),isNaN(p.ticksAngle)&&(p.ticksAngle=270),p.ticksAngle>360&&(p.ticksAngle=360),p.ticksAngle<0&&(p.ticksAngle=0),p.startAngle<0&&(p.startAngle=0),p.startAngle>360&&(p.startAngle=360),p}}]),h}(Vt);r!==void 0&&(r.RadialGauge=Ma),Vt.initialize("RadialGauge",eo);var to=Object.assign({},Vi,{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}),Wn=function(u){function h(p){return i(this,h),p=Object.assign({},to,p||{}),e(this,(h.__proto__||Object.getPrototypeOf(h)).call(this,h.configure(p)))}return t(h,u),wi(h,[{key:"draw",value:function(){try{var p=this.canvas,w=[-p.drawX,-p.drawY,p.drawWidth,p.drawHeight],k=w[0],x=w[1],O=w[2],N=w[3],R=this.options;if(!p.elementClone.initialized){var W=p.contextClone;W.clearRect(k,x,O,N),this.emit("beforePlate"),this.drawBox=gt(W,R,k,x,O,N),this.emit("beforeBar"),Xe.apply(void 0,[W,R].concat(n(this.drawBox))),p.contextClone.barDimensions=W.barDimensions,this.emit("beforeHighlights"),cn(W,R),this.emit("beforeMinorTicks"),Xr(W,R),this.emit("beforeMajorTicks"),ti(W,R),this.emit("beforeNumbers"),Qr(W,R),this.emit("beforeTitle"),In(W,R),this.emit("beforeUnits"),Bt(W,R),p.elementClone.initialized=!0}this.canvas.commit(),p.context.clearRect(k,x,O,N),p.context.drawImage(p.elementClone,k,x,O,N),this.emit("beforeProgressBar"),pi.apply(void 0,[p.context,R].concat(n(this.drawBox))),this.emit("beforeNeedle"),Ta(p.context,R),this.emit("beforeValueBox"),Da.apply(void 0,[p.context,R,R.animatedValue?this.options.value:this.value].concat(n(this.drawBox))),Rn(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"draw",this).call(this)}catch(q){Z.verifyError(q)}return this}}],[{key:"configure",value:function(p){return p.barStrokeWidth>=p.barWidth&&(p.barStrokeWidth=Se(p.barWidth/2)),p.hasLeft=ei("right",p),p.hasRight=ei("left",p),p.value>p.maxValue&&(p.value=p.maxValue),p.value<p.minValue&&(p.value=p.minValue),Vt.configure(p)}}]),h}(Vt);r!==void 0&&(r.LinearGauge=Wn),Vt.initialize("LinearGauge",to),typeof Qo<"u"&&Object.assign(r,{Collection:l,GenericOptions:Vi,Animation:Dr,BaseGauge:Vt,drawings:Z,SmartCanvas:Yt,DomObserver:zi,vendorize:o})})(typeof Qo<"u"?Qo.exports:window)});var qu=Ra((XE,ka)=>{(function(r,n,e,t){"use strict";var i=["","webkit","Moz","MS","ms","o"],o=n.createElement("div"),a="function",l=Math.round,d=Math.abs,f=Date.now;function s(g,b,S){return setTimeout(Y(g,S),b)}function c(g,b,S){return Array.isArray(g)?(m(g,S[b],S),!0):!1}function m(g,b,S){var I;if(g)if(g.forEach)g.forEach(b,S);else if(g.length!==t)for(I=0;I<g.length;)b.call(S,g[I],I,g),I++;else for(I in g)g.hasOwnProperty(I)&&b.call(S,g[I],I,g)}function y(g,b,S){var I="DEPRECATED METHOD: "+b+`
|
|
1
|
+
import{A as Bd,B as Fd,C as tn,D as Cn,E as Hd,F as Ud,G as Gd,H as qd,I as jd,J as $d,K as Yd,a as Zi,b as Ji,c as Mo,d as _n,e as Wr,f as vi,g as en,h as Jt,i as Ao,j as Oo,k as lr,l as wn,m as Io,n as Ro,o as yi,p as es,q as No,r as Vr,s as zd,t as ts,u as is,v as ns,w as rs,x as dr,y as zr,z as Ld}from"./chunk-ZI6ZQBWP.js";import{b as Zd,g as Jd}from"./chunk-SE4IM4AK.js";import{a as ct,b as Md,c as Eo,d as ar,e as sr,f as Ad,g as Od,h as Id}from"./chunk-P457HUA5.js";import"./chunk-YEKIPLS4.js";import{a as Rd,b as Nd,c as Wd,d as Vd,e as Po,f as Do}from"./chunk-JX2ORMOL.js";import{a as or}from"./chunk-WXZOPZRK.js";import{a as Xd,b as Kd,c as Qd}from"./chunk-5R5BV2XK.js";import{a as xo}from"./chunk-OKDNLHRI.js";import"./chunk-FRJM6ZUY.js";import"./chunk-BDMHNK6W.js";import{a as Zl,b as Jl,c as ed,d as td,e as id,f as nd,g as Jn,h as rd,i as _o,k as od,l as ad,m as sd,n as dd,o as di,p as Mt}from"./chunk-BVMWKICM.js";import{f as Ed}from"./chunk-NXU5RHTP.js";import{a as Dt}from"./chunk-DAVKA3BG.js";import{a as Dd}from"./chunk-OJAICHIT.js";import{a as Pi,b as jl,c as $l,d as Zn,e as yo,g as bo,h as Ut,i as gi,j as er,k as ne,l as tr,m as li,n as Ki,o as ld,p as Qi,x as Pd}from"./chunk-UPJO7TXR.js";import{$ as Ga,$b as V,$c as Nr,$e as Td,A as Kt,Aa as F,Ab as pe,Ac as xe,Ba as Xe,Bc as Ee,Be as qt,Ca as fi,Cb as Rr,Cc as Pe,Ce as To,Da as Ui,Dc as Vl,Ea as Gi,Eb as mt,Ec as zl,Ee as Zt,Fa as co,Fb as yt,Fc as Ll,Fe as Qa,Gb as ji,Gc as $i,Ge as _d,H as wl,Hd as Yl,He as wd,I as Fa,Ic as Xn,Id as Xl,J as Cl,Ja as Ge,Jd as Kl,K as Sl,Kd as Ql,Ke as Za,L as Un,Ld as Xi,Mc as Kn,Md as Gt,Na as qi,Nb as Rl,Nc as go,Oa as $n,Oc as Bl,P as lo,Qa as tt,Qc as Xa,Qe as Cd,R as kl,Ra as Pl,Rb as ce,Re as rr,S as Ha,Sb as De,Sc as Nt,Sd as ir,Se as Sd,T as Ua,Tb as Me,Tc as Ct,Te as Ja,Ub as Yn,Uc as Se,Ud as Ka,V as Tl,W as xl,Wa as $a,Wb as xi,Xb as Ei,Xc as Yi,Xd as cd,Xe as kd,Yb as U,Yc as q,Zb as v,Zc as Be,Zd as hd,_b as w,_d as ud,a as X,aa as Gn,ac as po,ad as Qn,ae as wo,af as xd,b as et,bc as fo,c as bl,d as za,dc as ee,de as Co,e as Ir,ed as vo,ee as md,f as Hn,fa as qa,fc as L,fe as pd,g as ao,gc as ie,ge as fd,ha as Qt,hb as ho,hc as si,hd as Fl,he as So,ia as ja,ib as uo,ic as Et,ie as gd,jc as gn,kb as Dl,kc as it,la as Fe,lb as P,lc as qe,m as vt,mc as je,nb as Ml,ne as vd,o as Hi,oa as st,ob as Al,oc as Le,oe as yd,pa as oi,pb as mo,pc as nt,pe as nr,qb as Ht,qc as Nl,qd as Hl,ra as qn,rc as _e,re as ko,sa as jn,sb as Ya,sc as Pt,se as yn,t as _l,ta as M,tb as Ol,te as bn,u as La,uc as vn,ud as Ul,va as El,vc as D,wb as G,wc as rt,x as so,xb as ai,xc as pt,xd as Gl,yb as Ti,yc as Wl,z as Ba,za as B,zb as Il,zd as ql,ze as bd}from"./chunk-5KKRPVJE.js";var hs=za(Ho=>{(function(){"use strict";var r=function(){this.init()};r.prototype={init:function(){var s=this||n;return s._counter=1e3,s._html5AudioPool=[],s.html5PoolSize=10,s._codecs={},s._howls=[],s._muted=!1,s._volume=1,s._canPlayEvent="canplaythrough",s._navigator=typeof window<"u"&&window.navigator?window.navigator:null,s.masterGain=null,s.noAudio=!1,s.usingWebAudio=!0,s.autoSuspend=!0,s.ctx=null,s.autoUnlock=!0,s._setup(),s},volume:function(s){var c=this||n;if(s=parseFloat(s),c.ctx||p(),typeof s<"u"&&s>=0&&s<=1){if(c._volume=s,c._muted)return c;c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s,n.ctx.currentTime);for(var m=0;m<c._howls.length;m++)if(!c._howls[m]._webAudio)for(var y=c._howls[m]._getSoundIds(),_=0;_<y.length;_++){var T=c._howls[m]._soundById(y[_]);T&&T._node&&(T._node.volume=T._volume*s)}return c}return c._volume},mute:function(s){var c=this||n;c.ctx||p(),c._muted=s,c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s?0:c._volume,n.ctx.currentTime);for(var m=0;m<c._howls.length;m++)if(!c._howls[m]._webAudio)for(var y=c._howls[m]._getSoundIds(),_=0;_<y.length;_++){var T=c._howls[m]._soundById(y[_]);T&&T._node&&(T._node.muted=s?!0:T._muted)}return c},stop:function(){for(var s=this||n,c=0;c<s._howls.length;c++)s._howls[c].stop();return s},unload:function(){for(var s=this||n,c=s._howls.length-1;c>=0;c--)s._howls[c].unload();return s.usingWebAudio&&s.ctx&&typeof s.ctx.close<"u"&&(s.ctx.close(),s.ctx=null,p()),s},codecs:function(s){return(this||n)._codecs[s.replace(/^x-/,"")]},_setup:function(){var s=this||n;if(s.state=s.ctx&&s.ctx.state||"suspended",s._autoSuspend(),!s.usingWebAudio)if(typeof Audio<"u")try{var c=new Audio;typeof c.oncanplaythrough>"u"&&(s._canPlayEvent="canplay")}catch{s.noAudio=!0}else s.noAudio=!0;try{var c=new Audio;c.muted&&(s.noAudio=!0)}catch{}return s.noAudio||s._setupCodecs(),s},_setupCodecs:function(){var s=this||n,c=null;try{c=typeof Audio<"u"?new Audio:null}catch{return s}if(!c||typeof c.canPlayType!="function")return s;var m=c.canPlayType("audio/mpeg;").replace(/^no$/,""),y=s._navigator?s._navigator.userAgent:"",_=y.match(/OPR\/(\d+)/g),T=_&&parseInt(_[0].split("/")[1],10)<33,E=y.indexOf("Safari")!==-1&&y.indexOf("Chrome")===-1,z=y.match(/Version\/(.*?) /),Y=E&&z&&parseInt(z[1],10)<15;return s._codecs={mp3:!!(!T&&(m||c.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!m,opus:!!c.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(c.canPlayType('audio/wav; codecs="1"')||c.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!c.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!c.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(c.canPlayType("audio/x-m4a;")||c.canPlayType("audio/m4a;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(c.canPlayType("audio/x-m4b;")||c.canPlayType("audio/m4b;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(c.canPlayType("audio/x-mp4;")||c.canPlayType("audio/mp4;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!Y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!Y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!c.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(c.canPlayType("audio/x-flac;")||c.canPlayType("audio/flac;")).replace(/^no$/,"")},s},_unlockAudio:function(){var s=this||n;if(!(s._audioUnlocked||!s.ctx)){s._audioUnlocked=!1,s.autoUnlock=!1,!s._mobileUnloaded&&s.ctx.sampleRate!==44100&&(s._mobileUnloaded=!0,s.unload()),s._scratchBuffer=s.ctx.createBuffer(1,1,22050);var c=function(m){for(;s._html5AudioPool.length<s.html5PoolSize;)try{var y=new Audio;y._unlocked=!0,s._releaseHtml5Audio(y)}catch{s.noAudio=!0;break}for(var _=0;_<s._howls.length;_++)if(!s._howls[_]._webAudio)for(var T=s._howls[_]._getSoundIds(),E=0;E<T.length;E++){var z=s._howls[_]._soundById(T[E]);z&&z._node&&!z._node._unlocked&&(z._node._unlocked=!0,z._node.load())}s._autoResume();var Y=s.ctx.createBufferSource();Y.buffer=s._scratchBuffer,Y.connect(s.ctx.destination),typeof Y.start>"u"?Y.noteOn(0):Y.start(0),typeof s.ctx.resume=="function"&&s.ctx.resume(),Y.onended=function(){Y.disconnect(0),s._audioUnlocked=!0,document.removeEventListener("touchstart",c,!0),document.removeEventListener("touchend",c,!0),document.removeEventListener("click",c,!0),document.removeEventListener("keydown",c,!0);for(var te=0;te<s._howls.length;te++)s._howls[te]._emit("unlock")}};return document.addEventListener("touchstart",c,!0),document.addEventListener("touchend",c,!0),document.addEventListener("click",c,!0),document.addEventListener("keydown",c,!0),s}},_obtainHtml5Audio:function(){var s=this||n;if(s._html5AudioPool.length)return s._html5AudioPool.pop();var c=new Audio().play();return c&&typeof Promise<"u"&&(c instanceof Promise||typeof c.then=="function")&&c.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(s){var c=this||n;return s._unlocked&&c._html5AudioPool.push(s),c},_autoSuspend:function(){var s=this;if(!(!s.autoSuspend||!s.ctx||typeof s.ctx.suspend>"u"||!n.usingWebAudio)){for(var c=0;c<s._howls.length;c++)if(s._howls[c]._webAudio){for(var m=0;m<s._howls[c]._sounds.length;m++)if(!s._howls[c]._sounds[m]._paused)return s}return s._suspendTimer&&clearTimeout(s._suspendTimer),s._suspendTimer=setTimeout(function(){if(s.autoSuspend){s._suspendTimer=null,s.state="suspending";var y=function(){s.state="suspended",s._resumeAfterSuspend&&(delete s._resumeAfterSuspend,s._autoResume())};s.ctx.suspend().then(y,y)}},3e4),s}},_autoResume:function(){var s=this;if(!(!s.ctx||typeof s.ctx.resume>"u"||!n.usingWebAudio))return s.state==="running"&&s.ctx.state!=="interrupted"&&s._suspendTimer?(clearTimeout(s._suspendTimer),s._suspendTimer=null):s.state==="suspended"||s.state==="running"&&s.ctx.state==="interrupted"?(s.ctx.resume().then(function(){s.state="running";for(var c=0;c<s._howls.length;c++)s._howls[c]._emit("resume")}),s._suspendTimer&&(clearTimeout(s._suspendTimer),s._suspendTimer=null)):s.state==="suspending"&&(s._resumeAfterSuspend=!0),s}};var n=new r,e=function(s){var c=this;if(!s.src||s.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}c.init(s)};e.prototype={init:function(s){var c=this;return n.ctx||p(),c._autoplay=s.autoplay||!1,c._format=typeof s.format!="string"?s.format:[s.format],c._html5=s.html5||!1,c._muted=s.mute||!1,c._loop=s.loop||!1,c._pool=s.pool||5,c._preload=typeof s.preload=="boolean"||s.preload==="metadata"?s.preload:!0,c._rate=s.rate||1,c._sprite=s.sprite||{},c._src=typeof s.src!="string"?s.src:[s.src],c._volume=s.volume!==void 0?s.volume:1,c._xhr={method:s.xhr&&s.xhr.method?s.xhr.method:"GET",headers:s.xhr&&s.xhr.headers?s.xhr.headers:null,withCredentials:s.xhr&&s.xhr.withCredentials?s.xhr.withCredentials:!1},c._duration=0,c._state="unloaded",c._sounds=[],c._endTimers={},c._queue=[],c._playLock=!1,c._onend=s.onend?[{fn:s.onend}]:[],c._onfade=s.onfade?[{fn:s.onfade}]:[],c._onload=s.onload?[{fn:s.onload}]:[],c._onloaderror=s.onloaderror?[{fn:s.onloaderror}]:[],c._onplayerror=s.onplayerror?[{fn:s.onplayerror}]:[],c._onpause=s.onpause?[{fn:s.onpause}]:[],c._onplay=s.onplay?[{fn:s.onplay}]:[],c._onstop=s.onstop?[{fn:s.onstop}]:[],c._onmute=s.onmute?[{fn:s.onmute}]:[],c._onvolume=s.onvolume?[{fn:s.onvolume}]:[],c._onrate=s.onrate?[{fn:s.onrate}]:[],c._onseek=s.onseek?[{fn:s.onseek}]:[],c._onunlock=s.onunlock?[{fn:s.onunlock}]:[],c._onresume=[],c._webAudio=n.usingWebAudio&&!c._html5,typeof n.ctx<"u"&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(c),c._autoplay&&c._queue.push({event:"play",action:function(){c.play()}}),c._preload&&c._preload!=="none"&&c.load(),c},load:function(){var s=this,c=null;if(n.noAudio){s._emit("loaderror",null,"No audio support.");return}typeof s._src=="string"&&(s._src=[s._src]);for(var m=0;m<s._src.length;m++){var y,_;if(s._format&&s._format[m])y=s._format[m];else{if(_=s._src[m],typeof _!="string"){s._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}y=/^data:audio\/([^;,]+);/i.exec(_),y||(y=/\.([^.]+)$/.exec(_.split("?",1)[0])),y&&(y=y[1].toLowerCase())}if(y||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),y&&n.codecs(y)){c=s._src[m];break}}if(!c){s._emit("loaderror",null,"No codec support for selected audio sources.");return}return s._src=c,s._state="loading",window.location.protocol==="https:"&&c.slice(0,5)==="http:"&&(s._html5=!0,s._webAudio=!1),new t(s),s._webAudio&&o(s),s},play:function(s,c){var m=this,y=null;if(typeof s=="number")y=s,s=null;else{if(typeof s=="string"&&m._state==="loaded"&&!m._sprite[s])return null;if(typeof s>"u"&&(s="__default",!m._playLock)){for(var _=0,T=0;T<m._sounds.length;T++)m._sounds[T]._paused&&!m._sounds[T]._ended&&(_++,y=m._sounds[T]._id);_===1?s=null:y=null}}var E=y?m._soundById(y):m._inactiveSound();if(!E)return null;if(y&&!s&&(s=E._sprite||"__default"),m._state!=="loaded"){E._sprite=s,E._ended=!1;var z=E._id;return m._queue.push({event:"play",action:function(){m.play(z)}}),z}if(y&&!E._paused)return c||m._loadQueue("play"),E._id;m._webAudio&&n._autoResume();var Y=Math.max(0,E._seek>0?E._seek:m._sprite[s][0]/1e3),te=Math.max(0,(m._sprite[s][0]+m._sprite[s][1])/1e3-Y),be=te*1e3/Math.abs(E._rate),He=m._sprite[s][0]/1e3,$e=(m._sprite[s][0]+m._sprite[s][1])/1e3;E._sprite=s,E._ended=!1;var Qe=function(){E._paused=!1,E._seek=Y,E._start=He,E._stop=$e,E._loop=!!(E._loop||m._sprite[s][2])};if(Y>=$e){m._ended(E);return}var se=E._node;if(m._webAudio){var ht=function(){m._playLock=!1,Qe(),m._refreshBuffer(E);var ut=E._muted||m._muted?0:E._volume;se.gain.setValueAtTime(ut,n.ctx.currentTime),E._playStart=n.ctx.currentTime,typeof se.bufferSource.start>"u"?E._loop?se.bufferSource.noteGrainOn(0,Y,86400):se.bufferSource.noteGrainOn(0,Y,te):E._loop?se.bufferSource.start(0,Y,86400):se.bufferSource.start(0,Y,te),be!==1/0&&(m._endTimers[E._id]=setTimeout(m._ended.bind(m,E),be)),c||setTimeout(function(){m._emit("play",E._id),m._loadQueue()},0)};n.state==="running"&&n.ctx.state!=="interrupted"?ht():(m._playLock=!0,m.once("resume",ht),m._clearTimer(E._id))}else{var lt=function(){se.currentTime=Y,se.muted=E._muted||m._muted||n._muted||se.muted,se.volume=E._volume*n.volume(),se.playbackRate=E._rate;try{var ut=se.play();if(ut&&typeof Promise<"u"&&(ut instanceof Promise||typeof ut.then=="function")?(m._playLock=!0,Qe(),ut.then(function(){m._playLock=!1,se._unlocked=!0,c?m._loadQueue():m._emit("play",E._id)}).catch(function(){m._playLock=!1,m._emit("playerror",E._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),E._ended=!0,E._paused=!0})):c||(m._playLock=!1,Qe(),m._emit("play",E._id)),se.playbackRate=E._rate,se.paused){m._emit("playerror",E._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}s!=="__default"||E._loop?m._endTimers[E._id]=setTimeout(m._ended.bind(m,E),be):(m._endTimers[E._id]=function(){m._ended(E),se.removeEventListener("ended",m._endTimers[E._id],!1)},se.addEventListener("ended",m._endTimers[E._id],!1))}catch(Ot){m._emit("playerror",E._id,Ot)}};se.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(se.src=m._src,se.load());var zt=window&&window.ejecta||!se.readyState&&n._navigator.isCocoonJS;if(se.readyState>=3||zt)lt();else{m._playLock=!0,m._state="loading";var ft=function(){m._state="loaded",lt(),se.removeEventListener(n._canPlayEvent,ft,!1)};se.addEventListener(n._canPlayEvent,ft,!1),m._clearTimer(E._id)}}return E._id},pause:function(s){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"pause",action:function(){c.pause(s)}}),c;for(var m=c._getSoundIds(s),y=0;y<m.length;y++){c._clearTimer(m[y]);var _=c._soundById(m[y]);if(_&&!_._paused&&(_._seek=c.seek(m[y]),_._rateSeek=0,_._paused=!0,c._stopFade(m[y]),_._node))if(c._webAudio){if(!_._node.bufferSource)continue;typeof _._node.bufferSource.stop>"u"?_._node.bufferSource.noteOff(0):_._node.bufferSource.stop(0),c._cleanBuffer(_._node)}else(!isNaN(_._node.duration)||_._node.duration===1/0)&&_._node.pause();arguments[1]||c._emit("pause",_?_._id:null)}return c},stop:function(s,c){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"stop",action:function(){m.stop(s)}}),m;for(var y=m._getSoundIds(s),_=0;_<y.length;_++){m._clearTimer(y[_]);var T=m._soundById(y[_]);T&&(T._seek=T._start||0,T._rateSeek=0,T._paused=!0,T._ended=!0,m._stopFade(y[_]),T._node&&(m._webAudio?T._node.bufferSource&&(typeof T._node.bufferSource.stop>"u"?T._node.bufferSource.noteOff(0):T._node.bufferSource.stop(0),m._cleanBuffer(T._node)):(!isNaN(T._node.duration)||T._node.duration===1/0)&&(T._node.currentTime=T._start||0,T._node.pause(),T._node.duration===1/0&&m._clearSound(T._node))),c||m._emit("stop",T._id))}return m},mute:function(s,c){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"mute",action:function(){m.mute(s,c)}}),m;if(typeof c>"u")if(typeof s=="boolean")m._muted=s;else return m._muted;for(var y=m._getSoundIds(c),_=0;_<y.length;_++){var T=m._soundById(y[_]);T&&(T._muted=s,T._interval&&m._stopFade(T._id),m._webAudio&&T._node?T._node.gain.setValueAtTime(s?0:T._volume,n.ctx.currentTime):T._node&&(T._node.muted=n._muted?!0:s),m._emit("mute",T._id))}return m},volume:function(){var s=this,c=arguments,m,y;if(c.length===0)return s._volume;if(c.length===1||c.length===2&&typeof c[1]>"u"){var _=s._getSoundIds(),T=_.indexOf(c[0]);T>=0?y=parseInt(c[0],10):m=parseFloat(c[0])}else c.length>=2&&(m=parseFloat(c[0]),y=parseInt(c[1],10));var E;if(typeof m<"u"&&m>=0&&m<=1){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"volume",action:function(){s.volume.apply(s,c)}}),s;typeof y>"u"&&(s._volume=m),y=s._getSoundIds(y);for(var z=0;z<y.length;z++)E=s._soundById(y[z]),E&&(E._volume=m,c[2]||s._stopFade(y[z]),s._webAudio&&E._node&&!E._muted?E._node.gain.setValueAtTime(m,n.ctx.currentTime):E._node&&!E._muted&&(E._node.volume=m*n.volume()),s._emit("volume",E._id))}else return E=y?s._soundById(y):s._sounds[0],E?E._volume:0;return s},fade:function(s,c,m,y){var _=this;if(_._state!=="loaded"||_._playLock)return _._queue.push({event:"fade",action:function(){_.fade(s,c,m,y)}}),_;s=Math.min(Math.max(0,parseFloat(s)),1),c=Math.min(Math.max(0,parseFloat(c)),1),m=parseFloat(m),_.volume(s,y);for(var T=_._getSoundIds(y),E=0;E<T.length;E++){var z=_._soundById(T[E]);if(z){if(y||_._stopFade(T[E]),_._webAudio&&!z._muted){var Y=n.ctx.currentTime,te=Y+m/1e3;z._volume=s,z._node.gain.setValueAtTime(s,Y),z._node.gain.linearRampToValueAtTime(c,te)}_._startFadeInterval(z,s,c,m,T[E],typeof y>"u")}}return _},_startFadeInterval:function(s,c,m,y,_,T){var E=this,z=c,Y=m-c,te=Math.abs(Y/.01),be=Math.max(4,te>0?y/te:y),He=Date.now();s._fadeTo=m,s._interval=setInterval(function(){var $e=(Date.now()-He)/y;He=Date.now(),z+=Y*$e,z=Math.round(z*100)/100,Y<0?z=Math.max(m,z):z=Math.min(m,z),E._webAudio?s._volume=z:E.volume(z,s._id,!0),T&&(E._volume=z),(m<c&&z<=m||m>c&&z>=m)&&(clearInterval(s._interval),s._interval=null,s._fadeTo=null,E.volume(m,s._id),E._emit("fade",s._id))},be)},_stopFade:function(s){var c=this,m=c._soundById(s);return m&&m._interval&&(c._webAudio&&m._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(m._interval),m._interval=null,c.volume(m._fadeTo,s),m._fadeTo=null,c._emit("fade",s)),c},loop:function(){var s=this,c=arguments,m,y,_;if(c.length===0)return s._loop;if(c.length===1)if(typeof c[0]=="boolean")m=c[0],s._loop=m;else return _=s._soundById(parseInt(c[0],10)),_?_._loop:!1;else c.length===2&&(m=c[0],y=parseInt(c[1],10));for(var T=s._getSoundIds(y),E=0;E<T.length;E++)_=s._soundById(T[E]),_&&(_._loop=m,s._webAudio&&_._node&&_._node.bufferSource&&(_._node.bufferSource.loop=m,m&&(_._node.bufferSource.loopStart=_._start||0,_._node.bufferSource.loopEnd=_._stop,s.playing(T[E])&&(s.pause(T[E],!0),s.play(T[E],!0)))));return s},rate:function(){var s=this,c=arguments,m,y;if(c.length===0)y=s._sounds[0]._id;else if(c.length===1){var _=s._getSoundIds(),T=_.indexOf(c[0]);T>=0?y=parseInt(c[0],10):m=parseFloat(c[0])}else c.length===2&&(m=parseFloat(c[0]),y=parseInt(c[1],10));var E;if(typeof m=="number"){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"rate",action:function(){s.rate.apply(s,c)}}),s;typeof y>"u"&&(s._rate=m),y=s._getSoundIds(y);for(var z=0;z<y.length;z++)if(E=s._soundById(y[z]),E){s.playing(y[z])&&(E._rateSeek=s.seek(y[z]),E._playStart=s._webAudio?n.ctx.currentTime:E._playStart),E._rate=m,s._webAudio&&E._node&&E._node.bufferSource?E._node.bufferSource.playbackRate.setValueAtTime(m,n.ctx.currentTime):E._node&&(E._node.playbackRate=m);var Y=s.seek(y[z]),te=(s._sprite[E._sprite][0]+s._sprite[E._sprite][1])/1e3-Y,be=te*1e3/Math.abs(E._rate);(s._endTimers[y[z]]||!E._paused)&&(s._clearTimer(y[z]),s._endTimers[y[z]]=setTimeout(s._ended.bind(s,E),be)),s._emit("rate",E._id)}}else return E=s._soundById(y),E?E._rate:s._rate;return s},seek:function(){var s=this,c=arguments,m,y;if(c.length===0)s._sounds.length&&(y=s._sounds[0]._id);else if(c.length===1){var _=s._getSoundIds(),T=_.indexOf(c[0]);T>=0?y=parseInt(c[0],10):s._sounds.length&&(y=s._sounds[0]._id,m=parseFloat(c[0]))}else c.length===2&&(m=parseFloat(c[0]),y=parseInt(c[1],10));if(typeof y>"u")return 0;if(typeof m=="number"&&(s._state!=="loaded"||s._playLock))return s._queue.push({event:"seek",action:function(){s.seek.apply(s,c)}}),s;var E=s._soundById(y);if(E)if(typeof m=="number"&&m>=0){var z=s.playing(y);z&&s.pause(y,!0),E._seek=m,E._ended=!1,s._clearTimer(y),!s._webAudio&&E._node&&!isNaN(E._node.duration)&&(E._node.currentTime=m);var Y=function(){z&&s.play(y,!0),s._emit("seek",y)};if(z&&!s._webAudio){var te=function(){s._playLock?setTimeout(te,0):Y()};setTimeout(te,0)}else Y()}else if(s._webAudio){var be=s.playing(y)?n.ctx.currentTime-E._playStart:0,He=E._rateSeek?E._rateSeek-E._seek:0;return E._seek+(He+be*Math.abs(E._rate))}else return E._node.currentTime;return s},playing:function(s){var c=this;if(typeof s=="number"){var m=c._soundById(s);return m?!m._paused:!1}for(var y=0;y<c._sounds.length;y++)if(!c._sounds[y]._paused)return!0;return!1},duration:function(s){var c=this,m=c._duration,y=c._soundById(s);return y&&(m=c._sprite[y._sprite][1]/1e3),m},state:function(){return this._state},unload:function(){for(var s=this,c=s._sounds,m=0;m<c.length;m++)c[m]._paused||s.stop(c[m]._id),s._webAudio||(s._clearSound(c[m]._node),c[m]._node.removeEventListener("error",c[m]._errorFn,!1),c[m]._node.removeEventListener(n._canPlayEvent,c[m]._loadFn,!1),c[m]._node.removeEventListener("ended",c[m]._endFn,!1),n._releaseHtml5Audio(c[m]._node)),delete c[m]._node,s._clearTimer(c[m]._id);var y=n._howls.indexOf(s);y>=0&&n._howls.splice(y,1);var _=!0;for(m=0;m<n._howls.length;m++)if(n._howls[m]._src===s._src||s._src.indexOf(n._howls[m]._src)>=0){_=!1;break}return i&&_&&delete i[s._src],n.noAudio=!1,s._state="unloaded",s._sounds=[],s=null,null},on:function(s,c,m,y){var _=this,T=_["_on"+s];return typeof c=="function"&&T.push(y?{id:m,fn:c,once:y}:{id:m,fn:c}),_},off:function(s,c,m){var y=this,_=y["_on"+s],T=0;if(typeof c=="number"&&(m=c,c=null),c||m)for(T=0;T<_.length;T++){var E=m===_[T].id;if(c===_[T].fn&&E||!c&&E){_.splice(T,1);break}}else if(s)y["_on"+s]=[];else{var z=Object.keys(y);for(T=0;T<z.length;T++)z[T].indexOf("_on")===0&&Array.isArray(y[z[T]])&&(y[z[T]]=[])}return y},once:function(s,c,m){var y=this;return y.on(s,c,m,1),y},_emit:function(s,c,m){for(var y=this,_=y["_on"+s],T=_.length-1;T>=0;T--)(!_[T].id||_[T].id===c||s==="load")&&(setTimeout((function(E){E.call(this,c,m)}).bind(y,_[T].fn),0),_[T].once&&y.off(s,_[T].fn,_[T].id));return y._loadQueue(s),y},_loadQueue:function(s){var c=this;if(c._queue.length>0){var m=c._queue[0];m.event===s&&(c._queue.shift(),c._loadQueue()),s||m.action()}return c},_ended:function(s){var c=this,m=s._sprite;if(!c._webAudio&&s._node&&!s._node.paused&&!s._node.ended&&s._node.currentTime<s._stop)return setTimeout(c._ended.bind(c,s),100),c;var y=!!(s._loop||c._sprite[m][2]);if(c._emit("end",s._id),!c._webAudio&&y&&c.stop(s._id,!0).play(s._id),c._webAudio&&y){c._emit("play",s._id),s._seek=s._start||0,s._rateSeek=0,s._playStart=n.ctx.currentTime;var _=(s._stop-s._start)*1e3/Math.abs(s._rate);c._endTimers[s._id]=setTimeout(c._ended.bind(c,s),_)}return c._webAudio&&!y&&(s._paused=!0,s._ended=!0,s._seek=s._start||0,s._rateSeek=0,c._clearTimer(s._id),c._cleanBuffer(s._node),n._autoSuspend()),!c._webAudio&&!y&&c.stop(s._id,!0),c},_clearTimer:function(s){var c=this;if(c._endTimers[s]){if(typeof c._endTimers[s]!="function")clearTimeout(c._endTimers[s]);else{var m=c._soundById(s);m&&m._node&&m._node.removeEventListener("ended",c._endTimers[s],!1)}delete c._endTimers[s]}return c},_soundById:function(s){for(var c=this,m=0;m<c._sounds.length;m++)if(s===c._sounds[m]._id)return c._sounds[m];return null},_inactiveSound:function(){var s=this;s._drain();for(var c=0;c<s._sounds.length;c++)if(s._sounds[c]._ended)return s._sounds[c].reset();return new t(s)},_drain:function(){var s=this,c=s._pool,m=0,y=0;if(!(s._sounds.length<c)){for(y=0;y<s._sounds.length;y++)s._sounds[y]._ended&&m++;for(y=s._sounds.length-1;y>=0;y--){if(m<=c)return;s._sounds[y]._ended&&(s._webAudio&&s._sounds[y]._node&&s._sounds[y]._node.disconnect(0),s._sounds.splice(y,1),m--)}}},_getSoundIds:function(s){var c=this;if(typeof s>"u"){for(var m=[],y=0;y<c._sounds.length;y++)m.push(c._sounds[y]._id);return m}else return[s]},_refreshBuffer:function(s){var c=this;return s._node.bufferSource=n.ctx.createBufferSource(),s._node.bufferSource.buffer=i[c._src],s._panner?s._node.bufferSource.connect(s._panner):s._node.bufferSource.connect(s._node),s._node.bufferSource.loop=s._loop,s._loop&&(s._node.bufferSource.loopStart=s._start||0,s._node.bufferSource.loopEnd=s._stop||0),s._node.bufferSource.playbackRate.setValueAtTime(s._rate,n.ctx.currentTime),c},_cleanBuffer:function(s){var c=this,m=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(!s.bufferSource)return c;if(n._scratchBuffer&&s.bufferSource&&(s.bufferSource.onended=null,s.bufferSource.disconnect(0),m))try{s.bufferSource.buffer=n._scratchBuffer}catch{}return s.bufferSource=null,c},_clearSound:function(s){var c=/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent);c||(s.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(s){this._parent=s,this.init()};t.prototype={init:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++n._counter,c._sounds.push(s),s.create(),s},create:function(){var s=this,c=s._parent,m=n._muted||s._muted||s._parent._muted?0:s._volume;return c._webAudio?(s._node=typeof n.ctx.createGain>"u"?n.ctx.createGainNode():n.ctx.createGain(),s._node.gain.setValueAtTime(m,n.ctx.currentTime),s._node.paused=!0,s._node.connect(n.masterGain)):n.noAudio||(s._node=n._obtainHtml5Audio(),s._errorFn=s._errorListener.bind(s),s._node.addEventListener("error",s._errorFn,!1),s._loadFn=s._loadListener.bind(s),s._node.addEventListener(n._canPlayEvent,s._loadFn,!1),s._endFn=s._endListener.bind(s),s._node.addEventListener("ended",s._endFn,!1),s._node.src=c._src,s._node.preload=c._preload===!0?"auto":c._preload,s._node.volume=m*n.volume(),s._node.load()),s},reset:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._rateSeek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++n._counter,s},_errorListener:function(){var s=this;s._parent._emit("loaderror",s._id,s._node.error?s._node.error.code:0),s._node.removeEventListener("error",s._errorFn,!1)},_loadListener:function(){var s=this,c=s._parent;c._duration=Math.ceil(s._node.duration*10)/10,Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue()),s._node.removeEventListener(n._canPlayEvent,s._loadFn,!1)},_endListener:function(){var s=this,c=s._parent;c._duration===1/0&&(c._duration=Math.ceil(s._node.duration*10)/10,c._sprite.__default[1]===1/0&&(c._sprite.__default[1]=c._duration*1e3),c._ended(s)),s._node.removeEventListener("ended",s._endFn,!1)}};var i={},o=function(s){var c=s._src;if(i[c]){s._duration=i[c].duration,d(s);return}if(/^data:[^;]+;base64,/.test(c)){for(var m=atob(c.split(",")[1]),y=new Uint8Array(m.length),_=0;_<m.length;++_)y[_]=m.charCodeAt(_);l(y.buffer,s)}else{var T=new XMLHttpRequest;T.open(s._xhr.method,c,!0),T.withCredentials=s._xhr.withCredentials,T.responseType="arraybuffer",s._xhr.headers&&Object.keys(s._xhr.headers).forEach(function(E){T.setRequestHeader(E,s._xhr.headers[E])}),T.onload=function(){var E=(T.status+"")[0];if(E!=="0"&&E!=="2"&&E!=="3"){s._emit("loaderror",null,"Failed loading audio file with status: "+T.status+".");return}l(T.response,s)},T.onerror=function(){s._webAudio&&(s._html5=!0,s._webAudio=!1,s._sounds=[],delete i[c],s.load())},a(T)}},a=function(s){try{s.send()}catch{s.onerror()}},l=function(s,c){var m=function(){c._emit("loaderror",null,"Decoding audio data failed.")},y=function(_){_&&c._sounds.length>0?(i[c._src]=_,d(c,_)):m()};typeof Promise<"u"&&n.ctx.decodeAudioData.length===1?n.ctx.decodeAudioData(s).then(y).catch(m):n.ctx.decodeAudioData(s,y,m)},d=function(s,c){c&&!s._duration&&(s._duration=c.duration),Object.keys(s._sprite).length===0&&(s._sprite={__default:[0,s._duration*1e3]}),s._state!=="loaded"&&(s._state="loaded",s._emit("load"),s._loadQueue())},p=function(){if(n.usingWebAudio){try{typeof AudioContext<"u"?n.ctx=new AudioContext:typeof webkitAudioContext<"u"?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch{n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var s=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),c=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),m=c?parseInt(c[1],10):null;if(s&&m&&m<9){var y=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!y&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=typeof n.ctx.createGain>"u"?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:n,Howl:e}}),typeof Ho<"u"&&(Ho.Howler=n,Ho.Howl=e),typeof global<"u"?(global.HowlerGlobal=r,global.Howler=n,global.Howl=e,global.Sound=t):typeof window<"u"&&(window.HowlerGlobal=r,window.Howler=n,window.Howl=e,window.Sound=t)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(n){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var t=e._howls.length-1;t>=0;t--)e._howls[t].stereo(n);return e},HowlerGlobal.prototype.pos=function(n,e,t){var i=this;if(!i.ctx||!i.ctx.listener)return i;if(e=typeof e!="number"?i._pos[1]:e,t=typeof t!="number"?i._pos[2]:t,typeof n=="number")i._pos=[n,e,t],typeof i.ctx.listener.positionX<"u"?(i.ctx.listener.positionX.setTargetAtTime(i._pos[0],Howler.ctx.currentTime,.1),i.ctx.listener.positionY.setTargetAtTime(i._pos[1],Howler.ctx.currentTime,.1),i.ctx.listener.positionZ.setTargetAtTime(i._pos[2],Howler.ctx.currentTime,.1)):i.ctx.listener.setPosition(i._pos[0],i._pos[1],i._pos[2]);else return i._pos;return i},HowlerGlobal.prototype.orientation=function(n,e,t,i,o,a){var l=this;if(!l.ctx||!l.ctx.listener)return l;var d=l._orientation;if(e=typeof e!="number"?d[1]:e,t=typeof t!="number"?d[2]:t,i=typeof i!="number"?d[3]:i,o=typeof o!="number"?d[4]:o,a=typeof a!="number"?d[5]:a,typeof n=="number")l._orientation=[n,e,t,i,o,a],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(n,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(n,e,t,i,o,a);else return d;return l},Howl.prototype.init=function(n){return function(e){var t=this;return t._orientation=e.orientation||[1,0,0],t._stereo=e.stereo||null,t._pos=e.pos||null,t._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},t._onstereo=e.onstereo?[{fn:e.onstereo}]:[],t._onpos=e.onpos?[{fn:e.onpos}]:[],t._onorientation=e.onorientation?[{fn:e.onorientation}]:[],n.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,e){var t=this;if(!t._webAudio)return t;if(t._state!=="loaded")return t._queue.push({event:"stereo",action:function(){t.stereo(n,e)}}),t;var i=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof n=="number")t._stereo=n,t._pos=[n,0,0];else return t._stereo;for(var o=t._getSoundIds(e),a=0;a<o.length;a++){var l=t._soundById(o[a]);if(l)if(typeof n=="number")l._stereo=n,l._pos=[n,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&r(l,i),i==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(n,0,0):l._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),t._emit("stereo",l._id);else return l._stereo}return t},Howl.prototype.pos=function(n,e,t,i){var o=this;if(!o._webAudio)return o;if(o._state!=="loaded")return o._queue.push({event:"pos",action:function(){o.pos(n,e,t,i)}}),o;if(e=typeof e!="number"?0:e,t=typeof t!="number"?-.5:t,typeof i>"u")if(typeof n=="number")o._pos=[n,e,t];else return o._pos;for(var a=o._getSoundIds(i),l=0;l<a.length;l++){var d=o._soundById(a[l]);if(d)if(typeof n=="number")d._pos=[n,e,t],d._node&&((!d._panner||d._panner.pan)&&r(d,"spatial"),typeof d._panner.positionX<"u"?(d._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),d._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),d._panner.positionZ.setValueAtTime(t,Howler.ctx.currentTime)):d._panner.setPosition(n,e,t)),o._emit("pos",d._id);else return d._pos}return o},Howl.prototype.orientation=function(n,e,t,i){var o=this;if(!o._webAudio)return o;if(o._state!=="loaded")return o._queue.push({event:"orientation",action:function(){o.orientation(n,e,t,i)}}),o;if(e=typeof e!="number"?o._orientation[1]:e,t=typeof t!="number"?o._orientation[2]:t,typeof i>"u")if(typeof n=="number")o._orientation=[n,e,t];else return o._orientation;for(var a=o._getSoundIds(i),l=0;l<a.length;l++){var d=o._soundById(a[l]);if(d)if(typeof n=="number")d._orientation=[n,e,t],d._node&&(d._panner||(d._pos||(d._pos=o._pos||[0,0,-.5]),r(d,"spatial")),typeof d._panner.orientationX<"u"?(d._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),d._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),d._panner.orientationZ.setValueAtTime(t,Howler.ctx.currentTime)):d._panner.setOrientation(n,e,t)),o._emit("orientation",d._id);else return d._orientation}return o},Howl.prototype.pannerAttr=function(){var n=this,e=arguments,t,i,o;if(!n._webAudio)return n;if(e.length===0)return n._pannerAttr;if(e.length===1)if(typeof e[0]=="object")t=e[0],typeof i>"u"&&(t.pannerAttr||(t.pannerAttr={coneInnerAngle:t.coneInnerAngle,coneOuterAngle:t.coneOuterAngle,coneOuterGain:t.coneOuterGain,distanceModel:t.distanceModel,maxDistance:t.maxDistance,refDistance:t.refDistance,rolloffFactor:t.rolloffFactor,panningModel:t.panningModel}),n._pannerAttr={coneInnerAngle:typeof t.pannerAttr.coneInnerAngle<"u"?t.pannerAttr.coneInnerAngle:n._coneInnerAngle,coneOuterAngle:typeof t.pannerAttr.coneOuterAngle<"u"?t.pannerAttr.coneOuterAngle:n._coneOuterAngle,coneOuterGain:typeof t.pannerAttr.coneOuterGain<"u"?t.pannerAttr.coneOuterGain:n._coneOuterGain,distanceModel:typeof t.pannerAttr.distanceModel<"u"?t.pannerAttr.distanceModel:n._distanceModel,maxDistance:typeof t.pannerAttr.maxDistance<"u"?t.pannerAttr.maxDistance:n._maxDistance,refDistance:typeof t.pannerAttr.refDistance<"u"?t.pannerAttr.refDistance:n._refDistance,rolloffFactor:typeof t.pannerAttr.rolloffFactor<"u"?t.pannerAttr.rolloffFactor:n._rolloffFactor,panningModel:typeof t.pannerAttr.panningModel<"u"?t.pannerAttr.panningModel:n._panningModel});else return o=n._soundById(parseInt(e[0],10)),o?o._pannerAttr:n._pannerAttr;else e.length===2&&(t=e[0],i=parseInt(e[1],10));for(var a=n._getSoundIds(i),l=0;l<a.length;l++)if(o=n._soundById(a[l]),o){var d=o._pannerAttr;d={coneInnerAngle:typeof t.coneInnerAngle<"u"?t.coneInnerAngle:d.coneInnerAngle,coneOuterAngle:typeof t.coneOuterAngle<"u"?t.coneOuterAngle:d.coneOuterAngle,coneOuterGain:typeof t.coneOuterGain<"u"?t.coneOuterGain:d.coneOuterGain,distanceModel:typeof t.distanceModel<"u"?t.distanceModel:d.distanceModel,maxDistance:typeof t.maxDistance<"u"?t.maxDistance:d.maxDistance,refDistance:typeof t.refDistance<"u"?t.refDistance:d.refDistance,rolloffFactor:typeof t.rolloffFactor<"u"?t.rolloffFactor:d.rolloffFactor,panningModel:typeof t.panningModel<"u"?t.panningModel:d.panningModel};var p=o._panner;p||(o._pos||(o._pos=n._pos||[0,0,-.5]),r(o,"spatial"),p=o._panner),p.coneInnerAngle=d.coneInnerAngle,p.coneOuterAngle=d.coneOuterAngle,p.coneOuterGain=d.coneOuterGain,p.distanceModel=d.distanceModel,p.maxDistance=d.maxDistance,p.refDistance=d.refDistance,p.rolloffFactor=d.rolloffFactor,p.panningModel=d.panningModel}return n},Sound.prototype.init=function(n){return function(){var e=this,t=e._parent;e._orientation=t._orientation,e._stereo=t._stereo,e._pos=t._pos,e._pannerAttr=t._pannerAttr,n.call(this),e._stereo?t.stereo(e._stereo):e._pos&&t.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(n){return function(){var e=this,t=e._parent;return e._orientation=t._orientation,e._stereo=t._stereo,e._pos=t._pos,e._pannerAttr=t._pannerAttr,e._stereo?t.stereo(e._stereo):e._pos?t.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,t._refreshBuffer(e)),n.call(this)}}(Sound.prototype.reset);var r=function(n,e){e=e||"spatial",e==="spatial"?(n._panner=Howler.ctx.createPanner(),n._panner.coneInnerAngle=n._pannerAttr.coneInnerAngle,n._panner.coneOuterAngle=n._pannerAttr.coneOuterAngle,n._panner.coneOuterGain=n._pannerAttr.coneOuterGain,n._panner.distanceModel=n._pannerAttr.distanceModel,n._panner.maxDistance=n._pannerAttr.maxDistance,n._panner.refDistance=n._pannerAttr.refDistance,n._panner.rolloffFactor=n._pannerAttr.rolloffFactor,n._panner.panningModel=n._pannerAttr.panningModel,typeof n._panner.positionX<"u"?(n._panner.positionX.setValueAtTime(n._pos[0],Howler.ctx.currentTime),n._panner.positionY.setValueAtTime(n._pos[1],Howler.ctx.currentTime),n._panner.positionZ.setValueAtTime(n._pos[2],Howler.ctx.currentTime)):n._panner.setPosition(n._pos[0],n._pos[1],n._pos[2]),typeof n._panner.orientationX<"u"?(n._panner.orientationX.setValueAtTime(n._orientation[0],Howler.ctx.currentTime),n._panner.orientationY.setValueAtTime(n._orientation[1],Howler.ctx.currentTime),n._panner.orientationZ.setValueAtTime(n._orientation[2],Howler.ctx.currentTime)):n._panner.setOrientation(n._orientation[0],n._orientation[1],n._orientation[2])):(n._panner=Howler.ctx.createStereoPanner(),n._panner.pan.setValueAtTime(n._stereo,Howler.ctx.currentTime)),n._panner.connect(n._node),n._paused||n._parent.pause(n._id,!0).play(n._id,!0)}})()});var Ds=za((MC,ea)=>{(function(r){"use strict";function n(u){if(Array.isArray(u)){for(var h=0,f=Array(u.length);h<u.length;h++)f[h]=u[h];return f}return Array.from(u)}function e(u,h){if(!u)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!h||typeof h!="object"&&typeof h!="function"?u:h}function t(u,h){if(typeof h!="function"&&h!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof h);u.prototype=Object.create(h&&h.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}}),h&&(Object.setPrototypeOf?Object.setPrototypeOf(u,h):u.__proto__=h)}function i(u,h){if(!(u instanceof h))throw new TypeError("Cannot call a class as a function")}function o(u,h){if(h||(h=typeof window>"u"?global:window),h[u]!==void 0)return h[u];if(Oi===null){var f=window.getComputedStyle(document.documentElement,"");Oi=(Array.prototype.slice.call(f).join("").match(/-(moz|webkit|ms)-/)||f.OLink===""&&["","o"]||["",""])[1]}if(Oi==="")return null;var C=u.charAt(0).toUpperCase()+u.substr(1),k=h[Oi+C];return k!==void 0?k:null}function a(u,h,f,C,k,x,O){if(typeof C!="function")throw new TypeError("Invalid animation rule:",C);var N=u-f,R=N/k,W=0;R>1&&(R=1),R!==1&&(W=C(R),isFinite(W)&&!isNaN(W)&&(R=W)),h&&h(R),N<k?O.frame=io(function(j){return a(j,h,f,C,k,x,O)}):(x&&x(),O.inProgress=!1)}function l(){Array.prototype.constructor.apply(this,arguments)}function d(u){if(!(u instanceof DOMException&&u.result===2152923147))throw u}function p(u,h){return h.replace(Ia,function(f,C){var k=u[C];return k!==void 0?k:f})}function s(u){return u.majorTicks instanceof Array||(u.majorTicks=u.majorTicks?[u.majorTicks]:[]),u.majorTicks.length||(u.majorTicks.push(Z.formatMajorTickNumber(u.minValue,u)),u.majorTicks.push(Z.formatMajorTickNumber(u.maxValue,u))),[u.tickSide!=="right",u.tickSide!=="left"]}function c(u,h,f,C,k,x){u.beginPath(),u.moveTo(h+x,f),u.lineTo(h+C-x,f),u.quadraticCurveTo(h+C,f,h+C,f+x),u.lineTo(h+C,f+k-x),u.quadraticCurveTo(h+C,f+k,h+C-x,f+k),u.lineTo(h+x,f+k),u.quadraticCurveTo(h,f+k,h,f+k-x),u.lineTo(h,f+x),u.quadraticCurveTo(h,f,h+x,f),u.closePath()}function m(u,h){var f=h.valueDec,C=h.valueInt,k=0,x=void 0,O=void 0,N=void 0;if(u=parseFloat(u),N=u<0,u=Math.abs(u),f>0){for(O=u.toFixed(f).toString().split("."),x=C-O[0].length;k<x;++k)O[0]="0"+O[0];O=(N?"-":"")+O[0]+"."+O[1]}else{for(O=Math.round(u).toString(),x=C-O.length;k<x;++k)O="0"+O;O=(N?"-":"")+O}return O}function y(u,h){var f=void 0,C=!1;return f=h.majorTicksDec===0?Math.round(u).toString():u.toFixed(h.majorTicksDec),h.majorTicksInt>1?(C=~f.indexOf("."),~f.indexOf("-")?"-"+[h.majorTicksInt+h.majorTicksDec+2+(C?1:0)-f.length].join("0")+f.replace("-",""):[h.majorTicksInt+h.majorTicksDec+1+(C?1:0)-f.length].join("0")+f):f}function _(u){return u*Math.PI/180}function T(u,h){return{x:-u*Math.sin(h),y:u*Math.cos(h)}}function E(u,h,f,C){var k=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4],x=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0,O=u.createLinearGradient(k?0:x,k?x:0,k?0:C,k?C:0);return O.addColorStop(0,h),O.addColorStop(1,f),O}function z(u,h){h.needleShadow&&(u.shadowOffsetX=2,u.shadowOffsetY=2,u.shadowBlur=10,u.shadowColor=h.colorNeedleShadowDown)}function Y(u,h,f){return u["font"+h+"Style"]+" "+u["font"+h+"Weight"]+" "+u["font"+h+"Size"]*f+"px "+u["font"+h]}function te(u){u.shadowOffsetX=null,u.shadowOffsetY=null,u.shadowBlur=null,u.shadowColor="",u.strokeStyle=null,u.lineWidth=0,u.save()}function be(u,h,f,C){h.valueTextShadow&&(u.shadowOffsetX=f,u.shadowOffsetY=f,u.shadowBlur=C,u.shadowColor=h.colorValueTextShadow)}function He(u,h,f,C,k,x){if(h.valueBox){te(u);var O=h.valueDec?1+h.valueDec:0,N="9".repeat(Math.max.apply(null,[String(parseInt(f)).length+O].concat(h.majorTicks.map(function(ye){return String(parseInt(ye,10)).length+O})))),R=h.valueText||m(f,h),W=x/200,j=x/100,$=.4*j,J=1.2*j;u.font=Y(h,"Value",W),be(u,h,$,J);var de=u.measureText(h.valueText?R:"-"+m(Number(N),h)).width;te(u);var me=parseFloat(h.fontValueSize)*W+$+J,Oe=j*parseFloat(h.valueBoxStroke),fe=2*x-2*Oe,Ne=de+10*j,We=1.1*me+$+J,Ve=j*h.valueBoxBorderRadius,ue=(parseFloat(h.valueBoxWidth)||0)/100*fe;ue>Ne&&(Ne=ue),Ne>fe&&(Ne=fe);var Ce=C-Ne/2,ge=k-We/2,ae=k-5.75*j;if(u.beginPath(),Ve?c(u,Ce,ge,Ne,We,Ve):u.rect(Ce,ge,Ne,We),Oe){var ve=u.createRadialGradient(C,ae,10*j,C,ae,20*j);ve.addColorStop(0,h.colorValueBoxRect),ve.addColorStop(1,h.colorValueBoxRectEnd),u.strokeStyle=ve,u.lineWidth=Oe,u.stroke()}h.colorValueBoxShadow&&(u.shadowBlur=1.2*j,u.shadowColor=h.colorValueBoxShadow),h.colorValueBoxBackground&&(u.fillStyle=h.colorValueBoxBackground,u.fill()),u.closePath(),u.restore(),be(u,h,$,J),u.fillStyle=h.colorValueText,u.textAlign="center",u.textBaseline="alphabetic",u.fillText(R,Ce+Ne/2,k+We/2-me/3),u.restore()}}function $e(u){var h=u.value,f=u.minValue,C=u.maxValue,k=.01*(C-f);return{normal:h<f?f:h>C?C:h,indented:h<f?f-k:h>C?C+k:h}}function Qe(u,h,f,C,k){f.beginPath(),f.arc(0,0,Bt(u),0,2*fn,!0),f.lineWidth=h,f.strokeStyle=k?Z.linearGradient(f,C,k,u):C,f.stroke(),f.closePath()}function se(u,h){var f=Xt.pixelRatio;return u.maxRadius||(u.maxRadius=u.max-h.borderShadowWidth-h.borderOuterWidth*f-h.borderMiddleWidth*f-h.borderInnerWidth*f+(h.borderOuterWidth?.5:0)+(h.borderMiddleWidth?.5:0)+(h.borderInnerWidth?.5:0)),u.maxRadius}function ht(u,h){function f($,J,de,me,Oe,fe){return J&&(!fe&&h.borderShadowWidth&&(de.save(),de.shadowBlur=h.borderShadowWidth,de.shadowColor=h.colorBorderShadow),Qe($,J*C,de,me,Oe),!fe&&h.borderShadowWidth&&(fe=!0,de.restore())),fe}var C=Xt.pixelRatio,k=h.borderShadowWidth*C,x=u.max-k-h.borderOuterWidth*C/2,O=x-h.borderOuterWidth*C/2-h.borderMiddleWidth*C/2+.5,N=O-h.borderMiddleWidth*C/2-h.borderInnerWidth*C/2+.5,R=se(u,h),W=void 0,j=!1;u.save(),j=f(x,h.borderOuterWidth,u,h.colorBorderOuter,h.colorBorderOuterEnd,j),j=f(O,h.borderMiddleWidth,u,h.colorBorderMiddle,h.colorBorderMiddleEnd,j),j=f(N,h.borderInnerWidth,u,h.colorBorderInner,h.colorBorderInnerEnd,j),!j&&h.borderShadowWidth&&(u.shadowBlur=h.borderShadowWidth,u.shadowColor=h.colorBorderShadow),u.beginPath(),u.arc(0,0,Bt(R),0,2*fn,!0),h.colorPlateEnd?(W=u.createRadialGradient(0,0,R/2,0,0,R),W.addColorStop(0,h.colorPlate),W.addColorStop(1,h.colorPlateEnd)):W=h.colorPlate,u.fillStyle=W,u.fill(),u.closePath(),u.restore()}function lt(u,h){if(h.highlights!=="false"&&h.highlights.length&&h.highlightsWidth!==0){var f=u.max*(parseFloat(h.highlightsWidth)||0)/100,C=Bt(ft(u,h)-f/2),k=h.highlights.length,x=(h.maxValue-h.minValue)/h.ticksAngle;u.save();for(var O=0;O<k;O++){var N=h.highlights[O];u.lineWidth=f,u.lineCap=h.highlightsLineCap,u.strokeStyle=N.color,u.beginPath(),u.rotate(zn),u.arc(0,0,C,Z.radians(h.startAngle+(N.from-h.minValue)/x),Z.radians(h.startAngle+(N.to-h.minValue)/x),!1),u.stroke(),u.closePath(),u.restore(),u.save()}u.restore()}}function zt(u,h){var f=ft(u,h),C=void 0,k=void 0,x=void 0,O=0,N=Math.abs(h.minorTicks)||0,R=h.ticksAngle/(h.maxValue-h.minValue);h.exactTicks?(k=h.maxValue-h.minValue,C=N?k/N:0,O=(Ft.mod(h.majorTicks[0],N)||0)*R):C=N*(h.majorTicks.length-1),u.lineWidth=Xt.pixelRatio,u.strokeStyle=h.colorMinorTicks||h.colorStrokeTicks,u.save();for(var W=0;W<C;++W)(x=h.startAngle+O+W*(h.ticksAngle/C))<=h.ticksAngle+h.startAngle&&(u.rotate(Z.radians(x)),u.beginPath(),u.moveTo(0,f),u.lineTo(0,f-.075*u.max),Vi(u));u.restore()}function ft(u,h){var f=u.max/100;return se(u,h)-5*f-(h.barWidth?2*(parseFloat(h.barStrokeWidth)||0)+((parseFloat(h.barWidth)||0)+5)*f:0)}function ut(u,h){Z.prepareTicks(h);var f=Bt(ft(u,h)),C=void 0,k=h.majorTicks.length,x=Xt.pixelRatio;u.lineWidth=2*x,C=h.colorMajorTicks instanceof Array?h.colorMajorTicks:new Array(k).fill(h.colorStrokeTicks||h.colorMajorTicks);for(var O=0;O<k;++O)u.save(),u.strokeStyle=C[O],u.rotate(Z.radians(Ot(h,h.exactTicks?h.majorTicks[O]:O,k))),u.beginPath(),u.moveTo(0,f),u.lineTo(0,f-.15*u.max),u.stroke(),u.closePath(),u.restore();h.strokeTicks&&(u.save(),u.strokeStyle=h.colorStrokeTicks||C[0],u.rotate(zn),u.beginPath(),u.arc(0,0,f,Z.radians(h.startAngle),Z.radians(h.startAngle+h.ticksAngle),!1),u.stroke(),u.closePath(),u.restore())}function Ot(u,h,f){if(u.exactTicks){var C=u.ticksAngle/(u.maxValue-u.minValue);return u.startAngle+C*(h-u.minValue)}return u.startAngle+h*(u.ticksAngle/(f-1))}function Vi(u){u.stroke(),u.restore(),u.closePath(),u.save()}function K(u,h){var f=ft(u,h)-.15*u.max,C={},k=0,x=h.majorTicks.length,O=h.animationTarget!=="needle",N=h.colorNumbers instanceof Array?h.colorNumbers:new Array(x).fill(h.colorNumbers),R=O?-(h.value-h.minValue)/(h.maxValue-h.minValue)*h.ticksAngle:0;for(O&&(u.save(),u.rotate(-Z.radians(R))),u.font=Z.font(h,"Numbers",u.max/200),u.lineWidth=0,u.textAlign="center",u.textBaseline="middle";k<x;++k){var W=R+Ot(h,h.exactTicks?h.majorTicks[k]:k,x),j=u.measureText(h.majorTicks[k]).width,$=h.fontNumbersSize,J=Math.sqrt(j*j+$*$)/2,de=Z.radialPoint(f-J-h.numbersMargin/100*u.max,Z.radians(W));W===360&&(W=0),C[W]||(C[W]=!0,u.fillStyle=N[k],u.fillText(h.majorTicks[k],de.x,de.y))}O&&u.restore()}function re(u,h){h.title&&(u.save(),u.font=Z.font(h,"Title",u.max/200),u.fillStyle=h.colorTitle,u.textAlign="center",u.fillText(h.title,0,-u.max/4.25,.8*u.max),u.restore())}function le(u,h){h.units&&(u.save(),u.font=Z.font(h,"Units",u.max/200),u.fillStyle=h.colorUnits,u.textAlign="center",u.fillText(Z.formatContext(h,h.units),0,u.max/3.25,.8*u.max),u.restore())}function Ae(u,h){if(h.needle){var f=h.animationTarget!=="needle",C=h.ticksAngle<360?Z.normalizedValue(h).indented:h.value,k=f?h.startAngle:h.startAngle+(C-h.minValue)/(h.maxValue-h.minValue)*h.ticksAngle;h.barStartPosition==="right"&&(k=h.startAngle+h.ticksAngle-(C-h.minValue)/(h.maxValue-h.minValue)*h.ticksAngle);var x=se(u,h),O=Bt(x/100*h.needleCircleSize),N=Bt(x/100*h.needleCircleSize*.75),R=Bt(x/100*h.needleEnd),W=Bt(h.needleStart?x/100*h.needleStart:0),j=x/100*h.needleWidth,$=x/100*h.needleWidth/2,J=Xt.pixelRatio;u.save(),Z.drawNeedleShadow(u,h),u.rotate(Z.radians(k)),u.fillStyle=Z.linearGradient(u,h.colorNeedle,h.colorNeedleEnd,R-W),h.needleType==="arrow"?(u.beginPath(),u.moveTo(-$,-W),u.lineTo(-j,0),u.lineTo(-1*J,R),u.lineTo(J,R),u.lineTo(j,0),u.lineTo($,-W),u.closePath(),u.fill(),u.beginPath(),u.lineTo(-.5*J,R),u.lineTo(-1*J,R),u.lineTo(-j,0),u.lineTo(-$,-W),u.lineTo($/2*J-2*J,-W),u.closePath(),u.fillStyle=h.colorNeedleShadowUp,u.fill()):(u.beginPath(),u.moveTo(-$,R),u.lineTo(-$,W),u.lineTo($,W),u.lineTo($,R),u.closePath(),u.fill()),u.restore(),h.needleCircleSize&&(u.save(),Z.drawNeedleShadow(u,h),h.needleCircleOuter&&(u.beginPath(),u.arc(0,0,O,0,2*fn,!0),u.fillStyle=Z.linearGradient(u,h.colorNeedleCircleOuter,h.colorNeedleCircleOuterEnd,O),u.fill(),u.closePath()),h.needleCircleInner&&(u.beginPath(),u.arc(0,0,N,0,2*fn,!0),u.fillStyle=Z.linearGradient(u,h.colorNeedleCircleInner,h.colorNeedleCircleInnerEnd,N),u.fill(),u.closePath()),u.restore())}}function dt(u,h,f){Z.drawValueBox(u,h,f,0,u.max-.33*u.max,u.max)}function bt(u){var h=u.startAngle,f=u.startAngle+u.ticksAngle,C=h,k=h+(Z.normalizedValue(u).normal-u.minValue)/(u.maxValue-u.minValue)*u.ticksAngle;if(u.barStartPosition==="middle"){var x=.5*(u.minValue+u.maxValue);u.value<x?(C=180-(x-Z.normalizedValue(u).normal)/(u.maxValue-u.minValue)*u.ticksAngle,k=180):(C=180,k=180+(Z.normalizedValue(u).normal-x)/(u.maxValue-u.minValue)*u.ticksAngle)}else u.barStartPosition==="right"&&(C=f-k+h,k=f);return{startAngle:C,endAngle:k}}function _t(u,h){var f=u.max/100,C=se(u,h)-5*f,k=parseFloat(h.barStrokeWidth+"")||0,x=(parseFloat(h.barWidth+"")||0)*f,O=C-2*k-x,N=(C-O)/2,R=O+N,W=k/R,j=h.startAngle,$=h.startAngle+h.ticksAngle;if(u.save(),u.rotate(zn),k&&(u.beginPath(),u.arc(0,0,R,Z.radians(j)-W,Z.radians($)+W,!1),u.strokeStyle=h.colorBarStroke,u.lineWidth=2*N,u.stroke(),u.closePath()),x&&(u.beginPath(),u.arc(0,0,R,Z.radians(j),Z.radians($),!1),u.strokeStyle=h.colorBar,u.lineWidth=x,u.stroke(),u.closePath(),h.barShadow&&(u.save(),u.beginPath(),u.arc(0,0,C,Z.radians(j),Z.radians($),!1),u.clip(),u.beginPath(),u.strokeStyle=h.colorBar,u.lineWidth=1,u.shadowBlur=h.barShadow,u.shadowColor=h.colorBarShadow,u.shadowOffsetX=0,u.shadowOffsetY=0,u.arc(0,0,C,Z.radians(h.startAngle),Z.radians(h.startAngle+h.ticksAngle),!1),u.stroke(),u.closePath(),u.restore()),h.barProgress)){var J=bt(h),de=J.startAngle,me=J.endAngle;u.beginPath(),u.arc(0,0,R,Z.radians(de),Z.radians(me),!1),u.strokeStyle=h.colorBarProgress,u.lineWidth=x,u.stroke(),u.closePath()}u.restore()}function It(u){return u.options.animatedValue?u.options.value:u.value}function Ze(u,h,f,C,k,x,O,N){u.beginPath(),u.fillStyle=N?Z.linearGradient(u,O,N,k>x?k:x,x>k,k>x?f:C):O,h>0?Z.roundRect(u,f,C,k,x,h):u.rect(f,C,k,x),u.fill(),u.closePath()}function Nn(u,h,f,C,k,x,O,N,R){u.beginPath(),u.lineWidth=h,u.strokeStyle=R?Z.linearGradient(u,N,R,O,!0,k):N,f>0?Z.roundRect(u,C,k,x,O,f):u.rect(C,k,x,O),u.stroke(),u.closePath()}function gt(u,h,f,C,k,x){function O(ye,Te,Ke,St){return ye&&(!St&&h.borderShadowWidth&&(u.save(),u.shadowBlur=h.borderShadowWidth,u.shadowColor=h.colorBorderShadow),Nn(u,ye*N,R,f+ye*N/2-ae,C+ye*N/2-ae,W,de,Te,Ke),ae+=.5*N,!St&&h.borderShadowWidth&&(St=!0,u.restore())),St}var N=Xt.pixelRatio,R=h.borderRadius*N,W=k-h.borderShadowWidth-h.borderOuterWidth*N,j=W-h.borderOuterWidth*N-h.borderMiddleWidth*N,$=j-h.borderMiddleWidth*N-h.borderInnerWidth*N,J=$-h.borderInnerWidth*N,de=x-h.borderShadowWidth-h.borderOuterWidth*N,me=de-h.borderOuterWidth*N-h.borderMiddleWidth*N,Oe=me-h.borderMiddleWidth*N-h.borderInnerWidth*N,fe=Oe-h.borderInnerWidth*N,Ne=f-(j-W)/2,We=Ne-($-j)/2,Ve=We-(J-$)/2,ue=C-(me-de)/2,Ce=ue-(Oe-me)/2,ge=Ce-(fe-Oe)/2,ae=0,ve=!1;return u.save(),ve=O(h.borderOuterWidth,h.colorBorderOuter,h.colorBorderOuterEnd,ve),ve=O(h.borderMiddleWidth,h.colorBorderMiddle,h.colorBorderMiddleEnd,ve),ve=O(h.borderInnerWidth,h.colorBorderInner,h.colorBorderInnerEnd,ve),!ve&&h.borderShadowWidth&&(u.shadowBlur=h.borderShadowWidth,u.shadowColor=h.colorBorderShadow),Ze(u,R,Ve,ge,J+2*ae,fe+2*ae,h.colorPlate,h.colorPlateEnd),u.restore(),[Ve,ge,J,fe]}function Je(u,h,f,C,k,x){var O=Xt.pixelRatio,N=x>=k,R=N?.85*k:x,W=N?x:k;f=N?we(f+(k-R)/2):f;var j=!!h.title,$=!!h.units,J=!!h.valueBox,de=void 0,me=void 0,Oe=void 0;N?(me=we(.05*W),de=we(.075*W),Oe=we(.11*W),j&&(W-=de,C+=de),$&&(W-=me),J&&(W-=Oe)):(me=de=we(.15*R),j&&(R-=de,C+=de),$&&(R-=me));var fe=2*h.barStrokeWidth,Ne=h.barBeginCircle?we(R*h.barBeginCircle/200-fe/2):0,We=we(R*h.barWidth/100-fe),Ve=we(W*h.barLength/100-fe),ue=we((W-Ve)/2),Ce=we(f+(N?R/2:ue+Ne)),ge=we(C+(N?W-ue-Ne+fe/2:R/2)),ae=!N||h.hasLeft&&h.hasRight?0:(h.hasRight?-1:1)*h.ticksWidth/100*R,ve=N||h.hasLeft&&h.hasRight?0:(h.hasRight?-1:1)*h.ticksWidth/100*R;return u.barDimensions={isVertical:N,width:R,length:W,barWidth:We,barLength:Ve,strokeWidth:fe,barMargin:ue,radius:Ne,pixelRatio:O,barOffset:null,titleMargin:j?de:0,unitsMargin:$?me:0,get ticksLength(){return this.barLength-this.barOffset-this.strokeWidth},X:f+ae,Y:C+ve,x0:Ce+ae,y0:ge+ve,baseX:f,baseY:C,ticksPadding:h.ticksPadding/100},u.barDimensions}function Ue(u,h,f,C,k,x,O){var N=Je(u,h,C,k,x,O),R=N.isVertical,W=N.width,j=N.barWidth,$=N.barLength,J=N.strokeWidth,de=N.barMargin,me=N.radius,Oe=N.x0,fe=N.y0,Ne=N.X,We=N.Y,Ve=$;u.save(),u.beginPath();var ue=null;if(h.barBeginCircle){var Ce=Z.radians(R?270:0),ge=Math.asin(j/2/me),ae=Math.cos(ge),ve=Math.sin(ge),ye=Oe+(R?me*ve:me*ae-J/2),Te=R?fe-me*ae:fe+me*ve,Ke=Bt(R?Te-fe:ye-Oe);ue=we(Ke+me);var St=R?we(Oe-me*ve):ye,kt=R?Te:we(fe-me*ve);f==="progress"&&($=ue+($-ue)*(Z.normalizedValue(h).normal-h.minValue)/(h.maxValue-h.minValue));var Tt=we(ye+$-ue+J/2),ri=we(Te-$+ue-J/2);u.arc(Oe,fe,me,Ce+ge,Ce-ge),R?(u.moveTo(ye,kt),u.lineTo(ye,ri),u.lineTo(St,ri),u.lineTo(St,kt)):(u.moveTo(ye,kt),u.lineTo(Tt,kt),u.lineTo(Tt,Te),u.lineTo(ye,Te))}else{var Bn=we(R?Ne+(W-j)/2:Ne+de),Fn=we(R?We+$+de:We+(W-j)/2);f==="progress"&&($*=(h.value-h.minValue)/(h.maxValue-h.minValue)),R?u.rect(Bn,Fn,j,-$):u.rect(Bn,Fn,$,j)}f!=="progress"&&h.barStrokeWidth&&(u.lineWidth=J,u.strokeStyle=h.colorBarStroke,u.stroke()),f!=="progress"&&h.colorBar?(u.fillStyle=h.colorBarEnd?Z.linearGradient(u,h.colorBar,h.colorBarEnd,$,R,R?We:Ne):h.colorBar,u.fill()):f==="progress"&&h.colorBarProgress&&(u.fillStyle=h.colorBarProgressEnd?Z.linearGradient(u,h.colorBarProgress,h.colorBarProgressEnd,Ve,R,R?We:Ne):h.colorBarProgress,u.fill()),u.closePath(),u.restore(),h.barBeginCircle&&(u.barDimensions.radius+=J),u.barDimensions.barOffset=ue,u.barDimensions.barWidth+=J,u.barDimensions.barLength+=J}function Ye(u,h,f,C,k,x){Ue(u,h,"",f,C,k,x)}function ti(u,h){return h.needleSide!==u||h.tickSide!==u||h.numberSide!==u}function pi(u,h,f,C,k,x){h.barProgress&&Ue(u,h,"progress",f,C,k,x)}function mn(u,h){var f=u.barDimensions,C=f.isVertical,k=f.width,x=f.length,O=f.barWidth,N=f.barOffset,R=f.barMargin,W=f.X,j=f.Y,$=f.ticksLength,J=f.ticksPadding,de=k*(parseFloat(h.highlightsWidth)||0)/100;if(h.highlights&&de){var me=h.tickSide!=="right",Oe=h.tickSide!=="left",fe=0,Ne=h.highlights.length,We=(k-O)/2,Ve=h.maxValue-h.minValue,ue=we(C?W+We:W+R+N),Ce=de,ge=C?j+x-R-N:j+We,ae=we((h.ticksWidth/100+J)*k)+(de-h.ticksWidth/100*k),ve=we(O+J*k);for(u.save();fe<Ne;fe++){var ye=h.highlights[fe],Te=$*Bt(h.minValue-ye.from)/Ve,Ke=$*Bt((ye.to-ye.from)/Ve);u.beginPath(),u.fillStyle=ye.color,C?(me&&u.rect(ue-ae,ge-Te,Ce,-Ke),Oe&&u.rect(ue+ve,ge-Te,Ce,-Ke)):(me&&u.rect(ue+Te,ge-ae,Ke,Ce),Oe&&u.rect(ue+Te,ge+ve,Ke,Ce)),u.fill(),u.closePath()}u.restore()}}function Ci(u,h,f,C,k){u.beginPath(),u.moveTo(h,f),u.lineTo(C,k),u.stroke(),u.closePath()}function zi(u,h,f,C,k,x,O,N,R){var W=u.barDimensions,j=W.isVertical,$=W.length,J=W.barWidth,de=W.barOffset,me=W.barMargin,Oe=W.pixelRatio,fe=W.width,Ne=W.X,We=W.Y,Ve=W.ticksLength,ue=W.ticksPadding,Ce=(fe-J)/2,ge=void 0,ae=void 0,ve=0,ye=f.length,Te=void 0,Ke=R*fe,St=Ce-ue*fe,kt=Ce+J+Ke+ue*fe,Tt=h instanceof Array?h:new Array(f.length).fill(h);u.save(),u.lineWidth=N*Oe;for(var ri=Ve/(k-C);ve<ye;ve++)Te=f[ve],u.strokeStyle=Tt[ve],j?(ae=We+$-me-de+(C-Te)*ri,x&&(ge=Ne+St,Ci(u,ge,ae,we(ge-Ke),ae)),O&&(ge=Ne+kt,Ci(u,ge,ae,we(ge-Ke),ae))):(ge=Ne+me+de-(C-Te)*ri,x&&(ae=We+St,Ci(u,ge,ae,ge,we(ae-Ke))),O&&(ae=We+kt,Ci(u,ge,we(ae),ge,ae-Ke)));u.restore()}function ii(u,h){var f=Z.prepareTicks(h),C=Dr(f,2),k=C[0],x=C[1],O=2,N=(h.maxValue-h.minValue)/(h.majorTicks.length-1),R=h.colorMajorTicks instanceof Array?h.colorMajorTicks:new Array(h.majorTicks.length).fill(h.colorStrokeTicks||h.colorMajorTicks);if(zi(u,R,h.exactTicks?h.majorTicks:h.majorTicks.map(function(Ke,St){return h.minValue+N*St}),h.minValue,h.maxValue,k,x,O,h.ticksWidth/100),h.strokeTicks){var W=u.barDimensions,j=W.isVertical,$=W.length,J=W.width,de=W.barWidth,me=W.barMargin,Oe=W.barOffset,fe=W.X,Ne=W.Y,We=W.ticksLength,Ve=W.pixelRatio,ue=W.ticksPadding,Ce=(J-de)/2+de+ue*J,ge=(J-de)/2-ue*J,ae=void 0,ve=void 0,ye=void 0,Te=void 0;u.strokeStyle=h.colorStrokeTicks||R[0],O*=Ve,j?(ve=Ne+$-me-Oe+O/2,Te=ve-We-O,k&&(ye=ae=we(fe+ge),ni(u,ae,ve,ye,Te)),x&&(ye=ae=we(fe+Ce),ni(u,ae,ve,ye,Te))):(ae=fe+me+Oe-O/2,ye=ae+We+O,k&&(Te=ve=we(Ne+ge),ni(u,ae,ve,ye,Te)),x&&(Te=ve=we(Ne+Ce),ni(u,ae,ve,ye,Te)))}}function ni(u,h,f,C,k){u.beginPath(),u.moveTo(h,f),u.lineTo(C,k),u.stroke(),u.closePath()}function Zr(u,h){var f=Z.prepareTicks(h),C=Dr(f,2),k=C[0],x=C[1],O=[],N=h.minValue,R=Math.abs(h.minorTicks)||0,W=R?(h.maxValue-h.minValue)/(R*(h.majorTicks.length-1)):0;if(R)if(h.exactTicks)for(var j=Ft.mod(h.majorTicks[0],R)||0;N<h.maxValue;N+=R)j+N<h.maxValue&&O.push(j+N);else for(;N<h.maxValue;N+=W)O.push(N);zi(u,h.colorMinorTicks||h.colorStrokeTicks,O,h.minValue,h.maxValue,k,x,1,h.ticksWidthMinor/100)}function Jr(u,h){var f=u.barDimensions,C=f.isVertical,k=f.length,x=f.width,O=f.barWidth,N=f.barMargin,R=f.barOffset,W=f.X,j=f.Y,$=f.ticksLength,J=f.ticksPadding,de=h.maxValue-h.minValue,me=de/(h.majorTicks.length-1),Oe=h.exactTicks?h.majorTicks:h.majorTicks.map(function(Tt,ri){return h.minValue+me*ri}),fe=Oe.length,Ne=h.numberSide!=="right",We=h.numberSide!=="left",Ve=h.fontNumbersSize*x/200,ue=0,Ce=(h.ticksWidth/100+2*J)*x,ge=(x-O)/2-Ce,ae=(x-O)/2+O+Ce,ve=void 0,ye=void 0,Te=void 0,Ke=void 0,St=h.colorNumbers instanceof Array?h.colorNumbers:new Array(fe).fill(h.colorNumbers),kt=h.numbersMargin/100*x;for(u.font=Z.font(h,"Numbers",x/200),u.lineWidth=0,u.textAlign="center";ue<fe;ue++)u.fillStyle=St[ue],Ke=h.majorTicks[ue],Te=h.exactTicks?$*((Oe[ue]-h.minValue)/de):ue*$/(fe-1),C?(ye=j+k-N-R-Te+Ve/3,Ne&&(u.textAlign="right",u.fillText(Ke,W+ge-kt,ye)),We&&(u.textAlign="left",u.fillText(Ke,W+ae+kt,ye))):(u.measureText(Ke).width,ve=W+N+R+Te,Ne&&u.fillText(Ke,ve,j+ge-kt),We&&u.fillText(Ke,ve,j+ae+Ve+kt))}function Wn(u,h){if(h.title){var f=u.barDimensions,C=f.isVertical,k=f.width,x=f.length,O=f.baseX,N=f.baseY,R=f.titleMargin,W=h.fontTitleSize*k/200,j=we(O+(C?k:x)/2),$=we(N+R/2-(C?W:W/2)-.025*(C?x:k));u.save(),u.textAlign="center",u.fillStyle=h.colorTitle,u.font=Z.font(h,"Title",k/200),u.lineWidth=0,u.fillText(h.title,j,$,C?k:x),u.restore()}}function Lt(u,h){if(h.units){var f=u.barDimensions,C=f.isVertical,k=f.width,x=f.length,O=f.baseX,N=f.baseY,R=f.unitsMargin,W=h.fontUnitsSize*k/200,j=we(O+(C?k:x)/2),$=we(N+(C?x:k)+R/2-W/2);u.save(),u.textAlign="center",u.fillStyle=h.colorUnits,u.font=Z.font(h,"Units",k/200),u.lineWidth=0,u.fillText(Z.formatContext(h,h.units),j,$,C?k:x),u.restore()}}function Da(u,h){if(h.needle){var f=u.barDimensions,C=f.isVertical,k=f.width,x=f.length,O=f.barWidth,N=f.barOffset,R=f.barMargin,W=f.ticksLength,j=f.X,$=f.Y,J=f.ticksPadding,de=h.needleSide!=="right",me=h.needleSide!=="left",Oe=W*(Z.normalizedValue(h).indented-h.minValue)/(h.maxValue-h.minValue),fe=(h.ticksWidth/100+J)*k,Ne=O/2+fe,We=Ne*(h.needleEnd/100),Ve=void 0,ue=void 0,Ce=void 0,ge=void 0,ae=h.needleType.toLowerCase()==="arrow"?Aa:Ma,ve=(k-O)/2,ye=Ne*(h.needleStart/100),Te=ve-fe-ye,Ke=ve+O+fe+ye;u.save(),Z.drawNeedleShadow(u,h),C?(Ce=we($+x-R-N-Oe),de&&(Ve=we(j+Te),ue=Ve+We,ae(u,h,Ve,Ce,ue,Ce,We)),me&&(Ve=we(j+Ke),ue=Ve-We,ae(u,h,Ve,Ce,ue,Ce,We,!0))):(Ve=we(j+R+N+Oe),de&&(Ce=we($+Te),ge=Ce+We,ae(u,h,Ve,Ce,Ve,ge,We)),me&&(Ce=we($+Ke),ge=Ce-We,ae(u,h,Ve,Ce,Ve,ge,We,!0))),u.restore()}}function eo(u,h,f,C){return h.colorNeedleEnd?Z.linearGradient(u,C?h.colorNeedleEnd:h.colorNeedle,C?h.colorNeedle:h.colorNeedleEnd,f,!u.barDimensions.isVertical):h.colorNeedle}function Ma(u,h,f,C,k,x,O,N){u.lineWidth=h.needleWidth,u.strokeStyle=eo(u,h,O,N),u.beginPath(),u.moveTo(f,C),u.lineTo(k,x),u.stroke(),u.closePath()}function Aa(u,h,f,C,k,x,O,N){var R=we(.4*O),W=O-R,j=f===k,$=h.needleWidth/2;u.fillStyle=eo(u,h,O,N),u.beginPath(),j?(C>x&&(W*=-1),u.moveTo(f-$,C),u.lineTo(f+$,C),u.lineTo(f+$,C+W),u.lineTo(f,x),u.lineTo(f-$,C+W),u.lineTo(f-$,C)):(f>k&&(W*=-1),u.moveTo(f,C-$),u.lineTo(f,C+$),u.lineTo(f+W,C+$),u.lineTo(k,C),u.lineTo(f+W,C-$),u.lineTo(f,C-$)),u.fill(),u.closePath()}function Oa(u,h,f,C,k,x,O){var N=(parseFloat(h.fontValueSize)||0)*x/200,R=(.11*O-N)/2;u.barDimensions.isVertical&&Z.drawValueBox(u,h,f,C+x/2,k+O-N-R,x)}var Dr=function(){function u(h,f){var C=[],k=!0,x=!1,O=void 0;try{for(var N,R=h[Symbol.iterator]();!(k=(N=R.next()).done)&&(C.push(N.value),!f||C.length!==f);k=!0);}catch(W){x=!0,O=W}finally{try{!k&&R.return&&R.return()}finally{if(x)throw O}}return C}return function(h,f){if(Array.isArray(h))return h;if(Symbol.iterator in Object(h))return u(h,f);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),Vn=function u(h,f,C){h===null&&(h=Function.prototype);var k=Object.getOwnPropertyDescriptor(h,f);if(k===void 0){var x=Object.getPrototypeOf(h);return x===null?void 0:u(x,f,C)}if("value"in k)return k.value;var O=k.get;if(O!==void 0)return O.call(C)},to=function u(h,f,C,k){var x=Object.getOwnPropertyDescriptor(h,f);if(x===void 0){var O=Object.getPrototypeOf(h);O!==null&&u(O,f,C,k)}else if("value"in x&&x.writable)x.value=C;else{var N=x.set;N!==void 0&&N.call(k,C)}return C},Si=function(){function u(h,f){for(var C=0;C<f.length;C++){var k=f[C];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(h,k.key,k)}}return function(h,f,C){return f&&u(h.prototype,f),C&&u(h,C),h}}(),Oi=null,Mr=function(){function u(){i(this,u),this._events={},this.addListener=this.on,this.removeListener=this.off}return Si(u,[{key:"emit",value:function(h){if(this._events[h]){for(var f=0,C=this._events[h].length,k=arguments.length,x=Array(k>1?k-1:0),O=1;O<k;O++)x[O-1]=arguments[O];for(;f<C;f++)this._events[h][f]&&this._events[h][f].apply(this,x)}}},{key:"once",value:function(h){for(var f=arguments.length,C=Array(f>1?f-1:0),k=1;k<f;k++)C[k-1]=arguments[k];for(var x=0,O=C.length,N=this;x<O;x++)(function(){var R=C[x],W=function j(){N.off(h,j),R.apply(N,arguments)};C[x]=W})();this.on.apply(this,[h].concat(C))}},{key:"on",value:function(h){this._events[h]||(this._events[h]=[]);for(var f=0,C=arguments.length<=1?0:arguments.length-1;f<C;f++)this._events[h].push(arguments.length<=f+1?void 0:arguments[f+1])}},{key:"off",value:function(h){if(this._events[h])for(var f=0,C=arguments.length<=1?0:arguments.length-1;f<C;f++)for(var k=arguments.length<=f+1?void 0:arguments[f+1],x=void 0;~(x=this._events[h].indexOf(k));)this._events[h].splice(x,1)}},{key:"removeAllListeners",value:function(h){delete this._events[h]}},{key:"listeners",get:function(){return this._events}}]),u}(),io=o("requestAnimationFrame")||function(u){return setTimeout(function(){return u(new Date().getTime())},1e3/60)},pn={linear:function(u){return u},quad:function(u){return Math.pow(u,2)},dequad:function(u){return 1-pn.quad(1-u)},quint:function(u){return Math.pow(u,5)},dequint:function(u){return 1-Math.pow(1-u,5)},cycle:function(u){return 1-Math.sin(Math.acos(u))},decycle:function(u){return Math.sin(Math.acos(1-u))},bounce:function(u){return 1-pn.debounce(1-u)},debounce:function(u){for(var h=0,f=1;;h+=f,f/=2)if(u>=(7-4*h)/11)return-Math.pow((11-6*h-11*u)/4,2)+Math.pow(f,2)},elastic:function(u){return 1-pn.delastic(1-u)},delastic:function(u){return Math.pow(2,10*(u-1))*Math.cos(20*Math.PI*1.5/3*u)}},Ar=function(){function u(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"linear",f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},k=arguments.length>3&&arguments[3]!==void 0?arguments[3]:function(){};if(i(this,u),this.duration=f,this.rule=h,this.draw=C,this.end=k,typeof this.draw!="function")throw new TypeError("Invalid animation draw callback:",C);if(typeof this.end!="function")throw new TypeError("Invalid animation end callback:",k)}return Si(u,[{key:"animate",value:function(h,f){var C=this;this.frame&&this.cancel();var k=window.performance&&window.performance.now?window.performance.now():o("animationStartTime")||Date.now();h=h||this.draw,f=f||this.end,this.draw=h,this.end=f,this.frame=io(function(x){return a(x,h,k,pn[C.rule]||C.rule,C.duration,f,C)})}},{key:"cancel",value:function(){this.frame&&((o("cancelAnimationFrame")||function(h){})(this.frame),this.frame=null)}},{key:"destroy",value:function(){this.cancel(),this.draw=null,this.end=null}}]),u}();Ar.rules=pn;var Li=function(){function u(h,f,C){i(this,u),this.options=h,this.element=f.toLowerCase(),this.type=u.toDashed(C),this.Type=r[C],this.mutationsObserved=!1,this.isObservable=!!window.MutationObserver,window.GAUGES_NO_AUTO_INIT||u.domReady(this.traverse.bind(this))}return Si(u,[{key:"isValidNode",value:function(h){return!(!h.tagName||h.tagName.toLowerCase()!==this.element||h.getAttribute("data-type")!==this.type)}},{key:"traverse",value:function(){for(var h=document.getElementsByTagName(this.element),f=0,C=h.length;f<C;f++)this.process(h[f]);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(h){for(var f=0,C=h.length;f<C;f++){var k=h[f];if(k.type==="attributes"&&k.attributeName==="data-type"&&this.isValidNode(k.target)&&k.oldValue!==this.type)setTimeout(this.process.bind(this,k.target));else if(k.addedNodes&&k.addedNodes.length)for(var x=0,O=k.addedNodes.length;x<O;x++)setTimeout(this.process.bind(this,k.addedNodes[x]))}}},{key:"process",value:function(h){var f=this;if(!this.isValidNode(h))return null;var C=void 0,k=JSON.parse(JSON.stringify(this.options)),x=null;for(C in k)if(k.hasOwnProperty(C)){var O=u.toAttributeName(C),N=u.parse(h.getAttribute(O));N!=null&&(k[C]=N)}return k.renderTo=h,x=new this.Type(k),x.draw&&x.draw(),this.isObservable&&(x.observer=new MutationObserver(function(R){R.forEach(function(W){if(W.type==="attributes"){var j=W.attributeName.toLowerCase(),$=h.getAttribute(j).toLowerCase();if(j==="data-type"&&$&&$!==f.type)x.observer.disconnect(),delete x.observer,x.destroy&&x.destroy();else if(j.substr(0,5)==="data-"){var J=j.substr(5).split("-").map(function(me,Oe){return Oe?me.charAt(0).toUpperCase()+me.substr(1):me}).join(""),de={};de[J]=u.parse(h.getAttribute(W.attributeName)),J==="value"?x&&(x.value=de[J]):x.update&&x.update(de)}}})}),x.observer.observe(h,{attributes:!0})),x}}],[{key:"parse",value:function(h){if(h==="true")return!0;if(h==="false")return!1;if(h!=="undefined"){if(h==="null")return null;if(/^[-+#.\w\d\s]+(?:,[-+#.\w\d\s]*)+$/.test(h))return h.split(",");try{return JSON.parse(h)}catch{}return h}}},{key:"toDashed",value:function(h){for(var f=h.split(/(?=[A-Z])/),C=1,k=f.length,x=f[0].toLowerCase();C<k;C++)x+="-"+f[C].toLowerCase();return x}},{key:"toCamelCase",value:function(h){for(var f=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],C=h.split(/-/),k=0,x=C.length,O="";k<x;k++)O+=k||f?C[k][0].toUpperCase()+C[k].substr(1).toLowerCase():C[k].toLowerCase();return O}},{key:"toAttributeName",value:function(h){return"data-"+u.toDashed(h)}},{key:"domReady",value:function(h){if(/comp|inter|loaded/.test((window.document||{}).readyState+""))return h();window.addEventListener?window.addEventListener("DOMContentLoaded",h,!1):window.attachEvent&&window.attachEvent("onload",h)}}]),u}(),Xt=function(){function u(h,f,C){i(this,u),u.collection.push(this),this.width=f||0,this.height=C||0,this.element=h,this.init()}return Si(u,[{key:"init",value:function(){var h=u.pixelRatio;this.element.width=this.width*h,this.element.height=this.height*h,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 h=u.collection.indexOf(this);~h&&u.collection.splice(h,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 h=u.pixelRatio;return h!==1&&this.contextClone.scale(h,h),this}},{key:"redraw",value:function(){return this.init(),this.onRedraw&&this.onRedraw(),this}}],[{key:"redraw",value:function(){for(var h=0,f=u.collection.length;h<f;h++)u.collection[h].redraw()}},{key:"pixelRatio",get:function(){return window.devicePixelRatio||1}}]),u}();Xt.collection=[],window.matchMedia&&window.matchMedia("screen and (min-resolution: 2dppx)").addListener(Xt.redraw);var Bi={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};l.prototype=Object.create(Array.prototype),l.prototype.constructor=l,l.prototype.get=function(u){if(typeof u=="string")for(var h=0,f=this.length;h<f;h++){var C=this[h].options.renderTo.tagName?this[h].options.renderTo:document.getElementById(this[h].options.renderTo||"");if(C.getAttribute("id")===u)return this[h]}else if(typeof u=="number")return this[u];return null};var Or="2.2.1",we=Math.round,Bt=Math.abs,Fi=new l;Fi.version=Or;var Ft=function(u){function h(f){i(this,h);var C=e(this,(h.__proto__||Object.getPrototypeOf(h)).call(this)),k=C.constructor.name;if(k==="BaseGauge")throw new TypeError("Attempt to instantiate abstract class!");if(Fi.push(C),f.listeners&&Object.keys(f.listeners).forEach(function(O){(f.listeners[O]instanceof Array?f.listeners[O]:[f.listeners[O]]).forEach(function(N){C.on(O,N)})}),C.version=Or,C.type=r[k]||h,C.initialized=!1,f.minValue=parseFloat(f.minValue),f.maxValue=parseFloat(f.maxValue),f.value=parseFloat(f.value)||0,f.borders||(f.borderInnerWidth=f.borderMiddleWidth=f.borderOuterWidth=0),!f.renderTo)throw TypeError("Canvas element was not specified when creating the Gauge object!");var x=f.renderTo.tagName?f.renderTo:document.getElementById(f.renderTo);if(!(x instanceof HTMLCanvasElement))throw TypeError("Given gauge canvas element is invalid!");return f.width=parseFloat(f.width)||0,f.height=parseFloat(f.height)||0,f.width&&f.height||(f.width||(f.width=x.parentNode?x.parentNode.offsetWidth:x.offsetWidth),f.height||(f.height=x.parentNode?x.parentNode.offsetHeight:x.offsetHeight)),C.options=f||{},C.options.animateOnInit&&(C._value=C.options.value,C.options.value=C.options.minValue),C.canvas=new Xt(x,f.width,f.height),C.canvas.onRedraw=C.draw.bind(C),C.animation=new Ar(f.animationRule,f.animationDuration),C}return t(h,u),Si(h,[{key:"update",value:function(f){return Object.assign(this.options,this.type.configure(f||{})),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 f=Fi.indexOf(this);~f&&Fi.splice(f,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(f){var C=this;f=h.ensureValue(f,this.options.minValue);var k=this.options.value;if(f!==k)if(this.options.animation){if(this.animation.frame&&(this.options.value=this._value,this._value===f))return this.animation.cancel(),void delete this._value;this._value===void 0&&(this._value=f),this.emit("animationStart"),this.animation.animate(function(x){var O=k+(f-k)*x;C.options.animatedValue&&C.emit("value",O,C.value),C.options.value=O,C.draw(),C.emit("animate",x,C.options.value)},function(){C._value!==void 0&&(C.emit("value",C._value,C.value),C.options.value=C._value,delete C._value),C.draw(),C.emit("animationEnd"),C.animation.frame=null})}else this.emit("value",f,this.value),this.options.value=f,this.draw()},get:function(){return this._value===void 0?this.options.value:this._value}}],[{key:"configure",value:function(f){return f}},{key:"initialize",value:function(f,C){return new Li(C,"canvas",f)}},{key:"fromElement",value:function(f){var C=Li.toCamelCase(f.getAttribute("data-type")),k=f.attributes,x=0,O=k.length,N={};if(C){for(/Gauge$/.test(C)||(C+="Gauge");x<O;x++)N[Li.toCamelCase(k[x].name.replace(/^data-/,""),!1)]=Li.parse(k[x].value);new Li(N,f.tagName,C).process(f)}}},{key:"ensureValue",value:function(f){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return f=parseFloat(f),!isNaN(f)&&isFinite(f)||(f=parseFloat(C)||0),f}},{key:"mod",value:function(f,C){return(f%C+C)%C}},{key:"version",get:function(){return Or}}]),h}(Mr);r!==void 0&&(r.BaseGauge=Ft,r.gauges=(window.document||{}).gauges=Fi);var Ia=/{([_a-zA-Z]+[_a-zA-Z0-9]*)}/g,Z={roundRect:c,padValue:m,formatMajorTickNumber:y,radians:_,radialPoint:T,linearGradient:E,drawNeedleShadow:z,drawValueBox:He,verifyError:d,prepareTicks:s,font:Y,normalizedValue:$e,formatContext:p},fn=Math.PI,zn=fn/2,no=Object.assign({},Bi,{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"}),Ra=function(u){function h(f){return i(this,h),f=Object.assign({},no,f||{}),e(this,(h.__proto__||Object.getPrototypeOf(h)).call(this,h.configure(f)))}return t(h,u),Si(h,[{key:"draw",value:function(){try{var f=this.canvas,C=[-f.drawX,-f.drawY,f.drawWidth,f.drawHeight],k=C[0],x=C[1],O=C[2],N=C[3],R=this.options;if(R.animationTarget==="needle"){if(!f.elementClone.initialized){var W=f.contextClone;W.clearRect(k,x,O,N),this.emit("beforePlate"),ht(W,R),this.emit("beforeHighlights"),lt(W,R),this.emit("beforeMinorTicks"),zt(W,R),this.emit("beforeMajorTicks"),ut(W,R),this.emit("beforeNumbers"),K(W,R),this.emit("beforeTitle"),re(W,R),this.emit("beforeUnits"),le(W,R),f.elementClone.initialized=!0}this.canvas.commit(),f.context.clearRect(k,x,O,N),f.context.drawImage(f.elementClone,k,x,O,N),this.emit("beforeProgressBar"),_t(f.context,R),this.emit("beforeValueBox"),dt(f.context,R,It(this)),this.emit("beforeNeedle"),Ae(f.context,R)}else{var j=-Z.radians((R.value-R.minValue)/(R.maxValue-R.minValue)*R.ticksAngle);if(f.context.clearRect(k,x,O,N),this.emit("beforePlate"),ht(f.context,R),f.context.rotate(j),this.emit("beforeHighlights"),lt(f.context,R),this.emit("beforeMinorTicks"),zt(f.context,R),this.emit("beforeMajorTicks"),ut(f.context,R),this.emit("beforeNumbers"),K(f.context,R),this.emit("beforeProgressBar"),_t(f.context,R),f.context.rotate(-j),!f.elementClone.initialized){var $=f.contextClone;$.clearRect(k,x,O,N),this.emit("beforeTitle"),re($,R),this.emit("beforeUnits"),le($,R),this.emit("beforeNeedle"),Ae($,R),f.elementClone.initialized=!0}f.context.drawImage(f.elementClone,k,x,O,N)}this.emit("beforeValueBox"),dt(f.context,R,It(this)),Vn(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"draw",this).call(this)}catch(J){Z.verifyError(J)}return this}},{key:"value",set:function(f){f=Ft.ensureValue(f,this.options.minValue),this.options.animation&&this.options.ticksAngle===360&&this.options.useMinPath&&(this._value=f,f=this.options.value+((f-this.options.value)%360+540)%360-180),to(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"value",f,this)},get:function(){return Vn(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"value",this)}}],[{key:"configure",value:function(f){return f.barWidth>50&&(f.barWidth=50),isNaN(f.startAngle)&&(f.startAngle=45),isNaN(f.ticksAngle)&&(f.ticksAngle=270),f.ticksAngle>360&&(f.ticksAngle=360),f.ticksAngle<0&&(f.ticksAngle=0),f.startAngle<0&&(f.startAngle=0),f.startAngle>360&&(f.startAngle=360),f}}]),h}(Ft);r!==void 0&&(r.RadialGauge=Ra),Ft.initialize("RadialGauge",no);var ro=Object.assign({},Bi,{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}),Ln=function(u){function h(f){return i(this,h),f=Object.assign({},ro,f||{}),e(this,(h.__proto__||Object.getPrototypeOf(h)).call(this,h.configure(f)))}return t(h,u),Si(h,[{key:"draw",value:function(){try{var f=this.canvas,C=[-f.drawX,-f.drawY,f.drawWidth,f.drawHeight],k=C[0],x=C[1],O=C[2],N=C[3],R=this.options;if(!f.elementClone.initialized){var W=f.contextClone;W.clearRect(k,x,O,N),this.emit("beforePlate"),this.drawBox=gt(W,R,k,x,O,N),this.emit("beforeBar"),Ye.apply(void 0,[W,R].concat(n(this.drawBox))),f.contextClone.barDimensions=W.barDimensions,this.emit("beforeHighlights"),mn(W,R),this.emit("beforeMinorTicks"),Zr(W,R),this.emit("beforeMajorTicks"),ii(W,R),this.emit("beforeNumbers"),Jr(W,R),this.emit("beforeTitle"),Wn(W,R),this.emit("beforeUnits"),Lt(W,R),f.elementClone.initialized=!0}this.canvas.commit(),f.context.clearRect(k,x,O,N),f.context.drawImage(f.elementClone,k,x,O,N),this.emit("beforeProgressBar"),pi.apply(void 0,[f.context,R].concat(n(this.drawBox))),this.emit("beforeNeedle"),Da(f.context,R),this.emit("beforeValueBox"),Oa.apply(void 0,[f.context,R,R.animatedValue?this.options.value:this.value].concat(n(this.drawBox))),Vn(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"draw",this).call(this)}catch(j){Z.verifyError(j)}return this}}],[{key:"configure",value:function(f){return f.barStrokeWidth>=f.barWidth&&(f.barStrokeWidth=we(f.barWidth/2)),f.hasLeft=ti("right",f),f.hasRight=ti("left",f),f.value>f.maxValue&&(f.value=f.maxValue),f.value<f.minValue&&(f.value=f.minValue),Ft.configure(f)}}]),h}(Ft);r!==void 0&&(r.LinearGauge=Ln),Ft.initialize("LinearGauge",ro),typeof ea<"u"&&Object.assign(r,{Collection:l,GenericOptions:Bi,Animation:Ar,BaseGauge:Ft,drawings:Z,SmartCanvas:Xt,DomObserver:Li,vendorize:o})})(typeof ea<"u"?ea.exports:window)});var Ku=za((jE,Pa)=>{(function(r,n,e,t){"use strict";var i=["","webkit","Moz","MS","ms","o"],o=n.createElement("div"),a="function",l=Math.round,d=Math.abs,p=Date.now;function s(g,b,S){return setTimeout(Y(g,S),b)}function c(g,b,S){return Array.isArray(g)?(m(g,S[b],S),!0):!1}function m(g,b,S){var I;if(g)if(g.forEach)g.forEach(b,S);else if(g.length!==t)for(I=0;I<g.length;)b.call(S,g[I],I,g),I++;else for(I in g)g.hasOwnProperty(I)&&b.call(S,g[I],I,g)}function y(g,b,S){var I="DEPRECATED METHOD: "+b+`
|
|
2
2
|
`+S+` AT
|
|
3
|
-
`;return function(){var H=new Error("get-stack-trace"),K=H&&H.stack?H.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Le=r.console&&(r.console.warn||r.console.log);return Le&&Le.call(r.console,I,K),g.apply(this,arguments)}}var _;typeof Object.assign!="function"?_=function(b){if(b===t||b===null)throw new TypeError("Cannot convert undefined or null to object");for(var S=Object(b),I=1;I<arguments.length;I++){var H=arguments[I];if(H!==t&&H!==null)for(var K in H)H.hasOwnProperty(K)&&(S[K]=H[K])}return S}:_=Object.assign;var T=y(function(b,S,I){for(var H=Object.keys(S),K=0;K<H.length;)(!I||I&&b[H[K]]===t)&&(b[H[K]]=S[H[K]]),K++;return b},"extend","Use `assign`."),E=y(function(b,S){return T(b,S,!0)},"merge","Use `assign`.");function L(g,b,S){var I=b.prototype,H;H=g.prototype=Object.create(I),H.constructor=g,H._super=I,S&&_(H,S)}function Y(g,b){return function(){return g.apply(b,arguments)}}function te(g,b){return typeof g==a?g.apply(b&&b[0]||t,b):g}function _e(g,b){return g===t?b:g}function He(g,b,S){m(ht(b),function(I){g.addEventListener(I,S,!1)})}function je(g,b,S){m(ht(b),function(I){g.removeEventListener(I,S,!1)})}function Je(g,b){for(;g;){if(g==b)return!0;g=g.parentNode}return!1}function se(g,b){return g.indexOf(b)>-1}function ht(g){return g.trim().split(/\s+/g)}function lt(g,b,S){if(g.indexOf&&!S)return g.indexOf(b);for(var I=0;I<g.length;){if(S&&g[I][S]==b||!S&&g[I]===b)return I;I++}return-1}function Wt(g){return Array.prototype.slice.call(g,0)}function ft(g,b,S){for(var I=[],H=[],K=0;K<g.length;){var Le=b?g[K][b]:g[K];lt(H,Le)<0&&I.push(g[K]),H[K]=Le,K++}return S&&(b?I=I.sort(function(Tt,It){return Tt[b]>It[b]}):I=I.sort()),I}function ut(g,b){for(var S,I,H=b[0].toUpperCase()+b.slice(1),K=0;K<i.length;){if(S=i[K],I=S?S+H:b,I in g)return I;K++}return t}var At=1;function Wi(){return At++}function Q(g){var b=g.ownerDocument||g;return b.defaultView||b.parentWindow||r}var ne=/mobile|tablet|ip(ad|hone|od)|android/i,le="ontouchstart"in r,Ie=ut(r,"PointerEvent")!==t,dt=le&&ne.test(navigator.userAgent),bt="touch",_t="pen",Ot="mouse",et="kinect",On=25,gt=1,tt=2,Ue=4,Xe=8,ei=1,pi=2,cn=4,_i=8,Bi=16,ti=pi|cn,ii=_i|Bi,Xr=ti|ii,Qr=["x","y"],In=["clientX","clientY"];function Bt(g,b){var S=this;this.manager=g,this.callback=b,this.element=g.element,this.target=g.options.inputTarget,this.domHandler=function(I){te(g.options.enable,[g])&&S.handler(I)},this.init()}Bt.prototype={handler:function(){},init:function(){this.evEl&&He(this.element,this.evEl,this.domHandler),this.evTarget&&He(this.target,this.evTarget,this.domHandler),this.evWin&&He(Q(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&je(this.element,this.evEl,this.domHandler),this.evTarget&&je(this.target,this.evTarget,this.domHandler),this.evWin&&je(Q(this.element),this.evWin,this.domHandler)}};function Ta(g){var b,S=g.options.inputClass;return S?b=S:Ie?b=Vt:dt?b=Wn:le?b=w:b=Vi,new b(g,Kr)}function Kr(g,b,S){var I=S.pointers.length,H=S.changedPointers.length,K=b>&&I-H===0,Le=b&(Ue|Xe)&&I-H===0;S.isFirst=!!K,S.isFinal=!!Le,K&&(g.session={}),S.eventType=b,xa(g,S),g.emit("hammer.input",S),g.recognize(S),g.session.prevInput=S}function xa(g,b){var S=g.session,I=b.pointers,H=I.length;S.firstInput||(S.firstInput=xr(b)),H>1&&!S.firstMultiple?S.firstMultiple=xr(b):H===1&&(S.firstMultiple=!1);var K=S.firstInput,Le=S.firstMultiple,wt=Le?Le.center:K.center,Tt=b.center=Rn(I);b.timeStamp=f(),b.deltaTime=b.timeStamp-K.timeStamp,b.angle=Er(wt,Tt),b.distance=Ai(wt,Tt),Ea(S,b),b.offsetDirection=wi(b.deltaX,b.deltaY);var It=Zr(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=It.x,b.overallVelocityY=It.y,b.overallVelocity=d(It.x)>d(It.y)?It.x:It.y,b.scale=Le?hn(Le.pointers,I):1,b.rotation=Le?Jr(Le.pointers,I):0,b.maxPointers=S.prevInput?b.pointers.length>S.prevInput.maxPointers?b.pointers.length:S.prevInput.maxPointers:b.pointers.length,Da(S,b);var Ci=g.element;Je(b.srcEvent.target,Ci)&&(Ci=b.srcEvent.target),b.target=Ci}function Ea(g,b){var S=b.center,I=g.offsetDelta||{},H=g.prevDelta||{},K=g.prevInput||{};(b.eventType===gt||K.eventType===Ue)&&(H=g.prevDelta={x:K.deltaX||0,y:K.deltaY||0},I=g.offsetDelta={x:S.x,y:S.y}),b.deltaX=H.x+(S.x-I.x),b.deltaY=H.y+(S.y-I.y)}function Da(g,b){var S=g.lastInterval||b,I=b.timeStamp-S.timeStamp,H,K,Le,wt;if(b.eventType!=Xe&&(I>On||S.velocity===t)){var Tt=b.deltaX-S.deltaX,It=b.deltaY-S.deltaY,Ci=Zr(I,Tt,It);K=Ci.x,Le=Ci.y,H=d(Ci.x)>d(Ci.y)?Ci.x:Ci.y,wt=wi(Tt,It),g.lastInterval=b}else H=S.velocity,K=S.velocityX,Le=S.velocityY,wt=S.direction;b.velocity=H,b.velocityX=K,b.velocityY=Le,b.direction=wt}function xr(g){for(var b=[],S=0;S<g.pointers.length;)b[S]={clientX:l(g.pointers[S].clientX),clientY:l(g.pointers[S].clientY)},S++;return{timeStamp:f(),pointers:b,center:Rn(b),deltaX:g.deltaX,deltaY:g.deltaY}}function Rn(g){var b=g.length;if(b===1)return{x:l(g[0].clientX),y:l(g[0].clientY)};for(var S=0,I=0,H=0;H<b;)S+=g[H].clientX,I+=g[H].clientY,H++;return{x:l(S/b),y:l(I/b)}}function Zr(g,b,S){return{x:b/g||0,y:S/g||0}}function wi(g,b){return g===b?ei:d(g)>=d(b)?g<0?pi:cn:b<0?_i:Bi}function Ai(g,b,S){S||(S=Qr);var I=b[S[0]]-g[S[0]],H=b[S[1]]-g[S[1]];return Math.sqrt(I*I+H*H)}function Er(g,b,S){S||(S=Qr);var I=b[S[0]]-g[S[0]],H=b[S[1]]-g[S[1]];return Math.atan2(H,I)*180/Math.PI}function Jr(g,b){return Er(b[1],b[0],In)+Er(g[1],g[0],In)}function hn(g,b){return Ai(b[0],b[1],In)/Ai(g[0],g[1],In)}var Dr={mousedown:gt,mousemove:tt,mouseup:Ue},zi="mousedown",Yt="mousemove mouseup";function Vi(){this.evEl=zi,this.evWin=Yt,this.pressed=!1,Bt.apply(this,arguments)}L(Vi,Bt,{handler:function(b){var S=Dr[b.type];S>&&b.button===0&&(this.pressed=!0),S&tt&&b.which!==1&&(S=Ue),this.pressed&&(S&Ue&&(this.pressed=!1),this.callback(this.manager,S,{pointers:[b],changedPointers:[b],pointerType:Ot,srcEvent:b}))}});var Pr={pointerdown:gt,pointermove:tt,pointerup:Ue,pointercancel:Xe,pointerout:Xe},Se={2:bt,3:_t,4:Ot,5:et},zt="pointerdown",Li="pointermove pointerup pointercancel";r.MSPointerEvent&&!r.PointerEvent&&(zt="MSPointerDown",Li="MSPointerMove MSPointerUp MSPointerCancel");function Vt(){this.evEl=zt,this.evWin=Li,Bt.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}L(Vt,Bt,{handler:function(b){var S=this.store,I=!1,H=b.type.toLowerCase().replace("ms",""),K=Pr[H],Le=Se[b.pointerType]||b.pointerType,wt=Le==bt,Tt=lt(S,b.pointerId,"pointerId");K>&&(b.button===0||wt)?Tt<0&&(S.push(b),Tt=S.length-1):K&(Ue|Xe)&&(I=!0),!(Tt<0)&&(S[Tt]=b,this.callback(this.manager,K,{pointers:S,changedPointers:[b],pointerType:Le,srcEvent:b}),I&&S.splice(Tt,1))}});var Pa={touchstart:gt,touchmove:tt,touchend:Ue,touchcancel:Xe},Z="touchstart",un="touchstart touchmove touchend touchcancel";function Nn(){this.evTarget=Z,this.evWin=un,this.started=!1,Bt.apply(this,arguments)}L(Nn,Bt,{handler:function(b){var S=Pa[b.type];if(S===gt&&(this.started=!0),!!this.started){var I=eo.call(this,b,S);S&(Ue|Xe)&&I[0].length-I[1].length===0&&(this.started=!1),this.callback(this.manager,S,{pointers:I[0],changedPointers:I[1],pointerType:bt,srcEvent:b})}}});function eo(g,b){var S=Wt(g.touches),I=Wt(g.changedTouches);return b&(Ue|Xe)&&(S=ft(S.concat(I),"identifier",!0)),[S,I]}var Ma={touchstart:gt,touchmove:tt,touchend:Ue,touchcancel:Xe},to="touchstart touchmove touchend touchcancel";function Wn(){this.evTarget=to,this.targetIds={},Bt.apply(this,arguments)}L(Wn,Bt,{handler:function(b){var S=Ma[b.type],I=u.call(this,b,S);I&&this.callback(this.manager,S,{pointers:I[0],changedPointers:I[1],pointerType:bt,srcEvent:b})}});function u(g,b){var S=Wt(g.touches),I=this.targetIds;if(b&(gt|tt)&&S.length===1)return I[S[0].identifier]=!0,[S,S];var H,K,Le=Wt(g.changedTouches),wt=[],Tt=this.target;if(K=S.filter(function(It){return Je(It.target,Tt)}),b===gt)for(H=0;H<K.length;)I[K[H].identifier]=!0,H++;for(H=0;H<Le.length;)I[Le[H].identifier]&&wt.push(Le[H]),b&(Ue|Xe)&&delete I[Le[H].identifier],H++;if(wt.length)return[ft(K.concat(wt),"identifier",!0),wt]}var h=2500,p=25;function w(){Bt.apply(this,arguments);var g=Y(this.handler,this);this.touch=new Wn(this.manager,g),this.mouse=new Vi(this.manager,g),this.primaryTouch=null,this.lastTouches=[]}L(w,Bt,{handler:function(b,S,I){var H=I.pointerType==bt,K=I.pointerType==Ot;if(!(K&&I.sourceCapabilities&&I.sourceCapabilities.firesTouchEvents)){if(H)k.call(this,S,I);else if(K&&O.call(this,I))return;this.callback(b,S,I)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function k(g,b){g>?(this.primaryTouch=b.changedPointers[0].identifier,x.call(this,b)):g&(Ue|Xe)&&x.call(this,b)}function x(g){var b=g.changedPointers[0];if(b.identifier===this.primaryTouch){var S={x:b.clientX,y:b.clientY};this.lastTouches.push(S);var I=this.lastTouches,H=function(){var K=I.indexOf(S);K>-1&&I.splice(K,1)};setTimeout(H,h)}}function O(g){for(var b=g.srcEvent.clientX,S=g.srcEvent.clientY,I=0;I<this.lastTouches.length;I++){var H=this.lastTouches[I],K=Math.abs(b-H.x),Le=Math.abs(S-H.y);if(K<=p&&Le<=p)return!0}return!1}var N=ut(o.style,"touchAction"),R=N!==t,W="compute",q="auto",$="manipulation",J="none",de="pan-x",me="pan-y",Re=ze();function fe(g,b){this.manager=g,this.set(b)}fe.prototype={set:function(g){g==W&&(g=this.compute()),R&&this.manager.element.style&&Re[g]&&(this.manager.element.style[N]=g),this.actions=g.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var g=[];return m(this.manager.recognizers,function(b){te(b.options.enable,[b])&&(g=g.concat(b.getTouchAction()))}),Be(g.join(" "))},preventDefaults:function(g){var b=g.srcEvent,S=g.offsetDirection;if(this.manager.session.prevented){b.preventDefault();return}var I=this.actions,H=se(I,J)&&!Re[J],K=se(I,me)&&!Re[me],Le=se(I,de)&&!Re[de];if(H){var wt=g.pointers.length===1,Tt=g.distance<2,It=g.deltaTime<250;if(wt&&Tt&&It)return}if(!(Le&&K)&&(H||K&&S&ti||Le&&S&ii))return this.preventSrc(b)},preventSrc:function(g){this.manager.session.prevented=!0,g.preventDefault()}};function Be(g){if(se(g,J))return J;var b=se(g,de),S=se(g,me);return b&&S?J:b||S?b?de:me:se(g,$)?$:q}function ze(){if(!R)return!1;var g={},b=r.CSS&&r.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(S){g[S]=b?r.CSS.supports("touch-action",S):!0}),g}var Ve=1,ue=2,ke=4,ge=8,ae=ge,ve=16,ye=32;function Ee(g){this.options=_({},this.defaults,g||{}),this.id=Wi(),this.manager=null,this.options.enable=_e(this.options.enable,!0),this.state=Ve,this.simultaneous={},this.requireFail=[]}Ee.prototype={defaults:{},set:function(g){return _(this.options,g),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(g){if(c(g,"recognizeWith",this))return this;var b=this.simultaneous;return g=St(g,this),b[g.id]||(b[g.id]=g,g.recognizeWith(this)),this},dropRecognizeWith:function(g){return c(g,"dropRecognizeWith",this)?this:(g=St(g,this),delete this.simultaneous[g.id],this)},requireFailure:function(g){if(c(g,"requireFailure",this))return this;var b=this.requireFail;return g=St(g,this),lt(b,g)===-1&&(b.push(g),g.requireFailure(this)),this},dropRequireFailure:function(g){if(c(g,"dropRequireFailure",this))return this;g=St(g,this);var b=lt(this.requireFail,g);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(g){return!!this.simultaneous[g.id]},emit:function(g){var b=this,S=this.state;function I(H){b.manager.emit(H,g)}S<ge&&I(b.options.event+Qe(S)),I(b.options.event),g.additionalEvent&&I(g.additionalEvent),S>=ge&&I(b.options.event+Qe(S))},tryEmit:function(g){if(this.canEmit())return this.emit(g);this.state=ye},canEmit:function(){for(var g=0;g<this.requireFail.length;){if(!(this.requireFail[g].state&(ye|Ve)))return!1;g++}return!0},recognize:function(g){var b=_({},g);if(!te(this.options.enable,[this,b])){this.reset(),this.state=ye;return}this.state&(ae|ve|ye)&&(this.state=Ve),this.state=this.process(b),this.state&(ue|ke|ge|ve)&&this.tryEmit(b)},process:function(g){},getTouchAction:function(){},reset:function(){}};function Qe(g){return g&ve?"cancel":g&ge?"end":g&ke?"move":g&ue?"start":""}function Ct(g){return g==Bi?"down":g==_i?"up":g==pi?"left":g==cn?"right":""}function St(g,b){var S=b.manager;return S?S.get(g):g}function kt(){Ee.apply(this,arguments)}L(kt,Ee,{defaults:{pointers:1},attrTest:function(g){var b=this.options.pointers;return b===0||g.pointers.length===b},process:function(g){var b=this.state,S=g.eventType,I=b&(ue|ke),H=this.attrTest(g);return I&&(S&Xe||!H)?b|ve:I||H?S&Ue?b|ge:b&ue?b|ke:ue:ye}});function ni(){kt.apply(this,arguments),this.pX=null,this.pY=null}L(ni,kt,{defaults:{event:"pan",threshold:10,pointers:1,direction:Xr},getTouchAction:function(){var g=this.options.direction,b=[];return g&ti&&b.push(me),g&ii&&b.push(de),b},directionTest:function(g){var b=this.options,S=!0,I=g.distance,H=g.direction,K=g.deltaX,Le=g.deltaY;return H&b.direction||(b.direction&ti?(H=K===0?ei:K<0?pi:cn,S=K!=this.pX,I=Math.abs(g.deltaX)):(H=Le===0?ei:Le<0?_i:Bi,S=Le!=this.pY,I=Math.abs(g.deltaY))),g.direction=H,S&&I>b.threshold&&H&b.direction},attrTest:function(g){return kt.prototype.attrTest.call(this,g)&&(this.state&ue||!(this.state&ue)&&this.directionTest(g))},emit:function(g){this.pX=g.deltaX,this.pY=g.deltaY;var b=Ct(g.direction);b&&(g.additionalEvent=this.options.event+b),this._super.emit.call(this,g)}});function Bn(){kt.apply(this,arguments)}L(Bn,kt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[J]},attrTest:function(g){return this._super.attrTest.call(this,g)&&(Math.abs(g.scale-1)>this.options.threshold||this.state&ue)},emit:function(g){if(g.scale!==1){var b=g.scale<1?"in":"out";g.additionalEvent=this.options.event+b}this._super.emit.call(this,g)}});function zn(){Ee.apply(this,arguments),this._timer=null,this._input=null}L(zn,Ee,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[q]},process:function(g){var b=this.options,S=g.pointers.length===b.pointers,I=g.distance<b.threshold,H=g.deltaTime>b.time;if(this._input=g,!I||!S||g.eventType&(Ue|Xe)&&!H)this.reset();else if(g.eventType>)this.reset(),this._timer=s(function(){this.state=ae,this.tryEmit()},b.time,this);else if(g.eventType&Ue)return ae;return ye},reset:function(){clearTimeout(this._timer)},emit:function(g){this.state===ae&&(g&&g.eventType&Ue?this.manager.emit(this.options.event+"up",g):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}});function Aa(){kt.apply(this,arguments)}L(Aa,kt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[J]},attrTest:function(g){return this._super.attrTest.call(this,g)&&(Math.abs(g.rotation)>this.options.threshold||this.state&ue)}});function Oa(){kt.apply(this,arguments)}L(Oa,kt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:ti|ii,pointers:1},getTouchAction:function(){return ni.prototype.getTouchAction.call(this)},attrTest:function(g){var b=this.options.direction,S;return b&(ti|ii)?S=g.overallVelocity:b&ti?S=g.overallVelocityX:b&ii&&(S=g.overallVelocityY),this._super.attrTest.call(this,g)&&b&g.offsetDirection&&g.distance>this.options.threshold&&g.maxPointers==this.options.pointers&&d(S)>this.options.velocity&&g.eventType&Ue},emit:function(g){var b=Ct(g.offsetDirection);b&&this.manager.emit(this.options.event+b,g),this.manager.emit(this.options.event,g)}});function io(){Ee.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}L(io,Ee,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[$]},process:function(g){var b=this.options,S=g.pointers.length===b.pointers,I=g.distance<b.threshold,H=g.deltaTime<b.time;if(this.reset(),g.eventType>&&this.count===0)return this.failTimeout();if(I&&H&&S){if(g.eventType!=Ue)return this.failTimeout();var K=this.pTime?g.timeStamp-this.pTime<b.interval:!0,Le=!this.pCenter||Ai(this.pCenter,g.center)<b.posThreshold;this.pTime=g.timeStamp,this.pCenter=g.center,!Le||!K?this.count=1:this.count+=1,this._input=g;var wt=this.count%b.taps;if(wt===0)return this.hasRequireFailures()?(this._timer=s(function(){this.state=ae,this.tryEmit()},b.interval,this),ue):ae}return ye},failTimeout:function(){return this._timer=s(function(){this.state=ye},this.options.interval,this),ye},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ae&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function Oi(g,b){return b=b||{},b.recognizers=_e(b.recognizers,Oi.defaults.preset),new Ia(g,b)}Oi.VERSION="2.0.7",Oi.defaults={domEvents:!1,touchAction:W,enable:!0,inputTarget:null,inputClass:null,preset:[[Aa,{enable:!1}],[Bn,{enable:!1},["rotate"]],[Oa,{direction:ti}],[ni,{direction:ti},["swipe"]],[io],[io,{event:"doubletap",taps:2},["tap"]],[zn]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ju=1,ul=2;function Ia(g,b){this.options=_({},Oi.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||g,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=g,this.input=Ta(this),this.touchAction=new fe(this,this.options.touchAction),ml(this,!0),m(this.options.recognizers,function(S){var I=this.add(new S[0](S[1]));S[2]&&I.recognizeWith(S[2]),S[3]&&I.requireFailure(S[3])},this)}Ia.prototype={set:function(g){return _(this.options,g),g.touchAction&&this.touchAction.update(),g.inputTarget&&(this.input.destroy(),this.input.target=g.inputTarget,this.input.init()),this},stop:function(g){this.session.stopped=g?ul:ju},recognize:function(g){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(g);var S,I=this.recognizers,H=b.curRecognizer;(!H||H&&H.state&ae)&&(H=b.curRecognizer=null);for(var K=0;K<I.length;)S=I[K],b.stopped!==ul&&(!H||S==H||S.canRecognizeWith(H))?S.recognize(g):S.reset(),!H&&S.state&(ue|ke|ge)&&(H=b.curRecognizer=S),K++}},get:function(g){if(g instanceof Ee)return g;for(var b=this.recognizers,S=0;S<b.length;S++)if(b[S].options.event==g)return b[S];return null},add:function(g){if(c(g,"add",this))return this;var b=this.get(g.options.event);return b&&this.remove(b),this.recognizers.push(g),g.manager=this,this.touchAction.update(),g},remove:function(g){if(c(g,"remove",this))return this;if(g=this.get(g),g){var b=this.recognizers,S=lt(b,g);S!==-1&&(b.splice(S,1),this.touchAction.update())}return this},on:function(g,b){if(g!==t&&b!==t){var S=this.handlers;return m(ht(g),function(I){S[I]=S[I]||[],S[I].push(b)}),this}},off:function(g,b){if(g!==t){var S=this.handlers;return m(ht(g),function(I){b?S[I]&&S[I].splice(lt(S[I],b),1):delete S[I]}),this}},emit:function(g,b){this.options.domEvents&&$u(g,b);var S=this.handlers[g]&&this.handlers[g].slice();if(!(!S||!S.length)){b.type=g,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var I=0;I<S.length;)S[I](b),I++}},destroy:function(){this.element&&ml(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function ml(g,b){var S=g.element;if(S.style){var I;m(g.options.cssProps,function(H,K){I=ut(S.style,K),b?(g.oldCssProps[I]=S.style[I],S.style[I]=H):S.style[I]=g.oldCssProps[I]||""}),b||(g.oldCssProps={})}}function $u(g,b){var S=n.createEvent("Event");S.initEvent(g,!0,!0),S.gesture=b,b.target.dispatchEvent(S)}_(Oi,{INPUT_START:gt,INPUT_MOVE:tt,INPUT_END:Ue,INPUT_CANCEL:Xe,STATE_POSSIBLE:Ve,STATE_BEGAN:ue,STATE_CHANGED:ke,STATE_ENDED:ge,STATE_RECOGNIZED:ae,STATE_CANCELLED:ve,STATE_FAILED:ye,DIRECTION_NONE:ei,DIRECTION_LEFT:pi,DIRECTION_RIGHT:cn,DIRECTION_UP:_i,DIRECTION_DOWN:Bi,DIRECTION_HORIZONTAL:ti,DIRECTION_VERTICAL:ii,DIRECTION_ALL:Xr,Manager:Ia,Input:Bt,TouchAction:fe,TouchInput:Wn,MouseInput:Vi,PointerEventInput:Vt,TouchMouseInput:w,SingleTouchInput:Nn,Recognizer:Ee,AttrRecognizer:kt,Tap:io,Pan:ni,Swipe:Oa,Pinch:Bn,Rotate:Aa,Press:zn,on:He,off:je,each:m,merge:E,extend:T,assign:_,inherit:L,bindFn:Y,prefixed:ut});var Yu=typeof r<"u"?r:typeof self<"u"?self:{};Yu.Hammer=Oi,typeof define=="function"&&define.amd?define(function(){return Oi}):typeof ka<"u"&&ka.exports?ka.exports=Oi:r[e]=Oi})(window,document,"Hammer")});function Yd(r,n,e,t,i){let o=(...a)=>(console.warn("gridstack.js: Function `"+e+"` is deprecated in "+i+" and has been replaced with `"+t+"`. It will be **removed** in a future release"),n.apply(r,a));return o.prototype=n.prototype,o}var A=class r{static getElements(n,e=document){if(typeof n=="string"){let t="getElementById"in e?e:void 0;if(t&&!isNaN(+n[0])){let o=t.getElementById(n);return o?[o]:[]}let i=e.querySelectorAll(n);return!i.length&&n[0]!=="."&&n[0]!=="#"&&(i=e.querySelectorAll("."+n),i.length||(i=e.querySelectorAll("#"+n))),Array.from(i)}return[n]}static getElement(n,e=document){if(typeof n=="string"){let t="getElementById"in e?e:void 0;if(!n.length)return null;if(t&&n[0]==="#")return t.getElementById(n.substring(1));if(n[0]==="#"||n[0]==="."||n[0]==="[")return e.querySelector(n);if(t&&!isNaN(+n[0]))return t.getElementById(n);let i=e.querySelector(n);return t&&!i&&(i=t.getElementById(n)),i||(i=e.querySelector("."+n)),i}return n}static lazyLoad(n){return n.lazyLoad||n.grid?.opts?.lazyLoad&&n.lazyLoad!==!1}static createDiv(n,e){let t=document.createElement("div");return n.forEach(i=>{i&&t.classList.add(i)}),e?.appendChild(t),t}static shouldSizeToContent(n,e=!1){return n?.grid&&(e?n.sizeToContent===!0||n.grid.opts.sizeToContent===!0&&n.sizeToContent===void 0:!!n.sizeToContent||n.grid.opts.sizeToContent&&n.sizeToContent!==!1)}static isIntercepted(n,e){return!(n.y>=e.y+e.h||n.y+n.h<=e.y||n.x+n.w<=e.x||n.x>=e.x+e.w)}static isTouching(n,e){return r.isIntercepted(n,{x:e.x-.5,y:e.y-.5,w:e.w+1,h:e.h+1})}static areaIntercept(n,e){let t=n.x>e.x?n.x:e.x,i=n.x+n.w<e.x+e.w?n.x+n.w:e.x+e.w;if(i<=t)return 0;let o=n.y>e.y?n.y:e.y,a=n.y+n.h<e.y+e.h?n.y+n.h:e.y+e.h;return a<=o?0:(i-t)*(a-o)}static area(n){return n.w*n.h}static sort(n,e=1){return n.sort((i,o)=>{let a=e*((i.y??1e4)-(o.y??1e4));return a===0?e*((i.x??1e4)-(o.x??1e4)):a})}static find(n,e){return e?n.find(t=>t.id===e):void 0}static createStylesheet(n,e,t){let i=document.createElement("style"),o=t?.nonce;return o&&(i.nonce=o),i.setAttribute("type","text/css"),i.setAttribute("gs-style-id",n),i.styleSheet?i.styleSheet.cssText="":i.appendChild(document.createTextNode("")),e?e.insertBefore(i,e.firstChild):(e=document.getElementsByTagName("head")[0],e.appendChild(i)),i}static removeStylesheet(n,e){let i=(e||document).querySelector("STYLE[gs-style-id="+n+"]");i&&i.parentNode&&i.remove()}static addCSSRule(n,e,t){n.textContent+=`${e} { ${t} } `}static toBool(n){return typeof n=="boolean"?n:typeof n=="string"?(n=n.toLowerCase(),!(n===""||n==="no"||n==="false"||n==="0")):!!n}static toNumber(n){return n===null||n.length===0?void 0:Number(n)}static parseHeight(n){let e,t="px";if(typeof n=="string")if(n==="auto"||n==="")e=0;else{let i=n.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!i)throw new Error(`Invalid height val = ${n}`);t=i[2]||"px",e=parseFloat(i[1])}else e=n;return{h:e,unit:t}}static defaults(n,...e){return e.forEach(t=>{for(let i in t){if(!t.hasOwnProperty(i))return;n[i]===null||n[i]===void 0?n[i]=t[i]:typeof t[i]=="object"&&typeof n[i]=="object"&&this.defaults(n[i],t[i])}}),n}static same(n,e){if(typeof n!="object")return n==e;if(typeof n!=typeof e||Object.keys(n).length!==Object.keys(e).length)return!1;for(let t in n)if(n[t]!==e[t])return!1;return!0}static copyPos(n,e,t=!1){return e.x!==void 0&&(n.x=e.x),e.y!==void 0&&(n.y=e.y),e.w!==void 0&&(n.w=e.w),e.h!==void 0&&(n.h=e.h),t&&(e.minW&&(n.minW=e.minW),e.minH&&(n.minH=e.minH),e.maxW&&(n.maxW=e.maxW),e.maxH&&(n.maxH=e.maxH)),n}static samePos(n,e){return n&&e&&n.x===e.x&&n.y===e.y&&(n.w||1)===(e.w||1)&&(n.h||1)===(e.h||1)}static sanitizeMinMax(n){n.minW||delete n.minW,n.minH||delete n.minH,n.maxW||delete n.maxW,n.maxH||delete n.maxH}static removeInternalAndSame(n,e){if(!(typeof n!="object"||typeof e!="object"))for(let t in n){let i=n[t],o=e[t];t[0]==="_"||i===o?delete n[t]:i&&typeof i=="object"&&o!==void 0&&(r.removeInternalAndSame(i,o),Object.keys(i).length||delete n[t])}}static removeInternalForSave(n,e=!0){for(let t in n)(t[0]==="_"||n[t]===null||n[t]===void 0)&&delete n[t];delete n.grid,e&&delete n.el,n.autoPosition||delete n.autoPosition,n.noResize||delete n.noResize,n.noMove||delete n.noMove,n.locked||delete n.locked,(n.w===1||n.w===n.minW)&&delete n.w,(n.h===1||n.h===n.minH)&&delete n.h}static throttle(n,e){let t=!1;return(...i)=>{t||(t=!0,setTimeout(()=>{n(...i),t=!1},e))}}static removePositioningStyles(n){let e=n.style;e.position&&e.removeProperty("position"),e.left&&e.removeProperty("left"),e.top&&e.removeProperty("top"),e.width&&e.removeProperty("width"),e.height&&e.removeProperty("height")}static getScrollElement(n){if(!n)return document.scrollingElement||document.documentElement;let e=getComputedStyle(n);return/(auto|scroll)/.test(e.overflow+e.overflowY)?n:this.getScrollElement(n.parentElement)}static updateScrollPosition(n,e,t){let i=n.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight;if(i.top<0||i.bottom>o){let a=i.bottom-o,l=i.top,d=this.getScrollElement(n);if(d!==null){let f=d.scrollTop;i.top<0&&t<0?n.offsetHeight>o?d.scrollTop+=t:d.scrollTop+=Math.abs(l)>Math.abs(t)?t:l:t>0&&(n.offsetHeight>o?d.scrollTop+=t:d.scrollTop+=a>t?t:a),e.top+=d.scrollTop-f}}}static updateScrollResize(n,e,t){let i=this.getScrollElement(e),o=i.clientHeight,a=i===this.getScrollElement()?0:i.getBoundingClientRect().top,l=n.clientY-a,d=l<t,f=l>o-t;d?i.scrollBy({behavior:"smooth",top:l-t}):f&&i.scrollBy({behavior:"smooth",top:t-(o-l)})}static clone(n){return n==null||typeof n!="object"?n:n instanceof Array?[...n]:X({},n)}static cloneDeep(n){let e=["parentGrid","el","grid","subGrid","engine"],t=r.clone(n);for(let i in t)t.hasOwnProperty(i)&&typeof t[i]=="object"&&i.substring(0,2)!=="__"&&!e.find(o=>o===i)&&(t[i]=r.cloneDeep(n[i]));return t}static cloneNode(n){let e=n.cloneNode(!0);return e.removeAttribute("id"),e}static appendTo(n,e){let t;typeof e=="string"?t=r.getElement(e):t=e,t&&t.appendChild(n)}static addElStyles(n,e){if(e instanceof Object)for(let t in e)e.hasOwnProperty(t)&&(Array.isArray(e[t])?e[t].forEach(i=>{n.style[t]=i}):n.style[t]=e[t])}static initEvent(n,e){let t={type:e.type},i={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:e.target?e.target:n.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(o=>t[o]=n[o]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(o=>t[o]=n[o]),X(X({},t),i)}static simulateMouseEvent(n,e,t){let i=n,o=new MouseEvent(e,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:n.screenX,screenY:n.screenY,clientX:n.clientX,clientY:n.clientY,ctrlKey:i.ctrlKey??!1,altKey:i.altKey??!1,shiftKey:i.shiftKey??!1,metaKey:i.metaKey??!1,button:0,relatedTarget:n.target});(t||n.target).dispatchEvent(o)}static getValuesFromTransformedElement(n){let e=document.createElement("div");r.addElStyles(e,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),n.appendChild(e);let t=e.getBoundingClientRect();return n.removeChild(e),e.remove(),{xScale:1/t.width,yScale:1/t.height,xOffset:t.left,yOffset:t.top}}static swap(n,e,t){if(!n)return;let i=n[e];n[e]=n[t],n[t]=i}static canBeRotated(n){return!(!n||n.w===n.h||n.locked||n.noResize||n.grid?.opts.disableResize||n.minW&&n.minW===n.maxW||n.minH&&n.minH===n.maxH)}};var Oo=(()=>{class r{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(e,t=e,i,o={}){if(this.sortNodes(-1),i=i||this.collide(e,t),!i)return!1;if(e._moving&&!o.nested&&!this.float&&this.swap(e,i))return!0;let a=t;!this._loading&&this._useEntireRowArea(e,t)&&(a={x:0,w:this.column,y:t.y,h:t.h},i=this.collide(e,a,o.skip));let l=!1,d={nested:!0,pack:!1},f=0;for(;i=i||this.collide(e,a,o.skip);){if(f++>this.nodes.length*2)throw new Error("Infinite collide check");let s;if(i.locked||this._loading||e._moving&&!e._skipDown&&t.y>e.y&&!this.float&&(!this.collide(i,$e(X({},i),{y:e.y}),e)||!this.collide(i,$e(X({},i),{y:t.y-i.h}),e))){e._skipDown=e._skipDown||t.y>e.y;let c=X($e(X({},t),{y:i.y+i.h}),d);s=this._loading&&A.samePos(e,c)?!0:this.moveNode(e,c),(i.locked||this._loading)&&s?A.copyPos(t,e):!i.locked&&s&&o.pack&&(this._packNodes(),t.y=i.y+i.h,A.copyPos(e,t)),l=l||s}else s=this.moveNode(i,X($e(X({},i),{y:t.y+t.h,skip:e}),d));if(!s)return l;i=void 0}return l}collide(e,t=e,i){let o=e._id,a=i?._id;return this.nodes.find(l=>l._id!==o&&l._id!==a&&A.isIntercepted(l,t))}collideAll(e,t=e,i){let o=e._id,a=i?._id;return this.nodes.filter(l=>l._id!==o&&l._id!==a&&A.isIntercepted(l,t))}directionCollideCoverage(e,t,i){if(!t.rect||!e._rect)return;let o=e._rect,a=X({},t.rect);a.y>o.y?(a.h+=a.y-o.y,a.y=o.y):a.h+=o.y-a.y,a.x>o.x?(a.w+=a.x-o.x,a.x=o.x):a.w+=o.x-a.x;let l,d=.5;for(let f of i){if(f.locked||!f._rect)break;let s=f._rect,c=Number.MAX_VALUE,m=Number.MAX_VALUE;o.y<s.y?c=(a.y+a.h-s.y)/s.h:o.y+o.h>s.y+s.h&&(c=(s.y+s.h-a.y)/s.h),o.x<s.x?m=(a.x+a.w-s.x)/s.w:o.x+o.w>s.x+s.w&&(m=(s.x+s.w-a.x)/s.w);let y=Math.min(m,c);y>d&&(d=y,l=f)}return t.collide=l,l}cacheRects(e,t,i,o,a,l){return this.nodes.forEach(d=>d._rect={y:d.y*t+i,x:d.x*e+l,w:d.w*e-l-o,h:d.h*t-i-a}),this}swap(e,t){if(!t||t.locked||!e||e.locked)return!1;function i(){let a=t.x,l=t.y;return t.x=e.x,t.y=e.y,e.h!=t.h?(e.x=a,e.y=t.y+t.h):e.w!=t.w?(e.x=t.x+t.w,e.y=l):(e.x=a,e.y=l),e._dirty=t._dirty=!0,!0}let o;if(e.w===t.w&&e.h===t.h&&(e.x===t.x||e.y===t.y)&&(o=A.isTouching(e,t)))return i();if(o!==!1){if(e.w===t.w&&e.x===t.x&&(o||(o=A.isTouching(e,t)))){if(t.y<e.y){let a=e;e=t,t=a}return i()}if(o!==!1){if(e.h===t.h&&e.y===t.y&&(o||(o=A.isTouching(e,t)))){if(t.x<e.x){let a=e;e=t,t=a}return i()}return!1}}}isAreaEmpty(e,t,i,o){let a={x:e||0,y:t||0,w:i||1,h:o||1};return!this.collide(a)}compact(e="compact",t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();let i=this.batchMode;i||this.batchUpdate();let o=this._inColumnResize;o||(this._inColumnResize=!0);let a=this.nodes;return this.nodes=[],a.forEach((l,d,f)=>{let s;l.locked||(l.autoPosition=!0,e==="list"&&d&&(s=f[d-1])),this.addNode(l,!1,s)}),o||delete this._inColumnResize,i||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(e=1){return this.nodes=A.sort(this.nodes,e),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){let i=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:i,w:e.w,h:e.h})))break;e._dirty=e.y!==i,e.y=i}}),this)}prepareNode(e,t){e._id=e._id??r._idSeq++;let i=e.id;if(i){let a=1;for(;this.nodes.find(l=>l.id===e.id&&l!==e);)e.id=i+"_"+a++}(e.x===void 0||e.y===void 0||e.x===null||e.y===null)&&(e.autoPosition=!0);let o={x:0,y:0,w:1,h:1};return A.defaults(e,o),e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,A.sanitizeMinMax(e),typeof e.x=="string"&&(e.x=Number(e.x)),typeof e.y=="string"&&(e.y=Number(e.y)),typeof e.w=="string"&&(e.w=Number(e.w)),typeof e.h=="string"&&(e.h=Number(e.h)),isNaN(e.x)&&(e.x=o.x,e.autoPosition=!0),isNaN(e.y)&&(e.y=o.y,e.autoPosition=!0),isNaN(e.w)&&(e.w=o.w),isNaN(e.h)&&(e.h=o.h),this.nodeBoundFix(e,t),e}nodeBoundFix(e,t){let i=e._orig||A.copyPos({},e);if(e.maxW&&(e.w=Math.min(e.w||1,e.maxW)),e.maxH&&(e.h=Math.min(e.h||1,e.maxH)),e.minW&&(e.w=Math.max(e.w||1,e.minW)),e.minH&&(e.h=Math.max(e.h||1,e.minH)),(e.x||0)+(e.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&e._id&&this.findCacheLayout(e,this.defaultColumn)===-1){let a=X({},e);a.autoPosition||a.x===void 0?(delete a.x,delete a.y):a.x=Math.min(this.defaultColumn-1,a.x),a.w=Math.min(this.defaultColumn,a.w||1),this.cacheOneLayout(a,this.defaultColumn)}return e.w>this.column?e.w=this.column:e.w<1&&(e.w=1),this.maxRow&&e.h>this.maxRow?e.h=this.maxRow:e.h<1&&(e.h=1),e.x<0&&(e.x=0),e.y<0&&(e.y=0),e.x+e.w>this.column&&(t?e.w=this.column-e.x:e.x=this.column-e.w),this.maxRow&&e.y+e.h>this.maxRow&&(t?e.h=this.maxRow-e.y:e.y=this.maxRow-e.h),A.samePos(e,i)||(e._dirty=!0),this}getDirtyNodes(e){return e?this.nodes.filter(t=>t._dirty&&!A.samePos(t,t._orig)):this.nodes.filter(t=>t._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;let t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this)}saveInitial(){return this.nodes.forEach(e=>{e._orig=A.copyPos({},e),delete e._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(e=>{!e._orig||A.samePos(e,e._orig)||(A.copyPos(e,e._orig),e._dirty=!0)}),this._notify(),this}findEmptyPosition(e,t=this.nodes,i=this.column,o){let a=o?o.y*i+(o.x+o.w):0,l=!1;for(let d=a;!l;++d){let f=d%i,s=Math.floor(d/i);if(f+e.w>i)continue;let c={x:f,y:s,w:e.w,h:e.h};t.find(m=>A.isIntercepted(c,m))||((e.x!==f||e.y!==s)&&(e._dirty=!0),e.x=f,e.y=s,delete e.autoPosition,l=!0)}return l}addNode(e,t=!1,i){let o=this.nodes.find(l=>l._id===e._id);if(o)return o;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let a;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,i)&&(delete e.autoPosition,a=!0),this.nodes.push(e),t&&this.addedNodes.push(e),a||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,i=!1){return this.nodes.find(o=>o._id===e._id)?(i&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(o=>o._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(o=>o._removeDOM=!0);let i=this.nodes;return this.removedNodes=t?i:[],this.nodes=[],this._notify(i)}moveNodeCheck(e,t){if(!this.changedPosConstrain(e,t))return!1;if(t.pack=!0,!this.maxRow)return this.moveNode(e,t);let i,o=new r({column:this.column,float:this.float,nodes:this.nodes.map(l=>l._id===e._id?(i=X({},l),i):X({},l))});if(!i)return!1;let a=o.moveNode(i,t)&&o.getRow()<=Math.max(this.getRow(),this.maxRow);if(!a&&!t.resizing&&t.collide){let l=t.collide.el.gridstackNode;if(this.swap(e,l))return this._notify(),!0}return a?(o.nodes.filter(l=>l._dirty).forEach(l=>{let d=this.nodes.find(f=>f._id===l._id);d&&(A.copyPos(d,l),d._dirty=!0)}),this._notify(),!0):!1}willItFit(e){if(delete e._willFitPos,!this.maxRow)return!0;let t=new r({column:this.column,float:this.float,nodes:this.nodes.map(o=>X({},o))}),i=X({},e);return this.cleanupNode(i),delete i.el,delete i._id,delete i.content,delete i.grid,t.addNode(i),t.getRow()<=this.maxRow?(e._willFitPos=A.copyPos({},i),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(e,t){if(!e||!t)return!1;let i;t.pack===void 0&&!this.batchMode&&(i=t.pack=!0),typeof t.x!="number"&&(t.x=e.x),typeof t.y!="number"&&(t.y=e.y),typeof t.w!="number"&&(t.w=e.w),typeof t.h!="number"&&(t.h=e.h);let o=e.w!==t.w||e.h!==t.h,a=A.copyPos({},e,!0);if(A.copyPos(a,t),this.nodeBoundFix(a,o),A.copyPos(t,a),!t.forceCollide&&A.samePos(e,t))return!1;let l=A.copyPos({},e),d=this.collideAll(e,a,t.skip),f=!0;if(d.length){let s=e._moving&&!t.nested,c=s?this.directionCollideCoverage(e,t,d):d[0];if(s&&c&&e.grid?.opts?.subGridDynamic&&!e.grid._isTemp){let m=A.areaIntercept(t.rect,c._rect),y=A.area(t.rect),_=A.area(c._rect);m/(y<_?y:_)>.8&&(c.grid.makeSubGrid(c.el,void 0,e),c=void 0)}c?f=!this._fixCollisions(e,a,c,t):(f=!1,i&&delete t.pack)}return f&&!A.samePos(e,a)&&(e._dirty=!0,A.copyPos(e,a)),t.pack&&this._packNodes()._notify(),!A.samePos(e,l)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let e=this.nodes.find(t=>t._updating);return e&&(delete e._updating,delete e._skipDown),this}save(e=!0,t){let i=this._layouts?.length,o=i&&this.column!==i-1?this._layouts[i-1]:null,a=[];return this.sortNodes(),this.nodes.forEach(l=>{let d=o?.find(s=>s._id===l._id),f=X(X({},l),d||{});A.removeInternalForSave(f,!e),t&&t(l,f),a.push(f)}),a}layoutsNodesChange(e){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((t,i)=>{if(!t||i===this.column)return this;if(i<this.column)this._layouts[i]=void 0;else{let o=i/this.column;e.forEach(a=>{if(!a._orig)return;let l=t.find(d=>d._id===a._id);l&&(l.y>=0&&a.y!==a._orig.y&&(l.y+=a.y-a._orig.y),a.x!==a._orig.x&&(l.x=Math.round(a.x*o)),a.w!==a._orig.w&&(l.w=Math.round(a.w*o)))})}}),this)}columnChanged(e,t,i="moveScale"){if(!this.nodes.length||!t||e===t)return this;let o=i==="compact"||i==="list";o&&this.sortNodes(1),t<e&&this.cacheLayout(this.nodes,e),this.batchUpdate();let a=[],l=o?this.nodes:A.sort(this.nodes,-1);if(t>e&&this._layouts){let d=this._layouts[t]||[],f=this._layouts.length-1;!d.length&&e!==f&&this._layouts[f]?.length&&(e=f,this._layouts[f].forEach(s=>{let c=l.find(m=>m._id===s._id);c&&(!o&&!s.autoPosition&&(c.x=s.x??c.x,c.y=s.y??c.y),c.w=s.w??c.w,(s.x==null||s.y===void 0)&&(c.autoPosition=!0))})),d.forEach(s=>{let c=l.findIndex(m=>m._id===s._id);if(c!==-1){let m=l[c];if(o){m.w=s.w;return}(s.autoPosition||isNaN(s.x)||isNaN(s.y))&&this.findEmptyPosition(s,a),s.autoPosition||(m.x=s.x??m.x,m.y=s.y??m.y,m.w=s.w??m.w,a.push(m)),l.splice(c,1)}})}if(o)this.compact(i,!1);else{if(l.length)if(typeof i=="function")i(t,e,a,l);else{let d=o||i==="none"?1:t/e,f=i==="move"||i==="moveScale",s=i==="scale"||i==="moveScale";l.forEach(c=>{c.x=t===1?0:f?Math.round(c.x*d):Math.min(c.x,t-1),c.w=t===1||e===1?1:s?Math.round(c.w*d)||1:Math.min(c.w,t),a.push(c)}),l=[]}a=A.sort(a,-1),this._inColumnResize=!0,this.nodes=[],a.forEach(d=>{this.addNode(d,!1),delete d._orig})}return this.nodes.forEach(d=>delete d._orig),this.batchUpdate(!1,!o),delete this._inColumnResize,this}cacheLayout(e,t,i=!1){let o=[];return e.forEach((a,l)=>{if(a._id===void 0){let d=a.id?this.nodes.find(f=>f.id===a.id):void 0;a._id=d?._id??r._idSeq++}o[l]={x:a.x,y:a.y,w:a.w,_id:a._id}}),this._layouts=i?[]:this._layouts||[],this._layouts[t]=o,this}cacheOneLayout(e,t){e._id=e._id??r._idSeq++;let i={x:e.x,y:e.y,w:e.w,_id:e._id};(e.autoPosition||e.x===void 0)&&(delete i.x,delete i.y,e.autoPosition&&(i.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[t]=this._layouts[t]||[];let o=this.findCacheLayout(e,t);return o===-1?this._layouts[t].push(i):this._layouts[t][o]=i,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(i=>i._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){let i=this.findCacheLayout(e,t);i!==-1&&this._layouts[t].splice(i,1)}}cleanupNode(e){for(let t in e)t[0]==="_"&&t!=="_id"&&delete e[t];return this}}return r._idSeq=0,r})();var qt={alwaysShowResizeHandle:"mobile",animate:!0,auto:!0,cellHeight:"auto",cellHeightThrottle:100,cellHeightUnit:"px",column:12,draggable:{handle:".grid-stack-item-content",appendTo:"body",scroll:!0},handle:".grid-stack-item-content",itemClass:"grid-stack-item",margin:10,marginUnit:"px",maxRow:0,minRow:0,placeholderClass:"grid-stack-placeholder",placeholderText:"",removableOptions:{accept:"grid-stack-item",decline:"grid-stack-non-removable"},resizable:{handles:"se"},rtl:"auto"};var oe=class{};var Rt=typeof window<"u"&&typeof document<"u"&&("ontouchstart"in document||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),ci=class{};function Io(r,n){r.touches.length>1||(r.cancelable&&r.preventDefault(),A.simulateMouseEvent(r.changedTouches[0],n))}function Xd(r,n){r.cancelable&&r.preventDefault(),A.simulateMouseEvent(r,n)}function sr(r){ci.touchHandled||(ci.touchHandled=!0,Io(r,"mousedown"))}function lr(r){ci.touchHandled&&Io(r,"mousemove")}function dr(r){if(!ci.touchHandled)return;ci.pointerLeaveTimeout&&(window.clearTimeout(ci.pointerLeaveTimeout),delete ci.pointerLeaveTimeout);let n=!!oe.dragElement;Io(r,"mouseup"),n||Io(r,"click"),ci.touchHandled=!1}function cr(r){r.pointerType!=="mouse"&&r.target.releasePointerCapture(r.pointerId)}function is(r){oe.dragElement&&r.pointerType!=="mouse"&&Xd(r,"mouseenter")}function ns(r){oe.dragElement&&r.pointerType!=="mouse"&&(ci.pointerLeaveTimeout=window.setTimeout(()=>{delete ci.pointerLeaveTimeout,Xd(r,"mouseleave")},10))}var Qd=(()=>{class r{constructor(e,t,i){this.host=e,this.dir=t,this.option=i,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){let e=this.el=document.createElement("div");return e.classList.add("ui-resizable-handle"),e.classList.add(`${r.prefix}${this.dir}`),e.style.zIndex="100",e.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),Rt&&(this.el.addEventListener("touchstart",sr),this.el.addEventListener("pointerdown",cr)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),Rt&&(this.el.removeEventListener("touchstart",sr),this.el.removeEventListener("pointerdown",cr)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),Rt&&(this.el.addEventListener("touchmove",lr),this.el.addEventListener("touchend",dr)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){let t=this.mouseDownEvent;this.moving?this._triggerEvent("move",e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",e),document.addEventListener("keydown",this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent("stop",e),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),Rt&&(this.el.removeEventListener("touchmove",lr),this.el.removeEventListener("touchend",dr)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key==="Escape"&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}}return r.prefix="ui-resizable-",r})();var en=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(n,e){this._eventRegister[n]=e}off(n){delete this._eventRegister[n]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(n,e){if(!this.disabled&&this._eventRegister&&this._eventRegister[n])return this._eventRegister[n](e)}};var Kd=(()=>{class r extends en{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{let o=this.el.parentElement.getBoundingClientRect(),a={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},l=this.temporalRect||a;return{position:{left:(l.left-o.left)*this.rectScale.x,top:(l.top-o.top)*this.rectScale.y},size:{width:l.width*this.rectScale.x,height:l.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){let t=e.handles&&e.handles!==this.option.handles,i=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(o=>this.option[o]=e[o]),t&&(this._removeHandlers(),this._setupHandlers()),i&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),oe.overResizeElement===this&&delete oe.overResizeElement),this}_mouseOver(e){oe.overResizeElement||oe.dragElement||(oe.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(e){oe.overResizeElement===this&&(delete oe.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(e=>e.trim()).map(e=>new Qd(this.el,e,{start:t=>{this._resizeStart(t)},stop:t=>{this._resizeStop(t)},move:t=>{this._resizing(t,e)}})),this}_resizeStart(e){this.sizeToContent=A.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=A.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=e,this._setupHelper(),this._applyChange();let t=A.initEvent(e,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(t,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",t),this}_resizing(e,t){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(e,t),this._applyChange();let i=A.initEvent(e,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(i,this._ui()),this.triggerEvent("resize",i),this}_resizeStop(e){let t=A.initEvent(e,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(t),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",t),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=r._originStyleProp.map(i=>this.el.style[i]),this.parentOriginStylePosition=this.el.parentElement.style.position;let e=this.el.parentElement,t=A.getValuesFromTransformedElement(e);return this.rectScale={x:t.xScale,y:t.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return r._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){let i=this.startEvent,o={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},a=e.clientX-i.clientX,l=this.sizeToContent?0:e.clientY-i.clientY,d,f;t.indexOf("e")>-1?o.width+=a:t.indexOf("w")>-1&&(o.width-=a,o.left+=a,d=!0),t.indexOf("s")>-1?o.height+=l:t.indexOf("n")>-1&&(o.height-=l,o.top+=l,f=!0);let s=this._constrainSize(o.width,o.height,d,f);return Math.round(o.width)!==Math.round(s.width)&&(t.indexOf("w")>-1&&(o.left+=o.width-s.width),o.width=s.width),Math.round(o.height)!==Math.round(s.height)&&(t.indexOf("n")>-1&&(o.top+=o.height-s.height),o.height=s.height),o}_constrainSize(e,t,i,o){let a=this.option,l=(i?a.maxWidthMoveLeft:a.maxWidth)||Number.MAX_SAFE_INTEGER,d=a.minWidth/this.rectScale.x||e,f=(o?a.maxHeightMoveUp:a.maxHeight)||Number.MAX_SAFE_INTEGER,s=a.minHeight/this.rectScale.y||t,c=Math.min(l,Math.max(d,e)),m=Math.min(f,Math.max(s,t));return{width:c,height:m}}_applyChange(){let e={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){let t=this.el.parentElement,{left:i,top:o}=t.getBoundingClientRect();e={left:i,top:o,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(t=>{let i=this.temporalRect[t],o=t==="width"||t==="left"?this.rectScale.x:t==="height"||t==="top"?this.rectScale.y:1;this.el.style[t]=(i-e[t])*o+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}}return r._originStyleProp=["width","height","position","left","top","opacity","zIndex"],r})();var Xu='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle',Zd=(()=>{class r extends en{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let i=t?.handle?.substring(1),o=e.gridstackNode;this.dragEls=!i||e.classList.contains(i)?[e]:o?.subGrid?[e.querySelector(t.handle)||e]:Array.from(e.querySelectorAll(t.handle)),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener("mousedown",this._mouseDown),Rt&&(e.addEventListener("touchstart",sr),e.addEventListener("pointerdown",cr))}),this.el.classList.remove("ui-draggable-disabled"))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(t=>{t.removeEventListener("mousedown",this._mouseDown),Rt&&(t.removeEventListener("touchstart",sr),t.removeEventListener("pointerdown",cr))}),e||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(!oe.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(Xu)||this.option.cancel&&e.target.closest(this.option.cancel)||(this.mouseDownEvent=e,delete this.dragging,delete oe.dragElement,delete oe.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),Rt&&(e.currentTarget.addEventListener("touchmove",lr),e.currentTarget.addEventListener("touchend",dr)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),oe.mouseHandled=!0),!0}_callDrag(e){if(!this.dragging)return;let t=A.initEvent(e,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(t,this.ui()),this.triggerEvent("drag",t)}_mouseMove(e){let t=this.mouseDownEvent;if(this.lastDrag=e,this.dragging)if(this._dragFollow(e),oe.pauseDrag){let i=Number.isInteger(oe.pauseDrag)?oe.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(e),i)}else this._callDrag(e);else if(Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>3){this.dragging=!0,oe.dragElement=this;let i=this.el.gridstackNode?.grid;i?oe.dropElement=i.el.ddElement.ddDroppable:delete oe.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=A.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(e,this.el,this.helperContainment),this._setupHelperStyle(e);let o=A.initEvent(e,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(o,this.ui()),this.triggerEvent("dragstart",o),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(e){if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),Rt&&e.currentTarget&&(e.currentTarget.removeEventListener("touchmove",lr,!0),e.currentTarget.removeEventListener("touchend",dr,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener("keydown",this._keyEvent),oe.dropElement?.el===this.el.parentElement&&delete oe.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let t=A.initEvent(e,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(t),this.triggerEvent("dragstop",t),oe.dropElement&&oe.dropElement.drop(e)}delete this.helper,delete this.mouseDownEvent,delete oe.dragElement,delete oe.dropElement,delete oe.mouseHandled,e.preventDefault()}_keyEvent(e){let t=this.el.gridstackNode,i=t?.grid||oe.dropElement?.el?.gridstack;if(e.key==="Escape")t&&t._origRotate&&(t._orig=t._origRotate,delete t._origRotate),i?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(t&&i&&(e.key==="r"||e.key==="R")){if(!A.canBeRotated(t))return;t._origRotate=t._origRotate||X({},t._orig),delete t._moving,i.setAnimation(!1).rotate(t.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),t._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,t.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",A.swap(t._orig,"w","h"),delete t._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let e=this.el;return typeof this.option.helper=="function"?e=this.option.helper(this.el):this.option.helper==="clone"&&(e=A.cloneNode(this.el)),e.parentElement||A.appendTo(e,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=r.originStyleProp.map(t=>this.el.style[t]),e}_setupHelperStyle(e){this.helper.classList.add("ui-draggable-dragging");let t=this.helper.style;return t.pointerEvents="none",t.width=this.dragOffset.width+"px",t.height=this.dragOffset.height+"px",t.willChange="left, top",t.position="fixed",this._dragFollow(e),t.transition="none",setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove("ui-draggable-dragging"),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){let t=this.helper,i=this.dragElementOriginStyle.transition||null;t.style.transition=this.dragElementOriginStyle.transition="none",r.originStyleProp.forEach(o=>t.style[o]=this.dragElementOriginStyle[o]||null),setTimeout(()=>t.style.transition=i,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){let t={left:0,top:0},i=this.helper.style,o=this.dragOffset;i.left=(e.clientX+o.offsetLeft-t.left)*this.dragTransform.xScale+"px",i.top=(e.clientY+o.offsetTop-t.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(e,t,i){let o=0,a=0;i&&(o=this.dragTransform.xOffset,a=this.dragTransform.yOffset);let l=t.getBoundingClientRect();return{left:l.left,top:l.top,offsetLeft:-e.clientX+l.left-o,offsetTop:-e.clientY+l.top-a,width:l.width*this.dragTransform.xScale,height:l.height*this.dragTransform.yScale}}ui(){let t=this.el.parentElement.getBoundingClientRect(),i=this.helper.getBoundingClientRect();return{position:{top:(i.top-t.top)*this.dragTransform.yScale,left:(i.left-t.left)*this.dragTransform.xScale}}}}return r.originStyleProp=["width","height","transform","transform-origin","transition","pointerEvents","position","left","top","minWidth","willChange"],r})();var Ro=class extends en{constructor(n,e={}){super(),this.el=n,this.option=e,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(n,e){super.on(n,e)}off(n){super.off(n)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),Rt&&(this.el.addEventListener("pointerenter",is),this.el.addEventListener("pointerleave",ns)))}disable(n=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),n||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),Rt&&(this.el.removeEventListener("pointerenter",is),this.el.removeEventListener("pointerleave",ns)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(n){return Object.keys(n).forEach(e=>this.option[e]=n[e]),this._setupAccept(),this}_mouseEnter(n){if(!oe.dragElement||!this._canDrop(oe.dragElement.el))return;n.preventDefault(),n.stopPropagation(),oe.dropElement&&oe.dropElement!==this&&oe.dropElement._mouseLeave(n,!0),oe.dropElement=this;let e=A.initEvent(n,{target:this.el,type:"dropover"});this.option.over&&this.option.over(e,this._ui(oe.dragElement)),this.triggerEvent("dropover",e),this.el.classList.add("ui-droppable-over")}_mouseLeave(n,e=!1){if(!oe.dragElement||oe.dropElement!==this)return;n.preventDefault(),n.stopPropagation();let t=A.initEvent(n,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(t,this._ui(oe.dragElement)),this.triggerEvent("dropout",t),oe.dropElement===this&&(delete oe.dropElement,!e)){let i,o=this.el.parentElement;for(;!i&&o;)i=o.ddElement?.ddDroppable,o=o.parentElement;i&&i._mouseEnter(n)}}drop(n){n.preventDefault();let e=A.initEvent(n,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(e,this._ui(oe.dragElement)),this.triggerEvent("drop",e)}_canDrop(n){return n&&(!this.accept||this.accept(n))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=n=>n.classList.contains(this.option.accept)||n.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(n){return X({draggable:n.el},n.ui())}};var No=class r{static init(n){return n.ddElement||(n.ddElement=new r(n)),n.ddElement}constructor(n){this.el=n}on(n,e){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(n)>-1?this.ddDraggable.on(n,e):this.ddDroppable&&["drop","dropover","dropout"].indexOf(n)>-1?this.ddDroppable.on(n,e):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(n)>-1&&this.ddResizable.on(n,e),this}off(n){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(n)>-1?this.ddDraggable.off(n):this.ddDroppable&&["drop","dropover","dropout"].indexOf(n)>-1?this.ddDroppable.off(n):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(n)>-1&&this.ddResizable.off(n),this}setupDraggable(n){return this.ddDraggable?this.ddDraggable.updateOption(n):this.ddDraggable=new Zd(this.el,n),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(n){return this.ddResizable?this.ddResizable.updateOption(n):this.ddResizable=new Kd(this.el,n),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(n){return this.ddDroppable?this.ddDroppable.updateOption(n):this.ddDroppable=new Ro(this.el,n),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}};var Wo=class{resizable(n,e,t,i){return this._getDDElements(n,e).forEach(o=>{if(e==="disable"||e==="enable")o.ddResizable&&o.ddResizable[e]();else if(e==="destroy")o.ddResizable&&o.cleanResizable();else if(e==="option")o.setupResizable({[t]:i});else{let l=o.el.gridstackNode.grid,d=o.el.getAttribute("gs-resize-handles")||l.opts.resizable.handles||"e,s,se";d==="all"&&(d="n,e,s,w,se,sw,ne,nw");let f=!l.opts.alwaysShowResizeHandle;o.setupResizable($e(X({},l.opts.resizable),{handles:d,autoHide:f,start:e.start,stop:e.stop,resize:e.resize}))}}),this}draggable(n,e,t,i){return this._getDDElements(n,e).forEach(o=>{if(e==="disable"||e==="enable")o.ddDraggable&&o.ddDraggable[e]();else if(e==="destroy")o.ddDraggable&&o.cleanDraggable();else if(e==="option")o.setupDraggable({[t]:i});else{let a=o.el.gridstackNode.grid;o.setupDraggable($e(X({},a.opts.draggable),{start:e.start,stop:e.stop,drag:e.drag}))}}),this}dragIn(n,e){return this._getDDElements(n).forEach(t=>t.setupDraggable(e)),this}droppable(n,e,t,i){return typeof e.accept=="function"&&!e._accept&&(e._accept=e.accept,e.accept=o=>e._accept(o)),this._getDDElements(n,e).forEach(o=>{e==="disable"||e==="enable"?o.ddDroppable&&o.ddDroppable[e]():e==="destroy"?o.ddDroppable&&o.cleanDroppable():e==="option"?o.setupDroppable({[t]:i}):o.setupDroppable(e)}),this}isDroppable(n){return!!(n?.ddElement?.ddDroppable&&!n.ddElement.ddDroppable.disabled)}isDraggable(n){return!!(n?.ddElement?.ddDraggable&&!n.ddElement.ddDraggable.disabled)}isResizable(n){return!!(n?.ddElement?.ddResizable&&!n.ddElement.ddResizable.disabled)}on(n,e,t){return this._getDDElements(n).forEach(i=>i.on(e,o=>{t(o,oe.dragElement?oe.dragElement.el:o.target,oe.dragElement?oe.dragElement.helper:null)})),this}off(n,e){return this._getDDElements(n).forEach(t=>t.off(e)),this}_getDDElements(n,e){let t=n.gridstack||e!=="destroy"&&e!=="disable",i=A.getElements(n);return i.length?i.map(a=>a.ddElement||(t?No.init(a):null)).filter(a=>a):[]}};var Nt=new Wo,hr=(()=>{class r{static init(e={},t=".grid-stack"){if(typeof document>"u")return null;let i=r.getGridElement(t);return i?(i.gridstack||(i.gridstack=new r(i,A.cloneDeep(e))),i.gridstack):(console.error(typeof t=="string"?'GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ?
|
|
3
|
+
`;return function(){var H=new Error("get-stack-trace"),Q=H&&H.stack?H.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",ze=r.console&&(r.console.warn||r.console.log);return ze&&ze.call(r.console,I,Q),g.apply(this,arguments)}}var _;typeof Object.assign!="function"?_=function(b){if(b===t||b===null)throw new TypeError("Cannot convert undefined or null to object");for(var S=Object(b),I=1;I<arguments.length;I++){var H=arguments[I];if(H!==t&&H!==null)for(var Q in H)H.hasOwnProperty(Q)&&(S[Q]=H[Q])}return S}:_=Object.assign;var T=y(function(b,S,I){for(var H=Object.keys(S),Q=0;Q<H.length;)(!I||I&&b[H[Q]]===t)&&(b[H[Q]]=S[H[Q]]),Q++;return b},"extend","Use `assign`."),E=y(function(b,S){return T(b,S,!0)},"merge","Use `assign`.");function z(g,b,S){var I=b.prototype,H;H=g.prototype=Object.create(I),H.constructor=g,H._super=I,S&&_(H,S)}function Y(g,b){return function(){return g.apply(b,arguments)}}function te(g,b){return typeof g==a?g.apply(b&&b[0]||t,b):g}function be(g,b){return g===t?b:g}function He(g,b,S){m(ht(b),function(I){g.addEventListener(I,S,!1)})}function $e(g,b,S){m(ht(b),function(I){g.removeEventListener(I,S,!1)})}function Qe(g,b){for(;g;){if(g==b)return!0;g=g.parentNode}return!1}function se(g,b){return g.indexOf(b)>-1}function ht(g){return g.trim().split(/\s+/g)}function lt(g,b,S){if(g.indexOf&&!S)return g.indexOf(b);for(var I=0;I<g.length;){if(S&&g[I][S]==b||!S&&g[I]===b)return I;I++}return-1}function zt(g){return Array.prototype.slice.call(g,0)}function ft(g,b,S){for(var I=[],H=[],Q=0;Q<g.length;){var ze=b?g[Q][b]:g[Q];lt(H,ze)<0&&I.push(g[Q]),H[Q]=ze,Q++}return S&&(b?I=I.sort(function(xt,Rt){return xt[b]>Rt[b]}):I=I.sort()),I}function ut(g,b){for(var S,I,H=b[0].toUpperCase()+b.slice(1),Q=0;Q<i.length;){if(S=i[Q],I=S?S+H:b,I in g)return I;Q++}return t}var Ot=1;function Vi(){return Ot++}function K(g){var b=g.ownerDocument||g;return b.defaultView||b.parentWindow||r}var re=/mobile|tablet|ip(ad|hone|od)|android/i,le="ontouchstart"in r,Ae=ut(r,"PointerEvent")!==t,dt=le&&re.test(navigator.userAgent),bt="touch",_t="pen",It="mouse",Ze="kinect",Nn=25,gt=1,Je=2,Ue=4,Ye=8,ti=1,pi=2,mn=4,Ci=8,zi=16,ii=pi|mn,ni=Ci|zi,Zr=ii|ni,Jr=["x","y"],Wn=["clientX","clientY"];function Lt(g,b){var S=this;this.manager=g,this.callback=b,this.element=g.element,this.target=g.options.inputTarget,this.domHandler=function(I){te(g.options.enable,[g])&&S.handler(I)},this.init()}Lt.prototype={handler:function(){},init:function(){this.evEl&&He(this.element,this.evEl,this.domHandler),this.evTarget&&He(this.target,this.evTarget,this.domHandler),this.evWin&&He(K(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&$e(this.element,this.evEl,this.domHandler),this.evTarget&&$e(this.target,this.evTarget,this.domHandler),this.evWin&&$e(K(this.element),this.evWin,this.domHandler)}};function Da(g){var b,S=g.options.inputClass;return S?b=S:Ae?b=Ft:dt?b=Ln:le?b=C:b=Bi,new b(g,eo)}function eo(g,b,S){var I=S.pointers.length,H=S.changedPointers.length,Q=b>&&I-H===0,ze=b&(Ue|Ye)&&I-H===0;S.isFirst=!!Q,S.isFinal=!!ze,Q&&(g.session={}),S.eventType=b,Ma(g,S),g.emit("hammer.input",S),g.recognize(S),g.session.prevInput=S}function Ma(g,b){var S=g.session,I=b.pointers,H=I.length;S.firstInput||(S.firstInput=Dr(b)),H>1&&!S.firstMultiple?S.firstMultiple=Dr(b):H===1&&(S.firstMultiple=!1);var Q=S.firstInput,ze=S.firstMultiple,wt=ze?ze.center:Q.center,xt=b.center=Vn(I);b.timeStamp=p(),b.deltaTime=b.timeStamp-Q.timeStamp,b.angle=Mr(wt,xt),b.distance=Oi(wt,xt),Aa(S,b),b.offsetDirection=Si(b.deltaX,b.deltaY);var Rt=to(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=Rt.x,b.overallVelocityY=Rt.y,b.overallVelocity=d(Rt.x)>d(Rt.y)?Rt.x:Rt.y,b.scale=ze?pn(ze.pointers,I):1,b.rotation=ze?io(ze.pointers,I):0,b.maxPointers=S.prevInput?b.pointers.length>S.prevInput.maxPointers?b.pointers.length:S.prevInput.maxPointers:b.pointers.length,Oa(S,b);var ki=g.element;Qe(b.srcEvent.target,ki)&&(ki=b.srcEvent.target),b.target=ki}function Aa(g,b){var S=b.center,I=g.offsetDelta||{},H=g.prevDelta||{},Q=g.prevInput||{};(b.eventType===gt||Q.eventType===Ue)&&(H=g.prevDelta={x:Q.deltaX||0,y:Q.deltaY||0},I=g.offsetDelta={x:S.x,y:S.y}),b.deltaX=H.x+(S.x-I.x),b.deltaY=H.y+(S.y-I.y)}function Oa(g,b){var S=g.lastInterval||b,I=b.timeStamp-S.timeStamp,H,Q,ze,wt;if(b.eventType!=Ye&&(I>Nn||S.velocity===t)){var xt=b.deltaX-S.deltaX,Rt=b.deltaY-S.deltaY,ki=to(I,xt,Rt);Q=ki.x,ze=ki.y,H=d(ki.x)>d(ki.y)?ki.x:ki.y,wt=Si(xt,Rt),g.lastInterval=b}else H=S.velocity,Q=S.velocityX,ze=S.velocityY,wt=S.direction;b.velocity=H,b.velocityX=Q,b.velocityY=ze,b.direction=wt}function Dr(g){for(var b=[],S=0;S<g.pointers.length;)b[S]={clientX:l(g.pointers[S].clientX),clientY:l(g.pointers[S].clientY)},S++;return{timeStamp:p(),pointers:b,center:Vn(b),deltaX:g.deltaX,deltaY:g.deltaY}}function Vn(g){var b=g.length;if(b===1)return{x:l(g[0].clientX),y:l(g[0].clientY)};for(var S=0,I=0,H=0;H<b;)S+=g[H].clientX,I+=g[H].clientY,H++;return{x:l(S/b),y:l(I/b)}}function to(g,b,S){return{x:b/g||0,y:S/g||0}}function Si(g,b){return g===b?ti:d(g)>=d(b)?g<0?pi:mn:b<0?Ci:zi}function Oi(g,b,S){S||(S=Jr);var I=b[S[0]]-g[S[0]],H=b[S[1]]-g[S[1]];return Math.sqrt(I*I+H*H)}function Mr(g,b,S){S||(S=Jr);var I=b[S[0]]-g[S[0]],H=b[S[1]]-g[S[1]];return Math.atan2(H,I)*180/Math.PI}function io(g,b){return Mr(b[1],b[0],Wn)+Mr(g[1],g[0],Wn)}function pn(g,b){return Oi(b[0],b[1],Wn)/Oi(g[0],g[1],Wn)}var Ar={mousedown:gt,mousemove:Je,mouseup:Ue},Li="mousedown",Xt="mousemove mouseup";function Bi(){this.evEl=Li,this.evWin=Xt,this.pressed=!1,Lt.apply(this,arguments)}z(Bi,Lt,{handler:function(b){var S=Ar[b.type];S>&&b.button===0&&(this.pressed=!0),S&Je&&b.which!==1&&(S=Ue),this.pressed&&(S&Ue&&(this.pressed=!1),this.callback(this.manager,S,{pointers:[b],changedPointers:[b],pointerType:It,srcEvent:b}))}});var Or={pointerdown:gt,pointermove:Je,pointerup:Ue,pointercancel:Ye,pointerout:Ye},we={2:bt,3:_t,4:It,5:Ze},Bt="pointerdown",Fi="pointermove pointerup pointercancel";r.MSPointerEvent&&!r.PointerEvent&&(Bt="MSPointerDown",Fi="MSPointerMove MSPointerUp MSPointerCancel");function Ft(){this.evEl=Bt,this.evWin=Fi,Lt.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}z(Ft,Lt,{handler:function(b){var S=this.store,I=!1,H=b.type.toLowerCase().replace("ms",""),Q=Or[H],ze=we[b.pointerType]||b.pointerType,wt=ze==bt,xt=lt(S,b.pointerId,"pointerId");Q>&&(b.button===0||wt)?xt<0&&(S.push(b),xt=S.length-1):Q&(Ue|Ye)&&(I=!0),!(xt<0)&&(S[xt]=b,this.callback(this.manager,Q,{pointers:S,changedPointers:[b],pointerType:ze,srcEvent:b}),I&&S.splice(xt,1))}});var Ia={touchstart:gt,touchmove:Je,touchend:Ue,touchcancel:Ye},Z="touchstart",fn="touchstart touchmove touchend touchcancel";function zn(){this.evTarget=Z,this.evWin=fn,this.started=!1,Lt.apply(this,arguments)}z(zn,Lt,{handler:function(b){var S=Ia[b.type];if(S===gt&&(this.started=!0),!!this.started){var I=no.call(this,b,S);S&(Ue|Ye)&&I[0].length-I[1].length===0&&(this.started=!1),this.callback(this.manager,S,{pointers:I[0],changedPointers:I[1],pointerType:bt,srcEvent:b})}}});function no(g,b){var S=zt(g.touches),I=zt(g.changedTouches);return b&(Ue|Ye)&&(S=ft(S.concat(I),"identifier",!0)),[S,I]}var Ra={touchstart:gt,touchmove:Je,touchend:Ue,touchcancel:Ye},ro="touchstart touchmove touchend touchcancel";function Ln(){this.evTarget=ro,this.targetIds={},Lt.apply(this,arguments)}z(Ln,Lt,{handler:function(b){var S=Ra[b.type],I=u.call(this,b,S);I&&this.callback(this.manager,S,{pointers:I[0],changedPointers:I[1],pointerType:bt,srcEvent:b})}});function u(g,b){var S=zt(g.touches),I=this.targetIds;if(b&(gt|Je)&&S.length===1)return I[S[0].identifier]=!0,[S,S];var H,Q,ze=zt(g.changedTouches),wt=[],xt=this.target;if(Q=S.filter(function(Rt){return Qe(Rt.target,xt)}),b===gt)for(H=0;H<Q.length;)I[Q[H].identifier]=!0,H++;for(H=0;H<ze.length;)I[ze[H].identifier]&&wt.push(ze[H]),b&(Ue|Ye)&&delete I[ze[H].identifier],H++;if(wt.length)return[ft(Q.concat(wt),"identifier",!0),wt]}var h=2500,f=25;function C(){Lt.apply(this,arguments);var g=Y(this.handler,this);this.touch=new Ln(this.manager,g),this.mouse=new Bi(this.manager,g),this.primaryTouch=null,this.lastTouches=[]}z(C,Lt,{handler:function(b,S,I){var H=I.pointerType==bt,Q=I.pointerType==It;if(!(Q&&I.sourceCapabilities&&I.sourceCapabilities.firesTouchEvents)){if(H)k.call(this,S,I);else if(Q&&O.call(this,I))return;this.callback(b,S,I)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function k(g,b){g>?(this.primaryTouch=b.changedPointers[0].identifier,x.call(this,b)):g&(Ue|Ye)&&x.call(this,b)}function x(g){var b=g.changedPointers[0];if(b.identifier===this.primaryTouch){var S={x:b.clientX,y:b.clientY};this.lastTouches.push(S);var I=this.lastTouches,H=function(){var Q=I.indexOf(S);Q>-1&&I.splice(Q,1)};setTimeout(H,h)}}function O(g){for(var b=g.srcEvent.clientX,S=g.srcEvent.clientY,I=0;I<this.lastTouches.length;I++){var H=this.lastTouches[I],Q=Math.abs(b-H.x),ze=Math.abs(S-H.y);if(Q<=f&&ze<=f)return!0}return!1}var N=ut(o.style,"touchAction"),R=N!==t,W="compute",j="auto",$="manipulation",J="none",de="pan-x",me="pan-y",Oe=We();function fe(g,b){this.manager=g,this.set(b)}fe.prototype={set:function(g){g==W&&(g=this.compute()),R&&this.manager.element.style&&Oe[g]&&(this.manager.element.style[N]=g),this.actions=g.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var g=[];return m(this.manager.recognizers,function(b){te(b.options.enable,[b])&&(g=g.concat(b.getTouchAction()))}),Ne(g.join(" "))},preventDefaults:function(g){var b=g.srcEvent,S=g.offsetDirection;if(this.manager.session.prevented){b.preventDefault();return}var I=this.actions,H=se(I,J)&&!Oe[J],Q=se(I,me)&&!Oe[me],ze=se(I,de)&&!Oe[de];if(H){var wt=g.pointers.length===1,xt=g.distance<2,Rt=g.deltaTime<250;if(wt&&xt&&Rt)return}if(!(ze&&Q)&&(H||Q&&S&ii||ze&&S&ni))return this.preventSrc(b)},preventSrc:function(g){this.manager.session.prevented=!0,g.preventDefault()}};function Ne(g){if(se(g,J))return J;var b=se(g,de),S=se(g,me);return b&&S?J:b||S?b?de:me:se(g,$)?$:j}function We(){if(!R)return!1;var g={},b=r.CSS&&r.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(S){g[S]=b?r.CSS.supports("touch-action",S):!0}),g}var Ve=1,ue=2,Ce=4,ge=8,ae=ge,ve=16,ye=32;function Te(g){this.options=_({},this.defaults,g||{}),this.id=Vi(),this.manager=null,this.options.enable=be(this.options.enable,!0),this.state=Ve,this.simultaneous={},this.requireFail=[]}Te.prototype={defaults:{},set:function(g){return _(this.options,g),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(g){if(c(g,"recognizeWith",this))return this;var b=this.simultaneous;return g=kt(g,this),b[g.id]||(b[g.id]=g,g.recognizeWith(this)),this},dropRecognizeWith:function(g){return c(g,"dropRecognizeWith",this)?this:(g=kt(g,this),delete this.simultaneous[g.id],this)},requireFailure:function(g){if(c(g,"requireFailure",this))return this;var b=this.requireFail;return g=kt(g,this),lt(b,g)===-1&&(b.push(g),g.requireFailure(this)),this},dropRequireFailure:function(g){if(c(g,"dropRequireFailure",this))return this;g=kt(g,this);var b=lt(this.requireFail,g);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(g){return!!this.simultaneous[g.id]},emit:function(g){var b=this,S=this.state;function I(H){b.manager.emit(H,g)}S<ge&&I(b.options.event+Ke(S)),I(b.options.event),g.additionalEvent&&I(g.additionalEvent),S>=ge&&I(b.options.event+Ke(S))},tryEmit:function(g){if(this.canEmit())return this.emit(g);this.state=ye},canEmit:function(){for(var g=0;g<this.requireFail.length;){if(!(this.requireFail[g].state&(ye|Ve)))return!1;g++}return!0},recognize:function(g){var b=_({},g);if(!te(this.options.enable,[this,b])){this.reset(),this.state=ye;return}this.state&(ae|ve|ye)&&(this.state=Ve),this.state=this.process(b),this.state&(ue|Ce|ge|ve)&&this.tryEmit(b)},process:function(g){},getTouchAction:function(){},reset:function(){}};function Ke(g){return g&ve?"cancel":g&ge?"end":g&Ce?"move":g&ue?"start":""}function St(g){return g==zi?"down":g==Ci?"up":g==pi?"left":g==mn?"right":""}function kt(g,b){var S=b.manager;return S?S.get(g):g}function Tt(){Te.apply(this,arguments)}z(Tt,Te,{defaults:{pointers:1},attrTest:function(g){var b=this.options.pointers;return b===0||g.pointers.length===b},process:function(g){var b=this.state,S=g.eventType,I=b&(ue|Ce),H=this.attrTest(g);return I&&(S&Ye||!H)?b|ve:I||H?S&Ue?b|ge:b&ue?b|Ce:ue:ye}});function ri(){Tt.apply(this,arguments),this.pX=null,this.pY=null}z(ri,Tt,{defaults:{event:"pan",threshold:10,pointers:1,direction:Zr},getTouchAction:function(){var g=this.options.direction,b=[];return g&ii&&b.push(me),g&ni&&b.push(de),b},directionTest:function(g){var b=this.options,S=!0,I=g.distance,H=g.direction,Q=g.deltaX,ze=g.deltaY;return H&b.direction||(b.direction&ii?(H=Q===0?ti:Q<0?pi:mn,S=Q!=this.pX,I=Math.abs(g.deltaX)):(H=ze===0?ti:ze<0?Ci:zi,S=ze!=this.pY,I=Math.abs(g.deltaY))),g.direction=H,S&&I>b.threshold&&H&b.direction},attrTest:function(g){return Tt.prototype.attrTest.call(this,g)&&(this.state&ue||!(this.state&ue)&&this.directionTest(g))},emit:function(g){this.pX=g.deltaX,this.pY=g.deltaY;var b=St(g.direction);b&&(g.additionalEvent=this.options.event+b),this._super.emit.call(this,g)}});function Bn(){Tt.apply(this,arguments)}z(Bn,Tt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[J]},attrTest:function(g){return this._super.attrTest.call(this,g)&&(Math.abs(g.scale-1)>this.options.threshold||this.state&ue)},emit:function(g){if(g.scale!==1){var b=g.scale<1?"in":"out";g.additionalEvent=this.options.event+b}this._super.emit.call(this,g)}});function Fn(){Te.apply(this,arguments),this._timer=null,this._input=null}z(Fn,Te,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[j]},process:function(g){var b=this.options,S=g.pointers.length===b.pointers,I=g.distance<b.threshold,H=g.deltaTime>b.time;if(this._input=g,!I||!S||g.eventType&(Ue|Ye)&&!H)this.reset();else if(g.eventType>)this.reset(),this._timer=s(function(){this.state=ae,this.tryEmit()},b.time,this);else if(g.eventType&Ue)return ae;return ye},reset:function(){clearTimeout(this._timer)},emit:function(g){this.state===ae&&(g&&g.eventType&Ue?this.manager.emit(this.options.event+"up",g):(this._input.timeStamp=p(),this.manager.emit(this.options.event,this._input)))}});function Na(){Tt.apply(this,arguments)}z(Na,Tt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[J]},attrTest:function(g){return this._super.attrTest.call(this,g)&&(Math.abs(g.rotation)>this.options.threshold||this.state&ue)}});function Wa(){Tt.apply(this,arguments)}z(Wa,Tt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:ii|ni,pointers:1},getTouchAction:function(){return ri.prototype.getTouchAction.call(this)},attrTest:function(g){var b=this.options.direction,S;return b&(ii|ni)?S=g.overallVelocity:b&ii?S=g.overallVelocityX:b&ni&&(S=g.overallVelocityY),this._super.attrTest.call(this,g)&&b&g.offsetDirection&&g.distance>this.options.threshold&&g.maxPointers==this.options.pointers&&d(S)>this.options.velocity&&g.eventType&Ue},emit:function(g){var b=St(g.offsetDirection);b&&this.manager.emit(this.options.event+b,g),this.manager.emit(this.options.event,g)}});function oo(){Te.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}z(oo,Te,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[$]},process:function(g){var b=this.options,S=g.pointers.length===b.pointers,I=g.distance<b.threshold,H=g.deltaTime<b.time;if(this.reset(),g.eventType>&&this.count===0)return this.failTimeout();if(I&&H&&S){if(g.eventType!=Ue)return this.failTimeout();var Q=this.pTime?g.timeStamp-this.pTime<b.interval:!0,ze=!this.pCenter||Oi(this.pCenter,g.center)<b.posThreshold;this.pTime=g.timeStamp,this.pCenter=g.center,!ze||!Q?this.count=1:this.count+=1,this._input=g;var wt=this.count%b.taps;if(wt===0)return this.hasRequireFailures()?(this._timer=s(function(){this.state=ae,this.tryEmit()},b.interval,this),ue):ae}return ye},failTimeout:function(){return this._timer=s(function(){this.state=ye},this.options.interval,this),ye},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ae&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function Ii(g,b){return b=b||{},b.recognizers=be(b.recognizers,Ii.defaults.preset),new Va(g,b)}Ii.VERSION="2.0.7",Ii.defaults={domEvents:!1,touchAction:W,enable:!0,inputTarget:null,inputClass:null,preset:[[Na,{enable:!1}],[Bn,{enable:!1},["rotate"]],[Wa,{direction:ii}],[ri,{direction:ii},["swipe"]],[oo],[oo,{event:"doubletap",taps:2},["tap"]],[Fn]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var Qu=1,vl=2;function Va(g,b){this.options=_({},Ii.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||g,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=g,this.input=Da(this),this.touchAction=new fe(this,this.options.touchAction),yl(this,!0),m(this.options.recognizers,function(S){var I=this.add(new S[0](S[1]));S[2]&&I.recognizeWith(S[2]),S[3]&&I.requireFailure(S[3])},this)}Va.prototype={set:function(g){return _(this.options,g),g.touchAction&&this.touchAction.update(),g.inputTarget&&(this.input.destroy(),this.input.target=g.inputTarget,this.input.init()),this},stop:function(g){this.session.stopped=g?vl:Qu},recognize:function(g){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(g);var S,I=this.recognizers,H=b.curRecognizer;(!H||H&&H.state&ae)&&(H=b.curRecognizer=null);for(var Q=0;Q<I.length;)S=I[Q],b.stopped!==vl&&(!H||S==H||S.canRecognizeWith(H))?S.recognize(g):S.reset(),!H&&S.state&(ue|Ce|ge)&&(H=b.curRecognizer=S),Q++}},get:function(g){if(g instanceof Te)return g;for(var b=this.recognizers,S=0;S<b.length;S++)if(b[S].options.event==g)return b[S];return null},add:function(g){if(c(g,"add",this))return this;var b=this.get(g.options.event);return b&&this.remove(b),this.recognizers.push(g),g.manager=this,this.touchAction.update(),g},remove:function(g){if(c(g,"remove",this))return this;if(g=this.get(g),g){var b=this.recognizers,S=lt(b,g);S!==-1&&(b.splice(S,1),this.touchAction.update())}return this},on:function(g,b){if(g!==t&&b!==t){var S=this.handlers;return m(ht(g),function(I){S[I]=S[I]||[],S[I].push(b)}),this}},off:function(g,b){if(g!==t){var S=this.handlers;return m(ht(g),function(I){b?S[I]&&S[I].splice(lt(S[I],b),1):delete S[I]}),this}},emit:function(g,b){this.options.domEvents&&Zu(g,b);var S=this.handlers[g]&&this.handlers[g].slice();if(!(!S||!S.length)){b.type=g,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var I=0;I<S.length;)S[I](b),I++}},destroy:function(){this.element&&yl(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function yl(g,b){var S=g.element;if(S.style){var I;m(g.options.cssProps,function(H,Q){I=ut(S.style,Q),b?(g.oldCssProps[I]=S.style[I],S.style[I]=H):S.style[I]=g.oldCssProps[I]||""}),b||(g.oldCssProps={})}}function Zu(g,b){var S=n.createEvent("Event");S.initEvent(g,!0,!0),S.gesture=b,b.target.dispatchEvent(S)}_(Ii,{INPUT_START:gt,INPUT_MOVE:Je,INPUT_END:Ue,INPUT_CANCEL:Ye,STATE_POSSIBLE:Ve,STATE_BEGAN:ue,STATE_CHANGED:Ce,STATE_ENDED:ge,STATE_RECOGNIZED:ae,STATE_CANCELLED:ve,STATE_FAILED:ye,DIRECTION_NONE:ti,DIRECTION_LEFT:pi,DIRECTION_RIGHT:mn,DIRECTION_UP:Ci,DIRECTION_DOWN:zi,DIRECTION_HORIZONTAL:ii,DIRECTION_VERTICAL:ni,DIRECTION_ALL:Zr,Manager:Va,Input:Lt,TouchAction:fe,TouchInput:Ln,MouseInput:Bi,PointerEventInput:Ft,TouchMouseInput:C,SingleTouchInput:zn,Recognizer:Te,AttrRecognizer:Tt,Tap:oo,Pan:ri,Swipe:Wa,Pinch:Bn,Rotate:Na,Press:Fn,on:He,off:$e,each:m,merge:E,extend:T,assign:_,inherit:z,bindFn:Y,prefixed:ut});var Ju=typeof r<"u"?r:typeof self<"u"?self:{};Ju.Hammer=Ii,typeof define=="function"&&define.amd?define(function(){return Ii}):typeof Pa<"u"&&Pa.exports?Pa.exports=Ii:r[e]=Ii})(window,document,"Hammer")});function ec(r,n,e,t,i){let o=(...a)=>(console.warn("gridstack.js: Function `"+e+"` is deprecated in "+i+" and has been replaced with `"+t+"`. It will be **removed** in a future release"),n.apply(r,a));return o.prototype=n.prototype,o}var A=class r{static getElements(n,e=document){if(typeof n=="string"){let t="getElementById"in e?e:void 0;if(t&&!isNaN(+n[0])){let o=t.getElementById(n);return o?[o]:[]}let i=e.querySelectorAll(n);return!i.length&&n[0]!=="."&&n[0]!=="#"&&(i=e.querySelectorAll("."+n),i.length||(i=e.querySelectorAll("#"+n))),Array.from(i)}return[n]}static getElement(n,e=document){if(typeof n=="string"){let t="getElementById"in e?e:void 0;if(!n.length)return null;if(t&&n[0]==="#")return t.getElementById(n.substring(1));if(n[0]==="#"||n[0]==="."||n[0]==="[")return e.querySelector(n);if(t&&!isNaN(+n[0]))return t.getElementById(n);let i=e.querySelector(n);return t&&!i&&(i=t.getElementById(n)),i||(i=e.querySelector("."+n)),i}return n}static lazyLoad(n){return n.lazyLoad||n.grid?.opts?.lazyLoad&&n.lazyLoad!==!1}static createDiv(n,e){let t=document.createElement("div");return n.forEach(i=>{i&&t.classList.add(i)}),e?.appendChild(t),t}static shouldSizeToContent(n,e=!1){return n?.grid&&(e?n.sizeToContent===!0||n.grid.opts.sizeToContent===!0&&n.sizeToContent===void 0:!!n.sizeToContent||n.grid.opts.sizeToContent&&n.sizeToContent!==!1)}static isIntercepted(n,e){return!(n.y>=e.y+e.h||n.y+n.h<=e.y||n.x+n.w<=e.x||n.x>=e.x+e.w)}static isTouching(n,e){return r.isIntercepted(n,{x:e.x-.5,y:e.y-.5,w:e.w+1,h:e.h+1})}static areaIntercept(n,e){let t=n.x>e.x?n.x:e.x,i=n.x+n.w<e.x+e.w?n.x+n.w:e.x+e.w;if(i<=t)return 0;let o=n.y>e.y?n.y:e.y,a=n.y+n.h<e.y+e.h?n.y+n.h:e.y+e.h;return a<=o?0:(i-t)*(a-o)}static area(n){return n.w*n.h}static sort(n,e=1){return n.sort((i,o)=>{let a=e*((i.y??1e4)-(o.y??1e4));return a===0?e*((i.x??1e4)-(o.x??1e4)):a})}static find(n,e){return e?n.find(t=>t.id===e):void 0}static createStylesheet(n,e,t){let i=document.createElement("style"),o=t?.nonce;return o&&(i.nonce=o),i.setAttribute("type","text/css"),i.setAttribute("gs-style-id",n),i.styleSheet?i.styleSheet.cssText="":i.appendChild(document.createTextNode("")),e?e.insertBefore(i,e.firstChild):(e=document.getElementsByTagName("head")[0],e.appendChild(i)),i}static removeStylesheet(n,e){let i=(e||document).querySelector("STYLE[gs-style-id="+n+"]");i&&i.parentNode&&i.remove()}static addCSSRule(n,e,t){n.textContent+=`${e} { ${t} } `}static toBool(n){return typeof n=="boolean"?n:typeof n=="string"?(n=n.toLowerCase(),!(n===""||n==="no"||n==="false"||n==="0")):!!n}static toNumber(n){return n===null||n.length===0?void 0:Number(n)}static parseHeight(n){let e,t="px";if(typeof n=="string")if(n==="auto"||n==="")e=0;else{let i=n.match(/^(-[0-9]+\.[0-9]+|[0-9]*\.[0-9]+|-[0-9]+|[0-9]+)(px|em|rem|vh|vw|%|cm|mm)?$/);if(!i)throw new Error(`Invalid height val = ${n}`);t=i[2]||"px",e=parseFloat(i[1])}else e=n;return{h:e,unit:t}}static defaults(n,...e){return e.forEach(t=>{for(let i in t){if(!t.hasOwnProperty(i))return;n[i]===null||n[i]===void 0?n[i]=t[i]:typeof t[i]=="object"&&typeof n[i]=="object"&&this.defaults(n[i],t[i])}}),n}static same(n,e){if(typeof n!="object")return n==e;if(typeof n!=typeof e||Object.keys(n).length!==Object.keys(e).length)return!1;for(let t in n)if(n[t]!==e[t])return!1;return!0}static copyPos(n,e,t=!1){return e.x!==void 0&&(n.x=e.x),e.y!==void 0&&(n.y=e.y),e.w!==void 0&&(n.w=e.w),e.h!==void 0&&(n.h=e.h),t&&(e.minW&&(n.minW=e.minW),e.minH&&(n.minH=e.minH),e.maxW&&(n.maxW=e.maxW),e.maxH&&(n.maxH=e.maxH)),n}static samePos(n,e){return n&&e&&n.x===e.x&&n.y===e.y&&(n.w||1)===(e.w||1)&&(n.h||1)===(e.h||1)}static sanitizeMinMax(n){n.minW||delete n.minW,n.minH||delete n.minH,n.maxW||delete n.maxW,n.maxH||delete n.maxH}static removeInternalAndSame(n,e){if(!(typeof n!="object"||typeof e!="object"))for(let t in n){let i=n[t],o=e[t];t[0]==="_"||i===o?delete n[t]:i&&typeof i=="object"&&o!==void 0&&(r.removeInternalAndSame(i,o),Object.keys(i).length||delete n[t])}}static removeInternalForSave(n,e=!0){for(let t in n)(t[0]==="_"||n[t]===null||n[t]===void 0)&&delete n[t];delete n.grid,e&&delete n.el,n.autoPosition||delete n.autoPosition,n.noResize||delete n.noResize,n.noMove||delete n.noMove,n.locked||delete n.locked,(n.w===1||n.w===n.minW)&&delete n.w,(n.h===1||n.h===n.minH)&&delete n.h}static throttle(n,e){let t=!1;return(...i)=>{t||(t=!0,setTimeout(()=>{n(...i),t=!1},e))}}static removePositioningStyles(n){let e=n.style;e.position&&e.removeProperty("position"),e.left&&e.removeProperty("left"),e.top&&e.removeProperty("top"),e.width&&e.removeProperty("width"),e.height&&e.removeProperty("height")}static getScrollElement(n){if(!n)return document.scrollingElement||document.documentElement;let e=getComputedStyle(n);return/(auto|scroll)/.test(e.overflow+e.overflowY)?n:this.getScrollElement(n.parentElement)}static updateScrollPosition(n,e,t){let i=n.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight;if(i.top<0||i.bottom>o){let a=i.bottom-o,l=i.top,d=this.getScrollElement(n);if(d!==null){let p=d.scrollTop;i.top<0&&t<0?n.offsetHeight>o?d.scrollTop+=t:d.scrollTop+=Math.abs(l)>Math.abs(t)?t:l:t>0&&(n.offsetHeight>o?d.scrollTop+=t:d.scrollTop+=a>t?t:a),e.top+=d.scrollTop-p}}}static updateScrollResize(n,e,t){let i=this.getScrollElement(e),o=i.clientHeight,a=i===this.getScrollElement()?0:i.getBoundingClientRect().top,l=n.clientY-a,d=l<t,p=l>o-t;d?i.scrollBy({behavior:"smooth",top:l-t}):p&&i.scrollBy({behavior:"smooth",top:t-(o-l)})}static clone(n){return n==null||typeof n!="object"?n:n instanceof Array?[...n]:X({},n)}static cloneDeep(n){let e=["parentGrid","el","grid","subGrid","engine"],t=r.clone(n);for(let i in t)t.hasOwnProperty(i)&&typeof t[i]=="object"&&i.substring(0,2)!=="__"&&!e.find(o=>o===i)&&(t[i]=r.cloneDeep(n[i]));return t}static cloneNode(n){let e=n.cloneNode(!0);return e.removeAttribute("id"),e}static appendTo(n,e){let t;typeof e=="string"?t=r.getElement(e):t=e,t&&t.appendChild(n)}static addElStyles(n,e){if(e instanceof Object)for(let t in e)e.hasOwnProperty(t)&&(Array.isArray(e[t])?e[t].forEach(i=>{n.style[t]=i}):n.style[t]=e[t])}static initEvent(n,e){let t={type:e.type},i={button:0,which:0,buttons:1,bubbles:!0,cancelable:!0,target:e.target?e.target:n.target};return["altKey","ctrlKey","metaKey","shiftKey"].forEach(o=>t[o]=n[o]),["pageX","pageY","clientX","clientY","screenX","screenY"].forEach(o=>t[o]=n[o]),X(X({},t),i)}static simulateMouseEvent(n,e,t){let i=n,o=new MouseEvent(e,{bubbles:!0,composed:!0,cancelable:!0,view:window,detail:1,screenX:n.screenX,screenY:n.screenY,clientX:n.clientX,clientY:n.clientY,ctrlKey:i.ctrlKey??!1,altKey:i.altKey??!1,shiftKey:i.shiftKey??!1,metaKey:i.metaKey??!1,button:0,relatedTarget:n.target});(t||n.target).dispatchEvent(o)}static getValuesFromTransformedElement(n){let e=document.createElement("div");r.addElStyles(e,{opacity:"0",position:"fixed",top:"0px",left:"0px",width:"1px",height:"1px",zIndex:"-999999"}),n.appendChild(e);let t=e.getBoundingClientRect();return n.removeChild(e),e.remove(),{xScale:1/t.width,yScale:1/t.height,xOffset:t.left,yOffset:t.top}}static swap(n,e,t){if(!n)return;let i=n[e];n[e]=n[t],n[t]=i}static canBeRotated(n){return!(!n||n.w===n.h||n.locked||n.noResize||n.grid?.opts.disableResize||n.minW&&n.minW===n.maxW||n.minH&&n.minH===n.maxH)}};var Wo=(()=>{class r{constructor(e={}){this.addedNodes=[],this.removedNodes=[],this.defaultColumn=12,this.column=e.column||this.defaultColumn,this.column>this.defaultColumn&&(this.defaultColumn=this.column),this.maxRow=e.maxRow,this._float=e.float,this.nodes=e.nodes||[],this.onChange=e.onChange}batchUpdate(e=!0,t=!0){return!!this.batchMode===e?this:(this.batchMode=e,e?(this._prevFloat=this._float,this._float=!0,this.cleanNodes(),this.saveInitial()):(this._float=this._prevFloat,delete this._prevFloat,t&&this._packNodes(),this._notify()),this)}_useEntireRowArea(e,t){return(!this.float||this.batchMode&&!this._prevFloat)&&!this._hasLocked&&(!e._moving||e._skipDown||t.y<=e.y)}_fixCollisions(e,t=e,i,o={}){if(this.sortNodes(-1),i=i||this.collide(e,t),!i)return!1;if(e._moving&&!o.nested&&!this.float&&this.swap(e,i))return!0;let a=t;!this._loading&&this._useEntireRowArea(e,t)&&(a={x:0,w:this.column,y:t.y,h:t.h},i=this.collide(e,a,o.skip));let l=!1,d={nested:!0,pack:!1},p=0;for(;i=i||this.collide(e,a,o.skip);){if(p++>this.nodes.length*2)throw new Error("Infinite collide check");let s;if(i.locked||this._loading||e._moving&&!e._skipDown&&t.y>e.y&&!this.float&&(!this.collide(i,et(X({},i),{y:e.y}),e)||!this.collide(i,et(X({},i),{y:t.y-i.h}),e))){e._skipDown=e._skipDown||t.y>e.y;let c=X(et(X({},t),{y:i.y+i.h}),d);s=this._loading&&A.samePos(e,c)?!0:this.moveNode(e,c),(i.locked||this._loading)&&s?A.copyPos(t,e):!i.locked&&s&&o.pack&&(this._packNodes(),t.y=i.y+i.h,A.copyPos(e,t)),l=l||s}else s=this.moveNode(i,X(et(X({},i),{y:t.y+t.h,skip:e}),d));if(!s)return l;i=void 0}return l}collide(e,t=e,i){let o=e._id,a=i?._id;return this.nodes.find(l=>l._id!==o&&l._id!==a&&A.isIntercepted(l,t))}collideAll(e,t=e,i){let o=e._id,a=i?._id;return this.nodes.filter(l=>l._id!==o&&l._id!==a&&A.isIntercepted(l,t))}directionCollideCoverage(e,t,i){if(!t.rect||!e._rect)return;let o=e._rect,a=X({},t.rect);a.y>o.y?(a.h+=a.y-o.y,a.y=o.y):a.h+=o.y-a.y,a.x>o.x?(a.w+=a.x-o.x,a.x=o.x):a.w+=o.x-a.x;let l,d=.5;for(let p of i){if(p.locked||!p._rect)break;let s=p._rect,c=Number.MAX_VALUE,m=Number.MAX_VALUE;o.y<s.y?c=(a.y+a.h-s.y)/s.h:o.y+o.h>s.y+s.h&&(c=(s.y+s.h-a.y)/s.h),o.x<s.x?m=(a.x+a.w-s.x)/s.w:o.x+o.w>s.x+s.w&&(m=(s.x+s.w-a.x)/s.w);let y=Math.min(m,c);y>d&&(d=y,l=p)}return t.collide=l,l}cacheRects(e,t,i,o,a,l){return this.nodes.forEach(d=>d._rect={y:d.y*t+i,x:d.x*e+l,w:d.w*e-l-o,h:d.h*t-i-a}),this}swap(e,t){if(!t||t.locked||!e||e.locked)return!1;function i(){let a=t.x,l=t.y;return t.x=e.x,t.y=e.y,e.h!=t.h?(e.x=a,e.y=t.y+t.h):e.w!=t.w?(e.x=t.x+t.w,e.y=l):(e.x=a,e.y=l),e._dirty=t._dirty=!0,!0}let o;if(e.w===t.w&&e.h===t.h&&(e.x===t.x||e.y===t.y)&&(o=A.isTouching(e,t)))return i();if(o!==!1){if(e.w===t.w&&e.x===t.x&&(o||(o=A.isTouching(e,t)))){if(t.y<e.y){let a=e;e=t,t=a}return i()}if(o!==!1){if(e.h===t.h&&e.y===t.y&&(o||(o=A.isTouching(e,t)))){if(t.x<e.x){let a=e;e=t,t=a}return i()}return!1}}}isAreaEmpty(e,t,i,o){let a={x:e||0,y:t||0,w:i||1,h:o||1};return!this.collide(a)}compact(e="compact",t=!0){if(this.nodes.length===0)return this;t&&this.sortNodes();let i=this.batchMode;i||this.batchUpdate();let o=this._inColumnResize;o||(this._inColumnResize=!0);let a=this.nodes;return this.nodes=[],a.forEach((l,d,p)=>{let s;l.locked||(l.autoPosition=!0,e==="list"&&d&&(s=p[d-1])),this.addNode(l,!1,s)}),o||delete this._inColumnResize,i||this.batchUpdate(!1),this}set float(e){this._float!==e&&(this._float=e||!1,e||this._packNodes()._notify())}get float(){return this._float||!1}sortNodes(e=1){return this.nodes=A.sort(this.nodes,e),this}_packNodes(){return this.batchMode?this:(this.sortNodes(),this.float?this.nodes.forEach(e=>{if(e._updating||e._orig===void 0||e.y===e._orig.y)return;let t=e.y;for(;t>e._orig.y;)--t,this.collide(e,{x:e.x,y:t,w:e.w,h:e.h})||(e._dirty=!0,e.y=t)}):this.nodes.forEach((e,t)=>{if(!e.locked)for(;e.y>0;){let i=t===0?0:e.y-1;if(!(t===0||!this.collide(e,{x:e.x,y:i,w:e.w,h:e.h})))break;e._dirty=e.y!==i,e.y=i}}),this)}prepareNode(e,t){e._id=e._id??r._idSeq++;let i=e.id;if(i){let a=1;for(;this.nodes.find(l=>l.id===e.id&&l!==e);)e.id=i+"_"+a++}(e.x===void 0||e.y===void 0||e.x===null||e.y===null)&&(e.autoPosition=!0);let o={x:0,y:0,w:1,h:1};return A.defaults(e,o),e.autoPosition||delete e.autoPosition,e.noResize||delete e.noResize,e.noMove||delete e.noMove,A.sanitizeMinMax(e),typeof e.x=="string"&&(e.x=Number(e.x)),typeof e.y=="string"&&(e.y=Number(e.y)),typeof e.w=="string"&&(e.w=Number(e.w)),typeof e.h=="string"&&(e.h=Number(e.h)),isNaN(e.x)&&(e.x=o.x,e.autoPosition=!0),isNaN(e.y)&&(e.y=o.y,e.autoPosition=!0),isNaN(e.w)&&(e.w=o.w),isNaN(e.h)&&(e.h=o.h),this.nodeBoundFix(e,t),e}nodeBoundFix(e,t){let i=e._orig||A.copyPos({},e);if(e.maxW&&(e.w=Math.min(e.w||1,e.maxW)),e.maxH&&(e.h=Math.min(e.h||1,e.maxH)),e.minW&&(e.w=Math.max(e.w||1,e.minW)),e.minH&&(e.h=Math.max(e.h||1,e.minH)),(e.x||0)+(e.w||1)>this.column&&this.column<this.defaultColumn&&!this._inColumnResize&&!this.skipCacheUpdate&&e._id&&this.findCacheLayout(e,this.defaultColumn)===-1){let a=X({},e);a.autoPosition||a.x===void 0?(delete a.x,delete a.y):a.x=Math.min(this.defaultColumn-1,a.x),a.w=Math.min(this.defaultColumn,a.w||1),this.cacheOneLayout(a,this.defaultColumn)}return e.w>this.column?e.w=this.column:e.w<1&&(e.w=1),this.maxRow&&e.h>this.maxRow?e.h=this.maxRow:e.h<1&&(e.h=1),e.x<0&&(e.x=0),e.y<0&&(e.y=0),e.x+e.w>this.column&&(t?e.w=this.column-e.x:e.x=this.column-e.w),this.maxRow&&e.y+e.h>this.maxRow&&(t?e.h=this.maxRow-e.y:e.y=this.maxRow-e.h),A.samePos(e,i)||(e._dirty=!0),this}getDirtyNodes(e){return e?this.nodes.filter(t=>t._dirty&&!A.samePos(t,t._orig)):this.nodes.filter(t=>t._dirty)}_notify(e){if(this.batchMode||!this.onChange)return this;let t=(e||[]).concat(this.getDirtyNodes());return this.onChange(t),this}cleanNodes(){return this.batchMode?this:(this.nodes.forEach(e=>{delete e._dirty,delete e._lastTried}),this)}saveInitial(){return this.nodes.forEach(e=>{e._orig=A.copyPos({},e),delete e._dirty}),this._hasLocked=this.nodes.some(e=>e.locked),this}restoreInitial(){return this.nodes.forEach(e=>{!e._orig||A.samePos(e,e._orig)||(A.copyPos(e,e._orig),e._dirty=!0)}),this._notify(),this}findEmptyPosition(e,t=this.nodes,i=this.column,o){let a=o?o.y*i+(o.x+o.w):0,l=!1;for(let d=a;!l;++d){let p=d%i,s=Math.floor(d/i);if(p+e.w>i)continue;let c={x:p,y:s,w:e.w,h:e.h};t.find(m=>A.isIntercepted(c,m))||((e.x!==p||e.y!==s)&&(e._dirty=!0),e.x=p,e.y=s,delete e.autoPosition,l=!0)}return l}addNode(e,t=!1,i){let o=this.nodes.find(l=>l._id===e._id);if(o)return o;this._inColumnResize?this.nodeBoundFix(e):this.prepareNode(e),delete e._temporaryRemoved,delete e._removeDOM;let a;return e.autoPosition&&this.findEmptyPosition(e,this.nodes,this.column,i)&&(delete e.autoPosition,a=!0),this.nodes.push(e),t&&this.addedNodes.push(e),a||this._fixCollisions(e),this.batchMode||this._packNodes()._notify(),e}removeNode(e,t=!0,i=!1){return this.nodes.find(o=>o._id===e._id)?(i&&this.removedNodes.push(e),t&&(e._removeDOM=!0),this.nodes=this.nodes.filter(o=>o._id!==e._id),e._isAboutToRemove||this._packNodes(),this._notify([e]),this):this}removeAll(e=!0,t=!0){if(delete this._layouts,!this.nodes.length)return this;e&&this.nodes.forEach(o=>o._removeDOM=!0);let i=this.nodes;return this.removedNodes=t?i:[],this.nodes=[],this._notify(i)}moveNodeCheck(e,t){if(!this.changedPosConstrain(e,t))return!1;if(t.pack=!0,!this.maxRow)return this.moveNode(e,t);let i,o=new r({column:this.column,float:this.float,nodes:this.nodes.map(l=>l._id===e._id?(i=X({},l),i):X({},l))});if(!i)return!1;let a=o.moveNode(i,t)&&o.getRow()<=Math.max(this.getRow(),this.maxRow);if(!a&&!t.resizing&&t.collide){let l=t.collide.el.gridstackNode;if(this.swap(e,l))return this._notify(),!0}return a?(o.nodes.filter(l=>l._dirty).forEach(l=>{let d=this.nodes.find(p=>p._id===l._id);d&&(A.copyPos(d,l),d._dirty=!0)}),this._notify(),!0):!1}willItFit(e){if(delete e._willFitPos,!this.maxRow)return!0;let t=new r({column:this.column,float:this.float,nodes:this.nodes.map(o=>X({},o))}),i=X({},e);return this.cleanupNode(i),delete i.el,delete i._id,delete i.content,delete i.grid,t.addNode(i),t.getRow()<=this.maxRow?(e._willFitPos=A.copyPos({},i),!0):!1}changedPosConstrain(e,t){return t.w=t.w||e.w,t.h=t.h||e.h,e.x!==t.x||e.y!==t.y?!0:(e.maxW&&(t.w=Math.min(t.w,e.maxW)),e.maxH&&(t.h=Math.min(t.h,e.maxH)),e.minW&&(t.w=Math.max(t.w,e.minW)),e.minH&&(t.h=Math.max(t.h,e.minH)),e.w!==t.w||e.h!==t.h)}moveNode(e,t){if(!e||!t)return!1;let i;t.pack===void 0&&!this.batchMode&&(i=t.pack=!0),typeof t.x!="number"&&(t.x=e.x),typeof t.y!="number"&&(t.y=e.y),typeof t.w!="number"&&(t.w=e.w),typeof t.h!="number"&&(t.h=e.h);let o=e.w!==t.w||e.h!==t.h,a=A.copyPos({},e,!0);if(A.copyPos(a,t),this.nodeBoundFix(a,o),A.copyPos(t,a),!t.forceCollide&&A.samePos(e,t))return!1;let l=A.copyPos({},e),d=this.collideAll(e,a,t.skip),p=!0;if(d.length){let s=e._moving&&!t.nested,c=s?this.directionCollideCoverage(e,t,d):d[0];if(s&&c&&e.grid?.opts?.subGridDynamic&&!e.grid._isTemp){let m=A.areaIntercept(t.rect,c._rect),y=A.area(t.rect),_=A.area(c._rect);m/(y<_?y:_)>.8&&(c.grid.makeSubGrid(c.el,void 0,e),c=void 0)}c?p=!this._fixCollisions(e,a,c,t):(p=!1,i&&delete t.pack)}return p&&!A.samePos(e,a)&&(e._dirty=!0,A.copyPos(e,a)),t.pack&&this._packNodes()._notify(),!A.samePos(e,l)}getRow(){return this.nodes.reduce((e,t)=>Math.max(e,t.y+t.h),0)}beginUpdate(e){return e._updating||(e._updating=!0,delete e._skipDown,this.batchMode||this.saveInitial()),this}endUpdate(){let e=this.nodes.find(t=>t._updating);return e&&(delete e._updating,delete e._skipDown),this}save(e=!0,t){let i=this._layouts?.length,o=i&&this.column!==i-1?this._layouts[i-1]:null,a=[];return this.sortNodes(),this.nodes.forEach(l=>{let d=o?.find(s=>s._id===l._id),p=X(X({},l),d||{});A.removeInternalForSave(p,!e),t&&t(l,p),a.push(p)}),a}layoutsNodesChange(e){return!this._layouts||this._inColumnResize?this:(this._layouts.forEach((t,i)=>{if(!t||i===this.column)return this;if(i<this.column)this._layouts[i]=void 0;else{let o=i/this.column;e.forEach(a=>{if(!a._orig)return;let l=t.find(d=>d._id===a._id);l&&(l.y>=0&&a.y!==a._orig.y&&(l.y+=a.y-a._orig.y),a.x!==a._orig.x&&(l.x=Math.round(a.x*o)),a.w!==a._orig.w&&(l.w=Math.round(a.w*o)))})}}),this)}columnChanged(e,t,i="moveScale"){if(!this.nodes.length||!t||e===t)return this;let o=i==="compact"||i==="list";o&&this.sortNodes(1),t<e&&this.cacheLayout(this.nodes,e),this.batchUpdate();let a=[],l=o?this.nodes:A.sort(this.nodes,-1);if(t>e&&this._layouts){let d=this._layouts[t]||[],p=this._layouts.length-1;!d.length&&e!==p&&this._layouts[p]?.length&&(e=p,this._layouts[p].forEach(s=>{let c=l.find(m=>m._id===s._id);c&&(!o&&!s.autoPosition&&(c.x=s.x??c.x,c.y=s.y??c.y),c.w=s.w??c.w,(s.x==null||s.y===void 0)&&(c.autoPosition=!0))})),d.forEach(s=>{let c=l.findIndex(m=>m._id===s._id);if(c!==-1){let m=l[c];if(o){m.w=s.w;return}(s.autoPosition||isNaN(s.x)||isNaN(s.y))&&this.findEmptyPosition(s,a),s.autoPosition||(m.x=s.x??m.x,m.y=s.y??m.y,m.w=s.w??m.w,a.push(m)),l.splice(c,1)}})}if(o)this.compact(i,!1);else{if(l.length)if(typeof i=="function")i(t,e,a,l);else{let d=o||i==="none"?1:t/e,p=i==="move"||i==="moveScale",s=i==="scale"||i==="moveScale";l.forEach(c=>{c.x=t===1?0:p?Math.round(c.x*d):Math.min(c.x,t-1),c.w=t===1||e===1?1:s?Math.round(c.w*d)||1:Math.min(c.w,t),a.push(c)}),l=[]}a=A.sort(a,-1),this._inColumnResize=!0,this.nodes=[],a.forEach(d=>{this.addNode(d,!1),delete d._orig})}return this.nodes.forEach(d=>delete d._orig),this.batchUpdate(!1,!o),delete this._inColumnResize,this}cacheLayout(e,t,i=!1){let o=[];return e.forEach((a,l)=>{if(a._id===void 0){let d=a.id?this.nodes.find(p=>p.id===a.id):void 0;a._id=d?._id??r._idSeq++}o[l]={x:a.x,y:a.y,w:a.w,_id:a._id}}),this._layouts=i?[]:this._layouts||[],this._layouts[t]=o,this}cacheOneLayout(e,t){e._id=e._id??r._idSeq++;let i={x:e.x,y:e.y,w:e.w,_id:e._id};(e.autoPosition||e.x===void 0)&&(delete i.x,delete i.y,e.autoPosition&&(i.autoPosition=!0)),this._layouts=this._layouts||[],this._layouts[t]=this._layouts[t]||[];let o=this.findCacheLayout(e,t);return o===-1?this._layouts[t].push(i):this._layouts[t][o]=i,this}findCacheLayout(e,t){return this._layouts?.[t]?.findIndex(i=>i._id===e._id)??-1}removeNodeFromLayoutCache(e){if(this._layouts)for(let t=0;t<this._layouts.length;t++){let i=this.findCacheLayout(e,t);i!==-1&&this._layouts[t].splice(i,1)}}cleanupNode(e){for(let t in e)t[0]==="_"&&t!=="_id"&&delete e[t];return this}}return r._idSeq=0,r})();var jt={alwaysShowResizeHandle:"mobile",animate:!0,auto:!0,cellHeight:"auto",cellHeightThrottle:100,cellHeightUnit:"px",column:12,draggable:{handle:".grid-stack-item-content",appendTo:"body",scroll:!0},handle:".grid-stack-item-content",itemClass:"grid-stack-item",margin:10,marginUnit:"px",maxRow:0,minRow:0,placeholderClass:"grid-stack-placeholder",placeholderText:"",removableOptions:{accept:"grid-stack-item",decline:"grid-stack-non-removable"},resizable:{handles:"se"},rtl:"auto"};var oe=class{};var Wt=typeof window<"u"&&typeof document<"u"&&("ontouchstart"in document||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0),ci=class{};function Vo(r,n){r.touches.length>1||(r.cancelable&&r.preventDefault(),A.simulateMouseEvent(r.changedTouches[0],n))}function tc(r,n){r.cancelable&&r.preventDefault(),A.simulateMouseEvent(r,n)}function cr(r){ci.touchHandled||(ci.touchHandled=!0,Vo(r,"mousedown"))}function hr(r){ci.touchHandled&&Vo(r,"mousemove")}function ur(r){if(!ci.touchHandled)return;ci.pointerLeaveTimeout&&(window.clearTimeout(ci.pointerLeaveTimeout),delete ci.pointerLeaveTimeout);let n=!!oe.dragElement;Vo(r,"mouseup"),n||Vo(r,"click"),ci.touchHandled=!1}function mr(r){r.pointerType!=="mouse"&&r.target.releasePointerCapture(r.pointerId)}function os(r){oe.dragElement&&r.pointerType!=="mouse"&&tc(r,"mouseenter")}function as(r){oe.dragElement&&r.pointerType!=="mouse"&&(ci.pointerLeaveTimeout=window.setTimeout(()=>{delete ci.pointerLeaveTimeout,tc(r,"mouseleave")},10))}var ic=(()=>{class r{constructor(e,t,i){this.host=e,this.dir=t,this.option=i,this.moving=!1,this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this._init()}_init(){let e=this.el=document.createElement("div");return e.classList.add("ui-resizable-handle"),e.classList.add(`${r.prefix}${this.dir}`),e.style.zIndex="100",e.style.userSelect="none",this.host.appendChild(this.el),this.el.addEventListener("mousedown",this._mouseDown),Wt&&(this.el.addEventListener("touchstart",cr),this.el.addEventListener("pointerdown",mr)),this}destroy(){return this.moving&&this._mouseUp(this.mouseDownEvent),this.el.removeEventListener("mousedown",this._mouseDown),Wt&&(this.el.removeEventListener("touchstart",cr),this.el.removeEventListener("pointerdown",mr)),this.host.removeChild(this.el),delete this.el,delete this.host,this}_mouseDown(e){this.mouseDownEvent=e,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),Wt&&(this.el.addEventListener("touchmove",hr),this.el.addEventListener("touchend",ur)),e.stopPropagation(),e.preventDefault()}_mouseMove(e){let t=this.mouseDownEvent;this.moving?this._triggerEvent("move",e):Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>2&&(this.moving=!0,this._triggerEvent("start",this.mouseDownEvent),this._triggerEvent("move",e),document.addEventListener("keydown",this._keyEvent)),e.stopPropagation()}_mouseUp(e){this.moving&&(this._triggerEvent("stop",e),document.removeEventListener("keydown",this._keyEvent)),document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),Wt&&(this.el.removeEventListener("touchmove",hr),this.el.removeEventListener("touchend",ur)),delete this.moving,delete this.mouseDownEvent,e.stopPropagation(),e.preventDefault()}_keyEvent(e){e.key==="Escape"&&(this.host.gridstackNode?.grid?.engine.restoreInitial(),this._mouseUp(this.mouseDownEvent))}_triggerEvent(e,t){return this.option[e]&&this.option[e](t),this}}return r.prefix="ui-resizable-",r})();var nn=class{constructor(){this._eventRegister={}}get disabled(){return this._disabled}on(n,e){this._eventRegister[n]=e}off(n){delete this._eventRegister[n]}enable(){this._disabled=!1}disable(){this._disabled=!0}destroy(){delete this._eventRegister}triggerEvent(n,e){if(!this.disabled&&this._eventRegister&&this._eventRegister[n])return this._eventRegister[n](e)}};var nc=(()=>{class r extends nn{constructor(e,t={}){super(),this.el=e,this.option=t,this.rectScale={x:1,y:1},this._ui=()=>{let o=this.el.parentElement.getBoundingClientRect(),a={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},l=this.temporalRect||a;return{position:{left:(l.left-o.left)*this.rectScale.x,top:(l.top-o.top)*this.rectScale.y},size:{width:l.width*this.rectScale.x,height:l.height*this.rectScale.y}}},this._mouseOver=this._mouseOver.bind(this),this._mouseOut=this._mouseOut.bind(this),this.enable(),this._setupAutoHide(this.option.autoHide),this._setupHandlers()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){super.enable(),this.el.classList.remove("ui-resizable-disabled"),this._setupAutoHide(this.option.autoHide)}disable(){super.disable(),this.el.classList.add("ui-resizable-disabled"),this._setupAutoHide(!1)}destroy(){this._removeHandlers(),this._setupAutoHide(!1),delete this.el,super.destroy()}updateOption(e){let t=e.handles&&e.handles!==this.option.handles,i=e.autoHide&&e.autoHide!==this.option.autoHide;return Object.keys(e).forEach(o=>this.option[o]=e[o]),t&&(this._removeHandlers(),this._setupHandlers()),i&&this._setupAutoHide(this.option.autoHide),this}_setupAutoHide(e){return e?(this.el.classList.add("ui-resizable-autohide"),this.el.addEventListener("mouseover",this._mouseOver),this.el.addEventListener("mouseout",this._mouseOut)):(this.el.classList.remove("ui-resizable-autohide"),this.el.removeEventListener("mouseover",this._mouseOver),this.el.removeEventListener("mouseout",this._mouseOut),oe.overResizeElement===this&&delete oe.overResizeElement),this}_mouseOver(e){oe.overResizeElement||oe.dragElement||(oe.overResizeElement=this,this.el.classList.remove("ui-resizable-autohide"))}_mouseOut(e){oe.overResizeElement===this&&(delete oe.overResizeElement,this.el.classList.add("ui-resizable-autohide"))}_setupHandlers(){return this.handlers=this.option.handles.split(",").map(e=>e.trim()).map(e=>new ic(this.el,e,{start:t=>{this._resizeStart(t)},stop:t=>{this._resizeStop(t)},move:t=>{this._resizing(t,e)}})),this}_resizeStart(e){this.sizeToContent=A.shouldSizeToContent(this.el.gridstackNode,!0),this.originalRect=this.el.getBoundingClientRect(),this.scrollEl=A.getScrollElement(this.el),this.scrollY=this.scrollEl.scrollTop,this.scrolled=0,this.startEvent=e,this._setupHelper(),this._applyChange();let t=A.initEvent(e,{type:"resizestart",target:this.el});return this.option.start&&this.option.start(t,this._ui()),this.el.classList.add("ui-resizable-resizing"),this.triggerEvent("resizestart",t),this}_resizing(e,t){this.scrolled=this.scrollEl.scrollTop-this.scrollY,this.temporalRect=this._getChange(e,t),this._applyChange();let i=A.initEvent(e,{type:"resize",target:this.el});return this.option.resize&&this.option.resize(i,this._ui()),this.triggerEvent("resize",i),this}_resizeStop(e){let t=A.initEvent(e,{type:"resizestop",target:this.el});return this.option.stop&&this.option.stop(t),this.el.classList.remove("ui-resizable-resizing"),this.triggerEvent("resizestop",t),this._cleanHelper(),delete this.startEvent,delete this.originalRect,delete this.temporalRect,delete this.scrollY,delete this.scrolled,this}_setupHelper(){this.elOriginStyleVal=r._originStyleProp.map(i=>this.el.style[i]),this.parentOriginStylePosition=this.el.parentElement.style.position;let e=this.el.parentElement,t=A.getValuesFromTransformedElement(e);return this.rectScale={x:t.xScale,y:t.yScale},getComputedStyle(this.el.parentElement).position.match(/static/)&&(this.el.parentElement.style.position="relative"),this.el.style.position="absolute",this.el.style.opacity="0.8",this}_cleanHelper(){return r._originStyleProp.forEach((e,t)=>{this.el.style[e]=this.elOriginStyleVal[t]||null}),this.el.parentElement.style.position=this.parentOriginStylePosition||null,this}_getChange(e,t){let i=this.startEvent,o={width:this.originalRect.width,height:this.originalRect.height+this.scrolled,left:this.originalRect.left,top:this.originalRect.top-this.scrolled},a=e.clientX-i.clientX,l=this.sizeToContent?0:e.clientY-i.clientY,d,p;t.indexOf("e")>-1?o.width+=a:t.indexOf("w")>-1&&(o.width-=a,o.left+=a,d=!0),t.indexOf("s")>-1?o.height+=l:t.indexOf("n")>-1&&(o.height-=l,o.top+=l,p=!0);let s=this._constrainSize(o.width,o.height,d,p);return Math.round(o.width)!==Math.round(s.width)&&(t.indexOf("w")>-1&&(o.left+=o.width-s.width),o.width=s.width),Math.round(o.height)!==Math.round(s.height)&&(t.indexOf("n")>-1&&(o.top+=o.height-s.height),o.height=s.height),o}_constrainSize(e,t,i,o){let a=this.option,l=(i?a.maxWidthMoveLeft:a.maxWidth)||Number.MAX_SAFE_INTEGER,d=a.minWidth/this.rectScale.x||e,p=(o?a.maxHeightMoveUp:a.maxHeight)||Number.MAX_SAFE_INTEGER,s=a.minHeight/this.rectScale.y||t,c=Math.min(l,Math.max(d,e)),m=Math.min(p,Math.max(s,t));return{width:c,height:m}}_applyChange(){let e={left:0,top:0,width:0,height:0};if(this.el.style.position==="absolute"){let t=this.el.parentElement,{left:i,top:o}=t.getBoundingClientRect();e={left:i,top:o,width:0,height:0}}return this.temporalRect?(Object.keys(this.temporalRect).forEach(t=>{let i=this.temporalRect[t],o=t==="width"||t==="left"?this.rectScale.x:t==="height"||t==="top"?this.rectScale.y:1;this.el.style[t]=(i-e[t])*o+"px"}),this):this}_removeHandlers(){return this.handlers.forEach(e=>e.destroy()),delete this.handlers,this}}return r._originStyleProp=["width","height","position","left","top","opacity","zIndex"],r})();var em='input,textarea,button,select,option,[contenteditable="true"],.ui-resizable-handle',rc=(()=>{class r extends nn{constructor(e,t={}){super(),this.el=e,this.option=t,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0};let i=t?.handle?.substring(1),o=e.gridstackNode;this.dragEls=!i||e.classList.contains(i)?[e]:o?.subGrid?[e.querySelector(t.handle)||e]:Array.from(e.querySelectorAll(t.handle)),this.dragEls.length===0&&(this.dragEls=[e]),this._mouseDown=this._mouseDown.bind(this),this._mouseMove=this._mouseMove.bind(this),this._mouseUp=this._mouseUp.bind(this),this._keyEvent=this._keyEvent.bind(this),this.enable()}on(e,t){super.on(e,t)}off(e){super.off(e)}enable(){this.disabled!==!1&&(super.enable(),this.dragEls.forEach(e=>{e.addEventListener("mousedown",this._mouseDown),Wt&&(e.addEventListener("touchstart",cr),e.addEventListener("pointerdown",mr))}),this.el.classList.remove("ui-draggable-disabled"))}disable(e=!1){this.disabled!==!0&&(super.disable(),this.dragEls.forEach(t=>{t.removeEventListener("mousedown",this._mouseDown),Wt&&(t.removeEventListener("touchstart",cr),t.removeEventListener("pointerdown",mr))}),e||this.el.classList.add("ui-draggable-disabled"))}destroy(){this.dragTimeout&&window.clearTimeout(this.dragTimeout),delete this.dragTimeout,this.mouseDownEvent&&this._mouseUp(this.mouseDownEvent),this.disable(!0),delete this.el,delete this.helper,delete this.option,super.destroy()}updateOption(e){return Object.keys(e).forEach(t=>this.option[t]=e[t]),this}_mouseDown(e){if(!oe.mouseHandled)return e.button!==0||!this.dragEls.find(t=>t===e.target)&&e.target.closest(em)||this.option.cancel&&e.target.closest(this.option.cancel)||(this.mouseDownEvent=e,delete this.dragging,delete oe.dragElement,delete oe.dropElement,document.addEventListener("mousemove",this._mouseMove,{capture:!0,passive:!0}),document.addEventListener("mouseup",this._mouseUp,!0),Wt&&(e.currentTarget.addEventListener("touchmove",hr),e.currentTarget.addEventListener("touchend",ur)),e.preventDefault(),document.activeElement&&document.activeElement.blur(),oe.mouseHandled=!0),!0}_callDrag(e){if(!this.dragging)return;let t=A.initEvent(e,{target:this.el,type:"drag"});this.option.drag&&this.option.drag(t,this.ui()),this.triggerEvent("drag",t)}_mouseMove(e){let t=this.mouseDownEvent;if(this.lastDrag=e,this.dragging)if(this._dragFollow(e),oe.pauseDrag){let i=Number.isInteger(oe.pauseDrag)?oe.pauseDrag:100;this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>this._callDrag(e),i)}else this._callDrag(e);else if(Math.abs(e.x-t.x)+Math.abs(e.y-t.y)>3){this.dragging=!0,oe.dragElement=this;let i=this.el.gridstackNode?.grid;i?oe.dropElement=i.el.ddElement.ddDroppable:delete oe.dropElement,this.helper=this._createHelper(),this._setupHelperContainmentStyle(),this.dragTransform=A.getValuesFromTransformedElement(this.helperContainment),this.dragOffset=this._getDragOffset(e,this.el,this.helperContainment),this._setupHelperStyle(e);let o=A.initEvent(e,{target:this.el,type:"dragstart"});this.option.start&&this.option.start(o,this.ui()),this.triggerEvent("dragstart",o),document.addEventListener("keydown",this._keyEvent)}return!0}_mouseUp(e){if(document.removeEventListener("mousemove",this._mouseMove,!0),document.removeEventListener("mouseup",this._mouseUp,!0),Wt&&e.currentTarget&&(e.currentTarget.removeEventListener("touchmove",hr,!0),e.currentTarget.removeEventListener("touchend",ur,!0)),this.dragging){delete this.dragging,delete this.el.gridstackNode?._origRotate,document.removeEventListener("keydown",this._keyEvent),oe.dropElement?.el===this.el.parentElement&&delete oe.dropElement,this.helperContainment.style.position=this.parentOriginStylePosition||null,this.helper!==this.el&&this.helper.remove(),this._removeHelperStyle();let t=A.initEvent(e,{target:this.el,type:"dragstop"});this.option.stop&&this.option.stop(t),this.triggerEvent("dragstop",t),oe.dropElement&&oe.dropElement.drop(e)}delete this.helper,delete this.mouseDownEvent,delete oe.dragElement,delete oe.dropElement,delete oe.mouseHandled,e.preventDefault()}_keyEvent(e){let t=this.el.gridstackNode,i=t?.grid||oe.dropElement?.el?.gridstack;if(e.key==="Escape")t&&t._origRotate&&(t._orig=t._origRotate,delete t._origRotate),i?.cancelDrag(),this._mouseUp(this.mouseDownEvent);else if(t&&i&&(e.key==="r"||e.key==="R")){if(!A.canBeRotated(t))return;t._origRotate=t._origRotate||X({},t._orig),delete t._moving,i.setAnimation(!1).rotate(t.el,{top:-this.dragOffset.offsetTop,left:-this.dragOffset.offsetLeft}).setAnimation(),t._moving=!0,this.dragOffset=this._getDragOffset(this.lastDrag,t.el,this.helperContainment),this.helper.style.width=this.dragOffset.width+"px",this.helper.style.height=this.dragOffset.height+"px",A.swap(t._orig,"w","h"),delete t._rect,this._mouseMove(this.lastDrag)}}_createHelper(){let e=this.el;return typeof this.option.helper=="function"?e=this.option.helper(this.el):this.option.helper==="clone"&&(e=A.cloneNode(this.el)),e.parentElement||A.appendTo(e,this.option.appendTo==="parent"?this.el.parentElement:this.option.appendTo),this.dragElementOriginStyle=r.originStyleProp.map(t=>this.el.style[t]),e}_setupHelperStyle(e){this.helper.classList.add("ui-draggable-dragging");let t=this.helper.style;return t.pointerEvents="none",t.width=this.dragOffset.width+"px",t.height=this.dragOffset.height+"px",t.willChange="left, top",t.position="fixed",this._dragFollow(e),t.transition="none",setTimeout(()=>{this.helper&&(t.transition=null)},0),this}_removeHelperStyle(){if(this.helper.classList.remove("ui-draggable-dragging"),!this.helper?.gridstackNode?._isAboutToRemove&&this.dragElementOriginStyle){let t=this.helper,i=this.dragElementOriginStyle.transition||null;t.style.transition=this.dragElementOriginStyle.transition="none",r.originStyleProp.forEach(o=>t.style[o]=this.dragElementOriginStyle[o]||null),setTimeout(()=>t.style.transition=i,50)}return delete this.dragElementOriginStyle,this}_dragFollow(e){let t={left:0,top:0},i=this.helper.style,o=this.dragOffset;i.left=(e.clientX+o.offsetLeft-t.left)*this.dragTransform.xScale+"px",i.top=(e.clientY+o.offsetTop-t.top)*this.dragTransform.yScale+"px"}_setupHelperContainmentStyle(){return this.helperContainment=this.helper.parentElement,this.helper.style.position!=="fixed"&&(this.parentOriginStylePosition=this.helperContainment.style.position,getComputedStyle(this.helperContainment).position.match(/static/)&&(this.helperContainment.style.position="relative")),this}_getDragOffset(e,t,i){let o=0,a=0;i&&(o=this.dragTransform.xOffset,a=this.dragTransform.yOffset);let l=t.getBoundingClientRect();return{left:l.left,top:l.top,offsetLeft:-e.clientX+l.left-o,offsetTop:-e.clientY+l.top-a,width:l.width*this.dragTransform.xScale,height:l.height*this.dragTransform.yScale}}ui(){let t=this.el.parentElement.getBoundingClientRect(),i=this.helper.getBoundingClientRect();return{position:{top:(i.top-t.top)*this.dragTransform.yScale,left:(i.left-t.left)*this.dragTransform.xScale}}}}return r.originStyleProp=["width","height","transform","transform-origin","transition","pointerEvents","position","left","top","minWidth","willChange"],r})();var zo=class extends nn{constructor(n,e={}){super(),this.el=n,this.option=e,this._mouseEnter=this._mouseEnter.bind(this),this._mouseLeave=this._mouseLeave.bind(this),this.enable(),this._setupAccept()}on(n,e){super.on(n,e)}off(n){super.off(n)}enable(){this.disabled!==!1&&(super.enable(),this.el.classList.add("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),this.el.addEventListener("mouseenter",this._mouseEnter),this.el.addEventListener("mouseleave",this._mouseLeave),Wt&&(this.el.addEventListener("pointerenter",os),this.el.addEventListener("pointerleave",as)))}disable(n=!1){this.disabled!==!0&&(super.disable(),this.el.classList.remove("ui-droppable"),n||this.el.classList.add("ui-droppable-disabled"),this.el.removeEventListener("mouseenter",this._mouseEnter),this.el.removeEventListener("mouseleave",this._mouseLeave),Wt&&(this.el.removeEventListener("pointerenter",os),this.el.removeEventListener("pointerleave",as)))}destroy(){this.disable(!0),this.el.classList.remove("ui-droppable"),this.el.classList.remove("ui-droppable-disabled"),super.destroy()}updateOption(n){return Object.keys(n).forEach(e=>this.option[e]=n[e]),this._setupAccept(),this}_mouseEnter(n){if(!oe.dragElement||!this._canDrop(oe.dragElement.el))return;n.preventDefault(),n.stopPropagation(),oe.dropElement&&oe.dropElement!==this&&oe.dropElement._mouseLeave(n,!0),oe.dropElement=this;let e=A.initEvent(n,{target:this.el,type:"dropover"});this.option.over&&this.option.over(e,this._ui(oe.dragElement)),this.triggerEvent("dropover",e),this.el.classList.add("ui-droppable-over")}_mouseLeave(n,e=!1){if(!oe.dragElement||oe.dropElement!==this)return;n.preventDefault(),n.stopPropagation();let t=A.initEvent(n,{target:this.el,type:"dropout"});if(this.option.out&&this.option.out(t,this._ui(oe.dragElement)),this.triggerEvent("dropout",t),oe.dropElement===this&&(delete oe.dropElement,!e)){let i,o=this.el.parentElement;for(;!i&&o;)i=o.ddElement?.ddDroppable,o=o.parentElement;i&&i._mouseEnter(n)}}drop(n){n.preventDefault();let e=A.initEvent(n,{target:this.el,type:"drop"});this.option.drop&&this.option.drop(e,this._ui(oe.dragElement)),this.triggerEvent("drop",e)}_canDrop(n){return n&&(!this.accept||this.accept(n))}_setupAccept(){return this.option.accept?(typeof this.option.accept=="string"?this.accept=n=>n.classList.contains(this.option.accept)||n.matches(this.option.accept):this.accept=this.option.accept,this):this}_ui(n){return X({draggable:n.el},n.ui())}};var Lo=class r{static init(n){return n.ddElement||(n.ddElement=new r(n)),n.ddElement}constructor(n){this.el=n}on(n,e){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(n)>-1?this.ddDraggable.on(n,e):this.ddDroppable&&["drop","dropover","dropout"].indexOf(n)>-1?this.ddDroppable.on(n,e):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(n)>-1&&this.ddResizable.on(n,e),this}off(n){return this.ddDraggable&&["drag","dragstart","dragstop"].indexOf(n)>-1?this.ddDraggable.off(n):this.ddDroppable&&["drop","dropover","dropout"].indexOf(n)>-1?this.ddDroppable.off(n):this.ddResizable&&["resizestart","resize","resizestop"].indexOf(n)>-1&&this.ddResizable.off(n),this}setupDraggable(n){return this.ddDraggable?this.ddDraggable.updateOption(n):this.ddDraggable=new rc(this.el,n),this}cleanDraggable(){return this.ddDraggable&&(this.ddDraggable.destroy(),delete this.ddDraggable),this}setupResizable(n){return this.ddResizable?this.ddResizable.updateOption(n):this.ddResizable=new nc(this.el,n),this}cleanResizable(){return this.ddResizable&&(this.ddResizable.destroy(),delete this.ddResizable),this}setupDroppable(n){return this.ddDroppable?this.ddDroppable.updateOption(n):this.ddDroppable=new zo(this.el,n),this}cleanDroppable(){return this.ddDroppable&&(this.ddDroppable.destroy(),delete this.ddDroppable),this}};var Bo=class{resizable(n,e,t,i){return this._getDDElements(n,e).forEach(o=>{if(e==="disable"||e==="enable")o.ddResizable&&o.ddResizable[e]();else if(e==="destroy")o.ddResizable&&o.cleanResizable();else if(e==="option")o.setupResizable({[t]:i});else{let l=o.el.gridstackNode.grid,d=o.el.getAttribute("gs-resize-handles")||l.opts.resizable.handles||"e,s,se";d==="all"&&(d="n,e,s,w,se,sw,ne,nw");let p=!l.opts.alwaysShowResizeHandle;o.setupResizable(et(X({},l.opts.resizable),{handles:d,autoHide:p,start:e.start,stop:e.stop,resize:e.resize}))}}),this}draggable(n,e,t,i){return this._getDDElements(n,e).forEach(o=>{if(e==="disable"||e==="enable")o.ddDraggable&&o.ddDraggable[e]();else if(e==="destroy")o.ddDraggable&&o.cleanDraggable();else if(e==="option")o.setupDraggable({[t]:i});else{let a=o.el.gridstackNode.grid;o.setupDraggable(et(X({},a.opts.draggable),{start:e.start,stop:e.stop,drag:e.drag}))}}),this}dragIn(n,e){return this._getDDElements(n).forEach(t=>t.setupDraggable(e)),this}droppable(n,e,t,i){return typeof e.accept=="function"&&!e._accept&&(e._accept=e.accept,e.accept=o=>e._accept(o)),this._getDDElements(n,e).forEach(o=>{e==="disable"||e==="enable"?o.ddDroppable&&o.ddDroppable[e]():e==="destroy"?o.ddDroppable&&o.cleanDroppable():e==="option"?o.setupDroppable({[t]:i}):o.setupDroppable(e)}),this}isDroppable(n){return!!(n?.ddElement?.ddDroppable&&!n.ddElement.ddDroppable.disabled)}isDraggable(n){return!!(n?.ddElement?.ddDraggable&&!n.ddElement.ddDraggable.disabled)}isResizable(n){return!!(n?.ddElement?.ddResizable&&!n.ddElement.ddResizable.disabled)}on(n,e,t){return this._getDDElements(n).forEach(i=>i.on(e,o=>{t(o,oe.dragElement?oe.dragElement.el:o.target,oe.dragElement?oe.dragElement.helper:null)})),this}off(n,e){return this._getDDElements(n).forEach(t=>t.off(e)),this}_getDDElements(n,e){let t=n.gridstack||e!=="destroy"&&e!=="disable",i=A.getElements(n);return i.length?i.map(a=>a.ddElement||(t?Lo.init(a):null)).filter(a=>a):[]}};var Vt=new Bo,pr=(()=>{class r{static init(e={},t=".grid-stack"){if(typeof document>"u")return null;let i=r.getGridElement(t);return i?(i.gridstack||(i.gridstack=new r(i,A.cloneDeep(e))),i.gridstack):(console.error(typeof t=="string"?'GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ?
|
|
4
4
|
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`:"GridStack.init() no grid element was passed."),null)}static initAll(e={},t=".grid-stack"){let i=[];return typeof document>"u"||(r.getGridElements(t).forEach(o=>{o.gridstack||(o.gridstack=new r(o,A.cloneDeep(e))),i.push(o.gridstack)}),i.length===0&&console.error('GridStack.initAll() no grid was found with selector "'+t+`" - element missing or wrong selector ?
|
|
5
|
-
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),i}static addGrid(e,t={}){if(!e)return null;let i=e;if(i.gridstack){let l=i.gridstack;return t&&(l.opts=X(X({},l.opts),t)),t.children!==void 0&&l.load(t.children),l}return(!e.classList.contains("grid-stack")||r.addRemoveCB)&&(r.addRemoveCB?i=r.addRemoveCB(e,t,!0,!0):i=A.createDiv(["grid-stack",t.class],e)),r.init(t,i)}static registerEngine(e){r.engineClass=e}get placeholder(){if(!this._placeholder){this._placeholder=A.createDiv([this.opts.placeholderClass,qt.itemClass,this.opts.itemClass]);let e=A.createDiv(["placeholder-content"],this._placeholder);this.opts.placeholderText&&(e.textContent=this.opts.placeholderText)}return this._placeholder}constructor(e,t={}){this.el=e,this.opts=t,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},e.gridstack=this,this.opts=t=t||{},e.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),t.row&&(t.minRow=t.maxRow=t.row,delete t.row);let i=A.toNumber(e.getAttribute("gs-row"));t.column==="auto"&&delete t.column,t.alwaysShowResizeHandle!==void 0&&(t._alwaysShowResizeHandle=t.alwaysShowResizeHandle);let o=t.columnOpts?.breakpoints,a=t;if(a.oneColumnModeDomSort&&(delete a.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),a.oneColumnSize||a.disableOneColumnMode===!1){let m=a.oneColumnSize||768;delete a.oneColumnSize,delete a.disableOneColumnMode,t.columnOpts=t.columnOpts||{},o=t.columnOpts.breakpoints=t.columnOpts.breakpoints||[];let y=o.find(_=>_.c===1);y?y.w=m:(y={c:1,w:m},o.push(y,{c:12,w:m+1}))}let l=t.columnOpts;l&&(!l.columnWidth&&!l.breakpoints?.length?(delete t.columnOpts,o=void 0):l.columnMax=l.columnMax||12),o?.length>1&&o.sort((m,y)=>(y.w||0)-(m.w||0));let d=$e(X({},A.cloneDeep(qt)),{column:A.toNumber(e.getAttribute("gs-column"))||qt.column,minRow:i||A.toNumber(e.getAttribute("gs-min-row"))||qt.minRow,maxRow:i||A.toNumber(e.getAttribute("gs-max-row"))||qt.maxRow,staticGrid:A.toBool(e.getAttribute("gs-static"))||qt.staticGrid,sizeToContent:A.toBool(e.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(t.handleClass?"."+t.handleClass:t.handle?t.handle:"")||qt.draggable.handle},removableOptions:{accept:t.itemClass||qt.removableOptions.accept,decline:qt.removableOptions.decline}});e.getAttribute("gs-animate")&&(d.animate=A.toBool(e.getAttribute("gs-animate"))),t=A.defaults(t,d),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+t.column),t.rtl==="auto"&&(t.rtl=e.style.direction==="rtl"),t.rtl&&this.el.classList.add("grid-stack-rtl");let s=this.el.closest("."+qt.itemClass)?.gridstackNode;s&&(s.subGrid=this,this.parentGridNode=s,this.el.classList.add("grid-stack-nested"),s.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=t.cellHeight==="auto",this._isAutoCellHeight||t.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof t.cellHeight=="number"&&t.cellHeightUnit&&t.cellHeightUnit!==qt.cellHeightUnit&&(t.cellHeight=t.cellHeight+t.cellHeightUnit,delete t.cellHeightUnit),this.cellHeight(t.cellHeight,!1)),t.alwaysShowResizeHandle==="mobile"&&(t.alwaysShowResizeHandle=Rt),this._styleSheetClass="gs-id-"+Oo._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();let c=t.engineClass||r.engineClass||Oo;if(this.engine=new c({column:this.getColumn(),float:t.float,maxRow:t.maxRow,onChange:m=>{let y=0;this.engine.nodes.forEach(_=>{y=Math.max(y,_.y+_.h)}),m.forEach(_=>{let T=_.el;T&&(_._removeDOM?(T&&T.remove(),delete _._removeDOM):this._writePosAttr(T,_))}),this._updateStyles(!1,y)}}),this._updateStyles(!1,0),t.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(m=>this._prepareElement(m)),delete this.engine._loading,this.batchUpdate(!1)),t.children){let m=t.children;delete t.children,m.length&&this.load(m)}this.setAnimation(),t.subGridDynamic&&!oe.pauseDrag&&(oe.pauseDrag=!0),t.draggable?.pause!==void 0&&(oe.pauseDrag=t.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(e){if(typeof e=="string"){console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");return}if(e.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(e);let t,i=e;if(i.grid=this,i?.el?t=i.el:r.addRemoveCB?t=r.addRemoveCB(this.el,e,!0,!1):t=this.createWidgetDivs(i),!t)return;if(i=t.gridstackNode,i&&t.parentElement===this.el&&this.engine.nodes.find(a=>a._id===i._id))return t;let o=this._readAttr(t);return A.defaults(e,o),this.engine.prepareNode(e),this.el.appendChild(t),this.makeWidget(t,e),t}createWidgetDivs(e){let t=A.createDiv(["grid-stack-item",this.opts.itemClass]),i=A.createDiv(["grid-stack-item-content"],t);return A.lazyLoad(e)?e.visibleObservable||(e.visibleObservable=new IntersectionObserver(([o])=>{o.isIntersecting&&(e.visibleObservable?.disconnect(),delete e.visibleObservable,r.renderCB(i,e),e.grid?.prepareDragDrop(e.el))}),window.setTimeout(()=>e.visibleObservable?.observe(t))):r.renderCB(i,e),t}makeSubGrid(e,t,i,o=!0){let a=e.gridstackNode;if(a||(a=this.makeWidget(e).gridstackNode),a.subGrid?.el)return a.subGrid;let l,d=this;for(;d&&!l;)l=d.opts?.subGridOpts,d=d.parentGridNode?.grid;t=A.cloneDeep(X(X($e(X({},this.opts),{id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0}),l||{}),t||a.subGridOpts||{})),a.subGridOpts=t;let f;t.column==="auto"&&(f=!0,t.column=Math.max(a.w||1,i?.w||1),delete t.columnOpts);let s=a.el.querySelector(".grid-stack-item-content"),c,m;if(o&&(this._removeDD(a.el),m=$e(X({},a),{x:0,y:0}),A.removeInternalForSave(m),delete m.subGridOpts,a.content&&(m.content=a.content,delete a.content),r.addRemoveCB?c=r.addRemoveCB(this.el,m,!0,!1):(c=A.createDiv(["grid-stack-item"]),c.appendChild(s),s=A.createDiv(["grid-stack-item-content"],a.el)),this.prepareDragDrop(a.el)),i){let _=f?t.column:a.w,T=a.h+i.h,E=a.el.style;E.transition="none",this.update(a.el,{w:_,h:T}),setTimeout(()=>E.transition=null)}let y=a.subGrid=r.addGrid(s,t);return i?._moving&&(y._isTemp=!0),f&&(y._autoColumn=!0),o&&y.makeWidget(c,m),i&&(i._moving?window.setTimeout(()=>A.simulateMouseEvent(i._event,"mouseenter",y.el),0):y.makeWidget(a.el,a)),this.resizeToContentCheck(!1,a),y}removeAsSubGrid(e){let t=this.parentGridNode?.grid;t&&(t.batchUpdate(),t.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(i=>{i.x+=this.parentGridNode.x,i.y+=this.parentGridNode.y,t.makeWidget(i.el,i)}),t.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,e&&window.setTimeout(()=>A.simulateMouseEvent(e._event,"mouseenter",t.el),0))}save(e=!0,t=!1,i=r.saveCB){let o=this.engine.save(e,i);if(o.forEach(a=>{if(e&&a.el&&!a.subGrid&&!i){let l=a.el.querySelector(".grid-stack-item-content");a.content=l?.innerHTML,a.content||delete a.content}else if(!e&&!i&&delete a.content,a.subGrid?.el){let l=a.subGrid.save(e,t,i);a.subGridOpts=t?l:{children:l},delete a.subGrid}delete a.el}),t){let a=A.cloneDeep(this.opts);a.marginBottom===a.marginTop&&a.marginRight===a.marginLeft&&a.marginTop===a.marginRight&&(a.margin=a.marginTop,delete a.marginTop,delete a.marginRight,delete a.marginBottom,delete a.marginLeft),a.rtl===(this.el.style.direction==="rtl")&&(a.rtl="auto"),this._isAutoCellHeight&&(a.cellHeight="auto"),this._autoColumn&&(a.column="auto");let l=a._alwaysShowResizeHandle;return delete a._alwaysShowResizeHandle,l!==void 0?a.alwaysShowResizeHandle=l:delete a.alwaysShowResizeHandle,A.removeInternalAndSame(a,qt),a.children=o,a}return o}load(e,t=r.addRemoveCB||!0){e=A.cloneDeep(e);let i=this.getColumn();e.forEach(s=>{s.w=s.w||1,s.h=s.h||1}),e=A.sort(e),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let o=0;e.forEach(s=>{o=Math.max(o,(s.x||0)+s.w)}),o>this.engine.defaultColumn&&(this.engine.defaultColumn=o),o>i&&this.engine.cacheLayout(e,o,!0);let a=r.addRemoveCB;typeof t=="function"&&(r.addRemoveCB=t);let l=[];this.batchUpdate();let d=!this.engine.nodes.length;d&&this.setAnimation(!1),!d&&t&&[...this.engine.nodes].forEach(c=>{if(!c.id)return;A.find(e,c.id)||(r.addRemoveCB&&r.addRemoveCB(this.el,c,!1,!1),l.push(c),this.removeWidget(c.el,!0,!1))}),this.engine._loading=!0;let f=[];return this.engine.nodes=this.engine.nodes.filter(s=>A.find(e,s.id)?(f.push(s),!1):!0),e.forEach(s=>{let c=A.find(f,s.id);if(c){if(A.shouldSizeToContent(c)&&(s.h=c.h),this.engine.nodeBoundFix(s),(s.autoPosition||s.x===void 0||s.y===void 0)&&(s.w=s.w||c.w,s.h=s.h||c.h,this.engine.findEmptyPosition(s)),this.engine.nodes.push(c),A.samePos(c,s)&&this.engine.nodes.length>1&&(this.moveNode(c,$e(X({},s),{forceCollide:!0})),A.copyPos(s,c)),this.update(c.el,s),s.subGridOpts?.children){let m=c.el.querySelector(".grid-stack");m&&m.gridstack&&m.gridstack.load(s.subGridOpts.children)}}else t&&this.addWidget(s)}),delete this.engine._loading,this.engine.removedNodes=l,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,a?r.addRemoveCB=a:delete r.addRemoveCB,d&&this.opts?.animate&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(e=!0){return this.engine.batchUpdate(e),e||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(e=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!e||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;let t=this.el.querySelector("."+this.opts.itemClass);if(t){let o=A.toNumber(t.getAttribute("gs-h"))||1;return Math.round(t.offsetHeight/o)}let i=parseInt(this.el.getAttribute("gs-current-row"));return i?Math.round(this.el.getBoundingClientRect().height/i):this.opts.cellHeight}cellHeight(e,t=!0){if(t&&e!==void 0&&this._isAutoCellHeight!==(e==="auto")&&(this._isAutoCellHeight=e==="auto",this._updateResizeEvent()),(e==="initial"||e==="auto")&&(e=void 0),e===void 0){let o=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;e=this.cellWidth()+o}let i=A.parseHeight(e);return this.opts.cellHeightUnit===i.unit&&this.opts.cellHeight===i.h?this:(this.opts.cellHeightUnit=i.unit,this.opts.cellHeight=i.h,this.resizeToContentCheck(),t&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(e=!1){return e&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){let e=this.opts.columnOpts;if(!e||!e.columnWidth&&!e.breakpoints?.length)return!1;let t=this.getColumn(),i=t,o=this._widthOrContainer(!0);if(e.columnWidth)i=Math.min(Math.round(o/e.columnWidth)||1,e.columnMax);else{i=e.columnMax;let a=0;for(;a<e.breakpoints.length&&o<=e.breakpoints[a].w;)i=e.breakpoints[a++].c||t}if(i!==t){let a=e.breakpoints?.find(l=>l.c===i);return this.column(i,a?.layout||e.layout),!0}return!1}compact(e="compact",t=!0){return this.engine.compact(e,t),this._triggerChangeEvent(),this}column(e,t="moveScale"){if(!e||e<1||this.opts.column===e)return this;let i=this.getColumn();return this.opts.column=e,this.engine?(this.engine.column=e,this.el.classList.remove("gs-"+i),this.el.classList.add("gs-"+e),this.engine.columnChanged(i,e,t),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(e=>e.matches("."+this.opts.itemClass)&&!e.matches("."+this.opts.placeholderClass))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(e=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),e?this.el.parentNode.removeChild(this.el):(this.removeAll(e),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),delete this.parentGridNode?.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(e){return this.opts.float!==e&&(this.opts.float=this.engine.float=e,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(e,t=!1){let i=this.el.getBoundingClientRect(),o;t?o={top:i.top+document.documentElement.scrollTop,left:i.left}:o={top:this.el.offsetTop,left:this.el.offsetLeft};let a=e.left-o.left,l=e.top-o.top,d=i.width/this.getColumn(),f=i.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(a/d),y:Math.floor(l/f)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(e,t,i,o){return this.engine.isAreaEmpty(e,t,i,o)}makeWidget(e,t){let i=r.getElement(e);if(!i)return;i.parentElement||this.el.appendChild(i),this._prepareElement(i,!0,t);let o=i.gridstackNode;this._updateContainerHeight(),o.subGridOpts&&this.makeSubGrid(i,o.subGridOpts,void 0,!1);let a;return this.opts.column===1&&!this._ignoreLayoutsNodeChange&&(a=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),a&&delete this._ignoreLayoutsNodeChange,i}on(e,t){return e.indexOf(" ")!==-1?(e.split(" ").forEach(o=>this.on(o,t)),this):(e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable"?(e==="enable"||e==="disable"?this._gsEventHandler[e]=o=>t(o):this._gsEventHandler[e]=o=>{o.detail&&t(o,o.detail)},this.el.addEventListener(e,this._gsEventHandler[e])):e==="drag"||e==="dragstart"||e==="dragstop"||e==="resizestart"||e==="resize"||e==="resizestop"||e==="dropped"||e==="resizecontent"?this._gsEventHandler[e]=t:console.error("GridStack.on("+e+") event not supported"),this)}off(e){return e.indexOf(" ")!==-1?(e.split(" ").forEach(i=>this.off(i)),this):((e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable")&&this._gsEventHandler[e]&&this.el.removeEventListener(e,this._gsEventHandler[e]),delete this._gsEventHandler[e],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(e=>this.off(e)),this}removeWidget(e,t=!0,i=!0){return e?(r.getElements(e).forEach(o=>{if(o.parentElement&&o.parentElement!==this.el)return;let a=o.gridstackNode;a||(a=this.engine.nodes.find(l=>o===l.el)),a&&(t&&r.addRemoveCB&&r.addRemoveCB(this.el,a,!1,!1),delete o.gridstackNode,this._removeDD(o),this.engine.removeNode(a,t,i),t&&o.parentElement&&o.remove())}),i&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error("Error: GridStack.removeWidget(undefined) called"),this)}removeAll(e=!0,t=!0){return this.engine.nodes.forEach(i=>{e&&r.addRemoveCB&&r.addRemoveCB(this.el,i,!1,!1),delete i.el.gridstackNode,this.opts.staticGrid||this._removeDD(i.el)}),this.engine.removeAll(e,t),t&&this._triggerRemoveEvent(),this}setAnimation(e=this.opts.animate,t){return t?setTimeout(()=>{this.opts&&this.setAnimation(e)}):e?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(e,t=!0,i=!0){return!!this.opts.staticGrid===e?this:(e?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(o=>{this.prepareDragDrop(o.el),o.subGrid&&i&&o.subGrid.setStatic(e,t,i)}),t&&this._setStaticClass(),this)}updateOptions(e){let t=this.opts;return e.acceptWidgets!==void 0&&this._setupAcceptWidget(),e.animate!==void 0&&this.setAnimation(),e.cellHeight&&(this.cellHeight(e.cellHeight,!0),delete e.cellHeight),e.class&&e.class!==t.class&&(t.class&&this.el.classList.remove(t.class),this.el.classList.add(e.class)),typeof e.column=="number"&&!e.columnOpts&&(this.column(e.column),delete e.column),e.margin!==void 0&&this.margin(e.margin),e.staticGrid!==void 0&&this.setStatic(e.staticGrid),e.disableDrag!==void 0&&!e.staticGrid&&this.enableMove(!e.disableDrag),e.disableResize!==void 0&&!e.staticGrid&&this.enableResize(!e.disableResize),e.float!==void 0&&this.float(e.float),e.row!==void 0&&(t.minRow=t.maxRow=e.row),e.children?.length&&(this.load(e.children),delete e.children),this.opts=X(X({},this.opts),e),this}update(e,t){return r.getElements(e).forEach(i=>{let o=i?.gridstackNode;if(!o)return;let a=X(X({},A.copyPos({},o)),A.cloneDeep(t));this.engine.nodeBoundFix(a),delete a.autoPosition;let l=["x","y","w","h"],d;if(l.some(c=>a[c]!==void 0&&a[c]!==o[c])&&(d={},l.forEach(c=>{d[c]=a[c]!==void 0?a[c]:o[c],delete a[c]})),!d&&(a.minW||a.minH||a.maxW||a.maxH)&&(d={}),a.content!==void 0){let c=i.querySelector(".grid-stack-item-content");c&&c.textContent!==a.content&&(o.content=a.content,r.renderCB(c,a),o.subGrid?.el&&(c.appendChild(o.subGrid.el),o.subGrid.opts.styleInHead||o.subGrid._updateStyles(!0))),delete a.content}let f=!1,s=!1;for(let c in a)c[0]!=="_"&&o[c]!==a[c]&&(o[c]=a[c],f=!0,s=s||!this.opts.staticGrid&&(c==="noResize"||c==="noMove"||c==="locked"));if(A.sanitizeMinMax(o),d){let c=d.w!==void 0&&d.w!==o.w;this.moveNode(o,d),c&&o.subGrid?o.subGrid.onResize(this.hasAnimationCSS()?o.w:void 0):this.resizeToContentCheck(c,o),delete o._orig}(d||f)&&this._writeAttr(i,o),s&&this.prepareDragDrop(o.el)}),this}moveNode(e,t){let i=e._updating;i||this.engine.cleanNodes().beginUpdate(e),this.engine.moveNode(e,t),this._updateContainerHeight(),i||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(e){if(!e||(e.classList.remove("size-to-content-max"),!e.clientHeight))return;let t=e.gridstackNode;if(!t)return;let i=t.grid;if(!i||e.parentElement!==i.el)return;let o=i.getCellHeight(!0);if(!o)return;let a=t.h?t.h*o:e.clientHeight,l;if(t.resizeToContentParent&&(l=e.querySelector(t.resizeToContentParent)),l||(l=e.querySelector(r.resizeToContentParent)),!l)return;let d=e.clientHeight-l.clientHeight,f=t.h?t.h*o-d:l.clientHeight,s;if(t.subGrid){s=t.subGrid.getRow()*t.subGrid.getCellHeight(!0);let y=t.subGrid.el.getBoundingClientRect(),_=t.subGrid.el.parentElement.getBoundingClientRect();s+=y.top-_.top}else{if(t.subGridOpts?.children?.length)return;{let y=l.firstElementChild;if(!y){console.error(`Error: GridStack.resizeToContent() widget id:${t.id} '${r.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}s=y.getBoundingClientRect().height||f}}if(f===s)return;a+=s-f;let c=Math.ceil(a/o),m=Number.isInteger(t.sizeToContent)?t.sizeToContent:0;m&&c>m&&(c=m,e.classList.add("size-to-content-max")),t.minH&&c<t.minH?c=t.minH:t.maxH&&c>t.maxH&&(c=t.maxH),c!==t.h&&(i._ignoreLayoutsNodeChange=!0,i.moveNode(t,{h:c}),delete i._ignoreLayoutsNodeChange)}resizeToContentCBCheck(e){r.resizeToContentCB?r.resizeToContentCB(e):this.resizeToContent(e)}rotate(e,t){return r.getElements(e).forEach(i=>{let o=i.gridstackNode;if(!A.canBeRotated(o))return;let a={w:o.h,h:o.w,minH:o.minW,minW:o.minH,maxH:o.maxW,maxW:o.maxH};if(t){let d=t.left>0?Math.floor(t.left/this.cellWidth()):0,f=t.top>0?Math.floor(t.top/this.opts.cellHeight):0;a.x=o.x+d-(o.h-(f+1)),a.y=o.y+f-d}Object.keys(a).forEach(d=>{a[d]===void 0&&delete a[d]});let l=o._orig;this.update(i,a),o._orig=l}),this}margin(e){if(!(typeof e=="string"&&e.split(" ").length>1)){let i=A.parseHeight(e);if(this.opts.marginUnit===i.unit&&this.opts.margin===i.h)return}return this.opts.margin=e,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(e){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");let t=arguments,i=0,o={x:t[i++],y:t[i++],w:t[i++],h:t[i++],autoPosition:t[i++]};return this.willItFit(o)}return this.engine.willItFit(e)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let e=this.engine.getDirtyNodes(!0);return e&&e.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(e),this._triggerEvent("change",e)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(t=>{delete t._dirty});let e=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",e)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){let e=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",e)}return this}_triggerEvent(e,t){let i=t?new CustomEvent(e,{bubbles:!1,detail:t}):new Event(e);return this.el.dispatchEvent(i),this}_removeStylesheet(){if(this._styles){let e=this.opts.styleInHead?void 0:this.el.parentNode;A.removeStylesheet(this._styleSheetClass,e),delete this._styles}return this}_updateStyles(e=!1,t){if(e&&this._removeStylesheet(),t===void 0&&(t=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;let i=this.opts.cellHeight,o=this.opts.cellHeightUnit,a=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){let l=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=A.createStylesheet(this._styleSheetClass,l,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,A.addCSSRule(this._styles,a,`height: ${i}${o}`);let d=this.opts.marginTop+this.opts.marginUnit,f=this.opts.marginBottom+this.opts.marginUnit,s=this.opts.marginRight+this.opts.marginUnit,c=this.opts.marginLeft+this.opts.marginUnit,m=`${a} > .grid-stack-item-content`,y=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;A.addCSSRule(this._styles,m,`top: ${d}; right: ${s}; bottom: ${f}; left: ${c};`),A.addCSSRule(this._styles,y,`top: ${d}; right: ${s}; bottom: ${f}; left: ${c};`),A.addCSSRule(this._styles,`${a} > .ui-resizable-n`,`top: ${d};`),A.addCSSRule(this._styles,`${a} > .ui-resizable-s`,`bottom: ${f}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-ne`,`right: ${s}; top: ${d}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-e`,`right: ${s}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-se`,`right: ${s}; bottom: ${f}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-nw`,`left: ${c}; top: ${d}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-w`,`left: ${c}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-sw`,`left: ${c}; bottom: ${f}`)}if(t=t||this._styles._max,t>this._styles._max){let l=d=>i*d+o;for(let d=this._styles._max+1;d<=t;d++)A.addCSSRule(this._styles,`${a}[gs-y="${d}"]`,`top: ${l(d)}`),A.addCSSRule(this._styles,`${a}[gs-h="${d+1}"]`,`height: ${l(d+1)}`);this._styles._max=t}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let e=this.parentGridNode,t=this.getRow()+this._extraDragRow,i=this.opts.cellHeight,o=this.opts.cellHeightUnit;if(!i)return this;if(!e){let a=A.parseHeight(getComputedStyle(this.el).minHeight);if(a.h>0&&a.unit===o){let l=Math.floor(a.h/i);t<l&&(t=l)}}return this.el.setAttribute("gs-current-row",String(t)),this.el.style.removeProperty("min-height"),this.el.style.removeProperty("height"),t&&(this.el.style[e?"minHeight":"height"]=t*i+o),e&&!e.grid.engine.batchMode&&A.shouldSizeToContent(e)&&e.grid.resizeToContentCBCheck(e.el),this}_prepareElement(e,t=!1,i){i=i||this._readAttr(e),e.gridstackNode=i,i.el=e,i.grid=this,i=this.engine.addNode(i,t),this._writeAttr(e,i),e.classList.add(qt.itemClass,this.opts.itemClass);let o=A.shouldSizeToContent(i);return o?e.classList.add("size-to-content"):e.classList.remove("size-to-content"),o&&this.resizeToContentCheck(!1,i),A.lazyLoad(i)||this.prepareDragDrop(i.el),this}_writePosAttr(e,t){return t.x!==void 0&&t.x!==null&&e.setAttribute("gs-x",String(t.x)),t.y!==void 0&&t.y!==null&&e.setAttribute("gs-y",String(t.y)),t.w>1?e.setAttribute("gs-w",String(t.w)):e.removeAttribute("gs-w"),t.h>1?e.setAttribute("gs-h",String(t.h)):e.removeAttribute("gs-h"),this}_writeAttr(e,t){if(!t)return this;this._writePosAttr(e,t);let i={noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id",sizeToContent:"gs-size-to-content"};for(let o in i)t[o]?e.setAttribute(i[o],String(t[o])):e.removeAttribute(i[o]);return this}_readAttr(e,t=!0){let i={};i.x=A.toNumber(e.getAttribute("gs-x")),i.y=A.toNumber(e.getAttribute("gs-y")),i.w=A.toNumber(e.getAttribute("gs-w")),i.h=A.toNumber(e.getAttribute("gs-h")),i.autoPosition=A.toBool(e.getAttribute("gs-auto-position")),i.noResize=A.toBool(e.getAttribute("gs-no-resize")),i.noMove=A.toBool(e.getAttribute("gs-no-move")),i.locked=A.toBool(e.getAttribute("gs-locked"));let o=e.getAttribute("gs-size-to-content");o&&(o==="true"||o==="false"?i.sizeToContent=A.toBool(o):i.sizeToContent=parseInt(o,10)),i.id=e.getAttribute("gs-id"),i.maxW=A.toNumber(e.getAttribute("gs-max-w")),i.minW=A.toNumber(e.getAttribute("gs-min-w")),i.maxH=A.toNumber(e.getAttribute("gs-max-h")),i.minH=A.toNumber(e.getAttribute("gs-min-h")),t&&(i.w===1&&e.removeAttribute("gs-w"),i.h===1&&e.removeAttribute("gs-h"),i.maxW&&e.removeAttribute("gs-max-w"),i.minW&&e.removeAttribute("gs-min-w"),i.maxH&&e.removeAttribute("gs-max-h"),i.minH&&e.removeAttribute("gs-min-h"));for(let a in i){if(!i.hasOwnProperty(a))return;!i[a]&&i[a]!==0&&a!=="gs-size-to-content"&&delete i[a]}return i}_setStaticClass(){let e=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...e),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...e),this.el.removeAttribute("gs-static")),this}onResize(e=this.el?.clientWidth){if(!e||this.prevWidth===e)return;this.prevWidth=e,this.batchUpdate();let t=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||"list"),t=!0):t=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(i=>{i.subGrid&&i.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(t),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(e=!1,t=void 0){if(this.engine){if(e&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,t),this.animationDelay);if(t)A.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el);else if(this.engine.nodes.some(i=>A.shouldSizeToContent(i))){let i=[...this.engine.nodes];this.batchUpdate(),i.forEach(o=>{A.shouldSizeToContent(o)&&this.resizeToContentCBCheck(o.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,t?[t]:this.engine.nodes)}}_updateResizeEvent(e=!1){let t=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(i=>i.sizeToContent));return!e&&t&&!this.resizeObserver?(this._sizeThrottle=A.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(e||!t)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(e=".grid-stack-item"){return A.getElement(e)}static getElements(e=".grid-stack-item"){return A.getElements(e)}static getGridElement(e){return r.getElement(e)}static getGridElements(e){return A.getElements(e)}_initMargin(){let e,t=0,i=[];return typeof this.opts.margin=="string"&&(i=this.opts.margin.split(" ")),i.length===2?(this.opts.marginTop=this.opts.marginBottom=i[0],this.opts.marginLeft=this.opts.marginRight=i[1]):i.length===4?(this.opts.marginTop=i[0],this.opts.marginRight=i[1],this.opts.marginBottom=i[2],this.opts.marginLeft=i[3]):(e=A.parseHeight(this.opts.margin),this.opts.marginUnit=e.unit,t=this.opts.margin=e.h),this.opts.marginTop===void 0?this.opts.marginTop=t:(e=A.parseHeight(this.opts.marginTop),this.opts.marginTop=e.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=t:(e=A.parseHeight(this.opts.marginBottom),this.opts.marginBottom=e.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=t:(e=A.parseHeight(this.opts.marginRight),this.opts.marginRight=e.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=t:(e=A.parseHeight(this.opts.marginLeft),this.opts.marginLeft=e.h,delete this.opts.margin),this.opts.marginUnit=e.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return Nt}static setupDragIn(e,t,i,o=document){t?.pause!==void 0&&(oe.pauseDrag=t.pause),t=X({appendTo:"body",helper:"clone"},t||{}),(typeof e=="string"?A.getElements(e,o):e).forEach((l,d)=>{Nt.isDraggable(l)||Nt.dragIn(l,t),i?.[d]&&(l.gridstackNode=i[d])})}movable(e,t){return this.opts.staticGrid?this:(r.getElements(e).forEach(i=>{let o=i.gridstackNode;o&&(t?delete o.noMove:o.noMove=!0,this.prepareDragDrop(o.el))}),this)}resizable(e,t){return this.opts.staticGrid?this:(r.getElements(e).forEach(i=>{let o=i.gridstackNode;o&&(t?delete o.noResize:o.noResize=!0,this.prepareDragDrop(o.el))}),this)}disable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!1,e),this.enableResize(!1,e),this._triggerEvent("disable"),this}enable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!0,e),this.enableResize(!0,e),this._triggerEvent("enable"),this}enableMove(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableMove(e,t)}),this)}enableResize(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableResize(e,t)}),this)}cancelDrag(){let e=this._placeholder?.gridstackNode;e&&(e._isExternal?(e._isAboutToRemove=!0,this.engine.removeNode(e)):e._isAboutToRemove&&r._itemRemoving(e.el,!1),this.engine.restoreInitial())}_removeDD(e){return Nt.draggable(e,"destroy").resizable(e,"destroy"),e.gridstackNode&&delete e.gridstackNode._initDD,delete e.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return Nt.droppable(this.el,"destroy"),this;let e,t,i=(o,a,l)=>{l=l||a;let d=l.gridstackNode;if(!d)return;if(!d.grid?.el){l.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let y=l.getBoundingClientRect();l.style.left=y.x+(this.dragTransform.xScale-1)*(o.clientX-y.x)/this.dragTransform.xScale+"px",l.style.top=y.y+(this.dragTransform.yScale-1)*(o.clientY-y.y)/this.dragTransform.yScale+"px",l.style.transformOrigin="0px 0px"}let{top:f,left:s}=l.getBoundingClientRect(),c=this.el.getBoundingClientRect();s-=c.left,f-=c.top;let m={position:{top:f*this.dragTransform.xScale,left:s*this.dragTransform.yScale}};if(d._temporaryRemoved){if(d.x=Math.max(0,Math.round(s/t)),d.y=Math.max(0,Math.round(f/e)),delete d.autoPosition,this.engine.nodeBoundFix(d),!this.engine.willItFit(d)){if(d.autoPosition=!0,!this.engine.willItFit(d)){Nt.off(a,"drag");return}d._willFitPos&&(A.copyPos(d,d._willFitPos),delete d._willFitPos)}this._onStartMoving(l,o,m,d,t,e)}else this._dragOrResize(l,o,m,d,t,e)};return Nt.droppable(this.el,{accept:o=>{let a=o.gridstackNode||this._readAttr(o,!1);if(a?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let l=!0;if(typeof this.opts.acceptWidgets=="function")l=this.opts.acceptWidgets(o);else{let d=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;l=o.matches(d)}if(l&&a&&this.opts.maxRow){let d={w:a.w,h:a.h,minW:a.minW,minH:a.minH};l=this.engine.willItFit(d)}return l}}).on(this.el,"dropover",(o,a,l)=>{let d=l?.gridstackNode||a.gridstackNode;if(d?.grid===this&&!d._temporaryRemoved)return!1;if(d?._sidebarOrig&&(d.w=d._sidebarOrig.w,d.h=d._sidebarOrig.h),d?.grid&&d.grid!==this&&!d._temporaryRemoved&&d.grid._leave(a,l),l=l||a,t=this.cellWidth(),e=this.getCellHeight(!0),!d){let c=l.getAttribute("data-gs-widget")||l.getAttribute("gridstacknode");if(c){try{d=JSON.parse(c)}catch{console.error("Gridstack dropover: Bad JSON format: ",c)}l.removeAttribute("data-gs-widget"),l.removeAttribute("gridstacknode")}d||(d=this._readAttr(l)),d._sidebarOrig={w:d.w,h:d.h}}d.grid||(d.el||(d=X({},d)),d._isExternal=!0,l.gridstackNode=d);let f=d.w||Math.round(l.offsetWidth/t)||1,s=d.h||Math.round(l.offsetHeight/e)||1;return d.grid&&d.grid!==this?(a._gridstackNodeOrig||(a._gridstackNodeOrig=d),a.gridstackNode=d=$e(X({},d),{w:f,h:s,grid:this}),delete d.x,delete d.y,this.engine.cleanupNode(d).nodeBoundFix(d),d._initDD=d._isExternal=d._temporaryRemoved=!0):(d.w=f,d.h=s,d._temporaryRemoved=!0),r._itemRemoving(d.el,!1),Nt.on(a,"drag",i),i(o,a,l),!1}).on(this.el,"dropout",(o,a,l)=>{let d=l?.gridstackNode||a.gridstackNode;return d&&(!d.grid||d.grid===this)&&(this._leave(a,l),this._isTemp&&this.removeAsSubGrid(d)),!1}).on(this.el,"drop",(o,a,l)=>{let d=l?.gridstackNode||a.gridstackNode;if(d?.grid===this&&!d._isExternal)return!1;let f=!!this.placeholder.parentElement,s=a!==l;this.placeholder.remove(),delete this.placeholder.gridstackNode;let c=f&&this.opts.animate;c&&this.setAnimation(!1);let m=a._gridstackNodeOrig;if(delete a._gridstackNodeOrig,f&&m?.grid&&m.grid!==this){let _=m.grid;_.engine.removeNodeFromLayoutCache(m),_.engine.removedNodes.push(m),_._triggerRemoveEvent()._triggerChangeEvent(),_.parentGridNode&&!_.engine.nodes.length&&_.opts.subGridDynamic&&_.removeAsSubGrid()}if(!d||(f&&(this.engine.cleanupNode(d),d.grid=this),delete d.grid?._isTemp,Nt.off(a,"drag"),l!==a?(l.remove(),a=l):a.remove(),this._removeDD(a),!f))return!1;let y=d.subGrid?.el?.gridstack;return A.copyPos(d,this._readAttr(this.placeholder)),A.removePositioningStyles(a),s&&(d.content||d.subGridOpts||r.addRemoveCB)?(delete d.el,a=this.addWidget(d)):(this._prepareElement(a,!0,d),this.el.appendChild(a),this.resizeToContentCheck(!1,d),y&&(y.parentGridNode=d,y.opts.styleInHead||y._updateStyles(!0)),this._updateContainerHeight()),this.engine.addedNodes.push(d),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped($e(X({},o),{type:"dropped"}),m&&m.grid?m:void 0,d),c&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(e,t){if(!e)return;let i=e?e.gridstackNode:void 0;!i?.grid||e.classList.contains(i.grid.opts.removableOptions.decline)||(t?i._isAboutToRemove=!0:delete i._isAboutToRemove,t?e.classList.add("grid-stack-item-removing"):e.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;let e=document.querySelector(this.opts.removable);return e?(!this.opts.staticGrid&&!Nt.isDroppable(e)&&Nt.droppable(e,this.opts.removableOptions).on(e,"dropover",(t,i)=>r._itemRemoving(i,!0)).on(e,"dropout",(t,i)=>r._itemRemoving(i,!1)),this):this}prepareDragDrop(e,t=!1){let i=e?.gridstackNode;if(!i)return;let o=i.noMove||this.opts.disableDrag,a=i.noResize||this.opts.disableResize,l=this.opts.staticGrid||o&&a;if((t||l)&&(i._initDD&&(this._removeDD(e),delete i._initDD),l&&e.classList.add("ui-draggable-disabled","ui-resizable-disabled"),!t))return this;if(!i._initDD){let d,f,s=(y,_)=>{this._gsEventHandler[y.type]&&this._gsEventHandler[y.type](y,y.target),d=this.cellWidth(),f=this.getCellHeight(!0),this._onStartMoving(e,y,_,i,d,f)},c=(y,_)=>{this._dragOrResize(e,y,_,i,d,f)},m=y=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete i._moving,delete i._event,delete i._lastTried;let _=i.w!==i._orig.w,T=y.target;if(!(!T.gridstackNode||T.gridstackNode.grid!==this)){if(i.el=T,i._isAboutToRemove){let E=e.gridstackNode.grid;E._gsEventHandler[y.type]&&E._gsEventHandler[y.type](y,T),E.engine.nodes.push(i),E.removeWidget(e,!0,!0)}else A.removePositioningStyles(T),i._temporaryRemoved?(A.copyPos(i,i._orig),this._writePosAttr(T,i),this.engine.addNode(i)):this._writePosAttr(T,i),this._gsEventHandler[y.type]&&this._gsEventHandler[y.type](y,T);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),y.type==="resizestop"&&(Number.isInteger(i.sizeToContent)&&(i.sizeToContent=i.h),this.resizeToContentCheck(_,i))}};Nt.draggable(e,{start:s,stop:m,drag:c}).resizable(e,{start:s,stop:m,resize:c}),i._initDD=!0}return Nt.draggable(e,o?"disable":"enable").resizable(e,a?"disable":"enable"),this}_onStartMoving(e,t,i,o,a,l){if(this.engine.cleanNodes().beginUpdate(o),this._writePosAttr(this.placeholder,o),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=o,o.grid?.el)this.dragTransform=A.getValuesFromTransformedElement(e);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){let d=this.placeholder.closest(".grid-stack");this.dragTransform=A.getValuesFromTransformedElement(d)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(o.el=this.placeholder,o._lastUiPosition=i.position,o._prevYPix=i.position.top,o._moving=t.type==="dragstart",delete o._lastTried,t.type==="dropover"&&o._temporaryRemoved&&(this.engine.addNode(o),o._moving=!0),this.engine.cacheRects(a,l,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),t.type==="resizestart"){let d=this.getColumn()-o.x,f=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-o.y;Nt.resizable(e,"option","minWidth",a*Math.min(o.minW||1,d)).resizable(e,"option","minHeight",l*Math.min(o.minH||1,f)).resizable(e,"option","maxWidth",a*Math.min(o.maxW||Number.MAX_SAFE_INTEGER,d)).resizable(e,"option","maxWidthMoveLeft",a*Math.min(o.maxW||Number.MAX_SAFE_INTEGER,o.x+o.w)).resizable(e,"option","maxHeight",l*Math.min(o.maxH||Number.MAX_SAFE_INTEGER,f)).resizable(e,"option","maxHeightMoveUp",l*Math.min(o.maxH||Number.MAX_SAFE_INTEGER,o.y+o.h))}}_dragOrResize(e,t,i,o,a,l){let d=X({},o._orig),f,s=this.opts.marginLeft,c=this.opts.marginRight,m=this.opts.marginTop,y=this.opts.marginBottom,_=Math.round(l*.1),T=Math.round(a*.1);if(s=Math.min(s,T),c=Math.min(c,T),m=Math.min(m,_),y=Math.min(y,_),t.type==="drag"){if(o._temporaryRemoved)return;let L=i.position.top-o._prevYPix;o._prevYPix=i.position.top,this.opts.draggable.scroll!==!1&&A.updateScrollPosition(e,i.position,L);let Y=i.position.left+(i.position.left>o._lastUiPosition.left?-c:s),te=i.position.top+(i.position.top>o._lastUiPosition.top?-y:m);d.x=Math.round(Y/a),d.y=Math.round(te/l);let _e=this._extraDragRow;if(this.engine.collide(o,d)){let He=this.getRow(),je=Math.max(0,d.y+o.h-He);this.opts.maxRow&&He+je>this.opts.maxRow&&(je=Math.max(0,this.opts.maxRow-He)),this._extraDragRow=je}else this._extraDragRow=0;if(this._extraDragRow!==_e&&this._updateContainerHeight(),o.x===d.x&&o.y===d.y)return}else if(t.type==="resize"){if(d.x<0||(A.updateScrollResize(t,e,l),d.w=Math.round((i.size.width-s)/a),d.h=Math.round((i.size.height-m)/l),o.w===d.w&&o.h===d.h)||o._lastTried&&o._lastTried.w===d.w&&o._lastTried.h===d.h)return;let L=i.position.left+s,Y=i.position.top+m;d.x=Math.round(L/a),d.y=Math.round(Y/l),f=!0}o._event=t,o._lastTried=d;let E={x:i.position.left+s,y:i.position.top+m,w:(i.size?i.size.width:o.w*a)-s-c,h:(i.size?i.size.height:o.h*l)-m-y};if(this.engine.moveNodeCheck(o,$e(X({},d),{cellWidth:a,cellHeight:l,rect:E,resizing:f}))){o._lastUiPosition=i.position,this.engine.cacheRects(a,l,m,c,y,s),delete o._skipDown,f&&o.subGrid&&o.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let L=t.target;o._sidebarOrig||this._writePosAttr(L,o),this._gsEventHandler[t.type]&&this._gsEventHandler[t.type](t,L)}}_leave(e,t){t=t||e;let i=t.gridstackNode;if(!i||(t.style.transform=t.style.transformOrigin=null,Nt.off(e,"drag"),i._temporaryRemoved))return;i._temporaryRemoved=!0,this.engine.removeNode(i),i.el=i._isExternal&&t?t:e;let o=i._sidebarOrig;i._isExternal&&this.engine.cleanupNode(i),i._sidebarOrig=o,this.opts.removable===!0&&r._itemRemoving(e,!0),e._gridstackNodeOrig?(e.gridstackNode=e._gridstackNodeOrig,delete e._gridstackNodeOrig):i._isExternal&&this.engine.restoreInitial()}commit(){return Yd(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}}return r.renderCB=(n,e)=>{n&&e?.content&&(n.textContent=e.content)},r.resizeToContentParent=".grid-stack-item-content",r.Utils=A,r.Engine=Oo,r.GDRev="11.5.1",r})();var Jd=["container"],Qu=["*"];function Ku(r,n){}var Zu=["*",[["","empty-content",""]]],Ju=["*","[empty-content]"];function em(r,n){r&1&&xt(0,1,["*ngIf","isEmpty"])}function tm(r,n){}var ec=(()=>{class r{serialize(){}deserialize(e){this.widgetItem=e,e&&e.input&&Object.assign(this,e.input)}}return r.\u0275fac=function(e){return new(e||r)},r.\u0275prov=st({token:r,factory:r.\u0275fac}),r})(),rs=(()=>{class r{constructor(e){this.elementRef=e,this.el._gridItemComp=this}set options(e){let t=this.el.gridstackNode?.grid;t?t.update(this.el,e):this._options=$e(X({},e),{el:this.el})}get options(){return this.el.gridstackNode||this._options||{el:this.el}}get el(){return this.elementRef.nativeElement}clearOptions(){delete this._options}ngOnDestroy(){this.clearOptions(),delete this.childWidget,delete this.el._gridItemComp,delete this.container,delete this.ref}}return r.\u0275fac=function(e){return new(e||r)(Lt(it))},r.\u0275cmp=U({type:r,selectors:[["gridstack-item"]],viewQuery:function(e,t){if(e&1&&nt(Jd,7,qa),e&2){let i;Ge(i=qe())&&(t.container=i.first)}},inputs:{options:"options"},ngContentSelectors:Qu,decls:5,vars:1,consts:[["container",""],[1,"grid-stack-item-content"]],template:function(e,t){e&1&&(ai(),v(0,"div",1),Ar(1,Ku,0,0,"ng-template",null,0,ja),xt(3),P(4),C()),e&2&&(D(4),pt(" ",t.options.content," "))},styles:["[_nghost-%COMP%]{display:block}"]}),r})(),_n=(()=>{class r{constructor(e){this.elementRef=e,this.addedCB=new mt,this.changeCB=new mt,this.disableCB=new mt,this.dragCB=new mt,this.dragStartCB=new mt,this.dragStopCB=new mt,this.droppedCB=new mt,this.enableCB=new mt,this.removedCB=new mt,this.resizeCB=new mt,this.resizeStartCB=new mt,this.resizeStopCB=new mt,hr.addRemoveCB||(hr.addRemoveCB=im),hr.saveCB||(hr.saveCB=nm),this.el._gridComp=this}set options(e){this._grid?this._grid.updateOptions(e):this._options=e}get options(){return this._grid?.opts||this._options||{}}get el(){return this.elementRef.nativeElement}get grid(){return this._grid}static addComponentToSelectorType(e){e.forEach(t=>r.selectorToType[r.getSelector(t)]=t)}static getSelector(e){return Nl(e).selector}ngOnInit(){this.loaded=!!this.options?.children?.length,this._grid=hr.init(this._options,this.el),delete this._options,this.checkEmpty()}ngAfterContentInit(){this._sub=this.gridstackItems?.changes.subscribe(()=>this.updateAll()),this.loaded||this.updateAll(),this.hookEvents(this.grid)}ngOnDestroy(){this.unhookEvents(this._grid),this._sub?.unsubscribe(),this._grid?.destroy(),delete this._grid,delete this.el._gridComp,delete this.container,delete this.ref}updateAll(){if(!this.grid)return;let e=[];this.gridstackItems?.forEach(t=>{e.push(t.options),t.clearOptions()}),this.grid.load(e)}checkEmpty(){this.grid&&(this.isEmpty=!this.grid.engine.nodes.length)}hookEvents(e){e&&e.on("added",(t,i)=>{this.checkEmpty(),this.addedCB.emit({event:t,nodes:i})}).on("change",(t,i)=>this.changeCB.emit({event:t,nodes:i})).on("disable",t=>this.disableCB.emit({event:t})).on("drag",(t,i)=>this.dragCB.emit({event:t,el:i})).on("dragstart",(t,i)=>this.dragStartCB.emit({event:t,el:i})).on("dragstop",(t,i)=>this.dragStopCB.emit({event:t,el:i})).on("dropped",(t,i,o)=>this.droppedCB.emit({event:t,previousNode:i,newNode:o})).on("enable",t=>this.enableCB.emit({event:t})).on("removed",(t,i)=>{this.checkEmpty(),this.removedCB.emit({event:t,nodes:i})}).on("resize",(t,i)=>this.resizeCB.emit({event:t,el:i})).on("resizestart",(t,i)=>this.resizeStartCB.emit({event:t,el:i})).on("resizestop",(t,i)=>this.resizeStopCB.emit({event:t,el:i}))}unhookEvents(e){e&&e.off("added change disable drag dragstart dragstop dropped enable removed resize resizestart resizestop")}}return r.selectorToType={},r.\u0275fac=function(e){return new(e||r)(Lt(it))},r.\u0275cmp=U({type:r,selectors:[["gridstack"]],contentQueries:function(e,t,i){if(e&1&&mn(i,rs,4),e&2){let o;Ge(o=qe())&&(t.gridstackItems=o)}},viewQuery:function(e,t){if(e&1&&nt(Jd,7,qa),e&2){let i;Ge(i=qe())&&(t.container=i.first)}},inputs:{options:"options",isEmpty:"isEmpty"},outputs:{addedCB:"addedCB",changeCB:"changeCB",disableCB:"disableCB",dragCB:"dragCB",dragStartCB:"dragStartCB",dragStopCB:"dragStopCB",droppedCB:"droppedCB",enableCB:"enableCB",removedCB:"removedCB",resizeCB:"resizeCB",resizeStartCB:"resizeStartCB",resizeStopCB:"resizeStopCB"},ngContentSelectors:Ju,decls:4,vars:1,consts:[["container",""],[4,"ngIf"]],template:function(e,t){e&1&&(ai(Zu),Ar(0,em,1,0,"ng-content",1)(1,tm,0,0,"ng-template",null,0,ja),xt(3)),e&2&&j("ngIf",t.isEmpty)},dependencies:[Bl],styles:["[_nghost-%COMP%]{display:block}"]}),r})();function im(r,n,e,t){if(e){if(!r)return;if(t){let i=r.parentElement?._gridItemComp;if(!i)return;let a=(i.childWidget?.container||i.container)?.createComponent(_n),l=a?.instance;return l?(l.ref=a,l.options=n,l.el):void 0}else{let o=r._gridComp?.container?.createComponent(rs),a=o?.instance;if(!a)return;a.ref=o;let l=n.selector,d=l?_n.selectorToType[l]:void 0;if(d){let f=()=>{let c=a.container?.createComponent(d)?.instance;c&&typeof c.serialize=="function"&&typeof c.deserialize=="function"&&(a.childWidget=c,c.deserialize(n))};n.lazyLoad||n.grid?.opts?.lazyLoad&&n.lazyLoad!==!1?n.visibleObservable||(n.visibleObservable=new IntersectionObserver(([c])=>{c.isIntersecting&&(n.visibleObservable?.disconnect(),delete n.visibleObservable,f())}),window.setTimeout(()=>n.visibleObservable?.observe(a.el))):f()}return a.el}}else if(t){let i=n.el?._gridComp;i?.ref?i.ref.destroy():i?.ngOnDestroy()}else{let i=n.el?._gridItemComp;i?.ref?i.ref.destroy():i?.ngOnDestroy()}}function nm(r,n){let e=r.el?._gridItemComp;if(e){let i=e.childWidget?.serialize();i&&(n.input=i);return}let t=r.el?._gridComp}var tc=(()=>{class r{}return r.\u0275fac=function(e){return new(e||r)},r.\u0275mod=oi({type:r}),r.\u0275inj=ri({imports:[rs,_n]}),r})();var Te=function(r){return r[r.State=0]="State",r[r.Transition=1]="Transition",r[r.Sequence=2]="Sequence",r[r.Group=3]="Group",r[r.Animate=4]="Animate",r[r.Keyframes=5]="Keyframes",r[r.Style=6]="Style",r[r.Trigger=7]="Trigger",r[r.Reference=8]="Reference",r[r.AnimateChild=9]="AnimateChild",r[r.AnimateRef=10]="AnimateRef",r[r.Query=11]="Query",r[r.Stagger=12]="Stagger",r}(Te||{}),hi="*";function os(r,n){return{type:Te.Trigger,name:r,definitions:n,options:{}}}function Bo(r,n=null){return{type:Te.Animate,styles:n,timings:r}}function ic(r,n=null){return{type:Te.Sequence,steps:r,options:n}}function Ii(r){return{type:Te.Style,styles:r,offset:null}}function as(r,n,e=null){return{type:Te.Transition,expr:r,animation:n,options:e}}var Di=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(n=0,e=0){this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){let e=n=="start"?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}},wn=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(n){this.players=n;let e=0,t=0,i=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==o&&this._onFinish()}),a.onDestroy(()=>{++t==o&&this._onDestroy()}),a.onStart(()=>{++i==o&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){let e=n*this.totalTime;this.players.forEach(t=>{let i=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(i)})}getPosition(){let n=this.players.reduce((e,t)=>e===null||t.totalTime>e.totalTime?t:e,null);return n!=null?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){let e=n=="start"?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}},ur="!";var om=(r,n)=>n.id;function am(r,n){if(r&1&&B(0,"div",4),r&2){let e=n.$index;re();let t=Il(0);xe("background-color",t===e?"var(--mat-sys-on-surface)":"var(--mat-sys-inverse-on-surface)")}}var nc=(()=>{class r{activePage=G();dashboards=G();static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["dashboard-scroller"]],inputs:{activePage:[1,"activePage"],dashboards:[1,"dashboards"]},decls:7,vars:4,consts:[[1,"page-scroll-title","page-scroll-container"],[1,"page-label"],[1,"page-scroll-page-number","page-scroll-container"],[1,"page-marker",3,"background-color"],[1,"page-marker"]],template:function(t,i){if(t&1&&(Al(0),v(1,"div",0)(2,"span",1),P(3),C()(),v(4,"div",2),ki(5,am,1,2,"div",3,om),C()),t&2){let o=i.dashboards(),a=Ol(i.activePage());D(),j("@fadeInOut",a),D(2),rt(o[a].name),D(),j("@fadeInOut",a),D(),Ti(o)}},styles:["[_nghost-%COMP%]{pointer-events:none}.page-scroll-title[_ngcontent-%COMP%]{position:absolute;top:50%;right:54px;transform:translateY(-50%);z-index:100;cursor:default;text-align:center;padding:10px;color:var(--mat-sys-inverse-surface)}.page-scroll-page-number[_ngcontent-%COMP%]{position:absolute;top:50%;right:15px;transform:translateY(-50%);z-index:100;cursor:default;display:grid;padding:0}.page-scroll-container[_ngcontent-%COMP%]{opacity:0;background-color:var(--mat-sys-tertiary-fixed-dim);border-radius:10px;border:1px solid var(--mat-sys-inverse-surface)}.page-label[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);text-shadow:1px 1px 0 var(--mat-sys-outline),-1px 1px 0 var(--mat-sys-outline),-1px -1px 0 var(--mat-sys-outline),1px -1px 0 var(--mat-sys-outline);font-size:x-large}.page-marker[_ngcontent-%COMP%]{height:20px;width:20px;margin:4px;border-radius:50%;border:1px solid var(--mat-sys-outline)}"],data:{animation:[os("fadeInOut",[as(":increment, :decrement",[Ii({opacity:0}),Bo(100,Ii({opacity:1})),Ii({opacity:1}),Bo("250ms 1000ms",Ii({opacity:0}))])])]}})}return r})();var rc="mat-badge-content",sm=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["ng-component"]],decls:0,vars:0,template:function(t,i){},styles:[`.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-content{position:absolute;text-align:center;display:inline-block;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none;background-color:var(--mat-badge-background-color, var(--mat-sys-error));color:var(--mat-badge-text-color, var(--mat-sys-on-error));font-family:var(--mat-badge-text-font, var(--mat-sys-label-small-font));font-weight:var(--mat-badge-text-weight, var(--mat-sys-label-small-weight));border-radius:var(--mat-badge-container-shape, var(--mat-sys-corner-full))}.mat-badge-above .mat-badge-content{bottom:100%}.mat-badge-below .mat-badge-content{top:100%}.mat-badge-before .mat-badge-content{right:100%}[dir=rtl] .mat-badge-before .mat-badge-content{right:auto;left:100%}.mat-badge-after .mat-badge-content{left:100%}[dir=rtl] .mat-badge-after .mat-badge-content{left:auto;right:100%}@media(forced-colors: active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-disabled .mat-badge-content{background-color:var(--mat-badge-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-error) 38%, transparent));color:var(--mat-badge-disabled-state-text-color, var(--mat-sys-on-error))}.mat-badge-hidden .mat-badge-content{display:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:var(--mat-badge-legacy-small-size-container-size, unset);height:var(--mat-badge-legacy-small-size-container-size, unset);min-width:var(--mat-badge-small-size-container-size, 6px);min-height:var(--mat-badge-small-size-container-size, 6px);line-height:var(--mat-badge-small-size-line-height, 6px);padding:var(--mat-badge-small-size-container-padding, 0);font-size:var(--mat-badge-small-size-text-size, 0);margin:var(--mat-badge-small-size-container-offset, -6px 0)}.mat-badge-small.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-small-size-container-overlap-offset, -6px)}.mat-badge-medium .mat-badge-content{width:var(--mat-badge-legacy-container-size, unset);height:var(--mat-badge-legacy-container-size, unset);min-width:var(--mat-badge-container-size, 16px);min-height:var(--mat-badge-container-size, 16px);line-height:var(--mat-badge-line-height, 16px);padding:var(--mat-badge-container-padding, 0 4px);font-size:var(--mat-badge-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-container-offset, -12px 0)}.mat-badge-medium.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-container-overlap-offset, -12px)}.mat-badge-large .mat-badge-content{width:var(--mat-badge-legacy-large-size-container-size, unset);height:var(--mat-badge-legacy-large-size-container-size, unset);min-width:var(--mat-badge-large-size-container-size, 16px);min-height:var(--mat-badge-large-size-container-size, 16px);line-height:var(--mat-badge-large-size-line-height, 16px);padding:var(--mat-badge-large-size-container-padding, 0 4px);font-size:var(--mat-badge-large-size-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-large-size-container-offset, -12px 0)}.mat-badge-large.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-large-size-container-overlap-offset, -12px)}
|
|
6
|
-
`],encapsulation:2,changeDetection:0})}return r})(),
|
|
5
|
+
Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the default selector.`)),i}static addGrid(e,t={}){if(!e)return null;let i=e;if(i.gridstack){let l=i.gridstack;return t&&(l.opts=X(X({},l.opts),t)),t.children!==void 0&&l.load(t.children),l}return(!e.classList.contains("grid-stack")||r.addRemoveCB)&&(r.addRemoveCB?i=r.addRemoveCB(e,t,!0,!0):i=A.createDiv(["grid-stack",t.class],e)),r.init(t,i)}static registerEngine(e){r.engineClass=e}get placeholder(){if(!this._placeholder){this._placeholder=A.createDiv([this.opts.placeholderClass,jt.itemClass,this.opts.itemClass]);let e=A.createDiv(["placeholder-content"],this._placeholder);this.opts.placeholderText&&(e.textContent=this.opts.placeholderText)}return this._placeholder}constructor(e,t={}){this.el=e,this.opts=t,this.animationDelay=310,this._gsEventHandler={},this._extraDragRow=0,this.dragTransform={xScale:1,yScale:1,xOffset:0,yOffset:0},e.gridstack=this,this.opts=t=t||{},e.classList.contains("grid-stack")||this.el.classList.add("grid-stack"),t.row&&(t.minRow=t.maxRow=t.row,delete t.row);let i=A.toNumber(e.getAttribute("gs-row"));t.column==="auto"&&delete t.column,t.alwaysShowResizeHandle!==void 0&&(t._alwaysShowResizeHandle=t.alwaysShowResizeHandle);let o=t.columnOpts?.breakpoints,a=t;if(a.oneColumnModeDomSort&&(delete a.oneColumnModeDomSort,console.log("warning: Gridstack oneColumnModeDomSort no longer supported. Use GridStackOptions.columnOpts instead.")),a.oneColumnSize||a.disableOneColumnMode===!1){let m=a.oneColumnSize||768;delete a.oneColumnSize,delete a.disableOneColumnMode,t.columnOpts=t.columnOpts||{},o=t.columnOpts.breakpoints=t.columnOpts.breakpoints||[];let y=o.find(_=>_.c===1);y?y.w=m:(y={c:1,w:m},o.push(y,{c:12,w:m+1}))}let l=t.columnOpts;l&&(!l.columnWidth&&!l.breakpoints?.length?(delete t.columnOpts,o=void 0):l.columnMax=l.columnMax||12),o?.length>1&&o.sort((m,y)=>(y.w||0)-(m.w||0));let d=et(X({},A.cloneDeep(jt)),{column:A.toNumber(e.getAttribute("gs-column"))||jt.column,minRow:i||A.toNumber(e.getAttribute("gs-min-row"))||jt.minRow,maxRow:i||A.toNumber(e.getAttribute("gs-max-row"))||jt.maxRow,staticGrid:A.toBool(e.getAttribute("gs-static"))||jt.staticGrid,sizeToContent:A.toBool(e.getAttribute("gs-size-to-content"))||void 0,draggable:{handle:(t.handleClass?"."+t.handleClass:t.handle?t.handle:"")||jt.draggable.handle},removableOptions:{accept:t.itemClass||jt.removableOptions.accept,decline:jt.removableOptions.decline}});e.getAttribute("gs-animate")&&(d.animate=A.toBool(e.getAttribute("gs-animate"))),t=A.defaults(t,d),this._initMargin(),this.checkDynamicColumn(),this.el.classList.add("gs-"+t.column),t.rtl==="auto"&&(t.rtl=e.style.direction==="rtl"),t.rtl&&this.el.classList.add("grid-stack-rtl");let s=this.el.closest("."+jt.itemClass)?.gridstackNode;s&&(s.subGrid=this,this.parentGridNode=s,this.el.classList.add("grid-stack-nested"),s.el.classList.add("grid-stack-sub-grid")),this._isAutoCellHeight=t.cellHeight==="auto",this._isAutoCellHeight||t.cellHeight==="initial"?this.cellHeight(void 0,!1):(typeof t.cellHeight=="number"&&t.cellHeightUnit&&t.cellHeightUnit!==jt.cellHeightUnit&&(t.cellHeight=t.cellHeight+t.cellHeightUnit,delete t.cellHeightUnit),this.cellHeight(t.cellHeight,!1)),t.alwaysShowResizeHandle==="mobile"&&(t.alwaysShowResizeHandle=Wt),this._styleSheetClass="gs-id-"+Wo._idSeq++,this.el.classList.add(this._styleSheetClass),this._setStaticClass();let c=t.engineClass||r.engineClass||Wo;if(this.engine=new c({column:this.getColumn(),float:t.float,maxRow:t.maxRow,onChange:m=>{let y=0;this.engine.nodes.forEach(_=>{y=Math.max(y,_.y+_.h)}),m.forEach(_=>{let T=_.el;T&&(_._removeDOM?(T&&T.remove(),delete _._removeDOM):this._writePosAttr(T,_))}),this._updateStyles(!1,y)}}),this._updateStyles(!1,0),t.auto&&(this.batchUpdate(),this.engine._loading=!0,this.getGridItems().forEach(m=>this._prepareElement(m)),delete this.engine._loading,this.batchUpdate(!1)),t.children){let m=t.children;delete t.children,m.length&&this.load(m)}this.setAnimation(),t.subGridDynamic&&!oe.pauseDrag&&(oe.pauseDrag=!0),t.draggable?.pause!==void 0&&(oe.pauseDrag=t.draggable.pause),this._setupRemoveDrop(),this._setupAcceptWidget(),this._updateResizeEvent()}addWidget(e){if(typeof e=="string"){console.error("V11: GridStack.addWidget() does not support string anymore. see #2736");return}if(e.ELEMENT_NODE)return console.error("V11: GridStack.addWidget() does not support HTMLElement anymore. use makeWidget()"),this.makeWidget(e);let t,i=e;if(i.grid=this,i?.el?t=i.el:r.addRemoveCB?t=r.addRemoveCB(this.el,e,!0,!1):t=this.createWidgetDivs(i),!t)return;if(i=t.gridstackNode,i&&t.parentElement===this.el&&this.engine.nodes.find(a=>a._id===i._id))return t;let o=this._readAttr(t);return A.defaults(e,o),this.engine.prepareNode(e),this.el.appendChild(t),this.makeWidget(t,e),t}createWidgetDivs(e){let t=A.createDiv(["grid-stack-item",this.opts.itemClass]),i=A.createDiv(["grid-stack-item-content"],t);return A.lazyLoad(e)?e.visibleObservable||(e.visibleObservable=new IntersectionObserver(([o])=>{o.isIntersecting&&(e.visibleObservable?.disconnect(),delete e.visibleObservable,r.renderCB(i,e),e.grid?.prepareDragDrop(e.el))}),window.setTimeout(()=>e.visibleObservable?.observe(t))):r.renderCB(i,e),t}makeSubGrid(e,t,i,o=!0){let a=e.gridstackNode;if(a||(a=this.makeWidget(e).gridstackNode),a.subGrid?.el)return a.subGrid;let l,d=this;for(;d&&!l;)l=d.opts?.subGridOpts,d=d.parentGridNode?.grid;t=A.cloneDeep(X(X(et(X({},this.opts),{id:void 0,children:void 0,column:"auto",columnOpts:void 0,layout:"list",subGridOpts:void 0}),l||{}),t||a.subGridOpts||{})),a.subGridOpts=t;let p;t.column==="auto"&&(p=!0,t.column=Math.max(a.w||1,i?.w||1),delete t.columnOpts);let s=a.el.querySelector(".grid-stack-item-content"),c,m;if(o&&(this._removeDD(a.el),m=et(X({},a),{x:0,y:0}),A.removeInternalForSave(m),delete m.subGridOpts,a.content&&(m.content=a.content,delete a.content),r.addRemoveCB?c=r.addRemoveCB(this.el,m,!0,!1):(c=A.createDiv(["grid-stack-item"]),c.appendChild(s),s=A.createDiv(["grid-stack-item-content"],a.el)),this.prepareDragDrop(a.el)),i){let _=p?t.column:a.w,T=a.h+i.h,E=a.el.style;E.transition="none",this.update(a.el,{w:_,h:T}),setTimeout(()=>E.transition=null)}let y=a.subGrid=r.addGrid(s,t);return i?._moving&&(y._isTemp=!0),p&&(y._autoColumn=!0),o&&y.makeWidget(c,m),i&&(i._moving?window.setTimeout(()=>A.simulateMouseEvent(i._event,"mouseenter",y.el),0):y.makeWidget(a.el,a)),this.resizeToContentCheck(!1,a),y}removeAsSubGrid(e){let t=this.parentGridNode?.grid;t&&(t.batchUpdate(),t.removeWidget(this.parentGridNode.el,!0,!0),this.engine.nodes.forEach(i=>{i.x+=this.parentGridNode.x,i.y+=this.parentGridNode.y,t.makeWidget(i.el,i)}),t.batchUpdate(!1),this.parentGridNode&&delete this.parentGridNode.subGrid,delete this.parentGridNode,e&&window.setTimeout(()=>A.simulateMouseEvent(e._event,"mouseenter",t.el),0))}save(e=!0,t=!1,i=r.saveCB){let o=this.engine.save(e,i);if(o.forEach(a=>{if(e&&a.el&&!a.subGrid&&!i){let l=a.el.querySelector(".grid-stack-item-content");a.content=l?.innerHTML,a.content||delete a.content}else if(!e&&!i&&delete a.content,a.subGrid?.el){let l=a.subGrid.save(e,t,i);a.subGridOpts=t?l:{children:l},delete a.subGrid}delete a.el}),t){let a=A.cloneDeep(this.opts);a.marginBottom===a.marginTop&&a.marginRight===a.marginLeft&&a.marginTop===a.marginRight&&(a.margin=a.marginTop,delete a.marginTop,delete a.marginRight,delete a.marginBottom,delete a.marginLeft),a.rtl===(this.el.style.direction==="rtl")&&(a.rtl="auto"),this._isAutoCellHeight&&(a.cellHeight="auto"),this._autoColumn&&(a.column="auto");let l=a._alwaysShowResizeHandle;return delete a._alwaysShowResizeHandle,l!==void 0?a.alwaysShowResizeHandle=l:delete a.alwaysShowResizeHandle,A.removeInternalAndSame(a,jt),a.children=o,a}return o}load(e,t=r.addRemoveCB||!0){e=A.cloneDeep(e);let i=this.getColumn();e.forEach(s=>{s.w=s.w||1,s.h=s.h||1}),e=A.sort(e),this.engine.skipCacheUpdate=this._ignoreLayoutsNodeChange=!0;let o=0;e.forEach(s=>{o=Math.max(o,(s.x||0)+s.w)}),o>this.engine.defaultColumn&&(this.engine.defaultColumn=o),o>i&&this.engine.cacheLayout(e,o,!0);let a=r.addRemoveCB;typeof t=="function"&&(r.addRemoveCB=t);let l=[];this.batchUpdate();let d=!this.engine.nodes.length;d&&this.setAnimation(!1),!d&&t&&[...this.engine.nodes].forEach(c=>{if(!c.id)return;A.find(e,c.id)||(r.addRemoveCB&&r.addRemoveCB(this.el,c,!1,!1),l.push(c),this.removeWidget(c.el,!0,!1))}),this.engine._loading=!0;let p=[];return this.engine.nodes=this.engine.nodes.filter(s=>A.find(e,s.id)?(p.push(s),!1):!0),e.forEach(s=>{let c=A.find(p,s.id);if(c){if(A.shouldSizeToContent(c)&&(s.h=c.h),this.engine.nodeBoundFix(s),(s.autoPosition||s.x===void 0||s.y===void 0)&&(s.w=s.w||c.w,s.h=s.h||c.h,this.engine.findEmptyPosition(s)),this.engine.nodes.push(c),A.samePos(c,s)&&this.engine.nodes.length>1&&(this.moveNode(c,et(X({},s),{forceCollide:!0})),A.copyPos(s,c)),this.update(c.el,s),s.subGridOpts?.children){let m=c.el.querySelector(".grid-stack");m&&m.gridstack&&m.gridstack.load(s.subGridOpts.children)}}else t&&this.addWidget(s)}),delete this.engine._loading,this.engine.removedNodes=l,this.batchUpdate(!1),delete this._ignoreLayoutsNodeChange,delete this.engine.skipCacheUpdate,a?r.addRemoveCB=a:delete r.addRemoveCB,d&&this.opts?.animate&&this.setAnimation(this.opts.animate,!0),this}batchUpdate(e=!0){return this.engine.batchUpdate(e),e||(this._updateContainerHeight(),this._triggerRemoveEvent(),this._triggerAddEvent(),this._triggerChangeEvent()),this}getCellHeight(e=!1){if(this.opts.cellHeight&&this.opts.cellHeight!=="auto"&&(!e||!this.opts.cellHeightUnit||this.opts.cellHeightUnit==="px"))return this.opts.cellHeight;if(this.opts.cellHeightUnit==="rem")return this.opts.cellHeight*parseFloat(getComputedStyle(document.documentElement).fontSize);if(this.opts.cellHeightUnit==="em")return this.opts.cellHeight*parseFloat(getComputedStyle(this.el).fontSize);if(this.opts.cellHeightUnit==="cm")return this.opts.cellHeight*(96/2.54);if(this.opts.cellHeightUnit==="mm")return this.opts.cellHeight*(96/2.54)/10;let t=this.el.querySelector("."+this.opts.itemClass);if(t){let o=A.toNumber(t.getAttribute("gs-h"))||1;return Math.round(t.offsetHeight/o)}let i=parseInt(this.el.getAttribute("gs-current-row"));return i?Math.round(this.el.getBoundingClientRect().height/i):this.opts.cellHeight}cellHeight(e,t=!0){if(t&&e!==void 0&&this._isAutoCellHeight!==(e==="auto")&&(this._isAutoCellHeight=e==="auto",this._updateResizeEvent()),(e==="initial"||e==="auto")&&(e=void 0),e===void 0){let o=-this.opts.marginRight-this.opts.marginLeft+this.opts.marginTop+this.opts.marginBottom;e=this.cellWidth()+o}let i=A.parseHeight(e);return this.opts.cellHeightUnit===i.unit&&this.opts.cellHeight===i.h?this:(this.opts.cellHeightUnit=i.unit,this.opts.cellHeight=i.h,this.resizeToContentCheck(),t&&this._updateStyles(!0),this)}cellWidth(){return this._widthOrContainer()/this.getColumn()}_widthOrContainer(e=!1){return e&&this.opts.columnOpts?.breakpointForWindow?window.innerWidth:this.el.clientWidth||this.el.parentElement.clientWidth||window.innerWidth}checkDynamicColumn(){let e=this.opts.columnOpts;if(!e||!e.columnWidth&&!e.breakpoints?.length)return!1;let t=this.getColumn(),i=t,o=this._widthOrContainer(!0);if(e.columnWidth)i=Math.min(Math.round(o/e.columnWidth)||1,e.columnMax);else{i=e.columnMax;let a=0;for(;a<e.breakpoints.length&&o<=e.breakpoints[a].w;)i=e.breakpoints[a++].c||t}if(i!==t){let a=e.breakpoints?.find(l=>l.c===i);return this.column(i,a?.layout||e.layout),!0}return!1}compact(e="compact",t=!0){return this.engine.compact(e,t),this._triggerChangeEvent(),this}column(e,t="moveScale"){if(!e||e<1||this.opts.column===e)return this;let i=this.getColumn();return this.opts.column=e,this.engine?(this.engine.column=e,this.el.classList.remove("gs-"+i),this.el.classList.add("gs-"+e),this.engine.columnChanged(i,e,t),this._isAutoCellHeight&&this.cellHeight(),this.resizeToContentCheck(!0),this._ignoreLayoutsNodeChange=!0,this._triggerChangeEvent(),delete this._ignoreLayoutsNodeChange,this):this}getColumn(){return this.opts.column}getGridItems(){return Array.from(this.el.children).filter(e=>e.matches("."+this.opts.itemClass)&&!e.matches("."+this.opts.placeholderClass))}isIgnoreChangeCB(){return this._ignoreLayoutsNodeChange}destroy(e=!0){if(this.el)return this.offAll(),this._updateResizeEvent(!0),this.setStatic(!0,!1),this.setAnimation(!1),e?this.el.parentNode.removeChild(this.el):(this.removeAll(e),this.el.classList.remove(this._styleSheetClass),this.el.removeAttribute("gs-current-row")),this._removeStylesheet(),delete this.parentGridNode?.subGrid,delete this.parentGridNode,delete this.opts,delete this._placeholder?.gridstackNode,delete this._placeholder,delete this.engine,delete this.el.gridstack,delete this.el,this}float(e){return this.opts.float!==e&&(this.opts.float=this.engine.float=e,this._triggerChangeEvent()),this}getFloat(){return this.engine.float}getCellFromPixel(e,t=!1){let i=this.el.getBoundingClientRect(),o;t?o={top:i.top+document.documentElement.scrollTop,left:i.left}:o={top:this.el.offsetTop,left:this.el.offsetLeft};let a=e.left-o.left,l=e.top-o.top,d=i.width/this.getColumn(),p=i.height/parseInt(this.el.getAttribute("gs-current-row"));return{x:Math.floor(a/d),y:Math.floor(l/p)}}getRow(){return Math.max(this.engine.getRow(),this.opts.minRow)}isAreaEmpty(e,t,i,o){return this.engine.isAreaEmpty(e,t,i,o)}makeWidget(e,t){let i=r.getElement(e);if(!i)return;i.parentElement||this.el.appendChild(i),this._prepareElement(i,!0,t);let o=i.gridstackNode;this._updateContainerHeight(),o.subGridOpts&&this.makeSubGrid(i,o.subGridOpts,void 0,!1);let a;return this.opts.column===1&&!this._ignoreLayoutsNodeChange&&(a=this._ignoreLayoutsNodeChange=!0),this._triggerAddEvent(),this._triggerChangeEvent(),a&&delete this._ignoreLayoutsNodeChange,i}on(e,t){return e.indexOf(" ")!==-1?(e.split(" ").forEach(o=>this.on(o,t)),this):(e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable"?(e==="enable"||e==="disable"?this._gsEventHandler[e]=o=>t(o):this._gsEventHandler[e]=o=>{o.detail&&t(o,o.detail)},this.el.addEventListener(e,this._gsEventHandler[e])):e==="drag"||e==="dragstart"||e==="dragstop"||e==="resizestart"||e==="resize"||e==="resizestop"||e==="dropped"||e==="resizecontent"?this._gsEventHandler[e]=t:console.error("GridStack.on("+e+") event not supported"),this)}off(e){return e.indexOf(" ")!==-1?(e.split(" ").forEach(i=>this.off(i)),this):((e==="change"||e==="added"||e==="removed"||e==="enable"||e==="disable")&&this._gsEventHandler[e]&&this.el.removeEventListener(e,this._gsEventHandler[e]),delete this._gsEventHandler[e],this)}offAll(){return Object.keys(this._gsEventHandler).forEach(e=>this.off(e)),this}removeWidget(e,t=!0,i=!0){return e?(r.getElements(e).forEach(o=>{if(o.parentElement&&o.parentElement!==this.el)return;let a=o.gridstackNode;a||(a=this.engine.nodes.find(l=>o===l.el)),a&&(t&&r.addRemoveCB&&r.addRemoveCB(this.el,a,!1,!1),delete o.gridstackNode,this._removeDD(o),this.engine.removeNode(a,t,i),t&&o.parentElement&&o.remove())}),i&&(this._triggerRemoveEvent(),this._triggerChangeEvent()),this):(console.error("Error: GridStack.removeWidget(undefined) called"),this)}removeAll(e=!0,t=!0){return this.engine.nodes.forEach(i=>{e&&r.addRemoveCB&&r.addRemoveCB(this.el,i,!1,!1),delete i.el.gridstackNode,this.opts.staticGrid||this._removeDD(i.el)}),this.engine.removeAll(e,t),t&&this._triggerRemoveEvent(),this}setAnimation(e=this.opts.animate,t){return t?setTimeout(()=>{this.opts&&this.setAnimation(e)}):e?this.el.classList.add("grid-stack-animate"):this.el.classList.remove("grid-stack-animate"),this}hasAnimationCSS(){return this.el.classList.contains("grid-stack-animate")}setStatic(e,t=!0,i=!0){return!!this.opts.staticGrid===e?this:(e?this.opts.staticGrid=!0:delete this.opts.staticGrid,this._setupRemoveDrop(),this._setupAcceptWidget(),this.engine.nodes.forEach(o=>{this.prepareDragDrop(o.el),o.subGrid&&i&&o.subGrid.setStatic(e,t,i)}),t&&this._setStaticClass(),this)}updateOptions(e){let t=this.opts;return e.acceptWidgets!==void 0&&this._setupAcceptWidget(),e.animate!==void 0&&this.setAnimation(),e.cellHeight&&(this.cellHeight(e.cellHeight,!0),delete e.cellHeight),e.class&&e.class!==t.class&&(t.class&&this.el.classList.remove(t.class),this.el.classList.add(e.class)),typeof e.column=="number"&&!e.columnOpts&&(this.column(e.column),delete e.column),e.margin!==void 0&&this.margin(e.margin),e.staticGrid!==void 0&&this.setStatic(e.staticGrid),e.disableDrag!==void 0&&!e.staticGrid&&this.enableMove(!e.disableDrag),e.disableResize!==void 0&&!e.staticGrid&&this.enableResize(!e.disableResize),e.float!==void 0&&this.float(e.float),e.row!==void 0&&(t.minRow=t.maxRow=e.row),e.children?.length&&(this.load(e.children),delete e.children),this.opts=X(X({},this.opts),e),this}update(e,t){return r.getElements(e).forEach(i=>{let o=i?.gridstackNode;if(!o)return;let a=X(X({},A.copyPos({},o)),A.cloneDeep(t));this.engine.nodeBoundFix(a),delete a.autoPosition;let l=["x","y","w","h"],d;if(l.some(c=>a[c]!==void 0&&a[c]!==o[c])&&(d={},l.forEach(c=>{d[c]=a[c]!==void 0?a[c]:o[c],delete a[c]})),!d&&(a.minW||a.minH||a.maxW||a.maxH)&&(d={}),a.content!==void 0){let c=i.querySelector(".grid-stack-item-content");c&&c.textContent!==a.content&&(o.content=a.content,r.renderCB(c,a),o.subGrid?.el&&(c.appendChild(o.subGrid.el),o.subGrid.opts.styleInHead||o.subGrid._updateStyles(!0))),delete a.content}let p=!1,s=!1;for(let c in a)c[0]!=="_"&&o[c]!==a[c]&&(o[c]=a[c],p=!0,s=s||!this.opts.staticGrid&&(c==="noResize"||c==="noMove"||c==="locked"));if(A.sanitizeMinMax(o),d){let c=d.w!==void 0&&d.w!==o.w;this.moveNode(o,d),c&&o.subGrid?o.subGrid.onResize(this.hasAnimationCSS()?o.w:void 0):this.resizeToContentCheck(c,o),delete o._orig}(d||p)&&this._writeAttr(i,o),s&&this.prepareDragDrop(o.el)}),this}moveNode(e,t){let i=e._updating;i||this.engine.cleanNodes().beginUpdate(e),this.engine.moveNode(e,t),this._updateContainerHeight(),i||(this._triggerChangeEvent(),this.engine.endUpdate())}resizeToContent(e){if(!e||(e.classList.remove("size-to-content-max"),!e.clientHeight))return;let t=e.gridstackNode;if(!t)return;let i=t.grid;if(!i||e.parentElement!==i.el)return;let o=i.getCellHeight(!0);if(!o)return;let a=t.h?t.h*o:e.clientHeight,l;if(t.resizeToContentParent&&(l=e.querySelector(t.resizeToContentParent)),l||(l=e.querySelector(r.resizeToContentParent)),!l)return;let d=e.clientHeight-l.clientHeight,p=t.h?t.h*o-d:l.clientHeight,s;if(t.subGrid){s=t.subGrid.getRow()*t.subGrid.getCellHeight(!0);let y=t.subGrid.el.getBoundingClientRect(),_=t.subGrid.el.parentElement.getBoundingClientRect();s+=y.top-_.top}else{if(t.subGridOpts?.children?.length)return;{let y=l.firstElementChild;if(!y){console.error(`Error: GridStack.resizeToContent() widget id:${t.id} '${r.resizeToContentParent}'.firstElementChild is null, make sure to have a div like container. Skipping sizing.`);return}s=y.getBoundingClientRect().height||p}}if(p===s)return;a+=s-p;let c=Math.ceil(a/o),m=Number.isInteger(t.sizeToContent)?t.sizeToContent:0;m&&c>m&&(c=m,e.classList.add("size-to-content-max")),t.minH&&c<t.minH?c=t.minH:t.maxH&&c>t.maxH&&(c=t.maxH),c!==t.h&&(i._ignoreLayoutsNodeChange=!0,i.moveNode(t,{h:c}),delete i._ignoreLayoutsNodeChange)}resizeToContentCBCheck(e){r.resizeToContentCB?r.resizeToContentCB(e):this.resizeToContent(e)}rotate(e,t){return r.getElements(e).forEach(i=>{let o=i.gridstackNode;if(!A.canBeRotated(o))return;let a={w:o.h,h:o.w,minH:o.minW,minW:o.minH,maxH:o.maxW,maxW:o.maxH};if(t){let d=t.left>0?Math.floor(t.left/this.cellWidth()):0,p=t.top>0?Math.floor(t.top/this.opts.cellHeight):0;a.x=o.x+d-(o.h-(p+1)),a.y=o.y+p-d}Object.keys(a).forEach(d=>{a[d]===void 0&&delete a[d]});let l=o._orig;this.update(i,a),o._orig=l}),this}margin(e){if(!(typeof e=="string"&&e.split(" ").length>1)){let i=A.parseHeight(e);if(this.opts.marginUnit===i.unit&&this.opts.margin===i.h)return}return this.opts.margin=e,this.opts.marginTop=this.opts.marginBottom=this.opts.marginLeft=this.opts.marginRight=void 0,this._initMargin(),this._updateStyles(!0),this}getMargin(){return this.opts.margin}willItFit(e){if(arguments.length>1){console.warn("gridstack.ts: `willItFit(x,y,w,h,autoPosition)` is deprecated. Use `willItFit({x, y,...})`. It will be removed soon");let t=arguments,i=0,o={x:t[i++],y:t[i++],w:t[i++],h:t[i++],autoPosition:t[i++]};return this.willItFit(o)}return this.engine.willItFit(e)}_triggerChangeEvent(){if(this.engine.batchMode)return this;let e=this.engine.getDirtyNodes(!0);return e&&e.length&&(this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(e),this._triggerEvent("change",e)),this.engine.saveInitial(),this}_triggerAddEvent(){if(this.engine.batchMode)return this;if(this.engine.addedNodes?.length){this._ignoreLayoutsNodeChange||this.engine.layoutsNodesChange(this.engine.addedNodes),this.engine.addedNodes.forEach(t=>{delete t._dirty});let e=[...this.engine.addedNodes];this.engine.addedNodes=[],this._triggerEvent("added",e)}return this}_triggerRemoveEvent(){if(this.engine.batchMode)return this;if(this.engine.removedNodes?.length){let e=[...this.engine.removedNodes];this.engine.removedNodes=[],this._triggerEvent("removed",e)}return this}_triggerEvent(e,t){let i=t?new CustomEvent(e,{bubbles:!1,detail:t}):new Event(e);return this.el.dispatchEvent(i),this}_removeStylesheet(){if(this._styles){let e=this.opts.styleInHead?void 0:this.el.parentNode;A.removeStylesheet(this._styleSheetClass,e),delete this._styles}return this}_updateStyles(e=!1,t){if(e&&this._removeStylesheet(),t===void 0&&(t=this.getRow()),this._updateContainerHeight(),this.opts.cellHeight===0)return this;let i=this.opts.cellHeight,o=this.opts.cellHeightUnit,a=`.${this._styleSheetClass} > .${this.opts.itemClass}`;if(!this._styles){let l=this.opts.styleInHead?void 0:this.el.parentNode;if(this._styles=A.createStylesheet(this._styleSheetClass,l,{nonce:this.opts.nonce}),!this._styles)return this;this._styles._max=0,A.addCSSRule(this._styles,a,`height: ${i}${o}`);let d=this.opts.marginTop+this.opts.marginUnit,p=this.opts.marginBottom+this.opts.marginUnit,s=this.opts.marginRight+this.opts.marginUnit,c=this.opts.marginLeft+this.opts.marginUnit,m=`${a} > .grid-stack-item-content`,y=`.${this._styleSheetClass} > .grid-stack-placeholder > .placeholder-content`;A.addCSSRule(this._styles,m,`top: ${d}; right: ${s}; bottom: ${p}; left: ${c};`),A.addCSSRule(this._styles,y,`top: ${d}; right: ${s}; bottom: ${p}; left: ${c};`),A.addCSSRule(this._styles,`${a} > .ui-resizable-n`,`top: ${d};`),A.addCSSRule(this._styles,`${a} > .ui-resizable-s`,`bottom: ${p}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-ne`,`right: ${s}; top: ${d}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-e`,`right: ${s}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-se`,`right: ${s}; bottom: ${p}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-nw`,`left: ${c}; top: ${d}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-w`,`left: ${c}`),A.addCSSRule(this._styles,`${a} > .ui-resizable-sw`,`left: ${c}; bottom: ${p}`)}if(t=t||this._styles._max,t>this._styles._max){let l=d=>i*d+o;for(let d=this._styles._max+1;d<=t;d++)A.addCSSRule(this._styles,`${a}[gs-y="${d}"]`,`top: ${l(d)}`),A.addCSSRule(this._styles,`${a}[gs-h="${d+1}"]`,`height: ${l(d+1)}`);this._styles._max=t}return this}_updateContainerHeight(){if(!this.engine||this.engine.batchMode)return this;let e=this.parentGridNode,t=this.getRow()+this._extraDragRow,i=this.opts.cellHeight,o=this.opts.cellHeightUnit;if(!i)return this;if(!e){let a=A.parseHeight(getComputedStyle(this.el).minHeight);if(a.h>0&&a.unit===o){let l=Math.floor(a.h/i);t<l&&(t=l)}}return this.el.setAttribute("gs-current-row",String(t)),this.el.style.removeProperty("min-height"),this.el.style.removeProperty("height"),t&&(this.el.style[e?"minHeight":"height"]=t*i+o),e&&!e.grid.engine.batchMode&&A.shouldSizeToContent(e)&&e.grid.resizeToContentCBCheck(e.el),this}_prepareElement(e,t=!1,i){i=i||this._readAttr(e),e.gridstackNode=i,i.el=e,i.grid=this,i=this.engine.addNode(i,t),this._writeAttr(e,i),e.classList.add(jt.itemClass,this.opts.itemClass);let o=A.shouldSizeToContent(i);return o?e.classList.add("size-to-content"):e.classList.remove("size-to-content"),o&&this.resizeToContentCheck(!1,i),A.lazyLoad(i)||this.prepareDragDrop(i.el),this}_writePosAttr(e,t){return t.x!==void 0&&t.x!==null&&e.setAttribute("gs-x",String(t.x)),t.y!==void 0&&t.y!==null&&e.setAttribute("gs-y",String(t.y)),t.w>1?e.setAttribute("gs-w",String(t.w)):e.removeAttribute("gs-w"),t.h>1?e.setAttribute("gs-h",String(t.h)):e.removeAttribute("gs-h"),this}_writeAttr(e,t){if(!t)return this;this._writePosAttr(e,t);let i={noResize:"gs-no-resize",noMove:"gs-no-move",locked:"gs-locked",id:"gs-id",sizeToContent:"gs-size-to-content"};for(let o in i)t[o]?e.setAttribute(i[o],String(t[o])):e.removeAttribute(i[o]);return this}_readAttr(e,t=!0){let i={};i.x=A.toNumber(e.getAttribute("gs-x")),i.y=A.toNumber(e.getAttribute("gs-y")),i.w=A.toNumber(e.getAttribute("gs-w")),i.h=A.toNumber(e.getAttribute("gs-h")),i.autoPosition=A.toBool(e.getAttribute("gs-auto-position")),i.noResize=A.toBool(e.getAttribute("gs-no-resize")),i.noMove=A.toBool(e.getAttribute("gs-no-move")),i.locked=A.toBool(e.getAttribute("gs-locked"));let o=e.getAttribute("gs-size-to-content");o&&(o==="true"||o==="false"?i.sizeToContent=A.toBool(o):i.sizeToContent=parseInt(o,10)),i.id=e.getAttribute("gs-id"),i.maxW=A.toNumber(e.getAttribute("gs-max-w")),i.minW=A.toNumber(e.getAttribute("gs-min-w")),i.maxH=A.toNumber(e.getAttribute("gs-max-h")),i.minH=A.toNumber(e.getAttribute("gs-min-h")),t&&(i.w===1&&e.removeAttribute("gs-w"),i.h===1&&e.removeAttribute("gs-h"),i.maxW&&e.removeAttribute("gs-max-w"),i.minW&&e.removeAttribute("gs-min-w"),i.maxH&&e.removeAttribute("gs-max-h"),i.minH&&e.removeAttribute("gs-min-h"));for(let a in i){if(!i.hasOwnProperty(a))return;!i[a]&&i[a]!==0&&a!=="gs-size-to-content"&&delete i[a]}return i}_setStaticClass(){let e=["grid-stack-static"];return this.opts.staticGrid?(this.el.classList.add(...e),this.el.setAttribute("gs-static","true")):(this.el.classList.remove(...e),this.el.removeAttribute("gs-static")),this}onResize(e=this.el?.clientWidth){if(!e||this.prevWidth===e)return;this.prevWidth=e,this.batchUpdate();let t=!1;return this._autoColumn&&this.parentGridNode?this.opts.column!==this.parentGridNode.w&&(this.column(this.parentGridNode.w,this.opts.layout||"list"),t=!0):t=this.checkDynamicColumn(),this._isAutoCellHeight&&this.cellHeight(),this.engine.nodes.forEach(i=>{i.subGrid&&i.subGrid.onResize()}),this._skipInitialResize||this.resizeToContentCheck(t),delete this._skipInitialResize,this.batchUpdate(!1),this}resizeToContentCheck(e=!1,t=void 0){if(this.engine){if(e&&this.hasAnimationCSS())return setTimeout(()=>this.resizeToContentCheck(!1,t),this.animationDelay);if(t)A.shouldSizeToContent(t)&&this.resizeToContentCBCheck(t.el);else if(this.engine.nodes.some(i=>A.shouldSizeToContent(i))){let i=[...this.engine.nodes];this.batchUpdate(),i.forEach(o=>{A.shouldSizeToContent(o)&&this.resizeToContentCBCheck(o.el)}),this.batchUpdate(!1)}this._gsEventHandler.resizecontent&&this._gsEventHandler.resizecontent(null,t?[t]:this.engine.nodes)}}_updateResizeEvent(e=!1){let t=!this.parentGridNode&&(this._isAutoCellHeight||this.opts.sizeToContent||this.opts.columnOpts||this.engine.nodes.find(i=>i.sizeToContent));return!e&&t&&!this.resizeObserver?(this._sizeThrottle=A.throttle(()=>this.onResize(),this.opts.cellHeightThrottle),this.resizeObserver=new ResizeObserver(()=>this._sizeThrottle()),this.resizeObserver.observe(this.el),this._skipInitialResize=!0):(e||!t)&&this.resizeObserver&&(this.resizeObserver.disconnect(),delete this.resizeObserver,delete this._sizeThrottle),this}static getElement(e=".grid-stack-item"){return A.getElement(e)}static getElements(e=".grid-stack-item"){return A.getElements(e)}static getGridElement(e){return r.getElement(e)}static getGridElements(e){return A.getElements(e)}_initMargin(){let e,t=0,i=[];return typeof this.opts.margin=="string"&&(i=this.opts.margin.split(" ")),i.length===2?(this.opts.marginTop=this.opts.marginBottom=i[0],this.opts.marginLeft=this.opts.marginRight=i[1]):i.length===4?(this.opts.marginTop=i[0],this.opts.marginRight=i[1],this.opts.marginBottom=i[2],this.opts.marginLeft=i[3]):(e=A.parseHeight(this.opts.margin),this.opts.marginUnit=e.unit,t=this.opts.margin=e.h),this.opts.marginTop===void 0?this.opts.marginTop=t:(e=A.parseHeight(this.opts.marginTop),this.opts.marginTop=e.h,delete this.opts.margin),this.opts.marginBottom===void 0?this.opts.marginBottom=t:(e=A.parseHeight(this.opts.marginBottom),this.opts.marginBottom=e.h,delete this.opts.margin),this.opts.marginRight===void 0?this.opts.marginRight=t:(e=A.parseHeight(this.opts.marginRight),this.opts.marginRight=e.h,delete this.opts.margin),this.opts.marginLeft===void 0?this.opts.marginLeft=t:(e=A.parseHeight(this.opts.marginLeft),this.opts.marginLeft=e.h,delete this.opts.margin),this.opts.marginUnit=e.unit,this.opts.marginTop===this.opts.marginBottom&&this.opts.marginLeft===this.opts.marginRight&&this.opts.marginTop===this.opts.marginRight&&(this.opts.margin=this.opts.marginTop),this}static getDD(){return Vt}static setupDragIn(e,t,i,o=document){t?.pause!==void 0&&(oe.pauseDrag=t.pause),t=X({appendTo:"body",helper:"clone"},t||{}),(typeof e=="string"?A.getElements(e,o):e).forEach((l,d)=>{Vt.isDraggable(l)||Vt.dragIn(l,t),i?.[d]&&(l.gridstackNode=i[d])})}movable(e,t){return this.opts.staticGrid?this:(r.getElements(e).forEach(i=>{let o=i.gridstackNode;o&&(t?delete o.noMove:o.noMove=!0,this.prepareDragDrop(o.el))}),this)}resizable(e,t){return this.opts.staticGrid?this:(r.getElements(e).forEach(i=>{let o=i.gridstackNode;o&&(t?delete o.noResize:o.noResize=!0,this.prepareDragDrop(o.el))}),this)}disable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!1,e),this.enableResize(!1,e),this._triggerEvent("disable"),this}enable(e=!0){if(!this.opts.staticGrid)return this.enableMove(!0,e),this.enableResize(!0,e),this._triggerEvent("enable"),this}enableMove(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableDrag:this.opts.disableDrag=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableMove(e,t)}),this)}enableResize(e,t=!0){return this.opts.staticGrid?this:(e?delete this.opts.disableResize:this.opts.disableResize=!0,this.engine.nodes.forEach(i=>{this.prepareDragDrop(i.el),i.subGrid&&t&&i.subGrid.enableResize(e,t)}),this)}cancelDrag(){let e=this._placeholder?.gridstackNode;e&&(e._isExternal?(e._isAboutToRemove=!0,this.engine.removeNode(e)):e._isAboutToRemove&&r._itemRemoving(e.el,!1),this.engine.restoreInitial())}_removeDD(e){return Vt.draggable(e,"destroy").resizable(e,"destroy"),e.gridstackNode&&delete e.gridstackNode._initDD,delete e.ddElement,this}_setupAcceptWidget(){if(this.opts.staticGrid||!this.opts.acceptWidgets&&!this.opts.removable)return Vt.droppable(this.el,"destroy"),this;let e,t,i=(o,a,l)=>{l=l||a;let d=l.gridstackNode;if(!d)return;if(!d.grid?.el){l.style.transform=`scale(${1/this.dragTransform.xScale},${1/this.dragTransform.yScale})`;let y=l.getBoundingClientRect();l.style.left=y.x+(this.dragTransform.xScale-1)*(o.clientX-y.x)/this.dragTransform.xScale+"px",l.style.top=y.y+(this.dragTransform.yScale-1)*(o.clientY-y.y)/this.dragTransform.yScale+"px",l.style.transformOrigin="0px 0px"}let{top:p,left:s}=l.getBoundingClientRect(),c=this.el.getBoundingClientRect();s-=c.left,p-=c.top;let m={position:{top:p*this.dragTransform.xScale,left:s*this.dragTransform.yScale}};if(d._temporaryRemoved){if(d.x=Math.max(0,Math.round(s/t)),d.y=Math.max(0,Math.round(p/e)),delete d.autoPosition,this.engine.nodeBoundFix(d),!this.engine.willItFit(d)){if(d.autoPosition=!0,!this.engine.willItFit(d)){Vt.off(a,"drag");return}d._willFitPos&&(A.copyPos(d,d._willFitPos),delete d._willFitPos)}this._onStartMoving(l,o,m,d,t,e)}else this._dragOrResize(l,o,m,d,t,e)};return Vt.droppable(this.el,{accept:o=>{let a=o.gridstackNode||this._readAttr(o,!1);if(a?.grid===this)return!0;if(!this.opts.acceptWidgets)return!1;let l=!0;if(typeof this.opts.acceptWidgets=="function")l=this.opts.acceptWidgets(o);else{let d=this.opts.acceptWidgets===!0?".grid-stack-item":this.opts.acceptWidgets;l=o.matches(d)}if(l&&a&&this.opts.maxRow){let d={w:a.w,h:a.h,minW:a.minW,minH:a.minH};l=this.engine.willItFit(d)}return l}}).on(this.el,"dropover",(o,a,l)=>{let d=l?.gridstackNode||a.gridstackNode;if(d?.grid===this&&!d._temporaryRemoved)return!1;if(d?._sidebarOrig&&(d.w=d._sidebarOrig.w,d.h=d._sidebarOrig.h),d?.grid&&d.grid!==this&&!d._temporaryRemoved&&d.grid._leave(a,l),l=l||a,t=this.cellWidth(),e=this.getCellHeight(!0),!d){let c=l.getAttribute("data-gs-widget")||l.getAttribute("gridstacknode");if(c){try{d=JSON.parse(c)}catch{console.error("Gridstack dropover: Bad JSON format: ",c)}l.removeAttribute("data-gs-widget"),l.removeAttribute("gridstacknode")}d||(d=this._readAttr(l)),d._sidebarOrig={w:d.w,h:d.h}}d.grid||(d.el||(d=X({},d)),d._isExternal=!0,l.gridstackNode=d);let p=d.w||Math.round(l.offsetWidth/t)||1,s=d.h||Math.round(l.offsetHeight/e)||1;return d.grid&&d.grid!==this?(a._gridstackNodeOrig||(a._gridstackNodeOrig=d),a.gridstackNode=d=et(X({},d),{w:p,h:s,grid:this}),delete d.x,delete d.y,this.engine.cleanupNode(d).nodeBoundFix(d),d._initDD=d._isExternal=d._temporaryRemoved=!0):(d.w=p,d.h=s,d._temporaryRemoved=!0),r._itemRemoving(d.el,!1),Vt.on(a,"drag",i),i(o,a,l),!1}).on(this.el,"dropout",(o,a,l)=>{let d=l?.gridstackNode||a.gridstackNode;return d&&(!d.grid||d.grid===this)&&(this._leave(a,l),this._isTemp&&this.removeAsSubGrid(d)),!1}).on(this.el,"drop",(o,a,l)=>{let d=l?.gridstackNode||a.gridstackNode;if(d?.grid===this&&!d._isExternal)return!1;let p=!!this.placeholder.parentElement,s=a!==l;this.placeholder.remove(),delete this.placeholder.gridstackNode;let c=p&&this.opts.animate;c&&this.setAnimation(!1);let m=a._gridstackNodeOrig;if(delete a._gridstackNodeOrig,p&&m?.grid&&m.grid!==this){let _=m.grid;_.engine.removeNodeFromLayoutCache(m),_.engine.removedNodes.push(m),_._triggerRemoveEvent()._triggerChangeEvent(),_.parentGridNode&&!_.engine.nodes.length&&_.opts.subGridDynamic&&_.removeAsSubGrid()}if(!d||(p&&(this.engine.cleanupNode(d),d.grid=this),delete d.grid?._isTemp,Vt.off(a,"drag"),l!==a?(l.remove(),a=l):a.remove(),this._removeDD(a),!p))return!1;let y=d.subGrid?.el?.gridstack;return A.copyPos(d,this._readAttr(this.placeholder)),A.removePositioningStyles(a),s&&(d.content||d.subGridOpts||r.addRemoveCB)?(delete d.el,a=this.addWidget(d)):(this._prepareElement(a,!0,d),this.el.appendChild(a),this.resizeToContentCheck(!1,d),y&&(y.parentGridNode=d,y.opts.styleInHead||y._updateStyles(!0)),this._updateContainerHeight()),this.engine.addedNodes.push(d),this._triggerAddEvent(),this._triggerChangeEvent(),this.engine.endUpdate(),this._gsEventHandler.dropped&&this._gsEventHandler.dropped(et(X({},o),{type:"dropped"}),m&&m.grid?m:void 0,d),c&&this.setAnimation(this.opts.animate,!0),!1}),this}static _itemRemoving(e,t){if(!e)return;let i=e?e.gridstackNode:void 0;!i?.grid||e.classList.contains(i.grid.opts.removableOptions.decline)||(t?i._isAboutToRemove=!0:delete i._isAboutToRemove,t?e.classList.add("grid-stack-item-removing"):e.classList.remove("grid-stack-item-removing"))}_setupRemoveDrop(){if(typeof this.opts.removable!="string")return this;let e=document.querySelector(this.opts.removable);return e?(!this.opts.staticGrid&&!Vt.isDroppable(e)&&Vt.droppable(e,this.opts.removableOptions).on(e,"dropover",(t,i)=>r._itemRemoving(i,!0)).on(e,"dropout",(t,i)=>r._itemRemoving(i,!1)),this):this}prepareDragDrop(e,t=!1){let i=e?.gridstackNode;if(!i)return;let o=i.noMove||this.opts.disableDrag,a=i.noResize||this.opts.disableResize,l=this.opts.staticGrid||o&&a;if((t||l)&&(i._initDD&&(this._removeDD(e),delete i._initDD),l&&e.classList.add("ui-draggable-disabled","ui-resizable-disabled"),!t))return this;if(!i._initDD){let d,p,s=(y,_)=>{this._gsEventHandler[y.type]&&this._gsEventHandler[y.type](y,y.target),d=this.cellWidth(),p=this.getCellHeight(!0),this._onStartMoving(e,y,_,i,d,p)},c=(y,_)=>{this._dragOrResize(e,y,_,i,d,p)},m=y=>{this.placeholder.remove(),delete this.placeholder.gridstackNode,delete i._moving,delete i._event,delete i._lastTried;let _=i.w!==i._orig.w,T=y.target;if(!(!T.gridstackNode||T.gridstackNode.grid!==this)){if(i.el=T,i._isAboutToRemove){let E=e.gridstackNode.grid;E._gsEventHandler[y.type]&&E._gsEventHandler[y.type](y,T),E.engine.nodes.push(i),E.removeWidget(e,!0,!0)}else A.removePositioningStyles(T),i._temporaryRemoved?(A.copyPos(i,i._orig),this._writePosAttr(T,i),this.engine.addNode(i)):this._writePosAttr(T,i),this._gsEventHandler[y.type]&&this._gsEventHandler[y.type](y,T);this._extraDragRow=0,this._updateContainerHeight(),this._triggerChangeEvent(),this.engine.endUpdate(),y.type==="resizestop"&&(Number.isInteger(i.sizeToContent)&&(i.sizeToContent=i.h),this.resizeToContentCheck(_,i))}};Vt.draggable(e,{start:s,stop:m,drag:c}).resizable(e,{start:s,stop:m,resize:c}),i._initDD=!0}return Vt.draggable(e,o?"disable":"enable").resizable(e,a?"disable":"enable"),this}_onStartMoving(e,t,i,o,a,l){if(this.engine.cleanNodes().beginUpdate(o),this._writePosAttr(this.placeholder,o),this.el.appendChild(this.placeholder),this.placeholder.gridstackNode=o,o.grid?.el)this.dragTransform=A.getValuesFromTransformedElement(e);else if(this.placeholder&&this.placeholder.closest(".grid-stack")){let d=this.placeholder.closest(".grid-stack");this.dragTransform=A.getValuesFromTransformedElement(d)}else this.dragTransform={xScale:1,xOffset:0,yScale:1,yOffset:0};if(o.el=this.placeholder,o._lastUiPosition=i.position,o._prevYPix=i.position.top,o._moving=t.type==="dragstart",delete o._lastTried,t.type==="dropover"&&o._temporaryRemoved&&(this.engine.addNode(o),o._moving=!0),this.engine.cacheRects(a,l,this.opts.marginTop,this.opts.marginRight,this.opts.marginBottom,this.opts.marginLeft),t.type==="resizestart"){let d=this.getColumn()-o.x,p=(this.opts.maxRow||Number.MAX_SAFE_INTEGER)-o.y;Vt.resizable(e,"option","minWidth",a*Math.min(o.minW||1,d)).resizable(e,"option","minHeight",l*Math.min(o.minH||1,p)).resizable(e,"option","maxWidth",a*Math.min(o.maxW||Number.MAX_SAFE_INTEGER,d)).resizable(e,"option","maxWidthMoveLeft",a*Math.min(o.maxW||Number.MAX_SAFE_INTEGER,o.x+o.w)).resizable(e,"option","maxHeight",l*Math.min(o.maxH||Number.MAX_SAFE_INTEGER,p)).resizable(e,"option","maxHeightMoveUp",l*Math.min(o.maxH||Number.MAX_SAFE_INTEGER,o.y+o.h))}}_dragOrResize(e,t,i,o,a,l){let d=X({},o._orig),p,s=this.opts.marginLeft,c=this.opts.marginRight,m=this.opts.marginTop,y=this.opts.marginBottom,_=Math.round(l*.1),T=Math.round(a*.1);if(s=Math.min(s,T),c=Math.min(c,T),m=Math.min(m,_),y=Math.min(y,_),t.type==="drag"){if(o._temporaryRemoved)return;let z=i.position.top-o._prevYPix;o._prevYPix=i.position.top,this.opts.draggable.scroll!==!1&&A.updateScrollPosition(e,i.position,z);let Y=i.position.left+(i.position.left>o._lastUiPosition.left?-c:s),te=i.position.top+(i.position.top>o._lastUiPosition.top?-y:m);d.x=Math.round(Y/a),d.y=Math.round(te/l);let be=this._extraDragRow;if(this.engine.collide(o,d)){let He=this.getRow(),$e=Math.max(0,d.y+o.h-He);this.opts.maxRow&&He+$e>this.opts.maxRow&&($e=Math.max(0,this.opts.maxRow-He)),this._extraDragRow=$e}else this._extraDragRow=0;if(this._extraDragRow!==be&&this._updateContainerHeight(),o.x===d.x&&o.y===d.y)return}else if(t.type==="resize"){if(d.x<0||(A.updateScrollResize(t,e,l),d.w=Math.round((i.size.width-s)/a),d.h=Math.round((i.size.height-m)/l),o.w===d.w&&o.h===d.h)||o._lastTried&&o._lastTried.w===d.w&&o._lastTried.h===d.h)return;let z=i.position.left+s,Y=i.position.top+m;d.x=Math.round(z/a),d.y=Math.round(Y/l),p=!0}o._event=t,o._lastTried=d;let E={x:i.position.left+s,y:i.position.top+m,w:(i.size?i.size.width:o.w*a)-s-c,h:(i.size?i.size.height:o.h*l)-m-y};if(this.engine.moveNodeCheck(o,et(X({},d),{cellWidth:a,cellHeight:l,rect:E,resizing:p}))){o._lastUiPosition=i.position,this.engine.cacheRects(a,l,m,c,y,s),delete o._skipDown,p&&o.subGrid&&o.subGrid.onResize(),this._extraDragRow=0,this._updateContainerHeight();let z=t.target;o._sidebarOrig||this._writePosAttr(z,o),this._gsEventHandler[t.type]&&this._gsEventHandler[t.type](t,z)}}_leave(e,t){t=t||e;let i=t.gridstackNode;if(!i||(t.style.transform=t.style.transformOrigin=null,Vt.off(e,"drag"),i._temporaryRemoved))return;i._temporaryRemoved=!0,this.engine.removeNode(i),i.el=i._isExternal&&t?t:e;let o=i._sidebarOrig;i._isExternal&&this.engine.cleanupNode(i),i._sidebarOrig=o,this.opts.removable===!0&&r._itemRemoving(e,!0),e._gridstackNodeOrig?(e.gridstackNode=e._gridstackNodeOrig,delete e._gridstackNodeOrig):i._isExternal&&this.engine.restoreInitial()}commit(){return ec(this,this.batchUpdate(!1),"commit","batchUpdate","5.2"),this}}return r.renderCB=(n,e)=>{n&&e?.content&&(n.textContent=e.content)},r.resizeToContentParent=".grid-stack-item-content",r.Utils=A,r.Engine=Wo,r.GDRev="11.5.1",r})();var oc=["container"],tm=["*"];function im(r,n){}var nm=["*",[["","empty-content",""]]],rm=["*","[empty-content]"];function om(r,n){r&1&&Et(0,1,["*ngIf","isEmpty"])}function am(r,n){}var ac=(()=>{class r{serialize(){}deserialize(e){this.widgetItem=e,e&&e.input&&Object.assign(this,e.input)}}return r.\u0275fac=function(e){return new(e||r)},r.\u0275prov=st({token:r,factory:r.\u0275fac}),r})(),ss=(()=>{class r{constructor(e){this.elementRef=e,this.el._gridItemComp=this}set options(e){let t=this.el.gridstackNode?.grid;t?t.update(this.el,e):this._options=et(X({},e),{el:this.el})}get options(){return this.el.gridstackNode||this._options||{el:this.el}}get el(){return this.elementRef.nativeElement}clearOptions(){delete this._options}ngOnDestroy(){this.clearOptions(),delete this.childWidget,delete this.el._gridItemComp,delete this.container,delete this.ref}}return r.\u0275fac=function(e){return new(e||r)(Ht(tt))},r.\u0275cmp=G({type:r,selectors:[["gridstack-item"]],viewQuery:function(e,t){if(e&1&&it(oc,7,Ya),e&2){let i;qe(i=je())&&(t.container=i.first)}},inputs:{options:"options"},ngContentSelectors:tm,decls:5,vars:1,consts:[["container",""],[1,"grid-stack-item-content"]],template:function(e,t){e&1&&(si(),v(0,"div",1),Rr(1,im,0,0,"ng-template",null,0,Xa),Et(3),D(4),w()),e&2&&(P(4),pt(" ",t.options.content," "))},styles:["[_nghost-%COMP%]{display:block}"]}),r})(),Sn=(()=>{class r{constructor(e){this.elementRef=e,this.addedCB=new mt,this.changeCB=new mt,this.disableCB=new mt,this.dragCB=new mt,this.dragStartCB=new mt,this.dragStopCB=new mt,this.droppedCB=new mt,this.enableCB=new mt,this.removedCB=new mt,this.resizeCB=new mt,this.resizeStartCB=new mt,this.resizeStopCB=new mt,pr.addRemoveCB||(pr.addRemoveCB=sm),pr.saveCB||(pr.saveCB=lm),this.el._gridComp=this}set options(e){this._grid?this._grid.updateOptions(e):this._options=e}get options(){return this._grid?.opts||this._options||{}}get el(){return this.elementRef.nativeElement}get grid(){return this._grid}static addComponentToSelectorType(e){e.forEach(t=>r.selectorToType[r.getSelector(t)]=t)}static getSelector(e){return Fl(e).selector}ngOnInit(){this.loaded=!!this.options?.children?.length,this._grid=pr.init(this._options,this.el),delete this._options,this.checkEmpty()}ngAfterContentInit(){this._sub=this.gridstackItems?.changes.subscribe(()=>this.updateAll()),this.loaded||this.updateAll(),this.hookEvents(this.grid)}ngOnDestroy(){this.unhookEvents(this._grid),this._sub?.unsubscribe(),this._grid?.destroy(),delete this._grid,delete this.el._gridComp,delete this.container,delete this.ref}updateAll(){if(!this.grid)return;let e=[];this.gridstackItems?.forEach(t=>{e.push(t.options),t.clearOptions()}),this.grid.load(e)}checkEmpty(){this.grid&&(this.isEmpty=!this.grid.engine.nodes.length)}hookEvents(e){e&&e.on("added",(t,i)=>{this.checkEmpty(),this.addedCB.emit({event:t,nodes:i})}).on("change",(t,i)=>this.changeCB.emit({event:t,nodes:i})).on("disable",t=>this.disableCB.emit({event:t})).on("drag",(t,i)=>this.dragCB.emit({event:t,el:i})).on("dragstart",(t,i)=>this.dragStartCB.emit({event:t,el:i})).on("dragstop",(t,i)=>this.dragStopCB.emit({event:t,el:i})).on("dropped",(t,i,o)=>this.droppedCB.emit({event:t,previousNode:i,newNode:o})).on("enable",t=>this.enableCB.emit({event:t})).on("removed",(t,i)=>{this.checkEmpty(),this.removedCB.emit({event:t,nodes:i})}).on("resize",(t,i)=>this.resizeCB.emit({event:t,el:i})).on("resizestart",(t,i)=>this.resizeStartCB.emit({event:t,el:i})).on("resizestop",(t,i)=>this.resizeStopCB.emit({event:t,el:i}))}unhookEvents(e){e&&e.off("added change disable drag dragstart dragstop dropped enable removed resize resizestart resizestop")}}return r.selectorToType={},r.\u0275fac=function(e){return new(e||r)(Ht(tt))},r.\u0275cmp=G({type:r,selectors:[["gridstack"]],contentQueries:function(e,t,i){if(e&1&&gn(i,ss,4),e&2){let o;qe(o=je())&&(t.gridstackItems=o)}},viewQuery:function(e,t){if(e&1&&it(oc,7,Ya),e&2){let i;qe(i=je())&&(t.container=i.first)}},inputs:{options:"options",isEmpty:"isEmpty"},outputs:{addedCB:"addedCB",changeCB:"changeCB",disableCB:"disableCB",dragCB:"dragCB",dragStartCB:"dragStartCB",dragStopCB:"dragStopCB",droppedCB:"droppedCB",enableCB:"enableCB",removedCB:"removedCB",resizeCB:"resizeCB",resizeStartCB:"resizeStartCB",resizeStopCB:"resizeStopCB"},ngContentSelectors:rm,decls:4,vars:1,consts:[["container",""],[4,"ngIf"]],template:function(e,t){e&1&&(si(nm),Rr(0,om,1,0,"ng-content",1)(1,am,0,0,"ng-template",null,0,Xa),Et(3)),e&2&&U("ngIf",t.isEmpty)},dependencies:[Ul],styles:["[_nghost-%COMP%]{display:block}"]}),r})();function sm(r,n,e,t){if(e){if(!r)return;if(t){let i=r.parentElement?._gridItemComp;if(!i)return;let a=(i.childWidget?.container||i.container)?.createComponent(Sn),l=a?.instance;return l?(l.ref=a,l.options=n,l.el):void 0}else{let o=r._gridComp?.container?.createComponent(ss),a=o?.instance;if(!a)return;a.ref=o;let l=n.selector,d=l?Sn.selectorToType[l]:void 0;if(d){let p=()=>{let c=a.container?.createComponent(d)?.instance;c&&typeof c.serialize=="function"&&typeof c.deserialize=="function"&&(a.childWidget=c,c.deserialize(n))};n.lazyLoad||n.grid?.opts?.lazyLoad&&n.lazyLoad!==!1?n.visibleObservable||(n.visibleObservable=new IntersectionObserver(([c])=>{c.isIntersecting&&(n.visibleObservable?.disconnect(),delete n.visibleObservable,p())}),window.setTimeout(()=>n.visibleObservable?.observe(a.el))):p()}return a.el}}else if(t){let i=n.el?._gridComp;i?.ref?i.ref.destroy():i?.ngOnDestroy()}else{let i=n.el?._gridItemComp;i?.ref?i.ref.destroy():i?.ngOnDestroy()}}function lm(r,n){let e=r.el?._gridItemComp;if(e){let i=e.childWidget?.serialize();i&&(n.input=i);return}let t=r.el?._gridComp}var sc=(()=>{class r{}return r.\u0275fac=function(e){return new(e||r)},r.\u0275mod=ai({type:r}),r.\u0275inj=oi({imports:[ss,Sn]}),r})();var ke=function(r){return r[r.State=0]="State",r[r.Transition=1]="Transition",r[r.Sequence=2]="Sequence",r[r.Group=3]="Group",r[r.Animate=4]="Animate",r[r.Keyframes=5]="Keyframes",r[r.Style=6]="Style",r[r.Trigger=7]="Trigger",r[r.Reference=8]="Reference",r[r.AnimateChild=9]="AnimateChild",r[r.AnimateRef=10]="AnimateRef",r[r.Query=11]="Query",r[r.Stagger=12]="Stagger",r}(ke||{}),hi="*";function ls(r,n){return{type:ke.Trigger,name:r,definitions:n,options:{}}}function Fo(r,n=null){return{type:ke.Animate,styles:n,timings:r}}function lc(r,n=null){return{type:ke.Sequence,steps:r,options:n}}function Ri(r){return{type:ke.Style,styles:r,offset:null}}function ds(r,n,e=null){return{type:ke.Transition,expr:r,animation:n,options:e}}var Di=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(n=0,e=0){this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){let e=n=="start"?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}},kn=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(n){this.players=n;let e=0,t=0,i=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==o&&this._onFinish()}),a.onDestroy(()=>{++t==o&&this._onDestroy()}),a.onStart(()=>{++i==o&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){let e=n*this.totalTime;this.players.forEach(t=>{let i=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(i)})}getPosition(){let n=this.players.reduce((e,t)=>e===null||t.totalTime>e.totalTime?t:e,null);return n!=null?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){let e=n=="start"?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}},fr="!";var cm=(r,n)=>n.id;function hm(r,n){if(r&1&&V(0,"div",4),r&2){let e=n.$index;ie();let t=Ll(0);_e("background-color",t===e?"var(--mat-sys-on-surface)":"var(--mat-sys-inverse-on-surface)")}}var dc=(()=>{class r{activePage=q();dashboards=q();static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["dashboard-scroller"]],inputs:{activePage:[1,"activePage"],dashboards:[1,"dashboards"]},decls:7,vars:4,consts:[[1,"page-scroll-title","page-scroll-container"],[1,"page-label"],[1,"page-scroll-page-number","page-scroll-container"],[1,"page-marker",3,"background-color"],[1,"page-marker"]],template:function(t,i){if(t&1&&(Vl(0),v(1,"div",0)(2,"span",1),D(3),w()(),v(4,"div",2),xi(5,hm,1,2,"div",3,cm),w()),t&2){let o=i.dashboards(),a=zl(i.activePage());P(),U("@fadeInOut",a),P(2),rt(o[a].name),P(),U("@fadeInOut",a),P(),Ei(o)}},styles:["[_nghost-%COMP%]{pointer-events:none}.page-scroll-title[_ngcontent-%COMP%]{position:absolute;top:50%;right:54px;transform:translateY(-50%);z-index:100;cursor:default;text-align:center;padding:10px;color:var(--mat-sys-inverse-surface)}.page-scroll-page-number[_ngcontent-%COMP%]{position:absolute;top:50%;right:15px;transform:translateY(-50%);z-index:100;cursor:default;display:grid;padding:0}.page-scroll-container[_ngcontent-%COMP%]{opacity:0;background-color:var(--mat-sys-tertiary-fixed-dim);border-radius:10px;border:1px solid var(--mat-sys-inverse-surface)}.page-label[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);text-shadow:1px 1px 0 var(--mat-sys-outline),-1px 1px 0 var(--mat-sys-outline),-1px -1px 0 var(--mat-sys-outline),1px -1px 0 var(--mat-sys-outline);font-size:x-large}.page-marker[_ngcontent-%COMP%]{height:20px;width:20px;margin:4px;border-radius:50%;border:1px solid var(--mat-sys-outline)}"],data:{animation:[ls("fadeInOut",[ds(":increment, :decrement",[Ri({opacity:0}),Fo(100,Ri({opacity:1})),Ri({opacity:1}),Fo("250ms 1000ms",Ri({opacity:0}))])])]}})}return r})();var cc="mat-badge-content",um=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["ng-component"]],decls:0,vars:0,template:function(t,i){},styles:[`.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-content{position:absolute;text-align:center;display:inline-block;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none;background-color:var(--mat-badge-background-color, var(--mat-sys-error));color:var(--mat-badge-text-color, var(--mat-sys-on-error));font-family:var(--mat-badge-text-font, var(--mat-sys-label-small-font));font-weight:var(--mat-badge-text-weight, var(--mat-sys-label-small-weight));border-radius:var(--mat-badge-container-shape, var(--mat-sys-corner-full))}.mat-badge-above .mat-badge-content{bottom:100%}.mat-badge-below .mat-badge-content{top:100%}.mat-badge-before .mat-badge-content{right:100%}[dir=rtl] .mat-badge-before .mat-badge-content{right:auto;left:100%}.mat-badge-after .mat-badge-content{left:100%}[dir=rtl] .mat-badge-after .mat-badge-content{left:auto;right:100%}@media(forced-colors: active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-disabled .mat-badge-content{background-color:var(--mat-badge-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-error) 38%, transparent));color:var(--mat-badge-disabled-state-text-color, var(--mat-sys-on-error))}.mat-badge-hidden .mat-badge-content{display:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:var(--mat-badge-legacy-small-size-container-size, unset);height:var(--mat-badge-legacy-small-size-container-size, unset);min-width:var(--mat-badge-small-size-container-size, 6px);min-height:var(--mat-badge-small-size-container-size, 6px);line-height:var(--mat-badge-small-size-line-height, 6px);padding:var(--mat-badge-small-size-container-padding, 0);font-size:var(--mat-badge-small-size-text-size, 0);margin:var(--mat-badge-small-size-container-offset, -6px 0)}.mat-badge-small.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-small-size-container-overlap-offset, -6px)}.mat-badge-medium .mat-badge-content{width:var(--mat-badge-legacy-container-size, unset);height:var(--mat-badge-legacy-container-size, unset);min-width:var(--mat-badge-container-size, 16px);min-height:var(--mat-badge-container-size, 16px);line-height:var(--mat-badge-line-height, 16px);padding:var(--mat-badge-container-padding, 0 4px);font-size:var(--mat-badge-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-container-offset, -12px 0)}.mat-badge-medium.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-container-overlap-offset, -12px)}.mat-badge-large .mat-badge-content{width:var(--mat-badge-legacy-large-size-container-size, unset);height:var(--mat-badge-legacy-large-size-container-size, unset);min-width:var(--mat-badge-large-size-container-size, 16px);min-height:var(--mat-badge-large-size-container-size, 16px);line-height:var(--mat-badge-large-size-line-height, 16px);padding:var(--mat-badge-large-size-container-padding, 0 4px);font-size:var(--mat-badge-large-size-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-large-size-container-offset, -12px 0)}.mat-badge-large.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-large-size-container-overlap-offset, -12px)}
|
|
6
|
+
`],encapsulation:2,changeDetection:0})}return r})(),hc=(()=>{class r{_ngZone=M(yt);_elementRef=M(tt);_ariaDescriber=M(vd);_renderer=M(mo);_animationsDisabled=yn();_idGenerator=M(So);get color(){return this._color}set color(e){this._setColor(e),this._color=e}_color="primary";overlap=!0;disabled;position="above after";get content(){return this._content}set content(e){this._updateRenderedContent(e)}_content;get description(){return this._description}set description(e){this._updateDescription(e)}_description;size="medium";hidden;_badgeElement;_inlineBadgeDescription;_isInitialized=!1;_interactivityChecker=M(Co);_document=M(Gi);constructor(){let e=M(hd);e.load(um),e.load(ud)}isAbove(){return this.position.indexOf("below")===-1}isAfter(){return this.position.indexOf("before")===-1}getBadgeElement(){return this._badgeElement}ngOnInit(){this._clearExistingBadges(),this.content&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement(),this._updateRenderedContent(this.content)),this._isInitialized=!0}ngOnDestroy(){this._renderer.destroyNode&&(this._renderer.destroyNode(this._badgeElement),this._inlineBadgeDescription?.remove()),this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description)}_isHostInteractive(){return this._interactivityChecker.isFocusable(this._elementRef.nativeElement,{ignoreVisibility:!0})}_createBadgeElement(){let e=this._renderer.createElement("span"),t="mat-badge-active";return e.setAttribute("id",this._idGenerator.getId("mat-badge-content-")),e.setAttribute("aria-hidden","true"),e.classList.add(cc),this._animationsDisabled&&e.classList.add("_mat-animation-noopable"),this._elementRef.nativeElement.appendChild(e),typeof requestAnimationFrame=="function"&&!this._animationsDisabled?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{e.classList.add(t)})}):e.classList.add(t),e}_updateRenderedContent(e){let t=`${e??""}`.trim();this._isInitialized&&t&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement()),this._badgeElement&&(this._badgeElement.textContent=t),this._content=t}_updateDescription(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description),(!e||this._isHostInteractive())&&this._removeInlineDescription(),this._description=e,this._isHostInteractive()?this._ariaDescriber.describe(this._elementRef.nativeElement,e):this._updateInlineDescription()}_updateInlineDescription(){this._inlineBadgeDescription||(this._inlineBadgeDescription=this._document.createElement("span"),this._inlineBadgeDescription.classList.add("cdk-visually-hidden")),this._inlineBadgeDescription.textContent=this.description,this._badgeElement?.appendChild(this._inlineBadgeDescription)}_removeInlineDescription(){this._inlineBadgeDescription?.remove(),this._inlineBadgeDescription=void 0}_setColor(e){let t=this._elementRef.nativeElement.classList;t.remove(`mat-badge-${this._color}`),e&&t.add(`mat-badge-${e}`)}_clearExistingBadges(){let e=this._elementRef.nativeElement.querySelectorAll(`:scope > .${cc}`);for(let t of Array.from(e))t!==this._badgeElement&&t.remove()}static \u0275fac=function(t){return new(t||r)};static \u0275dir=Ti({type:r,selectors:[["","matBadge",""]],hostAttrs:[1,"mat-badge"],hostVars:20,hostBindings:function(t,i){t&2&&Pt("mat-badge-overlap",i.overlap)("mat-badge-above",i.isAbove())("mat-badge-below",!i.isAbove())("mat-badge-before",!i.isAfter())("mat-badge-after",i.isAfter())("mat-badge-small",i.size==="small")("mat-badge-medium",i.size==="medium")("mat-badge-large",i.size==="large")("mat-badge-hidden",i.hidden||!i.content)("mat-badge-disabled",i.disabled)},inputs:{color:[0,"matBadgeColor","color"],overlap:[2,"matBadgeOverlap","overlap",vo],disabled:[2,"matBadgeDisabled","disabled",vo],position:[0,"matBadgePosition","position"],content:[0,"matBadge","content"],description:[0,"matBadgeDescription","description"],size:[0,"matBadgeSize","size"],hidden:[2,"matBadgeHidden","hidden",vo]}})}return r})(),gr=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=ai({type:r});static \u0275inj=oi({imports:[fd,nr,nr]})}return r})();var cs={200:"The request was successfully.",202:"Request accepted and pending completion.",400:"Something is wrong with the client's request.",401:"Login failed. Your User ID or Password is incorrect.",403:"DENIED: Authorization with R/W or Admin permission level is required to send commands. Configure Sign In credential.",405:"The server does not support the request.",500:"The request failed.",502:"Something went wrong carrying out the request on the server.",504:"Timeout on the server side trying to carry out the request."},rn=(()=>{class r{signalKDeltaService=M(Ki);appSettingsService=M(Ut);appService=M(Dt);auth=M(li);requestStatus$=new vt;requests=[];constructor(){this.signalKDeltaService.subscribeRequestUpdates().pipe(Xi()).subscribe(e=>{this.updateRequest(e)})}requestDeviceAccessToken(){let e=Pi.create(),t={requestId:e,accessRequest:{clientId:this.appSettingsService.KipUUID,description:"KIP Instrument MDF",permissions:"admin"}};console.log("[Request Service] Requesting Device Authorization Token"),this.signalKDeltaService.publishDelta(t);let i={requestId:e,state:null,statusCode:null};return this.requests.push(i),e}requestUserLogin(e,t){let i=Pi.create(),o={requestId:i,login:{username:e,password:t}};console.log("[Request Service] Requesting User Login"),this.signalKDeltaService.publishDelta(o);let a={requestId:i,state:null,statusCode:null};return this.requests.push(a),i}putRequest(e,t,i){let o=Pi.create(),a=e.replace(/^(self\.)/,""),d={context:"vessels.self",requestId:o,put:{path:a,value:t}};this.signalKDeltaService.publishDelta(d);let p={requestId:o,state:null,statusCode:null,widgetUUID:i};return this.requests.push(p),o}updateRequest(e){let t=this.requests.findIndex(i=>i.requestId==e.requestId);if(t>-1){this.requests[t].state=e.state,this.requests[t].statusCode=e.statusCode,this.requests[t].message=e.message;let i=cs[e.statusCode];if(typeof i<"u"&&(this.requests[t].statusCode==200||this.requests[t].statusCode==202||this.requests[t].statusCode==400||this.requests[t].statusCode==401||this.requests[t].statusCode==403||this.requests[t].statusCode==405)){if(this.requests[t].statusCodeDescription=i,this.requests[t].statusCode==202){console.log("[Request Service] Async 202 response received");return}this.requests[t].statusCode==400&&(this.appService.sendSnackbarNotification(this.requests[t].message),console.log("[Request Service] "+this.requests[t].message)),this.requests[t].statusCode==403&&console.warn("[Request Service] Status Code: "+this.requests[t].statusCode+" - "+this.requests[t].statusCodeDescription),this.requests[t].statusCode==405&&console.error("[Request Service] Status Code: "+this.requests[t].statusCode+" - "+this.requests[t].message),e.accessRequest!==void 0&&e.accessRequest.token!==void 0?(this.appService.sendSnackbarNotification(e.accessRequest.permission+": Device Access Token received from server."),console.log(`[Request Service] ${e.accessRequest.permission}: Device Access Token received`),this.auth.setDeviceAccessToken(e.accessRequest.token)):e.login!==void 0&&e.login.token}else this.appService.sendSnackbarNotification("ERROR: Unknown Request Status Code received: "+this.requests[t].statusCode+" - "+cs[this.requests[t].statusCode]+" - "+this.requests[t].message),console.error("[Request Service] Unknown Request Status Code received: "+this.requests[t].statusCode+" - "+cs[this.requests[t].statusCode]+" - "+this.requests[t].message);try{this.requestStatus$.next(this.requests[t]),this.requests.splice(t,1)}catch(o){this.requestStatus$.error(o),console.error("[Request Service] "+o),this.requests=[]}}else this.appService.sendSnackbarNotification(`ERROR: A request message that contains an unknown Request ID was received. Request Delta:
|
|
7
7
|
`+JSON.stringify(e)),console.error(`[Request Service] A Request message that contains an unknown Request ID was received. from delta:
|
|
8
|
-
`+JSON.stringify(e))}subscribeRequest(){return this.requestStatus$.asObservable()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var
|
|
9
|
-
`+JSON.stringify(e)),{aSev:0,vSev:0};let o=i.sound,a=i.visual;return(!e.value.method.includes(Zn.Sound)||this._notificationConfig.sound[`mute${t.charAt(0).toUpperCase()+t.slice(1)}`]||this._isHowlIdMuted)&&(o=0),e.value.method.includes(Zn.Visual)||(a=0),{aSev:o,vSev:a}}setSkMethod(e,t){this.requests.putRequest(`${e}.method`,t,Ei.create())}setSkState(e,t){this.requests.putRequest(`${e}.state`,t,Ei.create())}observerNotificationsInfo(){return this._alarmsInfo$.pipe(Xt(t=>{let i=!1,o=!1;switch(t.visualSev){case 1:i=!0;break;case 2:o=!0;break}return $e(X({},t),{isWarn:i,isAlarmEmergency:o})}))}getPlayer(e){return this._activeAlarmSoundtrack=e,new ac.Howl({src:["assets/"+dm[e]+".mp3"],autoplay:!1,preload:!0,loop:!0,onend:function(){},onloaderror:function(){console.log("player onload error")},onplayerror:function(){console.log("player locked"),this._howlPlayer.once("unlock",function(){this._howlPlayer.play()})}})}mutePlayer(e){this._howlPlayer.mute(e,this._activeHowlId),this._isHowlIdMuted=e,this.updateNotificationsState()}playAlarm(e){if(this._activeAlarmSoundtrack!=e){if(e==1e3){this._howlPlayer&&this._howlPlayer.stop(),this._activeAlarmSoundtrack=1e3;return}this._howlPlayer.stop(),this._howlPlayer=this.getPlayer(e),this._activeHowlId=this._howlPlayer.play()}}observeNotificationConfiguration(){return this._notificationConfig$.asObservable()}ngOnDestroy(){this._notificationSettingsSubscription?.unsubscribe(),this._resetServiceSubscription?.unsubscribe(),this._notificationConfig$.complete(),this._notifications$.complete(),this._alarmsInfo$.complete(),this._howlPlayer?.unload()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var sc=(()=>{class r{_notifications=M(nn);hasNotifications=$i();notificationsInfo=Ut(this._notifications.observerNotificationsInfo());openNotificationMenu(){let e=new Event("openRightSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(e)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["notification-badge"]],outputs:{hasNotifications:"hasNotifications"},decls:4,vars:6,consts:[["mat-fab","",1,"layout-action-btn",3,"click"],["aria-hidden","false","matBadgeSize","large","matBadgePosition","after","matBadgeOverlap","true",1,"icon-alert-color",3,"matBadgeHidden","matBadge"]],template:function(t,i){t&1&&(v(0,"div")(1,"button",0),F("click",function(){return i.openNotificationMenu()}),v(2,"mat-icon",1),P(3,"notifications "),C()()()),t&2&&(D(),Ft("warn",i.notificationsInfo().isWarn)("alarm-emergency-blink",i.notificationsInfo().isAlarmEmergency),D(),j("matBadgeHidden",!i.notificationsInfo().alarmCount)("matBadge",i.notificationsInfo().alarmCount))},dependencies:[Kt,wo,Pt,di,mr,oc],styles:["[_nghost-%COMP%]{z-index:102;position:absolute;display:block;bottom:20px;left:20px;height:56px;width:56px;text-align:center;align-content:center}.layout-action-btn[_ngcontent-%COMP%]{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-primary)}.icon-alert-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-alert-color)}.icon-warn-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-warn-color)}.icon-alarm-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-alarm-color)}.icon-emergency-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-emergency-color)}.alarm-emergency-blink[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_blinking-emergency 1.5s infinite}@keyframes _ngcontent-%COMP%_blinking-emergency{0%{background-color:var(--kip-zone-alarm-color)}50%{background-color:var(--mat-sys-primary)}to{background-color:var(--kip-zone-alarm-color)}}.warn[_ngcontent-%COMP%]{color:var(--kip-zone-warn-color)}"]})}return r})();var Ne=(()=>{class r extends ec{widgetProperties;zones$=new Fi([]);DataService=M(Xi);unitsService=M(ir);app=M(Dt);theme=Ut(this.app.cssThemeColorRoles$,{requireSync:!0});defaultConfig=void 0;dataStream=void 0;dataSubscriptions=void 0;metaSubscriptions=void 0;constructor(){super()}serialize(){return{widgetProperties:this.widgetProperties}}observeMetaStream(){if(this.widgetProperties&&this.widgetProperties.config.paths&&Object.keys(this.widgetProperties.config.paths).length>0){let e=Object.keys(this.widgetProperties.config.paths)[0],t=this.widgetProperties.config.paths[e].path;this.metaSubscriptions=this.DataService.getPathMetaObservable(t).subscribe(i=>{i?i.zones?this.zones$.next(i.zones):this.zones$.next([]):this.zones$.next([])})}}unsubscribeMetaStream(){this.metaSubscriptions?.unsubscribe(),this.metaSubscriptions=void 0}validateConfig(){this.widgetProperties.config=Kn(td(this.defaultConfig,this.widgetProperties.config))}createDataObservable(){if(this.widgetProperties!==void 0){if(Object.keys(this.widgetProperties.config.paths).length==0){this.dataStream=void 0;return}else this.dataStream=[];Object.keys(this.widgetProperties.config.paths).forEach(e=>{typeof this.widgetProperties.config.paths[e].path!="string"||this.widgetProperties.config.paths[e].path==""||this.widgetProperties.config.paths[e].path==null||this.dataStream.push({pathName:e,observable:this.DataService.subscribePath(this.widgetProperties.config.paths[e].path,this.widgetProperties.config.paths[e].source)})})}}observeDataStream(e,t){(this.dataStream===void 0||this.dataStream.length==0)&&this.createDataObservable();let i=this.widgetProperties.config.paths[e].pathType,o=this.widgetProperties.config.paths[e].path,a=this.widgetProperties.config.paths[e].convertUnitTo,l=this.widgetProperties.config.paths[e].sampleTime,d=this.widgetProperties.config.dataTimeout*1e3,f=5e3,s=`[Widget] ${this.widgetProperties.config.displayName} - ${d/1e3} second data update timeout reached for `,c=`[Widget] ${this.widgetProperties.config.displayName} - Retrying in ${f/1e3} secondes`,m=this.buildObserver(e,t),y=this.dataStream.find(T=>T.pathName===e);if(y===void 0)return;let _;i=="number"?this.widgetProperties.config.enableTimeout?_=y.observable.pipe(Xt(T=>({data:{value:this.unitsService.convertToUnit(a,T.data.value),timestamp:T.data.timestamp},state:T.state})),Ln(l),Ba({each:d,with:()=>Wa(()=>{console.log(s+o),this.DataService.timeoutPathObservable(o,i)})}),Fa(T=>T.pipe(Ua(()=>console.log(c)),La(()=>za(f))))):_=y.observable.pipe(Xt(T=>({data:{value:this.unitsService.convertToUnit(a,T.data.value),timestamp:T.data.timestamp},state:T.state})),Ln(l)):i=="string"||i=="Date"?this.widgetProperties.config.enableTimeout?_=y.observable.pipe(Ln(l),Ba({each:d,with:()=>Wa(()=>{console.log(s+o),this.DataService.timeoutPathObservable(o,i)})}),Fa(T=>T.pipe(Ua(()=>console.log(c)),La(()=>za(f))))):_=y.observable.pipe(Ln(l)):_=y.observable.pipe(Ln(l)),this.dataSubscriptions===void 0?this.dataSubscriptions=_.subscribe(m):this.dataSubscriptions.add(_.subscribe(m))}unsubscribeDataStream(){this.dataSubscriptions?.unsubscribe(),this.dataSubscriptions=void 0,this.dataStream=void 0}buildObserver(e,t){return{next:o=>t(o),error:o=>console.error("[Widget] Observer got an error: "+o),complete:()=>console.log("[Widget] Observer got a complete notification: "+e)}}formatWidgetNumberValue(e){return typeof e!="number"||e==null?"":(e=Math.min(Math.max(e,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),e.toFixed(this.widgetProperties.config.numDecimal))}destroyDataStreams(){this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.zones$.complete()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["ng-component"]],inputs:{widgetProperties:"widgetProperties"},features:[pe],decls:0,vars:0,template:function(t,i){},encapsulation:2})}return r})();var lc=(()=>{class r{_bottomSheetRef=M(Td);clickAction(e){this._bottomSheetRef.dismiss(e)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-host-bottom-sheet"]],decls:11,vars:0,consts:[["mat-list-item","",3,"click"],["matListItemIcon",""]],template:function(t,i){t&1&&(v(0,"mat-action-list")(1,"button",0),F("click",function(){return i.clickAction("duplicate")}),v(2,"mat-icon",1),P(3,"content_copy"),C(),v(4,"span"),P(5,"Duplicate"),C()(),v(6,"button",0),F("click",function(){return i.clickAction("delete")}),v(7,"mat-icon",1),P(8,"delete_forever"),C(),v(9,"span"),P(10,"Delete"),C()()())},dependencies:[To,Md,ko,Pd,Pt,di],encapsulation:2})}return r})();var hm=["*"],We=(()=>{class r{config=Or.required();id=G.required();_dialog=M(nr);_dashboard=M(ct);_bottomSheet=M(xd);constructor(){}openWidgetOptions(){this._dashboard.isDashboardStatic()||this._dialog.openWidgetOptions({title:"Widget Options",config:this.config(),confirmBtnText:"Save",cancelBtnText:"Cancel"}).afterClosed().subscribe(e=>{e&&this.config.set(e)})}openBottomSheet(){this._dashboard.isDashboardStatic()||this._bottomSheet.open(lc).afterDismissed().subscribe(t=>{switch(t){case"delete":this._dashboard.deleteWidget(this.id());break;case"duplicate":this._dashboard.duplicateWidget(this.id());break;default:break}})}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-host"]],inputs:{config:[1,"config"],id:[1,"id"]},outputs:{config:"configChange"},ngContentSelectors:hm,decls:2,vars:2,consts:[["appearance","raised",1,"widget-container","kip-widget-card-colors",3,"doubletap","press"]],template:function(t,i){t&1&&(ai(),v(0,"mat-card",0),F("doubletap",function(){return i.openWidgetOptions()})("press",function(){return i.openBottomSheet()}),xt(1),C()),t&2&&xe("border",i._dashboard.isDashboardStatic()?"":"1px dashed var(--mat-sys-outline)")},dependencies:[So,Sd,Ed],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:block}.widget-container[_ngcontent-%COMP%]{display:block;width:100%;height:100%;margin:0;padding:0}.kip-widget-card-colors[_ngcontent-%COMP%]{background-color:var(--kip-widget-card-background-color)}"]})}return r})();var dc=(()=>{let n=class n{constructor(t){this.ngZone=t,this.count=0,this.elementMap=new Map,this.observer=null}ngOnDestroy(){this.observer&&this.clearObserver()}observe(t,i,o){this.observer||(this.observer=new ResizeObserver(a=>{for(let l of a){let d=this.elementMap.get(l.target);d&&this.ngZone.run(()=>{d(l)})}})),o==="border-box"?this.observer.observe(t,{box:"border-box"}):this.observer.observe(t),this.count+=1,this.elementMap.set(t,i)}unobserve(t){this.elementMap.get(t)&&this.observer&&(this.observer.unobserve(t),this.elementMap.delete(t),this.count-=1,this.count===0&&this.clearObserver())}clearObserver(){this.observer&&this.observer.disconnect(),this.observer=null,this.count=0,this.elementMap=new Map}};n.\u0275fac=function(i){return new(i||n)(Hn(yt))},n.\u0275prov=st({token:n,factory:n.\u0275fac});let r=n;return r})(),ot=(()=>{let n=class n{constructor(t,i,o){this.elementRef=t,this.ngxResizeObserverService=i,this.ngZone=o,this.resizeBoxModel="",this.onResize=new mt,this.observing=!1,qi(()=>{this.observe()})}ngOnChanges(t){this.observing&&(t.resizeBoxModel||t.onResize)&&(this.unobserve(),this.observe())}ngOnDestroy(){this.unobserve()}observe(){this.observing||(this.ngxResizeObserverService.observe(this.elementRef.nativeElement,t=>{this.ngZone.run(()=>{this.onResize.emit(t)})},this.resizeBoxModel),this.observing=!0)}unobserve(){this.observing&&(this.ngxResizeObserverService.unobserve(this.elementRef.nativeElement),this.observing=!1)}};n.\u0275fac=function(i){return new(i||n)(Lt(it),Lt(dc),Lt(yt))},n.\u0275dir=Si({type:n,selectors:[["","onResize",""]],inputs:{resizeBoxModel:"resizeBoxModel"},outputs:{onResize:"onResize"},features:[Gi]});let r=n;return r})(),at=(()=>{let n=class n{};n.\u0275fac=function(i){return new(i||n)},n.\u0275mod=oi({type:n}),n.\u0275inj=ri({providers:[dc]});let r=n;return r})();var Mt=(()=>{class r{DEFAULT_FONT="Roboto";EDGE_BUFFER=10;scaleFactor=window.devicePixelRatio||1;fontsReadyPromise;constructor(){this.fontsReadyPromise=document.fonts.ready}setHighDPISize(e,t){let i=Math.floor(t.width),o=Math.floor(t.height);e.width=i*this.scaleFactor,e.height=o*this.scaleFactor,e.style.width=`${i}px`,e.style.height=`${o}px`}drawTitle(e,t,i,o="normal",a,l){e&&this.fontsReadyPromise.then(()=>{requestAnimationFrame(()=>{this.drawTitleInternal(e,t,i,o,a,l)})}).catch(d=>{console.warn(`[Canvas Service] Font readiness failed: ${d}`),this.drawTitleInternal(e,t,i,o,a,l)})}drawTitleInternal(e,t,i,o="normal",a,l){if(!e)return;let d=a-2*this.EDGE_BUFFER,f=Math.floor(l*.1),s=this.calculateOptimalFontSize(e,t,d,f,o);e.clearRect(0,0,a,l),e.font=`${o} ${s}px ${this.DEFAULT_FONT}`,e.fillStyle=i,e.textAlign="left",e.textBaseline="top",e.fillText(t,this.EDGE_BUFFER*this.scaleFactor,this.EDGE_BUFFER*this.scaleFactor,d)}clearCanvas(e,t,i){e.clearRect(0,0,t,i)}drawText(e,t,i=this.EDGE_BUFFER,o=this.EDGE_BUFFER,a,l,d="normal",f="#000",s="center",c="middle"){e&&(document.fonts.status==="loaded"?this.drawTextInternal(e,t,i,o,a,l,d,f,s,c):this.fontsReadyPromise.then(()=>{this.drawTextInternal(e,t,i,o,a,l,d,f,s,c)}).catch(m=>{console.warn(`[Canvas Service] Font readiness failed: ${m}`),this.drawTextInternal(e,t,i,o,a,l,d,f,s,c)}))}drawTextInternal(e,t,i=this.EDGE_BUFFER,o=this.EDGE_BUFFER,a,l,d="normal",f="#000",s="center",c="middle"){let m=this.calculateOptimalFontSize(e,t,a,l,d);e.font=`${d} ${m}px ${this.DEFAULT_FONT}`,e.fillStyle=f,e.textAlign=s,e.textBaseline=c,e.fillText(t,i,o,a)}calculateOptimalFontSize(e,t,i,o,a="normal"){let l=1,d=o,f=d;for(;l<=d;)f=Math.floor((l+d)/2),e.font=`${a} ${f}px ${this.DEFAULT_FONT}`,e.measureText(t).width>i?d=f-1:l=f+1;return d}drawRectangle(e,t,i,o,a,l){e.fillStyle=l,e.fillRect(t,i,o,a)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var um=["canvas"],ui=(()=>{class r{text=G.required();color=G.required();canvasRef=Ce.required("canvas");canvas=M(Mt);canvasElement;canvasCtx;isReady=!1;constructor(){}ngAfterViewInit(){this.canvasElement=this.canvasRef().nativeElement,this.canvasElement&&(this.canvasCtx=this.canvasElement.getContext("2d"),this.canvas.setHighDPISize(this.canvasElement,this.canvasElement.parentElement.getBoundingClientRect())),this.isReady=!0,this.drawTitle()}ngOnChanges(e){(e.text||e.color)&&this.drawTitle()}onResized(e){this.canvas.setHighDPISize(this.canvasElement,e.contentRect),this.drawTitle()}drawTitle(){this.isReady&&this.canvas.drawTitle(this.canvasCtx,this.text(),this.color(),"normal",this.canvasElement.width,this.canvasElement.height)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-title"]],viewQuery:function(t,i){t&1&&we(i.canvasRef,um,5),t&2&&Ze()},inputs:{text:[1,"text"],color:[1,"color"]},features:[Gi],decls:3,vars:0,consts:[["canvas",""],[1,"textGenericWrapper",3,"onResize"]],template:function(t,i){if(t&1){let o=ee();v(0,"div",1),F("onResize",function(l){return z(o),V(i.onResized(l))}),B(1,"canvas",null,0),C()}},dependencies:[at,ot],styles:["[_nghost-%COMP%]{position:absolute;display:block;width:100%;height:100%;z-index:10}canvas[_ngcontent-%COMP%]{display:block}.textGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}"]})}return r})();var mm=["canvasValue"],cc=(()=>{class r extends Ne{canvasValue=Ce.required("canvasValue");canvas=M(Mt);dataValue=null;canvasCtx;labelColor=void 0;valueColor=void 0;isDestroyed=!1;maxTextWidth=0;maxTextHeight=0;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{stringPath:{description:"String Data",path:null,source:null,pathType:"string",isPathConfigurable:!0,sampleTime:500}},color:"contrast",enableTimeout:!1,dataTimeout:5},be(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.drawValue())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){let e=this.canvasValue().nativeElement;this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.parentElement.getBoundingClientRect()),this.canvasCtx=this.canvasValue().nativeElement.getContext("2d"),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.8),!this.isDestroyed&&this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.observeDataStream("stringPath",e=>{this.dataValue=e.data.value,this.drawValue()})}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.getColors(this.widgetProperties.config.color),this.drawValue()}ngOnDestroy(){this.isDestroyed=!0,this.destroyDataStreams(),this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvasValue().nativeElement.remove()}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.contentRect),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),!this.isDestroyed&&this.drawValue())}drawValue(){if(!this.canvasCtx)return;this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height);let e=this.dataValue===null?"--":this.dataValue;this.canvas.drawText(this.canvasCtx,e,Math.floor(this.canvasValue().nativeElement.width/2),Math.floor(this.canvasValue().nativeElement.height/2*1.15),this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor,"center","middle")}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-text"]],viewQuery:function(t,i){t&1&&we(i.canvasValue,mm,5),t&2&&Ze()},features:[pe],decls:5,vars:4,consts:[["canvasValue",""],[3,"configChange","config","id"],[1,"textGenericWrapper",3,"onResize"],[2,"z-index","inherit"],[3,"text","color"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"div",2),F("onResize",function(l){return z(o),V(i.onResized(l))}),B(2,"canvas",3,0)(4,"widget-title",4),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(4),j("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[We,at,ot,ui],styles:["canvas[_ngcontent-%COMP%]{display:block;position:absolute;top:0;left:0}.textGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}"]})}return r})();var pm=["canvasUnit"],fm=["canvasMinMax"],gm=["canvasValue"],Lo=(()=>{class r extends Ne{canvasUnit=Ce.required("canvasUnit");canvasMinMax=Ce.required("canvasMinMax");canvasValue=Ce.required("canvasValue");canvas=M(Mt);dataValue=null;maxValue=null;minValue=null;labelColor=void 0;valueColor=void 0;valueStateColor=void 0;maxValueTextWidth=0;maxValueTextHeight=0;maxMinMaxTextWidth=0;maxMinMaxTextHeight=0;flashInterval=null;isDestroyed=!1;canvasValCtx;canvasMinMaxCtx;canvasUnitCtx;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{numericPath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,convertUnitTo:"unitless",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:"contrast",enableTimeout:!1,dataTimeout:5,ignoreZones:!1},be(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.updateCanvas(),this.updateCanvasUnit())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){let e=this.canvasValue().nativeElement;this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.parentElement.getBoundingClientRect()),this.canvas.setHighDPISize(this.canvasUnit().nativeElement,e.parentElement.getBoundingClientRect()),this.canvas.setHighDPISize(this.canvasMinMax().nativeElement,e.parentElement.getBoundingClientRect()),this.canvasValCtx=this.canvasValue().nativeElement.getContext("2d"),this.canvasMinMaxCtx=this.canvasMinMax().nativeElement.getContext("2d"),this.canvasUnitCtx=this.canvasUnit().nativeElement.getContext("2d"),this.maxValueTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxValueTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),this.maxMinMaxTextWidth=Math.floor(this.canvasMinMax().nativeElement.width*.57),this.maxMinMaxTextHeight=Math.floor(this.canvasMinMax().nativeElement.height*.1),!this.isDestroyed&&(this.startWidget(),this.updateCanvasUnit())}startWidget(){this.unsubscribeDataStream(),this.minValue=null,this.maxValue=null,this.dataValue=null,this.getColors(this.widgetProperties.config.color),this.observeDataStream("numericPath",e=>{if(this.dataValue=e.data.value,this.minValue===null||this.dataValue<this.minValue?this.minValue=this.dataValue:(this.maxValue===null||this.dataValue>this.maxValue)&&(this.maxValue=this.dataValue),!this.widgetProperties.config.ignoreZones)switch(e.state){case ie.Alarm:this.valueStateColor=this.theme().zoneAlarm;break;case ie.Warn:this.valueStateColor=this.theme().zoneWarn;break;case ie.Alert:this.valueStateColor=this.theme().zoneAlert;break;default:this.valueStateColor=this.valueColor;break}this.updateCanvas()})}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.updateCanvas(),this.updateCanvasUnit()}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.contentRect),this.canvas.setHighDPISize(this.canvasUnit().nativeElement,e.contentRect),this.canvas.setHighDPISize(this.canvasMinMax().nativeElement,e.contentRect),this.maxValueTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxValueTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),this.maxMinMaxTextWidth=Math.floor(this.canvasMinMax().nativeElement.width*.57),this.maxMinMaxTextHeight=Math.floor(this.canvasMinMax().nativeElement.height*.1),!this.isDestroyed&&(this.updateCanvas(),this.updateCanvasUnit()))}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}this.valueStateColor=this.valueColor}ngOnDestroy(){this.isDestroyed=!0,this.destroyDataStreams(),this.flashInterval&&(clearInterval(this.flashInterval),this.flashInterval=null),this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvas.clearCanvas(this.canvasMinMaxCtx,this.canvasMinMax().nativeElement.width,this.canvasMinMax().nativeElement.height),this.canvas.clearCanvas(this.canvasUnitCtx,this.canvasUnit().nativeElement.width,this.canvasUnit().nativeElement.height)}updateCanvas(){this.canvasValCtx&&(this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.drawValue(),(this.widgetProperties.config.showMax||this.widgetProperties.config.showMin)&&(this.canvas.clearCanvas(this.canvasMinMaxCtx,this.canvasMinMax().nativeElement.width,this.canvasMinMax().nativeElement.height),this.drawMinMax()))}updateCanvasUnit(){this.canvasUnitCtx&&(this.canvas.clearCanvas(this.canvasUnitCtx,this.canvasUnit().nativeElement.width,this.canvasUnit().nativeElement.height),this.drawUnit())}drawValue(){let e=this.getValueText();this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvas.drawText(this.canvasValCtx,e,Math.floor(this.canvasValue().nativeElement.width/2),Math.floor(this.canvasValue().nativeElement.height/2*1.15),this.maxValueTextWidth,this.maxValueTextHeight,"bold",this.valueStateColor)}getValueText(){if(this.dataValue===null)return"--";let e=this.widgetProperties.config.paths.numericPath.convertUnitTo;return["latitudeSec","latitudeMin","longitudeSec","longitudeMin","D HH:MM:SS"].includes(e)?this.dataValue.toString():this.applyDecorations(this.dataValue.toFixed(this.widgetProperties.config.numDecimal))}drawUnit(){let e=this.widgetProperties.config.paths.numericPath.convertUnitTo;["unitless","percent","ratio","latitudeSec","latitudeMin","longitudeSec","longitudeMin"].includes(e)||this.canvas.drawText(this.canvasUnitCtx,e,Math.floor(this.canvasUnit().nativeElement.width-10*this.canvas.scaleFactor),Math.floor(this.canvasUnit().nativeElement.height-10*this.canvas.scaleFactor),Math.floor(this.canvasUnit().nativeElement.width*.25),Math.floor(this.canvasUnit().nativeElement.height*.15),"bold",this.valueColor,"end","alphabetic")}drawMinMax(){if(!this.widgetProperties.config.showMin&&!this.widgetProperties.config.showMax)return;let e="";this.widgetProperties.config.showMin&&(e=this.minValue!=null?` Min: ${this.applyDecorations(this.minValue.toFixed(this.widgetProperties.config.numDecimal))}`:" Min: --"),this.widgetProperties.config.showMax&&(e+=this.maxValue!=null?` Max: ${this.applyDecorations(this.maxValue.toFixed(this.widgetProperties.config.numDecimal))}`:" Max: --"),e=e.trim(),this.canvas.drawText(this.canvasMinMaxCtx,e,10*this.canvas.scaleFactor,Math.floor(this.canvasMinMax().nativeElement.height-10*this.canvas.scaleFactor),this.maxMinMaxTextWidth,this.maxMinMaxTextHeight,"normal",this.valueColor,"start","alphabetic")}applyDecorations(e){switch(this.widgetProperties.config.paths.numericPath.convertUnitTo){case"percent":case"percentraw":e+="%";break;default:break}return e}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-numeric"]],viewQuery:function(t,i){t&1&&(we(i.canvasUnit,pm,5),we(i.canvasMinMax,fm,5),we(i.canvasValue,gm,5)),t&2&&Ze(3)},features:[pe],decls:9,vars:4,consts:[["canvasUnit",""],["canvasValue",""],["canvasMinMax",""],[3,"configChange","config","id"],[1,"textGenericWrapper",3,"onResize"],[3,"text","color"],[1,"canvas"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",3),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"div",4),F("onResize",function(l){return z(o),V(i.onResized(l))}),B(2,"widget-title",5)(3,"canvas",6,0)(5,"canvas",6,1)(7,"canvas",6,2),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(2),j("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[We,at,ot,ui],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.textGenericWrapper[_ngcontent-%COMP%]{position:absolute;display:block;width:100%;height:100%;z-index:inherit}.canvas[_ngcontent-%COMP%]{display:block;position:absolute;top:0;left:0}"]})}return r})();var vm=["canvasValue"],Fo=(()=>{class r extends Ne{canvasValue=Ce.required("canvasValue");canvas=M(Mt);dataValue=null;_timeZoneGTM="";isDestroyed=!1;canvasCtx;labelColor=void 0;valueColor=void 0;maxTextWidth=0;maxTextHeight=0;constructor(){super(),this.defaultConfig={displayName:"Time Label",filterSelfPaths:!0,paths:{gaugePath:{description:"String Data",path:null,source:null,pathType:"Date",isPathConfigurable:!0,sampleTime:500}},dateFormat:"dd/MM/yyyy HH:mm:ss",dateTimezone:"Atlantic/Azores",color:"contrast",enableTimeout:!1,dataTimeout:5},be(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.drawValue())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.canvas.setHighDPISize(this.canvasValue().nativeElement,this.canvasValue().nativeElement.parentElement.getBoundingClientRect()),this.canvasCtx=this.canvasValue().nativeElement.getContext("2d"),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),!this.isDestroyed&&(this.getColors(this.widgetProperties.config.color),this.startWidget())}startWidget(){this._timeZoneGTM=this.getGMTOffset(this.widgetProperties.config.dateTimezone),this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{this.dataValue=e.data.value,this.drawValue()})}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.startWidget(),this.drawValue()}ngOnDestroy(){this.isDestroyed=!0,this.destroyDataStreams(),this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvasValue().nativeElement.remove()}getGMTOffset(e){try{if(e==="System Timezone -")return"";let o=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"short"}).formatToParts(new Date).find(a=>a.type==="timeZoneName");return o?o.value:"GMT"}catch(t){return console.error(`Error getting GMT offset for timezone "${e}":`,t),"GMT"}}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.contentRect),this.canvasCtx=this.canvasValue().nativeElement.getContext("2d"),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),!this.isDestroyed&&this.drawValue())}drawValue(){if(!this.canvasCtx)return;let e;if(this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),isNaN(Date.parse(this.dataValue)))e="--";else try{e=Wl(this.dataValue,this.widgetProperties.config.dateFormat,"en-US",this._timeZoneGTM)}catch(t){e=t,console.log("[Date Time Widget]: "+t)}this.canvas.drawText(this.canvasCtx,e,Math.floor(this.canvasValue().nativeElement.width/2),Math.floor(this.canvasValue().nativeElement.height/2*1.15),this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-datetime"]],viewQuery:function(t,i){t&1&&we(i.canvasValue,vm,5),t&2&&Ze()},features:[pe],decls:5,vars:4,consts:[["canvasValue",""],[3,"configChange","config","id"],[1,"dateGenericWrapper",3,"onResize"],[2,"z-index","inherit"],[3,"text","color"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"div",2),F("onResize",function(l){return z(o),V(i.onResized(l))}),B(2,"canvas",3,0)(4,"widget-title",4),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(4),j("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[We,at,ot,ui],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}canvas[_ngcontent-%COMP%]{position:absolute;display:block;top:0;left:0}.dateGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}"]})}return r})();var hc=(()=>{class r{data=G(null,{alias:"controlData"});theme=G(null);dimensions=G.required();toggleClick=$i();toggleOff="0 35 180 35";toggleOn="0 0 180 35";ctrlState=null;ctrlColor="";oldTheme=null;viewBox=this.toggleOff;labelColor=null;valueColor=null;constructor(){}ngDoCheck(){let e=this.data();e.value!=this.ctrlState&&(this.ctrlState=e.value,this.viewBox=e.value?this.toggleOn:this.toggleOff),e.color!=this.ctrlColor&&(this.ctrlColor=e.color,this.getColors(e.color));let t=this.theme();this.oldTheme!=t&&(this.oldTheme=t,this.getColors(e.color))}toggle(e){let t=this.data();t.value=e,this.toggleClick.emit(t)}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["app-svg-boolean-light"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:20,vars:8,consts:[["version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs1"],["id","linearGradient32"],["offset","0","id","stop32",2,"stop-color","#000000","stop-opacity","0.88486844"],["offset","1","id","stop33",2,"stop-color","#f7f7f7","stop-opacity","0.17763157"],[0,"xlink","href","#linearGradient32","id","linearGradient33","x1","7.0431595","y1","17.869596","x2","39.043159","y2","17.869596","gradientUnits","userSpaceOnUse"],["id","disabled","transform","translate(0,35)"],["width","180","height","35","id","rect1-5","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["x","0","y","0","width","175","height","35","viewBox","0 0 175 35"],["id","text1-5","x","47.083984","y","22.636719",2,"text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","disabledToogleControl"],["cx","18","cy","16","fill","#9f9f9f","id","circle3-7","r","13.5",2,"stroke-width","5","stroke","url(#linearGradient33)","stroke-opacity","0.2","stroke-dasharray","none"],["id","enabled"],["width","180","height","35","id","rect1","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","text1","x","47.083984","y","22.636719",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","enabledToogleControl"],["cx","18","cy","16","id","circle3","r","13.5",2,"stroke","url(#linearGradient33)","stroke-width","5","stroke-opacity","0.2","stroke-dasharray","none"]],template:function(t,i){t&1&&(Ke(),v(0,"svg",0)(1,"defs",1)(2,"linearGradient",2),B(3,"stop",3)(4,"stop",4),C(),B(5,"linearGradient",5),C(),v(6,"g",6),B(7,"rect",7),v(8,"svg",8)(9,"text",9),P(10),C()(),v(11,"g",10),B(12,"circle",11),C()(),v(13,"g",12),B(14,"rect",13),v(15,"svg",8)(16,"text",14),P(17),C()(),v(18,"g",15),B(19,"circle",16),C()()()),t&2&&(ce("height",i.dimensions().height)("width",i.dimensions().width)("viewBox",i.viewBox),D(9),ce("fill",i.labelColor),D(),pt(" ",i.data().ctrlLabel," "),D(6),ce("fill",i.valueColor),D(),pt("",i.data().ctrlLabel," "),D(2),ce("fill",i.valueColor))},encapsulation:2})}return r})();var uc=(()=>{class r{data=G(null,{alias:"controlData"});theme=G(null);dimensions=G.required();toggleClick=$i();toggleOff="0 35 180 35";toggleOn="0 0 180 35";oldTheme=null;timeoutHandler=null;pressed=!1;isSwiping=!1;pointerStartX=0;pointerStartY=0;viewBox=this.toggleOff;labelColorEnabled=null;labelColorDisabled=null;valueColor=null;ctrlColor="";ngDoCheck(){this.viewBox=this.pressed?this.toggleOn:this.toggleOff;let e=this.data();e.color!=this.ctrlColor&&(this.ctrlColor=e.color,this.getColors(e.color));let t=this.theme();this.oldTheme!=t&&(this.oldTheme=t,this.getColors(this.data().color))}handleClickDown(e){this.isSwiping=!1,this.pointerStartX=e.clientX,this.pointerStartY=e.clientY,this.timeoutHandler=setTimeout(()=>{if(!this.isSwiping){this.pressed=!0;let t=Kn(this.data());t.value=this.pressed,this.toggleClick.emit(t),this.timeoutHandler=setInterval(()=>{this.toggleClick.emit(t)},100)}},200)}handlePointerMove(e){let t=Math.abs(e.clientX-this.pointerStartX),i=Math.abs(e.clientY-this.pointerStartY);(t>30||i>30)&&(this.isSwiping=!0,this.timeoutHandler&&(clearTimeout(this.timeoutHandler),this.timeoutHandler=null))}handleClickUp(){if(this.isSwiping){this.isSwiping=!1;return}this.pressed=!1,this.timeoutHandler&&(clearInterval(this.timeoutHandler),this.timeoutHandler=null)}getColors(e){switch(e){case"contrast":this.labelColorEnabled="black",this.labelColorDisabled=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColorEnabled="black",this.labelColorDisabled=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["app-svg-boolean-button"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:15,vars:8,consts:[["version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs9"],[3,"pointerup","pointerleave","pointerdown","pointermove"],["id","disabled","transform","translate(0,35)"],["id","clickRecDisabled","width","180","height","35","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","buttonDisabled","width","165.02518","height","25.025183","rx","3.6672263","x","7.4874101","y","4.9874086",2,"display","inline","mix-blend-mode","normal","fill","#9f9f9f","fill-opacity","0.972549","stroke","#ffffff","stroke-width","1.5","stroke-dasharray","none","stroke-opacity","0.2"],["x","12","y","0","width","156","height","35","viewBox","0 0 156 35"],["id","textDisabled","x","77.968102","y","22",2,"text-anchor","middle","text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["id","enabled"],["width","180","height","35","id","rect1","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","buttonEnabled","width","165.02518","height","25.025183","rx","3.6672263","x","5.9874086","y","4.9874086","transform","translate(1.5)",2,"display","inline","opacity","1","mix-blend-mode","normal","stroke","#000000","stroke-width","1.5","stroke-dasharray","none","stroke-opacity","0.2"],["id","textEnabled","x","77.968102","y","22",2,"text-anchor","middle","text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"]],template:function(t,i){t&1&&(Ke(),v(0,"svg",0),B(1,"defs",1),v(2,"g",2),F("pointerup",function(){return i.handleClickUp()})("pointerleave",function(){return i.handleClickUp()})("pointerdown",function(a){return i.handleClickDown(a)})("pointermove",function(a){return i.handlePointerMove(a)}),v(3,"g",3),B(4,"rect",4)(5,"rect",5),v(6,"svg",6)(7,"text",7),P(8),C()()(),v(9,"g",8),B(10,"rect",9)(11,"rect",10),v(12,"svg",6)(13,"text",11),P(14),C()()()()()),t&2&&(ce("height",i.dimensions().height)("width",i.dimensions().width)("viewBox",i.viewBox),D(7),ce("fill",i.labelColorDisabled),D(),pt(" ",i.data().ctrlLabel," "),D(3),ce("fill",i.valueColor),D(2),ce("fill",i.labelColorEnabled),D(),pt(" ",i.data().ctrlLabel," "))},encapsulation:2})}return r})();var mc=(()=>{class r{data=G(null,{alias:"controlData"});theme=G(null);dimensions=G.required();toggleClick=$i();toggleOff="0 35 180 35";toggleOn="0 0 180 35";ctrlState=null;oldTheme=null;isSwiping=!1;pointerStartX=0;pointerStartY=0;viewBox=this.toggleOff;labelColor=null;valueColor=null;ctrlColor="";constructor(){}ngDoCheck(){let e=this.data();e.value!=this.ctrlState&&(this.ctrlState=e.value,this.viewBox=e.value?this.toggleOn:this.toggleOff),e.color!=this.ctrlColor&&(this.ctrlColor=e.color,this.getColors(e.color));let t=this.theme();this.oldTheme!=t&&(this.oldTheme=t,this.getColors(e.color))}onPointerDown(e){this.isSwiping=!1,this.pointerStartX=e.clientX,this.pointerStartY=e.clientY}onPointerMove(e){let t=Math.abs(e.clientX-this.pointerStartX),i=Math.abs(e.clientY-this.pointerStartY);(t>30||i>30)&&(this.isSwiping=!0)}onPointerUp(e,t){if(this.isSwiping){this.isSwiping=!1;return}this.toggle(t)}toggle(e){let t=this.data();t.value=e,this.toggleClick.emit(t)}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["app-svg-boolean-switch"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:18,vars:8,consts:[["version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs9"],["id","disabled","transform","translate(0,35)",3,"pointerdown","pointermove","pointerup"],["width","180","height","35","id","rect1-5","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["x","0","y","0","width","175","height","35","viewBox","0 0 175 35"],["id","text1-5","x","47.083984","y","22.636719",2,"text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","disabledToogleControl"],["width","37.714306","height","22","rx","10.999999","id","rect3-4","x","0","y","5",2,"stroke-width","1.57144","fill","#9f9f9f","fill-opacity","0.97216702"],["cx","11.5","cy","16","fill","#ffffff","id","circle3-7","r","10",2,"stroke-width","1.5","stroke","black","stroke-opacity","0.2","stroke-dasharray","none"],["id","enabled",3,"pointerdown","pointermove","pointerup"],["width","180","height","35","id","rect1","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","text1","x","47.083984","y","22.636719",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","enabledToogleControl"],["width","37.714306","height","22","rx","10.999999","id","rect3","x","0","y","5",2,"stroke-width","1.57144"],["cx","26.5","cy","16","fill","#ffffff","id","circle3","r","10",2,"stroke-width","1.5","stroke","black","stroke-opacity","0.2","stroke-dasharray","none"]],template:function(t,i){t&1&&(Ke(),v(0,"svg",0),B(1,"defs",1),v(2,"g",2),F("pointerdown",function(a){return i.onPointerDown(a)})("pointermove",function(a){return i.onPointerMove(a)})("pointerup",function(a){return i.onPointerUp(a,!0)}),B(3,"rect",3),v(4,"svg",4)(5,"text",5),P(6),C()(),v(7,"g",6),B(8,"rect",7)(9,"circle",8),C()(),v(10,"g",9),F("pointerdown",function(a){return i.onPointerDown(a)})("pointermove",function(a){return i.onPointerMove(a)})("pointerup",function(a){return i.onPointerUp(a,!1)}),B(11,"rect",10),v(12,"svg",4)(13,"text",11),P(14),C()(),v(15,"g",12),B(16,"rect",13)(17,"circle",14),C()()()),t&2&&(ce("height",i.dimensions().height)("width",i.dimensions().width)("viewBox",i.viewBox),D(5),ce("fill",i.labelColor),D(),pt(" ",i.data().ctrlLabel," "),D(7),ce("fill",i.valueColor),D(),pt("",i.data().ctrlLabel," "),D(2),ce("fill",i.valueColor))},encapsulation:2})}return r})();function ym(r,n){if(r&1){let e=ee();v(0,"app-svg-boolean-switch",6),F("toggleClick",function(i){z(e);let o=re(2);return V(o.toggle(i))}),C()}if(r&2){let e=re().$implicit,t=re();j("controlData",e)("theme",t.theme())("dimensions",t.ctrlDimensions)}}function bm(r,n){if(r&1){let e=ee();v(0,"app-svg-boolean-button",6),F("toggleClick",function(i){z(e);let o=re(2);return V(o.toggle(i))}),C()}if(r&2){let e=re().$implicit,t=re();j("controlData",e)("theme",t.theme())("dimensions",t.ctrlDimensions)}}function _m(r,n){if(r&1){let e=ee();v(0,"app-svg-boolean-light",6),F("toggleClick",function(i){z(e);let o=re(2);return V(o.toggle(i))}),C()}if(r&2){let e=re().$implicit,t=re();j("controlData",e)("theme",t.theme())("dimensions",t.ctrlDimensions)}}function wm(r,n){if(r&1&&(co(0),Ae(1,ym,1,3,"app-svg-boolean-switch",5)(2,bm,1,3,"app-svg-boolean-button",5)(3,_m,1,3,"app-svg-boolean-light",5),ho()),r&2){let e,t=n.$implicit;D(),Oe((e=t.type)==="1"?1:e==="2"?2:e==="3"?3:-1)}}function Cm(r,n){r&1&&B(0,"div",4)}var pc=(()=>{class r extends Ne{dashboard=M(ct);signalkRequestsService=M(tn);appService=M(Dt);switchControls=Ye([]);skRequestSub=new no;labelColor=void 0;nbCtrl=null;ctrlDimensions={width:0,height:0};constructor(){super(),this.defaultConfig={displayName:"Switch Panel Label",filterSelfPaths:!0,paths:[],enableTimeout:!1,dataTimeout:5,color:"contrast",putEnable:!0,putMomentary:!1,multiChildCtrls:[]},be(()=>{this.theme()&&this.getColors(this.widgetProperties.config.color)})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.startWidget()}startWidget(){this.nbCtrl=this.widgetProperties.config.multiChildCtrls.length,this.switchControls.set([]),this.widgetProperties.config.multiChildCtrls.forEach(e=>{e.isNumeric||(e.isNumeric=!1),this.switchControls().push(X({},e))}),this.unsubscribeDataStream();for(let e in this.switchControls())if(Object.prototype.hasOwnProperty.call(this.switchControls(),e)){let t=this.switchControls()[e];this.observeDataStream(e,i=>{t.isNumeric?[0,1,null].includes(i.data.value)&&(t.value=!!i.data.value):t.value=i.data.value})}this.skRequestSub?.unsubscribe(),this.subscribeSKRequest()}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.startWidget()}onResized(e){let t=e.contentRect.height/this.nbCtrl,i=35*e.contentRect.width/180,o=i<t?i:t;this.ctrlDimensions={width:e.contentRect.width,height:o}}subscribeSKRequest(){this.skRequestSub=this.signalkRequestsService.subscribeRequest().subscribe(e=>{if(e.widgetUUID==this.widgetProperties.uuid){let t=`Toggle Widget ${this.widgetProperties.config.displayName}: `;e.statusCode!=200&&(e.message?t+=e.message:t+=e.statusCode+" - "+e.statusCodeDescription,this.appService.sendSnackbarNotification(t,0))}})}toggle(e){let i=this.widgetProperties.config.paths.findIndex(o=>o.pathID==e.pathID);e.isNumeric?this.signalkRequestsService.putRequest(this.widgetProperties.config.paths[i].path,e.value?1:0,this.widgetProperties.uuid):this.signalkRequestsService.putRequest(this.widgetProperties.config.paths[i].path,e.value,this.widgetProperties.uuid)}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim;break;case"blue":this.labelColor=this.theme().blueDim;break;case"green":this.labelColor=this.theme().greenDim;break;case"pink":this.labelColor=this.theme().pinkDim;break;case"orange":this.labelColor=this.theme().orangeDim;break;case"purple":this.labelColor=this.theme().purpleDim;break;case"grey":this.labelColor=this.theme().greyDim;break;case"yellow":this.labelColor=this.theme().yellowDim;break;default:this.labelColor=this.theme().contrastDim;break}}ngOnDestroy(){this.destroyDataStreams(),this.skRequestSub?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-boolean-switch"]],features:[pe],decls:7,vars:5,consts:[["widgetContainer",""],[3,"configChange","config","id"],[3,"text","color"],[1,"widgets-container",3,"onResize"],[1,"widgetOverlay"],[1,"svg-widget",3,"controlData","theme","dimensions"],[1,"svg-widget",3,"toggleClick","controlData","theme","dimensions"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),B(1,"widget-title",2),v(2,"div",3,0),F("onResize",function(l){return z(o),V(i.onResized(l))}),ki(4,wm,4,1,"ng-container",null,Gn),C(),Ae(6,Cm,1,0,"div",4),C()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("text",i.widgetProperties.config.displayName)("color",i.labelColor),D(3),Ti(i.switchControls()),D(2),Oe(i.dashboard.isDashboardStatic()?-1:6))},dependencies:[We,at,ot,mc,uc,hc,ui],styles:[".widgets-container[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20}.svg-widget[_ngcontent-%COMP%]{display:flex}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}"]})}return r})();function Pi(r,n,e,t=1e3,i,o,a=[500,500]){if(o){let _=o.get(r);_&&cancelAnimationFrame(_)}n=(()=>{let _=r.getAttribute("transform");if(_){let T=/rotate\((-?\d+(\.\d+)?)/.exec(_);if(T)return parseFloat(T[1])}return n})();let d=_=>(_+360)%360;n=d(n),e=d(e);let f=e-n;f>180&&(f-=360),f<-180&&(f+=360);let s=_=>_<.5?4*_*_*_:1-Math.pow(-2*_+2,3)/2,c=performance.now(),m=_=>{let T=_-c,E=Math.min(T/t,1),L=s(E),Y=n+f*L;if(r.setAttribute("transform",`rotate(${Y} ${a[0]} ${a[1]})`),E<1){let te=requestAnimationFrame(m);o&&o.set(r,te)}else r.setAttribute("transform",`rotate(${e} ${a[0]} ${a[1]})`),i&&i(),o&&o.delete(r)},y=requestAnimationFrame(m);o&&o.set(r,y)}function Br(r,n,e,t=500,i,o){if(o){let c=o.get(r);c&&cancelAnimationFrame(c)}let a=performance.now(),l=e-n,d=c=>c<.5?4*c*c*c:1-Math.pow(-2*c+2,3)/2,f=c=>{let m=c-a,y=Math.min(m/t,1),_=d(y),T=n+l*_;if(r.setAttribute("width",T.toString()),y<1){let E=requestAnimationFrame(f);o&&o.set(r,E)}else r.setAttribute("width",e.toString()),i&&i(),o&&o.delete(r)},s=requestAnimationFrame(f);o&&o.set(r,s)}var Sm=["rotatingDial"],km=["awaIndicator"],Tm=["rudderStarboardRect"],xm=["rudderPortRect"],fc=(()=>{class r{rotatingDial=Ce.required("rotatingDial");awaIndicator=Ce.required("awaIndicator");rudderStarboardRect=Ce.required("rudderStarboardRect");rudderPortRect=Ce.required("rudderPortRect");apState=G("off-line");targetPilotHeading=G.required();targetWindAngleHeading=G.required();rudderAngle=G.required();courseXte=G.required();compassHeading=G.required();appWindAngle=G.required();targetPilotHeadingTrue=G.required();headingDirectionTrue=G.required();compass={oldValue:0,newValue:0};awa={oldValue:0,newValue:0};oldRudderPrtAngle=0;newRudderPrtAngle=0;oldRudderStbAngle=0;newRudderStbAngle=0;apModeValue=Ye("");apModeValueAnnotation=Ye("");apModeValueDirection=Ye("");apTWA=xi(()=>{let e=parseFloat(this.targetWindAngleHeading().toFixed(0));if(e!=null)return e});lockedMode=xi(()=>{switch(this.apState()){case"auto":return"Heading Hold";case"route":return"Track";case"wind":return"Wind Hold";case"standby":return"Standby";default:return"Off-line"}});lockedHdg=xi(()=>{let e=parseFloat(this.targetPilotHeading().toFixed(0)),t=parseFloat(this.targetWindAngleHeading().toFixed(0));switch(this.apState()){case"auto":return e;case"route":return e;case"wind":return t;default:return"--"}});lockedHdgAnnotation=xi(()=>{let e=this.apState();return e==="route"||e==="auto"?this.targetPilotHeadingTrue()?"True":"Mag":e==="wind"&&typeof this.lockedHdg()=="number"?this.lockedHdg()>0?"Stbd":"Port":""});hdgDirectionTrue=xi(()=>this.headingDirectionTrue()?"T":"M");animationFrameIds=new WeakMap;rudderAnimationFrames=new WeakMap;ANIMATION_DURATION=1e3;DEG_TO_PX=16.66666667;constructor(){be(()=>{if(this.compassHeading()===null||this.compassHeading()===void 0)return;let e=parseFloat(this.compassHeading().toFixed(0));Et(()=>{this.compass.oldValue=this.compass.newValue,this.compass.newValue=e,this.rotatingDial()?.nativeElement&&Pi(this.rotatingDial().nativeElement,-this.compass.oldValue,-this.compass.newValue,500,void 0,this.animationFrameIds,[500,560.061])})}),be(()=>{let t=(parseFloat(this.appWindAngle().toFixed(0))+360)%360;Et(()=>{this.awa.oldValue=this.awa.newValue,this.awa.newValue=t,this.awaIndicator()?.nativeElement&&Pi(this.awaIndicator().nativeElement,this.awa.oldValue,this.awa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,[500,560.061])})}),be(()=>{let e=this.rudderAngle();e!=null&&Et(()=>{this.updateRudderAngle(-e)})}),be(()=>{let e=this.apState(),t=parseFloat(this.appWindAngle().toFixed(0)),i=this.courseXte();Et(()=>{switch(e){case"auto":case"route":{let o,a,l;i<0?l=" Port":i>0?l=" Stbd":l="",i=Math.abs(i),i>999?(o=(i/1e3).toFixed(1),a=" km"):(o=i.toFixed(0),a=" m"),this.apModeValueAnnotation.set(a),this.apModeValue.set(o),this.apModeValueDirection.set(l);break}case"standby":this.apModeValueAnnotation.set(""),this.apModeValue.set(""),this.apModeValueDirection.set("");break;case"wind":this.apModeValueAnnotation.set(t?t>0?"S":"P":""),this.apModeValue.set(Math.abs(t)+"\xB0"),this.apModeValueDirection.set("");break;default:this.apModeValueAnnotation.set(""),this.apModeValue.set(""),this.apModeValueDirection.set("");break}})})}updateRudderAngle(e){let i=Math.min(Math.abs(e),30)*this.DEG_TO_PX;e<=0?(Br(this.rudderStarboardRect().nativeElement,this.oldRudderStbAngle,i,500,void 0,this.rudderAnimationFrames),Br(this.rudderPortRect().nativeElement,this.oldRudderPrtAngle,0,500,void 0,this.rudderAnimationFrames),this.oldRudderStbAngle=i,this.oldRudderPrtAngle=0):(Br(this.rudderPortRect().nativeElement,this.oldRudderPrtAngle,i,500,void 0,this.rudderAnimationFrames),Br(this.rudderStarboardRect().nativeElement,this.oldRudderStbAngle,0,500,void 0,this.rudderAnimationFrames),this.oldRudderPrtAngle=i,this.oldRudderStbAngle=0)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["app-svg-autopilot"]],viewQuery:function(t,i){t&1&&(we(i.rotatingDial,Sm,5),we(i.awaIndicator,km,5),we(i.rudderStarboardRect,Tm,5),we(i.rudderPortRect,xm,5)),t&2&&Ze(4)},inputs:{apState:[1,"apState"],targetPilotHeading:[1,"targetPilotHeading"],targetWindAngleHeading:[1,"targetWindAngleHeading"],rudderAngle:[1,"rudderAngle"],courseXte:[1,"courseXte"],compassHeading:[1,"compassHeading"],appWindAngle:[1,"appWindAngle"],targetPilotHeadingTrue:[1,"targetPilotHeadingTrue"],headingDirectionTrue:[1,"headingDirectionTrue"]},decls:123,vars:17,consts:[["rotatingDial",""],["awaIndicator",""],["rudderStarboardRect",""],["rudderPortRect",""],["viewBox","0 0 1000 500","preserveAspectRatio","xMidYMid meet"],["id","compassDial"],["id","fixedDial"],["d","M 499.99997,70.521 A 489.47916,489.47916 0 0 0 10.520805,560.00017 489.47916,489.47916 0 0 0 499.99997,1049.4793 489.47916,489.47916 0 0 0 989.47913,560.00017 489.47916,489.47916 0 0 0 499.99997,70.521 Z m 0,132.29166 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"fixed-dial-background",2,"display","inline","stroke","none"],["d","M 93.283801,325.18249 A 469.63541,469.63541 0 0 1 339.37522,118.68726",1,"port",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["d","M 660.62476,118.68725 A 469.63541,469.63541 0 0 1 906.71619,325.18247",1,"starboard",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],[2,"display","inline"],["transform","translate(0,59.999714)"],["d","m 416.35095,19.837399 2.78142,15.77426","id","path199",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 334.23173,41.658798 5.47834,15.051615","id","path200",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 260.27336,81.806174 12.55151,21.739856","id","path37",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 187.44581,126.00035 10.29591,12.2702","id","path197",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 127.23918,185.95785 12.27019,10.29591","id","path198",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 83.252815,257.66724 21.739865,12.55151","id","path166",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 42.289518,332.39273 15.05162,5.47835","id","path195",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 20.127799,414.42077 15.774251,2.78142","id","path196",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 17.879075,498.47765 H 42.982096","id","path167",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 19.776759,583.71187 15.77426,-2.78142","id","path193",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 41.598167,665.8311 15.051615,-5.47834","id","path194",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 81.668963,739.71246 103.40883,727.16095","id","path168",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 125.93981,812.61701 12.2702,-10.29591","id","path191",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 185.89732,872.82365 10.29591,-12.27019","id","path192",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 257.53004,916.73298 12.55151,-21.73985","id","path169",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 332.33219,957.7732 5.47835,-15.05162","id","path189",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 414.36024,979.93493 2.78142,-15.77425","id","path190",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 498.34046,982.10672 V 957.0037","id","path170",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 583.65133,980.28596 580.86991,964.5117","id","path187",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 665.77057,958.46456 -5.47834,-15.05161","id","path188",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 739.57526,918.31683 727.02375,896.57698","id","path171",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 812.55647,874.12301 802.26056,861.85282","id","path185",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 872.76312,814.16551 860.49293,803.8696","id","path186",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 916.59579,742.45577 894.85593,729.90426","id","path172",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 957.71266,667.73063 -15.05161,-5.47834","id","path183",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 979.8744,585.70259 -15.77425,-2.78142","id","path184",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 981.96954,501.64535 -25.10304,10e-6","id","path173",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 980.22542,416.41149 -15.77425,2.78143","id","path181",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 958.40403,334.29226 -15.05161,5.47834","id","path182",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 918.17964,260.41055 -21.73986,12.55151","id","path174",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 874.06247,187.50636 -12.27018,10.29591","id","path180",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 817.34594,130.05494 -10.40259,12.17987","id","path179",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 742.31857,83.390025 729.76706,105.12988","id","path175",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 667.6701,42.350172 -5.47834,15.051615","id","path178",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 585.64206,20.188432 -2.78142,15.77425","id","path176",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 501.50816,18.016286 V 43.119307","id","path177",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","lightGray","d","M 499.99997,50.208304 A 449.79166,449.79166 0 0 0 50.208304,499.99997 449.79166,449.79166 0 0 0 499.99997,949.79163 449.79166,449.79166 0 0 0 949.79163,499.99997 449.79166,449.79166 0 0 0 499.99997,50.208304 Z m 0,92.604166 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"rotating-dial-Backplate",2,"display","inline","fill-opacity","1","stroke","none"],[0,"xml","space","preserve","x","181.91386","y","284.25186","id","text3","transform","rotate(-30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan3","x","181.91386","y","284.25186",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-183.53558","y","283.74811","id","text14","transform","rotate(-60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan14","x","-183.53558","y","283.74811",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-499.70761","y","100.95312","id","text15","transform","rotate(-90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan15","x","-499.70761","y","100.95312",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.66119","y","-216.36243","id","text16","transform","rotate(-120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["x","-681.66119","y","-216.36243","id","tspan25",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.06616","y","-581.71271","id","text17","transform","rotate(-150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan17","x","-681.06616","y","-581.71271",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-498.3313","y","-897.40875","id","text18","transform","scale(-1)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan18","x","-498.3313","y","-897.40875",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-184.41313","y","-1080.8452","id","text19","transform","rotate(150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan19","x","-184.41313","y","-1080.8452",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","181.57225","y","-1080.8853","id","text20","transform","rotate(120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan20","x","181.57225","y","-1080.8853",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","501.42661","y","-896.93701","id","text21","transform","rotate(90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan21","x","501.42661","y","-896.93701",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","682.35815","y","-579.63336","id","text22","transform","rotate(60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan22","x","682.35815","y","-579.63336",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","681.81525","y","-214.27321","id","text23","transform","rotate(30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan23","x","681.81525","y","-214.27321",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","500.15503","y","101.96342","id","text24",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan24","x","500.15503","y","101.96342",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],["id","triangle","d","M 499.5601,155 450,197 h 100 z",1,"fixed-dial-background",2,"display","inline","stroke","none"],["id","counterAWA",2,"display","inline"],[0,"xml","space","preserve","x","910.14893","y","90.67927",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[0,"xml","space","preserve","x","907.84814","y","160.33212",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","73.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","33.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],[0,"xml","space","preserve","x","910.14893","y","200",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","34.6667px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[0,"xml","space","preserve","x","97","y","90.47614",1,"contrast-text-dim",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","33.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[0,"xml","space","preserve","x","109.25","y","160.33212",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","73.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["id","displayArea",2,"display","inline"],[0,"xml","space","preserve","x","523.93127","y","475.13757",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","240px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["dy","-38",2,"font-weight","normal","font-size","180px"],[0,"xml","space","preserve","x","720","y","484",1,"contrast-text-dim",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","33.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","fill-opacity","1","stroke","none"],[0,"xml","space","preserve","x","500","y","280",1,"contrast-text-dim",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","45px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none"],["id","IndicatorsLayer",2,"display","inline"],["transform","matrix(0.78967872,0,0,0.78967872,95.846484,6.0520865)"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.7935953,0,0,0.92686935,113.64335,37.878309)",1,"awa-text",2,"stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","486.45618","y","136.29939",1,"card-color",2,"font-weight","bold","font-size","52.9167px","stroke","none"],["id","tspan8","x","486.45618","y","136.29939",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","70.5556px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","fill","#001000","fill-opacity","1","stroke","none","stroke-width","14.5521"],["id","rudder",2,"display","inline"],["width","0","height","35","x","500","y","0",1,"rudderStarboard",2,"display","inline","opacity","1","fill-opacity","1","stroke","none"],["width","0","height","35","x","-500","y","0","transform","scale(-1,1)",1,"rudderPort",2,"display","inline","opacity","1","fill-opacity","1","stroke","none"],["width","331.54941","height","33.216152","x","167.55841","y","0.89179999",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["width","331.54941","height","33.216152","x","500.89182","y","0.89179999",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["width","331.54941","height","33.216152","x","334.22531","y","0.89179999",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","rect12","width","998.26178","height","33.261108","x","0.86909997","y","0.86909997",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"]],template:function(t,i){t&1&&(Ke(),v(0,"svg",4)(1,"g",5)(2,"g",6),B(3,"path",7)(4,"path",8)(5,"path",9),C(),v(6,"g",10,0)(8,"g",11),B(9,"path",12)(10,"path",13)(11,"path",14)(12,"path",15)(13,"path",16)(14,"path",17)(15,"path",18)(16,"path",19)(17,"path",20)(18,"path",21)(19,"path",22)(20,"path",23)(21,"path",24)(22,"path",25)(23,"path",26)(24,"path",27)(25,"path",28)(26,"path",29)(27,"path",30)(28,"path",31)(29,"path",32)(30,"path",33)(31,"path",34)(32,"path",35)(33,"path",36)(34,"path",37)(35,"path",38)(36,"path",39)(37,"path",40)(38,"path",41)(39,"path",42)(40,"path",43)(41,"path",44)(42,"path",45)(43,"path",46)(44,"path",47)(45,"path",48),v(46,"text",49)(47,"tspan",50),P(48,"330"),C()(),v(49,"text",51)(50,"tspan",52),P(51,"300"),C()(),v(52,"text",53)(53,"tspan",54),P(54,"W"),C()(),v(55,"text",55)(56,"tspan",56),P(57,"240"),C()(),v(58,"text",57)(59,"tspan",58),P(60,"210"),C()(),v(61,"text",59)(62,"tspan",60),P(63,"S"),C()(),v(64,"text",61)(65,"tspan",62),P(66,"150"),C()(),v(67,"text",63)(68,"tspan",64),P(69,"120"),C()(),v(70,"text",65)(71,"tspan",66),P(72,"E"),C()(),v(73,"text",67)(74,"tspan",68),P(75,"60"),C()(),v(76,"text",69)(77,"tspan",70),P(78,"30"),C()(),v(79,"text",71)(80,"tspan",72),P(81,"N"),C()()()(),B(82,"path",73),C(),v(83,"g",74)(84,"text",75),P(85),C(),v(86,"text",76),P(87),v(88,"tspan",77),P(89),C()(),v(90,"text",78),P(91),C(),v(92,"text",79),P(93,"HDG"),C(),v(94,"text",80),P(95),v(96,"tspan",77),P(97),C()()(),v(98,"g",81)(99,"text",82),P(100),v(101,"tspan",83),P(102,"\xB0"),C()(),v(103,"text",84),P(104),C(),v(105,"text",85),P(106),C()(),v(107,"g",86)(108,"g",87,1),B(110,"path",88),v(111,"text",89)(112,"tspan",90),P(113,"A"),C()()()(),v(114,"g",91),B(115,"rect",92,2)(117,"rect",93,3)(119,"rect",94)(120,"rect",95)(121,"rect",96)(122,"rect",97),C()()),t&2&&(D(84),qn(i.apState()=="wind"?"awa-text-dim":"contrast-text-dim"),ce("display",i.apState()=="wind"||i.apState()=="route"?"inline":"none"),D(),pt(" ",i.apState()==="route"?"XTE":"AWA"),D(),qn(i.apState()=="wind"?"awa-text":"contrast-text"),ce("display",i.apState()=="wind"||i.apState()=="route"?"inline":"none"),D(),rt(i.apModeValue()),D(2),rt(i.apModeValueAnnotation()),D(),ce("display",i.apState()=="route"?"inline":"none"),D(),rt(i.apModeValueDirection()),D(4),pt("",i.compass.newValue,"\xB0"),D(2),rt(i.hdgDirectionTrue()),D(3),rt(i.lockedHdg()),D(4),rt(i.lockedHdgAnnotation()),D(2),rt(i.lockedMode()),D(2),ce("display",i.apState()=="wind"?"inline":"none"))},styles:["[_nghost-%COMP%]{display:block;width:100%;font-family:Roboto;overflow:hidden;aspect-ratio:2/1;max-width:100%;max-height:100%}svg[_ngcontent-%COMP%]{width:100%;height:100%;display:block;overflow:hidden}.starboard[_ngcontent-%COMP%]{stroke:var(--kip-starboard-color)}.port[_ngcontent-%COMP%]{stroke:var(--kip-port-color)}.contrast-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:var(--kip-contrast-color)}.contrast-text-dim[_ngcontent-%COMP%]{fill:var(--kip-contrast-dim-color);stroke:var(--kip-contrast-dim-color)}.awa-text[_ngcontent-%COMP%]{fill:var(--kip-orange-color);stroke:var(--kip-orange-color)}.awa-text-dim[_ngcontent-%COMP%]{fill:var(--kip-orange-dim-color);stroke:var(--kip-orange-dim-color)}.card-color[_ngcontent-%COMP%]{fill:var(--kip-widget-card-background-color)}.fixed-dial-background[_ngcontent-%COMP%]{fill:var(--kip-grey-color)}.rotating-dial-Backplate[_ngcontent-%COMP%]{fill:var(--mat-sys-background)}.rudderPort[_ngcontent-%COMP%]{fill:var(--kip-port-color)}.rudderStarboard[_ngcontent-%COMP%]{fill:var(--kip-starboard-color)}.boxes[_ngcontent-%COMP%]{stroke:var(--kip-grey-color);fill:var(--kip-grey-color)}"]})}return r})();var Em=["canvasValue"],Ho=(()=>{class r extends Ne{canvasValue=Ce.required("canvasValue");canvas=M(Mt);latPos="";longPos="";labelColor=void 0;valueColor=void 0;maxTextWidth=0;maxTextHeight=0;middle=0;center=0;fontSizeOffset=0;canvasValCtx;isDestroyed=!1;constructor(){super(),this.defaultConfig={displayName:"Position",filterSelfPaths:!0,paths:{longPath:{description:"Longitude",path:"self.navigation.position.longitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"longitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500},latPath:{description:"Latitude",path:"self.navigation.position.latitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"latitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},color:"contrast",enableTimeout:!1,dataTimeout:5},be(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.drawValue())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.canvas.setHighDPISize(this.canvasValue().nativeElement,this.canvasValue().nativeElement.parentElement.getBoundingClientRect()),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.6/2),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.canvasValCtx=this.canvasValue().nativeElement.getContext("2d"),this.calculateFontSizeAndPositions(),!this.isDestroyed&&this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.observeDataStream("longPath",e=>{e.data.value===null?this.longPos="":this.widgetProperties.config.paths.longPath.convertUnitTo==="pdeg"?this.longPos=e.data.value.toFixed(6)+"\xB0":this.longPos=e.data.value.toString(),this.drawValue()}),this.observeDataStream("latPath",e=>{e.data.value===null?this.latPos="":this.widgetProperties.config.paths.latPath.convertUnitTo==="pdeg"?this.latPos=e.data.value.toFixed(7)+"\xB0":this.latPos=e.data.value.toString(),this.drawValue()})}ngOnDestroy(){this.isDestroyed=!0,this.unsubscribeDataStream(),this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvasValue().nativeElement.remove()}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.startWidget()}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,this.canvasValue().nativeElement.parentElement.getBoundingClientRect()),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.6/2),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.calculateFontSizeAndPositions(),this.drawValue())}getColors(e){switch(e){case"white":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}calculateFontSizeAndPositions(){this.center=this.canvasValue().nativeElement.width/2,this.middle=this.canvasValue().nativeElement.height*.57;let e=this.latPos.length>this.longPos.length?this.latPos:this.longPos,t=this.canvas.calculateOptimalFontSize(this.canvasValCtx,e,this.maxTextWidth,this.maxTextHeight,"bold");this.fontSizeOffset=Math.floor(t*5e-4)}drawValue(){this.canvasValCtx&&(this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvas.drawText(this.canvasValCtx,this.latPos,this.center,this.middle-this.fontSizeOffset,this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor,"center","bottom"),this.canvas.drawText(this.canvasValCtx,this.longPos,this.center,this.middle+this.fontSizeOffset,this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor,"center","top"))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-position"]],viewQuery:function(t,i){t&1&&we(i.canvasValue,Em,5),t&2&&Ze()},features:[pe],decls:5,vars:4,consts:[["canvasValue",""],[3,"configChange","config","id"],[3,"text","color"],[1,"textGenericWrapper",3,"onResize"],[1,"canvas"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),B(1,"widget-title",2),v(2,"div",3),F("onResize",function(l){return z(o),V(i.onResized(l))}),B(3,"canvas",4,0),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[We,at,ot,ui],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.textGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}.canvas[_ngcontent-%COMP%]{position:absolute;top:0;left:0;z-index:inherit}"]})}return r})();var Dm=["plus1Btn"],Pm=["minus1Btn"],Mm=["plus10Btn"],Am=["minus10Btn"],Om=["stbTackBtn"],Im=["prtTackBtn"],Rm=["modesBtn"],Nm=["disengageBtn"],Wm=["advWptBtn"];function Bm(r,n){if(r&1){let e=ee();Ke(),v(0,"g",54),F("click",function(){let i=z(e).$implicit,o=re(2);return V(!i.disabled&&o.onMenuItemClick(i.action))})("keyup.enter",function(){let i=z(e).$implicit,o=re(2);return V(!i.disabled&&o.onMenuItemClick(i.action))})("keyup.space",function(){let i=z(e).$implicit,o=re(2);return V(!i.disabled&&o.onMenuItemClick(i.action))}),B(1,"rect",55),v(2,"text",56),P(3),C()()}if(r&2){let e=n.$implicit,t=n.$index,i=re(2);ce("aria-label",e.label),D(),qn(e.isCancel?"svg-menu-item-cancel":e.current?"svg-menu-item-current":e.disabled?"svg-menu-item-disabled":"svg-menu-item"),ce("y",t*i.itemHeight)("height",i.itemHeight),D(),qn(e.isCancel?"svg-menu-item-cancel-text":e.current?"svg-menu-item-current-text":e.disabled?"svg-menu-item-disabled-text":"svg-menu-item-text"),ce("y",(t+.65)*i.itemHeight),D(),Ml(" ",e.current?"\u2713 ":"","",e.label," ")}}function zm(r,n){if(r&1){let e=ee();v(0,"div",50),F("click",function(){z(e);let i=re();return V(i.toggleMenu())})("keyup.enter",function(){z(e);let i=re();return V(i.toggleMenu())})("keyup.space",function(){z(e);let i=re();return V(i.toggleMenu())}),Ke(),v(1,"svg",51),F("click",function(i){return z(e),V(i.stopPropagation())})("keyup.enter",function(i){return z(e),V(i.stopPropagation())})("keyup.space",function(i){return z(e),V(i.stopPropagation())}),B(2,"rect",52),co(3),ki(4,Bm,4,10,":svg:g",53,Gn),ho(),C()()}if(r&2){let e=re();D(),ce("viewBox","0 0 240 "+e.menuItems.length*e.itemHeight),D(),ce("height",e.menuItems.length*e.itemHeight),D(2),Ti(e.menuItems)}}function Vm(r,n){r&1&&B(0,"div",49)}var gc={auto:{path:"self.steering.autopilot.state",value:"auto"},wind:{path:"self.steering.autopilot.state",value:"wind"},route:{path:"self.steering.autopilot.state",value:"route"},standby:{path:"self.steering.autopilot.state",value:"standby"},"+1":{path:"self.steering.autopilot.actions.adjustHeading",value:1},"+10":{path:"self.steering.autopilot.actions.adjustHeading",value:10},"-1":{path:"self.steering.autopilot.actions.adjustHeading",value:-1},"-10":{path:"self.steering.autopilot.actions.adjustHeading",value:-10},tackToPort:{path:"self.steering.autopilot.actions.tack",value:"port"},tackToStarboard:{path:"self.steering.autopilot.actions.tack",value:"starboard"},advanceWaypoint:{path:"self.steering.autopilot.actions.advanceWaypoint",value:"1"}},Lm=5,vc=(()=>{class r extends Ne{signalkRequestsService=M(tn);dashboard=M(ct);_destroyRef=M(oo);_plugins=M(kd);_app=M(Dt);apGrid=Ye("none");plus1Btn=Ce.required("plus1Btn");minus1Btn=Ce.required("minus1Btn");plus10Btn=Ce.required("plus10Btn");minus10Btn=Ce.required("minus10Btn");stbTackBtn=Ce.required("stbTackBtn");prtTackBtn=Ce.required("prtTackBtn");modesBtn=Ce.required("modesBtn");engageBtn=Ce.required("disengageBtn");advWptBtn=Ce.required("advWptBtn");apState=Ye(null);autopilotTargetHeading=0;autopilotTargetWindHeading=0;courseTargetHeading=0;heading=0;crossTrackError=0;windAngleApparent=0;rudder=0;countdownOverlayVisibility=Ye("hidden");countdownOverlayText=Ye("");msgOverlayVisibility=Ye("hidden");msgOverlayText=Ye("");errorOverlayVisibility=Ye("hidden");errorOverlayText=Ye("");handleCountDownCounterTimeout=null;handleConfirmActionTimeout=null;handleDisplayErrorTimeout=null;countDownValue=-1;actionToBeConfirmed="";menuOpen=Ye(!1);menuItems=[];itemHeight=60;padding=20;embedWidgetColor="contrast";nextWptProperties=Ye({type:"widget-position",uuid:"db473695-42b1-4435-9d3d-ac2f27bf9665",config:{displayName:"Next WPT",filterSelfPaths:!0,paths:{longPath:{description:"Longitude",path:"self.navigation.courseRhumbline.nextPoint.position.longitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"longitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500},latPath:{description:"Latitude",path:"self.navigation.courseGreatCircle.nextPoint.position.latitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"latitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5}},{equal:si});ttwProperties=Ye({type:"widget-numeric",uuid:"ee022f2f-ee23-41a7-b0b1-0928dc28864d",config:{displayName:"TTWpt",filterSelfPaths:!0,paths:{numericPath:{description:"Time To Waypoint",path:"self.navigation.course.calcValues.timeToGo",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"D HH:MM:SS",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}},{equal:si});etaProperties=Ye({type:"widget-datetime",uuid:"544ca35d-18bf-4a90-9aa8-b12312e3fc60",config:{displayName:"ETA",filterSelfPaths:!0,paths:{gaugePath:{description:"Estimated Time Of Arrival Date",path:"self.navigation.course.calcValues.estimatedTimeOfArrival",source:"default",pathType:"Date",isPathConfigurable:!0,sampleTime:500}},dateFormat:"EEE HH:mm",dateTimezone:"System Timezone -",color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5}},{equal:si});dtwProperties=Ye({type:"widget-numeric",uuid:"ee02ef2f-ee23-41a7-b0b1-0928dc28864d",config:{displayName:"DTWpt",filterSelfPaths:!0,paths:{numericPath:{description:"Distance To Waypoint",path:"self.navigation.course.calcValues.distance",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"nm",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}},{equal:si});xteProperties=Ye({type:"widget-numeric",uuid:"9234856b-7573-4154-a44f-3baf7c6f119c",config:{displayName:"XTE",filterSelfPaths:!0,paths:{numericPath:{description:"Cross Track Error",path:"self.navigation.course.calcValues.crossTrackError",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"m",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}},{equal:si});brgProperties=Ye({type:"widget-numeric",uuid:"27a73083-3786-4399-847e-f08f32cb13bd",config:{displayName:"Locked BRG (Mag)",filterSelfPaths:!0,paths:{numericPath:{description:"Numeric Data",path:"self.navigation.course.calcValues.bearingMagnetic",source:"default",pathType:"number",isPathConfigurable:!1,convertUnitTo:"deg",showPathSkUnitsFilter:!1,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:0,numInt:1,color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}},{equal:si});constructor(){super(),this.defaultConfig={filterSelfPaths:!0,paths:{autopilotState:{description:"Autopilot State",path:"self.steering.autopilot.state",source:"default",pathType:"string",isPathConfigurable:!1,showPathSkUnitsFilter:!1,convertUnitTo:"",sampleTime:500},autopilotTargetHeading:{description:"Autopilot Target Magnetic Heading",path:"self.steering.autopilot.target.headingMagnetic",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",sampleTime:500},autopilotTargetWindHeading:{description:"Autopilot Target Apparent Wind Angle",path:"self.steering.autopilot.target.windAngleApparent",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",sampleTime:500},courseXte:{description:"Cross Track Error",path:"self.navigation.course.calcValues.crossTrackError",source:"default",pathType:"number",isPathConfigurable:!1,convertUnitTo:"m",showPathSkUnitsFilter:!0,pathSkUnitsFilter:"m",sampleTime:500},rudderAngle:{description:"Rudder Angle",path:"self.steering.rudderAngle",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",sampleTime:500},headingMag:{description:"Magnetic Heading",path:"self.navigation.headingMagnetic",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500},headingTrue:{description:"True Heading",path:"self.navigation.headingTrue",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500},windAngleApparent:{description:"Apparent Wind Angle",path:"self.environment.wind.angleApparent",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500},windAngleTrueWater:{description:"Wind Angle True Water",path:"self.environment.wind.angleTrueWater",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500}},invertRudder:!0,headingDirectionTrue:!1,courseDirectionTrue:!1,enableTimeout:!1,dataTimeout:5};let e=[{label:"Auto",action:"auto"},{label:"Wind",action:"wind"},{label:"Route",action:"route"},{label:"Close",action:"cancel",isCancel:!0}];be(()=>{let t=this.apState();Et(()=>{switch(this.menuItems=e.map(i=>{if(i.isCancel)return $e(X({},i),{current:!1,disabled:!1});let o=!1;switch(t){case"standby":o=i.action==="auto"||i.action==="wind";break;case"auto":o=i.action==="wind"||i.action==="route";break;case"wind":o=i.action==="auto";break;case"route":o=i.action==="auto";break;default:o=!1}return $e(X({},i),{current:i.action===t,disabled:!o})}),t){case"off-line":this.modesBtn().disabled=!0,this.engageBtn().disabled=!0,this.plus1Btn().disabled=!0,this.plus10Btn().disabled=!0,this.minus1Btn().disabled=!0,this.minus10Btn().disabled=!0,this.prtTackBtn().disabled=!0,this.stbTackBtn().disabled=!0,this.advWptBtn().disabled=!0;break;case"standby":this.modesBtn().disabled=!1,this.engageBtn().disabled=!0,this.plus1Btn().disabled=!0,this.plus10Btn().disabled=!0,this.minus1Btn().disabled=!0,this.minus10Btn().disabled=!0,this.prtTackBtn().disabled=!0,this.stbTackBtn().disabled=!0,this.advWptBtn().disabled=!0;break;case"auto":this.modesBtn().disabled=!1,this.engageBtn().disabled=!1,this.plus1Btn().disabled=!1,this.plus10Btn().disabled=!1,this.minus1Btn().disabled=!1,this.minus10Btn().disabled=!1,this.prtTackBtn().disabled=!0,this.stbTackBtn().disabled=!0,this.advWptBtn().disabled=!0;break;case"wind":this.modesBtn().disabled=!1,this.engageBtn().disabled=!1,this.plus1Btn().disabled=!1,this.plus10Btn().disabled=!1,this.minus1Btn().disabled=!1,this.minus10Btn().disabled=!1,this.prtTackBtn().disabled=!1,this.stbTackBtn().disabled=!1,this.advWptBtn().disabled=!0;break;case"route":this.modesBtn().disabled=!1,this.engageBtn().disabled=!1,this.plus1Btn().disabled=!0,this.plus10Btn().disabled=!0,this.minus1Btn().disabled=!0,this.minus10Btn().disabled=!0,this.prtTackBtn().disabled=!0,this.stbTackBtn().disabled=!0,this.advWptBtn().disabled=!1;break;default:this.modesBtn().disabled=!0,this.engageBtn().disabled=!0,this.plus1Btn().disabled=!0,this.plus10Btn().disabled=!0,this.minus1Btn().disabled=!0,this.minus10Btn().disabled=!0,this.prtTackBtn().disabled=!0,this.stbTackBtn().disabled=!0,this.advWptBtn().disabled=!0}this.apGrid.set(t?"grid":"none")})})}ngOnInit(){this.validateConfig(),this.configureEmbedWidgets(),this.startWidget()}configureEmbedWidgets(){let e=this.widgetProperties.config.courseDirectionTrue;this.brgProperties.update(t=>$e(X({},t),{config:$e(X({},t.config),{paths:$e(X({},t.config.paths),{numericPath:$e(X({},t.config.paths.numericPath),{path:e?"self.navigation.course.calcValues.bearingTrue":"self.navigation.course.calcValues.bearingMagnetic"})}),displayName:e?"Locked BRG (True)":"Locked BRG (Mag)"})}))}startWidget(){this.startAllSubscriptions()}updateConfig(e){this.widgetProperties.config=e,this.configureEmbedWidgets(),this.startAllSubscriptions()}startAllSubscriptions(){this.unsubscribeDataStream(),this.observeDataStream("autopilotState",e=>this.apState.set(e.data.value)),this.observeDataStream("autopilotTargetHeading",e=>this.autopilotTargetHeading=e.data.value?e.data.value:0),this.observeDataStream("autopilotTargetWindHeading",e=>this.autopilotTargetWindHeading=e.data.value?e.data.value:0),this.observeDataStream("courseXte",e=>this.crossTrackError=e.data.value?e.data.value:0),this.observeDataStream("rudderAngle",e=>{e.data.value===null?this.rudder=0:this.rudder=this.widgetProperties.config.invertRudder?-e.data.value:e.data.value}),this.widgetProperties.config.headingDirectionTrue?this.observeDataStream("headingTrue",e=>this.heading=e.data.value?e.data.value:0):this.observeDataStream("headingMag",e=>this.heading=e.data.value?e.data.value:0),this.observeDataStream("windAngleApparent",e=>this.windAngleApparent=e.data.value?e.data.value:0),this.subscribePutResponse()}subscribePutResponse(){this.signalkRequestsService.subscribeRequest().pipe(pn(this._destroyRef)).subscribe(e=>{e.widgetUUID==this.widgetProperties.uuid&&this.commandReceived(e)})}toggleMenu(){this.menuOpen.set(!this.menuOpen())}onMenuItemClick(e){if(e==="cancel"){this.toggleMenu();return}this.buildAndSendCommand(e),this.menuOpen.set(!1)}buildAndSendCommand(e){let t=gc[e];if(typeof t>"u")return alert("Unknown Autopilot command: "+e),null;if(this.actionToBeConfirmed!==""&&this.actionToBeConfirmed!==e&&this.clearConfirmCmd(),(e==="tackToPort"||e==="tackToStarboard")&&this.actionToBeConfirmed==="")return this.confirmTack(e),null;if(e==="route"&&this.apState()==="route"&&this.actionToBeConfirmed==="")return this.confirmAdvanceWaypoint(e),null;if(this.actionToBeConfirmed===e)return this.clearConfirmCmd(),(e==="tackToPort"||e==="tackToStarboard")&&this.sendCommand(t),e==="route"&&this.apState()==="route"&&this.sendCommand(gc.advanceWaypoint),null;this.sendCommand(t)}confirmAdvanceWaypoint(e){this.startConfirmCmd(e,"Repeat key [Adv Wpt] to confirm")}confirmTack(e){let t="";if(e==="tackToPort")t="Port",this.actionToBeConfirmed=e;else if(e==="tackToStarboard")t="Starboard",this.actionToBeConfirmed=e;else return this.actionToBeConfirmed="",null;let i=`Repeat [Tack ${t}] key to confirm`;this.startConfirmCmd(e,i)}sendCommand(e){this.signalkRequestsService.putRequest(e.path,e.value,this.widgetProperties.uuid),console.log(`AP Action:
|
|
10
|
-
`+JSON.stringify(e))}commandReceived(e){e.statusCode!=200?this.displayApError(e)
|
|
11
|
-
`+JSON.stringify(e))}startConfirmCmd(e,t){this.countDownValue=Lm,this.actionToBeConfirmed=e,this.countdownOverlayText.set(t),this.countdownOverlayVisibility.set("visible"),this.updateCountDownCounter(t),clearTimeout(this.handleConfirmActionTimeout),this.handleConfirmActionTimeout=setTimeout(()=>{this.countdownOverlayVisibility.set("hidden"),this.countdownOverlayText.set(""),this.actionToBeConfirmed=""},5e3)}clearConfirmCmd(){return clearTimeout(this.handleConfirmActionTimeout),clearTimeout(this.handleCountDownCounterTimeout),this.countDownValue=-1,this.countdownOverlayVisibility.set("hidden"),this.countdownOverlayText.set(""),this.actionToBeConfirmed="",null}updateCountDownCounter(e){this.countDownValue>0?(clearTimeout(this.handleCountDownCounterTimeout),this.countdownOverlayText.set(e),this.countDownValue-=1,this.handleCountDownCounterTimeout=setTimeout(()=>{this.updateCountDownCounter(e)},1e3)):(this.countDownValue=-1,clearTimeout(this.handleCountDownCounterTimeout))}displayApError(e){let t=e.statusCode+" - "+e.statusCodeDescription+".";e.message&&(t=t+"Server Message: "+e.message+"."),this.errorOverlayText.set(t),this.errorOverlayVisibility.set("visible"),clearTimeout(this.handleDisplayErrorTimeout),this.handleDisplayErrorTimeout=setTimeout(()=>{this.errorOverlayVisibility.set("hidden"),this.errorOverlayText.set("")},6e3)}ngOnDestroy(){this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-autopilot"]],viewQuery:function(t,i){t&1&&(we(i.plus1Btn,Dm,5),we(i.minus1Btn,Pm,5),we(i.plus10Btn,Mm,5),we(i.minus10Btn,Am,5),we(i.stbTackBtn,Om,5),we(i.prtTackBtn,Im,5),we(i.modesBtn,Rm,5),we(i.engageBtn,Nm,5),we(i.advWptBtn,Wm,5)),t&2&&Ze(9)},features:[pe],decls:102,vars:55,consts:[["modesBtn",""],["disengageBtn",""],["minus1Btn",""],["plus1Btn",""],["minus10Btn",""],["plus10Btn",""],["prtTackBtn",""],["stbTackBtn",""],["advWptBtn",""],[1,"widget-host",3,"configChange","config","id"],[1,"autopilot-grid-container"],[1,"ap-modes"],["mat-flat-button","","disabled","true",1,"ap-btn","ap-btn-ctrlbar",3,"click"],[1,"svg-icon-ctrlbar"],["width","100%","height","100%","viewBox","0 0 100 14","preserveAspectRatio","xMidYMid meet",1,"svg-element","svg-modes"],[0,"xml","space","preserve","x","50","y","10.7"],["mat-flat-button","","disabled","true",1,"ap-btn","ap-btn-ctrlbar","ap-btn-engage",3,"click"],[0,"xml","space","preserve","x","50.090435","y","10.743966"],[1,"ap-screen"],[3,"apState","targetPilotHeading","targetWindAngleHeading","compassHeading","courseXte","appWindAngle","rudderAngle","targetPilotHeadingTrue","headingDirectionTrue"],[1,"ap-screen-overlay"],["viewBox","0 0 100 100","width","100%","height","100%","preserveAspectRatio","xMidYMid meet"],["x","50%","y","25",1,"svg-element-msg",3,"innerHTML"],["x","50%","dy","75",1,"svg-element-msg",2,"font-size","3em",3,"innerHTML"],[1,"ap-screen-overlay","ap-error-text"],[1,"material-icons","ap-error-icon"],["x","50%","y","25",1,"svg-element-msg","svg-element-error-txt",3,"innerHTML"],["mat-flat-button","","disabled","true",1,"ap-btn",3,"click"],[1,"svg-icon"],["width","100%","height","100%","viewBox","0 0 100 100","preserveAspectRatio","xMidYMid meet",1,"svg-element"],["fill","currentColor","stroke","currentColor",0,"xml","space","preserve","x","49.894032","y","98.734871"],["fill","currentColor","stroke","currentColor","d","M 31.033486,35.785143 68.966514,66.630677 M 31.033486,35.640825 68.966514,4.79529"],["fill","currentColor","stroke","currentColor",0,"xml","space","preserve","x","50.052986","y","98.734871"],["fill","currentColor","stroke","currentColor","d","M 68.966514,35.785143 31.033486,66.630677 M 68.966514,35.640825 31.033486,4.79529"],["fill","currentColor","stroke","currentColor","d","M 15.778367,35.785143 53.711395,66.630677 M 15.778367,35.640825 53.711395,4.79529"],["fill","currentColor","stroke","currentColor","d","M 46.288608,35.785143 84.221633,66.630677 M 46.288608,35.640825 84.221633,4.79529"],["fill","currentColor","stroke","currentColor","d","M 84.221633,35.785143 46.288605,66.630677 M 84.221633,35.640825 46.288605,4.79529"],["fill","currentColor","stroke","currentColor","d","M 53.711392,35.785143 15.778367,66.630677 M 53.711392,35.640825 15.778367,4.79529"],["transform","scale(-1,1) translate(-100,0)"],["fill","currentColor","d","M 90.5,22.5 67.5,45 96,53 Z",2,"stroke-width","8","stroke-linecap","round","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["fill","none","stroke","currentColor","d",`M 76,31
|
|
8
|
+
`+JSON.stringify(e))}subscribeRequest(){return this.requestStatus$.asObservable()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var uc=Ir(hs());var pm={1e3:"notification",1001:"alert",1002:"warn",1003:"alarm",1004:"emergency"},on=(()=>{class r{settings=M(Ut);data=M(Qi);requests=M(rn);static ALARM_SEVERITIES={normal:{sound:0,visual:0},nominal:{sound:0,visual:0},alert:{sound:1,visual:0},warn:{sound:2,visual:1},alarm:{sound:3,visual:2},emergency:{sound:4,visual:2}};_notificationSettingsSubscription=null;_notificationDataStreamSubscription=null;_notificationMetaStreamSubscription=null;_resetServiceSubscription=null;_notificationConfig;_notificationConfig$=new Hi(jl);_notifications=[];_notifications$=new Hi([]);_alarmsInfo$=new Hi({audioSev:0,visualSev:0,alarmCount:0,isMuted:!1});_howlPlayer;_activeAlarmSoundtrack=null;_activeHowlId=null;_isHowlIdMuted=!1;_lastEmittedValue=null;constructor(){this._notificationSettingsSubscription=this.settings.getNotificationServiceConfigAsO().subscribe(e=>{this._notificationConfig=e,this.reset(),this._notificationConfig$.next(e),this._notificationConfig.disableNotifications&&!this._notificationDataStreamSubscription?.closed&&this.stopNotificationStream(),!this._notificationConfig.disableNotifications&&(this._notificationDataStreamSubscription===null||this._notificationDataStreamSubscription?.closed)&&this.startNotificationStream(),this._notificationConfig.sound.disableSound?this.playAlarm(1e3):this.updateNotificationsState()}),this._resetServiceSubscription=this.data.isResetService().subscribe(e=>{e&&this.reset()}),this._howlPlayer=this.getPlayer(1e3)}startNotificationStream(){this._notificationDataStreamSubscription=this.data.getNotificationMsgObservable().subscribe(e=>{this.processNotificationDeltaMsg(e)}),this._notificationMetaStreamSubscription=this.data.getNotificationMetaObservable().subscribe(e=>{this.processNotificationDeltaMeta(e)})}stopNotificationStream(){this._notificationDataStreamSubscription?.unsubscribe(),this._notificationMetaStreamSubscription?.unsubscribe(),this.reset()}reset(){this._notificationConfig.disableNotifications&&(this._notifications=[],this._notifications$.next([])),this.updateNotificationsState()}observeNotifications(){return this._notifications$}addValue(e){this._notifications.push({path:e.path,value:e.value}),this.updateNotificationsState(),this._notifications$.next(this._notifications)}updateValue(e){let t=this._notifications.find(i=>i.path==e.path);t?(t.value=X({},e.value),this.updateNotificationsState(),this._notifications$.next(this._notifications)):console.log("[Notification Service] Update path not found for: "+e.path)}deleteValue(e){let t=this._notifications.find(i=>i.path==e);t?(delete t.value,this.updateNotificationsState(),this._notifications$.next(this._notifications)):console.log("[Notification Service] Notification to delete not found for: "+e)}updateNotificationsState(){let e=0,t=0,i=0;for(let a of this._notifications){if(!a.value||!("method"in a.value)||a.value.method.length===0||a.value.state===ne.Normal&&!this._notificationConfig.devices.showNormalState||a.value.state===ne.Nominal&&!this._notificationConfig.devices.showNominalState)continue;i++;let{aSev:l,vSev:d}=this.getNotificationSeverity(a);e=Math.max(e,l),t=Math.max(t,d)}this._notificationConfig.sound.disableSound||this.playAlarm(1e3+e);let o={audioSev:e,visualSev:t,alarmCount:i,isMuted:this._isHowlIdMuted};gi(o,this._lastEmittedValue)||(this._alarmsInfo$.next(o),this._lastEmittedValue=o)}processNotificationDeltaMsg(e){if(!e.path.startsWith("notifications.security"))if(e.value===null)this.deleteValue(e.path);else{let t=this._notifications.find(i=>i.path==e.path);t?t.value?(t.value.state!==e.value.state||t.value.message!==e.value.message||!gi(t.value.method,e.value.method))&&this.updateValue(e):this.updateValue(e):this.addValue(e)}}processNotificationDeltaMeta(e){let t=this._notifications.find(i=>i.path==e.path);t?t.meta=e.meta:this._notifications.push({path:e.path,meta:e.meta}),this._notifications$.next(this._notifications)}getNotificationSeverity(e){let t=e.value.state,i=r.ALARM_SEVERITIES[t];if(!i)return console.log(`[Notification Service] Unknown Notification State received from Signal K
|
|
9
|
+
`+JSON.stringify(e)),{aSev:0,vSev:0};let o=i.sound,a=i.visual;return(!e.value.method.includes(tr.Sound)||this._notificationConfig.sound[`mute${t.charAt(0).toUpperCase()+t.slice(1)}`]||this._isHowlIdMuted)&&(o=0),e.value.method.includes(tr.Visual)||(a=0),{aSev:o,vSev:a}}setSkMethod(e,t){this.requests.putRequest(`${e}.method`,t,Pi.create())}setSkState(e,t){this.requests.putRequest(`${e}.state`,t,Pi.create())}observerNotificationsInfo(){return this._alarmsInfo$.pipe(Kt(t=>{let i=!1,o=!1;switch(t.visualSev){case 1:i=!0;break;case 2:o=!0;break}return et(X({},t),{isWarn:i,isAlarmEmergency:o})}))}getPlayer(e){return this._activeAlarmSoundtrack=e,new uc.Howl({src:["assets/"+pm[e]+".mp3"],autoplay:!1,preload:!0,loop:!0,onend:function(){},onloaderror:function(){console.log("player onload error")},onplayerror:function(){console.log("player locked"),this._howlPlayer.once("unlock",function(){this._howlPlayer.play()})}})}mutePlayer(e){this._howlPlayer.mute(e,this._activeHowlId),this._isHowlIdMuted=e,this.updateNotificationsState()}playAlarm(e){if(this._activeAlarmSoundtrack!=e){if(e==1e3){this._howlPlayer&&this._howlPlayer.stop(),this._activeAlarmSoundtrack=1e3;return}this._howlPlayer.stop(),this._howlPlayer=this.getPlayer(e),this._activeHowlId=this._howlPlayer.play()}}observeNotificationConfiguration(){return this._notificationConfig$.asObservable()}ngOnDestroy(){this._notificationSettingsSubscription?.unsubscribe(),this._resetServiceSubscription?.unsubscribe(),this._notificationConfig$.complete(),this._notifications$.complete(),this._alarmsInfo$.complete(),this._howlPlayer?.unload()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var mc=(()=>{class r{_notifications=M(on);hasNotifications=Yi();notificationsInfo=Gt(this._notifications.observerNotificationsInfo());openNotificationMenu(){let e=new Event("openRightSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(e)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["notification-badge"]],outputs:{hasNotifications:"hasNotifications"},decls:4,vars:6,consts:[["mat-fab","",1,"layout-action-btn",3,"click"],["aria-hidden","false","matBadgeSize","large","matBadgePosition","after","matBadgeOverlap","true",1,"icon-alert-color",3,"matBadgeHidden","matBadge"]],template:function(t,i){t&1&&(v(0,"div")(1,"button",0),L("click",function(){return i.openNotificationMenu()}),v(2,"mat-icon",1),D(3,"notifications "),w()()()),t&2&&(P(),Pt("warn",i.notificationsInfo().isWarn)("alarm-emergency-blink",i.notificationsInfo().isAlarmEmergency),P(),U("matBadgeHidden",!i.notificationsInfo().alarmCount)("matBadge",i.notificationsInfo().alarmCount))},dependencies:[Zt,To,Mt,di,gr,hc],styles:["[_nghost-%COMP%]{z-index:102;position:absolute;display:block;bottom:20px;left:20px;height:56px;width:56px;text-align:center;align-content:center}.layout-action-btn[_ngcontent-%COMP%]{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-primary)}.icon-alert-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-alert-color)}.icon-warn-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-warn-color)}.icon-alarm-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-alarm-color)}.icon-emergency-color[_ngcontent-%COMP%]{--mat-list-list-item-leading-icon-color: var(--kip-zone-emergency-color)}.alarm-emergency-blink[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_blinking-emergency 1.5s infinite}@keyframes _ngcontent-%COMP%_blinking-emergency{0%{background-color:var(--kip-zone-alarm-color)}50%{background-color:var(--mat-sys-primary)}to{background-color:var(--kip-zone-alarm-color)}}.warn[_ngcontent-%COMP%]{color:var(--kip-zone-warn-color)}"]})}return r})();var Ie=(()=>{class r extends ac{widgetProperties;zones$=new Hi([]);DataService=M(Qi);unitsService=M(or);app=M(Dt);theme=Gt(this.app.cssThemeColorRoles$,{requireSync:!0});defaultConfig=void 0;dataStream=void 0;dataSubscriptions=void 0;metaSubscriptions=void 0;constructor(){super()}serialize(){return{widgetProperties:this.widgetProperties}}observeMetaStream(){if(this.widgetProperties&&this.widgetProperties.config.paths&&Object.keys(this.widgetProperties.config.paths).length>0){let e=Object.keys(this.widgetProperties.config.paths)[0],t=this.widgetProperties.config.paths[e].path;this.metaSubscriptions=this.DataService.getPathMetaObservable(t).subscribe(i=>{i?i.zones?this.zones$.next(i.zones):this.zones$.next([]):this.zones$.next([])})}}unsubscribeMetaStream(){this.metaSubscriptions?.unsubscribe(),this.metaSubscriptions=void 0}validateConfig(){this.widgetProperties.config=er(ld(this.defaultConfig,this.widgetProperties.config))}createDataObservable(){if(this.widgetProperties!==void 0){if(Object.keys(this.widgetProperties.config.paths).length==0){this.dataStream=void 0;return}else this.dataStream=[];Object.keys(this.widgetProperties.config.paths).forEach(e=>{typeof this.widgetProperties.config.paths[e].path!="string"||this.widgetProperties.config.paths[e].path==""||this.widgetProperties.config.paths[e].path==null||this.dataStream.push({pathName:e,observable:this.DataService.subscribePath(this.widgetProperties.config.paths[e].path,this.widgetProperties.config.paths[e].source)})})}}observeDataStream(e,t){(this.dataStream===void 0||this.dataStream.length==0)&&this.createDataObservable();let i=this.widgetProperties.config.paths[e].pathType,o=this.widgetProperties.config.paths[e].path,a=this.widgetProperties.config.paths[e].convertUnitTo,l=this.widgetProperties.config.paths[e].sampleTime,d=this.widgetProperties.config.dataTimeout*1e3,p=5e3,s=`[Widget] ${this.widgetProperties.config.displayName} - ${d/1e3} second data update timeout reached for `,c=`[Widget] ${this.widgetProperties.config.displayName} - Retrying in ${p/1e3} secondes`,m=this.buildObserver(e,t),y=this.dataStream.find(T=>T.pathName===e);if(y===void 0)return;let _;i=="number"?this.widgetProperties.config.enableTimeout?_=y.observable.pipe(Kt(T=>({data:{value:this.unitsService.convertToUnit(a,T.data.value),timestamp:T.data.timestamp},state:T.state})),Gn(l),Ba({each:d,with:()=>La(()=>{console.log(s+o),this.DataService.timeoutPathObservable(o,i)})}),Ga(T=>T.pipe(ja(()=>console.log(c)),Ua(()=>Fa(p))))):_=y.observable.pipe(Kt(T=>({data:{value:this.unitsService.convertToUnit(a,T.data.value),timestamp:T.data.timestamp},state:T.state})),Gn(l)):i=="string"||i=="Date"?this.widgetProperties.config.enableTimeout?_=y.observable.pipe(Gn(l),Ba({each:d,with:()=>La(()=>{console.log(s+o),this.DataService.timeoutPathObservable(o,i)})}),Ga(T=>T.pipe(ja(()=>console.log(c)),Ua(()=>Fa(p))))):_=y.observable.pipe(Gn(l)):_=y.observable.pipe(Gn(l)),this.dataSubscriptions===void 0?this.dataSubscriptions=_.subscribe(m):this.dataSubscriptions.add(_.subscribe(m))}unsubscribeDataStream(){this.dataSubscriptions?.unsubscribe(),this.dataSubscriptions=void 0,this.dataStream=void 0}buildObserver(e,t){return{next:o=>t(o),error:o=>console.error("[Widget] Observer got an error: "+o),complete:()=>console.log("[Widget] Observer got a complete notification: "+e)}}formatWidgetNumberValue(e){return typeof e!="number"||e==null?"":(e=Math.min(Math.max(e,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),e.toFixed(this.widgetProperties.config.numDecimal))}destroyDataStreams(){this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.zones$.complete()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["ng-component"]],inputs:{widgetProperties:"widgetProperties"},features:[pe],decls:0,vars:0,template:function(t,i){},encapsulation:2})}return r})();var pc=(()=>{class r{_bottomSheetRef=M(Ad);clickAction(e){this._bottomSheetRef.dismiss(e)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-host-bottom-sheet"]],decls:11,vars:0,consts:[["mat-list-item","",3,"click"],["matListItemIcon",""]],template:function(t,i){t&1&&(v(0,"mat-action-list")(1,"button",0),L("click",function(){return i.clickAction("duplicate")}),v(2,"mat-icon",1),D(3,"content_copy"),w(),v(4,"span"),D(5,"Duplicate"),w()(),v(6,"button",0),L("click",function(){return i.clickAction("delete")}),v(7,"mat-icon",1),D(8,"delete_forever"),w(),v(9,"span"),D(10,"Delete"),w()()())},dependencies:[Do,Wd,Po,Nd,Mt,di],encapsulation:2})}return r})();var gm=["*"],Re=(()=>{class r{config=Nr.required();id=q.required();_dialog=M(ar);_dashboard=M(ct);_bottomSheet=M(Od);constructor(){}openWidgetOptions(){this._dashboard.isDashboardStatic()||this._dialog.openWidgetOptions({title:"Widget Options",config:this.config(),confirmBtnText:"Save",cancelBtnText:"Cancel"}).afterClosed().subscribe(e=>{e&&this.config.set(e)})}openBottomSheet(){this._dashboard.isDashboardStatic()||this._bottomSheet.open(pc).afterDismissed().subscribe(t=>{switch(t){case"delete":this._dashboard.deleteWidget(this.id());break;case"duplicate":this._dashboard.duplicateWidget(this.id());break;default:break}})}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-host"]],inputs:{config:[1,"config"],id:[1,"id"]},outputs:{config:"configChange"},ngContentSelectors:gm,decls:2,vars:2,consts:[["appearance","raised",1,"widget-container","kip-widget-card-colors",3,"doubletap","press"]],template:function(t,i){t&1&&(si(),v(0,"mat-card",0),L("doubletap",function(){return i.openWidgetOptions()})("press",function(){return i.openBottomSheet()}),Et(1),w()),t&2&&_e("border",i._dashboard.isDashboardStatic()?"":"1px dashed var(--mat-sys-outline)")},dependencies:[Eo,Md,Id],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:block}.widget-container[_ngcontent-%COMP%]{display:block;width:100%;height:100%;margin:0;padding:0}.kip-widget-card-colors[_ngcontent-%COMP%]{background-color:var(--kip-widget-card-background-color)}"]})}return r})();var fc=(()=>{let n=class n{constructor(t){this.ngZone=t,this.count=0,this.elementMap=new Map,this.observer=null}ngOnDestroy(){this.observer&&this.clearObserver()}observe(t,i,o){this.observer||(this.observer=new ResizeObserver(a=>{for(let l of a){let d=this.elementMap.get(l.target);d&&this.ngZone.run(()=>{d(l)})}})),o==="border-box"?this.observer.observe(t,{box:"border-box"}):this.observer.observe(t),this.count+=1,this.elementMap.set(t,i)}unobserve(t){this.elementMap.get(t)&&this.observer&&(this.observer.unobserve(t),this.elementMap.delete(t),this.count-=1,this.count===0&&this.clearObserver())}clearObserver(){this.observer&&this.observer.disconnect(),this.observer=null,this.count=0,this.elementMap=new Map}};n.\u0275fac=function(i){return new(i||n)(jn(yt))},n.\u0275prov=st({token:n,factory:n.\u0275fac});let r=n;return r})(),ot=(()=>{let n=class n{constructor(t,i,o){this.elementRef=t,this.ngxResizeObserverService=i,this.ngZone=o,this.resizeBoxModel="",this.onResize=new mt,this.observing=!1,ji(()=>{this.observe()})}ngOnChanges(t){this.observing&&(t.resizeBoxModel||t.onResize)&&(this.unobserve(),this.observe())}ngOnDestroy(){this.unobserve()}observe(){this.observing||(this.ngxResizeObserverService.observe(this.elementRef.nativeElement,t=>{this.ngZone.run(()=>{this.onResize.emit(t)})},this.resizeBoxModel),this.observing=!0)}unobserve(){this.observing&&(this.ngxResizeObserverService.unobserve(this.elementRef.nativeElement),this.observing=!1)}};n.\u0275fac=function(i){return new(i||n)(Ht(tt),Ht(fc),Ht(yt))},n.\u0275dir=Ti({type:n,selectors:[["","onResize",""]],inputs:{resizeBoxModel:"resizeBoxModel"},outputs:{onResize:"onResize"},features:[qi]});let r=n;return r})(),at=(()=>{let n=class n{};n.\u0275fac=function(i){return new(i||n)},n.\u0275mod=ai({type:n}),n.\u0275inj=oi({providers:[fc]});let r=n;return r})();var At=(()=>{class r{DEFAULT_FONT="Roboto";EDGE_BUFFER=10;scaleFactor=window.devicePixelRatio||1;fontsReadyPromise;constructor(){this.fontsReadyPromise=document.fonts.ready}setHighDPISize(e,t){let i=Math.floor(t.width),o=Math.floor(t.height);e.width=i*this.scaleFactor,e.height=o*this.scaleFactor,e.style.width=`${i}px`,e.style.height=`${o}px`}drawTitle(e,t,i,o="normal",a,l){e&&this.fontsReadyPromise.then(()=>{requestAnimationFrame(()=>{this.drawTitleInternal(e,t,i,o,a,l)})}).catch(d=>{console.warn(`[Canvas Service] Font readiness failed: ${d}`),this.drawTitleInternal(e,t,i,o,a,l)})}drawTitleInternal(e,t,i,o="normal",a,l){if(!e)return;let d=a-2*this.EDGE_BUFFER,p=Math.floor(l*.1),s=this.calculateOptimalFontSize(e,t,d,p,o);e.clearRect(0,0,a,l),e.font=`${o} ${s}px ${this.DEFAULT_FONT}`,e.fillStyle=i,e.textAlign="left",e.textBaseline="top",e.fillText(t,this.EDGE_BUFFER*this.scaleFactor,this.EDGE_BUFFER*this.scaleFactor,d)}clearCanvas(e,t,i){e.clearRect(0,0,t,i)}drawText(e,t,i=this.EDGE_BUFFER,o=this.EDGE_BUFFER,a,l,d="normal",p="#000",s="center",c="middle"){e&&(document.fonts.status==="loaded"?this.drawTextInternal(e,t,i,o,a,l,d,p,s,c):this.fontsReadyPromise.then(()=>{this.drawTextInternal(e,t,i,o,a,l,d,p,s,c)}).catch(m=>{console.warn(`[Canvas Service] Font readiness failed: ${m}`),this.drawTextInternal(e,t,i,o,a,l,d,p,s,c)}))}drawTextInternal(e,t,i=this.EDGE_BUFFER,o=this.EDGE_BUFFER,a,l,d="normal",p="#000",s="center",c="middle"){let m=this.calculateOptimalFontSize(e,t,a,l,d);e.font=`${d} ${m}px ${this.DEFAULT_FONT}`,e.fillStyle=p,e.textAlign=s,e.textBaseline=c,e.fillText(t,i,o,a)}calculateOptimalFontSize(e,t,i,o,a="normal"){let l=1,d=o,p=d;for(;l<=d;)p=Math.floor((l+d)/2),e.font=`${a} ${p}px ${this.DEFAULT_FONT}`,e.measureText(t).width>i?d=p-1:l=p+1;return d}drawRectangle(e,t,i,o,a,l){e.fillStyle=l,e.fillRect(t,i,o,a)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var vm=["canvas"],ui=(()=>{class r{text=q.required();color=q.required();canvasRef=Be.required("canvas");canvas=M(At);canvasElement;canvasCtx;isReady=!1;constructor(){}ngAfterViewInit(){this.canvasElement=this.canvasRef().nativeElement,this.canvasElement&&(this.canvasCtx=this.canvasElement.getContext("2d"),this.canvas.setHighDPISize(this.canvasElement,this.canvasElement.parentElement.getBoundingClientRect())),this.isReady=!0,this.drawTitle()}ngOnChanges(e){(e.text||e.color)&&this.drawTitle()}onResized(e){this.canvas.setHighDPISize(this.canvasElement,e.contentRect),this.drawTitle()}drawTitle(){this.isReady&&this.canvas.drawTitle(this.canvasCtx,this.text(),this.color(),"normal",this.canvasElement.width,this.canvasElement.height)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-title"]],viewQuery:function(t,i){t&1&&Le(i.canvasRef,vm,5),t&2&&nt()},inputs:{text:[1,"text"],color:[1,"color"]},features:[qi],decls:3,vars:0,consts:[["canvas",""],[1,"textGenericWrapper",3,"onResize"]],template:function(t,i){if(t&1){let o=ee();v(0,"div",1),L("onResize",function(l){return B(o),F(i.onResized(l))}),V(1,"canvas",null,0),w()}},dependencies:[at,ot],styles:["[_nghost-%COMP%]{position:absolute;display:block;width:100%;height:100%;z-index:10}canvas[_ngcontent-%COMP%]{display:block}.textGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}"]})}return r})();var ym=["canvasValue"],gc=(()=>{class r extends Ie{canvasValue=Be.required("canvasValue");canvas=M(At);dataValue=null;canvasCtx;labelColor=void 0;valueColor=void 0;isDestroyed=!1;maxTextWidth=0;maxTextHeight=0;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{stringPath:{description:"String Data",path:null,source:null,pathType:"string",isPathConfigurable:!0,sampleTime:500}},color:"contrast",enableTimeout:!1,dataTimeout:5},Se(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.drawValue())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){let e=this.canvasValue().nativeElement;this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.parentElement.getBoundingClientRect()),this.canvasCtx=this.canvasValue().nativeElement.getContext("2d"),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.8),!this.isDestroyed&&this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.observeDataStream("stringPath",e=>{this.dataValue=e.data.value,this.drawValue()})}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.getColors(this.widgetProperties.config.color),this.drawValue()}ngOnDestroy(){this.isDestroyed=!0,this.destroyDataStreams(),this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvasValue().nativeElement.remove()}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.contentRect),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),!this.isDestroyed&&this.drawValue())}drawValue(){if(!this.canvasCtx)return;this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height);let e=this.dataValue===null?"--":this.dataValue;this.canvas.drawText(this.canvasCtx,e,Math.floor(this.canvasValue().nativeElement.width/2),Math.floor(this.canvasValue().nativeElement.height/2*1.15),this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor,"center","middle")}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-text"]],viewQuery:function(t,i){t&1&&Le(i.canvasValue,ym,5),t&2&&nt()},features:[pe],decls:5,vars:4,consts:[["canvasValue",""],[3,"configChange","config","id"],[1,"textGenericWrapper",3,"onResize"],[2,"z-index","inherit"],[3,"text","color"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(1,"div",2),L("onResize",function(l){return B(o),F(i.onResized(l))}),V(2,"canvas",3,0)(4,"widget-title",4),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(4),U("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[Re,at,ot,ui],styles:["canvas[_ngcontent-%COMP%]{display:block;position:absolute;top:0;left:0}.textGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}"]})}return r})();var bm=["canvasUnit"],_m=["canvasMinMax"],wm=["canvasValue"],Go=(()=>{class r extends Ie{canvasUnit=Be.required("canvasUnit");canvasMinMax=Be.required("canvasMinMax");canvasValue=Be.required("canvasValue");canvas=M(At);dataValue=null;maxValue=null;minValue=null;labelColor=void 0;valueColor=void 0;valueStateColor=void 0;maxValueTextWidth=0;maxValueTextHeight=0;maxMinMaxTextWidth=0;maxMinMaxTextHeight=0;flashInterval=null;isDestroyed=!1;canvasValCtx;canvasMinMaxCtx;canvasUnitCtx;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{numericPath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,convertUnitTo:"unitless",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:"contrast",enableTimeout:!1,dataTimeout:5,ignoreZones:!1},Se(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.updateCanvas(),this.updateCanvasUnit())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){let e=this.canvasValue().nativeElement;this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.parentElement.getBoundingClientRect()),this.canvas.setHighDPISize(this.canvasUnit().nativeElement,e.parentElement.getBoundingClientRect()),this.canvas.setHighDPISize(this.canvasMinMax().nativeElement,e.parentElement.getBoundingClientRect()),this.canvasValCtx=this.canvasValue().nativeElement.getContext("2d"),this.canvasMinMaxCtx=this.canvasMinMax().nativeElement.getContext("2d"),this.canvasUnitCtx=this.canvasUnit().nativeElement.getContext("2d"),this.maxValueTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxValueTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),this.maxMinMaxTextWidth=Math.floor(this.canvasMinMax().nativeElement.width*.57),this.maxMinMaxTextHeight=Math.floor(this.canvasMinMax().nativeElement.height*.1),!this.isDestroyed&&(this.startWidget(),this.updateCanvasUnit())}startWidget(){this.unsubscribeDataStream(),this.minValue=null,this.maxValue=null,this.dataValue=null,this.getColors(this.widgetProperties.config.color),this.observeDataStream("numericPath",e=>{if(this.dataValue=e.data.value,this.minValue===null||this.dataValue<this.minValue?this.minValue=this.dataValue:(this.maxValue===null||this.dataValue>this.maxValue)&&(this.maxValue=this.dataValue),!this.widgetProperties.config.ignoreZones)switch(e.state){case ne.Alarm:this.valueStateColor=this.theme().zoneAlarm;break;case ne.Warn:this.valueStateColor=this.theme().zoneWarn;break;case ne.Alert:this.valueStateColor=this.theme().zoneAlert;break;default:this.valueStateColor=this.valueColor;break}this.updateCanvas()})}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.updateCanvas(),this.updateCanvasUnit()}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.contentRect),this.canvas.setHighDPISize(this.canvasUnit().nativeElement,e.contentRect),this.canvas.setHighDPISize(this.canvasMinMax().nativeElement,e.contentRect),this.maxValueTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxValueTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),this.maxMinMaxTextWidth=Math.floor(this.canvasMinMax().nativeElement.width*.57),this.maxMinMaxTextHeight=Math.floor(this.canvasMinMax().nativeElement.height*.1),!this.isDestroyed&&(this.updateCanvas(),this.updateCanvasUnit()))}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}this.valueStateColor=this.valueColor}ngOnDestroy(){this.isDestroyed=!0,this.destroyDataStreams(),this.flashInterval&&(clearInterval(this.flashInterval),this.flashInterval=null),this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvas.clearCanvas(this.canvasMinMaxCtx,this.canvasMinMax().nativeElement.width,this.canvasMinMax().nativeElement.height),this.canvas.clearCanvas(this.canvasUnitCtx,this.canvasUnit().nativeElement.width,this.canvasUnit().nativeElement.height)}updateCanvas(){this.canvasValCtx&&(this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.drawValue(),(this.widgetProperties.config.showMax||this.widgetProperties.config.showMin)&&(this.canvas.clearCanvas(this.canvasMinMaxCtx,this.canvasMinMax().nativeElement.width,this.canvasMinMax().nativeElement.height),this.drawMinMax()))}updateCanvasUnit(){this.canvasUnitCtx&&(this.canvas.clearCanvas(this.canvasUnitCtx,this.canvasUnit().nativeElement.width,this.canvasUnit().nativeElement.height),this.drawUnit())}drawValue(){let e=this.getValueText();this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvas.drawText(this.canvasValCtx,e,Math.floor(this.canvasValue().nativeElement.width/2),Math.floor(this.canvasValue().nativeElement.height/2*1.15),this.maxValueTextWidth,this.maxValueTextHeight,"bold",this.valueStateColor)}getValueText(){if(this.dataValue===null)return"--";let e=this.widgetProperties.config.paths.numericPath.convertUnitTo;return["latitudeSec","latitudeMin","longitudeSec","longitudeMin","D HH:MM:SS"].includes(e)?this.dataValue.toString():this.applyDecorations(this.dataValue.toFixed(this.widgetProperties.config.numDecimal))}drawUnit(){let e=this.widgetProperties.config.paths.numericPath.convertUnitTo;["unitless","percent","ratio","latitudeSec","latitudeMin","longitudeSec","longitudeMin"].includes(e)||this.canvas.drawText(this.canvasUnitCtx,e,Math.floor(this.canvasUnit().nativeElement.width-10*this.canvas.scaleFactor),Math.floor(this.canvasUnit().nativeElement.height-10*this.canvas.scaleFactor),Math.floor(this.canvasUnit().nativeElement.width*.25),Math.floor(this.canvasUnit().nativeElement.height*.15),"bold",this.valueColor,"end","alphabetic")}drawMinMax(){if(!this.widgetProperties.config.showMin&&!this.widgetProperties.config.showMax)return;let e="";this.widgetProperties.config.showMin&&(e=this.minValue!=null?` Min: ${this.applyDecorations(this.minValue.toFixed(this.widgetProperties.config.numDecimal))}`:" Min: --"),this.widgetProperties.config.showMax&&(e+=this.maxValue!=null?` Max: ${this.applyDecorations(this.maxValue.toFixed(this.widgetProperties.config.numDecimal))}`:" Max: --"),e=e.trim(),this.canvas.drawText(this.canvasMinMaxCtx,e,10*this.canvas.scaleFactor,Math.floor(this.canvasMinMax().nativeElement.height-10*this.canvas.scaleFactor),this.maxMinMaxTextWidth,this.maxMinMaxTextHeight,"normal",this.valueColor,"start","alphabetic")}applyDecorations(e){switch(this.widgetProperties.config.paths.numericPath.convertUnitTo){case"percent":case"percentraw":e+="%";break;default:break}return e}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-numeric"]],viewQuery:function(t,i){t&1&&(Le(i.canvasUnit,bm,5),Le(i.canvasMinMax,_m,5),Le(i.canvasValue,wm,5)),t&2&&nt(3)},features:[pe],decls:9,vars:4,consts:[["canvasUnit",""],["canvasValue",""],["canvasMinMax",""],[3,"configChange","config","id"],[1,"textGenericWrapper",3,"onResize"],[3,"text","color"],[1,"canvas"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",3),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(1,"div",4),L("onResize",function(l){return B(o),F(i.onResized(l))}),V(2,"widget-title",5)(3,"canvas",6,0)(5,"canvas",6,1)(7,"canvas",6,2),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(2),U("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[Re,at,ot,ui],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.textGenericWrapper[_ngcontent-%COMP%]{position:absolute;display:block;width:100%;height:100%;z-index:inherit}.canvas[_ngcontent-%COMP%]{display:block;position:absolute;top:0;left:0}"]})}return r})();var Cm=["canvasValue"],qo=(()=>{class r extends Ie{canvasValue=Be.required("canvasValue");canvas=M(At);dataValue=null;_timeZoneGTM="";isDestroyed=!1;canvasCtx;labelColor=void 0;valueColor=void 0;maxTextWidth=0;maxTextHeight=0;constructor(){super(),this.defaultConfig={displayName:"Time Label",filterSelfPaths:!0,paths:{gaugePath:{description:"String Data",path:null,source:null,pathType:"Date",isPathConfigurable:!0,sampleTime:500}},dateFormat:"dd/MM/yyyy HH:mm:ss",dateTimezone:"Atlantic/Azores",color:"contrast",enableTimeout:!1,dataTimeout:5},Se(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.drawValue())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.canvas.setHighDPISize(this.canvasValue().nativeElement,this.canvasValue().nativeElement.parentElement.getBoundingClientRect()),this.canvasCtx=this.canvasValue().nativeElement.getContext("2d"),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),!this.isDestroyed&&(this.getColors(this.widgetProperties.config.color),this.startWidget())}startWidget(){this._timeZoneGTM=this.getGMTOffset(this.widgetProperties.config.dateTimezone),this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{this.dataValue=e.data.value,this.drawValue()})}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.startWidget(),this.drawValue()}ngOnDestroy(){this.isDestroyed=!0,this.destroyDataStreams(),this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvasValue().nativeElement.remove()}getGMTOffset(e){try{if(e==="System Timezone -")return"";let o=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"short"}).formatToParts(new Date).find(a=>a.type==="timeZoneName");return o?o.value:"GMT"}catch(t){return console.error(`Error getting GMT offset for timezone "${e}":`,t),"GMT"}}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,e.contentRect),this.canvasCtx=this.canvasValue().nativeElement.getContext("2d"),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.7),!this.isDestroyed&&this.drawValue())}drawValue(){if(!this.canvasCtx)return;let e;if(this.canvas.clearCanvas(this.canvasCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),isNaN(Date.parse(this.dataValue)))e="--";else try{e=Hl(this.dataValue,this.widgetProperties.config.dateFormat,"en-US",this._timeZoneGTM)}catch(t){e=t,console.log("[Date Time Widget]: "+t)}this.canvas.drawText(this.canvasCtx,e,Math.floor(this.canvasValue().nativeElement.width/2),Math.floor(this.canvasValue().nativeElement.height/2*1.15),this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-datetime"]],viewQuery:function(t,i){t&1&&Le(i.canvasValue,Cm,5),t&2&&nt()},features:[pe],decls:5,vars:4,consts:[["canvasValue",""],[3,"configChange","config","id"],[1,"dateGenericWrapper",3,"onResize"],[2,"z-index","inherit"],[3,"text","color"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(1,"div",2),L("onResize",function(l){return B(o),F(i.onResized(l))}),V(2,"canvas",3,0)(4,"widget-title",4),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(4),U("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[Re,at,ot,ui],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}canvas[_ngcontent-%COMP%]{position:absolute;display:block;top:0;left:0}.dateGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}"]})}return r})();var vc=(()=>{class r{data=q(null,{alias:"controlData"});theme=q(null);dimensions=q.required();toggleClick=Yi();toggleOff="0 35 180 35";toggleOn="0 0 180 35";ctrlState=null;ctrlColor="";oldTheme=null;viewBox=this.toggleOff;labelColor=null;valueColor=null;constructor(){}ngDoCheck(){let e=this.data();e.value!=this.ctrlState&&(this.ctrlState=e.value,this.viewBox=e.value?this.toggleOn:this.toggleOff),e.color!=this.ctrlColor&&(this.ctrlColor=e.color,this.getColors(e.color));let t=this.theme();this.oldTheme!=t&&(this.oldTheme=t,this.getColors(e.color))}toggle(e){let t=this.data();t.value=e,this.toggleClick.emit(t)}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["app-svg-boolean-light"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:20,vars:8,consts:[["version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs1"],["id","linearGradient32"],["offset","0","id","stop32",2,"stop-color","#000000","stop-opacity","0.88486844"],["offset","1","id","stop33",2,"stop-color","#f7f7f7","stop-opacity","0.17763157"],[0,"xlink","href","#linearGradient32","id","linearGradient33","x1","7.0431595","y1","17.869596","x2","39.043159","y2","17.869596","gradientUnits","userSpaceOnUse"],["id","disabled","transform","translate(0,35)"],["width","180","height","35","id","rect1-5","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["x","0","y","0","width","175","height","35","viewBox","0 0 175 35"],["id","text1-5","x","47.083984","y","22.636719",2,"text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","disabledToogleControl"],["cx","18","cy","16","fill","#9f9f9f","id","circle3-7","r","13.5",2,"stroke-width","5","stroke","url(#linearGradient33)","stroke-opacity","0.2","stroke-dasharray","none"],["id","enabled"],["width","180","height","35","id","rect1","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","text1","x","47.083984","y","22.636719",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","enabledToogleControl"],["cx","18","cy","16","id","circle3","r","13.5",2,"stroke","url(#linearGradient33)","stroke-width","5","stroke-opacity","0.2","stroke-dasharray","none"]],template:function(t,i){t&1&&(Xe(),v(0,"svg",0)(1,"defs",1)(2,"linearGradient",2),V(3,"stop",3)(4,"stop",4),w(),V(5,"linearGradient",5),w(),v(6,"g",6),V(7,"rect",7),v(8,"svg",8)(9,"text",9),D(10),w()(),v(11,"g",10),V(12,"circle",11),w()(),v(13,"g",12),V(14,"rect",13),v(15,"svg",8)(16,"text",14),D(17),w()(),v(18,"g",15),V(19,"circle",16),w()()()),t&2&&(ce("height",i.dimensions().height)("width",i.dimensions().width)("viewBox",i.viewBox),P(9),ce("fill",i.labelColor),P(),pt(" ",i.data().ctrlLabel," "),P(6),ce("fill",i.valueColor),P(),pt("",i.data().ctrlLabel," "),P(2),ce("fill",i.valueColor))},encapsulation:2})}return r})();var yc=(()=>{class r{data=q(null,{alias:"controlData"});theme=q(null);dimensions=q.required();toggleClick=Yi();toggleOff="0 35 180 35";toggleOn="0 0 180 35";oldTheme=null;timeoutHandler=null;pressed=!1;isSwiping=!1;pointerStartX=0;pointerStartY=0;viewBox=this.toggleOff;labelColorEnabled=null;labelColorDisabled=null;valueColor=null;ctrlColor="";ngDoCheck(){this.viewBox=this.pressed?this.toggleOn:this.toggleOff;let e=this.data();e.color!=this.ctrlColor&&(this.ctrlColor=e.color,this.getColors(e.color));let t=this.theme();this.oldTheme!=t&&(this.oldTheme=t,this.getColors(this.data().color))}handleClickDown(e){this.isSwiping=!1,this.pointerStartX=e.clientX,this.pointerStartY=e.clientY,this.timeoutHandler=setTimeout(()=>{if(!this.isSwiping){this.pressed=!0;let t=er(this.data());t.value=this.pressed,this.toggleClick.emit(t),this.timeoutHandler=setInterval(()=>{this.toggleClick.emit(t)},100)}},200)}handlePointerMove(e){let t=Math.abs(e.clientX-this.pointerStartX),i=Math.abs(e.clientY-this.pointerStartY);(t>30||i>30)&&(this.isSwiping=!0,this.timeoutHandler&&(clearTimeout(this.timeoutHandler),this.timeoutHandler=null))}handleClickUp(){if(this.isSwiping){this.isSwiping=!1;return}this.pressed=!1,this.timeoutHandler&&(clearInterval(this.timeoutHandler),this.timeoutHandler=null)}getColors(e){switch(e){case"contrast":this.labelColorEnabled="black",this.labelColorDisabled=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColorEnabled=this.theme().contrast,this.labelColorDisabled=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColorEnabled="black",this.labelColorDisabled=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["app-svg-boolean-button"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:15,vars:8,consts:[["version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs9"],[3,"pointerup","pointerleave","pointerdown","pointermove"],["id","disabled","transform","translate(0,35)"],["id","clickRecDisabled","width","180","height","35","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","buttonDisabled","width","165.02518","height","25.025183","rx","3.6672263","x","7.4874101","y","4.9874086",2,"display","inline","mix-blend-mode","normal","fill","#9f9f9f","fill-opacity","0.972549","stroke","#ffffff","stroke-width","1.5","stroke-dasharray","none","stroke-opacity","0.2"],["x","12","y","0","width","156","height","35","viewBox","0 0 156 35"],["id","textDisabled","x","77.968102","y","22",2,"text-anchor","middle","text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["id","enabled"],["width","180","height","35","id","rect1","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","buttonEnabled","width","165.02518","height","25.025183","rx","3.6672263","x","5.9874086","y","4.9874086","transform","translate(1.5)",2,"display","inline","opacity","1","mix-blend-mode","normal","stroke","#000000","stroke-width","1.5","stroke-dasharray","none","stroke-opacity","0.2"],["id","textEnabled","x","77.968102","y","22",2,"text-anchor","middle","text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"]],template:function(t,i){t&1&&(Xe(),v(0,"svg",0),V(1,"defs",1),v(2,"g",2),L("pointerup",function(){return i.handleClickUp()})("pointerleave",function(){return i.handleClickUp()})("pointerdown",function(a){return i.handleClickDown(a)})("pointermove",function(a){return i.handlePointerMove(a)}),v(3,"g",3),V(4,"rect",4)(5,"rect",5),v(6,"svg",6)(7,"text",7),D(8),w()()(),v(9,"g",8),V(10,"rect",9)(11,"rect",10),v(12,"svg",6)(13,"text",11),D(14),w()()()()()),t&2&&(ce("height",i.dimensions().height)("width",i.dimensions().width)("viewBox",i.viewBox),P(7),ce("fill",i.labelColorDisabled),P(),pt(" ",i.data().ctrlLabel," "),P(3),ce("fill",i.valueColor),P(2),ce("fill",i.labelColorEnabled),P(),pt(" ",i.data().ctrlLabel," "))},encapsulation:2})}return r})();var bc=(()=>{class r{data=q(null,{alias:"controlData"});theme=q(null);dimensions=q.required();toggleClick=Yi();toggleOff="0 35 180 35";toggleOn="0 0 180 35";ctrlState=null;oldTheme=null;isSwiping=!1;pointerStartX=0;pointerStartY=0;viewBox=this.toggleOff;labelColor=null;valueColor=null;ctrlColor="";constructor(){}ngDoCheck(){let e=this.data();e.value!=this.ctrlState&&(this.ctrlState=e.value,this.viewBox=e.value?this.toggleOn:this.toggleOff),e.color!=this.ctrlColor&&(this.ctrlColor=e.color,this.getColors(e.color));let t=this.theme();this.oldTheme!=t&&(this.oldTheme=t,this.getColors(e.color))}onPointerDown(e){this.isSwiping=!1,this.pointerStartX=e.clientX,this.pointerStartY=e.clientY}onPointerMove(e){let t=Math.abs(e.clientX-this.pointerStartX),i=Math.abs(e.clientY-this.pointerStartY);(t>30||i>30)&&(this.isSwiping=!0)}onPointerUp(e,t){if(this.isSwiping){this.isSwiping=!1;return}this.toggle(t)}toggle(e){let t=this.data();t.value=e,this.toggleClick.emit(t)}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["app-svg-boolean-switch"]],inputs:{data:[1,"controlData","data"],theme:[1,"theme"],dimensions:[1,"dimensions"]},outputs:{toggleClick:"toggleClick"},decls:18,vars:8,consts:[["version","1.1","id","svg9","xmlns","http://www.w3.org/2000/svg",0,"xmlns","svg","http://www.w3.org/2000/svg"],["id","defs9"],["id","disabled","transform","translate(0,35)",3,"pointerdown","pointermove","pointerup"],["width","180","height","35","id","rect1-5","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["x","0","y","0","width","175","height","35","viewBox","0 0 175 35"],["id","text1-5","x","47.083984","y","22.636719",2,"text-align","center","font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","disabledToogleControl"],["width","37.714306","height","22","rx","10.999999","id","rect3-4","x","0","y","5",2,"stroke-width","1.57144","fill","#9f9f9f","fill-opacity","0.97216702"],["cx","11.5","cy","16","fill","#ffffff","id","circle3-7","r","10",2,"stroke-width","1.5","stroke","black","stroke-opacity","0.2","stroke-dasharray","none"],["id","enabled",3,"pointerdown","pointermove","pointerup"],["width","180","height","35","id","rect1","x","0","y","0",2,"display","inline","opacity","1","fill","black","fill-opacity","0","stroke","none","stroke-width","0","stroke-dasharray","none","stroke-opacity","1"],["id","text1","x","47.083984","y","22.636719",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","14px","font-family","arial","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["transform","translate(6,2)","id","enabledToogleControl"],["width","37.714306","height","22","rx","10.999999","id","rect3","x","0","y","5",2,"stroke-width","1.57144"],["cx","26.5","cy","16","fill","#ffffff","id","circle3","r","10",2,"stroke-width","1.5","stroke","black","stroke-opacity","0.2","stroke-dasharray","none"]],template:function(t,i){t&1&&(Xe(),v(0,"svg",0),V(1,"defs",1),v(2,"g",2),L("pointerdown",function(a){return i.onPointerDown(a)})("pointermove",function(a){return i.onPointerMove(a)})("pointerup",function(a){return i.onPointerUp(a,!0)}),V(3,"rect",3),v(4,"svg",4)(5,"text",5),D(6),w()(),v(7,"g",6),V(8,"rect",7)(9,"circle",8),w()(),v(10,"g",9),L("pointerdown",function(a){return i.onPointerDown(a)})("pointermove",function(a){return i.onPointerMove(a)})("pointerup",function(a){return i.onPointerUp(a,!1)}),V(11,"rect",10),v(12,"svg",4)(13,"text",11),D(14),w()(),v(15,"g",12),V(16,"rect",13)(17,"circle",14),w()()()),t&2&&(ce("height",i.dimensions().height)("width",i.dimensions().width)("viewBox",i.viewBox),P(5),ce("fill",i.labelColor),P(),pt(" ",i.data().ctrlLabel," "),P(7),ce("fill",i.valueColor),P(),pt("",i.data().ctrlLabel," "),P(2),ce("fill",i.valueColor))},encapsulation:2})}return r})();function Sm(r,n){if(r&1){let e=ee();v(0,"app-svg-boolean-switch",6),L("toggleClick",function(i){B(e);let o=ie(2);return F(o.toggle(i))}),w()}if(r&2){let e=ie().$implicit,t=ie();U("controlData",e)("theme",t.theme())("dimensions",t.ctrlDimensions)}}function km(r,n){if(r&1){let e=ee();v(0,"app-svg-boolean-button",6),L("toggleClick",function(i){B(e);let o=ie(2);return F(o.toggle(i))}),w()}if(r&2){let e=ie().$implicit,t=ie();U("controlData",e)("theme",t.theme())("dimensions",t.ctrlDimensions)}}function Tm(r,n){if(r&1){let e=ee();v(0,"app-svg-boolean-light",6),L("toggleClick",function(i){B(e);let o=ie(2);return F(o.toggle(i))}),w()}if(r&2){let e=ie().$implicit,t=ie();U("controlData",e)("theme",t.theme())("dimensions",t.ctrlDimensions)}}function xm(r,n){if(r&1&&(po(0),De(1,Sm,1,3,"app-svg-boolean-switch",5)(2,km,1,3,"app-svg-boolean-button",5)(3,Tm,1,3,"app-svg-boolean-light",5),fo()),r&2){let e,t=n.$implicit;P(),Me((e=t.type)==="1"?1:e==="2"?2:e==="3"?3:-1)}}function Em(r,n){r&1&&V(0,"div",4)}var _c=(()=>{class r extends Ie{dashboard=M(ct);signalkRequestsService=M(rn);appService=M(Dt);switchControls=Ge([]);skRequestSub=new ao;labelColor=void 0;nbCtrl=null;ctrlDimensions={width:0,height:0};constructor(){super(),this.defaultConfig={displayName:"Switch Panel Label",filterSelfPaths:!0,paths:[],enableTimeout:!1,dataTimeout:5,color:"contrast",putEnable:!0,putMomentary:!1,multiChildCtrls:[]},Se(()=>{this.theme()&&this.getColors(this.widgetProperties.config.color)})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.startWidget()}startWidget(){this.nbCtrl=this.widgetProperties.config.multiChildCtrls.length,this.switchControls.set([]),this.widgetProperties.config.multiChildCtrls.forEach(e=>{e.isNumeric||(e.isNumeric=!1),this.switchControls().push(X({},e))}),this.unsubscribeDataStream();for(let e in this.switchControls())if(Object.prototype.hasOwnProperty.call(this.switchControls(),e)){let t=this.switchControls()[e];this.observeDataStream(e,i=>{t.isNumeric?[0,1,null].includes(i.data.value)&&(t.value=!!i.data.value):t.value=i.data.value})}this.skRequestSub?.unsubscribe(),this.subscribeSKRequest()}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.startWidget()}onResized(e){let t=e.contentRect.height/this.nbCtrl,i=35*e.contentRect.width/180,o=i<t?i:t;this.ctrlDimensions={width:e.contentRect.width,height:o}}subscribeSKRequest(){this.skRequestSub=this.signalkRequestsService.subscribeRequest().subscribe(e=>{if(e.widgetUUID==this.widgetProperties.uuid){let t=`Toggle Widget ${this.widgetProperties.config.displayName}: `;e.statusCode!=200&&(e.message?t+=e.message:t+=e.statusCode+" - "+e.statusCodeDescription,this.appService.sendSnackbarNotification(t,0))}})}toggle(e){let i=this.widgetProperties.config.paths.findIndex(o=>o.pathID==e.pathID);e.isNumeric?this.signalkRequestsService.putRequest(this.widgetProperties.config.paths[i].path,e.value?1:0,this.widgetProperties.uuid):this.signalkRequestsService.putRequest(this.widgetProperties.config.paths[i].path,e.value,this.widgetProperties.uuid)}getColors(e){switch(e){case"contrast":this.labelColor=this.theme().contrastDim;break;case"blue":this.labelColor=this.theme().blueDim;break;case"green":this.labelColor=this.theme().greenDim;break;case"pink":this.labelColor=this.theme().pinkDim;break;case"orange":this.labelColor=this.theme().orangeDim;break;case"purple":this.labelColor=this.theme().purpleDim;break;case"grey":this.labelColor=this.theme().greyDim;break;case"yellow":this.labelColor=this.theme().yellowDim;break;default:this.labelColor=this.theme().contrastDim;break}}ngOnDestroy(){this.destroyDataStreams(),this.skRequestSub?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-boolean-switch"]],features:[pe],decls:7,vars:5,consts:[["widgetContainer",""],[3,"configChange","config","id"],[3,"text","color"],[1,"widgets-container",3,"onResize"],[1,"widgetOverlay"],[1,"svg-widget",3,"controlData","theme","dimensions"],[1,"svg-widget",3,"toggleClick","controlData","theme","dimensions"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),V(1,"widget-title",2),v(2,"div",3,0),L("onResize",function(l){return B(o),F(i.onResized(l))}),xi(4,xm,4,1,"ng-container",null,Yn),w(),De(6,Em,1,0,"div",4),w()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("text",i.widgetProperties.config.displayName)("color",i.labelColor),P(3),Ei(i.switchControls()),P(2),Me(i.dashboard.isDashboardStatic()?-1:6))},dependencies:[Re,at,ot,bc,yc,vc,ui],styles:[".widgets-container[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20}.svg-widget[_ngcontent-%COMP%]{display:flex}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}"]})}return r})();function Mi(r,n,e,t=1e3,i,o,a=[500,500]){if(o){let _=o.get(r);_&&cancelAnimationFrame(_)}n=(()=>{let _=r.getAttribute("transform");if(_){let T=/rotate\((-?\d+(\.\d+)?)/.exec(_);if(T)return parseFloat(T[1])}return n})();let d=_=>(_+360)%360;n=d(n),e=d(e);let p=e-n;p>180&&(p-=360),p<-180&&(p+=360);let s=_=>_<.5?4*_*_*_:1-Math.pow(-2*_+2,3)/2,c=performance.now(),m=_=>{let T=_-c,E=Math.min(T/t,1),z=s(E),Y=n+p*z;if(r.setAttribute("transform",`rotate(${Y} ${a[0]} ${a[1]})`),E<1){let te=requestAnimationFrame(m);o&&o.set(r,te)}else r.setAttribute("transform",`rotate(${e} ${a[0]} ${a[1]})`),i&&i(),o&&o.delete(r)},y=requestAnimationFrame(m);o&&o.set(r,y)}function Br(r,n,e,t=500,i,o){if(o){let c=o.get(r);c&&cancelAnimationFrame(c)}let a=performance.now(),l=e-n,d=c=>c<.5?4*c*c*c:1-Math.pow(-2*c+2,3)/2,p=c=>{let m=c-a,y=Math.min(m/t,1),_=d(y),T=n+l*_;if(r.setAttribute("width",T.toString()),y<1){let E=requestAnimationFrame(p);o&&o.set(r,E)}else r.setAttribute("width",e.toString()),i&&i(),o&&o.delete(r)},s=requestAnimationFrame(p);o&&o.set(r,s)}var Pm=["rotatingDial"],Dm=["awaIndicator"],Mm=["rudderStarboardRect"],Am=["rudderPortRect"],wc=(()=>{class r{rotatingDial=Be.required("rotatingDial");awaIndicator=Be.required("awaIndicator");rudderStarboardRect=Be.required("rudderStarboardRect");rudderPortRect=Be.required("rudderPortRect");apMode=q("off-line");targetPilotHeading=q.required();targetWindAngleHeading=q.required();rudderAngle=q.required();courseXte=q.required();compassHeading=q.required();appWindAngle=q.required();targetPilotHeadingTrue=q.required();headingDirectionTrue=q.required();compass={oldValue:0,newValue:0};awa={oldValue:0,newValue:0};oldRudderPrtAngle=0;newRudderPrtAngle=0;oldRudderStbAngle=0;newRudderStbAngle=0;apModeValue=Ge("");apModeValueAnnotation=Ge("");apModeValueDirection=Ge("");apTWA=Ct(()=>{let e=parseFloat(this.targetWindAngleHeading().toFixed(0));if(e!=null)return e});lockedMode=Ct(()=>{let e=this.apMode();return e==="auto"||e==="compass"?"Heading Hold":e==="gps"?"GPS Hold":e==="route"||e==="nav"?"Track":e==="wind"?"Wind Hold":e==="wind true"?"Wind True Hold":e==="standby"?"Standby":"Off-line"});lockedHdg=Ct(()=>{let e=parseFloat(this.targetPilotHeading().toFixed(0)),t=parseFloat(this.targetWindAngleHeading().toFixed(0));switch(this.apMode()){case"auto":return e;case"route":return e;case"wind":return t;default:return"--"}});lockedHdgAnnotation=Ct(()=>{let e=this.apMode();return e==="route"||e==="auto"?this.targetPilotHeadingTrue()?"True":"Mag":e==="wind"&&typeof this.lockedHdg()=="number"?this.lockedHdg()>0?"Stbd":"Port":""});hdgDirectionTrue=Ct(()=>this.headingDirectionTrue()?"T":"M");animationFrameIds=new WeakMap;rudderAnimationFrames=new WeakMap;ANIMATION_DURATION=1e3;DEG_TO_PX=16.66666667;constructor(){Se(()=>{if(this.compassHeading()===null||this.compassHeading()===void 0)return;let e=parseFloat(this.compassHeading().toFixed(0));Nt(()=>{this.compass.oldValue=this.compass.newValue,this.compass.newValue=e,this.rotatingDial()?.nativeElement&&Mi(this.rotatingDial().nativeElement,-this.compass.oldValue,-this.compass.newValue,500,void 0,this.animationFrameIds,[500,560.061])})}),Se(()=>{let t=(parseFloat(this.appWindAngle().toFixed(0))+360)%360;Nt(()=>{this.awa.oldValue=this.awa.newValue,this.awa.newValue=t,this.awaIndicator()?.nativeElement&&Mi(this.awaIndicator().nativeElement,this.awa.oldValue,this.awa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds,[500,560.061])})}),Se(()=>{let e=this.rudderAngle();e!=null&&Nt(()=>{this.updateRudderAngle(-e)})}),Se(()=>{let e=this.apMode(),t=parseFloat(this.appWindAngle().toFixed(0)),i=this.courseXte();Nt(()=>{switch(e){case"auto":case"route":{let o,a,l;i<0?l=" Port":i>0?l=" Stbd":l="",i=Math.abs(i),i>999?(o=(i/1e3).toFixed(1),a=" km"):(o=i.toFixed(0),a=" m"),this.apModeValueAnnotation.set(a),this.apModeValue.set(o),this.apModeValueDirection.set(l);break}case"standby":this.apModeValueAnnotation.set(""),this.apModeValue.set(""),this.apModeValueDirection.set("");break;case"wind":this.apModeValueAnnotation.set(t?t>0?"S":"P":""),this.apModeValue.set(Math.abs(t)+"\xB0"),this.apModeValueDirection.set("");break;default:this.apModeValueAnnotation.set(""),this.apModeValue.set(""),this.apModeValueDirection.set("");break}})})}updateRudderAngle(e){let i=Math.min(Math.abs(e),30)*this.DEG_TO_PX;e<=0?(Br(this.rudderStarboardRect().nativeElement,this.oldRudderStbAngle,i,500,void 0,this.rudderAnimationFrames),Br(this.rudderPortRect().nativeElement,this.oldRudderPrtAngle,0,500,void 0,this.rudderAnimationFrames),this.oldRudderStbAngle=i,this.oldRudderPrtAngle=0):(Br(this.rudderPortRect().nativeElement,this.oldRudderPrtAngle,i,500,void 0,this.rudderAnimationFrames),Br(this.rudderStarboardRect().nativeElement,this.oldRudderStbAngle,0,500,void 0,this.rudderAnimationFrames),this.oldRudderPrtAngle=i,this.oldRudderStbAngle=0)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["app-svg-autopilot"]],viewQuery:function(t,i){t&1&&(Le(i.rotatingDial,Pm,5),Le(i.awaIndicator,Dm,5),Le(i.rudderStarboardRect,Mm,5),Le(i.rudderPortRect,Am,5)),t&2&&nt(4)},inputs:{apMode:[1,"apMode"],targetPilotHeading:[1,"targetPilotHeading"],targetWindAngleHeading:[1,"targetWindAngleHeading"],rudderAngle:[1,"rudderAngle"],courseXte:[1,"courseXte"],compassHeading:[1,"compassHeading"],appWindAngle:[1,"appWindAngle"],targetPilotHeadingTrue:[1,"targetPilotHeadingTrue"],headingDirectionTrue:[1,"headingDirectionTrue"]},decls:123,vars:17,consts:[["rotatingDial",""],["awaIndicator",""],["rudderStarboardRect",""],["rudderPortRect",""],["viewBox","0 0 1000 500","preserveAspectRatio","xMidYMid meet"],["id","compassDial"],["id","fixedDial"],["d","M 499.99997,70.521 A 489.47916,489.47916 0 0 0 10.520805,560.00017 489.47916,489.47916 0 0 0 499.99997,1049.4793 489.47916,489.47916 0 0 0 989.47913,560.00017 489.47916,489.47916 0 0 0 499.99997,70.521 Z m 0,132.29166 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"fixed-dial-background",2,"display","inline","stroke","none"],["d","M 93.283801,325.18249 A 469.63541,469.63541 0 0 1 339.37522,118.68726",1,"port",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["d","M 660.62476,118.68725 A 469.63541,469.63541 0 0 1 906.71619,325.18247",1,"starboard",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],[2,"display","inline"],["transform","translate(0,59.999714)"],["d","m 416.35095,19.837399 2.78142,15.77426","id","path199",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 334.23173,41.658798 5.47834,15.051615","id","path200",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 260.27336,81.806174 12.55151,21.739856","id","path37",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 187.44581,126.00035 10.29591,12.2702","id","path197",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 127.23918,185.95785 12.27019,10.29591","id","path198",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 83.252815,257.66724 21.739865,12.55151","id","path166",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 42.289518,332.39273 15.05162,5.47835","id","path195",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 20.127799,414.42077 15.774251,2.78142","id","path196",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 17.879075,498.47765 H 42.982096","id","path167",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 19.776759,583.71187 15.77426,-2.78142","id","path193",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 41.598167,665.8311 15.051615,-5.47834","id","path194",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 81.668963,739.71246 103.40883,727.16095","id","path168",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 125.93981,812.61701 12.2702,-10.29591","id","path191",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 185.89732,872.82365 10.29591,-12.27019","id","path192",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 257.53004,916.73298 12.55151,-21.73985","id","path169",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 332.33219,957.7732 5.47835,-15.05162","id","path189",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 414.36024,979.93493 2.78142,-15.77425","id","path190",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 498.34046,982.10672 V 957.0037","id","path170",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 583.65133,980.28596 580.86991,964.5117","id","path187",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 665.77057,958.46456 -5.47834,-15.05161","id","path188",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 739.57526,918.31683 727.02375,896.57698","id","path171",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 812.55647,874.12301 802.26056,861.85282","id","path185",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 872.76312,814.16551 860.49293,803.8696","id","path186",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 916.59579,742.45577 894.85593,729.90426","id","path172",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 957.71266,667.73063 -15.05161,-5.47834","id","path183",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 979.8744,585.70259 -15.77425,-2.78142","id","path184",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 981.96954,501.64535 -25.10304,10e-6","id","path173",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 980.22542,416.41149 -15.77425,2.78143","id","path181",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 958.40403,334.29226 -15.05161,5.47834","id","path182",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 918.17964,260.41055 -21.73986,12.55151","id","path174",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 874.06247,187.50636 -12.27018,10.29591","id","path180",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 817.34594,130.05494 -10.40259,12.17987","id","path179",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 742.31857,83.390025 729.76706,105.12988","id","path175",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 667.6701,42.350172 -5.47834,15.051615","id","path178",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 585.64206,20.188432 -2.78142,15.77425","id","path176",1,"contrast-text",2,"display","inline","fill","none","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 501.50816,18.016286 V 43.119307","id","path177",1,"contrast-text",2,"display","inline","fill","none","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","lightGray","d","M 499.99997,50.208304 A 449.79166,449.79166 0 0 0 50.208304,499.99997 449.79166,449.79166 0 0 0 499.99997,949.79163 449.79166,449.79166 0 0 0 949.79163,499.99997 449.79166,449.79166 0 0 0 499.99997,50.208304 Z m 0,92.604166 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"rotating-dial-Backplate",2,"display","inline","fill-opacity","1","stroke","none"],[0,"xml","space","preserve","x","181.91386","y","284.25186","id","text3","transform","rotate(-30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan3","x","181.91386","y","284.25186",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-183.53558","y","283.74811","id","text14","transform","rotate(-60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan14","x","-183.53558","y","283.74811",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-499.70761","y","100.95312","id","text15","transform","rotate(-90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan15","x","-499.70761","y","100.95312",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.66119","y","-216.36243","id","text16","transform","rotate(-120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["x","-681.66119","y","-216.36243","id","tspan25",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.06616","y","-581.71271","id","text17","transform","rotate(-150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan17","x","-681.06616","y","-581.71271",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-498.3313","y","-897.40875","id","text18","transform","scale(-1)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan18","x","-498.3313","y","-897.40875",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-184.41313","y","-1080.8452","id","text19","transform","rotate(150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan19","x","-184.41313","y","-1080.8452",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","181.57225","y","-1080.8853","id","text20","transform","rotate(120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan20","x","181.57225","y","-1080.8853",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","501.42661","y","-896.93701","id","text21","transform","rotate(90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan21","x","501.42661","y","-896.93701",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","682.35815","y","-579.63336","id","text22","transform","rotate(60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan22","x","682.35815","y","-579.63336",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","681.81525","y","-214.27321","id","text23","transform","rotate(30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan23","x","681.81525","y","-214.27321",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","500.15503","y","101.96342","id","text24",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan24","x","500.15503","y","101.96342",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],["id","triangle","d","M 499.5601,155 450,197 h 100 z",1,"fixed-dial-background",2,"display","inline","stroke","none"],["id","counterAWA",2,"display","inline"],[0,"xml","space","preserve","x","910.14893","y","90.67927",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[0,"xml","space","preserve","x","907.84814","y","160.33212",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","73.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","33.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],[0,"xml","space","preserve","x","910.14893","y","200",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","34.6667px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[0,"xml","space","preserve","x","97","y","90.47614",1,"contrast-text-dim",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","33.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],[0,"xml","space","preserve","x","109.25","y","160.33212",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","73.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["id","displayArea",2,"display","inline"],[0,"xml","space","preserve","x","523.93127","y","475.13757",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","240px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["dy","-38",2,"font-weight","normal","font-size","180px"],[0,"xml","space","preserve","x","720","y","484",1,"contrast-text-dim",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","33.3333px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","fill-opacity","1","stroke","none"],[0,"xml","space","preserve","x","500","y","280",1,"contrast-text-dim",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","45px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none"],["id","IndicatorsLayer",2,"display","inline"],["transform","matrix(0.78967872,0,0,0.78967872,95.846484,6.0520865)"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.7935953,0,0,0.92686935,113.64335,37.878309)",1,"awa-text",2,"stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","486.45618","y","136.29939",1,"card-color",2,"font-weight","bold","font-size","52.9167px","stroke","none"],["id","tspan8","x","486.45618","y","136.29939",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","70.5556px","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","fill","#001000","fill-opacity","1","stroke","none","stroke-width","14.5521"],["id","rudder",2,"display","inline"],["width","0","height","35","x","500","y","0",1,"rudderStarboard",2,"display","inline","opacity","1","fill-opacity","1","stroke","none"],["width","0","height","35","x","-500","y","0","transform","scale(-1,1)",1,"rudderPort",2,"display","inline","opacity","1","fill-opacity","1","stroke","none"],["width","331.54941","height","33.216152","x","167.55841","y","0.89179999",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["width","331.54941","height","33.216152","x","500.89182","y","0.89179999",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["width","331.54941","height","33.216152","x","334.22531","y","0.89179999",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","rect12","width","998.26178","height","33.261108","x","0.86909997","y","0.86909997",1,"boxes",2,"display","inline","opacity","1","fill","none","stroke-width","2","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"]],template:function(t,i){t&1&&(Xe(),v(0,"svg",4)(1,"g",5)(2,"g",6),V(3,"path",7)(4,"path",8)(5,"path",9),w(),v(6,"g",10,0)(8,"g",11),V(9,"path",12)(10,"path",13)(11,"path",14)(12,"path",15)(13,"path",16)(14,"path",17)(15,"path",18)(16,"path",19)(17,"path",20)(18,"path",21)(19,"path",22)(20,"path",23)(21,"path",24)(22,"path",25)(23,"path",26)(24,"path",27)(25,"path",28)(26,"path",29)(27,"path",30)(28,"path",31)(29,"path",32)(30,"path",33)(31,"path",34)(32,"path",35)(33,"path",36)(34,"path",37)(35,"path",38)(36,"path",39)(37,"path",40)(38,"path",41)(39,"path",42)(40,"path",43)(41,"path",44)(42,"path",45)(43,"path",46)(44,"path",47)(45,"path",48),v(46,"text",49)(47,"tspan",50),D(48,"330"),w()(),v(49,"text",51)(50,"tspan",52),D(51,"300"),w()(),v(52,"text",53)(53,"tspan",54),D(54,"W"),w()(),v(55,"text",55)(56,"tspan",56),D(57,"240"),w()(),v(58,"text",57)(59,"tspan",58),D(60,"210"),w()(),v(61,"text",59)(62,"tspan",60),D(63,"S"),w()(),v(64,"text",61)(65,"tspan",62),D(66,"150"),w()(),v(67,"text",63)(68,"tspan",64),D(69,"120"),w()(),v(70,"text",65)(71,"tspan",66),D(72,"E"),w()(),v(73,"text",67)(74,"tspan",68),D(75,"60"),w()(),v(76,"text",69)(77,"tspan",70),D(78,"30"),w()(),v(79,"text",71)(80,"tspan",72),D(81,"N"),w()()()(),V(82,"path",73),w(),v(83,"g",74)(84,"text",75),D(85),w(),v(86,"text",76),D(87),v(88,"tspan",77),D(89),w()(),v(90,"text",78),D(91),w(),v(92,"text",79),D(93,"HDG"),w(),v(94,"text",80),D(95),v(96,"tspan",77),D(97),w()()(),v(98,"g",81)(99,"text",82),D(100),v(101,"tspan",83),D(102,"\xB0"),w()(),v(103,"text",84),D(104),w(),v(105,"text",85),D(106),w()(),v(107,"g",86)(108,"g",87,1),V(110,"path",88),v(111,"text",89)(112,"tspan",90),D(113,"A"),w()()()(),v(114,"g",91),V(115,"rect",92,2)(117,"rect",93,3)(119,"rect",94)(120,"rect",95)(121,"rect",96)(122,"rect",97),w()()),t&2&&(P(84),vn(i.apMode()=="wind"?"awa-text-dim":"contrast-text-dim"),ce("display",i.apMode()=="wind"||i.apMode()=="route"?"inline":"none"),P(),pt(" ",i.apMode()==="route"?"XTE":"AWA"),P(),vn(i.apMode()=="wind"?"awa-text":"contrast-text"),ce("display",i.apMode()=="wind"||i.apMode()=="route"?"inline":"none"),P(),rt(i.apModeValue()),P(2),rt(i.apModeValueAnnotation()),P(),ce("display",i.apMode()=="route"?"inline":"none"),P(),rt(i.apModeValueDirection()),P(4),pt("",i.compass.newValue,"\xB0"),P(2),rt(i.hdgDirectionTrue()),P(3),rt(i.lockedHdg()),P(4),rt(i.lockedHdgAnnotation()),P(2),rt(i.lockedMode()),P(2),ce("display",i.apMode()=="wind"?"inline":"none"))},styles:["[_nghost-%COMP%]{display:block;width:100%;font-family:Roboto;overflow:hidden;aspect-ratio:2/1;max-width:100%;max-height:100%}svg[_ngcontent-%COMP%]{width:100%;height:100%;display:block;overflow:hidden}.starboard[_ngcontent-%COMP%]{stroke:var(--kip-starboard-color)}.port[_ngcontent-%COMP%]{stroke:var(--kip-port-color)}.contrast-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:var(--kip-contrast-color)}.contrast-text-dim[_ngcontent-%COMP%]{fill:var(--kip-contrast-dim-color);stroke:var(--kip-contrast-dim-color)}.awa-text[_ngcontent-%COMP%]{fill:var(--kip-orange-color);stroke:var(--kip-orange-color)}.awa-text-dim[_ngcontent-%COMP%]{fill:var(--kip-orange-dim-color);stroke:var(--kip-orange-dim-color)}.card-color[_ngcontent-%COMP%]{fill:var(--kip-widget-card-background-color)}.fixed-dial-background[_ngcontent-%COMP%]{fill:var(--kip-grey-color)}.rotating-dial-Backplate[_ngcontent-%COMP%]{fill:var(--mat-sys-background)}.rudderPort[_ngcontent-%COMP%]{fill:var(--kip-port-color)}.rudderStarboard[_ngcontent-%COMP%]{fill:var(--kip-starboard-color)}.boxes[_ngcontent-%COMP%]{stroke:var(--kip-grey-color);fill:var(--kip-grey-color)}"]})}return r})();var Om=["canvasValue"],jo=(()=>{class r extends Ie{canvasValue=Be.required("canvasValue");canvas=M(At);latPos="";longPos="";labelColor=void 0;valueColor=void 0;maxTextWidth=0;maxTextHeight=0;middle=0;center=0;fontSizeOffset=0;canvasValCtx;isDestroyed=!1;constructor(){super(),this.defaultConfig={displayName:"Position",filterSelfPaths:!0,paths:{longPath:{description:"Longitude",path:"self.navigation.position.longitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"longitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500},latPath:{description:"Latitude",path:"self.navigation.position.latitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"latitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},color:"contrast",enableTimeout:!1,dataTimeout:5},Se(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.drawValue())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.canvas.setHighDPISize(this.canvasValue().nativeElement,this.canvasValue().nativeElement.parentElement.getBoundingClientRect()),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.6/2),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.canvasValCtx=this.canvasValue().nativeElement.getContext("2d"),this.calculateFontSizeAndPositions(),!this.isDestroyed&&this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.observeDataStream("longPath",e=>{e.data.value===null?this.longPos="":this.widgetProperties.config.paths.longPath.convertUnitTo==="pdeg"?this.longPos=e.data.value.toFixed(6)+"\xB0":this.longPos=e.data.value.toString(),this.drawValue()}),this.observeDataStream("latPath",e=>{e.data.value===null?this.latPos="":this.widgetProperties.config.paths.latPath.convertUnitTo==="pdeg"?this.latPos=e.data.value.toFixed(7)+"\xB0":this.latPos=e.data.value.toString(),this.drawValue()})}ngOnDestroy(){this.isDestroyed=!0,this.unsubscribeDataStream(),this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvasValue().nativeElement.remove()}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.startWidget()}onResized(e){e.contentRect.height<25||e.contentRect.width<25||(this.canvas.setHighDPISize(this.canvasValue().nativeElement,this.canvasValue().nativeElement.parentElement.getBoundingClientRect()),this.maxTextHeight=Math.floor(this.canvasValue().nativeElement.height*.6/2),this.maxTextWidth=Math.floor(this.canvasValue().nativeElement.width*.85),this.calculateFontSizeAndPositions(),this.drawValue())}getColors(e){switch(e){case"white":this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break;case"blue":this.labelColor=this.theme().blueDim,this.valueColor=this.theme().blue;break;case"green":this.labelColor=this.theme().greenDim,this.valueColor=this.theme().green;break;case"pink":this.labelColor=this.theme().pinkDim,this.valueColor=this.theme().pink;break;case"orange":this.labelColor=this.theme().orangeDim,this.valueColor=this.theme().orange;break;case"purple":this.labelColor=this.theme().purpleDim,this.valueColor=this.theme().purple;break;case"grey":this.labelColor=this.theme().greyDim,this.valueColor=this.theme().grey;break;case"yellow":this.labelColor=this.theme().yellowDim,this.valueColor=this.theme().yellow;break;default:this.labelColor=this.theme().contrastDim,this.valueColor=this.theme().contrast;break}}calculateFontSizeAndPositions(){this.center=this.canvasValue().nativeElement.width/2,this.middle=this.canvasValue().nativeElement.height*.57;let e=this.latPos.length>this.longPos.length?this.latPos:this.longPos,t=this.canvas.calculateOptimalFontSize(this.canvasValCtx,e,this.maxTextWidth,this.maxTextHeight,"bold");this.fontSizeOffset=Math.floor(t*5e-4)}drawValue(){this.canvasValCtx&&(this.canvas.clearCanvas(this.canvasValCtx,this.canvasValue().nativeElement.width,this.canvasValue().nativeElement.height),this.canvas.drawText(this.canvasValCtx,this.latPos,this.center,this.middle-this.fontSizeOffset,this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor,"center","bottom"),this.canvas.drawText(this.canvasValCtx,this.longPos,this.center,this.middle+this.fontSizeOffset,this.maxTextWidth,this.maxTextHeight,"bold",this.valueColor,"center","top"))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-position"]],viewQuery:function(t,i){t&1&&Le(i.canvasValue,Om,5),t&2&&nt()},features:[pe],decls:5,vars:4,consts:[["canvasValue",""],[3,"configChange","config","id"],[3,"text","color"],[1,"textGenericWrapper",3,"onResize"],[1,"canvas"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),V(1,"widget-title",2),v(2,"div",3),L("onResize",function(l){return B(o),F(i.onResized(l))}),V(3,"canvas",4,0),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("text",i.widgetProperties.config.displayName)("color",i.labelColor))},dependencies:[Re,at,ot,ui],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}.textGenericWrapper[_ngcontent-%COMP%]{position:relative;width:100%;height:100%}.canvas[_ngcontent-%COMP%]{position:absolute;top:0;left:0;z-index:inherit}"]})}return r})();function Im(r,n){if(r&1){let e=ee();v(0,"button",18),L("click",function(){B(e);let i=ie();return F(i.toggleDodge())}),v(1,"mat-icon",19),Xe(),v(2,"svg",36)(3,"text",42),D(4,"Dodge"),w(),V(5,"path",43)(6,"path",44),v(7,"text",45),D(8,"!"),w()()()()}if(r&2){let e=ie();Pt("ap-btn-active",e.dodgeModeActive()),U("disabled",e.apBtnDisabled()),P(5),_e("fill",e.dodgeModeActive()?"currentColor":"none")("stroke","currentColor"),P(),_e("fill",e.dodgeModeActive()?"currentColor":"none")("stroke","currentColor")}}function Rm(r,n){if(r&1){let e=ee();Xe(),v(0,"g",50),L("click",function(){let i=B(e).$implicit,o=ie(2);return F(!i.disabled&&o.onMenuItemClick(i.action))})("keyup.enter",function(){let i=B(e).$implicit,o=ie(2);return F(!i.disabled&&o.onMenuItemClick(i.action))})("keyup.space",function(){let i=B(e).$implicit,o=ie(2);return F(!i.disabled&&o.onMenuItemClick(i.action))}),V(1,"rect",51),v(2,"text",52),D(3),w()()}if(r&2){let e=n.$implicit,t=n.$index,i=ie(2);ce("aria-label",e.label),P(),vn(e.isCancel?"svg-menu-item-cancel":e.current?"svg-menu-item-current":e.disabled?"svg-menu-item-disabled":"svg-menu-item"),ce("y",t*i.itemHeight)("height",i.itemHeight),P(),vn(e.isCancel?"svg-menu-item-cancel-text":e.current?"svg-menu-item-current-text":e.disabled?"svg-menu-item-disabled-text":"svg-menu-item-text"),ce("y",(t+.65)*i.itemHeight),P(),Wl(" ",e.current?"\u2713 ":"","",e.label," ")}}function Nm(r,n){if(r&1){let e=ee();v(0,"div",46),L("click",function(){B(e);let i=ie();return F(i.toggleMenu())})("keyup.enter",function(){B(e);let i=ie();return F(i.toggleMenu())})("keyup.space",function(){B(e);let i=ie();return F(i.toggleMenu())}),Xe(),v(1,"svg",47),L("click",function(i){return B(e),F(i.stopPropagation())})("keyup.enter",function(i){return B(e),F(i.stopPropagation())})("keyup.space",function(i){return B(e),F(i.stopPropagation())}),V(2,"rect",48),po(3),xi(4,Rm,4,10,":svg:g",49,Yn),fo(),w()()}if(r&2){let e=ie();P(),ce("viewBox","0 0 240 "+e.menuItems().length*e.itemHeight),P(),ce("height",e.menuItems().length*e.itemHeight),P(2),Ei(e.menuItems())}}function Wm(r,n){r&1&&V(0,"div",41)}var bi={V1_MODE_PATH:"self.steering.autopilot.state",V2_BASE:"/signalk/v2/api",V2_AUTOPILOTS:"/signalk/v2/api/vessels/self/autopilots",V2_COURSE:"/signalk/v2/api/vessels/self/navigation/course"},an={BASE:r=>`${bi.V2_AUTOPILOTS}/${r}`,ENGAGE:r=>`${bi.V2_AUTOPILOTS}/${r}/engage`,DISENGAGE:r=>`${bi.V2_AUTOPILOTS}/${r}/disengage`,MODE:r=>`${bi.V2_AUTOPILOTS}/${r}/mode`,TARGET_HEADING:r=>`${bi.V2_AUTOPILOTS}/${r}/target`,TACK:r=>`${bi.V2_AUTOPILOTS}/${r}/tack`,GYBE:r=>`${bi.V2_AUTOPILOTS}/${r}/gybe`,DODGE:r=>`${bi.V2_AUTOPILOTS}/${r}/dodge`,ADJUST_HEADING:r=>`${bi.V2_AUTOPILOTS}/${r}/target/adjust`},us={auto:{path:"self.steering.autopilot.state",value:"auto"},wind:{path:"self.steering.autopilot.state",value:"wind"},route:{path:"self.steering.autopilot.state",value:"route"},standby:{path:"self.steering.autopilot.state",value:"standby"},"+1":{path:"self.steering.autopilot.actions.adjustHeading",value:1},"+10":{path:"self.steering.autopilot.actions.adjustHeading",value:10},"-1":{path:"self.steering.autopilot.actions.adjustHeading",value:-1},"-10":{path:"self.steering.autopilot.actions.adjustHeading",value:-10},tackToPort:{path:"self.steering.autopilot.actions.tack",value:"port"},tackToStarboard:{path:"self.steering.autopilot.actions.tack",value:"starboard"},advanceWaypoint:{path:"self.steering.autopilot.actions.advanceWaypoint",value:"1"},compass:{path:"v2 only command",value:"v2 only command"},gps:{path:"v2 only command",value:"v2 only command"},"true wind":{path:"v2 only command",value:"v2 only command"},nav:{path:"v2 only command",value:"v2 only command"}},ms={COUNTDOWN_SECONDS:5,ERROR_DISPLAY_DURATION:6e3,MESSAGE_DISPLAY_DURATION:5e3},Cc=(()=>{class r extends Ie{signalkRequestsService=M(rn);http=M(Yl);dashboard=M(ct);_destroyRef=M(co);_app=M(Dt);apiEndpoints;apState=Ge(null);apEngaged=Ge(null);apMode=Ge(null);dodgeModeActive=Ge(!1);autopilotTargetHeading=0;autopilotTargetWindHeading=0;courseTargetHeading=0;heading=0;crossTrackError=0;windAngleApparent=0;rudder=0;currentRequests=new Set;apGrid=Ct(()=>this.apMode()?"grid":"none");apEngageBtnDisabled=Ct(()=>{let e=this.apMode(),t=this.widgetProperties.config.autopilot.apiVersion;if(t){if(t==="v1")return e==="standby"||e==="off-line"}else return!0;return!1});apBtnDisabled=Ct(()=>{let e=this.apEngaged();return this.widgetProperties.config.autopilot.apiVersion==="v1"?this.apMode()==="standby":!e});adjustHdgBtnVisibility=Ct(()=>{let e=this.apMode();return e==="auto"||e==="compass"||e==="gps"||e==="wind"||e==="true wind"||e==="standby"});tackBtnVisibility=Ct(()=>{let e=this.apMode();return e==="auto"||e==="compass"||e==="gps"||e==="wind"||e==="true wind"||e==="standby"});routeBtnVisibility=Ct(()=>{let e=this.apMode();return e==="route"||e==="nav"});countdownOverlayVisibility=Ge("hidden");countdownOverlayText=Ge("");msgOverlayVisibility=Ge("hidden");msgOverlayText=Ge("");errorOverlayVisibility=Ge("hidden");errorOverlayText=Ge("");handleCountDownCounterTimeout=null;handleConfirmActionTimeout=null;handleDisplayErrorTimeout=null;handleMessageTimeout=null;isPersistentError=!1;countDownValue=-1;actionToBeConfirmed="";menuItems=Ct(()=>{let e=this.apMode(),t=this.widgetProperties.config.autopilot.apiVersion,i=this.widgetProperties.config.autopilot.pluginId,o=[];return Nt(()=>{if(t==="v2"){if(i=="pypilot-autopilot-provider"){let a=[{label:"Compass",action:"compass"},{label:"GPS",action:"gps"},{label:"Wind",action:"wind"},{label:"True Wind",action:"true wind"},{label:"Navigation",action:"nav"},{label:"Close",action:"cancel",isCancel:!0}];o=this.parseMenuItems(a,e)}}else if(t==="v1"){let a=[{label:"Auto",action:"auto"},{label:"Wind",action:"wind"},{label:"Route",action:"route"},{label:"Close",action:"cancel",isCancel:!0}];o=this.parseMenuItems(a,e)}}),o});menuOpen=Ge(!1);itemHeight=60;padding=20;embedWidgetColor="contrast";nextWptProperties=Ge({type:"widget-position",uuid:"db473695-42b1-4435-9d3d-ac2f27bf9665",config:{displayName:"Next WPT",filterSelfPaths:!0,paths:{longPath:{description:"Longitude",path:"self.navigation.courseGreatCircle.nextPoint.position.longitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"longitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500},latPath:{description:"Latitude",path:"self.navigation.courseGreatCircle.nextPoint.position.latitude",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"latitudeMin",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5}},{equal:gi});ttwProperties=Ge({type:"widget-numeric",uuid:"ee022f2f-ee23-41a7-b0b1-0928dc28864d",config:{displayName:"TTWpt",filterSelfPaths:!0,paths:{numericPath:{description:"Time To Waypoint",path:"self.navigation.course.calcValues.timeToGo",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"D HH:MM:SS",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}},{equal:gi});etaProperties=Ge({type:"widget-datetime",uuid:"544ca35d-18bf-4a90-9aa8-b12312e3fc60",config:{displayName:"ETA",filterSelfPaths:!0,paths:{gaugePath:{description:"Estimated Time Of Arrival Date",path:"self.navigation.course.calcValues.estimatedTimeOfArrival",source:"default",pathType:"Date",isPathConfigurable:!0,sampleTime:500}},dateFormat:"EEE HH:mm",dateTimezone:"System Timezone -",color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5}},{equal:gi});dtwProperties=Ge({type:"widget-numeric",uuid:"ee02ef2f-ee23-41a7-b0b1-0928dc28864d",config:{displayName:"DTWpt",filterSelfPaths:!0,paths:{numericPath:{description:"Distance To Waypoint",path:"self.navigation.course.calcValues.distance",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"nm",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}},{equal:gi});xteProperties=Ge({type:"widget-numeric",uuid:"9234856b-7573-4154-a44f-3baf7c6f119c",config:{displayName:"XTE",filterSelfPaths:!0,paths:{numericPath:{description:"Cross Track Error",path:"self.navigation.course.calcValues.crossTrackError",source:"default",pathType:"number",isPathConfigurable:!0,convertUnitTo:"m",showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,sampleTime:500}},showMax:!1,showMin:!1,numDecimal:1,numInt:1,color:this.embedWidgetColor,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}},{equal:gi});constructor(){super(),this.defaultConfig={filterSelfPaths:!0,paths:{autopilotState:{description:"Autopilot State",path:"self.steering.autopilot.state",source:"default",pathType:"string",isPathConfigurable:!1,showPathSkUnitsFilter:!1,convertUnitTo:"",sampleTime:500},autopilotMode:{description:"Autopilot Mode",path:"self.steering.autopilot.mode",source:"default",pathType:"string",isPathConfigurable:!1,showPathSkUnitsFilter:!1,convertUnitTo:"",sampleTime:500},autopilotEngaged:{description:"Autopilot Engaged",path:"self.steering.autopilot.engaged",source:"default",pathType:"boolean",isPathConfigurable:!1,showPathSkUnitsFilter:!1,convertUnitTo:"",sampleTime:500},autopilotTargetHeading:{description:"Autopilot Target Magnetic Heading",path:"self.steering.autopilot.target.headingMagnetic",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",sampleTime:500},autopilotTargetWindHeading:{description:"Autopilot Target Apparent Wind Angle",path:"self.steering.autopilot.target.windAngleApparent",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",sampleTime:500},rudderAngle:{description:"Rudder Angle",path:"self.steering.rudderAngle",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",sampleTime:500},courseXte:{description:"Cross Track Error",path:"self.navigation.course.calcValues.crossTrackError",source:"default",pathType:"number",isPathConfigurable:!1,convertUnitTo:"m",showPathSkUnitsFilter:!0,pathRequired:!1,pathSkUnitsFilter:"m",sampleTime:500},headingMag:{description:"Magnetic Heading",path:"self.navigation.headingMagnetic",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500},headingTrue:{description:"True Heading",path:"self.navigation.headingTrue",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500},windAngleApparent:{description:"Apparent Wind Angle",path:"self.environment.wind.angleApparent",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500},windAngleTrueWater:{description:"Wind Angle True Water",path:"self.environment.wind.angleTrueWater",source:"default",pathType:"number",convertUnitTo:"deg",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,sampleTime:500}},autopilot:{invertRudder:!0,headingDirectionTrue:!1,courseDirectionTrue:!1,apiVersion:null,instanceId:null,pluginId:null,modes:null},enableTimeout:!1,dataTimeout:5}}ngOnInit(){this.validateConfig(),this.startWidget()}startWidget(){let e={statusCode:500,statusCodeDescription:"Autopilot widget not configured",requestId:"",state:""},t=this.widgetProperties.config.autopilot.apiVersion,i=this.widgetProperties.config.autopilot.instanceId,o=this.widgetProperties.config.autopilot.pluginId,a=l=>{this.unsubscribeDataStream(),console.error(`[Autopilot Widget] ${l}`),this.displayApError(e),this.isPersistentError=!0,this.apMode.set("off-line"),this.apState.set("off-line"),this.apEngaged.set(!1)};if(this.unsubscribeDataStream(),!t){a("Not configured with autopilot API version, skipping initialization");return}if(t==="v2"){if(!i){a("No autopilot instance ID configured for V2 API, skipping initialization");return}if(!o){a("No autopilot plugin ID configured for V2 API, skipping initialization");return}this.apiEndpoints=this.setV2Endpoint(i),this.startV2Subscriptions();return}if(t==="v1"){this.startV1Subscriptions();return}a(`Unknown autopilot API version: ${t}`)}setV2Endpoint(e){return{engage:an.ENGAGE(e),disengage:an.DISENGAGE(e),mode:an.MODE(e),target:an.TARGET_HEADING(e),tack:an.TACK(e),gybe:an.GYBE(e),dodge:an.DODGE(e),adjustHeading:an.ADJUST_HEADING(e)}}isV2CommandSupported(e){return this.widgetProperties.config.autopilot.modes.includes(e)}updateConfig(e){this.widgetProperties.config=e,this.cancelAllHttpRequests(),this.isPersistentError=!1,this.errorOverlayVisibility.set("hidden"),this.errorOverlayText.set(""),this.apEngaged.set(null),this.startWidget()}startV2Subscriptions(){this.observeDataStream("autopilotState",e=>{e.data?.value?this.apState.set(e.data.value):(this.apState.set("off-line"),console.warn("[Autopilot Widget] Autopilot state is null or not available"))}),this.observeDataStream("autopilotMode",e=>{e.data?.value?this.apMode.set(e.data.value):(this.apMode.set("off-line"),console.warn("[Autopilot Widget] Autopilot mode is null or not available"))}),this.observeDataStream("autopilotEngaged",e=>{e.data?.value?this.apEngaged.set(e.data.value):(this.apEngaged.set(!1),console.warn("[Autopilot Widget] Autopilot engaged is null or not available"))}),this.startDataSubscription()}startV1Subscriptions(){this.widgetProperties.config.paths.autopilotMode.path=bi.V1_MODE_PATH,this.observeDataStream("autopilotMode",e=>{e.data?.value?this.apMode.set(e.data.value):(this.apMode.set("off-line"),console.warn("[Autopilot Widget] Autopilot V1 mode state is null or not available"))}),this.startDataSubscription(),this.subscribePutResponse(),this.apState.set(null)}startDataSubscription(){this.observeDataStream("autopilotTargetHeading",e=>this.autopilotTargetHeading=e.data.value!=null?e.data.value:0),this.observeDataStream("autopilotTargetWindHeading",e=>this.autopilotTargetWindHeading=e.data.value!=null?e.data.value:0),this.observeDataStream("courseXte",e=>this.crossTrackError=e.data.value!=null?e.data.value:0),this.observeDataStream("rudderAngle",e=>{e.data.value===null?this.rudder=0:this.rudder=this.widgetProperties.config.autopilot.invertRudder?-e.data.value:e.data.value}),this.widgetProperties.config.autopilot.headingDirectionTrue?this.observeDataStream("headingTrue",e=>this.heading=e.data.value!=null?e.data.value:0):this.observeDataStream("headingMag",e=>this.heading=e.data.value!=null?e.data.value:0),this.observeDataStream("windAngleApparent",e=>this.windAngleApparent=e.data.value!=null?e.data.value:0)}subscribePutResponse(){this.signalkRequestsService.subscribeRequest().pipe(Xi(this._destroyRef)).subscribe(e=>{e.widgetUUID==this.widgetProperties.uuid&&this.commandReceived(e)})}makeHttpRequest(e){let t=e.pipe(Xi(this._destroyRef));return this.currentRequests.add(t),t.pipe(xl(()=>this.currentRequests.delete(t)))}cancelAllHttpRequests(){this.currentRequests.clear()}buildAndSendCommand(e){let t=us[e];if(typeof t>"u"){alert("Unknown Autopilot command: "+e);return}if(this.actionToBeConfirmed!==""&&this.actionToBeConfirmed!==e&&this.clearConfirmCmd(),(e==="tackToPort"||e==="tackToStarboard")&&this.actionToBeConfirmed===""){this.confirmTack(e);return}if((e==="route"&&this.apMode()==="route"||e==="route"&&this.apMode()==="nav")&&this.actionToBeConfirmed===""){this.confirmAdvanceWaypoint(e);return}if(this.actionToBeConfirmed===e){if(this.clearConfirmCmd(),e==="tackToPort"||e==="tackToStarboard"){let i=e==="tackToPort"?"port":"starboard";this.performTackOrGybe("tack",i)}(e==="route"&&this.apMode()==="route"||e==="route"&&this.apMode()==="nav")&&this.routeCommand(e,us.advanceWaypoint);return}this.routeCommand(e,t)}routeCommand(e,t){let i=this.widgetProperties.config.autopilot.apiVersion;i==="v2"?(e==="route"&&this.apMode()==="nav"&&(e="advanceWaypoint"),this.sendV2Command(e)):i==="v1"&&!t.path.startsWith("v2:")?this.sendV1Command(t):(console.error("[Autopilot Widget] Unsupported basic command:",t.path),this.displayApError({statusCode:400,statusCodeDescription:"Unsupported Command",message:`Command path '${t.path}' is not supported in the current API version`,widgetUUID:this.widgetProperties.uuid}))}sendV1Command(e){this.signalkRequestsService.putRequest(e.path,e.value,this.widgetProperties.uuid),console.log(`AP Action:
|
|
10
|
+
`+JSON.stringify(e))}sendV2Command(e,t){return Hn(this,null,function*(){let i=this.apiEndpoints;if(!i){console.error("V2 endpoints not available");return}let o=this.dodgeModeActive(),a;switch(e){case"+1":a={path:o?i.dodge:i.adjustHeading,value:{value:1,units:"deg"}},this.executeRestRequest("PUT",a);break;case"+10":a={path:o?i.dodge:i.adjustHeading,value:{value:10,units:"deg"}},this.executeRestRequest("PUT",a);break;case"-1":a={path:o?i.dodge:i.adjustHeading,value:{value:-1,units:"deg"}},this.executeRestRequest("PUT",a);break;case"-10":a={path:o?i.dodge:i.adjustHeading,value:{value:-10,units:"deg"}},this.executeRestRequest("PUT",a);break;case"target_heading":a={path:i.target,value:t},this.executeRestRequest("PUT",a);break;case"auto":a={path:i.mode,value:{value:"auto"}},this.executeRestRequest("PUT",a);break;case"compass":a={path:i.mode,value:{value:"compass"}},this.executeRestRequest("PUT",a);break;case"gps":a={path:i.mode,value:{value:"gps"}},this.executeRestRequest("PUT",a);break;case"wind":a={path:i.mode,value:{value:"wind"}},this.executeRestRequest("PUT",a);break;case"true wind":a={path:i.mode,value:{value:"true wind"}},this.executeRestRequest("PUT",a);break;case"route":a={path:i.mode,value:{value:"route"}},this.executeRestRequest("PUT",a);break;case"nav":a={path:i.mode,value:{value:"nav"}},this.executeRestRequest("PUT",a);break;case"standby":{let l={path:this.apEngaged()?`${i.disengage}`:`${i.engage}`};this.executeRestRequest("POST",l)}break;case"advanceWaypoint":a={path:`${bi.V2_COURSE}/activeRoute/nextPoint`},this.executeRestRequest("PUT",a);break;case"tack":a={path:`${i.tack}/${t.value}`},this.executeRestRequest("POST",a);break;case"gybe":a={path:`${i.gybe}/${t}`},this.executeRestRequest("POST",a);break;case"dodge":a={path:i.dodge},this.dodgeModeActive()?this.executeRestRequest("DELETE",a).then(l=>{l.status==="success"&&this.dodgeModeActive.set(!1)}):this.executeRestRequest("POST",a).then(l=>{l.status==="success"&&this.dodgeModeActive.set(!0)});break;default:console.error("Unknown V2 command:",e),this.displayApError({statusCode:400,statusCodeDescription:"Unknown Command",message:`V2 command '${e}' is not supported`,widgetUUID:this.widgetProperties.uuid})}})}executeRestRequest(e,t){return Hn(this,null,function*(){try{let i;switch(e){case"POST":i=yield so(this.makeHttpRequest(this.http.post(t.path,void 0)));break;case"PUT":i=yield so(this.makeHttpRequest(this.http.put(t.path,t.value==null?void 0:t.value)));break;case"DELETE":i=yield so(this.makeHttpRequest(this.http.delete(t.path)));break;default:console.error("[Autopilot Widget] Unsupported REST method:",e)}return i&&i.status==="success"?i:(console.warn("[Autopilot Widget] V2 Command completed with non-success status:",JSON.stringify(i)),i||{status:"error",message:"Invalid response format",data:null})}catch(i){return console.error("[Autopilot Widget] REST operation failed:",i),this.displayApError({statusCode:500,statusCodeDescription:"V2 Command Failed",message:`Failed to execute ${e} ${t.path}`,widgetUUID:this.widgetProperties.uuid}),{status:"error",message:i instanceof Error?i.message:"REST operation failed",data:null}}})}performTackOrGybe(e,t){if(this.widgetProperties.config.autopilot.apiVersion==="v2")this.sendV2Command(e,{value:t});else{if(e!=="tack")return;let i=us[t==="port"?"tackToPort":"tackToStarboard"];this.signalkRequestsService.putRequest(i.path,i.value,this.widgetProperties.uuid)}}setAbsoluteTarget(e){this.widgetProperties.config.autopilot.apiVersion==="v2"?this.sendV2Command("target_heading",{value:e,units:"deg"}):console.error("[Autopilot Widget] Absolute target only available in V2 API")}toggleDodge(){this.widgetProperties.config.autopilot.apiVersion==="v2"?this.sendV2Command("dodge"):(console.warn("[Autopilot Widget] Dodge mode only available in V2 API"),this.displayApError({statusCode:400,statusCodeDescription:"V2 API Required",message:"Dodge mode only available in V2 API",widgetUUID:this.widgetProperties.uuid}))}commandReceived(e){e.statusCode!=200&&this.displayApError(e)}confirmAdvanceWaypoint(e){this.startConfirmCmd(e,"Repeat key [Adv Wpt] to confirm")}confirmTack(e){let t="";if(e==="tackToPort")t="Port",this.actionToBeConfirmed=e;else if(e==="tackToStarboard")t="Starboard",this.actionToBeConfirmed=e;else{this.actionToBeConfirmed="";return}let i=`Repeat [Tack ${t}] key to confirm`;this.startConfirmCmd(e,i)}startConfirmCmd(e,t){this.countDownValue=ms.COUNTDOWN_SECONDS,this.actionToBeConfirmed=e,this.countdownOverlayText.set(t),this.countdownOverlayVisibility.set("visible"),this.updateCountDownCounter(t),clearTimeout(this.handleConfirmActionTimeout),this.handleConfirmActionTimeout=setTimeout(()=>{this.countdownOverlayVisibility.set("hidden"),this.countdownOverlayText.set(""),this.actionToBeConfirmed=""},ms.MESSAGE_DISPLAY_DURATION)}clearConfirmCmd(){clearTimeout(this.handleConfirmActionTimeout),clearTimeout(this.handleCountDownCounterTimeout),this.countDownValue=-1,this.countdownOverlayVisibility.set("hidden"),this.countdownOverlayText.set(""),this.actionToBeConfirmed=""}updateCountDownCounter(e){this.countDownValue>0?(clearTimeout(this.handleCountDownCounterTimeout),this.countdownOverlayText.set(e),this.countDownValue-=1,this.handleCountDownCounterTimeout=setTimeout(()=>{this.updateCountDownCounter(e)},1e3)):(this.countDownValue=-1,clearTimeout(this.handleCountDownCounterTimeout))}displayApError(e){if(this.isPersistentError){console.warn("[Autopilot Widget] Skipping temporary error display - persistent error active:",e.statusCodeDescription);return}let t=e.statusCode+" - "+e.statusCodeDescription+".";e.message&&(t=t+"Server Message: "+e.message+"."),this.errorOverlayText.set(t),this.errorOverlayVisibility.set("visible"),clearTimeout(this.handleDisplayErrorTimeout),this.handleDisplayErrorTimeout=setTimeout(()=>{this.isPersistentError||(this.errorOverlayVisibility.set("hidden"),this.errorOverlayText.set(""))},ms.ERROR_DISPLAY_DURATION)}toggleMenu(){this.menuOpen.set(!this.menuOpen())}onMenuItemClick(e){if(e==="cancel"){this.toggleMenu();return}this.buildAndSendCommand(e),this.menuOpen.set(!1)}parseMenuItems(e,t){let i=this.widgetProperties.config.autopilot.apiVersion;return e.map(a=>{if(a.isCancel)return et(X({},a),{current:!1,disabled:!1});let l=!1;if(i==="v1")switch(t){case"standby":l=a.action==="auto"||a.action==="wind";break;case"auto":l=a.action==="wind"||a.action==="route";break;case"wind":l=a.action==="auto";break;case"route":l=a.action==="auto";break;default:l=!1}else i==="v2"&&(l=this.widgetProperties.config.autopilot.modes.includes(a.action));return et(X({},a),{current:a.action===t,disabled:!l})})}ngOnDestroy(){this.cancelAllHttpRequests(),clearTimeout(this.handleCountDownCounterTimeout),clearTimeout(this.handleConfirmActionTimeout),clearTimeout(this.handleDisplayErrorTimeout),clearTimeout(this.handleMessageTimeout),this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-autopilot"]],features:[pe],decls:94,vars:67,consts:[[1,"widget-host",3,"configChange","config","id"],[1,"autopilot-grid-container"],[1,"ap-modes"],["mat-flat-button","",1,"ap-btn","ap-btn-ctrlbar",3,"click","disabled"],[1,"svg-icon-ctrlbar"],["width","100%","height","100%","viewBox","0 0 100 14","preserveAspectRatio","xMidYMid meet",1,"svg-element","svg-modes"],[0,"xml","space","preserve","x","50","y","10.7"],["mat-flat-button","",3,"click","disabled"],[0,"xml","space","preserve","x","50.090435","y","10.743966"],[1,"ap-screen"],[3,"apMode","targetPilotHeading","targetWindAngleHeading","compassHeading","courseXte","appWindAngle","rudderAngle","targetPilotHeadingTrue","headingDirectionTrue"],[1,"ap-screen-overlay"],["viewBox","0 0 100 100","width","100%","height","100%","preserveAspectRatio","xMidYMid meet"],["x","50%","y","25",1,"svg-element-msg",3,"innerHTML"],["x","50%","dy","75",1,"svg-element-msg",2,"font-size","3em",3,"innerHTML"],[1,"ap-screen-overlay","ap-error-text"],[1,"material-icons","ap-error-icon"],["x","50%","y","25",1,"svg-element-msg","svg-element-error-txt",3,"innerHTML"],["mat-flat-button","",1,"ap-btn",3,"click","disabled"],[1,"svg-icon"],["width","100%","height","100%","viewBox","0 0 100 100","preserveAspectRatio","xMidYMid meet",1,"svg-element"],["fill","currentColor","stroke","currentColor",0,"xml","space","preserve","x","49.894032","y","98.734871"],["fill","currentColor","stroke","currentColor","d","M 31.033486,35.785143 68.966514,66.630677 M 31.033486,35.640825 68.966514,4.79529"],["fill","currentColor","stroke","currentColor",0,"xml","space","preserve","x","50.052986","y","98.734871"],["fill","currentColor","stroke","currentColor","d","M 68.966514,35.785143 31.033486,66.630677 M 68.966514,35.640825 31.033486,4.79529"],["fill","currentColor","stroke","currentColor","d","M 15.778367,35.785143 53.711395,66.630677 M 15.778367,35.640825 53.711395,4.79529"],["fill","currentColor","stroke","currentColor","d","M 46.288608,35.785143 84.221633,66.630677 M 46.288608,35.640825 84.221633,4.79529"],["fill","currentColor","stroke","currentColor","d","M 84.221633,35.785143 46.288605,66.630677 M 84.221633,35.640825 46.288605,4.79529"],["fill","currentColor","stroke","currentColor","d","M 53.711392,35.785143 15.778367,66.630677 M 53.711392,35.640825 15.778367,4.79529"],["transform","scale(-1,1) translate(-100,0)"],["fill","currentColor","d","M 90.5,22.5 67.5,45 96,53 Z",2,"stroke-width","8","stroke-linecap","round","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["fill","none","stroke","currentColor","d",`M 76,31
|
|
12
11
|
A 36 38 0 0 0 24,33`,2,"stroke-width","8.45947","stroke-linecap","square","stroke-linejoin","miter","stroke-miterlimit","0"],["fill","currentColor","cx","14.5","cy","45.25","r","12"],["fill","none","stroke","currentColor","d",`M 76,31
|
|
13
|
-
A 36 38 0 0 0 24,33`,2,"stroke-width","8.45947","stroke-linecap","square","stroke-linejoin","miter","stroke-miterlimit","0"],[1,"embed-widget",3,"widgetProperties"],["viewBox","0 0 100 100","preserveAspectRatio","xMidYMid meet",1,"svg-element","svg-route"],["fill","currentColor","stroke","currentColor",0,"xml","space","preserve","x","49.961578","y","86.799866"],["fill","currentColor","stroke","currentColor","d","M 19.090795,4 V 63.58544 L 78.676235,33.792718 Z",2,"stroke","none"],["fill","currentColor","stroke","currentColor","d","M 75.95674,4 V 63.58544",2,"fill","none","stroke-width","9.90493","stroke-linecap","butt","stroke-linejoin","miter","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],["tabindex","0","role","button","aria-label","Close menu",1,"svg-menu-overlay"],[1,"widgetOverlay"],["tabindex","0","role","button","aria-label","Close menu",1,"svg-menu-overlay",3,"click","keyup.enter","keyup.space"],["tabindex","0","role","presentation","aria-label","Menu",1,"svg-menu",3,"click","keyup.enter","keyup.space"],["x","0","y","0","width","240",1,"svg-menu-box"],["tabindex","0","role","button",2,"cursor","pointer"],["tabindex","0","role","button",2,"cursor","pointer",3,"click","keyup.enter","keyup.space"],["x","0","width","240"],["x","120"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",9),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"div",10)(2,"div",11)(3,"button",12,0),F("click",function(){return z(o),V(i.toggleMenu())}),v(5,"mat-icon",13),Ke(),v(6,"svg",14)(7,"text",15),P(8),$n(9,"titlecase"),C()()()(),fi(),v(10,"button",16,1),F("click",function(){return z(o),V(i.buildAndSendCommand("standby"))}),v(12,"mat-icon",13),Ke(),v(13,"svg",14)(14,"text",17),P(15,"Disengage"),C()()()()(),fi(),v(16,"div",18),B(17,"app-svg-autopilot",19),v(18,"div",20),Ke(),v(19,"svg",21),B(20,"text",22)(21,"text",23),C()(),fi(),v(22,"div",24)(23,"span",25),P(24,"warning"),C(),Ke(),v(25,"svg",21),B(26,"text",26),C()()(),fi(),v(27,"div")(28,"button",27,2),F("click",function(){return z(o),V(i.buildAndSendCommand("-1"))}),v(30,"mat-icon",28),Ke(),v(31,"svg",29)(32,"text",30),P(33,"-1\xB0"),C(),B(34,"path",31),C()()()(),fi(),v(35,"div")(36,"button",27,3),F("click",function(){return z(o),V(i.buildAndSendCommand("+1"))}),v(38,"mat-icon",28),Ke(),v(39,"svg",29)(40,"text",32),P(41,"+1\xB0"),C(),B(42,"path",33),C()()()(),fi(),v(43,"div")(44,"button",27,4),F("click",function(){return z(o),V(i.buildAndSendCommand("-10"))}),v(46,"mat-icon",28),Ke(),v(47,"svg",29)(48,"text",30),P(49,"-10\xB0"),C(),B(50,"path",34)(51,"path",35),C()()()(),fi(),v(52,"div")(53,"button",27,5),F("click",function(){return z(o),V(i.buildAndSendCommand("+10"))}),v(55,"mat-icon",28),Ke(),v(56,"svg",29)(57,"text",32),P(58,"+10\xB0"),C(),B(59,"path",36)(60,"path",37),C()()()(),fi(),v(61,"div")(62,"button",27,6),F("click",function(){return z(o),V(i.buildAndSendCommand("tackToPort"))}),v(64,"mat-icon",28),Ke(),v(65,"svg",29)(66,"text",30),P(67,"Tack"),C(),v(68,"g",38),B(69,"path",39)(70,"path",40)(71,"circle",41),C()()()()(),fi(),v(72,"div")(73,"button",27,7),F("click",function(){return z(o),V(i.buildAndSendCommand("tackToStarboard"))}),v(75,"mat-icon",28),Ke(),v(76,"svg",29)(77,"text",30),P(78,"Tack"),C(),B(79,"path",39)(80,"path",42)(81,"circle",41),C()()()(),fi(),v(82,"div"),B(83,"widget-position",43),C(),v(84,"div"),B(85,"widget-datetime",43),C(),v(86,"div"),B(87,"widget-numeric",43),C(),v(88,"div"),B(89,"widget-numeric",43),C(),B(90,"div"),v(91,"div")(92,"button",27,8),F("click",function(){return z(o),V(i.buildAndSendCommand("route"))}),v(94,"mat-icon",28),Ke(),v(95,"svg",44)(96,"text",45),P(97,"Adv Wpt"),C(),B(98,"path",46)(99,"path",47),C()()()()(),Ae(100,zm,6,2,"div",48),Ae(101,Vm,1,0,"div",49),C()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),xe("display",i.apGrid()),D(7),pt("Mode ",uo(9,53,i.apState())," \xA0\u22EE"),D(9),j("apState",i.apState())("targetPilotHeading",i.autopilotTargetHeading)("targetWindAngleHeading",i.autopilotTargetWindHeading)("compassHeading",i.heading)("courseXte",i.crossTrackError)("appWindAngle",i.windAngleApparent)("rudderAngle",i.rudder)("targetPilotHeadingTrue",i.widgetProperties.config.courseDirectionTrue)("headingDirectionTrue",i.widgetProperties.config.headingDirectionTrue),D(),xe("visibility",i.countdownOverlayVisibility()),D(2),j("innerHTML",i.countdownOverlayText(),ao),D(),xe("visibility",i.countDownValue>=0?"visible":"hidden"),j("innerHTML",i.countDownValue+1,ao),D(),xe("visibility",i.errorOverlayVisibility()),D(4),j("innerHTML",i.errorOverlayText(),ao),D(),xe("display",i.apState()==="wind"||i.apState()==="auto"||i.apState()==="standby"?"block":"none"),D(8),xe("display",i.apState()==="wind"||i.apState()==="auto"||i.apState()==="standby"?"block":"none"),D(8),xe("display",i.apState()==="wind"||i.apState()==="auto"||i.apState()==="standby"?"block":"none"),D(9),xe("display",i.apState()==="wind"||i.apState()==="auto"||i.apState()==="standby"?"block":"none"),D(9),xe("display",i.apState()==="wind"||i.apState()==="standby"?"block":"none"),D(11),xe("display",i.apState()==="wind"||i.apState()==="standby"?"block":"none"),D(10),xe("display",i.apState()==="route"?"block":"none"),D(),j("widgetProperties",i.nextWptProperties()),D(),xe("display",i.apState()==="route"?"block":"none"),D(),j("widgetProperties",i.etaProperties()),D(),xe("display",i.apState()==="route"?"block":"none"),D(),j("widgetProperties",i.dtwProperties()),D(),xe("display",i.apState()==="route"?"block":"none"),D(),j("widgetProperties",i.ttwProperties()),D(),xe("display",i.apState()==="route"?"block":"none"),D(),xe("display",i.apState()==="route"?"block":"none"),D(9),Oe(i.menuOpen()?100:-1),D(),Oe(i.dashboard.isDashboardStatic()?-1:101))},dependencies:[We,fc,Kt,Gt,zl,Pt,di,mr,Ho,Lo,Fo],styles:['[_nghost-%COMP%]{display:block;height:100%;width:100%}.widget-host[_ngcontent-%COMP%]{display:block;height:100%;width:100%}.autopilot-grid-container[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;height:100%;display:grid;gap:.5rem .5rem;padding:10px;grid-template:"modes modes" minmax(50px,1fr) "screen screen" minmax(50px,auto)/1fr 1fr;grid-template-rows:.15fr 1fr;grid-auto-rows:minmax(50px,2fr)}.ap-modes[_ngcontent-%COMP%]{grid-area:modes;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(50px,1fr);gap:.5rem .5rem}.ap-screen[_ngcontent-%COMP%]{position:relative;grid-area:screen;width:100%;height:100%;max-height:200px;align-content:center}.ap-screen-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:50;vertical-align:middle;text-align:center;background-color:var(--mat-sys-background)}.ap-error-icon[_ngcontent-%COMP%]{padding-top:15px}.ap-error-text[_ngcontent-%COMP%]{color:var(--mat-sys-error-container)}.ap-btn[_ngcontent-%COMP%]{width:100%;border-radius:12px;align-items:center;justify-content:center;cursor:pointer;--mat-button-filled-container-color: var(--kip-blue-dim-color);--mat-button-filled-label-text-color: var(--kip-contrast-color);--mat-button-filled-container-height: 100%}.ap-btn-ctrlbar[_ngcontent-%COMP%]{padding:4px}.ap-btn-modes[_ngcontent-%COMP%]{--mat-button-filled-horizontal-padding: 0rem}.ap-btn-notifications[_ngcontent-%COMP%]{--mat-button-filled-container-color: var(--kip-yellow-dim-color)}.ap-btn-engage[_ngcontent-%COMP%]{--mat-button-filled-horizontal-padding: 0rem;--mat-button-filled-container-color: var(--kip-zone-alarm-color)}.svg-icon-ctrlbar[_ngcontent-%COMP%]{width:100%;height:100%;margin:0;padding:0}.svg-icon[_ngcontent-%COMP%]{width:100%;height:100%;margin:0;padding:.5rem}.svg-element[_ngcontent-%COMP%]{width:100%;height:100%;padding:0}.svg-element[_ngcontent-%COMP%] text[_ngcontent-%COMP%]{font-family:Roboto;font-size:25px;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}.svg-element[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{stroke-width:7.59058;stroke-linecap:round;stroke-miterlimit:0;stroke-dasharray:none}.svg-element-msg[_ngcontent-%COMP%]{font-family:Roboto;font-size:12px;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;fill:var(--kip-contrast-color);fill-opacity:1;stroke:none}.svg-element-note[_ngcontent-%COMP%]{font-family:Roboto;font-size:.5em;font-weight:400;text-align:center;text-anchor:middle;font-style:italic;font-variant:normal;font-stretch:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:var(--kip-contrast-dim-color);fill-opacity:1;stroke:none}.svg-element-error-txt[_ngcontent-%COMP%]{fill:var(--mat-sys-error-container)}.svg-element-notifications[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}.svg-element-clear-notifications[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);fill-opacity:1;stroke:none}.svg-modes[_ngcontent-%COMP%] text[_ngcontent-%COMP%]{font-size:12px}.svg-route[_ngcontent-%COMP%] text[_ngcontent-%COMP%]{font-size:25px}.svg-route[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);fill-opacity:1}.embed-widget[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-surface-container-highest);border-radius:12px}@media (max-width: 600px){.autopilot-grid-container[_ngcontent-%COMP%]{padding:.5rem;gap:.25rem}.autopilot-btn[_ngcontent-%COMP%]{font-size:.95rem;padding:.4em .5em}}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}.svg-menu-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;background:#000c;z-index:19;display:flex;align-items:center;justify-content:center}.svg-menu-box[_ngcontent-%COMP%]{fill:var(--mat-sys-surface);stroke:none;border-radius:12px}.svg-menu[_ngcontent-%COMP%]{max-width:80%;background:transparent;border-radius:12px;box-shadow:0 4px 24px #00000026;z-index:20;display:block;font-family:Roboto;font-size:1.1rem;font-weight:700;text-anchor:middle;text-align:center;alignment-baseline:middle}g[_ngcontent-%COMP%]:hover rect[_ngcontent-%COMP%]{fill-opacity:.7}g[_ngcontent-%COMP%]:hover text[_ngcontent-%COMP%]{fill-opacity:.7}g[_ngcontent-%COMP%]:active rect[_ngcontent-%COMP%]{fill-opacity:.4}g[_ngcontent-%COMP%]:active text[_ngcontent-%COMP%]{fill-opacity:.4}.svg-menu-item[_ngcontent-%COMP%]{fill:var(--kip-blue-color);stroke:var(--mat-sys-outline-variant)}.svg-menu-item-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:none}.svg-menu-item-current[_ngcontent-%COMP%]{fill:var(--kip-blue-color);pointer-events:none;stroke:var(--mat-sys-outline-variant)}.svg-menu-item-current-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:none;pointer-events:none}.svg-menu-item-disabled[_ngcontent-%COMP%]{fill:var(--kip-blue-color);pointer-events:none;stroke:var(--mat-sys-outline-variant)}.svg-menu-item-disabled-text[_ngcontent-%COMP%]{fill:var(--mat-sys-surface-tint);stroke:none;pointer-events:none}.svg-menu-item-cancel[_ngcontent-%COMP%]{fill:var(--mat-sys-outline);stroke:var(--mat-sys-outline-variant)}.svg-menu-item-cancel-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:none}.counterText[_ngcontent-%COMP%]{font-weight:700;font-size:7em;margin-top:0;margin-bottom:0}']})}return r})();var yc={modes:{point(r,n){return Uo(r,n,{intersect:!0})},nearest(r,n,e){return Um(r,n,e)},x(r,n,e){return Uo(r,n,{intersect:e.intersect,axis:"x"})},y(r,n,e){return Uo(r,n,{intersect:e.intersect,axis:"y"})}}};function vs(r,n,e){return(yc.modes[e.mode]||yc.modes.nearest)(r,n,e)}function Fm(r,n,e){return e!=="x"&&e!=="y"?r.inRange(n.x,n.y,"x",!0)||r.inRange(n.x,n.y,"y",!0):r.inRange(n.x,n.y,e,!0)}function Hm(r,n,e){return e==="x"?{x:r.x,y:n.y}:e==="y"?{x:n.x,y:r.y}:n}function Uo(r,n,e){return r.filter(t=>e.intersect?t.inRange(n.x,n.y):Fm(t,n,e.axis))}function Um(r,n,e){let t=Number.POSITIVE_INFINITY;return Uo(r,n,e).reduce((i,o)=>{let a=o.getCenterPoint(),l=Hm(n,a,e.axis),d=Rr(n,l);return d<t?(i=[o],t=d):d===t&&i.push(o),i},[]).sort((i,o)=>i._index-o._index).slice(0,1)}function xn(r,n,e){let t=Math.cos(e),i=Math.sin(e),o=n.x,a=n.y;return{x:o+t*(r.x-o)-i*(r.y-a),y:a+i*(r.x-o)+t*(r.y-a)}}var Gm=(r,n)=>n>r||r.length>n.length&&r.slice(0,n.length)===n,Cn=.001,qo=(r,n,e)=>Math.min(e,Math.max(n,r)),zc=(r,n)=>r.value>=r.start-n&&r.value<=r.end+n;function qm(r,n,e){for(let t of Object.keys(r))r[t]=qo(r[t],n,e);return r}function jm(r,n,e,t){return!r||!n||e<=0?!1:Math.pow(r.x-n.x,2)+Math.pow(r.y-n.y,2)<=Math.pow(e+t,2)}function Vc(r,{x:n,y:e,x2:t,y2:i},o,{borderWidth:a,hitTolerance:l}){let d=(a+l)/2,f=r.x>=n-d-Cn&&r.x<=t+d+Cn,s=r.y>=e-d-Cn&&r.y<=i+d+Cn;return o==="x"?f:(o==="y"||f)&&s}function Lc(r,{rect:n,center:e},t,{rotation:i,borderWidth:o,hitTolerance:a}){let l=xn(r,e,vi(-i));return Vc(l,n,t,{borderWidth:o,hitTolerance:a})}function En(r,n){let{centerX:e,centerY:t}=r.getProps(["centerX","centerY"],n);return{x:e,y:t}}function $m(r,n,e,t=!0){let i=e.split("."),o=0;for(let a of n.split(".")){let l=i[o++];if(parseInt(a,10)<parseInt(l,10))break;if(Gm(l,a)){if(t)throw new Error(`${r} v${e} is not supported. v${n} or newer is required.`);return!1}}return!0}var Fc=r=>typeof r=="string"&&r.endsWith("%"),Hc=r=>parseFloat(r)/100,Uc=r=>qo(Hc(r),0,1),zr=(r,n)=>({x:r,y:n,x2:r,y2:n,width:0,height:0}),Ym={box:r=>zr(r.centerX,r.centerY),doughnutLabel:r=>zr(r.centerX,r.centerY),ellipse:r=>({centerX:r.centerX,centerY:r.centerX,radius:0,width:0,height:0}),label:r=>zr(r.centerX,r.centerY),line:r=>zr(r.x,r.y),point:r=>({centerX:r.centerX,centerY:r.centerY,radius:0,width:0,height:0}),polygon:r=>zr(r.centerX,r.centerY)};function ys(r,n){return n==="start"?0:n==="end"?r:Fc(n)?Uc(n)*r:r/2}function an(r,n,e=!0){return typeof n=="number"?n:Fc(n)?(e?Uc(n):Hc(n))*r:r}function Xm(r,n){let{x:e,width:t}=r,i=n.textAlign;return i==="center"?e+t/2:i==="end"||i==="right"?e+t:e}function Gc(r,n,{borderWidth:e,position:t,xAdjust:i,yAdjust:o},a){let l=Ki(a),d=n.width+(l?a.width:0)+e,f=n.height+(l?a.height:0)+e,s=bs(t),c=bc(r.x,d,i,s.x),m=bc(r.y,f,o,s.y);return{x:c,y:m,x2:c+d,y2:m+f,width:d,height:f,centerX:c+d/2,centerY:m+f/2}}function bs(r,n="center"){return Ki(r)?{x:vn(r.x,n),y:vn(r.y,n)}:(r=vn(r,n),{x:r,y:r})}var qc=(r,n)=>r&&r.autoFit&&n<1;function jc(r,n){let e=r.font,t=Qi(e)?e:[e];return qc(r,n)?t.map(function(i){let o=Nr(i);return o.size=Math.floor(i.size*n),o.lineHeight=i.lineHeight,Nr(o)}):t.map(i=>Nr(i))}function $c(r){return r&&(gi(r.xValue)||gi(r.yValue))}function bc(r,n,e=0,t){return r-ys(n,t)+e}function yr(r,n,e){let t=e.init;if(t){if(t===!0)return Xc(n,e)}else return;return Qm(r,n,e)}function Yc(r,n,e){let t=!1;return n.forEach(i=>{Zi(r[i])?(t=!0,e[i]=r[i]):gi(e[i])&&delete e[i]}),t}function Xc(r,n){let e=n.type||"line";return Ym[e](r)}function Qm(r,n,e){let t=Ir(e.init,[{chart:r,properties:n,options:e}]);if(t===!0)return Xc(n,e);if(Ki(t))return t}var ds=new Map,Km=r=>isNaN(r)||r<=0,Zm=r=>r.reduce(function(n,e){return n+=e.string,n},"");function jo(r){if(r&&typeof r=="object"){let n=r.toString();return n==="[object HTMLImageElement]"||n==="[object HTMLCanvasElement]"}}function $o(r,{x:n,y:e},t){t&&(r.translate(n,e),r.rotate(vi(t)),r.translate(-n,-e))}function Ri(r,n){if(n&&n.borderWidth)return r.lineCap=n.borderCapStyle||"butt",r.setLineDash(n.borderDash),r.lineDashOffset=n.borderDashOffset,r.lineJoin=n.borderJoinStyle||"miter",r.lineWidth=n.borderWidth,r.strokeStyle=n.borderColor,!0}function br(r,n){r.shadowColor=n.backgroundShadowColor,r.shadowBlur=n.shadowBlur,r.shadowOffsetX=n.shadowOffsetX,r.shadowOffsetY=n.shadowOffsetY}function Yo(r,n){let e=n.content;if(jo(e))return{width:an(e.width,n.width),height:an(e.height,n.height)};let t=jc(n),i=n.textStrokeWidth,o=Qi(e)?e:[e],a=o.join()+Zm(t)+i+(r._measureText?"-spriting":"");return ds.has(a)||ds.set(a,ip(r,o,t,i)),ds.get(a)}function Qc(r,n,e){let{x:t,y:i,width:o,height:a}=n;r.save(),br(r,e);let l=Ri(r,e);r.fillStyle=e.backgroundColor,r.beginPath(),es(r,{x:t,y:i,w:o,h:a,radius:qm(ts(e.borderRadius),0,Math.min(o,a)/2)}),r.closePath(),r.fill(),l&&(r.shadowColor=e.borderShadowColor,r.stroke()),r.restore()}function Kc(r,n,e,t){let i=e.content;if(jo(i)){r.save(),r.globalAlpha=op(e.opacity,i.style.opacity),r.drawImage(i,n.x,n.y,n.width,n.height),r.restore();return}let o=Qi(i)?i:[i],a=jc(e,t),l=e.color,d=Qi(l)?l:[l],f=Xm(n,e),s=n.y+e.textStrokeWidth/2;r.save(),r.textBaseline="middle",r.textAlign=e.textAlign,Jm(r,e)&&np(r,{x:f,y:s},o,a),rp(r,{x:f,y:s},o,{fonts:a,colors:d}),r.restore()}function Jm(r,n){if(n.textStrokeWidth>0)return r.lineJoin="round",r.miterLimit=2,r.lineWidth=n.textStrokeWidth,r.strokeStyle=n.textStrokeColor,!0}function ep(r,n,e,t){let{radius:i,options:o}=n,a=o.pointStyle,l=o.rotation,d=(l||0)*Do;if(jo(a)){r.save(),r.translate(e,t),r.rotate(d),r.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),r.restore();return}Km(i)||tp(r,{x:e,y:t,radius:i,rotation:l,style:a,rad:d})}function tp(r,{x:n,y:e,radius:t,rotation:i,style:o,rad:a}){let l,d,f,s;switch(r.beginPath(),o){default:r.arc(n,e,t,0,Eo),r.closePath();break;case"triangle":r.moveTo(n+Math.sin(a)*t,e-Math.cos(a)*t),a+=Po,r.lineTo(n+Math.sin(a)*t,e-Math.cos(a)*t),a+=Po,r.lineTo(n+Math.sin(a)*t,e-Math.cos(a)*t),r.closePath();break;case"rectRounded":s=t*.516,f=t-s,l=Math.cos(a+yn)*f,d=Math.sin(a+yn)*f,r.arc(n-l,e-d,s,a-Zt,a-or),r.arc(n+d,e-l,s,a-or,a),r.arc(n+l,e+d,s,a,a+or),r.arc(n-d,e+l,s,a+or,a+Zt),r.closePath();break;case"rect":if(!i){f=Math.SQRT1_2*t,r.rect(n-f,e-f,2*f,2*f);break}a+=yn;case"rectRot":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+d,e-l),r.lineTo(n+l,e+d),r.lineTo(n-d,e+l),r.closePath();break;case"crossRot":a+=yn;case"cross":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d),r.moveTo(n+d,e-l),r.lineTo(n-d,e+l);break;case"star":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d),r.moveTo(n+d,e-l),r.lineTo(n-d,e+l),a+=yn,l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d),r.moveTo(n+d,e-l),r.lineTo(n-d,e+l);break;case"line":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d);break;case"dash":r.moveTo(n,e),r.lineTo(n+Math.cos(a)*t,e+Math.sin(a)*t);break}r.fill()}function ip(r,n,e,t){r.save();let i=n.length,o=0,a=t;for(let l=0;l<i;l++){let d=e[Math.min(l,e.length-1)];r.font=d.string;let f=n[l];o=Math.max(o,r.measureText(f).width+t),a+=d.lineHeight}return r.restore(),{width:o,height:a}}function np(r,{x:n,y:e},t,i){r.beginPath();let o=0;t.forEach(function(a,l){let d=i[Math.min(l,i.length-1)],f=d.lineHeight;r.font=d.string,r.strokeText(a,n,e+f/2+o),o+=f}),r.stroke()}function rp(r,{x:n,y:e},t,{fonts:i,colors:o}){let a=0;t.forEach(function(l,d){let f=o[Math.min(d,o.length-1)],s=i[Math.min(d,i.length-1)],c=s.lineHeight;r.beginPath(),r.font=s.string,r.fillStyle=f,r.fillText(l,n,e+c/2+a),a+=c,r.fill()})}function op(r,n){let e=Mo(r)?r:n;return Mo(e)?qo(e,0,1):1}var Zc=["left","bottom","top","right"];function ap(r,n){let{pointX:e,pointY:t,options:i}=n,o=i.callout,a=o&&o.display&&hp(n,o);if(!a||mp(n,o,a))return;if(r.save(),r.beginPath(),!Ri(r,o))return r.restore();let{separatorStart:d,separatorEnd:f}=sp(n,a),{sideStart:s,sideEnd:c}=dp(n,a,d);(o.margin>0||i.borderWidth===0)&&(r.moveTo(d.x,d.y),r.lineTo(f.x,f.y)),r.moveTo(s.x,s.y),r.lineTo(c.x,c.y);let m=xn({x:e,y:t},n.getCenterPoint(),vi(-n.rotation));r.lineTo(m.x,m.y),r.stroke(),r.restore()}function sp(r,n){let{x:e,y:t,x2:i,y2:o}=r,a=lp(r,n),l,d;return n==="left"||n==="right"?(l={x:e+a,y:t},d={x:l.x,y:o}):(l={x:e,y:t+a},d={x:i,y:l.y}),{separatorStart:l,separatorEnd:d}}function lp(r,n){let{width:e,height:t,options:i}=r,o=i.callout.margin+i.borderWidth/2;return n==="right"?e+o:n==="bottom"?t+o:-o}function dp(r,n,e){let{y:t,width:i,height:o,options:a}=r,l=a.callout.start,d=cp(n,a.callout),f,s;return n==="left"||n==="right"?(f={x:e.x,y:t+an(o,l)},s={x:f.x+d,y:f.y}):(f={x:e.x+an(i,l),y:e.y},s={x:f.x,y:f.y+d}),{sideStart:f,sideEnd:s}}function cp(r,n){let e=n.side;return r==="left"||r==="top"?-e:e}function hp(r,n){let e=n.position;return Zc.includes(e)?e:up(r,n)}function up(r,n){let{x:e,y:t,x2:i,y2:o,width:a,height:l,pointX:d,pointY:f,centerX:s,centerY:c,rotation:m}=r,y={x:s,y:c},_=n.start,T=an(a,_),E=an(l,_),L=[e,e+T,e+T,i],Y=[t+E,o,t,o],te=[];for(let _e=0;_e<4;_e++){let He=xn({x:L[_e],y:Y[_e]},y,vi(m));te.push({position:Zc[_e],distance:Rr(He,{x:d,y:f})})}return te.sort((_e,He)=>_e.distance-He.distance)[0].position}function mp(r,n,e){let{pointX:t,pointY:i}=r,o=n.margin,a=t,l=i;return e==="left"?a+=o:e==="right"?a-=o:e==="top"?l+=o:e==="bottom"&&(l-=o),r.inRange(a,l)}var _c={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function pr(r,n,e){return n=typeof n=="number"?n:r.parse(n),xo(n)?r.getPixelForValue(n):e}function Sn(r,n,e){let t=n[e];if(t||e==="scaleID")return t;let i=e.charAt(0),o=Object.values(r).filter(a=>a.axis&&a.axis===i);return o.length?o[0].id:i}function Jc(r,n){if(r){let e=r.options.reverse,t=pr(r,n.min,e?n.end:n.start),i=pr(r,n.max,e?n.start:n.end);return{start:t,end:i}}}function eh(r,n){let{chartArea:e,scales:t}=r,i=t[Sn(t,n,"xScaleID")],o=t[Sn(t,n,"yScaleID")],a=e.width/2,l=e.height/2;return i&&(a=pr(i,n.xValue,i.left+i.width/2)),o&&(l=pr(o,n.yValue,o.top+o.height/2)),{x:a,y:l}}function _s(r,n){let e=r.scales,t=e[Sn(e,n,"xScaleID")],i=e[Sn(e,n,"yScaleID")];if(!t&&!i)return{};let{left:o,right:a}=t||r.chartArea,{top:l,bottom:d}=i||r.chartArea,f=wc(t,{min:n.xMin,max:n.xMax,start:o,end:a});o=f.start,a=f.end;let s=wc(i,{min:n.yMin,max:n.yMax,start:d,end:l});return l=s.start,d=s.end,{x:o,y:l,x2:a,y2:d,width:a-o,height:d-l,centerX:o+(a-o)/2,centerY:l+(d-l)/2}}function th(r,n){if(!$c(n)){let e=_s(r,n),t=n.radius;(!t||isNaN(t))&&(t=Math.min(e.width,e.height)/2,n.radius=t);let i=t*2,o=e.centerX+n.xAdjust,a=e.centerY+n.yAdjust;return{x:o-t,y:a-t,x2:o+t,y2:a+t,centerX:o,centerY:a,width:i,height:i,radius:t}}return fp(r,n)}function pp(r,n){let{scales:e,chartArea:t}=r,i=e[n.scaleID],o={x:t.left,y:t.top,x2:t.right,y2:t.bottom};return i?gp(i,o,n):vp(e,o,n),o}function ih(r,n){let e=_s(r,n);return e.initProperties=yr(r,e,n),e.elements=[{type:"label",optionScope:"label",properties:_p(r,e,n),initProperties:e.initProperties}],e}function fp(r,n){let e=eh(r,n),t=n.radius*2;return{x:e.x-n.radius+n.xAdjust,y:e.y-n.radius+n.yAdjust,x2:e.x+n.radius+n.xAdjust,y2:e.y+n.radius+n.yAdjust,centerX:e.x+n.xAdjust,centerY:e.y+n.yAdjust,radius:n.radius,width:t,height:t}}function wc(r,n){let e=Jc(r,n)||n;return{start:Math.min(e.start,e.end),end:Math.max(e.start,e.end)}}function gp(r,n,e){let t=pr(r,e.value,NaN),i=pr(r,e.endValue,t);r.isHorizontal()?(n.x=t,n.x2=i):(n.y=t,n.y2=i)}function vp(r,n,e){for(let t of Object.keys(_c)){let i=r[Sn(r,e,t)];if(i){let{min:o,max:a,start:l,end:d,startProp:f,endProp:s}=_c[t],c=Jc(i,{min:e[o],max:e[a],start:i[l],end:i[d]});n[f]=c.start,n[s]=c.end}}}function yp({properties:r,options:n},e,t,i){let{x:o,x2:a,width:l}=r;return nh({start:o,end:a,size:l,borderWidth:n.borderWidth},{position:t.x,padding:{start:i.left,end:i.right},adjust:n.label.xAdjust,size:e.width})}function bp({properties:r,options:n},e,t,i){let{y:o,y2:a,height:l}=r;return nh({start:o,end:a,size:l,borderWidth:n.borderWidth},{position:t.y,padding:{start:i.top,end:i.bottom},adjust:n.label.yAdjust,size:e.height})}function nh(r,n){let{start:e,end:t,borderWidth:i}=r,{position:o,padding:{start:a,end:l},adjust:d}=n,f=t-i-e-a-l-n.size;return e+i/2+d+ys(f,o)}function _p(r,n,e){let t=e.label;t.backgroundColor="transparent",t.callout.display=!1;let i=bs(t.position),o=ar(t.padding),a=Yo(r.ctx,t),l=yp({properties:n,options:e},a,i,o),d=bp({properties:n,options:e},a,i,o),f=a.width+o.width,s=a.height+o.height;return{x:l,y:d,x2:l+f,y2:d+s,width:f,height:s,centerX:l+f/2,centerY:d+s/2,rotation:t.rotation}}var cs=["enter","leave"],ws=cs.concat("click");function wp(r,n,e){n.listened=Yc(e,ws,n.listeners),n.moveListened=!1,cs.forEach(t=>{Zi(e[t])&&(n.moveListened=!0)}),(!n.listened||!n.moveListened)&&n.annotations.forEach(t=>{!n.listened&&Zi(t.click)&&(n.listened=!0),n.moveListened||cs.forEach(i=>{Zi(t[i])&&(n.listened=!0,n.moveListened=!0)})})}function Cp(r,n,e){if(r.listened)switch(n.type){case"mousemove":case"mouseout":return Sp(r,n,e);case"click":return kp(r,n,e)}}function Sp(r,n,e){if(!r.moveListened)return;let t;n.type==="mousemove"?t=vs(r.visibleElements,n,e.interaction):t=[];let i=r.hovered;r.hovered=t;let o={state:r,event:n},a=Cc(o,"leave",i,t);return Cc(o,"enter",t,i)||a}function Cc({state:r,event:n},e,t,i){let o;for(let a of t)i.indexOf(a)<0&&(o=rh(a.options[e]||r.listeners[e],a,n)||o);return o}function kp(r,n,e){let t=r.listeners,i=vs(r.visibleElements,n,e.interaction),o;for(let a of i)o=rh(a.options.click||t.click,a,n)||o;return o}function rh(r,n,e){return Ir(r,[n.$context,e])===!0}var Go=["afterDraw","beforeDraw"];function Tp(r,n,e){let t=n.visibleElements;n.hooked=Yc(e,Go,n.hooks),n.hooked||t.forEach(i=>{n.hooked||Go.forEach(o=>{Zi(i.options[o])&&(n.hooked=!0)})})}function Sc(r,n,e){if(r.hooked){let t=n.options[e]||r.hooks[e];return Ir(t,[n.$context])}}function xp(r,n,e){let t=Ap(r.scales,n,e),i=kc(n,t,"min","suggestedMin");i=kc(n,t,"max","suggestedMax")||i,i&&Zi(n.handleTickRangeOptions)&&n.handleTickRangeOptions()}function Ep(r,n){for(let e of r)Pp(e,n)}function kc(r,n,e,t){if(xo(n[e])&&!Dp(r.options,e,t)){let i=r[e]!==n[e];return r[e]=n[e],i}}function Dp(r,n,e){return gi(r[n])||gi(r[e])}function Pp(r,n){for(let e of["scaleID","xScaleID","yScaleID"]){let t=Sn(n,r,e);t&&!n[t]&&Mp(r,e)&&console.warn(`No scale found with id '${t}' for annotation '${r.id}'`)}}function Mp(r,n){if(n==="scaleID")return!0;let e=n.charAt(0);for(let t of["Min","Max","Value"])if(gi(r[e+t]))return!0;return!1}function Ap(r,n,e){let t=n.axis,i=n.id,o=t+"ScaleID",a={min:vn(n.min,Number.NEGATIVE_INFINITY),max:vn(n.max,Number.POSITIVE_INFINITY)};for(let l of e)l.scaleID===i?Tc(l,n,["value","endValue"],a):Sn(r,l,o)===i&&Tc(l,n,[t+"Min",t+"Max",t+"Value"],a);return a}function Tc(r,n,e,t){for(let i of e){let o=r[i];if(gi(o)){let a=n.parse(o);t.min=Math.min(t.min,a),t.max=Math.max(t.max,a)}}}var sn=class extends Ji{inRange(n,e,t,i){let{x:o,y:a}=xn({x:n,y:e},this.getCenterPoint(i),vi(-this.options.rotation));return Vc({x:o,y:a},this.getProps(["x","y","x2","y2"],i),t,this.options)}getCenterPoint(n){return En(this,n)}draw(n){n.save(),$o(n,this.getCenterPoint(),this.options.rotation),Qc(n,this,this.options),n.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(n,e){return ih(n,e)}};sn.id="boxAnnotation";sn.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,hitTolerance:0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};sn.defaultRoutes={borderColor:"color",backgroundColor:"color"};sn.descriptors={label:{_fallback:!0}};var fr=class extends Ji{inRange(n,e,t,i){return Lc({x:n,y:e},{rect:this.getProps(["x","y","x2","y2"],i),center:this.getCenterPoint(i)},t,{rotation:this.rotation,borderWidth:0,hitTolerance:this.options.hitTolerance})}getCenterPoint(n){return En(this,n)}draw(n){let e=this.options;!e.display||!e.content||(Bp(n,this),n.save(),$o(n,this.getCenterPoint(),this.rotation),Kc(n,this,e,this._fitRatio),n.restore())}resolveElementProperties(n,e){let t=Op(n,e);if(!t)return{};let{controllerMeta:i,point:o,radius:a}=Rp(n,e,t),l=Yo(n.ctx,e),d=Np(l,a);qc(e,d)&&(l={width:l.width*d,height:l.height*d});let{position:f,xAdjust:s,yAdjust:c}=e,m=Gc(o,l,{borderWidth:0,position:f,xAdjust:s,yAdjust:c});return $e(X(X({initProperties:yr(n,m,e)},m),i),{rotation:e.rotation,_fitRatio:d})}};fr.id="doughnutLabelAnnotation";fr.defaults={autoFit:!0,autoHide:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderColor:"transparent",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:0,color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,spacing:1,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0};fr.defaultRoutes={};function Op(r,n){return r.getSortedVisibleDatasetMetas().reduce(function(e,t){let i=t.controller;return i instanceof Rd&&Ip(r,n,t.data)&&(!e||i.innerRadius<e.controller.innerRadius)&&i.options.circumference>=90?t:e},void 0)}function Ip(r,n,e){if(!n.autoHide)return!0;for(let t=0;t<e.length;t++)if(!e[t].hidden&&r.getDataVisibility(t))return!0}function Rp({chartArea:r},n,e){let{left:t,top:i,right:o,bottom:a}=r,{innerRadius:l,offsetX:d,offsetY:f}=e.controller,s=(t+o)/2+d,c=(i+a)/2+f,m={left:Math.max(s-l,t),right:Math.min(s+l,o),top:Math.max(c-l,i),bottom:Math.min(c+l,a)},y={x:(m.left+m.right)/2,y:(m.top+m.bottom)/2},_=n.spacing+n.borderWidth/2,T=l-_,E=y.y>c,L=E?i+_:a-_,Y=Wp(L,s,c,T);return{controllerMeta:X({_centerX:s,_centerY:c,_radius:T,_counterclockwise:E},Y),point:y,radius:Math.min(l,Math.min(m.right-m.left,m.bottom-m.top)/2)}}function Np({width:r,height:n},e){let t=Math.sqrt(Math.pow(r,2)+Math.pow(n,2));return e*2/t}function Wp(r,n,e,t){let i=Math.pow(e-r,2),o=Math.pow(t,2),a=n*-2,l=Math.pow(n,2)+i-o,d=Math.pow(a,2)-4*l;if(d<=0)return{_startAngle:0,_endAngle:Eo};let f=(-a-Math.sqrt(d))/2,s=(-a+Math.sqrt(d))/2;return{_startAngle:Ao({x:n,y:e},{x:f,y:r}).angle,_endAngle:Ao({x:n,y:e},{x:s,y:r}).angle}}function Bp(r,n){let{_centerX:e,_centerY:t,_radius:i,_startAngle:o,_endAngle:a,_counterclockwise:l,options:d}=n;r.save();let f=Ri(r,d);r.fillStyle=d.backgroundColor,r.beginPath(),r.arc(e,t,i,o,a,l),r.closePath(),r.fill(),f&&r.stroke(),r.restore()}var kn=class extends Ji{inRange(n,e,t,i){return Lc({x:n,y:e},{rect:this.getProps(["x","y","x2","y2"],i),center:this.getCenterPoint(i)},t,{rotation:this.rotation,borderWidth:this.options.borderWidth,hitTolerance:this.options.hitTolerance})}getCenterPoint(n){return En(this,n)}draw(n){let e=this.options,t=!gi(this._visible)||this._visible;!e.display||!e.content||!t||(n.save(),$o(n,this.getCenterPoint(),this.rotation),ap(n,this),Qc(n,this,e),Kc(n,zp(this),e),n.restore())}resolveElementProperties(n,e){let t;if($c(e))t=eh(n,e);else{let{centerX:l,centerY:d}=_s(n,e);t={x:l,y:d}}let i=ar(e.padding),o=Yo(n.ctx,e),a=Gc(t,o,e,i);return $e(X({initProperties:yr(n,a,e),pointX:t.x,pointY:t.y},a),{rotation:e.rotation})}};kn.id="labelAnnotation";kn.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};kn.defaultRoutes={borderColor:"color"};function zp({x:r,y:n,width:e,height:t,options:i}){let o=i.borderWidth/2,a=ar(i.padding);return{x:r+a.left+o,y:n+a.top+o,width:e-a.left-a.right-i.borderWidth,height:t-a.top-a.bottom-i.borderWidth}}var Cs=(r,n,e)=>({x:r.x+e*(n.x-r.x),y:r.y+e*(n.y-r.y)}),hs=(r,n,e)=>Cs(n,e,Math.abs((r-n.y)/(e.y-n.y))).x,xc=(r,n,e)=>Cs(n,e,Math.abs((r-n.x)/(e.x-n.x))).y,Lr=r=>r*r,Vp=(r,n,{x:e,y:t,x2:i,y2:o},a)=>a==="y"?{start:Math.min(t,o),end:Math.max(t,o),value:n}:{start:Math.min(e,i),end:Math.max(e,i),value:r},Ec=(r,n,e,t)=>(1-t)*(1-t)*r+2*(1-t)*t*n+t*t*e,us=(r,n,e,t)=>({x:Ec(r.x,n.x,e.x,t),y:Ec(r.y,n.y,e.y,t)}),Dc=(r,n,e,t)=>2*(1-t)*(n-r)+2*t*(e-n),Pc=(r,n,e,t)=>-Math.atan2(Dc(r.x,n.x,e.x,t),Dc(r.y,n.y,e.y,t))+.5*Zt,Xo=(()=>{class r extends Ji{inRange(e,t,i,o){let a=(this.options.borderWidth+this.options.hitTolerance)/2;if(i!=="x"&&i!=="y"){let l={mouseX:e,mouseY:t},{path:d,ctx:f}=this;if(d){Ri(f,this.options),f.lineWidth+=this.options.hitTolerance;let{chart:c}=this.$context,m=e*c.currentDevicePixelRatio,y=t*c.currentDevicePixelRatio,_=f.isPointInStroke(d,m,y)||ms(this,l,o);return f.restore(),_}let s=Lr(a);return Up(this,l,s,o)||ms(this,l,o)}return Lp(this,{mouseX:e,mouseY:t},i,{hitSize:a,useFinalPosition:o})}getCenterPoint(e){return En(this,e)}draw(e){let{x:t,y:i,x2:o,y2:a,cp:l,options:d}=this;if(e.save(),!Ri(e,d))return e.restore();br(e,d);let f=Math.sqrt(Math.pow(o-t,2)+Math.pow(a-i,2));if(d.curve&&l)return Kp(e,this,l,f),e.restore();let{startOpts:s,endOpts:c,startAdjust:m,endAdjust:y}=oh(this),_=Math.atan2(a-i,o-t);e.translate(t,i),e.rotate(_),e.beginPath(),e.moveTo(0+m,0),e.lineTo(f-y,0),e.shadowColor=d.borderShadowColor,e.stroke(),ps(e,0,m,s),ps(e,f,-y,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,t){let i=pp(e,t),{x:o,y:a,x2:l,y2:d}=i,f=Fp(i,e.chartArea),s=f?Hp({x:o,y:a},{x:l,y:d},e.chartArea):{x:o,y:a,x2:l,y2:d,width:Math.abs(l-o),height:Math.abs(d-a)};if(s.centerX=(l+o)/2,s.centerY=(d+a)/2,s.initProperties=yr(e,s,t),t.curve){let m={x:s.x,y:s.y},y={x:s.x2,y:s.y2};s.cp=Qp(s,t,Rr(m,y))}let c=Gp(e,s,t.label);return c._visible=f,s.elements=[{type:"label",optionScope:"label",properties:c,initProperties:s.initProperties}],s}}return r.id="lineAnnotation",r})(),Mc={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};Xo.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},Mc),fill:!1,length:12,start:Object.assign({},Mc),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,hitTolerance:0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},kn.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};Xo.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};Xo.defaultRoutes={borderColor:"color"};function Lp(r,{mouseX:n,mouseY:e},t,{hitSize:i,useFinalPosition:o}){let a=Vp(n,e,r.getProps(["x","y","x2","y2"],o),t);return zc(a,i)||ms(r,{mouseX:n,mouseY:e},o,t)}function Fp({x:r,y:n,x2:e,y2:t},{top:i,right:o,bottom:a,left:l}){return!(r<l&&e<l||r>o&&e>o||n<i&&t<i||n>a&&t>a)}function Ac({x:r,y:n},e,{top:t,right:i,bottom:o,left:a}){return r<a&&(n=xc(a,{x:r,y:n},e),r=a),r>i&&(n=xc(i,{x:r,y:n},e),r=i),n<t&&(r=hs(t,{x:r,y:n},e),n=t),n>o&&(r=hs(o,{x:r,y:n},e),n=o),{x:r,y:n}}function Hp(r,n,e){let{x:t,y:i}=Ac(r,n,e),{x:o,y:a}=Ac(n,r,e);return{x:t,y:i,x2:o,y2:a,width:Math.abs(o-t),height:Math.abs(a-i)}}function Up(r,{mouseX:n,mouseY:e},t=Cn,i){let{x:o,y:a,x2:l,y2:d}=r.getProps(["x","y","x2","y2"],i),f=l-o,s=d-a,c=Lr(f)+Lr(s),m=c===0?-1:((n-o)*f+(e-a)*s)/c,y,_;return m<0?(y=o,_=a):m>1?(y=l,_=d):(y=o+m*f,_=a+m*s),Lr(n-y)+Lr(e-_)<=t}function ms(r,{mouseX:n,mouseY:e},t,i){let o=r.label;return o.options.display&&o.inRange(n,e,i,t)}function Gp(r,n,e){let t=e.borderWidth,i=ar(e.padding),o=Yo(r.ctx,e),a=o.width+i.width+t,l=o.height+i.height+t;return jp(n,e,{width:a,height:l,padding:i},r.chartArea)}function qp(r){let{x:n,y:e,x2:t,y2:i}=r,o=Math.atan2(i-e,t-n);return o>Zt/2?o-Zt:o<Zt/-2?o+Zt:o}function jp(r,n,e,t){let{width:i,height:o,padding:a}=e,{xAdjust:l,yAdjust:d}=n,f={x:r.x,y:r.y},s={x:r.x2,y:r.y2},c=n.rotation==="auto"?qp(r):vi(n.rotation),m=$p(i,o,c),y=Yp(r,n,{labelSize:m,padding:a},t),_=r.cp?us(f,r.cp,s,y):Cs(f,s,y),T={size:m.w,min:t.left,max:t.right,padding:a.left},E={size:m.h,min:t.top,max:t.bottom,padding:a.top},L=Ic(_.x,T)+l,Y=Ic(_.y,E)+d;return{x:L-i/2,y:Y-o/2,x2:L+i/2,y2:Y+o/2,centerX:L,centerY:Y,pointX:_.x,pointY:_.y,width:i,height:o,rotation:Ka(c)}}function $p(r,n,e){let t=Math.cos(e),i=Math.sin(e);return{w:Math.abs(r*t)+Math.abs(n*i),h:Math.abs(r*i)+Math.abs(n*t)}}function Yp(r,n,e,t){let i,o=Xp(r,t);return n.position==="start"?i=Oc({w:r.x2-r.x,h:r.y2-r.y},e,n,o):n.position==="end"?i=1-Oc({w:r.x-r.x2,h:r.y-r.y2},e,n,o):i=ys(1,n.position),i}function Oc(r,n,e,t){let{labelSize:i,padding:o}=n,a=r.w*t.dx,l=r.h*t.dy,d=a>0&&(i.w/2+o.left-t.x)/a,f=l>0&&(i.h/2+o.top-t.y)/l;return qo(Math.max(d,f),0,.25)}function Xp(r,n){let{x:e,x2:t,y:i,y2:o}=r,a=Math.min(i,o)-n.top,l=Math.min(e,t)-n.left,d=n.bottom-Math.max(i,o),f=n.right-Math.max(e,t);return{x:Math.min(l,f),y:Math.min(a,d),dx:l<=f?1:-1,dy:a<=d?1:-1}}function Ic(r,n){let{size:e,min:t,max:i,padding:o}=n,a=e/2;return e>i-t?(i+t)/2:(t>=r-o-a&&(r=t+o+a),i<=r+o+a&&(r=i-o-a),r)}function oh(r){let n=r.options,e=n.arrowHeads&&n.arrowHeads.start,t=n.arrowHeads&&n.arrowHeads.end;return{startOpts:e,endOpts:t,startAdjust:Rc(r,e),endAdjust:Rc(r,t)}}function Rc(r,n){if(!n||!n.display)return 0;let{length:e,width:t}=n,i=r.options.borderWidth/2,o={x:e,y:t+i};return Math.abs(hs(0,o,{x:0,y:i}))}function ps(r,n,e,t){if(!t||!t.display)return;let{length:i,width:o,fill:a,backgroundColor:l,borderColor:d}=t,f=Math.abs(n-i)+e;r.beginPath(),br(r,t),Ri(r,t),r.moveTo(f,-o),r.lineTo(n+e,0),r.lineTo(f,o),a===!0?(r.fillStyle=l||d,r.closePath(),r.fill(),r.shadowColor="transparent"):r.shadowColor=t.borderShadowColor,r.stroke()}function Qp(r,n,e){let{x:t,y:i,x2:o,y2:a,centerX:l,centerY:d}=r,f=Math.atan2(a-i,o-t),s=bs(n.controlPoint,0),c={x:l+an(e,s.x,!1),y:d+an(e,s.y,!1)};return xn(c,{x:l,y:d},f)}function Nc(r,{x:n,y:e},{angle:t,adjust:i},o){!o||!o.display||(r.save(),r.translate(n,e),r.rotate(t),ps(r,0,-i,o),r.restore())}function Kp(r,n,e,t){let{x:i,y:o,x2:a,y2:l,options:d}=n,{startOpts:f,endOpts:s,startAdjust:c,endAdjust:m}=oh(n),y={x:i,y:o},_={x:a,y:l},T=Pc(y,e,_,0),E=Pc(y,e,_,1)-Zt,L=us(y,e,_,c/t),Y=us(y,e,_,1-m/t),te=new Path2D;r.beginPath(),te.moveTo(L.x,L.y),te.quadraticCurveTo(e.x,e.y,Y.x,Y.y),r.shadowColor=d.borderShadowColor,r.stroke(te),n.path=te,n.ctx=r,Nc(r,L,{angle:T,adjust:c},f),Nc(r,Y,{angle:E,adjust:m},s)}var Tn=class extends Ji{inRange(n,e,t,i){let o=this.options.rotation,a=(this.options.borderWidth+this.options.hitTolerance)/2;if(t!=="x"&&t!=="y")return Zp({x:n,y:e},this.getProps(["width","height","centerX","centerY"],i),o,a);let{x:l,y:d,x2:f,y2:s}=this.getProps(["x","y","x2","y2"],i),c=t==="y"?{start:d,end:s}:{start:l,end:f},m=xn({x:n,y:e},this.getCenterPoint(i),vi(-o));return m[t]>=c.start-a-Cn&&m[t]<=c.end+a+Cn}getCenterPoint(n){return En(this,n)}draw(n){let{width:e,height:t,centerX:i,centerY:o,options:a}=this;n.save(),$o(n,this.getCenterPoint(),a.rotation),br(n,this.options),n.beginPath(),n.fillStyle=a.backgroundColor;let l=Ri(n,a);n.ellipse(i,o,t/2,e/2,Zt/2,0,2*Zt),n.fill(),l&&(n.shadowColor=a.borderShadowColor,n.stroke()),n.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(n,e){return ih(n,e)}};Tn.id="ellipseAnnotation";Tn.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,label:Object.assign({},sn.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};Tn.defaultRoutes={borderColor:"color",backgroundColor:"color"};Tn.descriptors={label:{_fallback:!0}};function Zp(r,n,e,t){let{width:i,height:o,centerX:a,centerY:l}=n,d=i/2,f=o/2;if(d<=0||f<=0)return!1;let s=vi(e||0),c=Math.cos(s),m=Math.sin(s),y=Math.pow(c*(r.x-a)+m*(r.y-l),2),_=Math.pow(m*(r.x-a)-c*(r.y-l),2);return y/Math.pow(d+t,2)+_/Math.pow(f+t,2)<=1.0001}var gr=class extends Ji{inRange(n,e,t,i){let{x:o,y:a,x2:l,y2:d,width:f}=this.getProps(["x","y","x2","y2","width"],i),s=(this.options.borderWidth+this.options.hitTolerance)/2;return t!=="x"&&t!=="y"?jm({x:n,y:e},this.getCenterPoint(i),f/2,s):zc(t==="y"?{start:a,end:d,value:e}:{start:o,end:l,value:n},s)}getCenterPoint(n){return En(this,n)}draw(n){let e=this.options,t=e.borderWidth;if(e.radius<.1)return;n.save(),n.fillStyle=e.backgroundColor,br(n,e);let i=Ri(n,e);ep(n,this,this.centerX,this.centerY),i&&!jo(e.pointStyle)&&(n.shadowColor=e.borderShadowColor,n.stroke()),n.restore(),e.borderWidth=t}resolveElementProperties(n,e){let t=th(n,e);return t.initProperties=yr(n,t,e),t}};gr.id="pointAnnotation";gr.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};gr.defaultRoutes={borderColor:"color",backgroundColor:"color"};var vr=class extends Ji{inRange(n,e,t,i){if(t!=="x"&&t!=="y")return this.options.radius>=.1&&this.elements.length>1&&ef(this.elements,n,e,i);let o=xn({x:n,y:e},this.getCenterPoint(i),vi(-this.options.rotation)),a=this.elements.map(f=>t==="y"?f.bY:f.bX),l=Math.min(...a),d=Math.max(...a);return o[t]>=l&&o[t]<=d}getCenterPoint(n){return En(this,n)}draw(n){let{elements:e,options:t}=this;n.save(),n.beginPath(),n.fillStyle=t.backgroundColor,br(n,t);let i=Ri(n,t),o=!0;for(let a of e)o?(n.moveTo(a.x,a.y),o=!1):n.lineTo(a.x,a.y);n.closePath(),n.fill(),i&&(n.shadowColor=t.borderShadowColor,n.stroke()),n.restore()}resolveElementProperties(n,e){let t=th(n,e),{sides:i,rotation:o}=e,a=[],l=2*Zt/i,d=o*Do;for(let f=0;f<i;f++,d+=l){let s=Jp(t,e,d);s.initProperties=yr(n,t,e),a.push(s)}return t.elements=a,t}};vr.id="polygonAnnotation";vr.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};vr.defaultRoutes={borderColor:"color",backgroundColor:"color"};function Jp({centerX:r,centerY:n},{radius:e,borderWidth:t,hitTolerance:i},o){let a=(t+i)/2,l=Math.sin(o),d=Math.cos(o),f={x:r+l*e,y:n-d*e};return{type:"point",optionScope:"point",properties:{x:f.x,y:f.y,centerX:f.x,centerY:f.y,bX:r+l*(e+a),bY:n-d*(e+a)}}}function ef(r,n,e,t){let i=!1,o=r[r.length-1].getProps(["bX","bY"],t);for(let a of r){let l=a.getProps(["bX","bY"],t);l.bY>e!=o.bY>e&&n<(o.bX-l.bX)*(e-l.bY)/(o.bY-l.bY)+l.bX&&(i=!i),o=l}return i}var on={box:sn,doughnutLabel:fr,ellipse:Tn,label:kn,line:Xo,point:gr,polygon:vr};Object.keys(on).forEach(r=>{Od.describe(`elements.${on[r].id}`,{_fallback:"plugins.annotation.common"})});var tf={update:Object.assign},nf=ws.concat(Go),Wc=(r,n)=>Ki(n)?gs(r,n):r,fs=r=>r==="color"||r==="font";function Ss(r="line"){return on[r]?r:(console.warn(`Unknown annotation type: '${r}', defaulting to 'line'`),"line")}function rf(r,n,e,t){let i=af(r,e.animations,t),o=n.annotations,a=df(n.elements,o);for(let l=0;l<o.length;l++){let d=o[l],f=ah(a,l,d.type),s=d.setContext(lf(r,f,a,d)),c=f.resolveElementProperties(r,s);c.skip=of(c),"elements"in c&&(sf(f,c.elements,s,i),delete c.elements),gi(f.x)||Object.assign(f,c),Object.assign(f,c.initProperties),c.options=sh(s),i.update(f,c)}}function of(r){return isNaN(r.x)||isNaN(r.y)}function af(r,n,e){return e==="reset"||e==="none"||e==="resize"?tf:new Id(r,n)}function sf(r,n,e,t){let i=r.elements||(r.elements=[]);i.length=n.length;for(let o=0;o<n.length;o++){let a=n[o],l=a.properties,d=ah(i,o,a.type,a.initProperties),f=e[a.optionScope].override(a);l.options=sh(f),t.update(d,l)}}function ah(r,n,e,t){let i=on[Ss(e)],o=r[n];return(!o||!(o instanceof i))&&(o=r[n]=new i,Object.assign(o,t)),o}function sh(r){let n=on[Ss(r.type)],e={};e.id=r.id,e.type=r.type,e.drawTime=r.drawTime,Object.assign(e,gs(r,n.defaults),gs(r,n.defaultRoutes));for(let t of nf)e[t]=r[t];return e}function gs(r,n){let e={};for(let t of Object.keys(n)){let i=n[t],o=r[t];fs(t)&&Qi(o)?e[t]=o.map(a=>Wc(a,i)):e[t]=Wc(o,i)}return e}function lf(r,n,e,t){return n.$context||(n.$context=Object.assign(Object.create(r.getContext()),{element:n,get elements(){return e.filter(i=>i&&i.options)},id:t.id,type:"annotation"}))}function df(r,n){let e=n.length,t=r.length;if(t<e){let i=e-t;r.splice(t,0,...new Array(i))}else t>e&&r.splice(e,t-e);return r}var cf="3.1.0",rn=new Map,Bc=r=>r.type!=="doughnutLabel",hf=ws.concat(Go),lh={id:"annotation",version:cf,beforeRegister(){$m("chart.js","4.0",bn.version)},afterRegister(){bn.register(on)},afterUnregister(){bn.unregister(on)},beforeInit(r){rn.set(r,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(r,n,e){let t=rn.get(r),i=t.annotations=[],o=e.annotations;Ki(o)?Object.keys(o).forEach(a=>{let l=o[a];Ki(l)&&(l.id=a,i.push(l))}):Qi(o)&&i.push(...o),Ep(i.filter(Bc),r.scales)},afterDataLimits(r,n){let e=rn.get(r);xp(r,n.scale,e.annotations.filter(Bc).filter(t=>t.display&&t.adjustScaleRange))},afterUpdate(r,n,e){let t=rn.get(r);wp(r,t,e),rf(r,t,e,n.mode),t.visibleElements=t.elements.filter(i=>!i.skip&&i.options.display),Tp(r,t,e)},beforeDatasetsDraw(r,n,e){Vr(r,"beforeDatasetsDraw",e.clip)},afterDatasetsDraw(r,n,e){Vr(r,"afterDatasetsDraw",e.clip)},beforeDatasetDraw(r,n,e){Vr(r,n.index,e.clip)},beforeDraw(r,n,e){Vr(r,"beforeDraw",e.clip)},afterDraw(r,n,e){Vr(r,"afterDraw",e.clip)},beforeEvent(r,n,e){let t=rn.get(r);Cp(t,n.event,e)&&(n.changed=!0)},afterDestroy(r){rn.delete(r)},getAnnotations(r){let n=rn.get(r);return n?n.elements:[]},_getAnnotationElementsAtEventForMode(r,n,e){return vs(r,n,e)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"},colors:{properties:["backgroundColor","borderColor"],type:"color"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:r=>!hf.includes(r)&&r!=="init",annotations:{_allKeys:!1,_fallback:(r,n)=>`elements.${on[Ss(n.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:fs,_fallback:!0},_indexable:fs}},additionalOptionScopes:[""]};function Vr(r,n,e){let{ctx:t,chartArea:i}=r,o=rn.get(r);e&&Za(t,i);let a=uf(o.visibleElements,n).sort((l,d)=>l.element.options.z-d.element.options.z);for(let l of a)mf(t,i,o,l);e&&Ja(t)}function uf(r,n){let e=[];for(let t of r)if(t.options.drawTime===n&&e.push({element:t,main:!0}),t.elements&&t.elements.length)for(let i of t.elements)i.options.display&&i.options.drawTime===n&&e.push({element:i});return e}function mf(r,n,e,t){let i=t.element;t.main?(Sc(e,i,"beforeDraw"),i.draw(r,n),Sc(e,i,"afterDraw")):i.draw(r,n)}var pf=["widgetDataChart"];bn.register(lh,Hd,Fd,Nd,Bd,Wd,zd,Vd,Ld);var dh=(()=>{class r extends Ne{dsService=M(Co);widgetDataChart=Ce("widgetDataChart",{read:it});lineChartData={datasets:[]};lineChartOptions={parsing:!1,datasets:{line:{pointRadius:0,pointHoverRadius:0,tension:.4}},animations:{tension:{easing:"easeInOutCubic"}}};lineChartType="line";chart;dsServiceSub=null;datasetConfig=null;dataSourceInfo=null;constructor(){super(),this.defaultConfig={displayName:"Chart Label",filterSelfPaths:!0,convertUnitTo:"unitless",datasetUUID:null,invertData:!1,datasetAverageArray:"sma",showAverageData:!0,trackAgainstAverage:!1,showDatasetMinimumValueLine:!1,showDatasetMaximumValueLine:!1,showDatasetAverageValueLine:!0,showDatasetAngleAverageValueLine:!1,showLabel:!1,showTimeScale:!1,startScaleAtZero:!1,verticalGraph:!1,showYScale:!1,yScaleSuggestedMin:null,yScaleSuggestedMax:null,enableMinMaxScaleLimit:!1,yScaleMin:null,yScaleMax:null,numDecimal:1,color:"contrast"},be(()=>{this.theme()&&this.datasetConfig&&(this.setChartOptions(),this.chart.config.options=this.lineChartOptions)})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.startWidget()}startWidget(){this.datasetConfig=this.dsService.getDatasetConfig(this.widgetProperties.config.datasetUUID),this.dataSourceInfo=this.dsService.getDataSourceInfo(this.widgetProperties.config.datasetUUID),this.datasetConfig&&(this.setChartOptions(),this.chart?this.chart.update():this.chart=new bn(this.widgetDataChart().nativeElement.getContext("2d"),{type:this.lineChartType,data:this.lineChartData,options:this.lineChartOptions}),this.startStreaming())}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}setChartOptions(){this.lineChartOptions.maintainAspectRatio=!1,this.lineChartOptions.animation=!1,this.lineChartData.datasets=[],this.lineChartData.datasets.push({label:"Value",data:[],order:this.widgetProperties.config.trackAgainstAverage?1:0,parsing:!1,tension:0,pointRadius:0,pointHoverRadius:0,pointHitRadius:0,borderColor:this.getThemeColors().valueLine,borderWidth:this.widgetProperties.config.trackAgainstAverage?0:3,fill:!!this.widgetProperties.config.trackAgainstAverage,backgroundColor:this.getThemeColors().valueFill}),this.lineChartData.datasets.push({label:"Average",data:[],order:this.widgetProperties.config.trackAgainstAverage?0:1,parsing:!1,tension:.4,pointRadius:0,pointHoverRadius:0,pointHitRadius:0,borderColor:this.getThemeColors().averageLine,borderWidth:this.widgetProperties.config.trackAgainstAverage?3:0,fill:!this.widgetProperties.config.trackAgainstAverage,backgroundColor:this.getThemeColors().averageFill}),this.lineChartOptions.scales={x:{type:"time",display:this.widgetProperties.config.showTimeScale,title:{display:!0,text:`Last ${this.datasetConfig.period} ${this.datasetConfig.timeScaleFormat}`,align:"center"},time:{unit:this.datasetConfig.timeScaleFormat,minUnit:"second",round:"second",displayFormats:{hour:"k:mm''",minute:"mm''",second:'ss"',millisecond:"SSS"}},ticks:{autoSkip:!1,color:this.getThemeColors().averageChartLine,major:{enabled:!0}},grid:{display:!0,color:this.theme().contrastDimmer}},y:{display:this.widgetProperties.config.showYScale,position:"right",suggestedMin:this.widgetProperties.config.enableMinMaxScaleLimit?null:this.widgetProperties.config.yScaleSuggestedMin,suggestedMax:this.widgetProperties.config.enableMinMaxScaleLimit?null:this.widgetProperties.config.yScaleSuggestedMax,min:this.widgetProperties.config.enableMinMaxScaleLimit?this.widgetProperties.config.yScaleMin:null,max:this.widgetProperties.config.enableMinMaxScaleLimit?this.widgetProperties.config.yScaleMax:null,beginAtZero:this.widgetProperties.config.startScaleAtZero,title:{display:!1,text:"Value Axis",align:"center"},ticks:{maxTicksLimit:8,precision:this.widgetProperties.config.numDecimal,color:this.getThemeColors().averageChartLine,major:{enabled:!0}},grid:{display:!0,color:this.theme().contrastDimmer}}},this.lineChartOptions.plugins={subtitle:{display:this.widgetProperties.config.showLabel,align:"start",padding:{top:-31,bottom:4},text:` ${this.widgetProperties.config.displayName}`,font:{size:14},color:this.getThemeColors().chartLabel},title:{display:!0,align:"end",padding:{top:6,bottom:10},text:"",font:{size:22},color:this.getThemeColors().chartValue},annotation:{annotations:{minimumLine:{type:"line",scaleID:"y",display:this.widgetProperties.config.showDatasetMinimumValueLine,value:null,drawTime:"afterDatasetsDraw",label:{display:!0,position:"start",yAdjust:12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},maximumLine:{type:"line",scaleID:"y",display:this.widgetProperties.config.showDatasetMaximumValueLine,value:null,drawTime:"afterDatasetsDraw",label:{display:!0,position:"start",yAdjust:-12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},averageLine:{type:"line",scaleID:"y",display:this.widgetProperties.config.showDatasetAverageValueLine,value:null,borderDash:[6,6],borderColor:this.getThemeColors().averageChartLine,drawTime:"afterDatasetsDraw",label:{display:!0,position:"start",padding:4,color:this.getThemeColors().chartValue,backgroundColor:"rgba(63,63,63,0.7)"}}}},legend:{display:!1}}}getThemeColors(){let e=this.widgetProperties.config.color,t={valueLine:null,valueFill:null,averageLine:null,averageFill:null,averageChartLine:null,chartLabel:null,chartValue:null};switch(e){case"contrast":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().contrastDimmer,t.valueFill=this.theme().contrastDimmer,t.averageLine=this.theme().contrast,t.averageFill=this.theme().contrast,t.chartValue=t.averageLine):(t.valueLine=this.theme().contrast,t.valueFill=this.theme().contrast,t.averageLine=this.theme().contrastDimmer,t.averageFill=this.theme().contrastDimmer,t.chartValue=this.theme().contrast),t.averageChartLine=this.theme().contrastDim,t.chartLabel=this.theme().contrastDim;break;case"blue":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().blueDimmer,t.valueFill=this.theme().blueDimmer,t.averageLine=this.theme().blue,t.averageFill=this.theme().blue,t.chartValue=t.averageLine):(t.valueLine=this.theme().blue,t.valueFill=this.theme().blue,t.averageLine=this.theme().blueDimmer,t.averageFill=this.theme().blueDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().blueDim,t.chartLabel=this.theme().contrastDim;break;case"green":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().greenDimmer,t.valueFill=this.theme().greenDimmer,t.averageLine=this.theme().green,t.averageFill=this.theme().green,t.chartValue=t.averageLine):(t.valueLine=this.theme().green,t.valueFill=this.theme().green,t.averageLine=this.theme().greenDimmer,t.averageFill=this.theme().greenDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().greenDim,t.chartLabel=this.theme().contrastDim;break;case"pink":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().pinkDimmer,t.valueFill=this.theme().pinkDimmer,t.averageLine=this.theme().pink,t.averageFill=this.theme().pink,t.chartValue=t.averageLine):(t.valueLine=this.theme().pink,t.valueFill=this.theme().pink,t.averageLine=this.theme().pinkDimmer,t.averageFill=this.theme().pinkDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().pinkDim,t.chartLabel=this.theme().contrastDim;break;case"orange":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().orangeDimmer,t.valueFill=this.theme().orangeDimmer,t.averageLine=this.theme().orange,t.averageFill=this.theme().orange,t.chartValue=t.averageLine):(t.valueLine=this.theme().orange,t.valueFill=this.theme().orange,t.averageLine=this.theme().orangeDimmer,t.averageFill=this.theme().orangeDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().orangeDim,t.chartLabel=this.theme().contrastDim;break;case"purple":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().purpleDimmer,t.valueFill=this.theme().purpleDimmer,t.averageLine=this.theme().purple,t.averageFill=this.theme().purple,t.chartValue=t.averageLine):(t.valueLine=this.theme().purple,t.valueFill=this.theme().purple,t.averageLine=this.theme().purpleDimmer,t.averageFill=this.theme().purpleDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().purpleDim,t.chartLabel=this.theme().contrastDim;break;case"grey":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().greyDimmer,t.valueFill=this.theme().greyDimmer,t.averageLine=this.theme().grey,t.averageFill=this.theme().grey,t.chartValue=t.averageLine):(t.valueLine=this.theme().grey,t.valueFill=this.theme().grey,t.averageLine=this.theme().greyDimmer,t.averageFill=this.theme().greyDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().greyDim,t.chartLabel=this.theme().contrastDim;break;case"yellow":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().yellowDimmer,t.valueFill=this.theme().yellowDimmer,t.averageLine=this.theme().yellow,t.averageFill=this.theme().yellow,t.chartValue=t.averageLine):(t.valueLine=this.theme().yellow,t.valueFill=this.theme().yellow,t.averageLine=this.theme().yellowDimmer,t.averageFill=this.theme().yellowDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().yellowDim,t.chartLabel=this.theme().contrastDim;break}return t}getUnitsLabel(){let e=null;switch(this.widgetProperties.config.convertUnitTo){case"percent":case"percentraw":e="%";break;case"latitudeMin":e="latitude in minutes";break;case"latitudeSec":e="latitude in secondes";break;case"longitudeMin":e="longitude in minutes";break;case"longitudeSec":e="longitude in secondes";break;default:e=this.widgetProperties.config.convertUnitTo;break}return e}startStreaming(){this.dsServiceSub?.unsubscribe(),this.dsServiceSub=this.dsService.getDatasetObservable(this.widgetProperties.config.datasetUUID).subscribe(e=>{this.chart.data.datasets[0].data.push(this.transformDatasetRow(e,0)),this.chart.data.datasets[0].data.length>=this.dataSourceInfo.maxDataPoints&&this.chart.data.datasets[0].data.shift(),this.widgetProperties.config.showAverageData&&(this.chart.data.datasets[1].data.push(this.transformDatasetRow(e,this.widgetProperties.config.datasetAverageArray)),this.chart.data.datasets[1].data.length>=this.dataSourceInfo.maxDataPoints&&this.chart.data.datasets[1].data.shift());let t=this.widgetProperties.config.trackAgainstAverage?e.data.sma:e.data.value;this.chart.options.plugins.title.text=`${this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,t).toFixed(this.widgetProperties.config.numDecimal)} ${this.getUnitsLabel()} `;let i=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastAverage),o=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastMinimum),a=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastMaximum);this.chart.options.plugins.annotation.annotations.averageLine.value!=i&&(this.chart.options.plugins.annotation.annotations.averageLine.value=i,this.chart.options.plugins.annotation.annotations.averageLine.label.content=`${i.toFixed(this.widgetProperties.config.numDecimal)}`),this.chart.options.plugins.annotation.annotations.minimumLine.value!=o&&(this.chart.options.plugins.annotation.annotations.minimumLine.value=o,this.chart.options.plugins.annotation.annotations.minimumLine.label.content=`${o.toFixed(this.widgetProperties.config.numDecimal)}`),this.chart.options.plugins.annotation.annotations.maximumLine.value!=a&&(this.chart.options.plugins.annotation.annotations.maximumLine.value=a,this.chart.options.plugins.annotation.annotations.maximumLine.label.content=`${a.toFixed(this.widgetProperties.config.numDecimal)}`),this.chart?.update("quiet")})}transformDatasetRow(e,t){let i={x:e.timestamp,y:null};if(t===0)i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.value);else switch(this.widgetProperties.config.datasetAverageArray){case"sma":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.sma);break;case"ema":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.ema);break;case"dema":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.doubleEma);break;case"avg":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastAverage);break}return i}ngOnDestroy(){this.destroyDataStreams(),this.dsServiceSub?.unsubscribe(),this.chart?.destroy()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-data-chart"]],viewQuery:function(t,i){t&1&&we(i.widgetDataChart,pf,5,it),t&2&&Ze()},features:[pe],decls:3,vars:2,consts:[["widgetDataChart",""],[3,"configChange","config","id"],[2,"z-index","inherit"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),B(1,"canvas",2,0),C()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid))},dependencies:[We],encapsulation:2})}return r})();var ch=(()=>{class r{sanitizer=M(Qn);transform(e){return this.sanitizer.bypassSecurityTrustResourceUrl(e)}static \u0275fac=function(t){return new(t||r)};static \u0275pipe=El({name:"safe",type:r,pure:!0})}return r})();var ff=["freeboardSkIframe"];function gf(r,n){r&1&&B(0,"div",3)}var hh=(()=>{class r extends Ne{appSettings=M(Ht);auth=M(li);_dashboard=M(ct);iframe=Ce.required("freeboardSkIframe");widgetUrl=null;_authTokenSubscription=null;dashboard=M(ct);constructor(){super()}ngOnInit(){let e=null;this._authTokenSubscription=this.auth.authToken$.subscribe(t=>{e=t?.token}),this.widgetUrl=e?`${this.appSettings.signalkUrl.url}/@signalk/freeboard-sk/?token=${e}`:`${this.appSettings.signalkUrl.url}/@signalk/freeboard-sk/`,window.addEventListener("message",this.handleIframeGesture)}ngAfterViewInit(){this.iframe&&(this.iframe().nativeElement.onload=()=>this.injectHammerJS())}startWidget(){}updateConfig(){}handleIframeGesture=e=>{if(e.data){if(e.data.gesture&&e.data.eventData.instanceId===this.widgetProperties.uuid)switch(e.data.gesture){case"swipeup":this.dashboard.isDashboardStatic()&&this.dashboard.previousDashboard();break;case"swipedown":this.dashboard.isDashboardStatic()&&this.dashboard.nextDashboard();break;case"swipeleft":{let t=new Event("openLeftSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}case"swiperight":{let t=new Event("openRightSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}default:break}if(e.data.type==="keydown"&&e.data.keyEventData.instanceId===this.widgetProperties.uuid){let{key:t,ctrlKey:i,shiftKey:o}=e.data.keyEventData,a=new KeyboardEvent("keydown",{key:t,ctrlKey:i,shiftKey:o,bubbles:!0,cancelable:!0});document.dispatchEvent(a)}}};injectHammerJS(){let e=document.getElementsByTagName("base")[0]?.href||"/",t=this.iframe().nativeElement.contentWindow,i=this.iframe().nativeElement.contentDocument;if(!i||!t){console.error("[FSK Widget] Iframe contentDocument or contentWindow is undefined. Possible cross-origin issue or iframe not fully loaded.");return}if(t.Hammer){console.log("[FSK Widget] HammerJS already loaded in iframe");return}let o=i.createElement("script");o.src=`${e}assets/hammer.min.js`,o.onload=()=>this.injectSwipeHandler(),i.body.appendChild(o)}injectSwipeHandler(){let e=this.iframe().nativeElement.contentDocument;if(!e){console.error("[FSK Widget] Iframe contentDocument is undefined. Possible cross-origin issue or iframe not fully loaded.");return}let t=e.createElement("script");t.textContent=`
|
|
12
|
+
A 36 38 0 0 0 24,33`,2,"stroke-width","8.45947","stroke-linecap","square","stroke-linejoin","miter","stroke-miterlimit","0"],[1,"embed-widget",3,"widgetProperties"],["mat-flat-button","",1,"ap-btn",3,"disabled","ap-btn-active"],["viewBox","0 0 100 100","preserveAspectRatio","xMidYMid meet",1,"svg-element","svg-route"],["fill","currentColor","stroke","currentColor",0,"xml","space","preserve","x","49.961578","y","86.799866"],["fill","currentColor","d","M 12.090795,4 V 63.58544 L 71.676235,33.792718 Z",2,"stroke","none"],["fill","currentColor","stroke","currentColor","d","M 75.95674,4 V 63.58544",2,"fill","none","stroke-width","9.90493","stroke-linecap","butt","stroke-linejoin","miter","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],["tabindex","0","role","button","aria-label","Close menu",1,"svg-menu-overlay"],[1,"widgetOverlay"],[0,"xml","space","preserve","x","49.961578","y","86.799866"],["d","M 4.6584699,36.552789 29.229283,58.159051 M 4.6584699,36.451699 29.229283,14.845436",2,"stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],["d","M 95.34153,36.552789 70.770717,58.159051 M 95.34153,36.451699 70.770717,14.845436",2,"stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],[0,"xml","space","preserve","x","50.167503","y","61.058273",2,"font-size","68.6095px"],["tabindex","0","role","button","aria-label","Close menu",1,"svg-menu-overlay",3,"click","keyup.enter","keyup.space"],["tabindex","0","role","presentation","aria-label","Menu",1,"svg-menu",3,"click","keyup.enter","keyup.space"],["x","0","y","0","width","240",1,"svg-menu-box"],["tabindex","0","role","button",2,"cursor","pointer"],["tabindex","0","role","button",2,"cursor","pointer",3,"click","keyup.enter","keyup.space"],["x","0","width","240"],["x","120"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Pe("configChange",function(a){return Ee(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),L("configChange",function(a){return i.updateConfig(a)}),v(1,"div",1)(2,"div",2)(3,"button",3),L("click",function(){return i.toggleMenu()}),v(4,"mat-icon",4),Xe(),v(5,"svg",5)(6,"text",6),D(7),Kn(8,"titlecase"),w()()()(),fi(),v(9,"button",7),L("click",function(){return i.buildAndSendCommand("standby")}),v(10,"mat-icon",4),Xe(),v(11,"svg",5)(12,"text",8),D(13,"Disengage"),w()()()()(),fi(),v(14,"div",9),V(15,"app-svg-autopilot",10),v(16,"div",11),Xe(),v(17,"svg",12),V(18,"text",13)(19,"text",14),w()(),fi(),v(20,"div",15)(21,"span",16),D(22,"warning"),w(),Xe(),v(23,"svg",12),V(24,"text",17),w()()(),fi(),v(25,"div")(26,"button",18),L("click",function(){return i.buildAndSendCommand("-1")}),v(27,"mat-icon",19),Xe(),v(28,"svg",20)(29,"text",21),D(30,"-1\xB0"),w(),V(31,"path",22),w()()()(),fi(),v(32,"div")(33,"button",18),L("click",function(){return i.buildAndSendCommand("+1")}),v(34,"mat-icon",19),Xe(),v(35,"svg",20)(36,"text",23),D(37,"+1\xB0"),w(),V(38,"path",24),w()()()(),fi(),v(39,"div")(40,"button",18),L("click",function(){return i.buildAndSendCommand("-10")}),v(41,"mat-icon",19),Xe(),v(42,"svg",20)(43,"text",21),D(44,"-10\xB0"),w(),V(45,"path",25)(46,"path",26),w()()()(),fi(),v(47,"div")(48,"button",18),L("click",function(){return i.buildAndSendCommand("+10")}),v(49,"mat-icon",19),Xe(),v(50,"svg",20)(51,"text",23),D(52,"+10\xB0"),w(),V(53,"path",27)(54,"path",28),w()()()(),fi(),v(55,"div")(56,"button",18),L("click",function(){return i.buildAndSendCommand("tackToPort")}),v(57,"mat-icon",19),Xe(),v(58,"svg",20)(59,"text",21),D(60,"Tack"),w(),v(61,"g",29),V(62,"path",30)(63,"path",31)(64,"circle",32),w()()()()(),fi(),v(65,"div")(66,"button",18),L("click",function(){return i.buildAndSendCommand("tackToStarboard")}),v(67,"mat-icon",19),Xe(),v(68,"svg",20)(69,"text",21),D(70,"Tack"),w(),V(71,"path",30)(72,"path",33)(73,"circle",32),w()()()(),fi(),v(74,"div"),V(75,"widget-position",34),w(),v(76,"div"),V(77,"widget-datetime",34),w(),v(78,"div"),V(79,"widget-numeric",34),w(),v(80,"div"),V(81,"widget-numeric",34),w(),v(82,"div"),De(83,Im,9,11,"button",35),w(),v(84,"div")(85,"button",18),L("click",function(){return i.buildAndSendCommand("route")}),v(86,"mat-icon",19),Xe(),v(87,"svg",36)(88,"text",37),D(89,"Adv Wpt"),w(),V(90,"path",38)(91,"path",39),w()()()()(),De(92,Nm,6,2,"div",40),De(93,Wm,1,0,"div",41),w()),t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),_e("display",i.apGrid()),P(2),U("disabled",i.apState()==="off-line"||i.apMode()==="off-line"),P(4),pt("Mode ",go(8,65,i.apMode())," \xA0\u22EE"),P(2),vn(i.apEngaged()?"ap-btn ap-btn-ctrlbar ap-btn-disengage":"ap-btn ap-btn-ctrlbar ap-btn-engage"),U("disabled",i.apEngageBtnDisabled()),P(6),U("apMode",i.apMode())("targetPilotHeading",i.autopilotTargetHeading)("targetWindAngleHeading",i.autopilotTargetWindHeading)("compassHeading",i.heading)("courseXte",i.crossTrackError)("appWindAngle",i.windAngleApparent)("rudderAngle",i.rudder)("targetPilotHeadingTrue",i.widgetProperties.config.autopilot.courseDirectionTrue)("headingDirectionTrue",i.widgetProperties.config.autopilot.headingDirectionTrue),P(),_e("visibility",i.countdownOverlayVisibility()),P(2),U("innerHTML",i.countdownOverlayText(),ho),P(),_e("visibility",i.countDownValue>=0?"visible":"hidden"),U("innerHTML",i.countDownValue+1,ho),P(),_e("visibility",i.errorOverlayVisibility()),P(4),U("innerHTML",i.errorOverlayText(),ho),P(),_e("display",i.adjustHdgBtnVisibility()||i.apMode()==="nav"&&i.dodgeModeActive()?"block":"none"),P(),U("disabled",i.apBtnDisabled()),P(6),_e("display",i.adjustHdgBtnVisibility()||i.apMode()==="nav"&&i.dodgeModeActive()?"block":"none"),P(),U("disabled",i.apBtnDisabled()),P(6),_e("display",i.adjustHdgBtnVisibility()||i.apMode()==="nav"&&i.dodgeModeActive()?"block":"none"),P(),U("disabled",i.apBtnDisabled()),P(7),_e("display",i.adjustHdgBtnVisibility()||i.apMode()==="nav"&&i.dodgeModeActive()?"block":"none"),P(),U("disabled",i.apBtnDisabled()),P(7),_e("display",i.tackBtnVisibility()?"block":"none"),P(),U("disabled",i.apBtnDisabled()),P(9),_e("display",i.tackBtnVisibility()?"block":"none"),P(),U("disabled",i.apBtnDisabled()),P(8),_e("display",i.routeBtnVisibility()&&!i.dodgeModeActive()?"block":"none"),P(),U("widgetProperties",i.nextWptProperties()),P(),_e("display",i.routeBtnVisibility()&&!i.dodgeModeActive()?"block":"none"),P(),U("widgetProperties",i.etaProperties()),P(),_e("display",i.routeBtnVisibility()&&!i.dodgeModeActive()?"block":"none"),P(),U("widgetProperties",i.dtwProperties()),P(),_e("display",i.routeBtnVisibility()&&!i.dodgeModeActive()?"block":"none"),P(),U("widgetProperties",i.ttwProperties()),P(),_e("display",i.routeBtnVisibility()?"block":"none"),P(),Me(i.widgetProperties.config.autopilot.apiVersion==="v2"?83:-1),P(),_e("display",i.routeBtnVisibility()?"block":"none"),P(),U("disabled",i.apBtnDisabled()||i.dodgeModeActive()),P(7),Me(i.menuOpen()?92:-1),P(),Me(i.dashboard.isDashboardStatic()?-1:93))},dependencies:[Re,wc,Zt,qt,Gl,Mt,di,gr,jo,Go,qo],styles:['[_nghost-%COMP%]{display:block;height:100%;width:100%}.widget-host[_ngcontent-%COMP%]{display:block;height:100%;width:100%}.autopilot-grid-container[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;height:100%;display:grid;gap:.5rem .5rem;padding:10px;grid-template:"modes modes" minmax(50px,1fr) "screen screen" minmax(50px,auto)/1fr 1fr;grid-template-rows:.15fr 1fr;grid-auto-rows:minmax(50px,2fr)}.ap-modes[_ngcontent-%COMP%]{grid-area:modes;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(50px,1fr);gap:.5rem .5rem}.ap-screen[_ngcontent-%COMP%]{position:relative;grid-area:screen;width:100%;height:100%;max-height:200px;align-content:center}.ap-screen-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:50;vertical-align:middle;text-align:center;background-color:var(--mat-sys-background)}.ap-error-icon[_ngcontent-%COMP%]{padding-top:15px}.ap-error-text[_ngcontent-%COMP%]{color:var(--mat-sys-error-container)}.ap-btn[_ngcontent-%COMP%]{width:100%;border-radius:12px;align-items:center;justify-content:center;cursor:pointer;--mat-button-filled-container-color: var(--kip-blue-dim-color);--mat-button-filled-label-text-color: var(--kip-contrast-color);--mat-button-filled-container-height: 100%}.ap-btn-ctrlbar[_ngcontent-%COMP%]{padding:4px}.ap-btn-modes[_ngcontent-%COMP%]{--mat-button-filled-horizontal-padding: 0rem}.ap-btn-notifications[_ngcontent-%COMP%]{--mat-button-filled-container-color: var(--kip-yellow-dim-color)}.ap-btn-engage[_ngcontent-%COMP%]{--mat-button-filled-horizontal-padding: 0rem;--mat-button-filled-container-color: var(--kip-port-color)}.ap-btn-disengage[_ngcontent-%COMP%]{--mat-button-filled-horizontal-padding: 0rem;--mat-button-filled-container-color: var(--kip-starboard-color)}.svg-icon-ctrlbar[_ngcontent-%COMP%]{width:100%;height:100%;margin:0;padding:0}.svg-icon[_ngcontent-%COMP%]{width:100%;height:100%;margin:0;padding:.5rem}.svg-element[_ngcontent-%COMP%]{width:100%;height:100%;padding:0}.svg-element[_ngcontent-%COMP%] text[_ngcontent-%COMP%]{font-family:Roboto;font-size:25px;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}.svg-element[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{stroke-width:7.59058;stroke-linecap:round;stroke-miterlimit:0;stroke-dasharray:none}.svg-element-msg[_ngcontent-%COMP%]{font-family:Roboto;font-size:12px;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;fill:var(--kip-contrast-color);fill-opacity:1;stroke:none}.svg-element-note[_ngcontent-%COMP%]{font-family:Roboto;font-size:.5em;font-weight:400;text-align:center;text-anchor:middle;font-style:italic;font-variant:normal;font-stretch:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:var(--kip-contrast-dim-color);fill-opacity:1;stroke:none}.svg-element-error-txt[_ngcontent-%COMP%]{fill:var(--mat-sys-error-container)}.svg-element-notifications[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}.svg-element-clear-notifications[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);fill-opacity:1;stroke:none}.svg-modes[_ngcontent-%COMP%] text[_ngcontent-%COMP%]{font-size:12px}.svg-route[_ngcontent-%COMP%] text[_ngcontent-%COMP%]{font-size:25px}.embed-widget[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-surface-container-highest);border-radius:12px}@media (max-width: 600px){.autopilot-grid-container[_ngcontent-%COMP%]{padding:.5rem;gap:.25rem}.autopilot-btn[_ngcontent-%COMP%]{font-size:.95rem;padding:.4em .5em}}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}.svg-menu-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;background:#000c;z-index:19;display:flex;align-items:center;justify-content:center}.svg-menu-box[_ngcontent-%COMP%]{fill:var(--mat-sys-surface);stroke:none;border-radius:12px}.svg-menu[_ngcontent-%COMP%]{max-width:80%;background:transparent;border-radius:12px;box-shadow:0 4px 24px #00000026;z-index:20;display:block;font-family:Roboto;font-size:1.1rem;font-weight:700;text-anchor:middle;text-align:center;alignment-baseline:middle}g[_ngcontent-%COMP%]:hover rect[_ngcontent-%COMP%]{fill-opacity:.7}g[_ngcontent-%COMP%]:hover text[_ngcontent-%COMP%]{fill-opacity:.7}g[_ngcontent-%COMP%]:active rect[_ngcontent-%COMP%]{fill-opacity:.4}g[_ngcontent-%COMP%]:active text[_ngcontent-%COMP%]{fill-opacity:.4}.svg-menu-item[_ngcontent-%COMP%]{fill:var(--kip-blue-color);stroke:var(--mat-sys-outline-variant)}.svg-menu-item-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:none}.svg-menu-item-current[_ngcontent-%COMP%]{fill:var(--kip-blue-color);pointer-events:none;stroke:var(--mat-sys-outline-variant)}.svg-menu-item-current-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:none;pointer-events:none}.svg-menu-item-disabled[_ngcontent-%COMP%]{fill:var(--kip-blue-color);pointer-events:none;stroke:var(--mat-sys-outline-variant)}.svg-menu-item-disabled-text[_ngcontent-%COMP%]{fill:var(--mat-sys-surface-tint);stroke:none;pointer-events:none}.svg-menu-item-cancel[_ngcontent-%COMP%]{fill:var(--mat-sys-outline);stroke:var(--mat-sys-outline-variant)}.svg-menu-item-cancel-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color);stroke:none}.counterText[_ngcontent-%COMP%]{font-weight:700;font-size:7em;margin-top:0;margin-bottom:0}']})}return r})();var Sc={modes:{point(r,n){return $o(r,n,{intersect:!0})},nearest(r,n,e){return Lm(r,n,e)},x(r,n,e){return $o(r,n,{intersect:e.intersect,axis:"x"})},y(r,n,e){return $o(r,n,{intersect:e.intersect,axis:"y"})}}};function Cs(r,n,e){return(Sc.modes[e.mode]||Sc.modes.nearest)(r,n,e)}function Vm(r,n,e){return e!=="x"&&e!=="y"?r.inRange(n.x,n.y,"x",!0)||r.inRange(n.x,n.y,"y",!0):r.inRange(n.x,n.y,e,!0)}function zm(r,n,e){return e==="x"?{x:r.x,y:n.y}:e==="y"?{x:n.x,y:r.y}:n}function $o(r,n,e){return r.filter(t=>e.intersect?t.inRange(n.x,n.y):Vm(t,n,e.axis))}function Lm(r,n,e){let t=Number.POSITIVE_INFINITY;return $o(r,n,e).reduce((i,o)=>{let a=o.getCenterPoint(),l=zm(n,a,e.axis),d=Vr(n,l);return d<t?(i=[o],t=d):d===t&&i.push(o),i},[]).sort((i,o)=>i._index-o._index).slice(0,1)}function Dn(r,n,e){let t=Math.cos(e),i=Math.sin(e),o=n.x,a=n.y;return{x:o+t*(r.x-o)-i*(r.y-a),y:a+i*(r.x-o)+t*(r.y-a)}}var Bm=(r,n)=>n>r||r.length>n.length&&r.slice(0,n.length)===n,Tn=.001,Xo=(r,n,e)=>Math.min(e,Math.max(n,r)),Uc=(r,n)=>r.value>=r.start-n&&r.value<=r.end+n;function Fm(r,n,e){for(let t of Object.keys(r))r[t]=Xo(r[t],n,e);return r}function Hm(r,n,e,t){return!r||!n||e<=0?!1:Math.pow(r.x-n.x,2)+Math.pow(r.y-n.y,2)<=Math.pow(e+t,2)}function Gc(r,{x:n,y:e,x2:t,y2:i},o,{borderWidth:a,hitTolerance:l}){let d=(a+l)/2,p=r.x>=n-d-Tn&&r.x<=t+d+Tn,s=r.y>=e-d-Tn&&r.y<=i+d+Tn;return o==="x"?p:(o==="y"||p)&&s}function qc(r,{rect:n,center:e},t,{rotation:i,borderWidth:o,hitTolerance:a}){let l=Dn(r,e,yi(-i));return Gc(l,n,t,{borderWidth:o,hitTolerance:a})}function Mn(r,n){let{centerX:e,centerY:t}=r.getProps(["centerX","centerY"],n);return{x:e,y:t}}function Um(r,n,e,t=!0){let i=e.split("."),o=0;for(let a of n.split(".")){let l=i[o++];if(parseInt(a,10)<parseInt(l,10))break;if(Bm(l,a)){if(t)throw new Error(`${r} v${e} is not supported. v${n} or newer is required.`);return!1}}return!0}var jc=r=>typeof r=="string"&&r.endsWith("%"),$c=r=>parseFloat(r)/100,Yc=r=>Xo($c(r),0,1),Fr=(r,n)=>({x:r,y:n,x2:r,y2:n,width:0,height:0}),Gm={box:r=>Fr(r.centerX,r.centerY),doughnutLabel:r=>Fr(r.centerX,r.centerY),ellipse:r=>({centerX:r.centerX,centerY:r.centerX,radius:0,width:0,height:0}),label:r=>Fr(r.centerX,r.centerY),line:r=>Fr(r.x,r.y),point:r=>({centerX:r.centerX,centerY:r.centerY,radius:0,width:0,height:0}),polygon:r=>Fr(r.centerX,r.centerY)};function Ss(r,n){return n==="start"?0:n==="end"?r:jc(n)?Yc(n)*r:r/2}function dn(r,n,e=!0){return typeof n=="number"?n:jc(n)?(e?Yc(n):$c(n))*r:r}function qm(r,n){let{x:e,width:t}=r,i=n.textAlign;return i==="center"?e+t/2:i==="end"||i==="right"?e+t:e}function Xc(r,n,{borderWidth:e,position:t,xAdjust:i,yAdjust:o},a){let l=Ji(a),d=n.width+(l?a.width:0)+e,p=n.height+(l?a.height:0)+e,s=ks(t),c=kc(r.x,d,i,s.x),m=kc(r.y,p,o,s.y);return{x:c,y:m,x2:c+d,y2:m+p,width:d,height:p,centerX:c+d/2,centerY:m+p/2}}function ks(r,n="center"){return Ji(r)?{x:_n(r.x,n),y:_n(r.y,n)}:(r=_n(r,n),{x:r,y:r})}var Kc=(r,n)=>r&&r.autoFit&&n<1;function Qc(r,n){let e=r.font,t=Zi(e)?e:[e];return Kc(r,n)?t.map(function(i){let o=zr(i);return o.size=Math.floor(i.size*n),o.lineHeight=i.lineHeight,zr(o)}):t.map(i=>zr(i))}function Zc(r){return r&&(vi(r.xValue)||vi(r.yValue))}function kc(r,n,e=0,t){return r-Ss(n,t)+e}function wr(r,n,e){let t=e.init;if(t){if(t===!0)return eh(n,e)}else return;return jm(r,n,e)}function Jc(r,n,e){let t=!1;return n.forEach(i=>{en(r[i])?(t=!0,e[i]=r[i]):vi(e[i])&&delete e[i]}),t}function eh(r,n){let e=n.type||"line";return Gm[e](r)}function jm(r,n,e){let t=Wr(e.init,[{chart:r,properties:n,options:e}]);if(t===!0)return eh(n,e);if(Ji(t))return t}var ps=new Map,$m=r=>isNaN(r)||r<=0,Ym=r=>r.reduce(function(n,e){return n+=e.string,n},"");function Ko(r){if(r&&typeof r=="object"){let n=r.toString();return n==="[object HTMLImageElement]"||n==="[object HTMLCanvasElement]"}}function Qo(r,{x:n,y:e},t){t&&(r.translate(n,e),r.rotate(yi(t)),r.translate(-n,-e))}function Ni(r,n){if(n&&n.borderWidth)return r.lineCap=n.borderCapStyle||"butt",r.setLineDash(n.borderDash),r.lineDashOffset=n.borderDashOffset,r.lineJoin=n.borderJoinStyle||"miter",r.lineWidth=n.borderWidth,r.strokeStyle=n.borderColor,!0}function Cr(r,n){r.shadowColor=n.backgroundShadowColor,r.shadowBlur=n.shadowBlur,r.shadowOffsetX=n.shadowOffsetX,r.shadowOffsetY=n.shadowOffsetY}function Zo(r,n){let e=n.content;if(Ko(e))return{width:dn(e.width,n.width),height:dn(e.height,n.height)};let t=Qc(n),i=n.textStrokeWidth,o=Zi(e)?e:[e],a=o.join()+Ym(t)+i+(r._measureText?"-spriting":"");return ps.has(a)||ps.set(a,Zm(r,o,t,i)),ps.get(a)}function th(r,n,e){let{x:t,y:i,width:o,height:a}=n;r.save(),Cr(r,e);let l=Ni(r,e);r.fillStyle=e.backgroundColor,r.beginPath(),ns(r,{x:t,y:i,w:o,h:a,radius:Fm(rs(e.borderRadius),0,Math.min(o,a)/2)}),r.closePath(),r.fill(),l&&(r.shadowColor=e.borderShadowColor,r.stroke()),r.restore()}function ih(r,n,e,t){let i=e.content;if(Ko(i)){r.save(),r.globalAlpha=tp(e.opacity,i.style.opacity),r.drawImage(i,n.x,n.y,n.width,n.height),r.restore();return}let o=Zi(i)?i:[i],a=Qc(e,t),l=e.color,d=Zi(l)?l:[l],p=qm(n,e),s=n.y+e.textStrokeWidth/2;r.save(),r.textBaseline="middle",r.textAlign=e.textAlign,Xm(r,e)&&Jm(r,{x:p,y:s},o,a),ep(r,{x:p,y:s},o,{fonts:a,colors:d}),r.restore()}function Xm(r,n){if(n.textStrokeWidth>0)return r.lineJoin="round",r.miterLimit=2,r.lineWidth=n.textStrokeWidth,r.strokeStyle=n.textStrokeColor,!0}function Km(r,n,e,t){let{radius:i,options:o}=n,a=o.pointStyle,l=o.rotation,d=(l||0)*Oo;if(Ko(a)){r.save(),r.translate(e,t),r.rotate(d),r.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),r.restore();return}$m(i)||Qm(r,{x:e,y:t,radius:i,rotation:l,style:a,rad:d})}function Qm(r,{x:n,y:e,radius:t,rotation:i,style:o,rad:a}){let l,d,p,s;switch(r.beginPath(),o){default:r.arc(n,e,t,0,Ao),r.closePath();break;case"triangle":r.moveTo(n+Math.sin(a)*t,e-Math.cos(a)*t),a+=Io,r.lineTo(n+Math.sin(a)*t,e-Math.cos(a)*t),a+=Io,r.lineTo(n+Math.sin(a)*t,e-Math.cos(a)*t),r.closePath();break;case"rectRounded":s=t*.516,p=t-s,l=Math.cos(a+wn)*p,d=Math.sin(a+wn)*p,r.arc(n-l,e-d,s,a-Jt,a-lr),r.arc(n+d,e-l,s,a-lr,a),r.arc(n+l,e+d,s,a,a+lr),r.arc(n-d,e+l,s,a+lr,a+Jt),r.closePath();break;case"rect":if(!i){p=Math.SQRT1_2*t,r.rect(n-p,e-p,2*p,2*p);break}a+=wn;case"rectRot":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+d,e-l),r.lineTo(n+l,e+d),r.lineTo(n-d,e+l),r.closePath();break;case"crossRot":a+=wn;case"cross":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d),r.moveTo(n+d,e-l),r.lineTo(n-d,e+l);break;case"star":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d),r.moveTo(n+d,e-l),r.lineTo(n-d,e+l),a+=wn,l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d),r.moveTo(n+d,e-l),r.lineTo(n-d,e+l);break;case"line":l=Math.cos(a)*t,d=Math.sin(a)*t,r.moveTo(n-l,e-d),r.lineTo(n+l,e+d);break;case"dash":r.moveTo(n,e),r.lineTo(n+Math.cos(a)*t,e+Math.sin(a)*t);break}r.fill()}function Zm(r,n,e,t){r.save();let i=n.length,o=0,a=t;for(let l=0;l<i;l++){let d=e[Math.min(l,e.length-1)];r.font=d.string;let p=n[l];o=Math.max(o,r.measureText(p).width+t),a+=d.lineHeight}return r.restore(),{width:o,height:a}}function Jm(r,{x:n,y:e},t,i){r.beginPath();let o=0;t.forEach(function(a,l){let d=i[Math.min(l,i.length-1)],p=d.lineHeight;r.font=d.string,r.strokeText(a,n,e+p/2+o),o+=p}),r.stroke()}function ep(r,{x:n,y:e},t,{fonts:i,colors:o}){let a=0;t.forEach(function(l,d){let p=o[Math.min(d,o.length-1)],s=i[Math.min(d,i.length-1)],c=s.lineHeight;r.beginPath(),r.font=s.string,r.fillStyle=p,r.fillText(l,n,e+c/2+a),a+=c,r.fill()})}function tp(r,n){let e=Ro(r)?r:n;return Ro(e)?Xo(e,0,1):1}var nh=["left","bottom","top","right"];function ip(r,n){let{pointX:e,pointY:t,options:i}=n,o=i.callout,a=o&&o.display&&sp(n,o);if(!a||dp(n,o,a))return;if(r.save(),r.beginPath(),!Ni(r,o))return r.restore();let{separatorStart:d,separatorEnd:p}=np(n,a),{sideStart:s,sideEnd:c}=op(n,a,d);(o.margin>0||i.borderWidth===0)&&(r.moveTo(d.x,d.y),r.lineTo(p.x,p.y)),r.moveTo(s.x,s.y),r.lineTo(c.x,c.y);let m=Dn({x:e,y:t},n.getCenterPoint(),yi(-n.rotation));r.lineTo(m.x,m.y),r.stroke(),r.restore()}function np(r,n){let{x:e,y:t,x2:i,y2:o}=r,a=rp(r,n),l,d;return n==="left"||n==="right"?(l={x:e+a,y:t},d={x:l.x,y:o}):(l={x:e,y:t+a},d={x:i,y:l.y}),{separatorStart:l,separatorEnd:d}}function rp(r,n){let{width:e,height:t,options:i}=r,o=i.callout.margin+i.borderWidth/2;return n==="right"?e+o:n==="bottom"?t+o:-o}function op(r,n,e){let{y:t,width:i,height:o,options:a}=r,l=a.callout.start,d=ap(n,a.callout),p,s;return n==="left"||n==="right"?(p={x:e.x,y:t+dn(o,l)},s={x:p.x+d,y:p.y}):(p={x:e.x+dn(i,l),y:e.y},s={x:p.x,y:p.y+d}),{sideStart:p,sideEnd:s}}function ap(r,n){let e=n.side;return r==="left"||r==="top"?-e:e}function sp(r,n){let e=n.position;return nh.includes(e)?e:lp(r,n)}function lp(r,n){let{x:e,y:t,x2:i,y2:o,width:a,height:l,pointX:d,pointY:p,centerX:s,centerY:c,rotation:m}=r,y={x:s,y:c},_=n.start,T=dn(a,_),E=dn(l,_),z=[e,e+T,e+T,i],Y=[t+E,o,t,o],te=[];for(let be=0;be<4;be++){let He=Dn({x:z[be],y:Y[be]},y,yi(m));te.push({position:nh[be],distance:Vr(He,{x:d,y:p})})}return te.sort((be,He)=>be.distance-He.distance)[0].position}function dp(r,n,e){let{pointX:t,pointY:i}=r,o=n.margin,a=t,l=i;return e==="left"?a+=o:e==="right"?a-=o:e==="top"?l+=o:e==="bottom"&&(l-=o),r.inRange(a,l)}var Tc={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function vr(r,n,e){return n=typeof n=="number"?n:r.parse(n),Mo(n)?r.getPixelForValue(n):e}function xn(r,n,e){let t=n[e];if(t||e==="scaleID")return t;let i=e.charAt(0),o=Object.values(r).filter(a=>a.axis&&a.axis===i);return o.length?o[0].id:i}function rh(r,n){if(r){let e=r.options.reverse,t=vr(r,n.min,e?n.end:n.start),i=vr(r,n.max,e?n.start:n.end);return{start:t,end:i}}}function oh(r,n){let{chartArea:e,scales:t}=r,i=t[xn(t,n,"xScaleID")],o=t[xn(t,n,"yScaleID")],a=e.width/2,l=e.height/2;return i&&(a=vr(i,n.xValue,i.left+i.width/2)),o&&(l=vr(o,n.yValue,o.top+o.height/2)),{x:a,y:l}}function Ts(r,n){let e=r.scales,t=e[xn(e,n,"xScaleID")],i=e[xn(e,n,"yScaleID")];if(!t&&!i)return{};let{left:o,right:a}=t||r.chartArea,{top:l,bottom:d}=i||r.chartArea,p=xc(t,{min:n.xMin,max:n.xMax,start:o,end:a});o=p.start,a=p.end;let s=xc(i,{min:n.yMin,max:n.yMax,start:d,end:l});return l=s.start,d=s.end,{x:o,y:l,x2:a,y2:d,width:a-o,height:d-l,centerX:o+(a-o)/2,centerY:l+(d-l)/2}}function ah(r,n){if(!Zc(n)){let e=Ts(r,n),t=n.radius;(!t||isNaN(t))&&(t=Math.min(e.width,e.height)/2,n.radius=t);let i=t*2,o=e.centerX+n.xAdjust,a=e.centerY+n.yAdjust;return{x:o-t,y:a-t,x2:o+t,y2:a+t,centerX:o,centerY:a,width:i,height:i,radius:t}}return hp(r,n)}function cp(r,n){let{scales:e,chartArea:t}=r,i=e[n.scaleID],o={x:t.left,y:t.top,x2:t.right,y2:t.bottom};return i?up(i,o,n):mp(e,o,n),o}function sh(r,n){let e=Ts(r,n);return e.initProperties=wr(r,e,n),e.elements=[{type:"label",optionScope:"label",properties:gp(r,e,n),initProperties:e.initProperties}],e}function hp(r,n){let e=oh(r,n),t=n.radius*2;return{x:e.x-n.radius+n.xAdjust,y:e.y-n.radius+n.yAdjust,x2:e.x+n.radius+n.xAdjust,y2:e.y+n.radius+n.yAdjust,centerX:e.x+n.xAdjust,centerY:e.y+n.yAdjust,radius:n.radius,width:t,height:t}}function xc(r,n){let e=rh(r,n)||n;return{start:Math.min(e.start,e.end),end:Math.max(e.start,e.end)}}function up(r,n,e){let t=vr(r,e.value,NaN),i=vr(r,e.endValue,t);r.isHorizontal()?(n.x=t,n.x2=i):(n.y=t,n.y2=i)}function mp(r,n,e){for(let t of Object.keys(Tc)){let i=r[xn(r,e,t)];if(i){let{min:o,max:a,start:l,end:d,startProp:p,endProp:s}=Tc[t],c=rh(i,{min:e[o],max:e[a],start:i[l],end:i[d]});n[p]=c.start,n[s]=c.end}}}function pp({properties:r,options:n},e,t,i){let{x:o,x2:a,width:l}=r;return lh({start:o,end:a,size:l,borderWidth:n.borderWidth},{position:t.x,padding:{start:i.left,end:i.right},adjust:n.label.xAdjust,size:e.width})}function fp({properties:r,options:n},e,t,i){let{y:o,y2:a,height:l}=r;return lh({start:o,end:a,size:l,borderWidth:n.borderWidth},{position:t.y,padding:{start:i.top,end:i.bottom},adjust:n.label.yAdjust,size:e.height})}function lh(r,n){let{start:e,end:t,borderWidth:i}=r,{position:o,padding:{start:a,end:l},adjust:d}=n,p=t-i-e-a-l-n.size;return e+i/2+d+Ss(p,o)}function gp(r,n,e){let t=e.label;t.backgroundColor="transparent",t.callout.display=!1;let i=ks(t.position),o=dr(t.padding),a=Zo(r.ctx,t),l=pp({properties:n,options:e},a,i,o),d=fp({properties:n,options:e},a,i,o),p=a.width+o.width,s=a.height+o.height;return{x:l,y:d,x2:l+p,y2:d+s,width:p,height:s,centerX:l+p/2,centerY:d+s/2,rotation:t.rotation}}var fs=["enter","leave"],xs=fs.concat("click");function vp(r,n,e){n.listened=Jc(e,xs,n.listeners),n.moveListened=!1,fs.forEach(t=>{en(e[t])&&(n.moveListened=!0)}),(!n.listened||!n.moveListened)&&n.annotations.forEach(t=>{!n.listened&&en(t.click)&&(n.listened=!0),n.moveListened||fs.forEach(i=>{en(t[i])&&(n.listened=!0,n.moveListened=!0)})})}function yp(r,n,e){if(r.listened)switch(n.type){case"mousemove":case"mouseout":return bp(r,n,e);case"click":return _p(r,n,e)}}function bp(r,n,e){if(!r.moveListened)return;let t;n.type==="mousemove"?t=Cs(r.visibleElements,n,e.interaction):t=[];let i=r.hovered;r.hovered=t;let o={state:r,event:n},a=Ec(o,"leave",i,t);return Ec(o,"enter",t,i)||a}function Ec({state:r,event:n},e,t,i){let o;for(let a of t)i.indexOf(a)<0&&(o=dh(a.options[e]||r.listeners[e],a,n)||o);return o}function _p(r,n,e){let t=r.listeners,i=Cs(r.visibleElements,n,e.interaction),o;for(let a of i)o=dh(a.options.click||t.click,a,n)||o;return o}function dh(r,n,e){return Wr(r,[n.$context,e])===!0}var Yo=["afterDraw","beforeDraw"];function wp(r,n,e){let t=n.visibleElements;n.hooked=Jc(e,Yo,n.hooks),n.hooked||t.forEach(i=>{n.hooked||Yo.forEach(o=>{en(i.options[o])&&(n.hooked=!0)})})}function Pc(r,n,e){if(r.hooked){let t=n.options[e]||r.hooks[e];return Wr(t,[n.$context])}}function Cp(r,n,e){let t=Ep(r.scales,n,e),i=Dc(n,t,"min","suggestedMin");i=Dc(n,t,"max","suggestedMax")||i,i&&en(n.handleTickRangeOptions)&&n.handleTickRangeOptions()}function Sp(r,n){for(let e of r)Tp(e,n)}function Dc(r,n,e,t){if(Mo(n[e])&&!kp(r.options,e,t)){let i=r[e]!==n[e];return r[e]=n[e],i}}function kp(r,n,e){return vi(r[n])||vi(r[e])}function Tp(r,n){for(let e of["scaleID","xScaleID","yScaleID"]){let t=xn(n,r,e);t&&!n[t]&&xp(r,e)&&console.warn(`No scale found with id '${t}' for annotation '${r.id}'`)}}function xp(r,n){if(n==="scaleID")return!0;let e=n.charAt(0);for(let t of["Min","Max","Value"])if(vi(r[e+t]))return!0;return!1}function Ep(r,n,e){let t=n.axis,i=n.id,o=t+"ScaleID",a={min:_n(n.min,Number.NEGATIVE_INFINITY),max:_n(n.max,Number.POSITIVE_INFINITY)};for(let l of e)l.scaleID===i?Mc(l,n,["value","endValue"],a):xn(r,l,o)===i&&Mc(l,n,[t+"Min",t+"Max",t+"Value"],a);return a}function Mc(r,n,e,t){for(let i of e){let o=r[i];if(vi(o)){let a=n.parse(o);t.min=Math.min(t.min,a),t.max=Math.max(t.max,a)}}}var cn=class extends tn{inRange(n,e,t,i){let{x:o,y:a}=Dn({x:n,y:e},this.getCenterPoint(i),yi(-this.options.rotation));return Gc({x:o,y:a},this.getProps(["x","y","x2","y2"],i),t,this.options)}getCenterPoint(n){return Mn(this,n)}draw(n){n.save(),Qo(n,this.getCenterPoint(),this.options.rotation),th(n,this,this.options),n.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(n,e){return sh(n,e)}};cn.id="boxAnnotation";cn.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,hitTolerance:0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};cn.defaultRoutes={borderColor:"color",backgroundColor:"color"};cn.descriptors={label:{_fallback:!0}};var yr=class extends tn{inRange(n,e,t,i){return qc({x:n,y:e},{rect:this.getProps(["x","y","x2","y2"],i),center:this.getCenterPoint(i)},t,{rotation:this.rotation,borderWidth:0,hitTolerance:this.options.hitTolerance})}getCenterPoint(n){return Mn(this,n)}draw(n){let e=this.options;!e.display||!e.content||(Ip(n,this),n.save(),Qo(n,this.getCenterPoint(),this.rotation),ih(n,this,e,this._fitRatio),n.restore())}resolveElementProperties(n,e){let t=Pp(n,e);if(!t)return{};let{controllerMeta:i,point:o,radius:a}=Mp(n,e,t),l=Zo(n.ctx,e),d=Ap(l,a);Kc(e,d)&&(l={width:l.width*d,height:l.height*d});let{position:p,xAdjust:s,yAdjust:c}=e,m=Xc(o,l,{borderWidth:0,position:p,xAdjust:s,yAdjust:c});return et(X(X({initProperties:wr(n,m,e)},m),i),{rotation:e.rotation,_fitRatio:d})}};yr.id="doughnutLabelAnnotation";yr.defaults={autoFit:!0,autoHide:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderColor:"transparent",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:0,color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,spacing:1,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0};yr.defaultRoutes={};function Pp(r,n){return r.getSortedVisibleDatasetMetas().reduce(function(e,t){let i=t.controller;return i instanceof Bd&&Dp(r,n,t.data)&&(!e||i.innerRadius<e.controller.innerRadius)&&i.options.circumference>=90?t:e},void 0)}function Dp(r,n,e){if(!n.autoHide)return!0;for(let t=0;t<e.length;t++)if(!e[t].hidden&&r.getDataVisibility(t))return!0}function Mp({chartArea:r},n,e){let{left:t,top:i,right:o,bottom:a}=r,{innerRadius:l,offsetX:d,offsetY:p}=e.controller,s=(t+o)/2+d,c=(i+a)/2+p,m={left:Math.max(s-l,t),right:Math.min(s+l,o),top:Math.max(c-l,i),bottom:Math.min(c+l,a)},y={x:(m.left+m.right)/2,y:(m.top+m.bottom)/2},_=n.spacing+n.borderWidth/2,T=l-_,E=y.y>c,z=E?i+_:a-_,Y=Op(z,s,c,T);return{controllerMeta:X({_centerX:s,_centerY:c,_radius:T,_counterclockwise:E},Y),point:y,radius:Math.min(l,Math.min(m.right-m.left,m.bottom-m.top)/2)}}function Ap({width:r,height:n},e){let t=Math.sqrt(Math.pow(r,2)+Math.pow(n,2));return e*2/t}function Op(r,n,e,t){let i=Math.pow(e-r,2),o=Math.pow(t,2),a=n*-2,l=Math.pow(n,2)+i-o,d=Math.pow(a,2)-4*l;if(d<=0)return{_startAngle:0,_endAngle:Ao};let p=(-a-Math.sqrt(d))/2,s=(-a+Math.sqrt(d))/2;return{_startAngle:No({x:n,y:e},{x:p,y:r}).angle,_endAngle:No({x:n,y:e},{x:s,y:r}).angle}}function Ip(r,n){let{_centerX:e,_centerY:t,_radius:i,_startAngle:o,_endAngle:a,_counterclockwise:l,options:d}=n;r.save();let p=Ni(r,d);r.fillStyle=d.backgroundColor,r.beginPath(),r.arc(e,t,i,o,a,l),r.closePath(),r.fill(),p&&r.stroke(),r.restore()}var En=class extends tn{inRange(n,e,t,i){return qc({x:n,y:e},{rect:this.getProps(["x","y","x2","y2"],i),center:this.getCenterPoint(i)},t,{rotation:this.rotation,borderWidth:this.options.borderWidth,hitTolerance:this.options.hitTolerance})}getCenterPoint(n){return Mn(this,n)}draw(n){let e=this.options,t=!vi(this._visible)||this._visible;!e.display||!e.content||!t||(n.save(),Qo(n,this.getCenterPoint(),this.rotation),ip(n,this),th(n,this,e),ih(n,Rp(this),e),n.restore())}resolveElementProperties(n,e){let t;if(Zc(e))t=oh(n,e);else{let{centerX:l,centerY:d}=Ts(n,e);t={x:l,y:d}}let i=dr(e.padding),o=Zo(n.ctx,e),a=Xc(t,o,e,i);return et(X({initProperties:wr(n,a,e),pointX:t.x,pointY:t.y},a),{rotation:e.rotation})}};En.id="labelAnnotation";En.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,hitTolerance:0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};En.defaultRoutes={borderColor:"color"};function Rp({x:r,y:n,width:e,height:t,options:i}){let o=i.borderWidth/2,a=dr(i.padding);return{x:r+a.left+o,y:n+a.top+o,width:e-a.left-a.right-i.borderWidth,height:t-a.top-a.bottom-i.borderWidth}}var Es=(r,n,e)=>({x:r.x+e*(n.x-r.x),y:r.y+e*(n.y-r.y)}),gs=(r,n,e)=>Es(n,e,Math.abs((r-n.y)/(e.y-n.y))).x,Ac=(r,n,e)=>Es(n,e,Math.abs((r-n.x)/(e.x-n.x))).y,Ur=r=>r*r,Np=(r,n,{x:e,y:t,x2:i,y2:o},a)=>a==="y"?{start:Math.min(t,o),end:Math.max(t,o),value:n}:{start:Math.min(e,i),end:Math.max(e,i),value:r},Oc=(r,n,e,t)=>(1-t)*(1-t)*r+2*(1-t)*t*n+t*t*e,vs=(r,n,e,t)=>({x:Oc(r.x,n.x,e.x,t),y:Oc(r.y,n.y,e.y,t)}),Ic=(r,n,e,t)=>2*(1-t)*(n-r)+2*t*(e-n),Rc=(r,n,e,t)=>-Math.atan2(Ic(r.x,n.x,e.x,t),Ic(r.y,n.y,e.y,t))+.5*Jt,Jo=(()=>{class r extends tn{inRange(e,t,i,o){let a=(this.options.borderWidth+this.options.hitTolerance)/2;if(i!=="x"&&i!=="y"){let l={mouseX:e,mouseY:t},{path:d,ctx:p}=this;if(d){Ni(p,this.options),p.lineWidth+=this.options.hitTolerance;let{chart:c}=this.$context,m=e*c.currentDevicePixelRatio,y=t*c.currentDevicePixelRatio,_=p.isPointInStroke(d,m,y)||ys(this,l,o);return p.restore(),_}let s=Ur(a);return Lp(this,l,s,o)||ys(this,l,o)}return Wp(this,{mouseX:e,mouseY:t},i,{hitSize:a,useFinalPosition:o})}getCenterPoint(e){return Mn(this,e)}draw(e){let{x:t,y:i,x2:o,y2:a,cp:l,options:d}=this;if(e.save(),!Ni(e,d))return e.restore();Cr(e,d);let p=Math.sqrt(Math.pow(o-t,2)+Math.pow(a-i,2));if(d.curve&&l)return $p(e,this,l,p),e.restore();let{startOpts:s,endOpts:c,startAdjust:m,endAdjust:y}=ch(this),_=Math.atan2(a-i,o-t);e.translate(t,i),e.rotate(_),e.beginPath(),e.moveTo(0+m,0),e.lineTo(p-y,0),e.shadowColor=d.borderShadowColor,e.stroke(),bs(e,0,m,s),bs(e,p,-y,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,t){let i=cp(e,t),{x:o,y:a,x2:l,y2:d}=i,p=Vp(i,e.chartArea),s=p?zp({x:o,y:a},{x:l,y:d},e.chartArea):{x:o,y:a,x2:l,y2:d,width:Math.abs(l-o),height:Math.abs(d-a)};if(s.centerX=(l+o)/2,s.centerY=(d+a)/2,s.initProperties=wr(e,s,t),t.curve){let m={x:s.x,y:s.y},y={x:s.x2,y:s.y2};s.cp=jp(s,t,Vr(m,y))}let c=Bp(e,s,t.label);return c._visible=p,s.elements=[{type:"label",optionScope:"label",properties:c,initProperties:s.initProperties}],s}}return r.id="lineAnnotation",r})(),Nc={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};Jo.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},Nc),fill:!1,length:12,start:Object.assign({},Nc),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,hitTolerance:0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},En.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,hitTolerance:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};Jo.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};Jo.defaultRoutes={borderColor:"color"};function Wp(r,{mouseX:n,mouseY:e},t,{hitSize:i,useFinalPosition:o}){let a=Np(n,e,r.getProps(["x","y","x2","y2"],o),t);return Uc(a,i)||ys(r,{mouseX:n,mouseY:e},o,t)}function Vp({x:r,y:n,x2:e,y2:t},{top:i,right:o,bottom:a,left:l}){return!(r<l&&e<l||r>o&&e>o||n<i&&t<i||n>a&&t>a)}function Wc({x:r,y:n},e,{top:t,right:i,bottom:o,left:a}){return r<a&&(n=Ac(a,{x:r,y:n},e),r=a),r>i&&(n=Ac(i,{x:r,y:n},e),r=i),n<t&&(r=gs(t,{x:r,y:n},e),n=t),n>o&&(r=gs(o,{x:r,y:n},e),n=o),{x:r,y:n}}function zp(r,n,e){let{x:t,y:i}=Wc(r,n,e),{x:o,y:a}=Wc(n,r,e);return{x:t,y:i,x2:o,y2:a,width:Math.abs(o-t),height:Math.abs(a-i)}}function Lp(r,{mouseX:n,mouseY:e},t=Tn,i){let{x:o,y:a,x2:l,y2:d}=r.getProps(["x","y","x2","y2"],i),p=l-o,s=d-a,c=Ur(p)+Ur(s),m=c===0?-1:((n-o)*p+(e-a)*s)/c,y,_;return m<0?(y=o,_=a):m>1?(y=l,_=d):(y=o+m*p,_=a+m*s),Ur(n-y)+Ur(e-_)<=t}function ys(r,{mouseX:n,mouseY:e},t,i){let o=r.label;return o.options.display&&o.inRange(n,e,i,t)}function Bp(r,n,e){let t=e.borderWidth,i=dr(e.padding),o=Zo(r.ctx,e),a=o.width+i.width+t,l=o.height+i.height+t;return Hp(n,e,{width:a,height:l,padding:i},r.chartArea)}function Fp(r){let{x:n,y:e,x2:t,y2:i}=r,o=Math.atan2(i-e,t-n);return o>Jt/2?o-Jt:o<Jt/-2?o+Jt:o}function Hp(r,n,e,t){let{width:i,height:o,padding:a}=e,{xAdjust:l,yAdjust:d}=n,p={x:r.x,y:r.y},s={x:r.x2,y:r.y2},c=n.rotation==="auto"?Fp(r):yi(n.rotation),m=Up(i,o,c),y=Gp(r,n,{labelSize:m,padding:a},t),_=r.cp?vs(p,r.cp,s,y):Es(p,s,y),T={size:m.w,min:t.left,max:t.right,padding:a.left},E={size:m.h,min:t.top,max:t.bottom,padding:a.top},z=zc(_.x,T)+l,Y=zc(_.y,E)+d;return{x:z-i/2,y:Y-o/2,x2:z+i/2,y2:Y+o/2,centerX:z,centerY:Y,pointX:_.x,pointY:_.y,width:i,height:o,rotation:es(c)}}function Up(r,n,e){let t=Math.cos(e),i=Math.sin(e);return{w:Math.abs(r*t)+Math.abs(n*i),h:Math.abs(r*i)+Math.abs(n*t)}}function Gp(r,n,e,t){let i,o=qp(r,t);return n.position==="start"?i=Vc({w:r.x2-r.x,h:r.y2-r.y},e,n,o):n.position==="end"?i=1-Vc({w:r.x-r.x2,h:r.y-r.y2},e,n,o):i=Ss(1,n.position),i}function Vc(r,n,e,t){let{labelSize:i,padding:o}=n,a=r.w*t.dx,l=r.h*t.dy,d=a>0&&(i.w/2+o.left-t.x)/a,p=l>0&&(i.h/2+o.top-t.y)/l;return Xo(Math.max(d,p),0,.25)}function qp(r,n){let{x:e,x2:t,y:i,y2:o}=r,a=Math.min(i,o)-n.top,l=Math.min(e,t)-n.left,d=n.bottom-Math.max(i,o),p=n.right-Math.max(e,t);return{x:Math.min(l,p),y:Math.min(a,d),dx:l<=p?1:-1,dy:a<=d?1:-1}}function zc(r,n){let{size:e,min:t,max:i,padding:o}=n,a=e/2;return e>i-t?(i+t)/2:(t>=r-o-a&&(r=t+o+a),i<=r+o+a&&(r=i-o-a),r)}function ch(r){let n=r.options,e=n.arrowHeads&&n.arrowHeads.start,t=n.arrowHeads&&n.arrowHeads.end;return{startOpts:e,endOpts:t,startAdjust:Lc(r,e),endAdjust:Lc(r,t)}}function Lc(r,n){if(!n||!n.display)return 0;let{length:e,width:t}=n,i=r.options.borderWidth/2,o={x:e,y:t+i};return Math.abs(gs(0,o,{x:0,y:i}))}function bs(r,n,e,t){if(!t||!t.display)return;let{length:i,width:o,fill:a,backgroundColor:l,borderColor:d}=t,p=Math.abs(n-i)+e;r.beginPath(),Cr(r,t),Ni(r,t),r.moveTo(p,-o),r.lineTo(n+e,0),r.lineTo(p,o),a===!0?(r.fillStyle=l||d,r.closePath(),r.fill(),r.shadowColor="transparent"):r.shadowColor=t.borderShadowColor,r.stroke()}function jp(r,n,e){let{x:t,y:i,x2:o,y2:a,centerX:l,centerY:d}=r,p=Math.atan2(a-i,o-t),s=ks(n.controlPoint,0),c={x:l+dn(e,s.x,!1),y:d+dn(e,s.y,!1)};return Dn(c,{x:l,y:d},p)}function Bc(r,{x:n,y:e},{angle:t,adjust:i},o){!o||!o.display||(r.save(),r.translate(n,e),r.rotate(t),bs(r,0,-i,o),r.restore())}function $p(r,n,e,t){let{x:i,y:o,x2:a,y2:l,options:d}=n,{startOpts:p,endOpts:s,startAdjust:c,endAdjust:m}=ch(n),y={x:i,y:o},_={x:a,y:l},T=Rc(y,e,_,0),E=Rc(y,e,_,1)-Jt,z=vs(y,e,_,c/t),Y=vs(y,e,_,1-m/t),te=new Path2D;r.beginPath(),te.moveTo(z.x,z.y),te.quadraticCurveTo(e.x,e.y,Y.x,Y.y),r.shadowColor=d.borderShadowColor,r.stroke(te),n.path=te,n.ctx=r,Bc(r,z,{angle:T,adjust:c},p),Bc(r,Y,{angle:E,adjust:m},s)}var Pn=class extends tn{inRange(n,e,t,i){let o=this.options.rotation,a=(this.options.borderWidth+this.options.hitTolerance)/2;if(t!=="x"&&t!=="y")return Yp({x:n,y:e},this.getProps(["width","height","centerX","centerY"],i),o,a);let{x:l,y:d,x2:p,y2:s}=this.getProps(["x","y","x2","y2"],i),c=t==="y"?{start:d,end:s}:{start:l,end:p},m=Dn({x:n,y:e},this.getCenterPoint(i),yi(-o));return m[t]>=c.start-a-Tn&&m[t]<=c.end+a+Tn}getCenterPoint(n){return Mn(this,n)}draw(n){let{width:e,height:t,centerX:i,centerY:o,options:a}=this;n.save(),Qo(n,this.getCenterPoint(),a.rotation),Cr(n,this.options),n.beginPath(),n.fillStyle=a.backgroundColor;let l=Ni(n,a);n.ellipse(i,o,t/2,e/2,Jt/2,0,2*Jt),n.fill(),l&&(n.shadowColor=a.borderShadowColor,n.stroke()),n.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(n,e){return sh(n,e)}};Pn.id="ellipseAnnotation";Pn.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,label:Object.assign({},cn.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};Pn.defaultRoutes={borderColor:"color",backgroundColor:"color"};Pn.descriptors={label:{_fallback:!0}};function Yp(r,n,e,t){let{width:i,height:o,centerX:a,centerY:l}=n,d=i/2,p=o/2;if(d<=0||p<=0)return!1;let s=yi(e||0),c=Math.cos(s),m=Math.sin(s),y=Math.pow(c*(r.x-a)+m*(r.y-l),2),_=Math.pow(m*(r.x-a)-c*(r.y-l),2);return y/Math.pow(d+t,2)+_/Math.pow(p+t,2)<=1.0001}var br=class extends tn{inRange(n,e,t,i){let{x:o,y:a,x2:l,y2:d,width:p}=this.getProps(["x","y","x2","y2","width"],i),s=(this.options.borderWidth+this.options.hitTolerance)/2;return t!=="x"&&t!=="y"?Hm({x:n,y:e},this.getCenterPoint(i),p/2,s):Uc(t==="y"?{start:a,end:d,value:e}:{start:o,end:l,value:n},s)}getCenterPoint(n){return Mn(this,n)}draw(n){let e=this.options,t=e.borderWidth;if(e.radius<.1)return;n.save(),n.fillStyle=e.backgroundColor,Cr(n,e);let i=Ni(n,e);Km(n,this,this.centerX,this.centerY),i&&!Ko(e.pointStyle)&&(n.shadowColor=e.borderShadowColor,n.stroke()),n.restore(),e.borderWidth=t}resolveElementProperties(n,e){let t=ah(n,e);return t.initProperties=wr(n,t,e),t}};br.id="pointAnnotation";br.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};br.defaultRoutes={borderColor:"color",backgroundColor:"color"};var _r=class extends tn{inRange(n,e,t,i){if(t!=="x"&&t!=="y")return this.options.radius>=.1&&this.elements.length>1&&Kp(this.elements,n,e,i);let o=Dn({x:n,y:e},this.getCenterPoint(i),yi(-this.options.rotation)),a=this.elements.map(p=>t==="y"?p.bY:p.bX),l=Math.min(...a),d=Math.max(...a);return o[t]>=l&&o[t]<=d}getCenterPoint(n){return Mn(this,n)}draw(n){let{elements:e,options:t}=this;n.save(),n.beginPath(),n.fillStyle=t.backgroundColor,Cr(n,t);let i=Ni(n,t),o=!0;for(let a of e)o?(n.moveTo(a.x,a.y),o=!1):n.lineTo(a.x,a.y);n.closePath(),n.fill(),i&&(n.shadowColor=t.borderShadowColor,n.stroke()),n.restore()}resolveElementProperties(n,e){let t=ah(n,e),{sides:i,rotation:o}=e,a=[],l=2*Jt/i,d=o*Oo;for(let p=0;p<i;p++,d+=l){let s=Xp(t,e,d);s.initProperties=wr(n,t,e),a.push(s)}return t.elements=a,t}};_r.id="polygonAnnotation";_r.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,hitTolerance:0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};_r.defaultRoutes={borderColor:"color",backgroundColor:"color"};function Xp({centerX:r,centerY:n},{radius:e,borderWidth:t,hitTolerance:i},o){let a=(t+i)/2,l=Math.sin(o),d=Math.cos(o),p={x:r+l*e,y:n-d*e};return{type:"point",optionScope:"point",properties:{x:p.x,y:p.y,centerX:p.x,centerY:p.y,bX:r+l*(e+a),bY:n-d*(e+a)}}}function Kp(r,n,e,t){let i=!1,o=r[r.length-1].getProps(["bX","bY"],t);for(let a of r){let l=a.getProps(["bX","bY"],t);l.bY>e!=o.bY>e&&n<(o.bX-l.bX)*(e-l.bY)/(o.bY-l.bY)+l.bX&&(i=!i),o=l}return i}var ln={box:cn,doughnutLabel:yr,ellipse:Pn,label:En,line:Jo,point:br,polygon:_r};Object.keys(ln).forEach(r=>{zd.describe(`elements.${ln[r].id}`,{_fallback:"plugins.annotation.common"})});var Qp={update:Object.assign},Zp=xs.concat(Yo),Fc=(r,n)=>Ji(n)?ws(r,n):r,_s=r=>r==="color"||r==="font";function Ps(r="line"){return ln[r]?r:(console.warn(`Unknown annotation type: '${r}', defaulting to 'line'`),"line")}function Jp(r,n,e,t){let i=tf(r,e.animations,t),o=n.annotations,a=of(n.elements,o);for(let l=0;l<o.length;l++){let d=o[l],p=hh(a,l,d.type),s=d.setContext(rf(r,p,a,d)),c=p.resolveElementProperties(r,s);c.skip=ef(c),"elements"in c&&(nf(p,c.elements,s,i),delete c.elements),vi(p.x)||Object.assign(p,c),Object.assign(p,c.initProperties),c.options=uh(s),i.update(p,c)}}function ef(r){return isNaN(r.x)||isNaN(r.y)}function tf(r,n,e){return e==="reset"||e==="none"||e==="resize"?Qp:new Ld(r,n)}function nf(r,n,e,t){let i=r.elements||(r.elements=[]);i.length=n.length;for(let o=0;o<n.length;o++){let a=n[o],l=a.properties,d=hh(i,o,a.type,a.initProperties),p=e[a.optionScope].override(a);l.options=uh(p),t.update(d,l)}}function hh(r,n,e,t){let i=ln[Ps(e)],o=r[n];return(!o||!(o instanceof i))&&(o=r[n]=new i,Object.assign(o,t)),o}function uh(r){let n=ln[Ps(r.type)],e={};e.id=r.id,e.type=r.type,e.drawTime=r.drawTime,Object.assign(e,ws(r,n.defaults),ws(r,n.defaultRoutes));for(let t of Zp)e[t]=r[t];return e}function ws(r,n){let e={};for(let t of Object.keys(n)){let i=n[t],o=r[t];_s(t)&&Zi(o)?e[t]=o.map(a=>Fc(a,i)):e[t]=Fc(o,i)}return e}function rf(r,n,e,t){return n.$context||(n.$context=Object.assign(Object.create(r.getContext()),{element:n,get elements(){return e.filter(i=>i&&i.options)},id:t.id,type:"annotation"}))}function of(r,n){let e=n.length,t=r.length;if(t<e){let i=e-t;r.splice(t,0,...new Array(i))}else t>e&&r.splice(e,t-e);return r}var af="3.1.0",sn=new Map,Hc=r=>r.type!=="doughnutLabel",sf=xs.concat(Yo),mh={id:"annotation",version:af,beforeRegister(){Um("chart.js","4.0",Cn.version)},afterRegister(){Cn.register(ln)},afterUnregister(){Cn.unregister(ln)},beforeInit(r){sn.set(r,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(r,n,e){let t=sn.get(r),i=t.annotations=[],o=e.annotations;Ji(o)?Object.keys(o).forEach(a=>{let l=o[a];Ji(l)&&(l.id=a,i.push(l))}):Zi(o)&&i.push(...o),Sp(i.filter(Hc),r.scales)},afterDataLimits(r,n){let e=sn.get(r);Cp(r,n.scale,e.annotations.filter(Hc).filter(t=>t.display&&t.adjustScaleRange))},afterUpdate(r,n,e){let t=sn.get(r);vp(r,t,e),Jp(r,t,e,n.mode),t.visibleElements=t.elements.filter(i=>!i.skip&&i.options.display),wp(r,t,e)},beforeDatasetsDraw(r,n,e){Hr(r,"beforeDatasetsDraw",e.clip)},afterDatasetsDraw(r,n,e){Hr(r,"afterDatasetsDraw",e.clip)},beforeDatasetDraw(r,n,e){Hr(r,n.index,e.clip)},beforeDraw(r,n,e){Hr(r,"beforeDraw",e.clip)},afterDraw(r,n,e){Hr(r,"afterDraw",e.clip)},beforeEvent(r,n,e){let t=sn.get(r);yp(t,n.event,e)&&(n.changed=!0)},afterDestroy(r){sn.delete(r)},getAnnotations(r){let n=sn.get(r);return n?n.elements:[]},_getAnnotationElementsAtEventForMode(r,n,e){return Cs(r,n,e)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"},colors:{properties:["backgroundColor","borderColor"],type:"color"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:r=>!sf.includes(r)&&r!=="init",annotations:{_allKeys:!1,_fallback:(r,n)=>`elements.${ln[Ps(n.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:_s,_fallback:!0},_indexable:_s}},additionalOptionScopes:[""]};function Hr(r,n,e){let{ctx:t,chartArea:i}=r,o=sn.get(r);e&&ts(t,i);let a=lf(o.visibleElements,n).sort((l,d)=>l.element.options.z-d.element.options.z);for(let l of a)df(t,i,o,l);e&&is(t)}function lf(r,n){let e=[];for(let t of r)if(t.options.drawTime===n&&e.push({element:t,main:!0}),t.elements&&t.elements.length)for(let i of t.elements)i.options.display&&i.options.drawTime===n&&e.push({element:i});return e}function df(r,n,e,t){let i=t.element;t.main?(Pc(e,i,"beforeDraw"),i.draw(r,n),Pc(e,i,"afterDraw")):i.draw(r,n)}var cf=["widgetDataChart"];Cn.register(mh,Yd,$d,Fd,Ud,Hd,Gd,qd,jd);var ph=(()=>{class r extends Ie{dsService=M(xo);widgetDataChart=Be("widgetDataChart",{read:tt});lineChartData={datasets:[]};lineChartOptions={parsing:!1,datasets:{line:{pointRadius:0,pointHoverRadius:0,tension:.4}},animations:{tension:{easing:"easeInOutCubic"}}};lineChartType="line";chart;dsServiceSub=null;datasetConfig=null;dataSourceInfo=null;constructor(){super(),this.defaultConfig={displayName:"Chart Label",filterSelfPaths:!0,convertUnitTo:"unitless",datasetUUID:null,invertData:!1,datasetAverageArray:"sma",showAverageData:!0,trackAgainstAverage:!1,showDatasetMinimumValueLine:!1,showDatasetMaximumValueLine:!1,showDatasetAverageValueLine:!0,showDatasetAngleAverageValueLine:!1,showLabel:!1,showTimeScale:!1,startScaleAtZero:!1,verticalGraph:!1,showYScale:!1,yScaleSuggestedMin:null,yScaleSuggestedMax:null,enableMinMaxScaleLimit:!1,yScaleMin:null,yScaleMax:null,numDecimal:1,color:"contrast"},Se(()=>{this.theme()&&this.datasetConfig&&(this.setChartOptions(),this.chart.config.options=this.lineChartOptions)})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.startWidget()}startWidget(){this.datasetConfig=this.dsService.getDatasetConfig(this.widgetProperties.config.datasetUUID),this.dataSourceInfo=this.dsService.getDataSourceInfo(this.widgetProperties.config.datasetUUID),this.datasetConfig&&(this.setChartOptions(),this.chart?this.chart.update():this.chart=new Cn(this.widgetDataChart().nativeElement.getContext("2d"),{type:this.lineChartType,data:this.lineChartData,options:this.lineChartOptions}),this.startStreaming())}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}setChartOptions(){this.lineChartOptions.maintainAspectRatio=!1,this.lineChartOptions.animation=!1,this.lineChartData.datasets=[],this.lineChartData.datasets.push({label:"Value",data:[],order:this.widgetProperties.config.trackAgainstAverage?1:0,parsing:!1,tension:0,pointRadius:0,pointHoverRadius:0,pointHitRadius:0,borderColor:this.getThemeColors().valueLine,borderWidth:this.widgetProperties.config.trackAgainstAverage?0:3,fill:!!this.widgetProperties.config.trackAgainstAverage,backgroundColor:this.getThemeColors().valueFill}),this.lineChartData.datasets.push({label:"Average",data:[],order:this.widgetProperties.config.trackAgainstAverage?0:1,parsing:!1,tension:.4,pointRadius:0,pointHoverRadius:0,pointHitRadius:0,borderColor:this.getThemeColors().averageLine,borderWidth:this.widgetProperties.config.trackAgainstAverage?3:0,fill:!this.widgetProperties.config.trackAgainstAverage,backgroundColor:this.getThemeColors().averageFill}),this.lineChartOptions.scales={x:{type:"time",display:this.widgetProperties.config.showTimeScale,title:{display:!0,text:`Last ${this.datasetConfig.period} ${this.datasetConfig.timeScaleFormat}`,align:"center"},time:{unit:this.datasetConfig.timeScaleFormat,minUnit:"second",round:"second",displayFormats:{hour:"k:mm''",minute:"mm''",second:'ss"',millisecond:"SSS"}},ticks:{autoSkip:!1,color:this.getThemeColors().averageChartLine,major:{enabled:!0}},grid:{display:!0,color:this.theme().contrastDimmer}},y:{display:this.widgetProperties.config.showYScale,position:"right",suggestedMin:this.widgetProperties.config.enableMinMaxScaleLimit?null:this.widgetProperties.config.yScaleSuggestedMin,suggestedMax:this.widgetProperties.config.enableMinMaxScaleLimit?null:this.widgetProperties.config.yScaleSuggestedMax,min:this.widgetProperties.config.enableMinMaxScaleLimit?this.widgetProperties.config.yScaleMin:null,max:this.widgetProperties.config.enableMinMaxScaleLimit?this.widgetProperties.config.yScaleMax:null,beginAtZero:this.widgetProperties.config.startScaleAtZero,title:{display:!1,text:"Value Axis",align:"center"},ticks:{maxTicksLimit:8,precision:this.widgetProperties.config.numDecimal,color:this.getThemeColors().averageChartLine,major:{enabled:!0}},grid:{display:!0,color:this.theme().contrastDimmer}}},this.lineChartOptions.plugins={subtitle:{display:this.widgetProperties.config.showLabel,align:"start",padding:{top:-31,bottom:4},text:` ${this.widgetProperties.config.displayName}`,font:{size:14},color:this.getThemeColors().chartLabel},title:{display:!0,align:"end",padding:{top:6,bottom:10},text:"",font:{size:22},color:this.getThemeColors().chartValue},annotation:{annotations:{minimumLine:{type:"line",scaleID:"y",display:this.widgetProperties.config.showDatasetMinimumValueLine,value:null,drawTime:"afterDatasetsDraw",label:{display:!0,position:"start",yAdjust:12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},maximumLine:{type:"line",scaleID:"y",display:this.widgetProperties.config.showDatasetMaximumValueLine,value:null,drawTime:"afterDatasetsDraw",label:{display:!0,position:"start",yAdjust:-12,padding:4,color:this.getThemeColors().averageChartLine,backgroundColor:"rgba(63,63,63,0.0)"}},averageLine:{type:"line",scaleID:"y",display:this.widgetProperties.config.showDatasetAverageValueLine,value:null,borderDash:[6,6],borderColor:this.getThemeColors().averageChartLine,drawTime:"afterDatasetsDraw",label:{display:!0,position:"start",padding:4,color:this.getThemeColors().chartValue,backgroundColor:"rgba(63,63,63,0.7)"}}}},legend:{display:!1}}}getThemeColors(){let e=this.widgetProperties.config.color,t={valueLine:null,valueFill:null,averageLine:null,averageFill:null,averageChartLine:null,chartLabel:null,chartValue:null};switch(e){case"contrast":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().contrastDimmer,t.valueFill=this.theme().contrastDimmer,t.averageLine=this.theme().contrast,t.averageFill=this.theme().contrast,t.chartValue=t.averageLine):(t.valueLine=this.theme().contrast,t.valueFill=this.theme().contrast,t.averageLine=this.theme().contrastDimmer,t.averageFill=this.theme().contrastDimmer,t.chartValue=this.theme().contrast),t.averageChartLine=this.theme().contrastDim,t.chartLabel=this.theme().contrastDim;break;case"blue":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().blueDimmer,t.valueFill=this.theme().blueDimmer,t.averageLine=this.theme().blue,t.averageFill=this.theme().blue,t.chartValue=t.averageLine):(t.valueLine=this.theme().blue,t.valueFill=this.theme().blue,t.averageLine=this.theme().blueDimmer,t.averageFill=this.theme().blueDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().blueDim,t.chartLabel=this.theme().contrastDim;break;case"green":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().greenDimmer,t.valueFill=this.theme().greenDimmer,t.averageLine=this.theme().green,t.averageFill=this.theme().green,t.chartValue=t.averageLine):(t.valueLine=this.theme().green,t.valueFill=this.theme().green,t.averageLine=this.theme().greenDimmer,t.averageFill=this.theme().greenDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().greenDim,t.chartLabel=this.theme().contrastDim;break;case"pink":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().pinkDimmer,t.valueFill=this.theme().pinkDimmer,t.averageLine=this.theme().pink,t.averageFill=this.theme().pink,t.chartValue=t.averageLine):(t.valueLine=this.theme().pink,t.valueFill=this.theme().pink,t.averageLine=this.theme().pinkDimmer,t.averageFill=this.theme().pinkDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().pinkDim,t.chartLabel=this.theme().contrastDim;break;case"orange":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().orangeDimmer,t.valueFill=this.theme().orangeDimmer,t.averageLine=this.theme().orange,t.averageFill=this.theme().orange,t.chartValue=t.averageLine):(t.valueLine=this.theme().orange,t.valueFill=this.theme().orange,t.averageLine=this.theme().orangeDimmer,t.averageFill=this.theme().orangeDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().orangeDim,t.chartLabel=this.theme().contrastDim;break;case"purple":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().purpleDimmer,t.valueFill=this.theme().purpleDimmer,t.averageLine=this.theme().purple,t.averageFill=this.theme().purple,t.chartValue=t.averageLine):(t.valueLine=this.theme().purple,t.valueFill=this.theme().purple,t.averageLine=this.theme().purpleDimmer,t.averageFill=this.theme().purpleDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().purpleDim,t.chartLabel=this.theme().contrastDim;break;case"grey":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().greyDimmer,t.valueFill=this.theme().greyDimmer,t.averageLine=this.theme().grey,t.averageFill=this.theme().grey,t.chartValue=t.averageLine):(t.valueLine=this.theme().grey,t.valueFill=this.theme().grey,t.averageLine=this.theme().greyDimmer,t.averageFill=this.theme().greyDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().greyDim,t.chartLabel=this.theme().contrastDim;break;case"yellow":this.widgetProperties.config.trackAgainstAverage?(t.valueLine=this.theme().yellowDimmer,t.valueFill=this.theme().yellowDimmer,t.averageLine=this.theme().yellow,t.averageFill=this.theme().yellow,t.chartValue=t.averageLine):(t.valueLine=this.theme().yellow,t.valueFill=this.theme().yellow,t.averageLine=this.theme().yellowDimmer,t.averageFill=this.theme().yellowDimmer,t.chartValue=t.valueFill),t.averageChartLine=this.theme().yellowDim,t.chartLabel=this.theme().contrastDim;break}return t}getUnitsLabel(){let e=null;switch(this.widgetProperties.config.convertUnitTo){case"percent":case"percentraw":e="%";break;case"latitudeMin":e="latitude in minutes";break;case"latitudeSec":e="latitude in secondes";break;case"longitudeMin":e="longitude in minutes";break;case"longitudeSec":e="longitude in secondes";break;default:e=this.widgetProperties.config.convertUnitTo;break}return e}startStreaming(){this.dsServiceSub?.unsubscribe(),this.dsServiceSub=this.dsService.getDatasetObservable(this.widgetProperties.config.datasetUUID).subscribe(e=>{this.chart.data.datasets[0].data.push(this.transformDatasetRow(e,0)),this.chart.data.datasets[0].data.length>=this.dataSourceInfo.maxDataPoints&&this.chart.data.datasets[0].data.shift(),this.widgetProperties.config.showAverageData&&(this.chart.data.datasets[1].data.push(this.transformDatasetRow(e,this.widgetProperties.config.datasetAverageArray)),this.chart.data.datasets[1].data.length>=this.dataSourceInfo.maxDataPoints&&this.chart.data.datasets[1].data.shift());let t=this.widgetProperties.config.trackAgainstAverage?e.data.sma:e.data.value;this.chart.options.plugins.title.text=`${this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,t).toFixed(this.widgetProperties.config.numDecimal)} ${this.getUnitsLabel()} `;let i=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastAverage),o=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastMinimum),a=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastMaximum);this.chart.options.plugins.annotation.annotations.averageLine.value!=i&&(this.chart.options.plugins.annotation.annotations.averageLine.value=i,this.chart.options.plugins.annotation.annotations.averageLine.label.content=`${i.toFixed(this.widgetProperties.config.numDecimal)}`),this.chart.options.plugins.annotation.annotations.minimumLine.value!=o&&(this.chart.options.plugins.annotation.annotations.minimumLine.value=o,this.chart.options.plugins.annotation.annotations.minimumLine.label.content=`${o.toFixed(this.widgetProperties.config.numDecimal)}`),this.chart.options.plugins.annotation.annotations.maximumLine.value!=a&&(this.chart.options.plugins.annotation.annotations.maximumLine.value=a,this.chart.options.plugins.annotation.annotations.maximumLine.label.content=`${a.toFixed(this.widgetProperties.config.numDecimal)}`),this.chart?.update("quiet")})}transformDatasetRow(e,t){let i={x:e.timestamp,y:null};if(t===0)i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.value);else switch(this.widgetProperties.config.datasetAverageArray){case"sma":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.sma);break;case"ema":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.ema);break;case"dema":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.doubleEma);break;case"avg":i.y=this.unitsService.convertToUnit(this.widgetProperties.config.convertUnitTo,e.data.lastAverage);break}return i}ngOnDestroy(){this.destroyDataStreams(),this.dsServiceSub?.unsubscribe(),this.chart?.destroy()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-data-chart"]],viewQuery:function(t,i){t&1&&Le(i.widgetDataChart,cf,5,tt),t&2&&nt()},features:[pe],decls:3,vars:2,consts:[["widgetDataChart",""],[3,"configChange","config","id"],[2,"z-index","inherit"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),V(1,"canvas",2,0),w()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid))},dependencies:[Re],encapsulation:2})}return r})();var fh=(()=>{class r{sanitizer=M(Jn);transform(e){return this.sanitizer.bypassSecurityTrustResourceUrl(e)}static \u0275fac=function(t){return new(t||r)};static \u0275pipe=Il({name:"safe",type:r,pure:!0})}return r})();var hf=["freeboardSkIframe"];function uf(r,n){r&1&&V(0,"div",3)}var gh=(()=>{class r extends Ie{appSettings=M(Ut);auth=M(li);_dashboard=M(ct);iframe=Be.required("freeboardSkIframe");widgetUrl=null;_authTokenSubscription=null;dashboard=M(ct);constructor(){super()}ngOnInit(){let e=null;this._authTokenSubscription=this.auth.authToken$.subscribe(t=>{e=t?.token}),this.widgetUrl=e?`${this.appSettings.signalkUrl.url}/@signalk/freeboard-sk/?token=${e}`:`${this.appSettings.signalkUrl.url}/@signalk/freeboard-sk/`,window.addEventListener("message",this.handleIframeGesture)}ngAfterViewInit(){this.iframe&&(this.iframe().nativeElement.onload=()=>this.injectHammerJS())}startWidget(){}updateConfig(){}handleIframeGesture=e=>{if(e.data){if(e.data.gesture&&e.data.eventData.instanceId===this.widgetProperties.uuid)switch(e.data.gesture){case"swipeup":this.dashboard.isDashboardStatic()&&this.dashboard.previousDashboard();break;case"swipedown":this.dashboard.isDashboardStatic()&&this.dashboard.nextDashboard();break;case"swipeleft":{let t=new Event("openLeftSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}case"swiperight":{let t=new Event("openRightSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}default:break}if(e.data.type==="keydown"&&e.data.keyEventData.instanceId===this.widgetProperties.uuid){let{key:t,ctrlKey:i,shiftKey:o}=e.data.keyEventData,a=new KeyboardEvent("keydown",{key:t,ctrlKey:i,shiftKey:o,bubbles:!0,cancelable:!0});document.dispatchEvent(a)}}};injectHammerJS(){let e=document.getElementsByTagName("base")[0]?.href||"/",t=this.iframe().nativeElement.contentWindow,i=this.iframe().nativeElement.contentDocument;if(!i||!t){console.error("[FSK Widget] Iframe contentDocument or contentWindow is undefined. Possible cross-origin issue or iframe not fully loaded.");return}if(t.Hammer){console.log("[FSK Widget] HammerJS already loaded in iframe");return}let o=i.createElement("script");o.src=`${e}assets/hammer.min.js`,o.onload=()=>this.injectSwipeHandler(),i.body.appendChild(o)}injectSwipeHandler(){let e=this.iframe().nativeElement.contentDocument;if(!e){console.error("[FSK Widget] Iframe contentDocument is undefined. Possible cross-origin issue or iframe not fully loaded.");return}let t=e.createElement("script");t.textContent=`
|
|
14
13
|
if (!window.hammerInstance) {
|
|
15
14
|
const hammer = new Hammer(document.body);
|
|
16
15
|
hammer.get('swipe').set({ direction: Hammer.DIRECTION_ALL, velocity: 1.5, threshold: 200, domEvents: true });
|
|
@@ -120,7 +119,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
|
|
|
120
119
|
|
|
121
120
|
window.hammerInstance = hammer; // Store the instance to prevent multiple listeners
|
|
122
121
|
}
|
|
123
|
-
`,e.body.appendChild(t)}ngOnDestroy(){window.removeEventListener("message",this.handleIframeGesture),this._authTokenSubscription?.unsubscribe(),this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-freeboardsk"]],viewQuery:function(t,i){t&1&&we(i.iframe,ff,5),t&2&&Ze()},features:[pe],decls:5,vars:6,consts:[["freeboardSkIframe",""],[3,"configChange","config","id"],["width","100%","height","100%","frameborder","0","sandbox","allow-same-origin allow-scripts allow-forms",3,"src"],[1,"widgetOverlay"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(){return z(o),V(i.updateConfig())}),B(1,"iframe",2,0),$n(3,"safe"),Ae(4,gf,1,0,"div",3),C()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("src",uo(3,4,i.widgetUrl),so),D(3),Oe(i.dashboard.isDashboardStatic()?-1:4))},dependencies:[We,ch],styles:[".widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent}"]})}return r})();var ln=Mr(ks(),1),ph=Mr(ks(),1);var vf=["gauge"],yf=r=>r.replace(/(\-\w)/g,n=>n[1].toUpperCase()),bf=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),uh=r=>yf(r),mh=(()=>{class r{el;zone;canvas;gauge;isInited=!1;preInitValue;preInitOptions;domListener;constructor(e,t){this.el=e,this.zone=t}get options(){let e={};e.renderTo=this.canvas.nativeElement;for(let t of this.el.nativeElement.attributes){let i=uh(t.name);e[i]=ln.DomObserver.parse(t.value)}for(let t in this.preInitOptions)e[t]=this.preInitOptions[t];return this.isInited&&(this.preInitOptions=null),e}set options(e){if(!this.isInited){this.preInitOptions=e;return}this.update(e)}set value(e){if(!this.isInited){this.preInitValue=e;return}this.zone.runOutsideAngular(()=>{this.gauge.value=e})}update(e){if(e)for(let t in e){let i=e[t].toString();if(t==="value")this.value=ln.DomObserver.parse(i);else{let o=bf(t);this.el.nativeElement.setAttribute(o,i)}}}ngOnDestroy(){this.destroy(),this.cleanup()}cleanup(){}destroy(){this.stopListeningForDOMEvents(),this.gauge.destroy()}ngAfterViewInit(){this.initGauge(),this.listenForDOMEvents(),this.isInited=!0,this.preInitValue&&(this.value=this.preInitValue)}listenForDOMEvents(){this.domListener=new MutationObserver(e=>{let t={};e.forEach(i=>{i.type==="attributes"&&(t[uh(i.attributeName)]=ln.DomObserver.parse(this.el.nativeElement.getAttribute(i.attributeName)))}),this.basicUpdate(t)}),this.domListener.observe(this.el.nativeElement,{attributes:!0})}stopListeningForDOMEvents(){this.domListener&&(this.domListener.disconnect(),this.domListener=null)}initGauge(){let e=this.options;(!e.hasOwnProperty("renderTo")||!e.renderTo)&&(e.renderTo=this.canvas.nativeElement),this.basicUpdate(e)}basicUpdate(e){typeof e.value=="number"&&(this.value=e.value,delete e.value),Object.keys(e).length&&this.gauge.update(e)}static \u0275fac=function(t){return new(t||r)(Lt(it),Lt(yt))};static \u0275dir=Si({type:r,viewQuery:function(t,i){if(t&1&&nt(vf,7),t&2){let o;Ge(o=qe())&&(i.canvas=o.first)}},inputs:{options:"options",value:"value"}})}return r})();var Ko=(()=>{class r extends mh{constructor(e,t){super(e,t)}ngOnInit(){this.gauge=new ln.LinearGauge(this.options).draw()}static \u0275fac=function(t){return new(t||r)(Lt(it),Lt(yt))};static \u0275cmp=U({type:r,selectors:[["linear-gauge"]],features:[pe],decls:2,vars:0,consts:[["gauge",""]],template:function(t,i){t&1&&B(0,"canvas",null,0)},encapsulation:2})}return r})();var Zo=(()=>{class r extends mh{constructor(e,t){super(e,t)}ngOnInit(){this.gauge=new ln.RadialGauge(this.options).draw()}static \u0275fac=function(t){return new(t||r)(Lt(it),Lt(yt))};static \u0275cmp=U({type:r,selectors:[["radial-gauge"]],features:[pe],decls:2,vars:0,consts:[["gauge",""]],template:function(t,i){t&1&&B(0,"canvas",null,0)},encapsulation:2})}return r})(),_r=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=oi({type:r});static \u0275inj=ri({})}return r})();var fh=["compassGauge"];function xs(r){let n=r.match(/(\d+(\.\d+)?|\.\d+)/g);if(!n||n.length<3)throw new Error("Invalid RGBA format");let[e,t,i,o=1]=n.map(Number),a=o===1?"":Math.round(o*255).toString(16).padStart(2,"0").toUpperCase();return"#"+((1<<24)+(e<<16)+(t<<8)+i).toString(16).slice(1).toUpperCase()+a}function _f(r){return r<0&&(r=360+r),r}var gh=(()=>{class r extends Ne{DEG="deg";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="--";value=0;ngGauge;gauge;gaugeOptions={};colorStrokeTicks="";unitName=null;state=ie.Normal;negToPortPaths=["self.environment.wind.angleApparent","self.environment.wind.angleTrueGround","self.environment.wind.angleTrueWater"];constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,convertUnitTo:this.DEG,sampleTime:500}},gauge:{type:"ngRadial",subType:"baseplateCompass",enableTicks:!0,compassUseNumbers:!1,showValueBox:!1},enableTimeout:!1,color:"contrast",dataTimeout:5},be(()=>{this.theme()&&this.startWidget()})}ngOnInit(){this.validateConfig(),this.setGaugeConfig()}startWidget(){this.setGaugeConfig(),this.ngGauge.update(this.gaugeOptions),this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data||e.data.value===null)e={data:{value:0,timestamp:new Date},state:ie.Normal},this.value=0,this.textValue="--";else{let t=this.negToPortPaths.includes(this.widgetProperties.config.paths.gaugePath.path)?_f(e.data.value):e.data.value;this.value=Math.min(Math.max(t,0),360),this.textValue=this.value.toFixed(0)}if(e.state==null&&(e.state=ie.Normal),this.state!==e.state){this.state=e.state;let t={};switch(e.state){case ie.Emergency:t.colorValueText=this.theme().zoneEmergency;break;case ie.Alarm:t.colorValueText=this.theme().zoneAlarm;break;case ie.Warn:t.colorValueText=this.theme().zoneWarn;break;case ie.Alert:t.colorValueText=this.theme().zoneAlert;break;default:t.colorValueText=this.theme().contrast}this.ngGauge.update(t)}})}updateConfig(e){this.widgetProperties.config=e,this.setCanvasHight(),this.startWidget()}setCanvasHight(){let e=this.gauge.nativeElement.getBoundingClientRect(),t={};t.height=e.height,t.width=e.width,this.ngGauge.update(t)}ngAfterViewInit(){this.setCanvasHight(),this.startWidget()}onResized(e){let t={};t.height=e.contentRect.height,t.width=e.contentRect.width,this.ngGauge.update(t)}setGaugeConfig(){this.gaugeOptions.title=this.widgetProperties.config.displayName?this.widgetProperties.config.displayName:"",this.gaugeOptions.minValue=0,this.gaugeOptions.maxValue=360,this.gaugeOptions.valueDec=0,this.gaugeOptions.valueInt=1,this.gaugeOptions.units="",this.gaugeOptions.barProgress=!1,this.gaugeOptions.barWidth=0,this.gaugeOptions.valueBox=this.widgetProperties.config.gauge.showValueBox,this.gaugeOptions.fontValueSize=60,this.gaugeOptions.valueBoxWidth=26,this.gaugeOptions.valueBoxBorderRadius=10,this.gaugeOptions.valueBoxStroke=0,this.gaugeOptions.ticksAngle=360,this.gaugeOptions.startAngle=180,this.gaugeOptions.exactTicks=!1,this.gaugeOptions.strokeTicks="",this.gaugeOptions.majorTicks=this.widgetProperties.config.gauge.compassUseNumbers?["N","30","60","E","120","150","S","210","240","W","300","330","N"]:["N","NE","E","SE","S","SW","W","NW","N"],this.gaugeOptions.majorTicksDec=0,this.gaugeOptions.majorTicksInt=1,this.gaugeOptions.numbersMargin=5,this.gaugeOptions.fontNumbersSize=25,this.gaugeOptions.minorTicks=this.widgetProperties.config.gauge.compassUseNumbers?3:2,this.gaugeOptions.needle=!0,this.gaugeOptions.needleType=this.LINE,this.gaugeOptions.needleStart=this.NEEDLE_START,this.gaugeOptions.needleEnd=this.NEEDLE_END,this.gaugeOptions.needleCircleSize=this.NEEDLE_CIRCLE_SIZE,this.gaugeOptions.needleWidth=4,this.gaugeOptions.needleShadow=!1,this.gaugeOptions.needleCircleInner=!1,this.gaugeOptions.needleCircleOuter=!1,this.gaugeOptions.borders=!0,this.gaugeOptions.borderOuterWidth=0,this.gaugeOptions.borderMiddleWidth=this.BORDER_MIDDLE_WIDTH,this.gaugeOptions.borderInnerWidth=this.BORDER_INNER_WIDTH,this.gaugeOptions.borderShadowWidth=0,this.gaugeOptions.highlights=[],this.gaugeOptions.fontTitle="Roboto",this.gaugeOptions.fontTitleWeight="normal",this.gaugeOptions.fontTitleSize=25,this.gaugeOptions.fontUnits="Roboto",this.gaugeOptions.fontUnitsSize=25,this.gaugeOptions.fontUnitsWeight="normal",this.gaugeOptions.barStrokeWidth=0,this.gaugeOptions.barShadow=0,this.gaugeOptions.fontValue="Roboto",this.gaugeOptions.fontValueWeight="bold",this.gaugeOptions.valueTextShadow=!1,this.gaugeOptions.colorValueBoxShadow="",this.gaugeOptions.fontNumbers="Roboto",this.gaugeOptions.fontNumbersWeight="bold",this.gaugeOptions.highlightsWidth=0,this.widgetProperties.config.gauge.subType==="marineCompass"?(this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_PLATE,this.gaugeOptions.useMinPath=!0):this.widgetProperties.config.gauge.subType==="baseplateCompass"&&(this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_NEEDLE,this.gaugeOptions.useMinPath=!0),this.gaugeOptions.animation=!0,this.gaugeOptions.animateOnInit=!0,this.gaugeOptions.animatedValue=!0,this.gaugeOptions.animationRule="linear",this.gaugeOptions.animationDuration=this.widgetProperties.config.paths.gaugePath.sampleTime-50,this.setGaugeOptions(this.getColors(this.widgetProperties.config.color).color,xs(this.getColors(this.widgetProperties.config.color).dim),xs(this.getColors(this.widgetProperties.config.color).dimmer))}setGaugeOptions(e,t,i){let o=xs(this.getColors("contrast").dim);this.gaugeOptions.colorBarProgress=e,this.gaugeOptions.colorBorderMiddle=t,this.gaugeOptions.colorBorderMiddleEnd=t,this.gaugeOptions.colorNeedle=e,this.gaugeOptions.colorNeedleEnd=e,this.gaugeOptions.colorTitle=o,this.gaugeOptions.colorUnits=o,this.gaugeOptions.colorValueText=e,this.gaugeOptions.colorMinorTicks=o,this.gaugeOptions.colorNumbers=this.widgetProperties.config.gauge.compassUseNumbers?[this.theme().port,o,o,t,o,o,t,o,o,t,o,o,this.theme().port]:[this.theme().port,t,t,t,t,t,t,t,this.theme().port],this.gaugeOptions.colorMajorTicks=this.widgetProperties.config.gauge.compassUseNumbers?[this.theme().port,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().port]:[this.theme().port,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().port],this.gaugeOptions.colorPlate=this.gaugeOptions.colorPlateEnd=this.gaugeOptions.colorBorderInner=this.gaugeOptions.colorBorderInnerEnd=this.theme().cardColor,this.gaugeOptions.colorBar=this.theme().background,this.gaugeOptions.colorBarStroke="",this.gaugeOptions.colorValueBoxBackground=this.theme().background,this.gaugeOptions.colorNeedleShadowUp="",this.gaugeOptions.colorNeedleShadowDown="",this.gaugeOptions.colorNeedleCircleInner=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleInnerEnd=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuter=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuterEnd=this.gaugeOptions.colorPlate}getColors(e){return{contrast:{color:this.theme().contrast,dim:this.theme().contrastDim,dimmer:this.theme().contrastDimmer},blue:{color:this.theme().blue,dim:this.theme().blueDim,dimmer:this.theme().blueDimmer},green:{color:this.theme().green,dim:this.theme().greenDim,dimmer:this.theme().greenDimmer},pink:{color:this.theme().pink,dim:this.theme().pinkDim,dimmer:this.theme().pinkDimmer},orange:{color:this.theme().orange,dim:this.theme().orangeDim,dimmer:this.theme().orangeDimmer},purple:{color:this.theme().purple,dim:this.theme().purpleDim,dimmer:this.theme().purpleDimmer},yellow:{color:this.theme().yellow,dim:this.theme().yellowDim,dimmer:this.theme().yellowDimmer},grey:{color:this.theme().grey,dim:this.theme().greyDim,dimmer:this.theme().yellowDimmer}}[e]}ngOnDestroy(){this.destroyDataStreams(),this.ngGauge=null,this.gauge=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-gauge-ng-compass"]],viewQuery:function(t,i){if(t&1&&(nt(fh,7),nt(fh,7,it)),t&2){let o;Ge(o=qe())&&(i.ngGauge=o.first),Ge(o=qe())&&(i.gauge=o.first)}},features:[pe],decls:3,vars:8,consts:[["compassGauge",""],[3,"configChange","config","id"],[3,"onResize","id","options","value"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"radial-gauge",2,0),F("onResize",function(l){return z(o),V(i.onResized(l))}),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("id",ji(i.widgetProperties.uuid))("options",i.gaugeOptions)("value",i.value),ce("value-text",i.textValue)("color-stroke-ticks",i.colorStrokeTicks))},dependencies:[We,at,ot,_r,Zo],styles:["radial-gauge{display:block;position:relative;width:100%;height:100%} radial-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px}"]})}return r})();function Jo(r,n){let e=[],t=n-r,i=0,o=10;t=vh(n-r,!1),i=vh(t/(o-1),!0);let a=Math.floor(r/i)*i,l=Math.ceil(n/i)*i;e.push(a);let d=t/i;for(let f=0;f<d;f++)if(e[f]<l){let s=(Number(e[f].toFixed(2))*100+Number(i.toFixed(2))*100)/100;e.push(s)}return{min:a,max:l,majorTicks:e}}function vh(r,n){let e=Math.floor(Math.log10(r)),t=r/Math.pow(10,e),i=null;return n?1.5>t?i=1:3>t?i=2:7>t?i=5:i=10:1>=t?i=1:2>=t?i=2:5>=t?i=5:i=10,i*Math.pow(10,e)}var yh=["linearGauge"],bh=(()=>{class r extends Ne{ngGauge;gauge;textValue="";value=0;gaugeOptions={};isGaugeVertical=!0;metaSub;state=ie.Normal;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{lower:0,upper:100,type:"linear"},gauge:{type:"ngLinear",subType:"vertical",enableTicks:!1,highlightsWidth:5,useNeedle:!1},numInt:1,numDecimal:0,color:"contrast",enableTimeout:!1,dataTimeout:5,ignoreZones:!1},be(()=>{this.theme()&&this.startWidget()})}ngOnInit(){this.validateConfig()}startWidget(){this.setGaugeConfig(),this.ngGauge.update(this.gaugeOptions),this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.metaSub?.unsubscribe(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data||e.data.value===null?(e={data:{value:0,timestamp:new Date},state:ie.Normal},this.textValue="--"):this.textValue==="--"&&(this.textValue=""),this.value=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),e.state==null&&(e.state=ie.Normal),this.state!==e.state){this.state=e.state;let t={};if(!this.widgetProperties.config.ignoreZones)switch(e.state){case ie.Emergency:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneEmergency,t.colorValueText=this.theme().zoneEmergency):(t.colorBarProgress=this.theme().zoneEmergency,t.colorValueText=this.theme().zoneEmergency);break;case ie.Alarm:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneAlarm,t.colorValueText=this.theme().zoneAlarm):(t.colorBarProgress=this.theme().zoneAlarm,t.colorValueText=this.theme().zoneAlarm);break;case ie.Warn:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneWarn,t.colorValueText=this.theme().zoneWarn):(t.colorBarProgress=this.theme().zoneWarn,t.colorValueText=this.theme().zoneWarn);break;case ie.Alert:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneAlert,t.colorValueText=this.theme().zoneAlert):(t.colorBarProgress=this.theme().zoneAlert,t.colorValueText=this.theme().zoneAlert);break;default:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.getColors(this.widgetProperties.config.color).color,t.colorValueText=this.getColors(this.widgetProperties.config.color).color):(t.colorBarProgress=this.getColors(this.widgetProperties.config.color).color,t.colorValueText=this.getColors(this.widgetProperties.config.color).color)}this.ngGauge.update(t)}}),this.widgetProperties.config.ignoreZones||(this.observeMetaStream(),this.metaSub=this.zones$.subscribe(e=>{e&&e.length>0&&this.setHighlights(e)}))}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}ngAfterViewInit(){this.setCanvasHight(),this.startWidget()}onResized(e){let t={};this.widgetProperties.config.gauge.subType==="vertical"?(t.height=e.contentRect.height,t.width=t.height*.3,t.width>e.contentRect.width&&(t.width=e.contentRect.width,t.height=t.width/.3)):(t.width=e.contentRect.width,t.height=t.width*.3,t.height>e.contentRect.height&&(t.height=e.contentRect.height,t.width=t.height/.3)),t.height-=10,this.ngGauge.update(t)}setCanvasHight(){let e=this.gauge.nativeElement.getBoundingClientRect(),t={};t.height=e.height,t.width=e.width,this.ngGauge.update(t)}setGaugeConfig(){let e=this.widgetProperties.config.gauge.subType==="vertical",t=this.widgetProperties.config.gauge.useNeedle,i=this.widgetProperties.config.gauge.enableTicks,o={min:this.widgetProperties.config.displayScale.lower,max:this.widgetProperties.config.displayScale.upper,majorTicks:[]},a=this.gauge.nativeElement.getBoundingClientRect(),l=null,d=null;this.widgetProperties.config.gauge.subType==="vertical"?(l=a.height,d=a.height*.3):(l=a.width*.3,d=a.width),i&&(o=Jo(this.widgetProperties.config.displayScale.lower,this.widgetProperties.config.displayScale.upper));let f={height:l,width:d,minValue:o.min,maxValue:o.max,valueInt:this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,valueDec:this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,title:this.widgetProperties.config.displayName,fontTitleSize:40,fontTitle:"Roboto",fontTitleWeight:"bold",barLength:e?80:90,barWidth:i?30:60,barProgress:!0,barBeginCircle:0,barStrokeWidth:0,barShadow:0,needle:t,needleType:this.widgetProperties.config.gauge.useNeedle?"arrow":"line",needleShadow:!1,needleSide:"both",needleStart:this.widgetProperties.config.gauge.useNeedle?22:-45,needleEnd:this.widgetProperties.config.gauge.useNeedle?120:55,colorNeedleEnd:"",colorNeedleShadowUp:"",colorNeedleShadowDown:"black",units:this.widgetProperties.config.paths.gaugePath.convertUnitTo,fontUnits:"Roboto",fontUnitsWeight:"normal",borders:!1,borderOuterWidth:0,colorBorderOuter:"red",colorBorderOuterEnd:"red",borderMiddleWidth:0,colorBorderMiddle:"#63afdf",colorBorderMiddleEnd:"#63afdf",borderInnerWidth:0,colorBorderInner:"red",colorBorderInnerEnd:"#121212",borderShadowWidth:0,borderRadius:0,colorBarEnd:"",colorBarStroke:"0",valueBoxStroke:0,colorValueBoxRect:"",colorValueBoxRectEnd:"",colorValueBoxBackground:this.theme().background,fontValueSize:50,fontValue:"Roboto",fontValueWeight:"bold",valueTextShadow:!1,colorValueBoxShadow:"",fontNumbers:"Roboto",fontNumbersWeight:"normal",fontUnitsSize:this.isGaugeVertical?40:35,colorTitle:this.getColors("contrast").dim,colorUnits:this.getColors("contrast").dim,colorValueText:this.getColors(this.widgetProperties.config.color).color,colorPlate:this.theme().cardColor,colorBar:this.theme().background,colorMajorTicks:this.getColors("contrast").dim,colorMinorTicks:this.getColors("contrast").dim,colorNumbers:this.getColors("contrast").dim,majorTicks:i?o.majorTicks:[],majorTicksInt:this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,majorTicksDec:this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,numberSide:"left",fontNumbersSize:i?25:0,numbersMargin:e?-3:-5,tickSide:"left",ticksWidth:i?10:0,ticksPadding:i?e?5:8:0,strokeTicks:i,minorTicks:i?2:0,ticksWidthMinor:i?6:0,valueBox:!0,valueBoxWidth:35,valueBoxBorderRadius:10,highlights:[],highlightsWidth:this.widgetProperties.config.gauge.highlightsWidth,animation:!0,animationRule:"linear",animatedValue:!1,animateOnInit:!1,animationDuration:this.widgetProperties.config.paths.gaugePath.sampleTime-25};Object.assign(this.gaugeOptions,f),this.setThemePaletteColor()}setThemePaletteColor(){let e="",t="";switch(this.widgetProperties.config.color){case"contrast":e=this.theme().contrast,t=this.theme().contrastDim;break;case"blue":e=this.theme().blue,t=this.theme().blueDim;break;case"green":e=this.theme().green,t=this.theme().greenDim;break;case"pink":e=this.theme().pink,t=this.theme().pinkDim;break;case"orange":e=this.theme().orange,t=this.theme().orangeDim;break;case"purple":e=this.theme().purple,t=this.theme().purpleDim;break;case"grey":e=this.theme().grey,t=this.theme().greyDim;break;case"yellow":e=this.theme().yellow,t=this.theme().yellowDim;break;default:e=this.theme().contrast,t=this.theme().contrastDim;break}Object.assign(this.gaugeOptions,{colorBarProgress:this.widgetProperties.config.gauge.useNeedle?"":e,colorBarProgressEnd:"",colorNeedle:this.widgetProperties.config.gauge.useNeedle?e:t,needleWidth:this.widgetProperties.config.gauge.useNeedle?20:0})}getColors(e){return{contrast:{color:this.theme().contrast,dim:this.theme().contrastDim,dimmer:this.theme().contrastDimmer},blue:{color:this.theme().blue,dim:this.theme().blueDim,dimmer:this.theme().blueDimmer},green:{color:this.theme().green,dim:this.theme().greenDim,dimmer:this.theme().greenDimmer},pink:{color:this.theme().pink,dim:this.theme().pinkDim,dimmer:this.theme().pinkDimmer},orange:{color:this.theme().orange,dim:this.theme().orangeDim,dimmer:this.theme().orangeDimmer},purple:{color:this.theme().purple,dim:this.theme().purpleDim,dimmer:this.theme().purpleDimmer},yellow:{color:this.theme().yellow,dim:this.theme().yellowDim,dimmer:this.theme().yellowDimmer},grey:{color:this.theme().grey,dim:this.theme().greyDim,dimmer:this.theme().yellowDimmer}}[e]}setHighlights(e){let t=[],i=[...e].sort((a,l)=>a.lower-l.lower);for(let a of i){let l=null,d=null,f;switch(a.state){case ie.Emergency:f=this.theme().zoneEmergency;break;case ie.Alarm:f=this.theme().zoneAlarm;break;case ie.Warn:f=this.theme().zoneWarn;break;case ie.Alert:f=this.theme().zoneAlert;break;case ie.Nominal:f=this.theme().zoneNominal;break;default:f="rgba(0,0,0,0)"}if(l=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.lower),d=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.upper),!(d<this.widgetProperties.config.displayScale.lower||l>this.widgetProperties.config.displayScale.upper)){if(l=l!==null?l:this.widgetProperties.config.displayScale.lower,d=d!==null?d:this.widgetProperties.config.displayScale.upper,l=Math.max(l,this.widgetProperties.config.displayScale.lower),d>this.widgetProperties.config.displayScale.upper){d=this.widgetProperties.config.displayScale.upper,t.push({from:l,to:d,color:f});break}t.push({from:l,to:d,color:f})}}let o={};o.highlightsWidth=this.widgetProperties.config.gauge.highlightsWidth,o.highlights=JSON.stringify(t,null,1),this.ngGauge.update(o)}ngOnDestroy(){this.destroyDataStreams(),this.metaSub?.unsubscribe(),this.ngGauge=null,this.gauge=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-gauge-ng-linear"]],viewQuery:function(t,i){if(t&1&&(nt(yh,7,Ko),nt(yh,7,it)),t&2){let o;Ge(o=qe())&&(i.ngGauge=o.first),Ge(o=qe())&&(i.gauge=o.first)}},features:[pe],decls:4,vars:7,consts:[["host",""],["linearGauge",""],[3,"configChange","config","id"],[1,"linearGauge",3,"onResize","id","options","value"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",2,0),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(2,"linear-gauge",3,1),F("onResize",function(l){return z(o),V(i.onResized(l))}),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(2),j("id",ji(i.widgetProperties.uuid))("options",i.gaugeOptions)("value",i.value),ce("value-text",i.textValue))},dependencies:[We,at,ot,_r,Ko],styles:["linear-gauge{display:block;position:relative;width:100%;height:100%} linear-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:5px}"]})}return r})();var _h=["radialGauge"],wh=(()=>{class r extends Ne{LINE="line";ANIMATION_TARGET_NEEDLE="needle";ngGauge;gauge;textValue="";value=null;gaugeOptions={};colorStrokeTicks="";unitName=null;metaSub;state=ie.Normal;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{lower:0,upper:100,type:"linear"},gauge:{type:"ngRadial",subType:"measuring",enableTicks:!0,compassUseNumbers:!1,highlightsWidth:5,scaleStart:180},numInt:1,numDecimal:0,enableTimeout:!1,color:"contrast",dataTimeout:5,ignoreZones:!1},be(()=>{this.theme()&&this.startWidget()})}ngOnInit(){this.validateConfig(),this.setGaugeConfig()}startWidget(){this.setGaugeConfig(),this.ngGauge.update(this.gaugeOptions),this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.metaSub?.unsubscribe(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data||e.data.value===null?(e={data:{value:0,timestamp:new Date},state:ie.Normal},this.textValue="--"):this.textValue==="--"&&(this.textValue=""),this.value=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),e.state==null&&(e.state=ie.Normal),this.state!==e.state){this.state=e.state;let t={};if(!this.widgetProperties.config.ignoreZones)switch(e.state){case ie.Alarm:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.theme().zoneAlarm,t.colorValueText=this.theme().zoneAlarm;break;case ie.Warn:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.theme().zoneWarn,t.colorValueText=this.theme().zoneWarn;break;case ie.Alert:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.theme().zoneAlert,t.colorValueText=this.theme().zoneAlert;break;default:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.widgetProperties.config.gauge.subType=="measuring"?this.getColors(this.widgetProperties.config.color).color:this.getColors(this.widgetProperties.config.color).dim,t.colorValueText=this.getColors(this.widgetProperties.config.color).color}this.ngGauge.update(t)}}),this.widgetProperties.config.ignoreZones||(this.observeMetaStream(),this.metaSub=this.zones$.subscribe(e=>{e&&e.length>0&&this.widgetProperties.config.gauge.subType=="measuring"&&this.setHighlights(e)}))}updateConfig(e){this.widgetProperties.config=e,this.setCanvasHight(),this.startWidget()}setCanvasHight(){let e=this.gauge.nativeElement.getBoundingClientRect(),t={};t.height=e.height,t.width=e.width,this.ngGauge.update(t)}ngAfterViewInit(){this.setCanvasHight(),this.startWidget()}onResized(e){let t={};t.height=e.contentRect.height,t.width=e.contentRect.width,this.ngGauge.update(t)}setGaugeConfig(){switch(this.gaugeOptions.title=this.widgetProperties.config.displayName?this.widgetProperties.config.displayName:"",this.gaugeOptions.highlights=[],this.gaugeOptions.fontTitle="Roboto",this.gaugeOptions.fontTitleWeight="bold",this.gaugeOptions.fontUnits="Roboto",this.gaugeOptions.fontUnitsSize=25,this.gaugeOptions.fontUnitsWeight="normal",this.gaugeOptions.barStrokeWidth=0,this.gaugeOptions.barShadow=0,this.gaugeOptions.colorBarStroke="",this.gaugeOptions.fontValue="Roboto",this.gaugeOptions.fontValueWeight="bold",this.gaugeOptions.valueTextShadow=!1,this.gaugeOptions.colorValueBoxShadow="",this.gaugeOptions.fontNumbers="Roboto",this.gaugeOptions.fontNumbersWeight="bold",this.gaugeOptions.valueInt=this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,this.gaugeOptions.valueDec=this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,this.gaugeOptions.majorTicksInt=this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,this.gaugeOptions.majorTicksDec=this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,this.gaugeOptions.highlightsWidth=this.widgetProperties.config.gauge.highlightsWidth,this.gaugeOptions.animation=!0,this.gaugeOptions.animateOnInit=!1,this.gaugeOptions.animatedValue=!1,this.gaugeOptions.animationRule="linear",this.gaugeOptions.animationDuration=this.widgetProperties.config.paths.gaugePath.sampleTime-25,this.gaugeOptions.colorBorderShadow=!1,this.gaugeOptions.colorBorderOuter=this.theme().cardColor,this.gaugeOptions.colorBorderOuterEnd="",this.gaugeOptions.colorBorderMiddle=this.theme().cardColor,this.gaugeOptions.colorBorderMiddleEnd="",this.gaugeOptions.colorBarProgress=this.getColors(this.widgetProperties.config.color).color,this.gaugeOptions.colorNeedle=this.getColors(this.widgetProperties.config.color).dim,this.gaugeOptions.colorNeedleEnd=this.getColors(this.widgetProperties.config.color).dim,this.gaugeOptions.colorTitle=this.theme().contrastDim,this.gaugeOptions.colorUnits=this.theme().contrastDim,this.gaugeOptions.colorValueText=this.getColors(this.widgetProperties.config.color).color,this.colorStrokeTicks=this.theme().contrastDim,this.gaugeOptions.colorMinorTicks=this.theme().contrastDim,this.gaugeOptions.colorNumbers=this.theme().contrastDim,this.gaugeOptions.colorMajorTicks=this.theme().contrastDim,this.gaugeOptions.colorPlate=this.gaugeOptions.colorPlateEnd=this.theme().cardColor,this.gaugeOptions.colorBar=this.theme().background,this.gaugeOptions.colorNeedleShadowUp="",this.gaugeOptions.colorNeedleShadowDown="black",this.gaugeOptions.colorNeedleCircleInner=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleInnerEnd=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuter=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuterEnd=this.gaugeOptions.colorPlate,this.widgetProperties.config.gauge.subType){case"capacity":this.configureCapacityGauge();break;case"measuring":this.configureMeasuringGauge();break;default:}}getColors(e){return{contrast:{color:this.theme().contrast,dim:this.theme().contrastDim,dimmer:this.theme().contrastDimmer},blue:{color:this.theme().blue,dim:this.theme().blueDim,dimmer:this.theme().blueDimmer},green:{color:this.theme().green,dim:this.theme().greenDim,dimmer:this.theme().greenDimmer},pink:{color:this.theme().pink,dim:this.theme().pinkDim,dimmer:this.theme().pinkDimmer},orange:{color:this.theme().orange,dim:this.theme().orangeDim,dimmer:this.theme().orangeDimmer},purple:{color:this.theme().purple,dim:this.theme().purpleDim,dimmer:this.theme().purpleDimmer},yellow:{color:this.theme().yellow,dim:this.theme().yellowDim,dimmer:this.theme().yellowDimmer},grey:{color:this.theme().grey,dim:this.theme().greyDim,dimmer:this.theme().yellowDimmer}}[e]}configureCapacityGauge(){this.gaugeOptions.minValue=this.widgetProperties.config.displayScale.lower,this.gaugeOptions.maxValue=this.widgetProperties.config.displayScale.upper,this.gaugeOptions.units=this.widgetProperties.config.paths.gaugePath.convertUnitTo,this.gaugeOptions.fontTitleSize=40,this.gaugeOptions.barProgress=!0,this.gaugeOptions.barWidth=20,this.gaugeOptions.colorBarProgress=this.getColors(this.widgetProperties.config.color).dim,this.gaugeOptions.valueBox=!0,this.gaugeOptions.fontValueSize=60,this.gaugeOptions.valueBoxWidth=10,this.gaugeOptions.valueBoxBorderRadius=5,this.gaugeOptions.valueBoxStroke=0,this.gaugeOptions.colorValueBoxBackground="",this.gaugeOptions.colorValueBoxRect="",this.gaugeOptions.colorValueBoxRectEnd="",this.gaugeOptions.ticksAngle=360,this.gaugeOptions.startAngle=this.widgetProperties.config.gauge.scaleStart||180,this.gaugeOptions.majorTicks=0,this.gaugeOptions.exactTicks=!0,this.gaugeOptions.strokeTicks=!1,this.gaugeOptions.minorTicks=0,this.gaugeOptions.numbersMargin=0,this.gaugeOptions.fontNumbersSize=0,this.gaugeOptions.colorMajorTicks=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNumbers=this.gaugeOptions.colorMinorTicks="",this.gaugeOptions.needle=!0,this.gaugeOptions.needleType=this.LINE,this.gaugeOptions.needleWidth=2,this.gaugeOptions.needleShadow=!1,this.gaugeOptions.needleStart=75,this.gaugeOptions.needleEnd=95,this.gaugeOptions.needleCircleSize=1,this.gaugeOptions.needleCircleInner=!1,this.gaugeOptions.needleCircleOuter=!1,this.gaugeOptions.borders=!0,this.gaugeOptions.borderOuterWidth=2,this.gaugeOptions.borderMiddleWidth=1,this.gaugeOptions.borderInnerWidth=0,this.gaugeOptions.borderShadowWidth=0,this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_NEEDLE,this.gaugeOptions.useMinPath=!1}configureMeasuringGauge(){let e=Jo(this.widgetProperties.config.displayScale.lower,this.widgetProperties.config.displayScale.upper);this.gaugeOptions.minValue=e.min,this.gaugeOptions.maxValue=e.max,this.gaugeOptions.units=this.widgetProperties.config.paths.gaugePath.convertUnitTo,this.gaugeOptions.fontTitleSize=24,this.gaugeOptions.barProgress=!0,this.gaugeOptions.barWidth=15,this.gaugeOptions.valueBox=!0,this.gaugeOptions.fontValueSize=60,this.gaugeOptions.valueBoxWidth=100,this.gaugeOptions.valueBoxBorderRadius=0,this.gaugeOptions.valueBoxStroke=0,this.gaugeOptions.colorValueBoxBackground="",this.gaugeOptions.exactTicks=!1,this.gaugeOptions.majorTicks=e.majorTicks,this.gaugeOptions.minorTicks=2,this.gaugeOptions.ticksAngle=270,this.gaugeOptions.startAngle=45,this.gaugeOptions.strokeTicks=!0,this.gaugeOptions.numbersMargin=3,this.gaugeOptions.fontNumbersSize=15,this.gaugeOptions.needle=!0,this.gaugeOptions.needleType=this.LINE,this.gaugeOptions.needleWidth=2,this.gaugeOptions.needleShadow=!1,this.gaugeOptions.needleStart=0,this.gaugeOptions.needleEnd=95,this.gaugeOptions.needleCircleSize=10,this.gaugeOptions.needleCircleInner=!1,this.gaugeOptions.needleCircleOuter=!1,this.gaugeOptions.borders=!0,this.gaugeOptions.borderOuterWidth=2,this.gaugeOptions.borderMiddleWidth=1,this.gaugeOptions.borderInnerWidth=0,this.gaugeOptions.borderShadowWidth=0,this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_NEEDLE,this.gaugeOptions.useMinPath=!1}setHighlights(e){let t=[],i=[...e].sort((a,l)=>a.lower-l.lower);for(let a of i){let l=null,d=null,f;switch(a.state){case ie.Emergency:f=this.theme().zoneEmergency;break;case ie.Alarm:f=this.theme().zoneAlarm;break;case ie.Warn:f=this.theme().zoneWarn;break;case ie.Alert:f=this.theme().zoneAlert;break;case ie.Nominal:f=this.theme().zoneNominal;break;default:f="rgba(0,0,0,0)"}if(l=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.lower),d=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.upper),!(d<this.widgetProperties.config.displayScale.lower||l>this.widgetProperties.config.displayScale.upper)){if(l=l!==null?l:this.widgetProperties.config.displayScale.lower,d=d!==null?d:this.widgetProperties.config.displayScale.upper,l=Math.max(l,this.widgetProperties.config.displayScale.lower),d>this.widgetProperties.config.displayScale.upper){d=this.widgetProperties.config.displayScale.upper,t.push({from:l,to:d,color:f});break}t.push({from:l,to:d,color:f})}}let o={};o.highlightsWidth=this.widgetProperties.config.gauge.highlightsWidth,o.highlights=JSON.stringify(t,null,1),this.ngGauge.update(o)}ngOnDestroy(){this.destroyDataStreams(),this.metaSub?.unsubscribe(),this.ngGauge=null,this.gauge=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-gauge-ng-radial"]],viewQuery:function(t,i){if(t&1&&(nt(_h,7),nt(_h,7,it)),t&2){let o;Ge(o=qe())&&(i.ngGauge=o.first),Ge(o=qe())&&(i.gauge=o.first)}},features:[pe],decls:3,vars:7,consts:[["radialGauge",""],[3,"configChange","config","id"],[3,"onResize","id","options","value"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"radial-gauge",2,0),F("onResize",function(l){return z(o),V(i.onResized(l))}),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("id",ji(i.widgetProperties.uuid))("options",i.gaugeOptions)("value",i.value),ce("value-text",i.textValue))},dependencies:[We,at,ot,_r,Zo],styles:["radial-gauge{display:block;position:relative;width:100%;height:100%} radial-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);padding:0}"]})}return r})();var Es={darkGray:steelseries.BackgroundColor.DARK_GRAY,satinGray:steelseries.BackgroundColor.SATIN_GRAY,lightGray:steelseries.BackgroundColor.LIGHT_GRAY,white:steelseries.BackgroundColor.WHITE,black:steelseries.BackgroundColor.BLACK,beige:steelseries.BackgroundColor.BEIGE,brown:steelseries.BackgroundColor.BROWN,red:steelseries.BackgroundColor.RED,green:steelseries.BackgroundColor.GREEN,blue:steelseries.BackgroundColor.BLUE,anthracite:steelseries.BackgroundColor.ANTHRACITE,mud:steelseries.BackgroundColor.MUD,punchedSheet:steelseries.BackgroundColor.PUNCHED_SHEET,carbon:steelseries.BackgroundColor.CARBON,stainless:steelseries.BackgroundColor.STAINLESS,brushedMetal:steelseries.BackgroundColor.BRUSHED_METAL,brushedStainless:steelseries.BackgroundColor.BRUSHED_STAINLESS,turned:steelseries.BackgroundColor.TURNED},Ds={blackMetal:steelseries.FrameDesign.BLACK_METAL,metal:steelseries.FrameDesign.METAL,shinyMetal:steelseries.FrameDesign.SHINY_METAL,brass:steelseries.FrameDesign.BRASS,steel:steelseries.FrameDesign.STEEL,chrome:steelseries.FrameDesign.CHROME,gold:steelseries.FrameDesign.GOLD,anthracite:steelseries.FrameDesign.ANTHRACITE,tiltedGray:steelseries.FrameDesign.TILTED_GRAY,tiltedBlack:steelseries.FrameDesign.TILTED_BLACK,glossyMetal:steelseries.FrameDesign.GLOSSY_METAL},Ch=(()=>{class r{unitsService=M(ir);widgetUUID=G(void 0);subType=G(void 0);barGauge=G(void 0);radialSize=G(void 0);backgroundColor=G(void 0);frameColor=G(void 0);minValue=G(void 0);maxValue=G(void 0);decimals=G(void 0);zones=G(void 0);title=G(void 0);units=G(void 0);value=G(void 0);theme=G(void 0,{alias:"themeColors"});gaugeStarted=!1;gauge;gaugeOptions={};paddingTop=0;ngOnInit(){this.buildOptions()}buildOptions(){this.gaugeOptions.minValue=this.minValue(),this.gaugeOptions.maxValue=this.maxValue();let e=this.decimals();this.gaugeOptions.lcdDecimals=e??2,this.gaugeOptions.titleString=this.title(),this.gaugeOptions.unitString=this.units(),this.subType()=="radial"&&(this.gaugeOptions.gaugeType=this.setGaugeType(this.radialSize()));let t=this.zones();if(t){let i=[],o=[],a=[...t].sort((l,d)=>l.lower-d.lower);for(let l of a){let d=null,f=null,s;switch(l.state){case ie.Emergency:s=this.theme().zoneEmergency;break;case ie.Alarm:s=this.theme().zoneAlarm;break;case ie.Warn:s=this.theme().zoneWarn;break;case ie.Alert:s=this.theme().zoneAlert;break;case ie.Nominal:s=this.theme().zoneNominal;break;default:s="rgba(0,0,0,0)"}let c=this.units();if(c=="ratio"?(d=l.lower,f=l.upper):(d=this.unitsService.convertToUnit(c,l.lower),f=this.unitsService.convertToUnit(c,l.upper)),!(f<this.minValue()||d>this.maxValue())){if(d=d!==null?d:this.minValue(),f=f!==null?f:this.maxValue(),d=Math.max(d,this.minValue()),f>this.maxValue()){f=this.maxValue(),i.push(steelseries.Section(d,f,s));break}i.push(steelseries.Section(d,f,s))}}this.gaugeOptions.section=i,this.gaugeOptions.area=o,this.gaugeOptions.useSectionColors=!0}Es[this.backgroundColor()]&&(this.gaugeOptions.backgroundColor=Es[this.backgroundColor()]),Ds[this.frameColor()]&&(this.gaugeOptions.frameDesign=Ds[this.frameColor()]),this.barGauge()&&(this.gaugeOptions.valueColor=steelseries.ColorDef.GREEN),this.gaugeOptions.lcdVisible=!0,this.gaugeOptions.thresholdVisible=!1,this.gaugeOptions.threshold=this.maxValue(),this.gaugeOptions.ledVisible=!1}setGaugeType(e){switch(e){case"quarter":return steelseries.GaugeType.TYPE1;case"half":return steelseries.GaugeType.TYPE2;case"three-quarter":return steelseries.GaugeType.TYPE3;case"full":default:return steelseries.GaugeType.TYPE4}}startGauge(){this.gaugeStarted=!0,this.buildOptions();let e=this.subType();e=="radial"?this.gauge=new steelseries.Radial(this.widgetUUID(),this.gaugeOptions):e=="linear"&&(this.barGauge()?this.gauge=new steelseries.LinearBargraph(this.widgetUUID(),this.gaugeOptions):this.gauge=new steelseries.Linear(this.widgetUUID(),this.gaugeOptions))}onResized(e){if(!(e.contentRect.height<50||e.contentRect.width<50)){if(this.subType()=="radial"){let t=Math.min(e.contentRect.height,e.contentRect.width);this.gaugeOptions.size=t}else this.gaugeOptions.width=e.contentRect.width,this.gaugeOptions.height=e.contentRect.height;this.startGauge()}}ngOnChanges(e){this.gaugeStarted&&(e.value&&!e.value.firstChange&&this.gauge.setValueAnimated(e.value.currentValue),e.zones&&this.startGauge(),e.title&&this.gauge.setTitleString(e.title.currentValue),e.backgroundColor&&this.gauge.setBackgroundColor(Es[e.backgroundColor.currentValue]),e.frameColor&&this.gauge.setFrameDesign(Ds[e.frameColor.currentValue]),e.radialSize&&this.startGauge(),e.minValue&&this.gauge.setMinValue(e.minValue.currentValue),e.maxValue&&this.gauge.setMaxValue(e.maxValue.currentValue))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["gauge-steel"]],inputs:{widgetUUID:[1,"widgetUUID"],subType:[1,"subType"],barGauge:[1,"barGauge"],radialSize:[1,"radialSize"],backgroundColor:[1,"backgroundColor"],frameColor:[1,"frameColor"],minValue:[1,"minValue"],maxValue:[1,"maxValue"],decimals:[1,"decimals"],zones:[1,"zones"],title:[1,"title"],units:[1,"units"],value:[1,"value"],theme:[1,"themeColors","theme"]},features:[Gi],decls:4,vars:2,consts:[["gauge",""],[1,"wrapper",3,"onResize"],[2,"z-index","inherit",3,"id"]],template:function(t,i){if(t&1){let o=ee();v(0,"div",1),F("onResize",function(l){return z(o),V(i.onResized(l))}),v(1,"canvas",2,0),P(3," Browser does not support canvas element. "),C()()}t&2&&(D(),j("id",ji(i.widgetUUID())))},dependencies:[at,ot],styles:[".sgWrapper[_ngcontent-%COMP%]{height:100%;width:100%;text-align:center}"]})}return r})();var Sh=(()=>{class r extends Ne{dataValue=0;zones=[];metaSub;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{type:"linear",lower:0,upper:100},gauge:{type:"steel",subType:"radial",backgroundColor:"carbon",faceColor:"anthracite",radialSize:"full",rotateFace:!1,digitalMeter:!1},numDecimal:2,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}}ngOnInit(){this.validateConfig(),this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.metaSub?.unsubscribe(),this.observeDataStream("gaugePath",e=>{(!e||!e.data)&&(e={data:{value:0,timestamp:new Date},state:"normal"}),this.dataValue=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper)}),this.widgetProperties.config.ignoreZones?this.zones=[]:(this.observeMetaStream(),this.metaSub=this.zones$.subscribe(e=>{e?e.length>0?this.zones=e:this.zones=[]:this.zones=[]}))}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}ngOnDestroy(){this.destroyDataStreams(),this.metaSub?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-gauge-steel"]],features:[pe],decls:2,vars:16,consts:[[3,"configChange","config","id"],[3,"widgetUUID","subType","barGauge","radialSize","backgroundColor","frameColor","minValue","maxValue","decimals","zones","title","units","value","themeColors"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Me("configChange",function(a){return Pe(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),F("configChange",function(a){return i.updateConfig(a)}),B(1,"gauge-steel",1),C()),t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("widgetUUID",i.widgetProperties.uuid)("subType",i.widgetProperties.config.gauge.subType)("barGauge",i.widgetProperties.config.gauge.digitalMeter)("radialSize",i.widgetProperties.config.gauge.radialSize)("backgroundColor",i.widgetProperties.config.gauge.backgroundColor)("frameColor",i.widgetProperties.config.gauge.faceColor)("minValue",i.widgetProperties.config.displayScale.lower)("maxValue",i.widgetProperties.config.displayScale.upper)("decimals",i.widgetProperties.config.numDecimal)("zones",i.zones)("title",i.widgetProperties.config.displayName)("units",i.widgetProperties.config.paths.gaugePath.convertUnitTo)("value",i.dataValue)("themeColors",i.theme()))},dependencies:[We,Ch],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}gauge-steel[_ngcontent-%COMP%]{display:block;position:relative;width:100%;height:100%} .wrapper{display:block;position:relative;width:100%;height:100%;padding:10px} .wrapper>canvas{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]})}return r})();var wf=["plainIframe"];function Cf(r,n){if(r&1&&B(0,"iframe",2,0),r&2){let e=re();j("src",e.widgetUrl,so)}}function Sf(r,n){r&1&&(v(0,"div",3)(1,"h2"),P(2,"Empty or bad URL"),C(),v(3,"p"),P(4," IMPORTANT: cross-domain security rules (CORS) apply to this widget. "),C(),v(5,"p"),P(6,"Typically, you can load Grafana graphs, Signal K apps or other related tools. "),C()())}var kh=(()=>{class r extends Ne{_sanitizer=M(Qn);_dashboard=M(ct);iframe;widgetUrl=null;displayTransparentOverlay=Ye("block");constructor(){super(),this.defaultConfig={widgetUrl:null,allowInput:!1},be(()=>{this._dashboard.isDashboardStatic()?this.displayTransparentOverlay.set(this.widgetProperties.config.allowInput?"none":"block"):this.displayTransparentOverlay.set("block")})}ngOnInit(){this.validateConfig(),window.addEventListener("message",this.handleIframeGesture),this.displayTransparentOverlay.set(this.widgetProperties.config.allowInput?"none":"block"),this.widgetUrl=this.resolveUrl(this.widgetProperties.config.widgetUrl)}ngAfterViewInit(){this.iframe&&(this.iframe.nativeElement.onload=()=>this.injectHammerJS())}startWidget(){}ngOnDestroy(){window.removeEventListener("message",this.handleIframeGesture)}handleIframeGesture=e=>{if(e.data){if(e.data.gesture&&e.data.eventData.instanceId===this.widgetProperties.uuid)switch(e.data.gesture){case"swipeup":this._dashboard.previousDashboard();break;case"swipedown":this._dashboard.nextDashboard();break;case"swipeleft":{let t=new Event("openLeftSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}case"swiperight":{let t=new Event("openRightSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}default:break}if(e.data.type==="keydown"&&e.data.keyEventData.instanceId===this.widgetProperties.uuid){let{key:t,ctrlKey:i,shiftKey:o}=e.data.keyEventData,a=new KeyboardEvent("keydown",{key:t,ctrlKey:i,shiftKey:o,bubbles:!0,cancelable:!0});document.dispatchEvent(a)}}};injectHammerJS(){let e=document.getElementsByTagName("base")[0]?.href||"/",t=this.iframe.nativeElement.contentWindow,i=this.iframe.nativeElement.contentDocument;if(!i||!t){console.error("[WidgetIframe] Iframe contentDocument or contentWindow is undefined. Possible cross-origin issue or iframe not fully loaded.");return}if(t.Hammer){console.log("[WidgetIframe] HammerJS already loaded in iframe");return}let o=i.createElement("script");o.src=`${e}assets/hammer.min.js`,o.onload=()=>this.injectSwipeHandler(),i.body.appendChild(o)}injectSwipeHandler(){let e=this.iframe.nativeElement.contentDocument;if(!e){console.error("[WidgetIframe] Iframe contentDocument is undefined. Possible cross-origin issue or iframe not fully loaded.");return}let t=e.createElement("script");t.textContent=`
|
|
122
|
+
`,e.body.appendChild(t)}ngOnDestroy(){window.removeEventListener("message",this.handleIframeGesture),this._authTokenSubscription?.unsubscribe(),this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-freeboardsk"]],viewQuery:function(t,i){t&1&&Le(i.iframe,hf,5),t&2&&nt()},features:[pe],decls:5,vars:6,consts:[["freeboardSkIframe",""],[3,"configChange","config","id"],["width","100%","height","100%","frameborder","0","sandbox","allow-same-origin allow-scripts allow-forms",3,"src"],[1,"widgetOverlay"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(){return B(o),F(i.updateConfig())}),V(1,"iframe",2,0),Kn(3,"safe"),De(4,uf,1,0,"div",3),w()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("src",go(3,4,i.widgetUrl),uo),P(3),Me(i.dashboard.isDashboardStatic()?-1:4))},dependencies:[Re,fh],styles:[".widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent}"]})}return r})();var hn=Ir(Ds(),1),bh=Ir(Ds(),1);var mf=["gauge"],pf=r=>r.replace(/(\-\w)/g,n=>n[1].toUpperCase()),ff=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),vh=r=>pf(r),yh=(()=>{class r{el;zone;canvas;gauge;isInited=!1;preInitValue;preInitOptions;domListener;constructor(e,t){this.el=e,this.zone=t}get options(){let e={};e.renderTo=this.canvas.nativeElement;for(let t of this.el.nativeElement.attributes){let i=vh(t.name);e[i]=hn.DomObserver.parse(t.value)}for(let t in this.preInitOptions)e[t]=this.preInitOptions[t];return this.isInited&&(this.preInitOptions=null),e}set options(e){if(!this.isInited){this.preInitOptions=e;return}this.update(e)}set value(e){if(!this.isInited){this.preInitValue=e;return}this.zone.runOutsideAngular(()=>{this.gauge.value=e})}update(e){if(e)for(let t in e){let i=e[t].toString();if(t==="value")this.value=hn.DomObserver.parse(i);else{let o=ff(t);this.el.nativeElement.setAttribute(o,i)}}}ngOnDestroy(){this.destroy(),this.cleanup()}cleanup(){}destroy(){this.stopListeningForDOMEvents(),this.gauge.destroy()}ngAfterViewInit(){this.initGauge(),this.listenForDOMEvents(),this.isInited=!0,this.preInitValue&&(this.value=this.preInitValue)}listenForDOMEvents(){this.domListener=new MutationObserver(e=>{let t={};e.forEach(i=>{i.type==="attributes"&&(t[vh(i.attributeName)]=hn.DomObserver.parse(this.el.nativeElement.getAttribute(i.attributeName)))}),this.basicUpdate(t)}),this.domListener.observe(this.el.nativeElement,{attributes:!0})}stopListeningForDOMEvents(){this.domListener&&(this.domListener.disconnect(),this.domListener=null)}initGauge(){let e=this.options;(!e.hasOwnProperty("renderTo")||!e.renderTo)&&(e.renderTo=this.canvas.nativeElement),this.basicUpdate(e)}basicUpdate(e){typeof e.value=="number"&&(this.value=e.value,delete e.value),Object.keys(e).length&&this.gauge.update(e)}static \u0275fac=function(t){return new(t||r)(Ht(tt),Ht(yt))};static \u0275dir=Ti({type:r,viewQuery:function(t,i){if(t&1&&it(mf,7),t&2){let o;qe(o=je())&&(i.canvas=o.first)}},inputs:{options:"options",value:"value"}})}return r})();var ta=(()=>{class r extends yh{constructor(e,t){super(e,t)}ngOnInit(){this.gauge=new hn.LinearGauge(this.options).draw()}static \u0275fac=function(t){return new(t||r)(Ht(tt),Ht(yt))};static \u0275cmp=G({type:r,selectors:[["linear-gauge"]],features:[pe],decls:2,vars:0,consts:[["gauge",""]],template:function(t,i){t&1&&V(0,"canvas",null,0)},encapsulation:2})}return r})();var ia=(()=>{class r extends yh{constructor(e,t){super(e,t)}ngOnInit(){this.gauge=new hn.RadialGauge(this.options).draw()}static \u0275fac=function(t){return new(t||r)(Ht(tt),Ht(yt))};static \u0275cmp=G({type:r,selectors:[["radial-gauge"]],features:[pe],decls:2,vars:0,consts:[["gauge",""]],template:function(t,i){t&1&&V(0,"canvas",null,0)},encapsulation:2})}return r})(),Sr=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=ai({type:r});static \u0275inj=oi({})}return r})();var _h=["compassGauge"];function As(r){let n=r.match(/(\d+(\.\d+)?|\.\d+)/g);if(!n||n.length<3)throw new Error("Invalid RGBA format");let[e,t,i,o=1]=n.map(Number),a=o===1?"":Math.round(o*255).toString(16).padStart(2,"0").toUpperCase();return"#"+((1<<24)+(e<<16)+(t<<8)+i).toString(16).slice(1).toUpperCase()+a}function gf(r){return r<0&&(r=360+r),r}var wh=(()=>{class r extends Ie{DEG="deg";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="--";value=0;ngGauge;gauge;gaugeOptions={};colorStrokeTicks="";unitName=null;state=ne.Normal;negToPortPaths=["self.environment.wind.angleApparent","self.environment.wind.angleTrueGround","self.environment.wind.angleTrueWater"];constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,convertUnitTo:this.DEG,sampleTime:500}},gauge:{type:"ngRadial",subType:"baseplateCompass",enableTicks:!0,compassUseNumbers:!1,showValueBox:!1},enableTimeout:!1,color:"contrast",dataTimeout:5},Se(()=>{this.theme()&&this.startWidget()})}ngOnInit(){this.validateConfig(),this.setGaugeConfig()}startWidget(){this.setGaugeConfig(),this.ngGauge.update(this.gaugeOptions),this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data||e.data.value===null)e={data:{value:0,timestamp:new Date},state:ne.Normal},this.value=0,this.textValue="--";else{let t=this.negToPortPaths.includes(this.widgetProperties.config.paths.gaugePath.path)?gf(e.data.value):e.data.value;this.value=Math.min(Math.max(t,0),360),this.textValue=this.value.toFixed(0)}if(e.state==null&&(e.state=ne.Normal),this.state!==e.state){this.state=e.state;let t={};switch(e.state){case ne.Emergency:t.colorValueText=this.theme().zoneEmergency;break;case ne.Alarm:t.colorValueText=this.theme().zoneAlarm;break;case ne.Warn:t.colorValueText=this.theme().zoneWarn;break;case ne.Alert:t.colorValueText=this.theme().zoneAlert;break;default:t.colorValueText=this.theme().contrast}this.ngGauge.update(t)}})}updateConfig(e){this.widgetProperties.config=e,this.setCanvasHight(),this.startWidget()}setCanvasHight(){let e=this.gauge.nativeElement.getBoundingClientRect(),t={};t.height=e.height,t.width=e.width,this.ngGauge.update(t)}ngAfterViewInit(){this.setCanvasHight(),this.startWidget()}onResized(e){let t={};t.height=e.contentRect.height,t.width=e.contentRect.width,this.ngGauge.update(t)}setGaugeConfig(){this.gaugeOptions.title=this.widgetProperties.config.displayName?this.widgetProperties.config.displayName:"",this.gaugeOptions.minValue=0,this.gaugeOptions.maxValue=360,this.gaugeOptions.valueDec=0,this.gaugeOptions.valueInt=1,this.gaugeOptions.units="",this.gaugeOptions.barProgress=!1,this.gaugeOptions.barWidth=0,this.gaugeOptions.valueBox=this.widgetProperties.config.gauge.showValueBox,this.gaugeOptions.fontValueSize=60,this.gaugeOptions.valueBoxWidth=26,this.gaugeOptions.valueBoxBorderRadius=10,this.gaugeOptions.valueBoxStroke=0,this.gaugeOptions.ticksAngle=360,this.gaugeOptions.startAngle=180,this.gaugeOptions.exactTicks=!1,this.gaugeOptions.strokeTicks="",this.gaugeOptions.majorTicks=this.widgetProperties.config.gauge.compassUseNumbers?["N","30","60","E","120","150","S","210","240","W","300","330","N"]:["N","NE","E","SE","S","SW","W","NW","N"],this.gaugeOptions.majorTicksDec=0,this.gaugeOptions.majorTicksInt=1,this.gaugeOptions.numbersMargin=5,this.gaugeOptions.fontNumbersSize=25,this.gaugeOptions.minorTicks=this.widgetProperties.config.gauge.compassUseNumbers?3:2,this.gaugeOptions.needle=!0,this.gaugeOptions.needleType=this.LINE,this.gaugeOptions.needleStart=this.NEEDLE_START,this.gaugeOptions.needleEnd=this.NEEDLE_END,this.gaugeOptions.needleCircleSize=this.NEEDLE_CIRCLE_SIZE,this.gaugeOptions.needleWidth=4,this.gaugeOptions.needleShadow=!1,this.gaugeOptions.needleCircleInner=!1,this.gaugeOptions.needleCircleOuter=!1,this.gaugeOptions.borders=!0,this.gaugeOptions.borderOuterWidth=0,this.gaugeOptions.borderMiddleWidth=this.BORDER_MIDDLE_WIDTH,this.gaugeOptions.borderInnerWidth=this.BORDER_INNER_WIDTH,this.gaugeOptions.borderShadowWidth=0,this.gaugeOptions.highlights=[],this.gaugeOptions.fontTitle="Roboto",this.gaugeOptions.fontTitleWeight="normal",this.gaugeOptions.fontTitleSize=25,this.gaugeOptions.fontUnits="Roboto",this.gaugeOptions.fontUnitsSize=25,this.gaugeOptions.fontUnitsWeight="normal",this.gaugeOptions.barStrokeWidth=0,this.gaugeOptions.barShadow=0,this.gaugeOptions.fontValue="Roboto",this.gaugeOptions.fontValueWeight="bold",this.gaugeOptions.valueTextShadow=!1,this.gaugeOptions.colorValueBoxShadow="",this.gaugeOptions.fontNumbers="Roboto",this.gaugeOptions.fontNumbersWeight="bold",this.gaugeOptions.highlightsWidth=0,this.widgetProperties.config.gauge.subType==="marineCompass"?(this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_PLATE,this.gaugeOptions.useMinPath=!0):this.widgetProperties.config.gauge.subType==="baseplateCompass"&&(this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_NEEDLE,this.gaugeOptions.useMinPath=!0),this.gaugeOptions.animation=!0,this.gaugeOptions.animateOnInit=!0,this.gaugeOptions.animatedValue=!0,this.gaugeOptions.animationRule="linear",this.gaugeOptions.animationDuration=this.widgetProperties.config.paths.gaugePath.sampleTime-50,this.setGaugeOptions(this.getColors(this.widgetProperties.config.color).color,As(this.getColors(this.widgetProperties.config.color).dim),As(this.getColors(this.widgetProperties.config.color).dimmer))}setGaugeOptions(e,t,i){let o=As(this.getColors("contrast").dim);this.gaugeOptions.colorBarProgress=e,this.gaugeOptions.colorBorderMiddle=t,this.gaugeOptions.colorBorderMiddleEnd=t,this.gaugeOptions.colorNeedle=e,this.gaugeOptions.colorNeedleEnd=e,this.gaugeOptions.colorTitle=o,this.gaugeOptions.colorUnits=o,this.gaugeOptions.colorValueText=e,this.gaugeOptions.colorMinorTicks=o,this.gaugeOptions.colorNumbers=this.widgetProperties.config.gauge.compassUseNumbers?[this.theme().port,o,o,t,o,o,t,o,o,t,o,o,this.theme().port]:[this.theme().port,t,t,t,t,t,t,t,this.theme().port],this.gaugeOptions.colorMajorTicks=this.widgetProperties.config.gauge.compassUseNumbers?[this.theme().port,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().port]:[this.theme().port,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().contrast,this.theme().port],this.gaugeOptions.colorPlate=this.gaugeOptions.colorPlateEnd=this.gaugeOptions.colorBorderInner=this.gaugeOptions.colorBorderInnerEnd=this.theme().cardColor,this.gaugeOptions.colorBar=this.theme().background,this.gaugeOptions.colorBarStroke="",this.gaugeOptions.colorValueBoxBackground=this.theme().background,this.gaugeOptions.colorNeedleShadowUp="",this.gaugeOptions.colorNeedleShadowDown="",this.gaugeOptions.colorNeedleCircleInner=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleInnerEnd=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuter=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuterEnd=this.gaugeOptions.colorPlate}getColors(e){return{contrast:{color:this.theme().contrast,dim:this.theme().contrastDim,dimmer:this.theme().contrastDimmer},blue:{color:this.theme().blue,dim:this.theme().blueDim,dimmer:this.theme().blueDimmer},green:{color:this.theme().green,dim:this.theme().greenDim,dimmer:this.theme().greenDimmer},pink:{color:this.theme().pink,dim:this.theme().pinkDim,dimmer:this.theme().pinkDimmer},orange:{color:this.theme().orange,dim:this.theme().orangeDim,dimmer:this.theme().orangeDimmer},purple:{color:this.theme().purple,dim:this.theme().purpleDim,dimmer:this.theme().purpleDimmer},yellow:{color:this.theme().yellow,dim:this.theme().yellowDim,dimmer:this.theme().yellowDimmer},grey:{color:this.theme().grey,dim:this.theme().greyDim,dimmer:this.theme().yellowDimmer}}[e]}ngOnDestroy(){this.destroyDataStreams(),this.ngGauge=null,this.gauge=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-gauge-ng-compass"]],viewQuery:function(t,i){if(t&1&&(it(_h,7),it(_h,7,tt)),t&2){let o;qe(o=je())&&(i.ngGauge=o.first),qe(o=je())&&(i.gauge=o.first)}},features:[pe],decls:3,vars:8,consts:[["compassGauge",""],[3,"configChange","config","id"],[3,"onResize","id","options","value"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(1,"radial-gauge",2,0),L("onResize",function(l){return B(o),F(i.onResized(l))}),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("id",$i(i.widgetProperties.uuid))("options",i.gaugeOptions)("value",i.value),ce("value-text",i.textValue)("color-stroke-ticks",i.colorStrokeTicks))},dependencies:[Re,at,ot,Sr,ia],styles:["radial-gauge{display:block;position:relative;width:100%;height:100%} radial-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px}"]})}return r})();function na(r,n){let e=[],t=n-r,i=0,o=10;t=Ch(n-r,!1),i=Ch(t/(o-1),!0);let a=Math.floor(r/i)*i,l=Math.ceil(n/i)*i;e.push(a);let d=t/i;for(let p=0;p<d;p++)if(e[p]<l){let s=(Number(e[p].toFixed(2))*100+Number(i.toFixed(2))*100)/100;e.push(s)}return{min:a,max:l,majorTicks:e}}function Ch(r,n){let e=Math.floor(Math.log10(r)),t=r/Math.pow(10,e),i=null;return n?1.5>t?i=1:3>t?i=2:7>t?i=5:i=10:1>=t?i=1:2>=t?i=2:5>=t?i=5:i=10,i*Math.pow(10,e)}var Sh=["linearGauge"],kh=(()=>{class r extends Ie{ngGauge;gauge;textValue="";value=0;gaugeOptions={};isGaugeVertical=!0;metaSub;state=ne.Normal;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{lower:0,upper:100,type:"linear"},gauge:{type:"ngLinear",subType:"vertical",enableTicks:!1,highlightsWidth:5,useNeedle:!1},numInt:1,numDecimal:0,color:"contrast",enableTimeout:!1,dataTimeout:5,ignoreZones:!1},Se(()=>{this.theme()&&this.startWidget()})}ngOnInit(){this.validateConfig()}startWidget(){this.setGaugeConfig(),this.ngGauge.update(this.gaugeOptions),this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.metaSub?.unsubscribe(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data||e.data.value===null?(e={data:{value:0,timestamp:new Date},state:ne.Normal},this.textValue="--"):this.textValue==="--"&&(this.textValue=""),this.value=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),e.state==null&&(e.state=ne.Normal),this.state!==e.state){this.state=e.state;let t={};if(!this.widgetProperties.config.ignoreZones)switch(e.state){case ne.Emergency:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneEmergency,t.colorValueText=this.theme().zoneEmergency):(t.colorBarProgress=this.theme().zoneEmergency,t.colorValueText=this.theme().zoneEmergency);break;case ne.Alarm:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneAlarm,t.colorValueText=this.theme().zoneAlarm):(t.colorBarProgress=this.theme().zoneAlarm,t.colorValueText=this.theme().zoneAlarm);break;case ne.Warn:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneWarn,t.colorValueText=this.theme().zoneWarn):(t.colorBarProgress=this.theme().zoneWarn,t.colorValueText=this.theme().zoneWarn);break;case ne.Alert:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.theme().zoneAlert,t.colorValueText=this.theme().zoneAlert):(t.colorBarProgress=this.theme().zoneAlert,t.colorValueText=this.theme().zoneAlert);break;default:this.widgetProperties.config.gauge.useNeedle?(t.colorNeedle=this.getColors(this.widgetProperties.config.color).color,t.colorValueText=this.getColors(this.widgetProperties.config.color).color):(t.colorBarProgress=this.getColors(this.widgetProperties.config.color).color,t.colorValueText=this.getColors(this.widgetProperties.config.color).color)}this.ngGauge.update(t)}}),this.widgetProperties.config.ignoreZones||(this.observeMetaStream(),this.metaSub=this.zones$.subscribe(e=>{e&&e.length>0&&this.setHighlights(e)}))}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}ngAfterViewInit(){this.setCanvasHight(),this.startWidget()}onResized(e){let t={};this.widgetProperties.config.gauge.subType==="vertical"?(t.height=e.contentRect.height,t.width=t.height*.3,t.width>e.contentRect.width&&(t.width=e.contentRect.width,t.height=t.width/.3)):(t.width=e.contentRect.width,t.height=t.width*.3,t.height>e.contentRect.height&&(t.height=e.contentRect.height,t.width=t.height/.3)),t.height-=10,this.ngGauge.update(t)}setCanvasHight(){let e=this.gauge.nativeElement.getBoundingClientRect(),t={};t.height=e.height,t.width=e.width,this.ngGauge.update(t)}setGaugeConfig(){let e=this.widgetProperties.config.gauge.subType==="vertical",t=this.widgetProperties.config.gauge.useNeedle,i=this.widgetProperties.config.gauge.enableTicks,o={min:this.widgetProperties.config.displayScale.lower,max:this.widgetProperties.config.displayScale.upper,majorTicks:[]},a=this.gauge.nativeElement.getBoundingClientRect(),l=null,d=null;this.widgetProperties.config.gauge.subType==="vertical"?(l=a.height,d=a.height*.3):(l=a.width*.3,d=a.width),i&&(o=na(this.widgetProperties.config.displayScale.lower,this.widgetProperties.config.displayScale.upper));let p={height:l,width:d,minValue:o.min,maxValue:o.max,valueInt:this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,valueDec:this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,title:this.widgetProperties.config.displayName,fontTitleSize:40,fontTitle:"Roboto",fontTitleWeight:"bold",barLength:e?80:90,barWidth:i?30:60,barProgress:!0,barBeginCircle:0,barStrokeWidth:0,barShadow:0,needle:t,needleType:this.widgetProperties.config.gauge.useNeedle?"arrow":"line",needleShadow:!1,needleSide:"both",needleStart:this.widgetProperties.config.gauge.useNeedle?22:-45,needleEnd:this.widgetProperties.config.gauge.useNeedle?120:55,colorNeedleEnd:"",colorNeedleShadowUp:"",colorNeedleShadowDown:"black",units:this.widgetProperties.config.paths.gaugePath.convertUnitTo,fontUnits:"Roboto",fontUnitsWeight:"normal",borders:!1,borderOuterWidth:0,colorBorderOuter:"red",colorBorderOuterEnd:"red",borderMiddleWidth:0,colorBorderMiddle:"#63afdf",colorBorderMiddleEnd:"#63afdf",borderInnerWidth:0,colorBorderInner:"red",colorBorderInnerEnd:"#121212",borderShadowWidth:0,borderRadius:0,colorBarEnd:"",colorBarStroke:"0",valueBoxStroke:0,colorValueBoxRect:"",colorValueBoxRectEnd:"",colorValueBoxBackground:this.theme().background,fontValueSize:50,fontValue:"Roboto",fontValueWeight:"bold",valueTextShadow:!1,colorValueBoxShadow:"",fontNumbers:"Roboto",fontNumbersWeight:"normal",fontUnitsSize:this.isGaugeVertical?40:35,colorTitle:this.getColors("contrast").dim,colorUnits:this.getColors("contrast").dim,colorValueText:this.getColors(this.widgetProperties.config.color).color,colorPlate:this.theme().cardColor,colorBar:this.theme().background,colorMajorTicks:this.getColors("contrast").dim,colorMinorTicks:this.getColors("contrast").dim,colorNumbers:this.getColors("contrast").dim,majorTicks:i?o.majorTicks:[],majorTicksInt:this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,majorTicksDec:this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,numberSide:"left",fontNumbersSize:i?25:0,numbersMargin:e?-3:-5,tickSide:"left",ticksWidth:i?10:0,ticksPadding:i?e?5:8:0,strokeTicks:i,minorTicks:i?2:0,ticksWidthMinor:i?6:0,valueBox:!0,valueBoxWidth:35,valueBoxBorderRadius:10,highlights:[],highlightsWidth:this.widgetProperties.config.gauge.highlightsWidth,animation:!0,animationRule:"linear",animatedValue:!1,animateOnInit:!1,animationDuration:this.widgetProperties.config.paths.gaugePath.sampleTime-25};Object.assign(this.gaugeOptions,p),this.setThemePaletteColor()}setThemePaletteColor(){let e="",t="";switch(this.widgetProperties.config.color){case"contrast":e=this.theme().contrast,t=this.theme().contrastDim;break;case"blue":e=this.theme().blue,t=this.theme().blueDim;break;case"green":e=this.theme().green,t=this.theme().greenDim;break;case"pink":e=this.theme().pink,t=this.theme().pinkDim;break;case"orange":e=this.theme().orange,t=this.theme().orangeDim;break;case"purple":e=this.theme().purple,t=this.theme().purpleDim;break;case"grey":e=this.theme().grey,t=this.theme().greyDim;break;case"yellow":e=this.theme().yellow,t=this.theme().yellowDim;break;default:e=this.theme().contrast,t=this.theme().contrastDim;break}Object.assign(this.gaugeOptions,{colorBarProgress:this.widgetProperties.config.gauge.useNeedle?"":e,colorBarProgressEnd:"",colorNeedle:this.widgetProperties.config.gauge.useNeedle?e:t,needleWidth:this.widgetProperties.config.gauge.useNeedle?20:0})}getColors(e){return{contrast:{color:this.theme().contrast,dim:this.theme().contrastDim,dimmer:this.theme().contrastDimmer},blue:{color:this.theme().blue,dim:this.theme().blueDim,dimmer:this.theme().blueDimmer},green:{color:this.theme().green,dim:this.theme().greenDim,dimmer:this.theme().greenDimmer},pink:{color:this.theme().pink,dim:this.theme().pinkDim,dimmer:this.theme().pinkDimmer},orange:{color:this.theme().orange,dim:this.theme().orangeDim,dimmer:this.theme().orangeDimmer},purple:{color:this.theme().purple,dim:this.theme().purpleDim,dimmer:this.theme().purpleDimmer},yellow:{color:this.theme().yellow,dim:this.theme().yellowDim,dimmer:this.theme().yellowDimmer},grey:{color:this.theme().grey,dim:this.theme().greyDim,dimmer:this.theme().yellowDimmer}}[e]}setHighlights(e){let t=[],i=[...e].sort((a,l)=>a.lower-l.lower);for(let a of i){let l=null,d=null,p;switch(a.state){case ne.Emergency:p=this.theme().zoneEmergency;break;case ne.Alarm:p=this.theme().zoneAlarm;break;case ne.Warn:p=this.theme().zoneWarn;break;case ne.Alert:p=this.theme().zoneAlert;break;case ne.Nominal:p=this.theme().zoneNominal;break;default:p="rgba(0,0,0,0)"}if(l=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.lower),d=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.upper),!(d<this.widgetProperties.config.displayScale.lower||l>this.widgetProperties.config.displayScale.upper)){if(l=l!==null?l:this.widgetProperties.config.displayScale.lower,d=d!==null?d:this.widgetProperties.config.displayScale.upper,l=Math.max(l,this.widgetProperties.config.displayScale.lower),d>this.widgetProperties.config.displayScale.upper){d=this.widgetProperties.config.displayScale.upper,t.push({from:l,to:d,color:p});break}t.push({from:l,to:d,color:p})}}let o={};o.highlightsWidth=this.widgetProperties.config.gauge.highlightsWidth,o.highlights=JSON.stringify(t,null,1),this.ngGauge.update(o)}ngOnDestroy(){this.destroyDataStreams(),this.metaSub?.unsubscribe(),this.ngGauge=null,this.gauge=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-gauge-ng-linear"]],viewQuery:function(t,i){if(t&1&&(it(Sh,7,ta),it(Sh,7,tt)),t&2){let o;qe(o=je())&&(i.ngGauge=o.first),qe(o=je())&&(i.gauge=o.first)}},features:[pe],decls:4,vars:7,consts:[["host",""],["linearGauge",""],[3,"configChange","config","id"],[1,"linearGauge",3,"onResize","id","options","value"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",2,0),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(2,"linear-gauge",3,1),L("onResize",function(l){return B(o),F(i.onResized(l))}),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(2),U("id",$i(i.widgetProperties.uuid))("options",i.gaugeOptions)("value",i.value),ce("value-text",i.textValue))},dependencies:[Re,at,ot,Sr,ta],styles:["linear-gauge{display:block;position:relative;width:100%;height:100%} linear-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);margin-top:5px}"]})}return r})();var Th=["radialGauge"],xh=(()=>{class r extends Ie{LINE="line";ANIMATION_TARGET_NEEDLE="needle";ngGauge;gauge;textValue="";value=null;gaugeOptions={};colorStrokeTicks="";unitName=null;metaSub;state=ne.Normal;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{lower:0,upper:100,type:"linear"},gauge:{type:"ngRadial",subType:"measuring",enableTicks:!0,compassUseNumbers:!1,highlightsWidth:5,scaleStart:180},numInt:1,numDecimal:0,enableTimeout:!1,color:"contrast",dataTimeout:5,ignoreZones:!1},Se(()=>{this.theme()&&this.startWidget()})}ngOnInit(){this.validateConfig(),this.setGaugeConfig()}startWidget(){this.setGaugeConfig(),this.ngGauge.update(this.gaugeOptions),this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.metaSub?.unsubscribe(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data||e.data.value===null?(e={data:{value:0,timestamp:new Date},state:ne.Normal},this.textValue="--"):this.textValue==="--"&&(this.textValue=""),this.value=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),e.state==null&&(e.state=ne.Normal),this.state!==e.state){this.state=e.state;let t={};if(!this.widgetProperties.config.ignoreZones)switch(e.state){case ne.Alarm:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.theme().zoneAlarm,t.colorValueText=this.theme().zoneAlarm;break;case ne.Warn:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.theme().zoneWarn,t.colorValueText=this.theme().zoneWarn;break;case ne.Alert:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.theme().zoneAlert,t.colorValueText=this.theme().zoneAlert;break;default:t.colorBorderMiddle=this.theme().cardColor,t.colorBarProgress=this.widgetProperties.config.gauge.subType=="measuring"?this.getColors(this.widgetProperties.config.color).color:this.getColors(this.widgetProperties.config.color).dim,t.colorValueText=this.getColors(this.widgetProperties.config.color).color}this.ngGauge.update(t)}}),this.widgetProperties.config.ignoreZones||(this.observeMetaStream(),this.metaSub=this.zones$.subscribe(e=>{e&&e.length>0&&this.widgetProperties.config.gauge.subType=="measuring"&&this.setHighlights(e)}))}updateConfig(e){this.widgetProperties.config=e,this.setCanvasHight(),this.startWidget()}setCanvasHight(){let e=this.gauge.nativeElement.getBoundingClientRect(),t={};t.height=e.height,t.width=e.width,this.ngGauge.update(t)}ngAfterViewInit(){this.setCanvasHight(),this.startWidget()}onResized(e){let t={};t.height=e.contentRect.height,t.width=e.contentRect.width,this.ngGauge.update(t)}setGaugeConfig(){switch(this.gaugeOptions.title=this.widgetProperties.config.displayName?this.widgetProperties.config.displayName:"",this.gaugeOptions.highlights=[],this.gaugeOptions.fontTitle="Roboto",this.gaugeOptions.fontTitleWeight="bold",this.gaugeOptions.fontUnits="Roboto",this.gaugeOptions.fontUnitsSize=25,this.gaugeOptions.fontUnitsWeight="normal",this.gaugeOptions.barStrokeWidth=0,this.gaugeOptions.barShadow=0,this.gaugeOptions.colorBarStroke="",this.gaugeOptions.fontValue="Roboto",this.gaugeOptions.fontValueWeight="bold",this.gaugeOptions.valueTextShadow=!1,this.gaugeOptions.colorValueBoxShadow="",this.gaugeOptions.fontNumbers="Roboto",this.gaugeOptions.fontNumbersWeight="bold",this.gaugeOptions.valueInt=this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,this.gaugeOptions.valueDec=this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,this.gaugeOptions.majorTicksInt=this.widgetProperties.config.numInt!==void 0&&this.widgetProperties.config.numInt!==null?this.widgetProperties.config.numInt:1,this.gaugeOptions.majorTicksDec=this.widgetProperties.config.numDecimal!==void 0&&this.widgetProperties.config.numDecimal!==null?this.widgetProperties.config.numDecimal:2,this.gaugeOptions.highlightsWidth=this.widgetProperties.config.gauge.highlightsWidth,this.gaugeOptions.animation=!0,this.gaugeOptions.animateOnInit=!1,this.gaugeOptions.animatedValue=!1,this.gaugeOptions.animationRule="linear",this.gaugeOptions.animationDuration=this.widgetProperties.config.paths.gaugePath.sampleTime-25,this.gaugeOptions.colorBorderShadow=!1,this.gaugeOptions.colorBorderOuter=this.theme().cardColor,this.gaugeOptions.colorBorderOuterEnd="",this.gaugeOptions.colorBorderMiddle=this.theme().cardColor,this.gaugeOptions.colorBorderMiddleEnd="",this.gaugeOptions.colorBarProgress=this.getColors(this.widgetProperties.config.color).color,this.gaugeOptions.colorNeedle=this.getColors(this.widgetProperties.config.color).dim,this.gaugeOptions.colorNeedleEnd=this.getColors(this.widgetProperties.config.color).dim,this.gaugeOptions.colorTitle=this.theme().contrastDim,this.gaugeOptions.colorUnits=this.theme().contrastDim,this.gaugeOptions.colorValueText=this.getColors(this.widgetProperties.config.color).color,this.colorStrokeTicks=this.theme().contrastDim,this.gaugeOptions.colorMinorTicks=this.theme().contrastDim,this.gaugeOptions.colorNumbers=this.theme().contrastDim,this.gaugeOptions.colorMajorTicks=this.theme().contrastDim,this.gaugeOptions.colorPlate=this.gaugeOptions.colorPlateEnd=this.theme().cardColor,this.gaugeOptions.colorBar=this.theme().background,this.gaugeOptions.colorNeedleShadowUp="",this.gaugeOptions.colorNeedleShadowDown="black",this.gaugeOptions.colorNeedleCircleInner=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleInnerEnd=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuter=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNeedleCircleOuterEnd=this.gaugeOptions.colorPlate,this.widgetProperties.config.gauge.subType){case"capacity":this.configureCapacityGauge();break;case"measuring":this.configureMeasuringGauge();break;default:}}getColors(e){return{contrast:{color:this.theme().contrast,dim:this.theme().contrastDim,dimmer:this.theme().contrastDimmer},blue:{color:this.theme().blue,dim:this.theme().blueDim,dimmer:this.theme().blueDimmer},green:{color:this.theme().green,dim:this.theme().greenDim,dimmer:this.theme().greenDimmer},pink:{color:this.theme().pink,dim:this.theme().pinkDim,dimmer:this.theme().pinkDimmer},orange:{color:this.theme().orange,dim:this.theme().orangeDim,dimmer:this.theme().orangeDimmer},purple:{color:this.theme().purple,dim:this.theme().purpleDim,dimmer:this.theme().purpleDimmer},yellow:{color:this.theme().yellow,dim:this.theme().yellowDim,dimmer:this.theme().yellowDimmer},grey:{color:this.theme().grey,dim:this.theme().greyDim,dimmer:this.theme().yellowDimmer}}[e]}configureCapacityGauge(){this.gaugeOptions.minValue=this.widgetProperties.config.displayScale.lower,this.gaugeOptions.maxValue=this.widgetProperties.config.displayScale.upper,this.gaugeOptions.units=this.widgetProperties.config.paths.gaugePath.convertUnitTo,this.gaugeOptions.fontTitleSize=40,this.gaugeOptions.barProgress=!0,this.gaugeOptions.barWidth=20,this.gaugeOptions.colorBarProgress=this.getColors(this.widgetProperties.config.color).dim,this.gaugeOptions.valueBox=!0,this.gaugeOptions.fontValueSize=60,this.gaugeOptions.valueBoxWidth=10,this.gaugeOptions.valueBoxBorderRadius=5,this.gaugeOptions.valueBoxStroke=0,this.gaugeOptions.colorValueBoxBackground="",this.gaugeOptions.colorValueBoxRect="",this.gaugeOptions.colorValueBoxRectEnd="",this.gaugeOptions.ticksAngle=360,this.gaugeOptions.startAngle=this.widgetProperties.config.gauge.scaleStart||180,this.gaugeOptions.majorTicks=0,this.gaugeOptions.exactTicks=!0,this.gaugeOptions.strokeTicks=!1,this.gaugeOptions.minorTicks=0,this.gaugeOptions.numbersMargin=0,this.gaugeOptions.fontNumbersSize=0,this.gaugeOptions.colorMajorTicks=this.gaugeOptions.colorPlate,this.gaugeOptions.colorNumbers=this.gaugeOptions.colorMinorTicks="",this.gaugeOptions.needle=!0,this.gaugeOptions.needleType=this.LINE,this.gaugeOptions.needleWidth=2,this.gaugeOptions.needleShadow=!1,this.gaugeOptions.needleStart=75,this.gaugeOptions.needleEnd=95,this.gaugeOptions.needleCircleSize=1,this.gaugeOptions.needleCircleInner=!1,this.gaugeOptions.needleCircleOuter=!1,this.gaugeOptions.borders=!0,this.gaugeOptions.borderOuterWidth=2,this.gaugeOptions.borderMiddleWidth=1,this.gaugeOptions.borderInnerWidth=0,this.gaugeOptions.borderShadowWidth=0,this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_NEEDLE,this.gaugeOptions.useMinPath=!1}configureMeasuringGauge(){let e=na(this.widgetProperties.config.displayScale.lower,this.widgetProperties.config.displayScale.upper);this.gaugeOptions.minValue=e.min,this.gaugeOptions.maxValue=e.max,this.gaugeOptions.units=this.widgetProperties.config.paths.gaugePath.convertUnitTo,this.gaugeOptions.fontTitleSize=24,this.gaugeOptions.barProgress=!0,this.gaugeOptions.barWidth=15,this.gaugeOptions.valueBox=!0,this.gaugeOptions.fontValueSize=60,this.gaugeOptions.valueBoxWidth=100,this.gaugeOptions.valueBoxBorderRadius=0,this.gaugeOptions.valueBoxStroke=0,this.gaugeOptions.colorValueBoxBackground="",this.gaugeOptions.exactTicks=!1,this.gaugeOptions.majorTicks=e.majorTicks,this.gaugeOptions.minorTicks=2,this.gaugeOptions.ticksAngle=270,this.gaugeOptions.startAngle=45,this.gaugeOptions.strokeTicks=!0,this.gaugeOptions.numbersMargin=3,this.gaugeOptions.fontNumbersSize=15,this.gaugeOptions.needle=!0,this.gaugeOptions.needleType=this.LINE,this.gaugeOptions.needleWidth=2,this.gaugeOptions.needleShadow=!1,this.gaugeOptions.needleStart=0,this.gaugeOptions.needleEnd=95,this.gaugeOptions.needleCircleSize=10,this.gaugeOptions.needleCircleInner=!1,this.gaugeOptions.needleCircleOuter=!1,this.gaugeOptions.borders=!0,this.gaugeOptions.borderOuterWidth=2,this.gaugeOptions.borderMiddleWidth=1,this.gaugeOptions.borderInnerWidth=0,this.gaugeOptions.borderShadowWidth=0,this.gaugeOptions.animationTarget=this.ANIMATION_TARGET_NEEDLE,this.gaugeOptions.useMinPath=!1}setHighlights(e){let t=[],i=[...e].sort((a,l)=>a.lower-l.lower);for(let a of i){let l=null,d=null,p;switch(a.state){case ne.Emergency:p=this.theme().zoneEmergency;break;case ne.Alarm:p=this.theme().zoneAlarm;break;case ne.Warn:p=this.theme().zoneWarn;break;case ne.Alert:p=this.theme().zoneAlert;break;case ne.Nominal:p=this.theme().zoneNominal;break;default:p="rgba(0,0,0,0)"}if(l=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.lower),d=this.unitsService.convertToUnit(this.widgetProperties.config.paths.gaugePath.convertUnitTo,a.upper),!(d<this.widgetProperties.config.displayScale.lower||l>this.widgetProperties.config.displayScale.upper)){if(l=l!==null?l:this.widgetProperties.config.displayScale.lower,d=d!==null?d:this.widgetProperties.config.displayScale.upper,l=Math.max(l,this.widgetProperties.config.displayScale.lower),d>this.widgetProperties.config.displayScale.upper){d=this.widgetProperties.config.displayScale.upper,t.push({from:l,to:d,color:p});break}t.push({from:l,to:d,color:p})}}let o={};o.highlightsWidth=this.widgetProperties.config.gauge.highlightsWidth,o.highlights=JSON.stringify(t,null,1),this.ngGauge.update(o)}ngOnDestroy(){this.destroyDataStreams(),this.metaSub?.unsubscribe(),this.ngGauge=null,this.gauge=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-gauge-ng-radial"]],viewQuery:function(t,i){if(t&1&&(it(Th,7),it(Th,7,tt)),t&2){let o;qe(o=je())&&(i.ngGauge=o.first),qe(o=je())&&(i.gauge=o.first)}},features:[pe],decls:3,vars:7,consts:[["radialGauge",""],[3,"configChange","config","id"],[3,"onResize","id","options","value"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(1,"radial-gauge",2,0),L("onResize",function(l){return B(o),F(i.onResized(l))}),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("id",$i(i.widgetProperties.uuid))("options",i.gaugeOptions)("value",i.value),ce("value-text",i.textValue))},dependencies:[Re,at,ot,Sr,ia],styles:["radial-gauge{display:block;position:relative;width:100%;height:100%} radial-gauge>canvas{display:block;position:absolute;height:100%;width:100%;left:50%;top:50%;transform:translate(-50%,-50%);padding:0}"]})}return r})();var Os={darkGray:steelseries.BackgroundColor.DARK_GRAY,satinGray:steelseries.BackgroundColor.SATIN_GRAY,lightGray:steelseries.BackgroundColor.LIGHT_GRAY,white:steelseries.BackgroundColor.WHITE,black:steelseries.BackgroundColor.BLACK,beige:steelseries.BackgroundColor.BEIGE,brown:steelseries.BackgroundColor.BROWN,red:steelseries.BackgroundColor.RED,green:steelseries.BackgroundColor.GREEN,blue:steelseries.BackgroundColor.BLUE,anthracite:steelseries.BackgroundColor.ANTHRACITE,mud:steelseries.BackgroundColor.MUD,punchedSheet:steelseries.BackgroundColor.PUNCHED_SHEET,carbon:steelseries.BackgroundColor.CARBON,stainless:steelseries.BackgroundColor.STAINLESS,brushedMetal:steelseries.BackgroundColor.BRUSHED_METAL,brushedStainless:steelseries.BackgroundColor.BRUSHED_STAINLESS,turned:steelseries.BackgroundColor.TURNED},Is={blackMetal:steelseries.FrameDesign.BLACK_METAL,metal:steelseries.FrameDesign.METAL,shinyMetal:steelseries.FrameDesign.SHINY_METAL,brass:steelseries.FrameDesign.BRASS,steel:steelseries.FrameDesign.STEEL,chrome:steelseries.FrameDesign.CHROME,gold:steelseries.FrameDesign.GOLD,anthracite:steelseries.FrameDesign.ANTHRACITE,tiltedGray:steelseries.FrameDesign.TILTED_GRAY,tiltedBlack:steelseries.FrameDesign.TILTED_BLACK,glossyMetal:steelseries.FrameDesign.GLOSSY_METAL},Eh=(()=>{class r{unitsService=M(or);widgetUUID=q(void 0);subType=q(void 0);barGauge=q(void 0);radialSize=q(void 0);backgroundColor=q(void 0);frameColor=q(void 0);minValue=q(void 0);maxValue=q(void 0);decimals=q(void 0);zones=q(void 0);title=q(void 0);units=q(void 0);value=q(void 0);theme=q(void 0,{alias:"themeColors"});gaugeStarted=!1;gauge;gaugeOptions={};paddingTop=0;ngOnInit(){this.buildOptions()}buildOptions(){this.gaugeOptions.minValue=this.minValue(),this.gaugeOptions.maxValue=this.maxValue();let e=this.decimals();this.gaugeOptions.lcdDecimals=e??2,this.gaugeOptions.titleString=this.title(),this.gaugeOptions.unitString=this.units(),this.subType()=="radial"&&(this.gaugeOptions.gaugeType=this.setGaugeType(this.radialSize()));let t=this.zones();if(t){let i=[],o=[],a=[...t].sort((l,d)=>l.lower-d.lower);for(let l of a){let d=null,p=null,s;switch(l.state){case ne.Emergency:s=this.theme().zoneEmergency;break;case ne.Alarm:s=this.theme().zoneAlarm;break;case ne.Warn:s=this.theme().zoneWarn;break;case ne.Alert:s=this.theme().zoneAlert;break;case ne.Nominal:s=this.theme().zoneNominal;break;default:s="rgba(0,0,0,0)"}let c=this.units();if(c=="ratio"?(d=l.lower,p=l.upper):(d=this.unitsService.convertToUnit(c,l.lower),p=this.unitsService.convertToUnit(c,l.upper)),!(p<this.minValue()||d>this.maxValue())){if(d=d!==null?d:this.minValue(),p=p!==null?p:this.maxValue(),d=Math.max(d,this.minValue()),p>this.maxValue()){p=this.maxValue(),i.push(steelseries.Section(d,p,s));break}i.push(steelseries.Section(d,p,s))}}this.gaugeOptions.section=i,this.gaugeOptions.area=o,this.gaugeOptions.useSectionColors=!0}Os[this.backgroundColor()]&&(this.gaugeOptions.backgroundColor=Os[this.backgroundColor()]),Is[this.frameColor()]&&(this.gaugeOptions.frameDesign=Is[this.frameColor()]),this.barGauge()&&(this.gaugeOptions.valueColor=steelseries.ColorDef.GREEN),this.gaugeOptions.lcdVisible=!0,this.gaugeOptions.thresholdVisible=!1,this.gaugeOptions.threshold=this.maxValue(),this.gaugeOptions.ledVisible=!1}setGaugeType(e){switch(e){case"quarter":return steelseries.GaugeType.TYPE1;case"half":return steelseries.GaugeType.TYPE2;case"three-quarter":return steelseries.GaugeType.TYPE3;case"full":default:return steelseries.GaugeType.TYPE4}}startGauge(){this.gaugeStarted=!0,this.buildOptions();let e=this.subType();e=="radial"?this.gauge=new steelseries.Radial(this.widgetUUID(),this.gaugeOptions):e=="linear"&&(this.barGauge()?this.gauge=new steelseries.LinearBargraph(this.widgetUUID(),this.gaugeOptions):this.gauge=new steelseries.Linear(this.widgetUUID(),this.gaugeOptions))}onResized(e){if(!(e.contentRect.height<50||e.contentRect.width<50)){if(this.subType()=="radial"){let t=Math.min(e.contentRect.height,e.contentRect.width);this.gaugeOptions.size=t}else this.gaugeOptions.width=e.contentRect.width,this.gaugeOptions.height=e.contentRect.height;this.startGauge()}}ngOnChanges(e){this.gaugeStarted&&(e.value&&!e.value.firstChange&&this.gauge.setValueAnimated(e.value.currentValue),e.zones&&this.startGauge(),e.title&&this.gauge.setTitleString(e.title.currentValue),e.backgroundColor&&this.gauge.setBackgroundColor(Os[e.backgroundColor.currentValue]),e.frameColor&&this.gauge.setFrameDesign(Is[e.frameColor.currentValue]),e.radialSize&&this.startGauge(),e.minValue&&this.gauge.setMinValue(e.minValue.currentValue),e.maxValue&&this.gauge.setMaxValue(e.maxValue.currentValue))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["gauge-steel"]],inputs:{widgetUUID:[1,"widgetUUID"],subType:[1,"subType"],barGauge:[1,"barGauge"],radialSize:[1,"radialSize"],backgroundColor:[1,"backgroundColor"],frameColor:[1,"frameColor"],minValue:[1,"minValue"],maxValue:[1,"maxValue"],decimals:[1,"decimals"],zones:[1,"zones"],title:[1,"title"],units:[1,"units"],value:[1,"value"],theme:[1,"themeColors","theme"]},features:[qi],decls:4,vars:2,consts:[["gauge",""],[1,"wrapper",3,"onResize"],[2,"z-index","inherit",3,"id"]],template:function(t,i){if(t&1){let o=ee();v(0,"div",1),L("onResize",function(l){return B(o),F(i.onResized(l))}),v(1,"canvas",2,0),D(3," Browser does not support canvas element. "),w()()}t&2&&(P(),U("id",$i(i.widgetUUID())))},dependencies:[at,ot],styles:[".sgWrapper[_ngcontent-%COMP%]{height:100%;width:100%;text-align:center}"]})}return r})();var Ph=(()=>{class r extends Ie{dataValue=0;zones=[];metaSub;constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:null,convertUnitTo:"unitless",sampleTime:500}},displayScale:{type:"linear",lower:0,upper:100},gauge:{type:"steel",subType:"radial",backgroundColor:"carbon",faceColor:"anthracite",radialSize:"full",rotateFace:!1,digitalMeter:!1},numDecimal:2,enableTimeout:!1,dataTimeout:5,ignoreZones:!1}}ngOnInit(){this.validateConfig(),this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.unsubscribeMetaStream(),this.metaSub?.unsubscribe(),this.observeDataStream("gaugePath",e=>{(!e||!e.data)&&(e={data:{value:0,timestamp:new Date},state:"normal"}),this.dataValue=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper)}),this.widgetProperties.config.ignoreZones?this.zones=[]:(this.observeMetaStream(),this.metaSub=this.zones$.subscribe(e=>{e?e.length>0?this.zones=e:this.zones=[]:this.zones=[]}))}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}ngOnDestroy(){this.destroyDataStreams(),this.metaSub?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-gauge-steel"]],features:[pe],decls:2,vars:16,consts:[[3,"configChange","config","id"],[3,"widgetUUID","subType","barGauge","radialSize","backgroundColor","frameColor","minValue","maxValue","decimals","zones","title","units","value","themeColors"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Pe("configChange",function(a){return Ee(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),L("configChange",function(a){return i.updateConfig(a)}),V(1,"gauge-steel",1),w()),t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("widgetUUID",i.widgetProperties.uuid)("subType",i.widgetProperties.config.gauge.subType)("barGauge",i.widgetProperties.config.gauge.digitalMeter)("radialSize",i.widgetProperties.config.gauge.radialSize)("backgroundColor",i.widgetProperties.config.gauge.backgroundColor)("frameColor",i.widgetProperties.config.gauge.faceColor)("minValue",i.widgetProperties.config.displayScale.lower)("maxValue",i.widgetProperties.config.displayScale.upper)("decimals",i.widgetProperties.config.numDecimal)("zones",i.zones)("title",i.widgetProperties.config.displayName)("units",i.widgetProperties.config.paths.gaugePath.convertUnitTo)("value",i.dataValue)("themeColors",i.theme()))},dependencies:[Re,Eh],styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}gauge-steel[_ngcontent-%COMP%]{display:block;position:relative;width:100%;height:100%} .wrapper{display:block;position:relative;width:100%;height:100%;padding:10px} .wrapper>canvas{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}"]})}return r})();var vf=["plainIframe"];function yf(r,n){if(r&1&&V(0,"iframe",2,0),r&2){let e=ie();U("src",e.widgetUrl,uo)}}function bf(r,n){r&1&&(v(0,"div",3)(1,"h2"),D(2,"Empty or bad URL"),w(),v(3,"p"),D(4," IMPORTANT: cross-domain security rules (CORS) apply to this widget. "),w(),v(5,"p"),D(6,"Typically, you can load Grafana graphs, Signal K apps or other related tools. "),w()())}var Dh=(()=>{class r extends Ie{_sanitizer=M(Jn);_dashboard=M(ct);iframe;widgetUrl=null;displayTransparentOverlay=Ge("block");constructor(){super(),this.defaultConfig={widgetUrl:null,allowInput:!1},Se(()=>{this._dashboard.isDashboardStatic()?this.displayTransparentOverlay.set(this.widgetProperties.config.allowInput?"none":"block"):this.displayTransparentOverlay.set("block")})}ngOnInit(){this.validateConfig(),window.addEventListener("message",this.handleIframeGesture),this.displayTransparentOverlay.set(this.widgetProperties.config.allowInput?"none":"block"),this.widgetUrl=this.resolveUrl(this.widgetProperties.config.widgetUrl)}ngAfterViewInit(){this.iframe&&(this.iframe.nativeElement.onload=()=>this.injectHammerJS())}startWidget(){}ngOnDestroy(){window.removeEventListener("message",this.handleIframeGesture)}handleIframeGesture=e=>{if(e.data){if(e.data.gesture&&e.data.eventData.instanceId===this.widgetProperties.uuid)switch(e.data.gesture){case"swipeup":this._dashboard.previousDashboard();break;case"swipedown":this._dashboard.nextDashboard();break;case"swipeleft":{let t=new Event("openLeftSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}case"swiperight":{let t=new Event("openRightSidenav",{bubbles:!0,cancelable:!0});window.document.dispatchEvent(t);break}default:break}if(e.data.type==="keydown"&&e.data.keyEventData.instanceId===this.widgetProperties.uuid){let{key:t,ctrlKey:i,shiftKey:o}=e.data.keyEventData,a=new KeyboardEvent("keydown",{key:t,ctrlKey:i,shiftKey:o,bubbles:!0,cancelable:!0});document.dispatchEvent(a)}}};injectHammerJS(){let e=document.getElementsByTagName("base")[0]?.href||"/",t=this.iframe.nativeElement.contentWindow,i=this.iframe.nativeElement.contentDocument;if(!i||!t){console.error("[WidgetIframe] Iframe contentDocument or contentWindow is undefined. Possible cross-origin issue or iframe not fully loaded.");return}if(t.Hammer){console.log("[WidgetIframe] HammerJS already loaded in iframe");return}let o=i.createElement("script");o.src=`${e}assets/hammer.min.js`,o.onload=()=>this.injectSwipeHandler(),i.body.appendChild(o)}injectSwipeHandler(){let e=this.iframe.nativeElement.contentDocument;if(!e){console.error("[WidgetIframe] Iframe contentDocument is undefined. Possible cross-origin issue or iframe not fully loaded.");return}let t=e.createElement("script");t.textContent=`
|
|
124
123
|
if (!window.hammerInstance) {
|
|
125
124
|
const hammer = new Hammer(document.body);
|
|
126
125
|
hammer.get('swipe').set({ direction: Hammer.DIRECTION_ALL, velocity: 1.5, threshold: 200, domEvents: true });
|
|
@@ -230,9 +229,9 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
|
|
|
230
229
|
|
|
231
230
|
window.hammerInstance = hammer; // Store the instance to prevent multiple listeners
|
|
232
231
|
}
|
|
233
|
-
`,e.body.appendChild(t)}updateConfig(e){this.widgetUrl=this.resolveUrl(e.widgetUrl)}isValidProtocol(e){try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch(t){return console.warn(`[Embed Widget] Invalid Url: ${e}, Error: ${t}`),!1}}resolveUrl(e){if(!e)return null;try{let t=new URL(e,window.location.origin);return this.isValidProtocol(t.href)?this._sanitizer.bypassSecurityTrustResourceUrl(t.href):null}catch(t){return console.warn(`[Embed Widget] Can't resolve Url: ${e}, Error: ${t}`),null}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-iframe"]],viewQuery:function(t,i){if(t&1&&nt(wf,5),t&2){let o;Ge(o=qe())&&(i.iframe=o.first)}},features:[pe],decls:4,vars:5,consts:[["plainIframe",""],[2,"overflow","hidden",3,"configChange","config","id"],["width","100%","height","100%","frameborder","0",1,"widgetIframe",3,"src"],[2,"padding","15px"],[1,"widgetOverlay"]],template:function(t,i){t&1&&(v(0,"widget-host",1),Me("configChange",function(a){return Pe(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),F("configChange",function(a){return i.updateConfig(a)}),Ae(1,Cf,2,1,"iframe",2)(2,Sf,7,0,"div",3),B(3,"div",4),C()),t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),Oe(i.widgetUrl?1:2),D(2),xe("display",i.displayTransparentOverlay()))},dependencies:[We],styles:[".widgetIframe[_ngcontent-%COMP%]{background-color:#fff;border-radius:var(--mat-card-elevated-container-shape, var(--mat-sys-corner-medium))}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent}"]})}return r})();var ea=(()=>{class r{kipTimers={};constructor(){}createTimer(e,t,i){return e in this.kipTimers?this.kipTimers[e].currentValue.asObservable():(this.kipTimers[e]={currentValue:new Fi(t),timeoutID:null,intervalMS:i},this.kipTimers[e].currentValue.asObservable())}startTimer(e){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&this.kipTimers[e].timeoutID===null&&(this.kipTimers[e].timeoutID=setInterval(()=>{this.kipTimers[e].currentValue.next(this.kipTimers[e].currentValue.value+1)},this.kipTimers[e].intervalMS))}stopTimer(e){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&this.kipTimers[e].timeoutID!==null&&(clearInterval(this.kipTimers[e].timeoutID),this.kipTimers[e].timeoutID=null)}setTimer(e,t){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&this.kipTimers[e].currentValue.next(t)}deleteTimer(e){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&(this.stopTimer(e),this.kipTimers[e].currentValue.complete(),delete this.kipTimers[e])}isRunning(e){let t=!1;return e in this.kipTimers&&(t=this.kipTimers[e].timeoutID!==null),t}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var kf=["canvasEl"];function Tf(r,n){if(r&1){let e=ee();v(0,"button",12),F("click",function(){z(e);let i=re();return V(i.startTimer())}),P(1," Start "),C()}}function xf(r,n){if(r&1){let e=ee();v(0,"button",13),F("click",function(){z(e);let i=re();return V(i.pauseTimer())}),P(1," Pause "),C()}}var Th=(()=>{class r extends Ne{TimersService=M(ea);canvas=M(Mt);canvasEl=Ce("canvasEl");dataValue=null;zoneState=null;currentValueLength=0;valueFontSize=1;flashOn=!1;flashInterval=null;timerRunning=!1;timeName="race";warnColor=null;warmContrast=null;textColor=null;timerSub=null;canvasCtx=null;constructor(){super(),this.defaultConfig={timerLength:300,color:"contrast"},be(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.updateCanvas())})}ngOnInit(){this.validateConfig(),this.subscribeTimer(),this.startWidget()}startWidget(){this.getColors(this.widgetProperties.config.color),this.canvasCtx=this.canvasEl().nativeElement.getContext("2d")}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.updateCanvas()}onResized(e){e.contentRect.height<50||e.contentRect.width<50||(this.canvasEl().nativeElement.width!=Math.floor(e.contentRect.width)||this.canvasEl().nativeElement.height!=Math.floor(e.contentRect.height))&&(this.canvasEl().nativeElement.width=Math.floor(e.contentRect.width),this.canvasEl().nativeElement.height=Math.floor(e.contentRect.height/2),this.currentValueLength=0,this.updateCanvas())}subscribeTimer(){this.timerRunning=this.TimersService.isRunning(this.timeName),this.timerSub=this.TimersService.createTimer(this.timeName,-3e3,100).subscribe(e=>{this.dataValue=e,e>0?this.zoneState=ie.Normal:e>-100?this.zoneState=ie.Alarm:e>-300?this.zoneState=ie.Warn:this.zoneState=ie.Normal,this.zoneState==ie.Alarm&&!this.flashInterval?this.flashInterval=setInterval(()=>{this.flashOn=!this.flashOn,this.updateCanvas()},500):this.zoneState!=ie.Alarm&&clearInterval(this.flashInterval),this.updateCanvas()})}startTimer(){this.TimersService.startTimer(this.timeName),this.timerRunning=!0}resetTimer(){this.unsubscribeTimer(),this.TimersService.deleteTimer(this.timeName),this.timerRunning=!1,this.subscribeTimer()}pauseTimer(){this.TimersService.stopTimer(this.timeName),this.timerRunning=!1}roundToMin(){let e=this.dataValue;this.dataValue<0&&(e=e*-1);let t=e%600;this.dataValue>0?t>300?this.TimersService.setTimer(this.timeName,this.dataValue+(600-t)):this.TimersService.setTimer(this.timeName,this.dataValue-t):t>300?this.TimersService.setTimer(this.timeName,this.dataValue-(600-t)):this.TimersService.setTimer(this.timeName,this.dataValue+t)}addOneMin(){this.TimersService.setTimer(this.timeName,this.dataValue+600)}remOneMin(){this.TimersService.setTimer(this.timeName,this.dataValue-600)}getColors(e){switch(e){case"contrast":this.textColor=this.theme().contrast,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"blue":this.textColor=this.theme().blue,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"green":this.textColor=this.theme().green,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"pink":this.textColor=this.theme().pink,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"orange":this.textColor=this.theme().orange,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"purple":this.textColor=this.theme().purple,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"grey":this.textColor=this.theme().grey,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"yellow":this.textColor=this.theme().yellow,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;default:this.textColor=this.theme().contrast,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break}}unsubscribeTimer(){this.timerSub?.unsubscribe()}ngOnDestroy(){this.timerSub?.unsubscribe(),this.canvasCtx&&this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),clearInterval(this.flashInterval),this.destroyDataStreams()}updateCanvas(){this.canvasCtx&&(this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),this.drawValue())}drawValue(){let e=this.canvasEl().nativeElement,t=Math.floor(e.width*.95),i=Math.floor(e.height),o;if(this.dataValue!=null){let a=Math.abs(this.dataValue),l=Math.floor(a/600),d=Math.floor(a%600/10),f=Math.floor(a%10);o=`${l}:${("0"+d).slice(-2)}.${f}`,this.dataValue<0&&(o=`-${o}`)}else o="--";switch(this.currentValueLength!==o.length&&(this.currentValueLength=o.length,this.valueFontSize=this.canvas.calculateOptimalFontSize(this.canvasCtx,o,t,i,"bold")),this.zoneState){case ie.Alarm:this.flashOn?this.canvasCtx.fillStyle=this.textColor:(this.canvas.drawRectangle(this.canvasCtx,0,0,e.width,e.height,this.warnColor),this.canvasCtx.fillStyle=this.textColor);break;case ie.Warn:this.canvasCtx.fillStyle=this.warnColor;break;default:this.canvasCtx.fillStyle=this.textColor}this.canvas.drawText(this.canvasCtx,o,e.width/2,e.height/2,t,i,"bold",this.canvasCtx.fillStyle,"center","middle")}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-racetimer"]],viewQuery:function(t,i){t&1&&we(i.canvasEl,kf,5),t&2&&Ze()},features:[pe],decls:17,vars:4,consts:[["canvasEl",""],[3,"configChange","config","id"],[1,"raceWrapper",3,"onResize"],["id","canvasValue",1,"canvas-size"],[1,"timerBarContainer"],[1,"timer-button-groups","timer-adjusters-group"],["mat-flat-button","",1,"timer-adjust-buttons",3,"click"],["mat-flat-button","",1,"timer-reset-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){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"div",2),F("onResize",function(l){return z(o),V(i.onResized(l))}),B(2,"canvas",3,0),v(4,"div",4)(5,"div",5)(6,"button",6),F("click",function(){return z(o),V(i.remOneMin())}),P(7," -1 "),C(),v(8,"button",7),F("click",function(){return z(o),V(i.resetTimer())}),P(9," Reset "),C(),v(10,"button",6),F("click",function(){return z(o),V(i.addOneMin())}),P(11," +1 "),C()(),v(12,"div",8),Ae(13,Tf,2,0,"button",9),Ae(14,xf,2,0,"button",10),v(15,"button",11),F("click",function(){return z(o),V(i.roundToMin())}),P(16," Synch "),C()()()()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(13),Oe(i.timerRunning?-1:13),D(),Oe(i.timerRunning?14:-1))},dependencies:[We,at,ot,Gt],styles:[".raceWrapper[_ngcontent-%COMP%]{height:100%;width:100%}.canvas-size[_ngcontent-%COMP%]{position:absolute;width:100%;height:50%;top:0;left:0;z-index:inherit}.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:8%;height:auto;width:calc(100% - 20px);margin:0 10px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:stretch;align-content:stretch;gap:20px}.timer-button-groups[_ngcontent-%COMP%]{min-width:247px;max-width:100%;--mat-button-filled-container-shape: 5px}.timer-adjusters-group[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1}.timer-countdown-group[_ngcontent-%COMP%]{flex-grow:3;flex-shrink:3}.timer-synch-button[_ngcontent-%COMP%]{width:calc(50% - 5px);margin-left:5px}.timer-start-button[_ngcontent-%COMP%]{width:calc(50% - 5px);margin-right:5px}.timer-reset-button[_ngcontent-%COMP%]{width:calc(40% + -0px);margin:0 10px}.timer-adjust-buttons[_ngcontent-%COMP%]{width:calc(30% - 10px)}"]})}return r})();var Ef=["gaugeBarAnimate"],xh=(()=>{class r{gaugeBarAnimate;displayName=G.required();displayNameColor=G.required();dataValue=G.required();unitLabel=G.required();barColor=G.required();barColorGradient=G.required();barColorBackground=G.required();gaugeValue=G.required();gaugeMinValue=G.required();gaugeMaxValue=G.required();newGaugeValue=1;oldGaugeValue=1;constructor(){}ngOnChanges(e){if(e.gaugeValue&&!e.gaugeValue.firstChange){let t=this.gaugeMaxValue()-this.gaugeMinValue(),i=t!==0?195/t:0;this.oldGaugeValue=this.newGaugeValue,this.newGaugeValue=(e.gaugeValue.currentValue-this.gaugeMinValue())*i,this.gaugeBarAnimate?.nativeElement&&requestAnimationFrame(()=>{this.gaugeBarAnimate?.nativeElement&&this.gaugeBarAnimate.nativeElement.beginElement()})}}ngOnDestroy(){this.gaugeBarAnimate=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["svg-simple-linear-gauge"]],viewQuery:function(t,i){if(t&1&&nt(Ef,5),t&2){let o;Ge(o=qe())&&(i.gaugeBarAnimate=o.first)}},inputs:{displayName:[1,"displayName"],displayNameColor:[1,"displayNameColor"],dataValue:[1,"dataValue"],unitLabel:[1,"unitLabel"],barColor:[1,"barColor"],barColorGradient:[1,"barColorGradient"],barColorBackground:[1,"barColorBackground"],gaugeValue:[1,"gaugeValue"],gaugeMinValue:[1,"gaugeMinValue"],gaugeMaxValue:[1,"gaugeMaxValue"]},features:[Gi],decls:24,vars:11,consts:[["gaugeBarAnimate",""],[0,"xmlns","osb","http://www.openswatchbook.org/uri/2009/osb",0,"xmlns","dc","http://purl.org/dc/elements/1.1/",0,"xmlns","cc","http://creativecommons.org/ns#",0,"xmlns","rdf","http://www.w3.org/1999/02/22-rdf-syntax-ns#",0,"xmlns","svg","http://www.w3.org/2000/svg","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink","viewBox","0 0 205 50","preserveAspectRatio","xMidYMid","version","1.1","id","svg8",1,"svg-simple-linear"],["id","defs2"],["id","gaugeBarGradient"],["id","stop849","offset","0",2,"stop-opacity","1"],["id","stop851","offset","0.40",2,"stop-opacity","0"],["id","linearGradient855","gradientTransform","translate(5,-30)","gradientUnits","userSpaceOnUse","y2","34.5","x2","-5","y1","34.5","x1","-6","href","#gaugeBarGradient"],["id","layer1",2,"display","inline"],["id","GaugeBackground","width","195","height","9","x","5","y","30","ry","0",2,"opacity","1","fill-opacity","1","stroke","none","stroke-width","0.265899","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","gaugeBar"],["id","gaugeValue","width","1","height","9","x","0","y","0","ry","0",2,"mix-blend-mode","normal","fill-opacity","1","stroke-width","0.0864229"],["id","gaugeValueGradient","transform","scale(-1,1)","width","1","height","9","x","-1","y","0","ry","0",2,"display","inline","opacity","1","mix-blend-mode","multiply","fill","url(#linearGradient855)","stroke-width","0.0864229"],[0,"xlink","href","#gaugeBar","transform","translate(5,30)"],["attributeName","transform","type","scale","begin","indefinite","dur","0.5s","additive","sum","fill","freeze"],["id","layer2",2,"display","inline"],[0,"xml","space","preserve","x","4.1731763","y","25.413595","id","displayNameText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["id","tspan1945","x","4.1731763","y","25.413595",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["text-anchor","end","id","gaugeTexts","y","25.293016","x","200.37138",0,"xml","space","preserve",1,"simpleLinear-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["y","25.293016","x","200.37138","id","valueText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["dy","-9","id","unitText",2,"text-transform","capitalize","font-size","9.87778px"]],template:function(t,i){t&1&&(Ke(),v(0,"svg",1)(1,"defs",2)(2,"linearGradient",3),B(3,"stop",4)(4,"stop",5),C(),B(5,"linearGradient",6),C(),v(6,"g",7),B(7,"rect",8),v(8,"defs")(9,"g",9),B(10,"rect",10)(11,"rect",11),C()(),v(12,"use",12),B(13,"animateTransform",13,0),C()(),v(15,"g",14)(16,"text",15)(17,"tspan",16),P(18),C()(),v(19,"text",17)(20,"tspan",18),P(21),C(),v(22,"tspan",19),P(23),C()()()()),t&2&&(D(3),ce("stop-color",i.barColorGradient()),D(),ce("stop-color",i.barColorGradient()),D(3),ce("fill",i.barColorBackground()),D(5),xe("fill",i.barColor()),D(),ce("from",i.oldGaugeValue+" 1")("to",i.newGaugeValue+" 1"),D(4),ce("fill",i.displayNameColor()),D(),pt(" ",i.displayName()),D(3),rt(i.dataValue()),D(2),rt(i.unitLabel()))},styles:["svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.simpleLinear-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}"]})}return r})();var Eh=(()=>{class r extends Ne{unitsLabel="";dataLabelValue="0";dataValue=0;barColor="";barColorGradient="";barColorBackground="";constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:"V",convertUnitTo:"V",sampleTime:500}},displayScale:{lower:0,upper:15,type:"linear"},gauge:{type:"simpleLinear",unitLabelFormat:"full"},numInt:1,numDecimal:2,color:"contrast",enableTimeout:!1,dataTimeout:5},be(()=>{this.theme()&&this.updateGaugeSettings()})}ngOnInit(){this.validateConfig(),this.startWidget()}startWidget(){this.widgetProperties.config.gauge.unitLabelFormat=="abr"?this.unitsLabel=this.widgetProperties.config.paths.gaugePath.convertUnitTo.substr(0,1):this.unitsLabel=this.widgetProperties.config.paths.gaugePath.convertUnitTo,this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{e.data.value==null?(this.dataValue=0,this.dataLabelValue="--"):(this.dataValue=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),this.dataLabelValue=this.dataValue.toFixed(this.widgetProperties.config.numDecimal))})}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.updateGaugeSettings()}updateGaugeSettings(){switch(this.barColorBackground=this.theme().background,this.widgetProperties.config.color){case"contrast":this.barColor=this.theme().contrast,this.barColorGradient=this.theme().contrastDimmer;break;case"blue":this.barColor=this.theme().blue,this.barColorGradient=this.theme().blueDimmer;break;case"green":this.barColor=this.theme().green,this.barColorGradient=this.theme().greenDimmer;break;case"pink":this.barColor=this.theme().pink,this.barColorGradient=this.theme().pinkDimmer;break;case"orange":this.barColor=this.theme().orange,this.barColorGradient=this.theme().orangeDimmer;break;case"purple":this.barColor=this.theme().purple,this.barColorGradient=this.theme().purpleDimmer;break;case"grey":this.barColor=this.theme().grey,this.barColorGradient=this.theme().greyDimmer;break;case"yellow":this.barColor=this.theme().yellow,this.barColorGradient=this.theme().yellowDimmer;break;default:this.barColor=this.theme().contrast,this.barColorGradient=this.theme().contrastDimmer}}ngOnDestroy(){this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-simple-linear"]],features:[pe],decls:2,vars:12,consts:[[3,"configChange","config","id"],[1,"simpleLinearGaugeContainer",3,"displayName","displayNameColor","unitLabel","dataValue","barColor","barColorGradient","barColorBackground","gaugeValue","gaugeMaxValue","gaugeMinValue"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Me("configChange",function(a){return Pe(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),F("configChange",function(a){return i.updateConfig(a)}),B(1,"svg-simple-linear-gauge",1),C()),t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("displayName",i.widgetProperties.config.displayName)("displayNameColor",i.theme().contrastDim)("unitLabel",i.unitsLabel)("dataValue",i.dataLabelValue)("barColor",i.barColor)("barColorGradient",i.barColorGradient)("barColorBackground",i.barColorBackground)("gaugeValue",i.dataLabelValue)("gaugeMaxValue",i.widgetProperties.config.displayScale.upper)("gaugeMinValue",i.widgetProperties.config.displayScale.lower))},dependencies:[We,xh],styles:[".simpleLinearGaugeContainer[_ngcontent-%COMP%]{display:block;position:relative;height:100%;width:100%;padding:0}"]})}return r})();function Df(r,n){if(r&1){let e=ee();v(0,"h3"),P(1,"Getting Started"),C(),v(2,"p"),P(3,"Welcome to KIP! Here are some basic gestures to help you navigate the application:"),C(),v(4,"table")(5,"tr")(6,"th"),P(7,"Actions"),C(),v(8,"th"),P(9,"Gestures"),C(),v(10,"th"),P(11,"Keyboard Shortcuts"),C()(),v(12,"tr")(13,"td"),P(14,"Cycle through dashboards"),C(),v(15,"td"),P(16,"Swipe Up/Down"),C(),v(17,"td"),P(18,"Shift + Ctrl + Up/Down Arrow"),C()(),v(19,"tr")(20,"td"),P(21,"Open Actions menu"),C(),v(22,"td"),P(23,"Swipe left"),C(),v(24,"td"),P(25,"Shift + Ctrl + Right Arrow"),C()(),v(26,"tr")(27,"td"),P(28,"Open Notification menu"),C(),v(29,"td"),P(30,"Swipe right"),C(),v(31,"td"),P(32,"Shift + Ctrl + Left Arrow"),C()()(),v(33,"h3"),P(34,"Log in to Signal K"),C(),v(35,"p"),P(36," The first step is to configure Signal K server authentication ("),v(37,"i"),P(38,"a pre-existing Signal K server user/password is required"),C(),P(39,"). Swipe left to open the Actions menu, hit Settings, toggle Login to server and enter you pre-existing Signal K credentials. "),C(),v(40,"h3"),P(41,"Option 1: Load Demonstration Dashboards"),C(),v(42,"p"),P(43," Try the sample dashboards using data from your server. : "),B(44,"br"),v(45,"button",2),F("click",function(){z(e);let i=re();return V(i.loadDemoConfig())}),P(46,"Load Demo"),C()(),v(47,"h3"),P(48,"Option 2: Create Your Own Layout"),C(),v(49,"p"),P(50,' The text you are reading is actually a full screen widget in a dashboard. Dashboards are "Locked" by default to prevent accidental modifications. To edit a dashboard, swipe left and hit the bottom unlock menu button. You can later add and manage dashboards using the Dashboards page from the Actions menu. '),C(),v(51,"p")(52,"strong"),P(53,"Try editing the Dashboard now to receive further instructions!"),C()()}}function Pf(r,n){r&1&&(v(0,"h3"),P(1,"Build Your Layout"),C(),v(2,"p"),P(3," First, resize this Tutorial widget using the now visible dashed borders so it does not take up all the screen. You can delete this Tutorial widget later when you are done with the instructions. Then, to add a widget: in an empty dashboard area, press and hold. This will open the widget selection panel. Here you can choose from a variety of widgets. "),C(),v(4,"p"),P(5,"To manage widgets, you can:"),C(),v(6,"ul")(7,"li")(8,"strong"),P(9,"Touch and drag"),C(),P(10," to move widgets"),C(),v(11,"li")(12,"strong"),P(13,"Drag corners and sides"),C(),P(14," to resize widgets"),C(),v(15,"li")(16,"strong"),P(17,"Double Tap"),C(),P(18," on a widget to configure it"),C(),v(19,"li")(20,"strong"),P(21,"Press and Hold"),C(),P(22," on a widget to delete or duplicate widgets"),C()(),v(23,"h3"),P(24,"Exit Dashboard Edit Mode"),C(),v(25,"p"),P(26,"Use the Save or Cancel buttons in the lower right corner to either persist your changes or revert changes."),C(),v(27,"h3"),P(28,"Add More Dashboards"),C(),v(29,"p"),P(30,"Swipe left and hit the Dashboards button. From this page you can add, rename, position and duplicate dashboards."),C())}var Dh=(()=>{class r extends Ne{dashboard=M(ct);settings=M(Ht);constructor(){super()}loadDemoConfig(){this.settings.loadDemoConfig()}startWidget(){}updateConfig(){}ngOnDestroy(){this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-tutorial"]],features:[pe],decls:4,vars:3,consts:[[3,"configChange","config","id"],[1,"tutorial-container"],["mat-raised-button","",2,"margin-left","15px",3,"click"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Me("configChange",function(a){return Pe(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),F("configChange",function(){return i.updateConfig()}),v(1,"div",1),Ae(2,Df,54,0)(3,Pf,31,0),C()()),t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(2),Oe(i.dashboard.isDashboardStatic()?2:3))},dependencies:[We,Gt],styles:[".tutorial-container[_ngcontent-%COMP%]{position:absolute;top:0;left:0;display:block;height:100%;width:100%;overflow:none}.tutorial-container[_ngcontent-%COMP%]{padding:0 15px}table[_ngcontent-%COMP%], th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-on-background);border-collapse:collapse}tr[_ngcontent-%COMP%]:nth-child(2n){background-color:var(--mat-sys-surface-container-high)}"]})}return r})();var Mf=["rotatingDial"],Af=["awaIndicator"],Of=["twaIndicator"],If=["wptIndicator"],Rf=["setIndicator"],Nf=["cogIndicator"],Ph=([r,n],[e,t],[i,o])=>(Math.atan2(o-t,i-e)-Math.atan2(n-t,r-e)+3*Math.PI)%(2*Math.PI)-Math.PI,Mh=(()=>{class r{rotatingDial=Ce.required("rotatingDial");awaIndicator=Ce.required("awaIndicator");twaIndicator=Ce.required("twaIndicator");wptIndicator=Ce.required("wptIndicator");setIndicator=Ce.required("setIndicator");cogIndicator=Ce.required("cogIndicator");compassHeading=G.required();courseOverGroundAngle=G(void 0);courseOverGroundEnabled=G.required();trueWindAngle=G.required();twsEnabled=G.required();trueWindSpeed=G.required();trueWindSpeedUnit=G.required();appWindAngle=G.required();awsEnabled=G.required();appWindSpeed=G.required();appWindSpeedUnit=G.required();laylineAngle=G(void 0);closeHauledLineEnabled=G.required();sailSetupEnabled=G.required();windSectorEnabled=G.required();driftEnabled=G.required();driftSet=G(void 0);driftFlow=G(void 0);waypointAngle=G(void 0);waypointEnabled=G.required();trueWindMinHistoric=G(void 0);trueWindMidHistoric=G(void 0);trueWindMaxHistoric=G(void 0);compass={oldValue:0,newValue:0};twa={oldValue:0,newValue:0};awa={oldValue:0,newValue:0};wpt={oldValue:0,newValue:0};cog={oldValue:0,newValue:0};set={oldValue:0,newValue:0};headingValue="--";appWindSpeedDisplay=xi(()=>{let e=this.appWindSpeed();return e==null?"--":e.toFixed(1)});trueWindSpeedDisplay=xi(()=>{let e=this.trueWindSpeed();return e==null?"--":e.toFixed(1)});trueWindHeading=0;waypointActive=Ye(!1);flow=xi(()=>{let e=this.driftFlow();return e==null?"--":e.toFixed(1)});portLaylinePrev=0;stbdLaylinePrev=0;portLaylineAnimId=null;stbdLaylineAnimId=null;closeHauledLinePortPath="M 500,500 500,500";closeHauledLineStbdPath="M 500,500 500,500";portSectorPrev={min:0,mid:0,max:0};stbdSectorPrev={min:0,mid:0,max:0};portSectorAnimId=null;stbdSectorAnimId=null;portWindSectorPath="";stbdWindSectorPath="";animationFrameIds=new WeakMap;CENTER=500;RADIUS=350;ANIMATION_DURATION=1e3;constructor(){be(()=>{let e=this.waypointEnabled();Et(()=>{this.waypointActive.set(e)})}),be(()=>{let e=parseFloat(this.compassHeading().toFixed(0));e!==null&&Et(()=>{this.compass.oldValue=this.compass.newValue,this.compass.newValue=e,this.headingValue=e.toString(),this.rotatingDial()?.nativeElement&&(Pi(this.rotatingDial().nativeElement,-this.compass.oldValue,-this.compass.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds),this.updateCloseHauledLines(),this.updateWindSectors())})}),be(()=>{let e=parseFloat(this.courseOverGroundAngle().toFixed(0));e!=null&&Et(()=>{this.cog.oldValue=this.cog.newValue,this.cog.newValue=e-this.compass.newValue,this.cogIndicator()?.nativeElement&&Pi(this.cogIndicator().nativeElement,this.cog.oldValue,this.cog.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})}),be(()=>{let e=this.waypointAngle();Et(()=>{if(!e){this.waypointActive.set(!1);return}this.waypointEnabled()?this.waypointActive.set(!0):this.waypointActive.set(!1),this.wpt.oldValue=this.wpt.newValue,this.wpt.newValue=e,this.wptIndicator()?.nativeElement&&Pi(this.wptIndicator().nativeElement,this.wpt.oldValue,this.wpt.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})}),be(()=>{let e=parseFloat(this.appWindAngle().toFixed(0));e!=null&&Et(()=>{this.awa.oldValue=this.awa.newValue,this.awa.newValue=e,this.awaIndicator()?.nativeElement&&Pi(this.awaIndicator().nativeElement,this.awa.oldValue,this.awa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})}),be(()=>{let e=parseFloat(this.trueWindAngle().toFixed(0));e!=null&&Et(()=>{this.twa.oldValue=this.twa.newValue,this.trueWindHeading=e,this.twa.newValue=this.addHeading(this.trueWindHeading,this.compass.newValue*-1),this.twaIndicator()?.nativeElement&&(Pi(this.twaIndicator().nativeElement,this.twa.oldValue,this.twa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds),this.updateCloseHauledLines())})}),be(()=>{let e=parseFloat(this.driftSet().toFixed(0));e!=null&&Et(()=>{this.set.oldValue=this.set.newValue,this.set.newValue=e,this.setIndicator()?.nativeElement&&Pi(this.setIndicator().nativeElement,this.set.oldValue,this.set.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})})}updateCloseHauledLines(){if(!this.closeHauledLineEnabled())return;let e=this.addHeading(Number(this.awa.newValue),this.laylineAngle()*-1);this.animateLayline(this.portLaylinePrev,e,!0),this.portLaylinePrev=e;let t=this.addHeading(Number(this.awa.newValue),this.laylineAngle());this.animateLayline(this.stbdLaylinePrev,t,!1),this.stbdLaylinePrev=t}animateLayline(e,t,i){i&&this.portLaylineAnimId&&cancelAnimationFrame(this.portLaylineAnimId),!i&&this.stbdLaylineAnimId&&cancelAnimationFrame(this.stbdLaylineAnimId);let o=this.ANIMATION_DURATION,a=performance.now(),l=s=>s<.5?4*s*s*s:1-Math.pow(-2*s+2,3)/2,d=s=>{let c=s-a,m=Math.min(c/o,1),y=l(m),_=t-e;_>180&&(_-=360),_<-180&&(_+=360);let E=(e+_*y+360)%360*Math.PI/180,L=Math.floor(this.RADIUS*Math.sin(E)+this.CENTER),Y=Math.floor(this.RADIUS*Math.cos(E)*-1+this.CENTER);if(i?this.closeHauledLinePortPath=`M ${this.CENTER},${this.CENTER} L ${L},${Y}`:this.closeHauledLineStbdPath=`M ${this.CENTER},${this.CENTER} L ${L},${Y}`,m<1){let te=requestAnimationFrame(d);i?this.portLaylineAnimId=te:this.stbdLaylineAnimId=te}else i?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null},f=requestAnimationFrame(d);i?this.portLaylineAnimId=f:this.stbdLaylineAnimId=f}windSectorsInitialized=!1;updateWindSectors(){if(!this.windSectorEnabled()||this.trueWindMinHistoric()==null||this.trueWindMidHistoric()==null||this.trueWindMaxHistoric()==null)return;let e={min:this.trueWindMinHistoric(),mid:this.trueWindMidHistoric(),max:this.trueWindMaxHistoric()},t={min:this.trueWindMinHistoric(),mid:this.trueWindMidHistoric(),max:this.trueWindMaxHistoric()};if(!this.windSectorsInitialized){this.portSectorPrev=e,this.stbdSectorPrev=t,this.windSectorsInitialized=!0,this.animateWindSector(e,e,!0),this.animateWindSector(t,t,!1);return}this.animateWindSector(this.portSectorPrev,e,!0),this.animateWindSector(this.stbdSectorPrev,t,!1),this.portSectorPrev=e,this.stbdSectorPrev=t}animateWindSector(e,t,i){i&&this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),!i&&this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId);let o=this.ANIMATION_DURATION,a=performance.now(),l=s=>s<.5?4*s*s*s:1-Math.pow(-2*s+2,3)/2,d=s=>{let c=s-a,m=Math.min(c/o,1),y=l(m),_=(At,Wi)=>At+(Wi-At)*y,T=_(e.min,t.min),E=_(e.mid,t.mid),L=_(e.max,t.max),Y=this.addHeading(this.addHeading(T,Number(this.compass.newValue)*-1),this.laylineAngle()*(i?-1:1)),te=this.addHeading(this.addHeading(E,Number(this.compass.newValue)*-1),this.laylineAngle()*(i?-1:1)),_e=this.addHeading(this.addHeading(L,Number(this.compass.newValue)*-1),this.laylineAngle()*(i?-1:1)),He=this.RADIUS*Math.sin(Y*Math.PI/180)+this.CENTER,je=this.RADIUS*Math.cos(Y*Math.PI/180)*-1+this.CENTER,Je=this.RADIUS*Math.sin(te*Math.PI/180)+this.CENTER,se=this.RADIUS*Math.cos(te*Math.PI/180)*-1+this.CENTER,ht=this.RADIUS*Math.sin(_e*Math.PI/180)+this.CENTER,lt=this.RADIUS*Math.cos(_e*Math.PI/180)*-1+this.CENTER,Wt=Math.abs(Ph([He,je],[Je,se],[ht,lt]))>Math.PI/2?0:1,ft=Ph([ht,lt],[He,je],[Je,se])>0?0:1,ut=`M ${this.CENTER},${this.CENTER} L ${He},${je} A ${this.RADIUS},${this.RADIUS} 0 ${Wt} ${ft} ${ht},${lt} z`;if(i?this.portWindSectorPath=ut:this.stbdWindSectorPath=ut,m<1){let At=requestAnimationFrame(d);i?this.portSectorAnimId=At:this.stbdSectorAnimId=At}else i?this.portSectorAnimId=null:this.stbdSectorAnimId=null},f=requestAnimationFrame(d);i?this.portSectorAnimId=f:this.stbdSectorAnimId=f}addHeading(e=0,t=0){let i=e+t;for(;i>359;)i=i-359;for(;i<0;)i=i+359;return i}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["app-svg-wind"]],viewQuery:function(t,i){t&1&&(we(i.rotatingDial,Mf,5),we(i.awaIndicator,Af,5),we(i.twaIndicator,Of,5),we(i.wptIndicator,If,5),we(i.setIndicator,Rf,5),we(i.cogIndicator,Nf,5)),t&2&&Ze(6)},inputs:{compassHeading:[1,"compassHeading"],courseOverGroundAngle:[1,"courseOverGroundAngle"],courseOverGroundEnabled:[1,"courseOverGroundEnabled"],trueWindAngle:[1,"trueWindAngle"],twsEnabled:[1,"twsEnabled"],trueWindSpeed:[1,"trueWindSpeed"],trueWindSpeedUnit:[1,"trueWindSpeedUnit"],appWindAngle:[1,"appWindAngle"],awsEnabled:[1,"awsEnabled"],appWindSpeed:[1,"appWindSpeed"],appWindSpeedUnit:[1,"appWindSpeedUnit"],laylineAngle:[1,"laylineAngle"],closeHauledLineEnabled:[1,"closeHauledLineEnabled"],sailSetupEnabled:[1,"sailSetupEnabled"],windSectorEnabled:[1,"windSectorEnabled"],driftEnabled:[1,"driftEnabled"],driftSet:[1,"driftSet"],driftFlow:[1,"driftFlow"],waypointAngle:[1,"waypointAngle"],waypointEnabled:[1,"waypointEnabled"],trueWindMinHistoric:[1,"trueWindMinHistoric"],trueWindMidHistoric:[1,"trueWindMidHistoric"],trueWindMaxHistoric:[1,"trueWindMaxHistoric"]},decls:156,vars:32,consts:[["rotatingDial",""],["wptIndicator",""],["setIndicator",""],["cogIndicator",""],["awaIndicator",""],["twaIndicator",""],["viewBox","0 0 1000 1000"],["id","defs1"],["id","linearGradient18"],["offset","0",1,"boat",2,"stop-opacity","0.71372495"],["offset","1",1,"boat",2,"stop-opacity","0"],["id","linearGradient16"],["id","linearGradient13"],["offset","0.41176471",1,"drift-arrow",2,"stop-opacity","1"],["offset","1",1,"drift-arrow",2,"stop-opacity","0"],["id","swatch4"],["offset","0","id","stop4",2,"stop-color","#000000","stop-opacity","1"],["clipPathUnits","userSpaceOnUse","id","clipPath16"],["id","ellipse16","cx","311.24539","cy","-1516.3778","rx","194.27342","ry","181.83022",2,"display","inline","fill","#9a9300","fill-opacity","1","stroke","none","stroke-width","55","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],[0,"xlink","href","#linearGradient13","id","linearGradient14","x1","453.48047","y1","583.62891","x2","638.11328","y2","583.62891","gradientUnits","userSpaceOnUse","gradientTransform","matrix(0.00723393,1.2388183,-1.0538241,0.00615367,1111.2051,-179.73465)"],[0,"xlink","href","#linearGradient16","id","linearGradient17","x1","-502.04896","y1","439.35551","x2","-316","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],[0,"xlink","href","#linearGradient18","id","linearGradient19","x1","495.83999","y1","439.35551","x2","681.88895","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],["id","layerBackground",2,"display","inline"],["id","boat",2,"display","inline"],["id","portSide","d","M 498.75049,208.89453 A 267.09439,554.67401 0 0 1 678.45974,767.81661",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient19)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","starboardSide","d","m -499.13846,208.89453 a 267.09439,554.67401 0 0 1 179.70925,558.92208","transform","scale(-1,1)",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient17)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","LayerLayline"],["id","PortLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","StbdLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","LayerWindShift"],["id","portSectorShift",1,"wind-sector-port",2,"fill-opacity","0.5","stroke","none"],["id","StbdSectorShift",1,"wind-sector-stbd",2,"fill-opacity","0.5","stroke","none"],["id","layerCompass"],["id","fixedDial"],["id","portStarboardBackground","d","M 499.99997,10.520805 A 489.47916,489.47916 0 0 0 10.520805,499.99997 489.47916,489.47916 0 0 0 499.99997,989.47913 489.47916,489.47916 0 0 0 989.47913,499.99997 489.47916,489.47916 0 0 0 499.99997,10.520805 Z m 0,132.291665 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"fixed-dial-background",2,"display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","port","d","M 93.283801,265.18231 A 469.63541,469.63541 0 0 1 339.37522,58.687079",1,"port",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","starboard","d","M 660.62476,58.687069 A 469.63541,469.63541 0 0 1 906.71619,265.18228",1,"starboard",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","barsAndText",1,"contrast-stroke",2,"display","inline"],["d","m 416.35095,19.837399 2.78142,15.77426","id","path199",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 334.23173,41.658798 5.47834,15.051615","id","path200",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 260.27336,81.806174 12.55151,21.739856","id","path37",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 187.44581,126.00035 10.29591,12.2702","id","path197",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 127.23918,185.95785 12.27019,10.29591","id","path198",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 83.252815,257.66724 21.739865,12.55151","id","path166",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 42.289518,332.39273 15.05162,5.47835","id","path195",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 20.127799,414.42077 15.774251,2.78142","id","path196",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 17.879075,498.47765 H 42.982096","id","path167",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 19.776759,583.71187 15.77426,-2.78142","id","path193",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 41.598167,665.8311 15.051615,-5.47834","id","path194",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 81.668963,739.71246 103.40883,727.16095","id","path168",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 125.93981,812.61701 12.2702,-10.29591","id","path191",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 185.89732,872.82365 10.29591,-12.27019","id","path192",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 257.53004,916.73298 12.55151,-21.73985","id","path169",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 332.33219,957.7732 5.47835,-15.05162","id","path189",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 414.36024,979.93493 2.78142,-15.77425","id","path190",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 498.34046,982.10672 V 957.0037","id","path170",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 583.65133,980.28596 580.86991,964.5117","id","path187",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 665.77057,958.46456 -5.47834,-15.05161","id","path188",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 739.57526,918.31683 727.02375,896.57698","id","path171",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 812.55647,874.12301 802.26056,861.85282","id","path185",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 872.76312,814.16551 860.49293,803.8696","id","path186",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 916.59579,742.45577 894.85593,729.90426","id","path172",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 957.71266,667.73063 -15.05161,-5.47834","id","path183",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 979.8744,585.70259 -15.77425,-2.78142","id","path184",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 981.96954,501.64535 -25.10304,10e-6","id","path173",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 980.22542,416.41149 -15.77425,2.78143","id","path181",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 958.40403,334.29226 -15.05161,5.47834","id","path182",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 918.17964,260.41055 -21.73986,12.55151","id","path174",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 874.06247,187.50636 -12.27018,10.29591","id","path180",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 817.34594,130.05494 -10.40259,12.17987","id","path179",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 742.31857,83.390025 729.76706,105.12988","id","path175",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 667.6701,42.350172 -5.47834,15.051615","id","path178",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 585.64206,20.188432 -2.78142,15.77425","id","path176",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 501.50816,18.016286 V 43.119307","id","path177",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","rotatingDialBackplate","d","M 499.99997,50.208304 A 449.79166,449.79166 0 0 0 50.208304,499.99997 449.79166,449.79166 0 0 0 499.99997,949.79163 449.79166,449.79166 0 0 0 949.79163,499.99997 449.79166,449.79166 0 0 0 499.99997,50.208304 Z m 0,92.604166 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"rotating-dial-Backplate",2,"display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],[0,"xml","space","preserve","x","181.91386","y","284.25186","id","text3","transform","rotate(-30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan3","x","181.91386","y","284.25186",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-183.53558","y","283.74811","id","text14","transform","rotate(-60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan14","x","-183.53558","y","283.74811",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-499.70761","y","100.95312","id","text15","transform","rotate(-90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan15","x","-499.70761","y","100.95312",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.66119","y","-216.36243","id","text16","transform","rotate(-120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["x","-681.66119","y","-216.36243","id","tspan25",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.06616","y","-581.71271","id","text17","transform","rotate(-150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan17","x","-681.06616","y","-581.71271",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-498.3313","y","-897.40875","id","text18","transform","scale(-1)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan18","x","-498.3313","y","-897.40875",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-184.41313","y","-1080.8452","id","text19","transform","rotate(150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan19","x","-184.41313","y","-1080.8452",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","181.57225","y","-1080.8853","id","text20","transform","rotate(120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan20","x","181.57225","y","-1080.8853",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","501.42661","y","-896.93701","id","text21","transform","rotate(90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan21","x","501.42661","y","-896.93701",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","682.35815","y","-579.63336","id","text22","transform","rotate(60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan22","x","682.35815","y","-579.63336",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","681.81525","y","-214.27321","id","text23","transform","rotate(30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan23","x","681.81525","y","-214.27321",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","500.15503","y","101.96342","id","text24",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan24","x","500.15503","y","101.96342",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],["clip-path","url(#clipPath16)","d","m 416.36313,-1521.3937 c 371.15015,24.6522 731.95257,192.9774 983.98757,467.456 227.2972,244.24389 363.1732,572.3808 369.4045,906.42978 15.9331,499.10271 -269.2071,986.17861 -700.5178,1232.88522 -485.08308,290.4843 -1134.555606,269.7346 -1599.2788,-52.7169 -404.5062,-269.24461 -653.2224,-759.35388 -614.1746,-1245.84043 30.2148,-487.61814 344.18931,-937.89997 780.52695,-1152.15867 176.96718,-89.2092 371.8823084,-142.3103 569.54914,-156.0363","transform","matrix(0.28310615,0,0,0.32000828,411.88452,661.64815)",1,"next-waypoint-bar",2,"display","inline","fill","none","stroke-width","30","stroke-miterlimit","0"],["id","path6341","cx","500","cy","175.00002","rx","17.361122","ry","17.361118",1,"next-waypoint",2,"display","inline","fill","none","stroke-width","15.2778","stroke-dasharray","none"],["id","setArrow","d","m 563.93337,480.60403 -64.4901,-94.9673 -63.37665,95.71396 58.48691,-30.71299 0.77713,133.08346 c 0.0992,16.99331 2.52916,30.65913 5.44822,30.64209 2.91911,-0.0171 5.18926,-13.71032 5.09001,-30.70362 l -0.77782,-133.20444 z",2,"fill","url(#linearGradient14)","stroke","none","stroke-width","1.18648"],["id","layerCounter"],["id","twsCounter"],[0,"xml","space","preserve","x","904.27722","y","150.88913","id","text43",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","903.84814","y","114.73512","id","text42",1,"true-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","905.25897","y","52.894646","id","text41",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","awsCounter"],[0,"xml","space","preserve","x","94.554222","y","150.88913","id","text39",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","94.580925","y","114.63747","id","text40",1,"app-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","95.967644","y","52.894646","id","text39-7",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","layerCurrent"],["id","text11",0,"xml","space","preserve","x","499.78842","y","523.55145",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["id","layerIndicators",2,"display","inline"],["d","m 506.20767,172.99458 a 6.3888631,8.8250643 0 0 1 -6.38888,8.82508 6.3888631,8.8250643 0 0 1 -6.38888,-8.82508 6.3888631,8.8250643 0 0 1 6.38888,-8.82509 6.3888631,8.8250643 0 0 1 6.38888,8.82509 z M 476.25472,30.811298 493.47058,13.265068 c 3.6173,-3.6867571 9.44162,-3.6867571 13.05892,0 l 17.21586,17.546106 c 3.6173,3.686743 3.6173,9.622786 0,13.309544 l -17.21595,17.54623 c -3.61721,3.686757 -9.44153,3.686757 -13.05893,0 L 476.25472,44.120841 c -3.6174,-3.686743 -3.6174,-9.622924 0,-13.309543 z m 17.20533,-16.510116 h 12.77766 V 173.26408 h -12.77766 z",1,"course-over-ground",2,"stroke-width","14.7329","stroke-linecap","square"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.7935953,0,0,0.92686935,101.84848,11.000842)",1,"app-wind",2,"display","inline","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110",1,"card-color",2,"font-weight","bold","font-size","70px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.60410307,0,0,0.70555435,196.91787,21.152867)",1,"true-wind",2,"display","inline","stroke","none","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110","id","text10",1,"card-color",2,"font-weight","bold","font-size","60px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["id","layerHeading",2,"display","inline"],["id","rect1","width","256.47919","height","108.5428","x","371.76041","y","10.805443","rx","23.757372",1,"heading-background",2,"stroke-width","4.43107","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","0.509946"],["x","511.29395","y","102.86786",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","106.667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","5","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"]],template:function(t,i){t&1&&(Ke(),v(0,"svg",6)(1,"defs",7)(2,"linearGradient",8),B(3,"stop",9)(4,"stop",10),C(),v(5,"linearGradient",11),B(6,"stop",9)(7,"stop",10),C(),v(8,"linearGradient",12),B(9,"stop",13)(10,"stop",14),C(),v(11,"linearGradient",15),B(12,"stop",16),C(),v(13,"clipPath",17),B(14,"ellipse",18),C(),B(15,"linearGradient",19)(16,"linearGradient",20)(17,"linearGradient",21),C(),v(18,"g",22)(19,"g",23),B(20,"path",24)(21,"path",25),C()(),v(22,"g",26),B(23,"path",27)(24,"path",28),C(),v(25,"g",29),B(26,"path",30)(27,"path",31),C(),v(28,"g",32)(29,"g",33),B(30,"path",34)(31,"path",35)(32,"path",36),C(),v(33,"g",null,0)(35,"g",37),B(36,"path",38)(37,"path",39)(38,"path",40)(39,"path",41)(40,"path",42)(41,"path",43)(42,"path",44)(43,"path",45)(44,"path",46)(45,"path",47)(46,"path",48)(47,"path",49)(48,"path",50)(49,"path",51)(50,"path",52)(51,"path",53)(52,"path",54)(53,"path",55)(54,"path",56)(55,"path",57)(56,"path",58)(57,"path",59)(58,"path",60)(59,"path",61)(60,"path",62)(61,"path",63)(62,"path",64)(63,"path",65)(64,"path",66)(65,"path",67)(66,"path",68)(67,"path",69)(68,"path",70)(69,"path",71)(70,"path",72)(71,"path",73)(72,"path",74),v(73,"text",75)(74,"tspan",76),P(75,"330"),C()(),v(76,"text",77)(77,"tspan",78),P(78,"300"),C()(),v(79,"text",79)(80,"tspan",80),P(81,"W"),C()(),v(82,"text",81)(83,"tspan",82),P(84,"240"),C()(),v(85,"text",83)(86,"tspan",84),P(87,"210"),C()(),v(88,"text",85)(89,"tspan",86),P(90,"S"),C()(),v(91,"text",87)(92,"tspan",88),P(93,"150"),C()(),v(94,"text",89)(95,"tspan",90),P(96,"120"),C()(),v(97,"text",91)(98,"tspan",92),P(99,"E"),C()(),v(100,"text",93)(101,"tspan",94),P(102,"60"),C()(),v(103,"text",95)(104,"tspan",96),P(105,"30"),C()(),v(106,"text",97)(107,"tspan",98),P(108,"N"),C()()(),v(109,"g",null,1),B(111,"path",99)(112,"ellipse",100),C(),v(113,"g",null,2),B(115,"path",101),C()()(),v(116,"g",102)(117,"g",103)(118,"text",104),P(119),C(),v(120,"text",105),P(121),C(),v(122,"text",106),P(123,"TWS"),C()(),v(124,"g",107)(125,"text",108),P(126),C(),v(127,"text",109),P(128),C(),v(129,"text",110),P(130,"AWS"),C()()(),v(131,"g",111)(132,"text",112),P(133),C()(),v(134,"g",113)(135,"g",null,3),B(137,"path",114),C(),v(138,"g",null,4),B(140,"path",115),v(141,"text",116),P(142,"A"),C()(),v(143,"g",null,5),B(145,"path",117),v(146,"text",118),P(147,"T"),C(),P(148,` attributeName="transform" type="rotate" [attr.from]="trueWind.oldDegreeIndicator+' 500 500'" [attr.to]="trueWind.newDegreeIndicator+' 500 500'" begin="indefinite" dur="0.5s" keySplines="0.25 0.1 0.25 1" keyTimes="0;1" calcMode="spline" additive="replace" fill="freeze" /> `),C()(),v(149,"g",119),B(150,"rect",120),v(151,"text",121)(152,"tspan"),P(153),v(154,"tspan"),P(155,"\xB0"),C()()()()()),t&2&&(D(22),xe("display",i.closeHauledLineEnabled()?"inline":"none"),D(),xe("display",i.trueWindAngle()!=null?"inline":"none"),ce("d",i.closeHauledLineStbdPath),D(),xe("display",i.trueWindAngle()!=null?"inline":"none"),ce("d",i.closeHauledLinePortPath),D(),xe("display",i.windSectorEnabled()?"inline":"none"),D(),xe("display",i.portWindSectorPath!="none"?"inline":"none"),ce("d",i.portWindSectorPath),D(),xe("display",i.portWindSectorPath!="none"?"inline":"none"),ce("d",i.stbdWindSectorPath),D(82),ce("display",i.waypointActive()?"inline":"none"),D(4),xe("display",i.driftEnabled()?"inline":"none"),D(4),xe("display",i.twsEnabled()?"inline":"none"),D(2),rt(i.trueWindSpeedUnit()),D(2),rt(i.trueWindSpeedDisplay()),D(3),xe("display",i.awsEnabled()?"inline":"none"),D(2),rt(i.appWindSpeedUnit()),D(2),rt(i.appWindSpeedDisplay()),D(3),xe("display",i.driftEnabled()?"inline":"none"),D(2),rt(i.flow()),D(2),ce("display",i.courseOverGroundEnabled()?"inline":"none"),D(18),rt(i.headingValue))},styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.fixed-dial-background[_ngcontent-%COMP%]{fill:var(--kip-grey-color)}.rotating-dial-Backplate[_ngcontent-%COMP%]{fill:var(--mat-sys-background)}.starboard[_ngcontent-%COMP%]{stroke:var(--kip-starboard-color)}.port[_ngcontent-%COMP%]{stroke:var(--kip-port-color)}.heading-background[_ngcontent-%COMP%]{stroke:var(--kip-grey-color);fill:var(--kip-widget-card-background-color)}.boat[_ngcontent-%COMP%]{stop-color:var(--kip-grey-color)!important}.contrast-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}.contrast-stroke[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.card-color[_ngcontent-%COMP%]{fill:var(--kip-widget-card-background-color)}.true-wind[_ngcontent-%COMP%]{fill:var(--kip-yellow-color)}.true-wind-label[_ngcontent-%COMP%]{fill:var(--kip-yellow-dim-color)}.app-wind[_ngcontent-%COMP%]{fill:var(--kip-orange-color)}.app-wind-label[_ngcontent-%COMP%]{fill:var(--kip-orange-dim-color)}.course-over-ground[_ngcontent-%COMP%]{fill:var(--kip-pink-color)}.next-waypoint[_ngcontent-%COMP%]{stroke:var(--kip-green-color)}.next-waypoint-bar[_ngcontent-%COMP%]{stroke:var(--kip-grey-color)}.laylines[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.wind-sector-port[_ngcontent-%COMP%]{fill:var(--kip-port-color)}.wind-sector-stbd[_ngcontent-%COMP%]{fill:var(--kip-starboard-color)}.drift-arrow[_ngcontent-%COMP%]{stop-color:var(--kip-blue-color)}"]})}return r})();var Ah=(()=>{class r extends Ne{zones=M(yt);currentHeading=0;courseOverGroundAngle=0;appWindAngle=0;appWindSpeed=0;appWindSpeedUnit="";trueWindAngle=0;trueWindSpeed=0;trueWindSpeedUnit="";driftFlow=0;driftSet=0;waypointAngle=0;historicalWindDirection=[];trueWindMinHistoric;trueWindMidHistoric;trueWindMaxHistoric;windSectorObservableSub=null;constructor(){super(),this.defaultConfig={filterSelfPaths:!0,paths:{headingPath:{description:"True Heading",path:"self.navigation.headingTrue",source:"default",pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},appWindAngle:{description:"Apparent Wind Angle",path:"self.environment.wind.angleApparent",source:"default",pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},appWindSpeed:{description:"Apparent Wind Speed",path:"self.environment.wind.speedApparent",source:"default",pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:500},trueWindAngle:{description:"True Wind Angle",path:"self.environment.wind.angleTrueWater",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},trueWindSpeed:{description:"True Wind Speed",path:"self.environment.wind.speedTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:500},courseOverGround:{description:"True Course Over Ground",path:"self.navigation.courseOverGroundTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,convertUnitTo:"deg",sampleTime:500},nextWaypointBearing:{description:"Next Waypoint Bearing",path:"self.navigation.courseGreatCircle.nextPoint.bearingTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},set:{description:"True Drift Set",path:"self.environment.current.setTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},drift:{description:"Drift Speed Impact",path:"self.environment.current.drift",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:500}},windSectorEnable:!0,windSectorWindowSeconds:5,laylineEnable:!0,laylineAngle:40,waypointEnable:!0,courseOverGroundEnable:!0,driftEnable:!0,awsEnable:!0,twsEnable:!0,sailSetupEnable:!1,enableTimeout:!1,dataTimeout:5}}ngOnInit(){this.validateConfig(),this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.stopWindSectors(),this.appWindSpeedUnit=this.widgetProperties.config.paths.trueWindSpeed.convertUnitTo,this.trueWindSpeedUnit=this.widgetProperties.config.paths.appWindSpeed.convertUnitTo,this.observeDataStream("headingPath",e=>{e.data.value==null&&(e.data.value=0),this.currentHeading=e.data.value}),this.observeDataStream("courseOverGround",e=>{e.data.value==null&&(e.data.value=0),this.courseOverGroundAngle=e.data.value}),this.observeDataStream("drift",e=>{e.data.value==null&&(e.data.value=0),this.driftFlow=e.data.value}),this.observeDataStream("set",e=>{e.data.value==null&&(e.data.value=0),this.driftSet=e.data.value}),this.observeDataStream("nextWaypointBearing",e=>{e.data.value<0?this.waypointAngle=360+e.data.value:this.waypointAngle=e.data.value}),this.observeDataStream("appWindAngle",e=>{if(e.data.value==null&&(e.data.value=0),e.data.value<0?this.appWindAngle=360+e.data.value:this.appWindAngle=e.data.value,this.widgetProperties.config.windSectorEnable){let t=this.addHeading(this.currentHeading,e.data.value);this.addHistoricalWindDirection(t)}}),this.observeDataStream("appWindSpeed",e=>{e.data.value==null&&(e.data.value=0),this.appWindSpeed=e.data.value}),this.observeDataStream("trueWindSpeed",e=>{e.data.value==null&&(e.data.value=0),this.trueWindSpeed=e.data.value}),this.observeDataStream("trueWindAngle",e=>{e.data.value==null&&(e.data.value=0);let t=this.widgetProperties.config.paths.trueWindAngle.path;t.includes("angleTrueWater")||t.includes("angleTrueGround")?this.trueWindAngle=this.addHeading(this.currentHeading,e.data.value):this.trueWindAngle=e.data.value}),this.startWindSectors()}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}ngOnDestroy(){this.destroyDataStreams(),this.stopWindSectors()}startWindSectors(){this.zones.runOutsideAngular(()=>{this.windSectorObservableSub=vl(500).subscribe(()=>{this.historicalCleanup()})})}addHistoricalWindDirection(e){this.historicalWindDirection.push({timestamp:Date.now(),windDirection:e});let t=this.arcForAngles(this.historicalWindDirection.map(i=>i.windDirection));this.trueWindMinHistoric=t.min,this.trueWindMaxHistoric=t.max,this.trueWindMidHistoric=t.mid}arcForAngles(e){return!e||e.length===0?{min:0,max:0,mid:0}:e.slice(1).reduce((i,o)=>{let a=o;for(;a<i.min-180;)a+=360;for(;a>i.max+180;)a-=360;return i.min=Math.min(i.min,a),i.max=Math.max(i.max,a),i.mid=(i.max-i.min)/2+i.min,i},{min:e[0],max:e[0],mid:e[0]})}historicalCleanup(){let e=Date.now()-this.widgetProperties.config.windSectorWindowSeconds*1e3;this.historicalWindDirection=this.historicalWindDirection.filter(t=>t.timestamp>=e)}stopWindSectors(){this.windSectorObservableSub?.unsubscribe()}addHeading(e,t){let i=(e+t)%360;return i<0&&(i+=360),i}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-wind-steer"]],features:[pe],decls:2,vars:25,consts:[[3,"configChange","config","id"],[3,"compassHeading","courseOverGroundAngle","courseOverGroundEnabled","trueWindAngle","twsEnabled","trueWindSpeed","trueWindSpeedUnit","appWindAngle","awsEnabled","appWindSpeed","appWindSpeedUnit","laylineAngle","closeHauledLineEnabled","windSectorEnabled","driftEnabled","driftFlow","driftSet","waypointAngle","waypointEnabled","trueWindMinHistoric","trueWindMidHistoric","trueWindMaxHistoric","sailSetupEnabled"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Me("configChange",function(a){return Pe(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),F("configChange",function(a){return i.updateConfig(a)}),B(1,"app-svg-wind",1),C()),t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("compassHeading",i.currentHeading)("courseOverGroundAngle",i.courseOverGroundAngle)("courseOverGroundEnabled",i.widgetProperties.config.courseOverGroundEnable)("trueWindAngle",i.trueWindAngle)("twsEnabled",i.widgetProperties.config.twsEnable)("trueWindSpeed",i.trueWindSpeed)("trueWindSpeedUnit",i.trueWindSpeedUnit)("appWindAngle",i.appWindAngle)("awsEnabled",i.widgetProperties.config.awsEnable)("appWindSpeed",i.appWindSpeed)("appWindSpeedUnit",i.appWindSpeedUnit)("laylineAngle",i.widgetProperties.config.laylineAngle)("closeHauledLineEnabled",i.widgetProperties.config.laylineEnable)("windSectorEnabled",i.widgetProperties.config.windSectorEnable)("driftEnabled",i.widgetProperties.config.driftEnable)("driftFlow",i.driftFlow)("driftSet",i.driftSet)("waypointAngle",i.waypointAngle)("waypointEnabled",i.widgetProperties.config.waypointEnable)("trueWindMinHistoric",i.trueWindMinHistoric)("trueWindMidHistoric",i.trueWindMidHistoric)("trueWindMaxHistoric",i.trueWindMaxHistoric)("sailSetupEnabled",i.defaultConfig.sailSetupEnable))},dependencies:[Mh,We],encapsulation:2})}return r})();var Wf=["canvasEl"],Oh=(()=>{class r extends Ne{canvasEl=Ce("canvasEl");canvas=M(Mt);canvasCtx=null;isDestroyed=!1;maxTextWidth=0;maxTextHeight=0;constructor(){super(),this.defaultConfig={displayName:"Static Label",color:"green",bgColor:"grey",noColor:!1,noBgColor:!0},be(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.updateCanvas())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.canvas.setHighDPISize(this.canvasEl().nativeElement,this.canvasEl().nativeElement.parentElement.getBoundingClientRect()),this.canvasCtx=this.canvasEl().nativeElement.getContext("2d"),this.maxTextWidth=this.canvasEl().nativeElement.width-40,this.maxTextHeight=this.canvasEl().nativeElement.height-40,!this.isDestroyed&&this.updateCanvas()}ngOnDestroy(){this.isDestroyed=!0,this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),this.canvasEl().nativeElement.remove()}startWidget(){}updateConfig(e){e.displayName?this.widgetProperties.config.displayName=e.displayName:this.widgetProperties.config.displayName="",this.updateCanvas()}onResized(e){this.canvas.setHighDPISize(this.canvasEl().nativeElement,e.contentRect),this.maxTextWidth=Math.floor(this.canvasEl().nativeElement.width-40),this.maxTextHeight=Math.floor(this.canvasEl().nativeElement.height-40),this.updateCanvas()}getColors(e){switch(e){case"contrast":return this.theme().contrast;case"blue":return this.theme().blue;case"green":return this.theme().green;case"pink":return this.theme().pink;case"orange":return this.theme().orange;case"purple":return this.theme().purple;case"grey":return this.theme().grey;case"yellow":return this.theme().yellow;default:return this.theme().contrast}}updateCanvas(){this.canvasCtx&&(this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),this.widgetProperties.config.noBgColor||this.canvas.drawRectangle(this.canvasCtx,0,0,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height,this.getColors(this.widgetProperties.config.bgColor)),this.drawValue())}drawValue(){this.canvas.drawText(this.canvasCtx,this.widgetProperties.config.displayName,Math.floor(this.canvasEl().nativeElement.width/2),Math.floor(this.canvasEl().nativeElement.height/2+10),this.maxTextWidth,this.maxTextHeight,"bold",this.getColors(this.widgetProperties.config.color))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-label"]],viewQuery:function(t,i){t&1&&we(i.canvasEl,Wf,5),t&2&&Ze()},features:[pe],decls:4,vars:2,consts:[["canvasEl",""],[3,"configChange","config","id"],[1,"wrapper",3,"onResize"],[1,"canvas",2,"z-index","inherit"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),v(1,"div",2),F("onResize",function(l){return z(o),V(i.onResized(l))}),B(2,"canvas",3,0),C()()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid))},dependencies:[We,at,ot],styles:["[_nghost-%COMP%]{display:block;position:relative;width:100%;height:100%}.wrapper[_ngcontent-%COMP%]{position:relative;display:block;width:100%;height:100%}.canvas[_ngcontent-%COMP%]{display:block;z-index:inherit;border-radius:var(--mat-card-elevated-container-shape, var(--mat-sys-corner-medium))}"]})}return r})();var Bf=["svgSlider"];function zf(r,n){r&1&&B(0,"div",11)}var Ih=(()=>{class r extends Ne{svgElement=Ce.required("svgSlider");canvas=M(Mt);dashboard=M(ct);signalkRequestsService=M(tn);appService=M(Dt);labelColor=void 0;barColor=void 0;skRequestSub=new no;lineStartPx;lineWidthPx;lineEndPx;resizeTimeout;debounceTimeout;handlePosition=20;pathValue=0;lineStart=this.handlePosition;isDragStarted=!1;lineWidth="0px";VIEWBOX_WIDTH=200;LINE_START=20;LINE_WIDTH=160;colorMap=new Map([["contrast",{label:this.theme().contrastDim,bar:this.theme().contrast}],["blue",{label:this.theme().blueDim,bar:this.theme().blue}],["green",{label:this.theme().greenDim,bar:this.theme().green}],["pink",{label:this.theme().pinkDim,bar:this.theme().pink}],["orange",{label:this.theme().orangeDim,bar:this.theme().orange}],["purple",{label:this.theme().purpleDim,bar:this.theme().purple}],["grey",{label:this.theme().greyDim,bar:this.theme().grey}],["yellow",{label:this.theme().yellowDim,bar:this.theme().yellow}]]);valueChange$=new vt;constructor(){super(),this.defaultConfig={displayName:"Slider Label",filterSelfPaths:!0,paths:{gaugePath:{description:"PUT Supported Numeric Path. IMPORTANT: Format must be set to (base)",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:null,showConvertUnitTo:!1,convertUnitTo:null,supportsPut:!0,sampleTime:500}},displayScale:{lower:0,upper:1,type:"linear"},enableTimeout:!1,dataTimeout:5,color:"contrast"},be(()=>{this.theme()&&this.getColors(this.widgetProperties.config.color)})}ngOnInit(){this.validateConfig(),this.valueChange$.pipe(Xt(e=>this.isWithinMargin(e,this.widgetProperties.config.displayScale.lower)?this.widgetProperties.config.displayScale.lower:this.isWithinMargin(e,this.widgetProperties.config.displayScale.upper)?this.widgetProperties.config.displayScale.upper:parseFloat(e.toFixed(2))),ro(200),_l()).subscribe(e=>{this.sendValue(e)})}ngAfterViewInit(){this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data){this.handlePosition=this.mapValueToPosition(this.widgetProperties.config.displayScale.lower);return}this.updateHandlePosition(this.mapValueToPosition(e.data.value))}),this.skRequestSub?.unsubscribe(),this.subscribeSKRequest()}mapValueToPosition(e){let t=this.widgetProperties.config.displayScale.upper-this.widgetProperties.config.displayScale.lower,i=this.LINE_WIDTH;return(e-this.widgetProperties.config.displayScale.lower)/t*i+this.LINE_START}mapPositionToValue(e){let t=this.widgetProperties.config.displayScale.upper-this.widgetProperties.config.displayScale.lower,i=this.LINE_WIDTH;return(e-this.LINE_START)/i*t+this.widgetProperties.config.displayScale.lower}isWithinMargin(e,t){let i=(this.widgetProperties.config.displayScale.upper-this.widgetProperties.config.displayScale.lower)*.01;return Math.abs(e-t)<=i}subscribeSKRequest(){this.skRequestSub=this.signalkRequestsService.subscribeRequest().subscribe(e=>{if(e.widgetUUID==this.widgetProperties.uuid){let t=`Toggle Widget ${this.widgetProperties.config.displayName}: `;e.statusCode!=200&&(e.message?t+=e.message:t+=e.statusCode+" - "+e.statusCodeDescription,this.appService.sendSnackbarNotification(t,0))}})}sendValue(e){let t=this.widgetProperties.config.paths.gaugePath.path;this.signalkRequestsService.putRequest(t,e,this.widgetProperties.uuid)}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.calculateLineBounds(),this.startWidget()}onResized(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.calculateLineBounds()},200)}calculateLineBounds(){if(!this.svgElement()?.nativeElement){console.warn("[Slider Widget] SVG element is not initialized yet.");return}let e=this.svgElement().nativeElement.getBoundingClientRect(),t=this.LINE_START/this.VIEWBOX_WIDTH*e.width,i=this.LINE_WIDTH/this.VIEWBOX_WIDTH*e.width;this.lineStartPx=t,this.lineWidthPx=i,this.lineEndPx=this.lineStartPx+this.lineWidthPx}updateHandlePosition(e){this.handlePosition=e,this.lineWidth=`${e-this.lineStart}px`}getPointerX(e){return e.clientX-this.svgElement().nativeElement.getBoundingClientRect().left}onPointerDown(e){this.isDragStarted=!0,this.onPointerMove(e),e.stopPropagation(),e.preventDefault()}onPointerMove(e){if(this.isDragStarted){let t=this.getPointerX(e);if(t>=this.lineStartPx&&t<=this.lineEndPx){let i=(t-this.lineStartPx)/this.lineWidthPx*this.LINE_WIDTH+this.LINE_START;this.updateHandlePosition(i),this.handlePosition<=this.LINE_START?this.pathValue=this.widgetProperties.config.displayScale.lower:this.handlePosition>=this.LINE_START+this.LINE_WIDTH?this.pathValue=this.widgetProperties.config.displayScale.upper:this.pathValue=this.mapPositionToValue(this.handlePosition),this.valueChange$.next(this.pathValue)}}}onPointerUp(){this.isDragStarted=!1,this.valueChange$.next(this.pathValue)}onPointerLeave(){this.isDragStarted&&(this.isDragStarted=!1,this.valueChange$.next(this.pathValue))}getColors(e){let t=this.colorMap.get(e)||this.colorMap.get("contrast");this.labelColor=t.label,this.barColor=t.bar}ngOnDestroy(){this.destroyDataStreams(),this.skRequestSub?.unsubscribe(),this.valueChange$.complete(),clearTimeout(this.debounceTimeout),clearTimeout(this.resizeTimeout)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["widget-slider"]],viewQuery:function(t,i){t&1&&we(i.svgElement,Bf,5),t&2&&Ze()},features:[pe],decls:12,vars:9,consts:[["svgSlider",""],[3,"configChange","config","id"],[3,"text","color"],[1,"widgets-container",3,"onResize"],["width","100%","height","100%","viewBox","0 40 200 40"],["width","160","height","8","rx","4.5","id","rect3","x","20","y","56",1,"slider-bg-bar",2,"display","inline","stroke-width","1.57144"],["height","8","rx","4.5","id","rect3","x","20","y","56",2,"display","inline","stroke-width","1.57144"],["id","g22"],["cy","60","fill","#ffffff","id","circle3","r","19.549999",2,"display","inline","fill","#4d4d4d","fill-opacity","1","stroke","#8c8c8c","stroke-width","0.9","stroke-dasharray","none","stroke-opacity","1"],["cy","60","fill","#ffffff","id","circle3-3","r","17.950001",2,"display","inline","fill","#ffffff","fill-opacity","1","stroke","#e6e6e6","stroke-width","1.8","stroke-dasharray","none","stroke-opacity","0.97"],["cursor","pointer","width","200","height","40","x","0","y","40",2,"display","inline","fill","rgba(0, 0, 0, 0)","stroke","none","stroke-width","0.3","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0",3,"pointerdown","pointerup","pointermove","pointerleave"],[1,"widgetOverlay"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Me("configChange",function(l){return z(o),Pe(i.widgetProperties.config,l)||(i.widgetProperties.config=l),V(l)}),F("configChange",function(l){return z(o),V(i.updateConfig(l))}),B(1,"widget-title",2),v(2,"div",3),F("onResize",function(){return z(o),V(i.onResized())}),Ke(),v(3,"svg",4),B(4,"rect",5)(5,"rect",6),v(6,"g",7),B(7,"circle",8)(8,"circle",9),C(),v(9,"rect",10,0),F("pointerdown",function(l){return z(o),V(i.onPointerDown(l))})("pointerup",function(){return z(o),V(i.onPointerUp())})("pointermove",function(l){return z(o),V(i.onPointerMove(l))})("pointerleave",function(){return z(o),V(i.onPointerLeave())}),C()()(),Ae(11,zf,1,0,"div",11),C()}t&2&&(De("config",i.widgetProperties.config),j("id",i.widgetProperties.uuid),D(),j("text",i.widgetProperties.config.displayName)("color",i.labelColor),D(4),ce("width",i.lineWidth)("fill",i.barColor),D(2),ce("cx",i.handlePosition),D(),ce("cx",i.handlePosition),D(3),Oe(i.dashboard.isDashboardStatic()?-1:11))},dependencies:[We,at,ot,ui],styles:[".widgets-container[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20;padding:0 20px}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}.slider-bg-bar[_ngcontent-%COMP%]{fill:var(--mat-sys-inverse-on-surface)}"]})}return r})();var Vf=["grid"];function Lf(r,n){r&1&&(v(0,"p",7)(1,"strong"),P(2,"Long press/click and hold anywhere"),C(),P(3," to add widgets"),C(),v(4,"mat-icon",8),P(5,"touch_app"),C())}function Ff(r,n){if(r&1){let e=ee();v(0,"p",7),P(1,"This empty dashboard is ready to be customized."),C(),v(2,"button",9),F("click",function(){z(e);let i=re(2);return V(i.editDashboard())}),v(3,"mat-icon"),P(4,"lock_open"),C(),P(5," Unlock and Customize "),C()}}function Hf(r,n){if(r&1&&(v(0,"div",2)(1,"div",4)(2,"div",5)(3,"mat-icon",6),P(4,"dashboard"),C(),Ae(5,Lf,6,0)(6,Ff,6,0),C()()()),r&2){let e=re();D(5),Oe(e.dashboard.isDashboardStatic()?6:5)}}function Uf(r,n){if(r&1){let e=ee();v(0,"div",3)(1,"button",10),F("click",function(){z(e);let i=re();return V(i.saveLayoutChanges())}),v(2,"mat-icon"),P(3,"done"),C()(),v(4,"button",11),F("click",function(){z(e);let i=re();return V(i.cancelLayoutChanges())}),v(5,"mat-icon"),P(6,"close"),C()()()}}function Gf(r,n){r&1&&B(0,"notification-badge")}function qf(r,n){if(r&1&&(B(0,"dashboard-scroller",12),Ae(1,Gf,1,0,"notification-badge")),r&2){let e=re();j("activePage",e.dashboard.activeDashboard())("dashboards",e.dashboard.dashboards()),D(),Oe(e.notificationsInfo().alarmCount>0?1:-1)}}var Ps=(()=>{class r{_app=M(Dt);_dialog=M(nr);dashboard=M(ct);_notifications=M(nn);_destroyRef=M(oo);_uiEvent=M(rr);notificationsInfo=Ut(this._notifications.observerNotificationsInfo());isDashboardStatic=Ut(this.dashboard.isDashboardStatic$);isLoading=Ye(!0);_gridstack;_previousIsStaticState=!0;gridOptions={margin:4,minRow:12,maxRow:12,float:!0,acceptWidgets:!1,resizable:{handles:"all"}};constructor(){_n.addComponentToSelectorType([Lo,cc,Fo,pc,Eh,bh,wh,gh,Sh,hh,vc,dh,Th,kh,Dh,Ah,Ho,Oh,Ih]),be(()=>{let e=this.dashboard.activeDashboard();Et(()=>{this._gridstack?.grid&&this.loadDashboard(e)})})}ngAfterViewInit(){this.dashboard.isDashboardStatic$.pipe(pn(this._destroyRef)).subscribe(e=>{e?(this._gridstack.grid.setStatic(e),e!==this._previousIsStaticState&&(this.saveDashboard(),this._previousIsStaticState=e)):(this._gridstack.grid.setStatic(e),this._previousIsStaticState=e)}),this.dashboard.widgetAction$.pipe(pn(this._destroyRef)).subscribe(e=>{e&&this._gridstack.grid.getGridItems().forEach(t=>{if(t.gridstackNode.id===e.id)switch(e.operation){case"delete":this.deleteWidget(t);break;case"duplicate":this.duplicateWidget(t);break;default:break}})}),this.resizeGridColumns(),this._uiEvent.addHotkeyListener((e,t)=>this.handleKeyDown(e,t),{ctrlKey:!0,keys:["arrowdown","arrowup"]}),setTimeout(()=>{this.loadDashboard(this.dashboard.activeDashboard()),this.isLoading.set(!1)})}ngOnDestroy(){this._gridstack?.grid&&this._gridstack.grid.destroy(!0),this._gridstack=null,this._uiEvent.removeHotkeyListener(this.handleKeyDown.bind(this))}handleKeyDown(e,t){e==="arrowdown"?this.previousDashboard(t):e==="arrowup"&&this.nextDashboard(t)}resizeGridColumns(){this._gridstack.grid.cellHeight(window.innerHeight/this._gridstack.grid.getRow())}loadDashboard(e){let t=this.dashboard.dashboards()[e];this._gridstack.grid?.load(t.configuration),this._gridstack?.grid&&this.isLoading.set(!1)}saveDashboard(){let e=this._gridstack.grid.save(!1,!1)||null;this.dashboard.updateConfiguration(this.dashboard.activeDashboard(),e)}saveLayoutChanges(){this.dashboard.setStaticDashboard(!0)}cancelLayoutChanges(){this.loadDashboard(this.dashboard.activeDashboard()),this.dashboard.setStaticDashboard(!0)}addNewWidget(e){if(!this.dashboard.isDashboardStatic()){let t=e.center.x,i=e.center.y,o=this._gridstack.grid.getCellFromPixel({left:t,top:i});this._gridstack.grid.isAreaEmpty(o.x,o.y,1,1)&&(this._gridstack.grid.willItFit({x:o.x,y:o.y,w:2,h:3})?this._dialog.openFrameDialog({title:"Add Widget",component:"select-widget"},!0).subscribe(l=>{if(!l)return;let d=Ei.create(),f={x:o.x,y:o.y,w:2,h:3,id:d,selector:l,input:{widgetProperties:{type:l,uuid:d}}};this._gridstack.grid.addWidget(f)}):this._app.sendSnackbarNotification("Add Widget Error: Not enough space at the selected location. Please reorganize the dashboard to free up space or choose a larger empty area.",0))}}duplicateWidget(e){let t=Ei.create(),i=e.gridstackNode,o={w:i.w,h:i.h,id:t,selector:i.selector,input:{widgetProperties:{type:i.input.widgetProperties.type,uuid:t,config:Kn(i.input.widgetProperties.config)}}};this._gridstack.grid.willItFit(o)?this._gridstack.grid.addWidget(o):(o.h=2,o.w=2,this._gridstack.grid.willItFit(o)?this._gridstack.grid.addWidget(o):this._app.sendSnackbarNotification("Duplication failed: Insufficient space on the dashboard. Please reorganize to free up space.",0))}deleteWidget(e){this._gridstack.grid.removeWidget(e)}nextDashboard(e){e.preventDefault(),this.dashboard.isDashboardStatic()&&this.dashboard.nextDashboard()}previousDashboard(e){e.preventDefault(),this.dashboard.isDashboardStatic()&&this.dashboard.previousDashboard()}editDashboard(){this.dashboard.toggleStaticDashboard()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["dashboard"]],viewQuery:function(t,i){if(t&1&&nt(Vf,7),t&2){let o;Ge(o=qe())&&(i._gridstack=o.first)}},decls:5,vars:3,consts:[["grid",""],[3,"swipeup","swipedown","press","resize","options"],["empty-content","",1,"dashboard-empty-state"],[1,"edit-layout-close-icon"],[1,"empty-state-content"],[1,"empty-state-actions"],[1,"empty-state-icon"],[1,"empty-state-text"],[1,"touch-icon"],["mat-flat-button","",1,"empty-state-button",3,"click"],["mat-fab","",1,"layout-action-btn",2,"margin-right","10px",3,"click"],["mat-fab","",1,"layout-action-btn",3,"click"],[3,"activePage","dashboards"]],template:function(t,i){if(t&1){let o=ee();v(0,"gridstack",1,0),F("swipeup",function(l){return z(o),V(i.previousDashboard(l))})("swipedown",function(l){return z(o),V(i.nextDashboard(l))})("press",function(l){return z(o),V(i.addNewWidget(l))})("resize",function(){return z(o),V(i.resizeGridColumns())},Sl),Ae(2,Hf,7,1,"div",2),C(),Ae(3,Uf,7,0,"div",3)(4,qf,2,3)}t&2&&(j("options",i.gridOptions),D(2),Oe(i.isLoading()?-1:2),D(),Oe(i.dashboard.isDashboardStatic()?4:3))},dependencies:[tc,_n,nc,Pt,di,Kt,Gt,wo,sc],styles:["[_nghost-%COMP%]{display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;width:100%;overflow:hidden}.grid-stack[_ngcontent-%COMP%]{width:100%}.edit-layout-close-icon[_ngcontent-%COMP%]{position:absolute;bottom:20px;right:20px;cursor:pointer;z-index:100}.layout-action-btn[_ngcontent-%COMP%]{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-primary)}.dashboard-empty-state[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:80vh;width:100%;padding:2rem;text-align:center}.empty-state-content[_ngcontent-%COMP%]{max-width:500px;color:var(--mat-sys-outline-variant)}.empty-state-icon[_ngcontent-%COMP%]{font-size:4rem;width:4rem;height:4rem;color:var(--mat-sys-outline-variant);margin-bottom:1rem}.empty-state-actions[_ngcontent-%COMP%] .touch-icon[_ngcontent-%COMP%]{font-size:2rem;width:2rem;height:2rem;color:var(--mat-sys-outline-variant);margin-top:.5rem;animation:_ngcontent-%COMP%_bounce 2s infinite}.empty-state-button[_ngcontent-%COMP%]{--mat-button-filled-label-text-color: var(--kip-widget-card-background-color);--mat-button-filled-container-color: var(--mat-sys-outline-variant);--mat-button-filled-hover-state-layer-opacity: .7;--mat-button-filled-state-layer-color: var(--mat-sys-primary-fixed-dim)}.empty-state-text[_ngcontent-%COMP%]{color:var(--mat-sys-outline-variant);font-style:italic}@keyframes _ngcontent-%COMP%_bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}"]})}return r})();var Rh=[{path:"dashboard",component:Ps},{path:"settings",loadComponent:()=>import("./chunk-7ICUQ4VK.js").then(r=>r.AppSettingsComponent)},{path:"help",loadComponent:()=>import("./chunk-EGXTT4GK.js").then(r=>r.AppHelpComponent)},{path:"data",loadComponent:()=>import("./chunk-KUPVE24U.js").then(r=>r.DataInspectorComponent)},{path:"dashboards",loadComponent:()=>import("./chunk-KE3BK62I.js").then(r=>r.DashboardsEditorComponent)},{path:"datasets",loadComponent:()=>import("./chunk-JITOBNFA.js").then(r=>r.SettingsDatasetsComponent)},{path:"configurations",loadComponent:()=>import("./chunk-ROXSW22U.js").then(r=>r.SettingsConfigComponent)},{path:"login",loadComponent:()=>import("./chunk-BJZD62ZD.js").then(r=>r.WidgetLoginComponent)},{path:"**",component:Ps}];var Nh={production:!0};var Uh=Mr(ls());function jf(r,n){if(r&1){let e=ee();v(0,"div",1)(1,"button",2),F("click",function(){z(e);let i=re();return V(i.action())}),P(2),C()()}if(r&2){let e=re();D(2),pt(" ",e.data.action," ")}}var $f=["label"];function Yf(r,n){}var Xf=Math.pow(2,31)-1,Fr=class{_overlayRef;instance;containerInstance;_afterDismissed=new vt;_afterOpened=new vt;_onAction=new vt;_durationTimeoutId;_dismissedByAction=!1;constructor(n,e){this._overlayRef=e,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,Xf))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},Wh=new Fn("MatSnackBarData"),wr=class{politeness="polite";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},Qf=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275dir=Si({type:r,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return r})(),Kf=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275dir=Si({type:r,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return r})(),Zf=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275dir=Si({type:r,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return r})(),Jf=(()=>{class r{snackBarRef=M(Fr);data=M(Wh);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["matButton","","matSnackBarAction","",3,"click"]],template:function(t,i){t&1&&(v(0,"div",0),P(1),C(),Ae(2,jf,3,1,"div",1)),t&2&&(D(),pt(" ",i.data.message,`
|
|
234
|
-
`),
|
|
235
|
-
`],encapsulation:2,changeDetection:0})}return r})(),
|
|
236
|
-
`],encapsulation:2})}return r})();function tg(){return new wr}var ig=new Fn("mat-snack-bar-default-options",{providedIn:"root",factory:tg}),Bh=(()=>{class r{_live=M(sd);_injector=M(Hi);_breakpointObserver=M(vo);_parentSnackBar=M(r,{optional:!0,skipSelf:!0});_defaultConfig=M(ig);_animationsDisabled=fn();_snackBarRefAtThisLevel=null;simpleSnackBarComponent=Jf;snackBarContainerComponent=eg;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(){}openFromComponent(e,t){return this._attach(e,t)}openFromTemplate(e,t){return this._attach(e,t)}open(e,t="",i){let o=X(X({},this._defaultConfig),i);return o.data={message:e,action:t},o.announcementMessage===e&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,t){let i=t&&t.viewContainerRef&&t.viewContainerRef.injector,o=Hi.create({parent:i||this._injector,providers:[{provide:wr,useValue:t}]}),a=new Ya(this.snackBarContainerComponent,t.viewContainerRef,o),l=e.attach(a);return l.instance.snackBarConfig=t,l.instance}_attach(e,t){let i=X(X(X({},new wr),this._defaultConfig),t),o=this._createOverlay(i),a=this._attachSnackBarContainer(o,i),l=new Fr(a,o);if(e instanceof kl){let d=new md(e,null,{$implicit:i.data,snackBarRef:l});l.instance=a.attachTemplatePortal(d)}else{let d=this._createInjector(i,l),f=new Ya(e,void 0,d),s=a.attachComponentPortal(f);l.instance=s.instance}return this._breakpointObserver.observe(_o.HandsetPortrait).pipe(Qt(o.detachments())).subscribe(d=>{o.overlayElement.classList.toggle(this.handsetCssClass,d.matches)}),i.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(i.announcementMessage,i.politeness)}),this._animateSnackBar(l,i),this._openedSnackBarRef=l,this._openedSnackBarRef}_animateSnackBar(e,t){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),t.announcementMessage&&this._live.clear()}),t.duration&&t.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(t.duration)),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter()}_createOverlay(e){let t=new vd;t.direction=e.direction;let i=yd(this._injector),o=e.direction==="rtl",a=e.horizontalPosition==="left"||e.horizontalPosition==="start"&&!o||e.horizontalPosition==="end"&&o,l=!a&&e.horizontalPosition!=="center";return a?i.left("0"):l?i.right("0"):i.centerHorizontally(),e.verticalPosition==="top"?i.top("0"):i.bottom("0"),t.positionStrategy=i,t.disableAnimations=this._animationsDisabled,bd(this._injector,t)}_createInjector(e,t){let i=e&&e.viewContainerRef&&e.viewContainerRef.injector;return Hi.create({parent:i||this._injector,providers:[{provide:Fr,useValue:t},{provide:Wh,useValue:e.data}]})}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var ng=(r,n)=>n.path;function rg(r,n){r&1&&(v(0,"mat-icon"),P(1,"info"),C())}function og(r,n){r&1&&(v(0,"mat-icon"),P(1,"info"),C())}function ag(r,n){r&1&&(v(0,"mat-icon",3),P(1,"report"),C())}function sg(r,n){r&1&&(v(0,"mat-icon",4),P(1,"warning"),C())}function lg(r,n){r&1&&(v(0,"mat-icon",5),P(1,"error"),C())}function dg(r,n){r&1&&(v(0,"mat-icon",6),P(1,"emergency_home"),C())}function cg(r,n){if(r&1){let e=ee();v(0,"div",2),Ae(1,rg,2,0,"mat-icon")(2,og,2,0,"mat-icon")(3,ag,2,0,"mat-icon",3)(4,sg,2,0,"mat-icon",4)(5,lg,2,0,"mat-icon",5)(6,dg,2,0,"mat-icon",6),v(7,"div",7),P(8),C(),v(9,"div",8),P(10),$n(11,"slice"),C(),v(12,"div",9),P(13),C(),v(14,"button",10),F("click",function(){let i=z(e).$implicit,o=re();return V(o.silence(i.path))}),v(15,"mat-icon"),P(16,"music_off"),C()(),v(17,"button",11),F("click",function(){let i=z(e).$implicit,o=re();return V(o.clear(i.path))}),v(18,"mat-icon"),P(19,"published_with_changes"),C()()(),B(20,"mat-divider",12)}if(r&2){let e,t=n.$implicit;D(),Oe((e=t.value.state)==="nominal"?1:e==="normal"?2:e==="alert"?3:e==="warn"?4:e==="alarm"?5:e==="emergency"?6:-1),D(7),rt(t.value.state),D(2),rt(Rl(11,5,t.path,14)),D(3),rt(t.value.message),D(),j("disabled",!t.value.method.includes("sound"))}}function hg(r,n){r&1&&(v(0,"mat-list-item",13)(1,"span",15),P(2,"Notifications Disabled"),C(),v(3,"span")(4,"i"),P(5,"*Enable notifications in Settings."),C()()())}function ug(r,n){r&1&&(v(0,"mat-list-item",14)(1,"i"),P(2,'"No Notification"'),C()())}function mg(r,n){if(r&1&&Ae(0,hg,6,0,"mat-list-item",13)(1,ug,3,0,"mat-list-item",14),r&2){let e=re();Oe(e.notificationConfig().disableNotifications?0:1)}}function pg(r,n){if(r&1){let e=ee();v(0,"button",17),F("click",function(){z(e);let i=re(2);return V(i.mutePlayer(!i.isMuted))}),v(1,"span",18),P(2,"volume_up"),C(),P(3," Unmute Audio "),C()}}function fg(r,n){if(r&1){let e=ee();v(0,"button",17),F("click",function(){z(e);let i=re(2);return V(i.mutePlayer(!i.isMuted))}),v(1,"span",18),P(2,"volume_off"),C(),P(3," Mute Audio "),C()}}function gg(r,n){if(r&1&&Ae(0,pg,4,0,"button",16)(1,fg,4,0,"button",16),r&2){let e=re();Oe(e.isMuted?0:1)}}var zh=(()=>{class r{_notificationsService=M(nn);_notifications$=this._notificationsService.observeNotifications();notificationConfig=Ut(this._notificationsService.observeNotificationConfiguration(),{requireSync:!0});menuNotifications=Ut(this._notifications$.pipe(Xt(e=>{let t=[];return this.notificationConfig().devices.showNormalState||t.push(ie.Normal),this.notificationConfig().devices.showNominalState||t.push(ie.Nominal),e.filter(i=>i.value&&i.value.state&&!t.includes(i.value.state))}),Xt(e=>e.filter(t=>t.value&&t.value.method&&t.value.method.includes(Zn.Visual)))),{requireSync:!0,equal:si});isMuted=!1;mutePlayer(e){this.isMuted=e,this._notificationsService.mutePlayer(e)}silence(e){this._notificationsService.setSkMethod(e,[Zn.Visual])}clear(e){this._notificationsService.setSkState(e,ie.Normal)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["menu-notifications"]],decls:6,vars:2,consts:[[1,"menu-item-container"],[1,"actions-container","actions-bottom-container"],[1,"notification-container"],[1,"icon-alert-color"],[1,"icon-warn-color"],[1,"icon-alarm-color"],[1,"icon-emergency-color"],[1,"notification-title"],[1,"notification-path","scrollable-text"],[1,"notification-text"],["mat-icon-button","",1,"notification-action-btn",3,"click","disabled"],["mat-icon-button","",1,"notification-action-btn",3,"click"],[1,"notification-divider"],["lines","3","disabled","true",2,"text-align","center"],["disabled","true",2,"text-align","center"],["matListItemTitle",""],["mat-flat-button","","matTooltip","Temporally toggle all notification audio. To permanently disable/enable notification audio, use the configuration settings option",1,"action-button"],["mat-flat-button","","matTooltip","Temporally toggle all notification audio. To permanently disable/enable notification audio, use the configuration settings option",1,"action-button",3,"click"],[1,"material-icons"]],template:function(t,i){t&1&&(v(0,"mat-list",0),ki(1,cg,21,8,null,null,ng,!1,mg,2,1),C(),v(4,"div",1),Ae(5,gg,2,1),C()),t&2&&(D(),Ti(i.menuNotifications()),D(4),Oe(i.notificationConfig().disableNotifications?-1:5))},dependencies:[To,Ad,ko,Cd,Dd,Kt,Gt,ud,mr,qd,Gd,Pt,di,Vl],styles:[".notification-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;padding:2px 10px 7px;overflow-y:scroll;overflow-x:hidden;scroll-behavior:smooth}mat-icon[_ngcontent-%COMP%]{margin-right:10px}.scrollable-text[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.scrollable-text[_ngcontent-%COMP%]:hover{overflow:auto;white-space:normal;word-wrap:break-word}.notification-title[_ngcontent-%COMP%]{text-transform:capitalize;font-size:var(--mat-sys-headline-small-size);width:calc(100% - 34px)}.notification-path[_ngcontent-%COMP%]{font-size:var(--mat-sys-body-small-size);word-break:break-all;width:100%}.notification-text[_ngcontent-%COMP%]{font-size:var(--mat-sys-body-small-line-height);font-style:italic;width:100%;overflow:auto;white-space:normal;word-wrap:break-word}.notification-action-btn[_ngcontent-%COMP%]{background-color:var(--mat-sys-surface-container)}.notification-btn-container[_ngcontent-%COMP%]{display:inline-block;width:50%;height:48px;text-align:center}.menu-item-container[_ngcontent-%COMP%]{width:230px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;height:calc(100% - 48px)}.notification-bottom-container[_ngcontent-%COMP%]{position:absolute;bottom:0;width:100%;background-color:var(--mat-sys-surface-container)}.actions-container[_ngcontent-%COMP%]{display:grid;grid-auto-flow:column}.actions-bottom-container[_ngcontent-%COMP%]{position:absolute;bottom:0;width:100%;height:48px}.action-button[_ngcontent-%COMP%]{border-radius:0;height:48px;border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large))}.icon-alert-color[_ngcontent-%COMP%]{color:var(--kip-zone-alert-color)}.icon-warn-color[_ngcontent-%COMP%]{color:var(--kip-zone-warn-color)}.icon-alarm-color[_ngcontent-%COMP%]{color:var(--kip-zone-alarm-color)}.icon-emergency-color[_ngcontent-%COMP%]{color:var(--kip-zone-emergency-color)}.alarm-emergency-blink[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_blinking-emergency 1.5s infinite}@keyframes _ngcontent-%COMP%_blinking-emergency{0%{background-color:var(--kip-zone-alarm-color)}50%{background-color:transparent}to{background-color:var(--kip-zone-alarm-color)}}.warn[_ngcontent-%COMP%]{color:var(--kip-zone-warn-color)}.notification-divider[_ngcontent-%COMP%]{padding-top:10px}"]})}return r})();var na=["*"],yg=["content"],bg=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],_g=["mat-drawer","mat-drawer-content","*"];function wg(r,n){if(r&1){let e=ee();v(0,"div",1),F("click",function(){z(e);let i=re();return V(i._onBackdropClicked())}),C()}if(r&2){let e=re();Ft("mat-drawer-shown",e._isShowingBackdrop())}}function Cg(r,n){r&1&&(v(0,"mat-drawer-content"),xt(1,2),C())}var Sg=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],kg=["mat-sidenav","mat-sidenav-content","*"];function Tg(r,n){if(r&1){let e=ee();v(0,"div",1),F("click",function(){z(e);let i=re();return V(i._onBackdropClicked())}),C()}if(r&2){let e=re();Ft("mat-drawer-shown",e._isShowingBackdrop())}}function xg(r,n){r&1&&(v(0,"mat-sidenav-content"),xt(1,2),C())}var Eg=`.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}
|
|
237
|
-
`;var Dg=new Fn("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:Pg}),Rs=new Fn("MAT_DRAWER_CONTAINER");function Pg(){return!1}var ta=(()=>{class r extends tr{_platform=M(Jn);_changeDetectorRef=M(Yn);_container=M(Is);constructor(){let e=M(it),t=M(fd),i=M(yt);super(e,t,i)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:e,end:t}=this._container;return e!=null&&e.mode!=="over"&&e.opened||t!=null&&t.mode!=="over"&&t.opened}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(t,i){t&2&&(xe("margin-left",i._container._contentMargins.left,"px")("margin-right",i._container._contentMargins.right,"px"),Ft("mat-drawer-content-hidden",i._shouldBeHidden()))},features:[jn([{provide:tr,useExisting:r}]),pe],ngContentSelectors:na,decls:1,vars:0,template:function(t,i){t&1&&(ai(),xt(0))},encapsulation:2,changeDetection:0})}return r})(),Os=(()=>{class r{_elementRef=M(it);_focusTrapFactory=M(ad);_focusMonitor=M(nd);_platform=M(Jn);_ngZone=M(yt);_renderer=M(lo);_interactivityChecker=M(yo);_doc=M(Ui);_container=M(Rs,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(e){e=e==="end"?"end":"start",e!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=gn(e)}_disableClose=!1;get autoFocus(){let e=this._autoFocus;return e??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(e){(e==="true"||e==="false"||e==null)&&(e=gn(e)),this._autoFocus=e}_autoFocus;get opened(){return this._opened()}set opened(e){this.toggle(gn(e))}_opened=Ye(!1);_openedVia;_animationStarted=new vt;_animationEnd=new vt;openedChange=new mt(!0);_openedStream=this.openedChange.pipe(Vn(e=>e),Xt(()=>{}));openedStart=this._animationStarted.pipe(Vn(()=>this.opened),Va(void 0));_closedStream=this.openedChange.pipe(Vn(e=>!e),Xt(()=>{}));closedStart=this._animationStarted.pipe(Vn(()=>!this.opened),Va(void 0));_destroyed=new vt;onPositionChanged=new mt;_content;_modeChanged=new vt;_injector=M(Hi);_changeDetectorRef=M(Yn);constructor(){this.openedChange.pipe(Qt(this._destroyed)).subscribe(e=>{e?(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement,this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let e=this._elementRef.nativeElement;gl(e,"keydown").pipe(Vn(t=>t.keyCode===27&&!this.disableClose&&!dd(t)),Qt(this._destroyed)).subscribe(t=>this._ngZone.run(()=>{this.close(),t.stopPropagation(),t.preventDefault()})),this._eventCleanups=[this._renderer.listen(e,"transitionrun",this._handleTransitionEvent),this._renderer.listen(e,"transitionend",this._handleTransitionEvent),this._renderer.listen(e,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this.opened)})}_forceFocus(e,t){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let i=()=>{o(),a(),e.removeAttribute("tabindex")},o=this._renderer.listen(e,"blur",i),a=this._renderer.listen(e,"mousedown",i)})),e.focus(t)}_focusByCssSelector(e,t){let i=this._elementRef.nativeElement.querySelector(e);i&&this._forceFocus(i,t)}_takeFocus(){if(!this._focusTrap)return;let e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":qi(()=>{!this._focusTrap.focusInitialElement()&&typeof e.focus=="function"&&e.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(e){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(e=>e()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,t){e&&t&&(this._openedVia=t);let i=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),i}_setOpen(e,t,i){return e===this.opened?Promise.resolve(e?"open":"close"):(this._opened.set(e),this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",e),!e&&t&&this._restoreFocus(i),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(bl(1)).subscribe(a=>o(a?"open":"close"))}))}_setIsAnimating(e){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",e)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(e){if(!this._platform.isBrowser)return;let t=this._elementRef.nativeElement,i=t.parentNode;e==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),i.insertBefore(this._anchor,t)),i.appendChild(t)):this._anchor&&this._anchor.parentNode.insertBefore(t,this._anchor)}_handleTransitionEvent=e=>{let t=this._elementRef.nativeElement;e.target===t&&this._ngZone.run(()=>{e.type==="transitionrun"?this._animationStarted.next(e):(e.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(e))})};static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["mat-drawer"]],viewQuery:function(t,i){if(t&1&&nt(yg,5),t&2){let o;Ge(o=qe())&&(i._content=o.first)}},hostAttrs:[1,"mat-drawer"],hostVars:12,hostBindings:function(t,i){t&2&&(ce("align",null)("tabIndex",i.mode!=="side"?"-1":null),xe("visibility",!i._container&&!i.opened?"hidden":null),Ft("mat-drawer-end",i.position==="end")("mat-drawer-over",i.mode==="over")("mat-drawer-push",i.mode==="push")("mat-drawer-side",i.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:na,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,i){t&1&&(ai(),v(0,"div",1,0),xt(2),C())},dependencies:[tr],encapsulation:2,changeDetection:0})}return r})(),Is=(()=>{class r{_dir=M(hd,{optional:!0});_element=M(it);_ngZone=M(yt);_changeDetectorRef=M(Yn);_animationDisabled=fn();_transitionsEnabled=!1;_allDrawers;_drawers=new Cl;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=gn(e)}_autosize=M(Dg);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=e==null?null:gn(e)}_backdropOverride;backdropClick=new mt;_start;_end;_left;_right;_destroyed=new vt;_doCheckSubject=new vt;_contentMargins={left:null,right:null};_contentMarginChanges=new vt;get scrollable(){return this._userContent||this._content}_injector=M(Hi);constructor(){let e=M(Jn),t=M(gd);this._dir?.change.pipe(Qt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),t.change().pipe(Qt(this._destroyed)).subscribe(()=>this.updateContentMargins()),!this._animationDisabled&&e.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(Ha(this._allDrawers),Qt(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(t=>!t._container||t._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(Ha(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(ro(10),Qt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,t=0;if(this._left&&this._left.opened){if(this._left.mode=="side")e+=this._left._getWidth();else if(this._left.mode=="push"){let i=this._left._getWidth();e+=i,t-=i}}if(this._right&&this._right.opened){if(this._right.mode=="side")t+=this._right._getWidth();else if(this._right.mode=="push"){let i=this._right._getWidth();t+=i,e-=i}}e=e||null,t=t||null,(e!==this._contentMargins.left||t!==this._contentMargins.right)&&(this._contentMargins={left:e,right:t},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(Qt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),e.mode!=="side"&&e.openedChange.pipe(Qt(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e.onPositionChanged.pipe(Qt(this._drawers.changes)).subscribe(()=>{qi({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(e){e._modeChanged.pipe(Qt(yl(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){let t=this._element.nativeElement.classList,i="mat-drawer-container-has-open";e?t.add(i):t.remove(i)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{e.position=="end"?(this._end!=null,this._end=e):(this._start!=null,this._start=e)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return e!=null&&e.opened}_drawerHasBackdrop(e){return this._backdropOverride==null?!!e&&e.mode!=="side":this._backdropOverride}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["mat-drawer-container"]],contentQueries:function(t,i,o){if(t&1&&(mn(o,ta,5),mn(o,Os,5)),t&2){let a;Ge(a=qe())&&(i._content=a.first),Ge(a=qe())&&(i._allDrawers=a)}},viewQuery:function(t,i){if(t&1&&nt(ta,5),t&2){let o;Ge(o=qe())&&(i._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(t,i){t&2&&Ft("mat-drawer-container-explicit-backdrop",i._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[jn([{provide:Rs,useExisting:r}])],ngContentSelectors:_g,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(t,i){t&1&&(ai(bg),Ae(0,wg,1,2,"div",0),xt(1),xt(2,1),Ae(3,Cg,2,0,"mat-drawer-content")),t&2&&(Oe(i.hasBackdrop?0:-1),D(3),Oe(i._content?-1:3))},dependencies:[ta],styles:[`.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}
|
|
238
|
-
`],encapsulation:2,changeDetection:0})}return r})(),ia=(()=>{class r extends ta{static \u0275fac=(()=>{let e;return function(i){return(e||(e=Un(r)))(i||r)}})();static \u0275cmp=U({type:r,selectors:[["mat-sidenav-content"]],hostAttrs:[1,"mat-drawer-content","mat-sidenav-content"],features:[jn([{provide:tr,useExisting:r}]),pe],ngContentSelectors:na,decls:1,vars:0,template:function(t,i){t&1&&(ai(),xt(0))},encapsulation:2,changeDetection:0})}return r})(),Ns=(()=>{class r extends Os{get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(e){this._fixedInViewport=gn(e)}_fixedInViewport=!1;get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(e){this._fixedTopGap=$a(e)}_fixedTopGap=0;get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(e){this._fixedBottomGap=$a(e)}_fixedBottomGap=0;static \u0275fac=(()=>{let e;return function(i){return(e||(e=Un(r)))(i||r)}})();static \u0275cmp=U({type:r,selectors:[["mat-sidenav"]],hostAttrs:[1,"mat-drawer","mat-sidenav"],hostVars:16,hostBindings:function(t,i){t&2&&(ce("tabIndex",i.mode!=="side"?"-1":null)("align",null),xe("top",i.fixedInViewport?i.fixedTopGap:null,"px")("bottom",i.fixedInViewport?i.fixedBottomGap:null,"px"),Ft("mat-drawer-end",i.position==="end")("mat-drawer-over",i.mode==="over")("mat-drawer-push",i.mode==="push")("mat-drawer-side",i.mode==="side")("mat-sidenav-fixed",i.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[jn([{provide:Os,useExisting:r}]),pe],ngContentSelectors:na,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,i){t&1&&(ai(),v(0,"div",1,0),xt(2),C())},dependencies:[tr],encapsulation:2,changeDetection:0})}return r})(),Vh=(()=>{class r extends Is{_allDrawers=void 0;_content=void 0;static \u0275fac=(()=>{let e;return function(i){return(e||(e=Un(r)))(i||r)}})();static \u0275cmp=U({type:r,selectors:[["mat-sidenav-container"]],contentQueries:function(t,i,o){if(t&1&&(mn(o,ia,5),mn(o,Ns,5)),t&2){let a;Ge(a=qe())&&(i._content=a.first),Ge(a=qe())&&(i._allDrawers=a)}},hostAttrs:[1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(t,i){t&2&&Ft("mat-drawer-container-explicit-backdrop",i._backdropOverride)},exportAs:["matSidenavContainer"],features:[jn([{provide:Rs,useExisting:r},{provide:Is,useExisting:r}]),pe],ngContentSelectors:kg,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(t,i){t&1&&(ai(Sg),Ae(0,Tg,1,2,"div",0),xt(1),xt(2,1),Ae(3,xg,2,0,"mat-sidenav-content")),t&2&&(Oe(i.hasBackdrop?0:-1),D(3),Oe(i._content?-1:3))},dependencies:[ia],styles:[Eg],encapsulation:2,changeDetection:0})}return r})(),Lh=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=oi({type:r});static \u0275inj=ri({imports:[er,Qa,Qa,er]})}return r})();var Fh=(()=>{class r{svgIcon=G.required();iconSize=G.required();label=G.required();constructor(){let e=M(id),t=M(Qn);e.addSvgIconSet(t.bypassSecurityTrustResourceUrl("assets/svg/icons.svg"))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["tile-large-icon"]],inputs:{svgIcon:[1,"svgIcon"],iconSize:[1,"iconSize"],label:[1,"label"]},decls:3,vars:6,consts:[["aria-hidden","false",3,"svgIcon"],[1,"large-icon-tile-label"]],template:function(t,i){t&1&&(B(0,"mat-icon",0),v(1,"p",1),P(2),C()),t&2&&(xe("width",i.iconSize(),"px")("height",i.iconSize(),"px"),j("svgIcon",i.svgIcon()),D(2),rt(i.label()))},dependencies:[Pt,di,So],styles:["[_nghost-%COMP%]{display:block;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;padding:10px}[_nghost-%COMP%]:hover{background-color:var(--mat-sys-inverse-on-surface)}[_nghost-%COMP%]:focus-visible{background-color:var(--mat-sys-surface-bright);outline:-webkit-focus-ring-color auto 0px}.large-icon-tile-label[_ngcontent-%COMP%]{cursor:pointer;color:var(--mat-sys-outline)}"]})}return r})();function Ag(r,n){if(r&1){let e=ee();v(0,"button",7),F("click",function(){z(e);let i=re(2);return V(i.onActionItem("toggleFullScreen"))}),v(1,"span",5),P(2,"fullscreen"),C()()}}function Og(r,n){if(r&1){let e=ee();v(0,"button",7),F("click",function(){z(e);let i=re(2);return V(i.onActionItem("toggleFullScreen"))}),v(1,"span",5),P(2,"close_fullscreen"),C()()}}function Ig(r,n){if(r&1&&Ae(0,Ag,3,0,"button",6)(1,Og,3,0,"button",6),r&2){let e=re();Oe(e.uiEvent.fullscreenStatus()?1:0)}}function Rg(r,n){if(r&1){let e=ee();v(0,"button",4),F("click",function(){z(e);let i=re(2);return V(i.onActionItem("nightMode"))}),v(1,"span",5),P(2,"mode_night"),C()()}}function Ng(r,n){if(r&1){let e=ee();v(0,"button",4),F("click",function(){z(e);let i=re(2);return V(i.onActionItem("nightMode"))}),v(1,"span",5),P(2,"light_mode"),C()()}}function Wg(r,n){if(r&1&&Ae(0,Rg,3,0,"button",8)(1,Ng,3,0,"button",8),r&2){let e=re();Oe(e.app.isNightMode()?1:0)}}function Bg(r,n){if(r&1){let e=ee();v(0,"tile-large-icon",9),F("click",function(){let i=z(e).$implicit,o=re();return V(o.onActionItem(i.action))}),C()}if(r&2){let e=n.$implicit;j("svgIcon",e.svgIcon)("iconSize",e.iconSize)("label",e.label)}}var Hh=(()=>{class r{actionsSidenav=G.required();_router=M(go);uiEvent=M(rr);dashboard=M(ct);app=M(Dt);_settings=M(Ht);isAutoNightMode=Ut(this._settings.getAutoNightModeAsO(),{requireSync:!0});menuItems=[{svgIcon:"dashboard",iconSize:48,label:"Dashboards",action:"dashboards"},{svgIcon:"troubleshoot",iconSize:48,label:"Data Inspector",action:"datainspector"},{svgIcon:"dataset",iconSize:48,label:"Datasets",action:"datasets"},{svgIcon:"configuration",iconSize:48,label:"Configurations",action:"configurations"},{svgIcon:"settings",iconSize:48,label:"Settings",action:"settings"},{svgIcon:"help-center",iconSize:48,label:"Help",action:"help"}];constructor(){}ngAfterViewInit(){this.uiEvent.addHotkeyListener((e,t)=>this.handleKeyDown(e,t),{ctrlKey:!0,shiftKey:!0,keys:["e","f","n"]})}ngOnDestroy(){this.uiEvent.removeHotkeyListener(this.handleKeyDown.bind(this))}handleKeyDown(e,t){switch(e){case"e":this.onActionItem("layout");break;case"f":this.onActionItem("toggleFullScreen");break;case"n":this.onActionItem("nightMode");break;default:break}}onActionItem(e){switch(this.actionsSidenav().close(),e){case"help":this._router.navigate(["/help"]);break;case"dashboards":this._router.navigate(["/dashboards"]);break;case"datainspector":this._router.navigate(["/data"]);break;case"datasets":this._router.navigate(["/datasets"]);break;case"configurations":this._router.navigate(["/configurations"]);break;case"toggleFullScreen":this.uiEvent.toggleFullScreen();break;case"settings":this._router.navigate(["/settings"]);break;case"layout":this.dashboard.toggleStaticDashboard();break;case"nightMode":this.app.isNightMode.set(!this.app.isNightMode()),this.app.toggleDayNightMode();break;default:break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["menu-actions"]],inputs:{actionsSidenav:[1,"actionsSidenav"]},decls:10,vars:2,consts:[[1,"actions-container","actions-top-container"],[1,"menu-item-container"],["tabindex","0",3,"svgIcon","iconSize","label"],[1,"actions-container","actions-bottom-container"],["mat-flat-button","",1,"action-button",3,"click"],[1,"material-icons"],["mat-flat-button","","tabindex","0",1,"action-button"],["mat-flat-button","","tabindex","0",1,"action-button",3,"click"],["mat-flat-button","",1,"action-button"],["tabindex","0",3,"click","svgIcon","iconSize","label"]],template:function(t,i){t&1&&(v(0,"div",0),Ae(1,Ig,2,1),Ae(2,Wg,2,1),C(),v(3,"div",1),ki(4,Bg,1,3,"tile-large-icon",2,Gn),C(),v(6,"div",3)(7,"button",4),F("click",function(){return i.onActionItem("layout")}),v(8,"span",5),P(9,"lock_open"),C()()()),t&2&&(D(),Oe(i.uiEvent.fullscreenSupported()?1:-1),D(),Oe(i.isAutoNightMode()?-1:2),D(2),Ti(i.menuItems))},dependencies:[Pt,Kt,Gt,Fh],styles:[".actions-container[_ngcontent-%COMP%]{display:grid;grid-auto-flow:column}.actions-top-container[_ngcontent-%COMP%]{position:absolute;top:0;width:100%}.actions-bottom-container[_ngcontent-%COMP%]{position:absolute;bottom:0;width:100%}.action-button[_ngcontent-%COMP%]{border-radius:0;height:48px}.menu-item-container[_ngcontent-%COMP%]{position:absolute;top:48px;width:135px;overflow-y:scroll;overflow-x:hidden;scroll-behavior:smooth;height:calc(100% - 96px)}"]})}return r})();var zg=["actionsSidenav"],Gh=(()=>{class r{_snackBar=M(Bh);_deltaService=M(Yi);_connectionStateMachine=M(Xn);_app=M(Dt);_dashboard=M(ct);_uiEvent=M(rr);_dialog=M(nr);appSettingsService=M(Ht);authenticationService=M(li);_responsive=M(vo);openSidenavEvent=new mt;actionsSidenav=Ce("actionsSidenav");actionsSidenavOpen=Or(!1);notificationsSidenavOpened=Or(!1);isPhonePortrait;notificationsVisibility="hidden";themeName;themeNameSub;appNotificationSub;connectionStatusSub;constructor(){be(()=>{this.appSettingsService.configUpgrade()&&this._dialog.openFrameDialog({title:"Configuration Upgrade",component:"upgrade-config"},!0).subscribe(e=>{})}),this.isPhonePortrait=Ut(this._responsive.observe(_o.HandsetPortrait))}ngOnInit(){this.connectionStatusSub=this._connectionStateMachine.status$.subscribe(e=>{this.displayConnectionsStatusNotification(e)}),this.appNotificationSub=this._app.getSnackbarAppNotifications().subscribe(e=>{if(this._snackBar.open(e.message,"dismiss",{duration:e.duration,verticalPosition:"top"}),!this.appSettingsService.getNotificationConfig().sound.disableSound&&!e.silent){let t=new Uh.Howl({src:["assets/notification.mp3"],autoplay:!0,preload:!0,loop:!1,volume:.3,onend:function(){t=void 0},onloaderror:function(){console.log("snackbar: player onload error"),t.unload(),t=void 0},onplayerror:function(){console.log("snackbar: player locked"),this.howlPlayer.once("unlock",function(){this.howlPlayer.play(),this.howlPlayer.unload(),this.howlPlayer=void 0}),t.unload(),t=void 0}});t.play(),Howler.autoUnlock=!0,Howler.autoSuspend=!1}}),this._uiEvent.addGestureListeners(this.onSwipeLeft.bind(this),this.onSwipeRight.bind(this))}ngAfterViewInit(){this._uiEvent.addHotkeyListener((e,t)=>this.handleKeyDown(e,t),{ctrlKey:!0,keys:["arrowright","arrowleft"]})}handleKeyDown(e,t){e==="arrowright"?this.onSwipeRight(t):e==="arrowleft"&&this.onSwipeLeft(t)}displayConnectionsStatusNotification(e){let t=e.message;switch(e.operation){case 0:this._app.sendSnackbarNotification(t,5e3,!0);break;case 1:this._app.sendSnackbarNotification(t,5e3,!0);break;case 2:this._app.sendSnackbarNotification(t,2e3,!1);break;case 3:this._app.sendSnackbarNotification(t,5e3,!1);break;case 4:this._app.sendSnackbarNotification(t,3e3,!0);break;case 5:this._app.sendSnackbarNotification(t,0,!1);break;default:console.error(`[AppComponent] Unknown operation code: ${e.operation} for state: ${e.state}`),this._app.sendSnackbarNotification(`Unknown connection status: ${e.state}`,0,!1);break}}onSwipeRight(e){this._dashboard.isDashboardStatic()&&!this._uiEvent.isDragging()&&(e.preventDefault(),this.isPhonePortrait().matches?(this.actionsSidenavOpen.set(!1),this.notificationsSidenavOpened.set(!0)):this.notificationsSidenavOpened.set(!0))}onSwipeLeft(e){this._dashboard.isDashboardStatic()&&!this._uiEvent.isDragging()&&(e.preventDefault(),this.isPhonePortrait().matches?(this.notificationsSidenavOpened.set(!1),this.actionsSidenavOpen.set(!0)):this.actionsSidenavOpen.set(!0))}ngOnDestroy(){this.themeNameSub.unsubscribe(),this.appNotificationSub.unsubscribe(),this.connectionStatusSub.unsubscribe(),this._uiEvent.removeGestureListeners(this.onSwipeLeft.bind(this),this.onSwipeRight.bind(this)),this._uiEvent.removeHotkeyListener(this.handleKeyDown.bind(this))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=U({type:r,selectors:[["app-root"]],viewQuery:function(t,i){t&1&&we(i.actionsSidenav,zg,5),t&2&&Ze()},inputs:{actionsSidenavOpen:[1,"actionsSidenavOpen"],notificationsSidenavOpened:[1,"notificationsSidenavOpened"]},outputs:{actionsSidenavOpen:"actionsSidenavOpenChange",notificationsSidenavOpened:"notificationsSidenavOpenedChange"},decls:9,vars:3,consts:[["notificationsSidenav",""],["actionsSidenav",""],[1,"sidenav-container",3,"swipeleft","swiperight"],["mode","over","position","start","autoFocus","true",1,"sidenav-notifications",3,"openedChange","opened"],["mode","over","position","end","autoFocus","true",1,"sidenav-actions",3,"openedChange","opened"],[3,"actionsSidenav"],[1,"router-outlet-container"]],template:function(t,i){if(t&1){let o=ee();v(0,"mat-sidenav-container",2),F("swipeleft",function(l){return z(o),V(i.onSwipeLeft(l))})("swiperight",function(l){return z(o),V(i.onSwipeRight(l))}),v(1,"mat-sidenav",3,0),Me("openedChange",function(l){return z(o),Pe(i.notificationsSidenavOpened,l)||(i.notificationsSidenavOpened=l),V(l)}),B(3,"menu-notifications"),C(),v(4,"mat-sidenav",4,1),Me("openedChange",function(l){return z(o),Pe(i.actionsSidenavOpen,l)||(i.actionsSidenavOpen=l),V(l)}),B(6,"menu-actions",5),C(),v(7,"mat-sidenav-content"),B(8,"router-outlet",6),C()()}if(t&2){let o=Pl(5);D(),De("opened",i.notificationsSidenavOpened),D(3),De("opened",i.actionsSidenavOpen),D(2),j("actionsSidenav",o)}},dependencies:[zh,Hh,Kt,$d,Pt,ed,Kl,Lh,Ns,Vh,ia],styles:[".sidenav-container[_ngcontent-%COMP%]{height:100%;width:100%}mat-sidenav.sidenav-notifications[_ngcontent-%COMP%]{width:230px}mat-sidenav.sidenav-actions[_ngcontent-%COMP%]{width:135px}"]})}return r})();function qh(r){return new Fe(3e3,!1)}function Vg(){return new Fe(3100,!1)}function Lg(){return new Fe(3101,!1)}function Fg(r){return new Fe(3001,!1)}function Hg(r){return new Fe(3003,!1)}function Ug(r){return new Fe(3004,!1)}function $h(r,n){return new Fe(3005,!1)}function Yh(){return new Fe(3006,!1)}function Xh(){return new Fe(3007,!1)}function Qh(r,n){return new Fe(3008,!1)}function Kh(r){return new Fe(3002,!1)}function Zh(r,n,e,t,i){return new Fe(3010,!1)}function Jh(){return new Fe(3011,!1)}function eu(){return new Fe(3012,!1)}function tu(){return new Fe(3200,!1)}function iu(){return new Fe(3202,!1)}function nu(){return new Fe(3013,!1)}function ru(r){return new Fe(3014,!1)}function ou(r){return new Fe(3015,!1)}function au(r){return new Fe(3016,!1)}function su(r,n){return new Fe(3404,!1)}function Gg(r){return new Fe(3502,!1)}function lu(r){return new Fe(3503,!1)}function du(){return new Fe(3300,!1)}function cu(r){return new Fe(3504,!1)}function hu(r){return new Fe(3301,!1)}function uu(r,n){return new Fe(3302,!1)}function mu(r){return new Fe(3303,!1)}function pu(r,n){return new Fe(3400,!1)}function fu(r){return new Fe(3401,!1)}function gu(r){return new Fe(3402,!1)}function vu(r,n){return new Fe(3505,!1)}function Ni(r){switch(r.length){case 0:return new Di;case 1:return r[0];default:return new wn(r)}}function Vs(r,n,e=new Map,t=new Map){let i=[],o=[],a=-1,l=null;if(n.forEach(d=>{let f=d.get("offset"),s=f==a,c=s&&l||new Map;d.forEach((m,y)=>{let _=y,T=m;if(y!=="offset")switch(_=r.normalizePropertyName(_,i),T){case ur:T=e.get(y);break;case hi:T=t.get(y);break;default:T=r.normalizeStyleValue(y,_,T,i);break}c.set(_,T)}),s||o.push(c),l=c,a=f}),i.length)throw Gg(i);return o}function ra(r,n,e,t){switch(n){case"start":r.onStart(()=>t(e&&Ws(e,"start",r)));break;case"done":r.onDone(()=>t(e&&Ws(e,"done",r)));break;case"destroy":r.onDestroy(()=>t(e&&Ws(e,"destroy",r)));break}}function Ws(r,n,e){let t=e.totalTime,i=!!e.disabled,o=oa(r.element,r.triggerName,r.fromState,r.toState,n||r.phaseName,t??r.totalTime,i),a=r._data;return a!=null&&(o._data=a),o}function oa(r,n,e,t,i="",o=0,a){return{element:r,triggerName:n,fromState:e,toState:t,phaseName:i,totalTime:o,disabled:!!a}}function jt(r,n,e){let t=r.get(n);return t||r.set(n,t=e),t}function Ls(r){let n=r.indexOf(":"),e=r.substring(1,n),t=r.slice(n+1);return[e,t]}var qg=typeof document>"u"?null:document.documentElement;function aa(r){let n=r.parentNode||r.host||null;return n===qg?null:n}function jg(r){return r.substring(1,6)=="ebkit"}var Dn=null,jh=!1;function yu(r){Dn||(Dn=$g()||{},jh=Dn.style?"WebkitAppearance"in Dn.style:!1);let n=!0;return Dn.style&&!jg(r)&&(n=r in Dn.style,!n&&jh&&(n="Webkit"+r.charAt(0).toUpperCase()+r.slice(1)in Dn.style)),n}function $g(){return typeof document<"u"?document.body:null}function Fs(r,n){for(;n;){if(n===r)return!0;n=aa(n)}return!1}function Hs(r,n,e){if(e)return Array.from(r.querySelectorAll(n));let t=r.querySelector(n);return t?[t]:[]}var Yg=1e3,Us="{{",Xg="}}",Gs="ng-enter",sa="ng-leave",Hr="ng-trigger",Ur=".ng-trigger",qs="ng-animating",la=".ng-animating";function Mi(r){if(typeof r=="number")return r;let n=r.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Bs(parseFloat(n[1]),n[2])}function Bs(r,n){switch(n){case"s":return r*Yg;default:return r}}function Gr(r,n,e){return r.hasOwnProperty("duration")?r:Qg(r,n,e)}function Qg(r,n,e){let t=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,i,o=0,a="";if(typeof r=="string"){let l=r.match(t);if(l===null)return n.push(qh(r)),{duration:0,delay:0,easing:""};i=Bs(parseFloat(l[1]),l[2]);let d=l[3];d!=null&&(o=Bs(parseFloat(d),l[4]));let f=l[5];f&&(a=f)}else i=r;if(!e){let l=!1,d=n.length;i<0&&(n.push(Vg()),l=!0),o<0&&(n.push(Lg()),l=!0),l&&n.splice(d,0,qh(r))}return{duration:i,delay:o,easing:a}}function bu(r){return r.length?r[0]instanceof Map?r:r.map(n=>new Map(Object.entries(n))):[]}function yi(r,n,e){n.forEach((t,i)=>{let o=da(i);e&&!e.has(i)&&e.set(i,r.style[o]),r.style[o]=t})}function dn(r,n){n.forEach((e,t)=>{let i=da(t);r.style[i]=""})}function Cr(r){return Array.isArray(r)?r.length==1?r[0]:ic(r):r}function _u(r,n,e){let t=n.params||{},i=js(r);i.length&&i.forEach(o=>{t.hasOwnProperty(o)||e.push(Fg(o))})}var zs=new RegExp(`${Us}\\s*(.+?)\\s*${Xg}`,"g");function js(r){let n=[];if(typeof r=="string"){let e;for(;e=zs.exec(r);)n.push(e[1]);zs.lastIndex=0}return n}function Sr(r,n,e){let t=`${r}`,i=t.replace(zs,(o,a)=>{let l=n[a];return l==null&&(e.push(Hg(a)),l=""),l.toString()});return i==t?r:i}var Kg=/-+([a-z0-9])/g;function da(r){return r.replace(Kg,(...n)=>n[1].toUpperCase())}function wu(r,n){return r===0||n===0}function Cu(r,n,e){if(e.size&&n.length){let t=n[0],i=[];if(e.forEach((o,a)=>{t.has(a)||i.push(a),t.set(a,o)}),i.length)for(let o=1;o<n.length;o++){let a=n[o];i.forEach(l=>a.set(l,ca(r,l)))}}return n}function $t(r,n,e){switch(n.type){case Te.Trigger:return r.visitTrigger(n,e);case Te.State:return r.visitState(n,e);case Te.Transition:return r.visitTransition(n,e);case Te.Sequence:return r.visitSequence(n,e);case Te.Group:return r.visitGroup(n,e);case Te.Animate:return r.visitAnimate(n,e);case Te.Keyframes:return r.visitKeyframes(n,e);case Te.Style:return r.visitStyle(n,e);case Te.Reference:return r.visitReference(n,e);case Te.AnimateChild:return r.visitAnimateChild(n,e);case Te.AnimateRef:return r.visitAnimateRef(n,e);case Te.Query:return r.visitQuery(n,e);case Te.Stagger:return r.visitStagger(n,e);default:throw Ug(n.type)}}function ca(r,n){return window.getComputedStyle(r)[n]}var dl=(()=>{class r{validateStyleProperty(e){return yu(e)}containsElement(e,t){return Fs(e,t)}getParentElement(e){return aa(e)}query(e,t,i){return Hs(e,t,i)}computeStyle(e,t,i){return i||""}animate(e,t,i,o,a,l=[],d){return new Di(i,o)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})(),Mn=class{static NOOP=new dl},An=class{};var Zg=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),fa=class extends An{normalizePropertyName(n,e){return da(n)}normalizeStyleValue(n,e,t,i){let o="",a=t.toString().trim();if(Zg.has(e)&&t!==0&&t!=="0")if(typeof t=="number")o="px";else{let l=t.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&l[1].length==0&&i.push($h(n,t))}return a+o}};var ga="*";function Jg(r,n){let e=[];return typeof r=="string"?r.split(/\s*,\s*/).forEach(t=>e0(t,e,n)):e.push(r),e}function e0(r,n,e){if(r[0]==":"){let d=t0(r,e);if(typeof d=="function"){n.push(d);return}r=d}let t=r.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(t==null||t.length<4)return e.push(ou(r)),n;let i=t[1],o=t[2],a=t[3];n.push(Su(i,a));let l=i==ga&&a==ga;o[0]=="<"&&!l&&n.push(Su(a,i))}function t0(r,n){switch(r){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,t)=>parseFloat(t)>parseFloat(e);case":decrement":return(e,t)=>parseFloat(t)<parseFloat(e);default:return n.push(au(r)),"* => *"}}var ha=new Set(["true","1"]),ua=new Set(["false","0"]);function Su(r,n){let e=ha.has(r)||ua.has(r),t=ha.has(n)||ua.has(n);return(i,o)=>{let a=r==ga||r==i,l=n==ga||n==o;return!a&&e&&typeof i=="boolean"&&(a=i?ha.has(r):ua.has(r)),!l&&t&&typeof o=="boolean"&&(l=o?ha.has(n):ua.has(n)),a&&l}}var Iu=":self",i0=new RegExp(`s*${Iu}s*,?`,"g");function Ru(r,n,e,t){return new Zs(r).build(n,e,t)}var ku="",Zs=class{_driver;constructor(n){this._driver=n}build(n,e,t){let i=new Js(e);return this._resetContextStyleTimingState(i),$t(this,Cr(n),i)}_resetContextStyleTimingState(n){n.currentQuerySelector=ku,n.collectedStyles=new Map,n.collectedStyles.set(ku,new Map),n.currentTime=0}visitTrigger(n,e){let t=e.queryCount=0,i=e.depCount=0,o=[],a=[];return n.name.charAt(0)=="@"&&e.errors.push(Yh()),n.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),l.type==Te.State){let d=l,f=d.name;f.toString().split(/\s*,\s*/).forEach(s=>{d.name=s,o.push(this.visitState(d,e))}),d.name=f}else if(l.type==Te.Transition){let d=this.visitTransition(l,e);t+=d.queryCount,i+=d.depCount,a.push(d)}else e.errors.push(Xh())}),{type:Te.Trigger,name:n.name,states:o,transitions:a,queryCount:t,depCount:i,options:null}}visitState(n,e){let t=this.visitStyle(n.styles,e),i=n.options&&n.options.params||null;if(t.containsDynamicStyles){let o=new Set,a=i||{};t.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{js(d).forEach(f=>{a.hasOwnProperty(f)||o.add(f)})})}),o.size&&e.errors.push(Qh(n.name,[...o.values()]))}return{type:Te.State,name:n.name,style:t,options:i?{params:i}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;let t=$t(this,Cr(n.animation),e),i=Jg(n.expr,e.errors);return{type:Te.Transition,matchers:i,animation:t,queryCount:e.queryCount,depCount:e.depCount,options:Pn(n.options)}}visitSequence(n,e){return{type:Te.Sequence,steps:n.steps.map(t=>$t(this,t,e)),options:Pn(n.options)}}visitGroup(n,e){let t=e.currentTime,i=0,o=n.steps.map(a=>{e.currentTime=t;let l=$t(this,a,e);return i=Math.max(i,e.currentTime),l});return e.currentTime=i,{type:Te.Group,steps:o,options:Pn(n.options)}}visitAnimate(n,e){let t=a0(n.timings,e.errors);e.currentAnimateTimings=t;let i,o=n.styles?n.styles:Ii({});if(o.type==Te.Keyframes)i=this.visitKeyframes(o,e);else{let a=n.styles,l=!1;if(!a){l=!0;let f={};t.easing&&(f.easing=t.easing),a=Ii(f)}e.currentTime+=t.duration+t.delay;let d=this.visitStyle(a,e);d.isEmptyStep=l,i=d}return e.currentAnimateTimings=null,{type:Te.Animate,timings:t,style:i,options:null}}visitStyle(n,e){let t=this._makeStyleAst(n,e);return this._validateStyleAst(t,e),t}_makeStyleAst(n,e){let t=[],i=Array.isArray(n.styles)?n.styles:[n.styles];for(let l of i)typeof l=="string"?l===hi?t.push(l):e.errors.push(Kh(l)):t.push(new Map(Object.entries(l)));let o=!1,a=null;return t.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(a=l.get("easing"),l.delete("easing")),!o)){for(let d of l.values())if(d.toString().indexOf(Us)>=0){o=!0;break}}}),{type:Te.Style,styles:t,easing:a,offset:n.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(n,e){let t=e.currentAnimateTimings,i=e.currentTime,o=e.currentTime;t&&o>0&&(o-=t.duration+t.delay),n.styles.forEach(a=>{typeof a!="string"&&a.forEach((l,d)=>{let f=e.collectedStyles.get(e.currentQuerySelector),s=f.get(d),c=!0;s&&(o!=i&&o>=s.startTime&&i<=s.endTime&&(e.errors.push(Zh(d,s.startTime,s.endTime,o,i)),c=!1),o=s.startTime),c&&f.set(d,{startTime:o,endTime:i}),e.options&&_u(l,e.options,e.errors)})})}visitKeyframes(n,e){let t={type:Te.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(Jh()),t;let i=1,o=0,a=[],l=!1,d=!1,f=0,s=n.steps.map(L=>{let Y=this._makeStyleAst(L,e),te=Y.offset!=null?Y.offset:o0(Y.styles),_e=0;return te!=null&&(o++,_e=Y.offset=te),d=d||_e<0||_e>1,l=l||_e<f,f=_e,a.push(_e),Y});d&&e.errors.push(eu()),l&&e.errors.push(tu());let c=n.steps.length,m=0;o>0&&o<c?e.errors.push(iu()):o==0&&(m=i/(c-1));let y=c-1,_=e.currentTime,T=e.currentAnimateTimings,E=T.duration;return s.forEach((L,Y)=>{let te=m>0?Y==y?1:m*Y:a[Y],_e=te*E;e.currentTime=_+T.delay+_e,T.duration=_e,this._validateStyleAst(L,e),L.offset=te,t.styles.push(L)}),t}visitReference(n,e){return{type:Te.Reference,animation:$t(this,Cr(n.animation),e),options:Pn(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:Te.AnimateChild,options:Pn(n.options)}}visitAnimateRef(n,e){return{type:Te.AnimateRef,animation:this.visitReference(n.animation,e),options:Pn(n.options)}}visitQuery(n,e){let t=e.currentQuerySelector,i=n.options||{};e.queryCount++,e.currentQuery=n;let[o,a]=n0(n.selector);e.currentQuerySelector=t.length?t+" "+o:o,jt(e.collectedStyles,e.currentQuerySelector,new Map);let l=$t(this,Cr(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=t,{type:Te.Query,selector:o,limit:i.limit||0,optional:!!i.optional,includeSelf:a,animation:l,originalSelector:n.selector,options:Pn(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(nu());let t=n.timings==="full"?{duration:0,delay:0,easing:"full"}:Gr(n.timings,e.errors,!0);return{type:Te.Stagger,animation:$t(this,Cr(n.animation),e),timings:t,options:null}}};function n0(r){let n=!!r.split(/\s*,\s*/).find(e=>e==Iu);return n&&(r=r.replace(i0,"")),r=r.replace(/@\*/g,Ur).replace(/@\w+/g,e=>Ur+"-"+e.slice(1)).replace(/:animating/g,la),[r,n]}function r0(r){return r?X({},r):null}var Js=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(n){this.errors=n}};function o0(r){if(typeof r=="string")return null;let n=null;if(Array.isArray(r))r.forEach(e=>{if(e instanceof Map&&e.has("offset")){let t=e;n=parseFloat(t.get("offset")),t.delete("offset")}});else if(r instanceof Map&&r.has("offset")){let e=r;n=parseFloat(e.get("offset")),e.delete("offset")}return n}function a0(r,n){if(r.hasOwnProperty("duration"))return r;if(typeof r=="number"){let o=Gr(r,n).duration;return $s(o,0,"")}let e=r;if(e.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=$s(0,0,"");return o.dynamic=!0,o.strValue=e,o}let i=Gr(e,n);return $s(i.duration,i.delay,i.easing)}function Pn(r){return r?(r=X({},r),r.params&&(r.params=r0(r.params))):r={},r}function $s(r,n,e){return{duration:r,delay:n,easing:e}}function cl(r,n,e,t,i,o,a=null,l=!1){return{type:1,element:r,keyframes:n,preStyleProps:e,postStyleProps:t,duration:i,delay:o,totalTime:i+o,easing:a,subTimeline:l}}var jr=class{_map=new Map;get(n){return this._map.get(n)||[]}append(n,e){let t=this._map.get(n);t||this._map.set(n,t=[]),t.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}},s0=1,l0=":enter",d0=new RegExp(l0,"g"),c0=":leave",h0=new RegExp(c0,"g");function Nu(r,n,e,t,i,o=new Map,a=new Map,l,d,f=[]){return new el().buildKeyframes(r,n,e,t,i,o,a,l,d,f)}var el=class{buildKeyframes(n,e,t,i,o,a,l,d,f,s=[]){f=f||new jr;let c=new tl(n,e,f,i,o,s,[]);c.options=d;let m=d.delay?Mi(d.delay):0;c.currentTimeline.delayNextStep(m),c.currentTimeline.setStyles([a],null,c.errors,d),$t(this,t,c);let y=c.timelines.filter(_=>_.containsAnimation());if(y.length&&l.size){let _;for(let T=y.length-1;T>=0;T--){let E=y[T];if(E.element===e){_=E;break}}_&&!_.allowOnlyTimelineStyles()&&_.setStyles([l],null,c.errors,d)}return y.length?y.map(_=>_.buildKeyframes()):[cl(e,[],[],[],0,m,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){let t=e.subInstructions.get(e.element);if(t){let i=e.createSubContext(n.options),o=e.currentTimeline.currentTime,a=this._visitSubInstructions(t,i,i.options);o!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){let t=e.createSubContext(n.options);t.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,t),this.visitReference(n.animation,t),e.transformIntoNewTimeline(t.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,t){for(let i of n){let o=i?.delay;if(o){let a=typeof o=="number"?o:Mi(Sr(o,i?.params??{},e.errors));t.delayNextStep(a)}}}_visitSubInstructions(n,e,t){let o=e.currentTimeline.currentTime,a=t.duration!=null?Mi(t.duration):null,l=t.delay!=null?Mi(t.delay):null;return a!==0&&n.forEach(d=>{let f=e.appendInstructionToTimeline(d,a,l);o=Math.max(o,f.duration+f.delay)}),o}visitReference(n,e){e.updateOptions(n.options,!0),$t(this,n.animation,e),e.previousNode=n}visitSequence(n,e){let t=e.subContextCount,i=e,o=n.options;if(o&&(o.params||o.delay)&&(i=e.createSubContext(o),i.transformIntoNewTimeline(),o.delay!=null)){i.previousNode.type==Te.Style&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=va);let a=Mi(o.delay);i.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>$t(this,a,i)),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>t&&i.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){let t=[],i=e.currentTimeline.currentTime,o=n.options&&n.options.delay?Mi(n.options.delay):0;n.steps.forEach(a=>{let l=e.createSubContext(n.options);o&&l.delayNextStep(o),$t(this,a,l),i=Math.max(i,l.currentTimeline.currentTime),t.push(l.currentTimeline)}),t.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(i),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){let t=n.strValue,i=e.params?Sr(t,e.params,e.errors):t;return Gr(i,e.errors)}else return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){let t=e.currentAnimateTimings=this._visitTiming(n.timings,e),i=e.currentTimeline;t.delay&&(e.incrementTime(t.delay),i.snapshotCurrentStyles());let o=n.style;o.type==Te.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(t.duration),this.visitStyle(o,e),i.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){let t=e.currentTimeline,i=e.currentAnimateTimings;!i&&t.hasCurrentStyleProperties()&&t.forwardFrame();let o=i&&i.easing||n.easing;n.isEmptyStep?t.applyEmptyStep(o):t.setStyles(n.styles,o,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){let t=e.currentAnimateTimings,i=e.currentTimeline.duration,o=t.duration,l=e.createSubContext().currentTimeline;l.easing=t.easing,n.styles.forEach(d=>{let f=d.offset||0;l.forwardTime(f*o),l.setStyles(d.styles,d.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(i+o),e.previousNode=n}visitQuery(n,e){let t=e.currentTimeline.currentTime,i=n.options||{},o=i.delay?Mi(i.delay):0;o&&(e.previousNode.type===Te.Style||t==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=va);let a=t,l=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!i.optional,e.errors);e.currentQueryTotal=l.length;let d=null;l.forEach((f,s)=>{e.currentQueryIndex=s;let c=e.createSubContext(n.options,f);o&&c.delayNextStep(o),f===e.element&&(d=c.currentTimeline),$t(this,n.animation,c),c.currentTimeline.applyStylesToKeyframe();let m=c.currentTimeline.currentTime;a=Math.max(a,m)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),d&&(e.currentTimeline.mergeTimelineCollectedStyles(d),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){let t=e.parentContext,i=e.currentTimeline,o=n.timings,a=Math.abs(o.duration),l=a*(e.currentQueryTotal-1),d=a*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":d=l-d;break;case"full":d=t.currentStaggerTime;break}let s=e.currentTimeline;d&&s.delayNextStep(d);let c=s.currentTime;$t(this,n.animation,e),e.previousNode=n,t.currentStaggerTime=i.currentTime-c+(i.startTime-t.currentTimeline.startTime)}},va={},tl=class r{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=va;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(n,e,t,i,o,a,l,d){this._driver=n,this.element=e,this.subInstructions=t,this._enterClassName=i,this._leaveClassName=o,this.errors=a,this.timelines=l,this.currentTimeline=d||new ya(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;let t=n,i=this.options;t.duration!=null&&(i.duration=Mi(t.duration)),t.delay!=null&&(i.delay=Mi(t.delay));let o=t.params;if(o){let a=i.params;a||(a=this.options.params={}),Object.keys(o).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=Sr(o[l],a,this.errors))})}}_copyOptions(){let n={};if(this.options){let e=this.options.params;if(e){let t=n.params={};Object.keys(e).forEach(i=>{t[i]=e[i]})}}return n}createSubContext(n=null,e,t){let i=e||this.element,o=new r(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,t||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(n),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(n){return this.previousNode=va,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,t){let i={duration:e??n.duration,delay:this.currentTimeline.currentTime+(t??0)+n.delay,easing:""},o=new il(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,i,n.stretchStartingKeyframe);return this.timelines.push(o),i}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,t,i,o,a){let l=[];if(i&&l.push(this.element),n.length>0){n=n.replace(d0,"."+this._enterClassName),n=n.replace(h0,"."+this._leaveClassName);let d=t!=1,f=this._driver.query(this.element,n,d);t!==0&&(f=t<0?f.slice(f.length+t,f.length):f.slice(0,t)),l.push(...f)}return!o&&l.length==0&&a.push(ru(e)),l}},ya=class r{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(n,e,t,i){this._driver=n,this.element=e,this.startTime=t,this._elementTimelineStylesLookup=i,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new r(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=s0,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,t]of this._globalTimelineStyles)this._backFill.set(e,t||hi),this._currentKeyframe.set(e,hi);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,t,i){e&&this._previousKeyframe.set("easing",e);let o=i&&i.params||{},a=u0(n,this._globalTimelineStyles);for(let[l,d]of a){let f=Sr(d,o,t);this._pendingStyles.set(l,f),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??hi),this._updateStyle(l,f)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,t)=>{let i=this._styleSummary.get(t);(!i||e.time>i.time)&&this._updateStyle(t,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let n=new Set,e=new Set,t=this._keyframes.size===1&&this.duration===0,i=[];this._keyframes.forEach((l,d)=>{let f=new Map([...this._backFill,...l]);f.forEach((s,c)=>{s===ur?n.add(c):s===hi&&e.add(c)}),t||f.set("offset",d/this.duration),i.push(f)});let o=[...n.values()],a=[...e.values()];if(t){let l=i[0],d=new Map(l);l.set("offset",0),d.set("offset",1),i=[l,d]}return cl(this.element,i,o,a,this.duration,this.startTime,this.easing,!1)}},il=class extends ya{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(n,e,t,i,o,a,l=!1){super(n,e,a.delay),this.keyframes=t,this.preStyleProps=i,this.postStyleProps=o,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:t,easing:i}=this.timings;if(this._stretchStartingKeyframe&&e){let o=[],a=t+e,l=e/a,d=new Map(n[0]);d.set("offset",0),o.push(d);let f=new Map(n[0]);f.set("offset",Tu(l)),o.push(f);let s=n.length-1;for(let c=1;c<=s;c++){let m=new Map(n[c]),y=m.get("offset"),_=e+y*t;m.set("offset",Tu(_/a)),o.push(m)}t=a,e=0,i="",n=o}return cl(this.element,n,this.preStyleProps,this.postStyleProps,t,e,i,!0)}};function Tu(r,n=3){let e=Math.pow(10,n-1);return Math.round(r*e)/e}function u0(r,n){let e=new Map,t;return r.forEach(i=>{if(i==="*"){t??=n.keys();for(let o of t)e.set(o,hi)}else for(let[o,a]of i)e.set(o,a)}),e}function xu(r,n,e,t,i,o,a,l,d,f,s,c,m){return{type:0,element:r,triggerName:n,isRemovalTransition:i,fromState:e,fromStyles:o,toState:t,toStyles:a,timelines:l,queriedElements:d,preStyleProps:f,postStyleProps:s,totalTime:c,errors:m}}var Ys={},ba=class{_triggerName;ast;_stateStyles;constructor(n,e,t){this._triggerName=n,this.ast=e,this._stateStyles=t}match(n,e,t,i){return m0(this.ast.matchers,n,e,t,i)}buildStyles(n,e,t){let i=this._stateStyles.get("*");return n!==void 0&&(i=this._stateStyles.get(n?.toString())||i),i?i.buildStyles(e,t):new Map}build(n,e,t,i,o,a,l,d,f,s){let c=[],m=this.ast.options&&this.ast.options.params||Ys,y=l&&l.params||Ys,_=this.buildStyles(t,y,c),T=d&&d.params||Ys,E=this.buildStyles(i,T,c),L=new Set,Y=new Map,te=new Map,_e=i==="void",He={params:Wu(T,m),delay:this.ast.options?.delay},je=s?[]:Nu(n,e,this.ast.animation,o,a,_,E,He,f,c),Je=0;return je.forEach(se=>{Je=Math.max(se.duration+se.delay,Je)}),c.length?xu(e,this._triggerName,t,i,_e,_,E,[],[],Y,te,Je,c):(je.forEach(se=>{let ht=se.element,lt=jt(Y,ht,new Set);se.preStyleProps.forEach(ft=>lt.add(ft));let Wt=jt(te,ht,new Set);se.postStyleProps.forEach(ft=>Wt.add(ft)),ht!==e&&L.add(ht)}),xu(e,this._triggerName,t,i,_e,_,E,je,[...L.values()],Y,te,Je))}};function m0(r,n,e,t,i){return r.some(o=>o(n,e,t,i))}function Wu(r,n){let e=X({},n);return Object.entries(r).forEach(([t,i])=>{i!=null&&(e[t]=i)}),e}var nl=class{styles;defaultParams;normalizer;constructor(n,e,t){this.styles=n,this.defaultParams=e,this.normalizer=t}buildStyles(n,e){let t=new Map,i=Wu(n,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((a,l)=>{a&&(a=Sr(a,i,e));let d=this.normalizer.normalizePropertyName(l,e);a=this.normalizer.normalizeStyleValue(l,d,a,e),t.set(l,a)})}),t}};function p0(r,n,e){return new rl(r,n,e)}var rl=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(n,e,t){this.name=n,this.ast=e,this._normalizer=t,e.states.forEach(i=>{let o=i.options&&i.options.params||{};this.states.set(i.name,new nl(i.style,o,t))}),Eu(this.states,"true","1"),Eu(this.states,"false","0"),e.transitions.forEach(i=>{this.transitionFactories.push(new ba(n,i,this.states))}),this.fallbackTransition=f0(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,t,i){return this.transitionFactories.find(a=>a.match(n,e,t,i))||null}matchStyles(n,e,t){return this.fallbackTransition.buildStyles(n,e,t)}};function f0(r,n,e){let t=[(a,l)=>!0],i={type:Te.Sequence,steps:[],options:null},o={type:Te.Transition,animation:i,matchers:t,options:null,queryCount:0,depCount:0};return new ba(r,o,n)}function Eu(r,n,e){r.has(n)?r.has(e)||r.set(e,r.get(n)):r.has(e)&&r.set(n,r.get(e))}var g0=new jr,ol=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(n,e,t){this.bodyNode=n,this._driver=e,this._normalizer=t}register(n,e){let t=[],i=[],o=Ru(this._driver,e,t,i);if(t.length)throw lu(t);this._animations.set(n,o)}_buildPlayer(n,e,t){let i=n.element,o=Vs(this._normalizer,n.keyframes,e,t);return this._driver.animate(i,o,n.duration,n.delay,n.easing,[],!0)}create(n,e,t={}){let i=[],o=this._animations.get(n),a,l=new Map;if(o?(a=Nu(this._driver,e,o,Gs,sa,new Map,new Map,t,g0,i),a.forEach(s=>{let c=jt(l,s.element,new Map);s.postStyleProps.forEach(m=>c.set(m,null))})):(i.push(du()),a=[]),i.length)throw cu(i);l.forEach((s,c)=>{s.forEach((m,y)=>{s.set(y,this._driver.computeStyle(c,y,hi))})});let d=a.map(s=>{let c=l.get(s.element);return this._buildPlayer(s,new Map,c)}),f=Ni(d);return this._playersById.set(n,f),f.onDestroy(()=>this.destroy(n)),this.players.push(f),f}destroy(n){let e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);let t=this.players.indexOf(e);t>=0&&this.players.splice(t,1)}_getPlayer(n){let e=this._playersById.get(n);if(!e)throw hu(n);return e}listen(n,e,t,i){let o=oa(e,"","","");return ra(this._getPlayer(n),t,o,i),()=>{}}command(n,e,t,i){if(t=="register"){this.register(n,i[0]);return}if(t=="create"){let a=i[0]||{};this.create(n,e,a);return}let o=this._getPlayer(n);switch(t){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(n);break}}},Du="ng-animate-queued",v0=".ng-animate-queued",Xs="ng-animate-disabled",y0=".ng-animate-disabled",b0="ng-star-inserted",_0=".ng-star-inserted",w0=[],Bu={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},C0={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},bi="__ng_removed",$r=class{namespaceId;value;options;get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;let t=n&&n.hasOwnProperty("value"),i=t?n.value:n;if(this.value=k0(i),t){let o=n,{value:a}=o,l=pl(o,["value"]);this.options=l}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){let e=n.params;if(e){let t=this.options.params;Object.keys(e).forEach(i=>{t[i]==null&&(t[i]=e[i])})}}},qr="void",Qs=new $r(qr),al=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(n,e,t){this.id=n,this.hostElement=e,this._engine=t,this._hostClassName="ng-tns-"+n,mi(e,this._hostClassName)}listen(n,e,t,i){if(!this._triggers.has(e))throw uu(t,e);if(t==null||t.length==0)throw mu(e);if(!T0(t))throw pu(t,e);let o=jt(this._elementListeners,n,[]),a={name:e,phase:t,callback:i};o.push(a);let l=jt(this._engine.statesByElement,n,new Map);return l.has(e)||(mi(n,Hr),mi(n,Hr+"-"+e),l.set(e,Qs)),()=>{this._engine.afterFlush(()=>{let d=o.indexOf(a);d>=0&&o.splice(d,1),this._triggers.has(e)||l.delete(e)})}}register(n,e){return this._triggers.has(n)?!1:(this._triggers.set(n,e),!0)}_getTrigger(n){let e=this._triggers.get(n);if(!e)throw fu(n);return e}trigger(n,e,t,i=!0){let o=this._getTrigger(e),a=new Yr(this.id,e,n),l=this._engine.statesByElement.get(n);l||(mi(n,Hr),mi(n,Hr+"-"+e),this._engine.statesByElement.set(n,l=new Map));let d=l.get(e),f=new $r(t,this.id);if(!(t&&t.hasOwnProperty("value"))&&d&&f.absorbOptions(d.options),l.set(e,f),d||(d=Qs),!(f.value===qr)&&d.value===f.value){if(!D0(d.params,f.params)){let T=[],E=o.matchStyles(d.value,d.params,T),L=o.matchStyles(f.value,f.params,T);T.length?this._engine.reportError(T):this._engine.afterFlush(()=>{dn(n,E),yi(n,L)})}return}let m=jt(this._engine.playersByElement,n,[]);m.forEach(T=>{T.namespaceId==this.id&&T.triggerName==e&&T.queued&&T.destroy()});let y=o.matchTransition(d.value,f.value,n,f.params),_=!1;if(!y){if(!i)return;y=o.fallbackTransition,_=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:y,fromState:d,toState:f,player:a,isFallbackTransition:_}),_||(mi(n,Du),a.onStart(()=>{kr(n,Du)})),a.onDone(()=>{let T=this.players.indexOf(a);T>=0&&this.players.splice(T,1);let E=this._engine.playersByElement.get(n);if(E){let L=E.indexOf(a);L>=0&&E.splice(L,1)}}),this.players.push(a),m.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,t)=>{this._elementListeners.set(t,e.filter(i=>i.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);let e=this._engine.playersByElement.get(n);e&&(e.forEach(t=>t.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){let t=this._engine.driver.query(n,Ur,!0);t.forEach(i=>{if(i[bi])return;let o=this._engine.fetchNamespacesByElement(i);o.size?o.forEach(a=>a.triggerLeaveAnimation(i,e,!1,!0)):this.clearElementCache(i)}),this._engine.afterFlushAnimationsDone(()=>t.forEach(i=>this.clearElementCache(i)))}triggerLeaveAnimation(n,e,t,i){let o=this._engine.statesByElement.get(n),a=new Map;if(o){let l=[];if(o.forEach((d,f)=>{if(a.set(f,d.value),this._triggers.has(f)){let s=this.trigger(n,f,qr,i);s&&l.push(s)}}),l.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),t&&Ni(l).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){let e=this._elementListeners.get(n),t=this._engine.statesByElement.get(n);if(e&&t){let i=new Set;e.forEach(o=>{let a=o.name;if(i.has(a))return;i.add(a);let d=this._triggers.get(a).fallbackTransition,f=t.get(a)||Qs,s=new $r(qr),c=new Yr(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:d,fromState:f,toState:s,player:c,isFallbackTransition:!0})})}}removeNode(n,e){let t=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let i=!1;if(t.totalAnimations){let o=t.players.length?t.playersByQueriedElement.get(n):[];if(o&&o.length)i=!0;else{let a=n;for(;a=a.parentNode;)if(t.statesByElement.get(a)){i=!0;break}}}if(this.prepareLeaveAnimationListeners(n),i)t.markElementAsRemoved(this.id,n,!1,e);else{let o=n[bi];(!o||o===Bu)&&(t.afterFlush(()=>this.clearElementCache(n)),t.destroyInnerAnimations(n),t._onRemovalComplete(n,e))}}insertNode(n,e){mi(n,this._hostClassName)}drainQueuedTransitions(n){let e=[];return this._queue.forEach(t=>{let i=t.player;if(i.destroyed)return;let o=t.element,a=this._elementListeners.get(o);a&&a.forEach(l=>{if(l.name==t.triggerName){let d=oa(o,t.triggerName,t.fromState.value,t.toState.value);d._data=n,ra(t.player,l.phase,d,l.callback)}}),i.markedForDestroy?this._engine.afterFlush(()=>{i.destroy()}):e.push(t)}),this._queue=[],e.sort((t,i)=>{let o=t.transition.ast.depCount,a=i.transition.ast.depCount;return o==0||a==0?o-a:this._engine.driver.containsElement(t.element,i.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}},sl=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(n,e)=>{};_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,t){this.bodyNode=n,this.driver=e,this._normalizer=t}get queuedPlayers(){let n=[];return this._namespaceList.forEach(e=>{e.players.forEach(t=>{t.queued&&n.push(t)})}),n}createNamespace(n,e){let t=new al(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(t,e):(this.newHostElements.set(e,t),this.collectEnterElement(e)),this._namespaceLookup[n]=t}_balanceNamespaceList(n,e){let t=this._namespaceList,i=this.namespacesByHostElement;if(t.length-1>=0){let a=!1,l=this.driver.getParentElement(e);for(;l;){let d=i.get(l);if(d){let f=t.indexOf(d);t.splice(f+1,0,n),a=!0;break}l=this.driver.getParentElement(l)}a||t.unshift(n)}else t.push(n);return i.set(e,n),n}register(n,e){let t=this._namespaceLookup[n];return t||(t=this.createNamespace(n,e)),t}registerTrigger(n,e,t){let i=this._namespaceLookup[n];i&&i.register(e,t)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let t=this._fetchNamespace(n);this.namespacesByHostElement.delete(t.hostElement);let i=this._namespaceList.indexOf(t);i>=0&&this._namespaceList.splice(i,1),t.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){let e=new Set,t=this.statesByElement.get(n);if(t){for(let i of t.values())if(i.namespaceId){let o=this._fetchNamespace(i.namespaceId);o&&e.add(o)}}return e}trigger(n,e,t,i){if(ma(e)){let o=this._fetchNamespace(n);if(o)return o.trigger(e,t,i),!0}return!1}insertNode(n,e,t,i){if(!ma(e))return;let o=e[bi];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){let a=this._fetchNamespace(n);a&&a.insertNode(e,t)}i&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),mi(n,Xs)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),kr(n,Xs))}removeNode(n,e,t){if(ma(e)){let i=n?this._fetchNamespace(n):null;i?i.removeNode(e,t):this.markElementAsRemoved(n,e,!1,t);let o=this.namespacesByHostElement.get(e);o&&o.id!==n&&o.removeNode(e,t)}else this._onRemovalComplete(e,t)}markElementAsRemoved(n,e,t,i,o){this.collectedLeaveElements.push(e),e[bi]={namespaceId:n,setForRemoval:i,hasAnimation:t,removedBeforeQueried:!1,previousTriggersValues:o}}listen(n,e,t,i,o){return ma(e)?this._fetchNamespace(n).listen(e,t,i,o):()=>{}}_buildInstruction(n,e,t,i,o){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,t,i,n.fromState.options,n.toState.options,e,o)}destroyInnerAnimations(n){let e=this.driver.query(n,Ur,!0);e.forEach(t=>this.destroyActiveAnimationsForElement(t)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(n,la,!0),e.forEach(t=>this.finishActiveQueriedAnimationOnElement(t)))}destroyActiveAnimationsForElement(n){let e=this.playersByElement.get(n);e&&e.forEach(t=>{t.queued?t.markedForDestroy=!0:t.destroy()})}finishActiveQueriedAnimationOnElement(n){let e=this.playersByQueriedElement.get(n);e&&e.forEach(t=>t.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Ni(this.players).onDone(()=>n());n()})}processLeaveNode(n){let e=n[bi];if(e&&e.setForRemoval){if(n[bi]=Bu,e.namespaceId){this.destroyInnerAnimations(n);let t=this._fetchNamespace(e.namespaceId);t&&t.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(Xs)&&this.markElementAsDisabled(n,!1),this.driver.query(n,y0,!0).forEach(t=>{this.markElementAsDisabled(t,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((t,i)=>this._balanceNamespaceList(t,i)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let t=0;t<this.collectedEnterElements.length;t++){let i=this.collectedEnterElements[t];mi(i,b0)}if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){let t=[];try{e=this._flushAnimations(t,n)}finally{for(let i=0;i<t.length;i++)t[i]()}}else for(let t=0;t<this.collectedLeaveElements.length;t++){let i=this.collectedLeaveElements[t];this.processLeaveNode(i)}if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(t=>t()),this._flushFns=[],this._whenQuietFns.length){let t=this._whenQuietFns;this._whenQuietFns=[],e.length?Ni(e).onDone(()=>{t.forEach(i=>i())}):t.forEach(i=>i())}}reportError(n){throw gu(n)}_flushAnimations(n,e){let t=new jr,i=[],o=new Map,a=[],l=new Map,d=new Map,f=new Map,s=new Set;this.disabledNodes.forEach(Q=>{s.add(Q);let ne=this.driver.query(Q,v0,!0);for(let le=0;le<ne.length;le++)s.add(ne[le])});let c=this.bodyNode,m=Array.from(this.statesByElement.keys()),y=Au(m,this.collectedEnterElements),_=new Map,T=0;y.forEach((Q,ne)=>{let le=Gs+T++;_.set(ne,le),Q.forEach(Ie=>mi(Ie,le))});let E=[],L=new Set,Y=new Set;for(let Q=0;Q<this.collectedLeaveElements.length;Q++){let ne=this.collectedLeaveElements[Q],le=ne[bi];le&&le.setForRemoval&&(E.push(ne),L.add(ne),le.hasAnimation?this.driver.query(ne,_0,!0).forEach(Ie=>L.add(Ie)):Y.add(ne))}let te=new Map,_e=Au(m,Array.from(L));_e.forEach((Q,ne)=>{let le=sa+T++;te.set(ne,le),Q.forEach(Ie=>mi(Ie,le))}),n.push(()=>{y.forEach((Q,ne)=>{let le=_.get(ne);Q.forEach(Ie=>kr(Ie,le))}),_e.forEach((Q,ne)=>{let le=te.get(ne);Q.forEach(Ie=>kr(Ie,le))}),E.forEach(Q=>{this.processLeaveNode(Q)})});let He=[],je=[];for(let Q=this._namespaceList.length-1;Q>=0;Q--)this._namespaceList[Q].drainQueuedTransitions(e).forEach(le=>{let Ie=le.player,dt=le.element;if(He.push(Ie),this.collectedEnterElements.length){let tt=dt[bi];if(tt&&tt.setForMove){if(tt.previousTriggersValues&&tt.previousTriggersValues.has(le.triggerName)){let Ue=tt.previousTriggersValues.get(le.triggerName),Xe=this.statesByElement.get(le.element);if(Xe&&Xe.has(le.triggerName)){let ei=Xe.get(le.triggerName);ei.value=Ue,Xe.set(le.triggerName,ei)}}Ie.destroy();return}}let bt=!c||!this.driver.containsElement(c,dt),_t=te.get(dt),Ot=_.get(dt),et=this._buildInstruction(le,t,Ot,_t,bt);if(et.errors&&et.errors.length){je.push(et);return}if(bt){Ie.onStart(()=>dn(dt,et.fromStyles)),Ie.onDestroy(()=>yi(dt,et.toStyles)),i.push(Ie);return}if(le.isFallbackTransition){Ie.onStart(()=>dn(dt,et.fromStyles)),Ie.onDestroy(()=>yi(dt,et.toStyles)),i.push(Ie);return}let On=[];et.timelines.forEach(tt=>{tt.stretchStartingKeyframe=!0,this.disabledNodes.has(tt.element)||On.push(tt)}),et.timelines=On,t.append(dt,et.timelines);let gt={instruction:et,player:Ie,element:dt};a.push(gt),et.queriedElements.forEach(tt=>jt(l,tt,[]).push(Ie)),et.preStyleProps.forEach((tt,Ue)=>{if(tt.size){let Xe=d.get(Ue);Xe||d.set(Ue,Xe=new Set),tt.forEach((ei,pi)=>Xe.add(pi))}}),et.postStyleProps.forEach((tt,Ue)=>{let Xe=f.get(Ue);Xe||f.set(Ue,Xe=new Set),tt.forEach((ei,pi)=>Xe.add(pi))})});if(je.length){let Q=[];je.forEach(ne=>{Q.push(vu(ne.triggerName,ne.errors))}),He.forEach(ne=>ne.destroy()),this.reportError(Q)}let Je=new Map,se=new Map;a.forEach(Q=>{let ne=Q.element;t.has(ne)&&(se.set(ne,ne),this._beforeAnimationBuild(Q.player.namespaceId,Q.instruction,Je))}),i.forEach(Q=>{let ne=Q.element;this._getPreviousPlayers(ne,!1,Q.namespaceId,Q.triggerName,null).forEach(Ie=>{jt(Je,ne,[]).push(Ie),Ie.destroy()})});let ht=E.filter(Q=>Ou(Q,d,f)),lt=new Map;Mu(lt,this.driver,Y,f,hi).forEach(Q=>{Ou(Q,d,f)&&ht.push(Q)});let ft=new Map;y.forEach((Q,ne)=>{Mu(ft,this.driver,new Set(Q),d,ur)}),ht.forEach(Q=>{let ne=lt.get(Q),le=ft.get(Q);lt.set(Q,new Map([...ne?.entries()??[],...le?.entries()??[]]))});let ut=[],At=[],Wi={};a.forEach(Q=>{let{element:ne,player:le,instruction:Ie}=Q;if(t.has(ne)){if(s.has(ne)){le.onDestroy(()=>yi(ne,Ie.toStyles)),le.disabled=!0,le.overrideTotalTime(Ie.totalTime),i.push(le);return}let dt=Wi;if(se.size>1){let _t=ne,Ot=[];for(;_t=_t.parentNode;){let et=se.get(_t);if(et){dt=et;break}Ot.push(_t)}Ot.forEach(et=>se.set(et,dt))}let bt=this._buildAnimation(le.namespaceId,Ie,Je,o,ft,lt);if(le.setRealPlayer(bt),dt===Wi)ut.push(le);else{let _t=this.playersByElement.get(dt);_t&&_t.length&&(le.parentPlayer=Ni(_t)),i.push(le)}}else dn(ne,Ie.fromStyles),le.onDestroy(()=>yi(ne,Ie.toStyles)),At.push(le),s.has(ne)&&i.push(le)}),At.forEach(Q=>{let ne=o.get(Q.element);if(ne&&ne.length){let le=Ni(ne);Q.setRealPlayer(le)}}),i.forEach(Q=>{Q.parentPlayer?Q.syncPlayerEvents(Q.parentPlayer):Q.destroy()});for(let Q=0;Q<E.length;Q++){let ne=E[Q],le=ne[bi];if(kr(ne,sa),le&&le.hasAnimation)continue;let Ie=[];if(l.size){let bt=l.get(ne);bt&&bt.length&&Ie.push(...bt);let _t=this.driver.query(ne,la,!0);for(let Ot=0;Ot<_t.length;Ot++){let et=l.get(_t[Ot]);et&&et.length&&Ie.push(...et)}}let dt=Ie.filter(bt=>!bt.destroyed);dt.length?x0(this,ne,dt):this.processLeaveNode(ne)}return E.length=0,ut.forEach(Q=>{this.players.push(Q),Q.onDone(()=>{Q.destroy();let ne=this.players.indexOf(Q);this.players.splice(ne,1)}),Q.play()}),ut}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,t,i,o){let a=[];if(e){let l=this.playersByQueriedElement.get(n);l&&(a=l)}else{let l=this.playersByElement.get(n);if(l){let d=!o||o==qr;l.forEach(f=>{f.queued||!d&&f.triggerName!=i||a.push(f)})}}return(t||i)&&(a=a.filter(l=>!(t&&t!=l.namespaceId||i&&i!=l.triggerName))),a}_beforeAnimationBuild(n,e,t){let i=e.triggerName,o=e.element,a=e.isRemovalTransition?void 0:n,l=e.isRemovalTransition?void 0:i;for(let d of e.timelines){let f=d.element,s=f!==o,c=jt(t,f,[]);this._getPreviousPlayers(f,s,a,l,e.toState).forEach(y=>{let _=y.getRealPlayer();_.beforeDestroy&&_.beforeDestroy(),y.destroy(),c.push(y)})}dn(o,e.fromStyles)}_buildAnimation(n,e,t,i,o,a){let l=e.triggerName,d=e.element,f=[],s=new Set,c=new Set,m=e.timelines.map(_=>{let T=_.element;s.add(T);let E=T[bi];if(E&&E.removedBeforeQueried)return new Di(_.duration,_.delay);let L=T!==d,Y=E0((t.get(T)||w0).map(Je=>Je.getRealPlayer())).filter(Je=>{let se=Je;return se.element?se.element===T:!1}),te=o.get(T),_e=a.get(T),He=Vs(this._normalizer,_.keyframes,te,_e),je=this._buildPlayer(_,He,Y);if(_.subTimeline&&i&&c.add(T),L){let Je=new Yr(n,l,T);Je.setRealPlayer(je),f.push(Je)}return je});f.forEach(_=>{jt(this.playersByQueriedElement,_.element,[]).push(_),_.onDone(()=>S0(this.playersByQueriedElement,_.element,_))}),s.forEach(_=>mi(_,qs));let y=Ni(m);return y.onDestroy(()=>{s.forEach(_=>kr(_,qs)),yi(d,e.toStyles)}),c.forEach(_=>{jt(i,_,[]).push(y)}),y}_buildPlayer(n,e,t){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,t):new Di(n.duration,n.delay)}},Yr=class{namespaceId;triggerName;element;_player=new Di;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(n,e,t){this.namespaceId=n,this.triggerName=e,this.element=t}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,t)=>{e.forEach(i=>ra(n,t,void 0,i))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){let e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){jt(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){let e=this._player;e.triggerCallback&&e.triggerCallback(n)}};function S0(r,n,e){let t=r.get(n);if(t){if(t.length){let i=t.indexOf(e);t.splice(i,1)}t.length==0&&r.delete(n)}return t}function k0(r){return r??null}function ma(r){return r&&r.nodeType===1}function T0(r){return r=="start"||r=="done"}function Pu(r,n){let e=r.style.display;return r.style.display=n??"none",e}function Mu(r,n,e,t,i){let o=[];e.forEach(d=>o.push(Pu(d)));let a=[];t.forEach((d,f)=>{let s=new Map;d.forEach(c=>{let m=n.computeStyle(f,c,i);s.set(c,m),(!m||m.length==0)&&(f[bi]=C0,a.push(f))}),r.set(f,s)});let l=0;return e.forEach(d=>Pu(d,o[l++])),a}function Au(r,n){let e=new Map;if(r.forEach(l=>e.set(l,[])),n.length==0)return e;let t=1,i=new Set(n),o=new Map;function a(l){if(!l)return t;let d=o.get(l);if(d)return d;let f=l.parentNode;return e.has(f)?d=f:i.has(f)?d=t:d=a(f),o.set(l,d),d}return n.forEach(l=>{let d=a(l);d!==t&&e.get(d).push(l)}),e}function mi(r,n){r.classList?.add(n)}function kr(r,n){r.classList?.remove(n)}function x0(r,n,e){Ni(e).onDone(()=>r.processLeaveNode(n))}function E0(r){let n=[];return zu(r,n),n}function zu(r,n){for(let e=0;e<r.length;e++){let t=r[e];t instanceof wn?zu(t.players,n):n.push(t)}}function D0(r,n){let e=Object.keys(r),t=Object.keys(n);if(e.length!=t.length)return!1;for(let i=0;i<e.length;i++){let o=e[i];if(!n.hasOwnProperty(o)||r[o]!==n[o])return!1}return!0}function Ou(r,n,e){let t=e.get(r);if(!t)return!1;let i=n.get(r);return i?t.forEach(o=>i.add(o)):n.set(r,t),e.delete(r),!0}var Tr=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(n,e)=>{};constructor(n,e,t){this._driver=e,this._normalizer=t,this._transitionEngine=new sl(n.body,e,t),this._timelineEngine=new ol(n.body,e,t),this._transitionEngine.onRemovalComplete=(i,o)=>this.onRemovalComplete(i,o)}registerTrigger(n,e,t,i,o){let a=n+"-"+i,l=this._triggerCache[a];if(!l){let d=[],f=[],s=Ru(this._driver,o,d,f);if(d.length)throw su(i,d);l=p0(i,s,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,i,l)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,t,i){this._transitionEngine.insertNode(n,e,t,i)}onRemove(n,e,t){this._transitionEngine.removeNode(n,e,t)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,t,i){if(t.charAt(0)=="@"){let[o,a]=Ls(t),l=i;this._timelineEngine.command(o,e,a,l)}else this._transitionEngine.trigger(n,e,t,i)}listen(n,e,t,i,o){if(t.charAt(0)=="@"){let[a,l]=Ls(t);return this._timelineEngine.listen(a,e,l,o)}return this._transitionEngine.listen(n,e,t,i,o)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}};function P0(r,n){let e=null,t=null;return Array.isArray(n)&&n.length?(e=Ks(n[0]),n.length>1&&(t=Ks(n[n.length-1]))):n instanceof Map&&(e=Ks(n)),e||t?new M0(r,e,t):null}var M0=(()=>{class r{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,t,i){this._element=e,this._startStyles=t,this._endStyles=i;let o=r.initialStylesByElement.get(e);o||r.initialStylesByElement.set(e,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&yi(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(yi(this._element,this._initialStyles),this._endStyles&&(yi(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(r.initialStylesByElement.delete(this._element),this._startStyles&&(dn(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(dn(this._element,this._endStyles),this._endStyles=null),yi(this._element,this._initialStyles),this._state=3)}}return r})();function Ks(r){let n=null;return r.forEach((e,t)=>{A0(t)&&(n=n||new Map,n.set(t,e))}),n}function A0(r){return r==="display"||r==="position"}var _a=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(n,e,t,i){this.element=n,this.keyframes=e,this.options=t,this._specialStyles=i,this._duration=t.duration,this._delay=t.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){let e=[];return n.forEach(t=>{e.push(Object.fromEntries(t))}),e}_triggerWebAnimation(n,e,t){return n.animate(this._convertKeyframesToObject(e),t)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((t,i)=>{i!=="offset"&&n.set(i,this._finished?t:ca(this.element,i))}),this.currentSnapshot=n}triggerCallback(n){let e=n==="start"?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}},wa=class{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return Fs(n,e)}getParentElement(n){return aa(n)}query(n,e,t){return Hs(n,e,t)}computeStyle(n,e,t){return ca(n,e)}animate(n,e,t,i,o,a=[]){let l=i==0?"both":"forwards",d={duration:t,delay:i,fill:l};o&&(d.easing=o);let f=new Map,s=a.filter(y=>y instanceof _a);wu(t,i)&&s.forEach(y=>{y.currentSnapshot.forEach((_,T)=>f.set(T,_))});let c=bu(e).map(y=>new Map(y));c=Cu(n,c,f);let m=P0(n,c);return new _a(n,c,d,m)}};var pa="@",Vu="@.disabled",Ca=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(n,e,t,i){this.namespaceId=n,this.delegate=e,this.engine=t,this._onDestroy=i}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,t,i=!0){this.delegate.insertBefore(n,e,t),this.engine.onInsert(this.namespaceId,e,n,i)}removeChild(n,e,t){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,t,i){this.delegate.setAttribute(n,e,t,i)}removeAttribute(n,e,t){this.delegate.removeAttribute(n,e,t)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,t,i){this.delegate.setStyle(n,e,t,i)}removeStyle(n,e,t){this.delegate.removeStyle(n,e,t)}setProperty(n,e,t){e.charAt(0)==pa&&e==Vu?this.disableAnimations(n,!!t):this.delegate.setProperty(n,e,t)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,t,i){return this.delegate.listen(n,e,t,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}},ll=class extends Ca{factory;constructor(n,e,t,i,o){super(e,t,i,o),this.factory=n,this.namespaceId=e}setProperty(n,e,t){e.charAt(0)==pa?e.charAt(1)=="."&&e==Vu?(t=t===void 0?!0:!!t,this.disableAnimations(n,t)):this.engine.process(this.namespaceId,n,e.slice(1),t):this.delegate.setProperty(n,e,t)}listen(n,e,t,i){if(e.charAt(0)==pa){let o=O0(n),a=e.slice(1),l="";return a.charAt(0)!=pa&&([a,l]=I0(a)),this.engine.listen(this.namespaceId,o,a,l,d=>{let f=d._data||-1;this.factory.scheduleListenerCallback(f,t,d)})}return this.delegate.listen(n,e,t,i)}};function O0(r){switch(r){case"body":return document.body;case"document":return document;case"window":return window;default:return r}}function I0(r){let n=r.indexOf("."),e=r.substring(0,n),t=r.slice(n+1);return[e,t]}var Sa=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(n,e,t){this.delegate=n,this.engine=e,this._zone=t,e.onRemovalComplete=(i,o)=>{o?.removeChild(null,i)}}createRenderer(n,e){let t="",i=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){let f=this._rendererCache,s=f.get(i);if(!s){let c=()=>f.delete(i);s=new Ca(t,i,this.engine,c),f.set(i,s)}return s}let o=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,n);let l=f=>{Array.isArray(f)?f.forEach(l):this.engine.registerTrigger(o,a,n,f.name,f)};return e.data.animation.forEach(l),new ll(this,a,i,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,t){if(n>=0&&n<this._microtaskId){this._zone.run(()=>e(t));return}let i=this._animationCallbacksBuffer;i.length==0&&queueMicrotask(()=>{this._zone.run(()=>{i.forEach(o=>{let[a,l]=o;a(l)}),this._animationCallbacksBuffer=[]})}),i.push([e,t])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(n){this.engine.flush(),this.delegate.componentReplaced?.(n)}};var N0=(()=>{class r extends Tr{constructor(e,t,i){super(e,t,i)}ngOnDestroy(){this.flush()}static \u0275fac=function(t){return new(t||r)(Hn(Ui),Hn(Mn),Hn(An))};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();function W0(){return new fa}function B0(r,n,e){return new Sa(r,n,e)}var Lu=[{provide:An,useFactory:W0},{provide:Tr,useClass:N0},{provide:Tl,useFactory:B0,deps:[ql,Tr,yt]}],AE=[{provide:Mn,useClass:dl},{provide:Ga,useValue:"NoopAnimations"},...Lu],z0=[{provide:Mn,useFactory:()=>new wa},{provide:Ga,useFactory:()=>"BrowserAnimations"},...Lu];function Fu(){return xl("NgEagerAnimations"),[...z0]}var Hu=11,Uu="connectionConfig",hl=(()=>{class r{config;isLoggedIn=null;loggedInSubscription=null;connection=M(po);auth=M(li);connectionStateMachine=M(Xn);router=M(go);delta=M(Yi);data=M(Xi);storage=M(fo);constructor(){this.loggedInSubscription=this.auth.isLoggedIn$.subscribe(e=>{this.isLoggedIn=e})}initNetworkServices(){return Na(this,null,function*(){this.loadLocalStorageConfig(),this.preloadFonts();try{this.config?.signalKUrl!==void 0&&this.config.signalKUrl!==null&&(yield this.connection.initializeConnection({url:this.config.signalKUrl,new:!1},this.config.proxyEnabled,this.config.signalKSubscribeAll)),!this.isLoggedIn&&this.config?.signalKUrl&&this.config?.useSharedConfig&&this.config?.loginName&&this.config?.loginPassword&&(yield this.login()),this.isLoggedIn&&this.config?.useSharedConfig&&(this.storage.activeConfigFileVersion=Hu,this.storage.sharedConfigName=this.config.sharedConfigName,yield this.storage.getConfig("user",this.config.sharedConfigName,Hu,!0)),!this.isLoggedIn&&this.config?.signalKUrl&&this.config?.useSharedConfig&&this.router.navigate(["/login"])}catch(e){return console.warn("[AppInit Network Service] Services loaded. Connection attempt unsuccessful"),console.error(e),Promise.reject("[AppInit Network Service] Services loaded. Connection issue")}finally{console.log("[AppInit Network Service] Initialization completed"),this.connectionStateMachine.enableWebSocketMode(),this.connectionStateMachine.isHTTPConnected()&&(console.log("[AppInit Network Service] Starting WebSocket connection after initialization"),this.connectionStateMachine.startWebSocketConnection())}})}login(){return Na(this,null,function*(){if(!this.isLoggedIn&&this.config.useSharedConfig&&this.config.loginName&&this.config.loginPassword)try{yield this.auth.login({usr:this.config.loginName,pwd:this.config.loginPassword})}catch(e){e.status===0?this.router.navigate(["/settings"]):e.status===401&&this.router.navigate(["/login"]),console.error("[AppInit Network Service] Login failure. Server returned: "+JSON.stringify(e.error))}})}setLocalStorageConfig(){localStorage.setItem(Uu,JSON.stringify(this.config))}loadLocalStorageConfig(){this.config=JSON.parse(localStorage.getItem(Uu)),this.config?this.config.signalKUrl||(this.config.signalKUrl=window.location.origin,this.setLocalStorageConfig(),console.log(`[AppInit Network Service] Config found with no server URL. Setting Auto-Discovery URL: ${this.config.signalKUrl}`)):(this.config=Fl,this.config.signalKUrl=window.location.origin,console.log(`[AppInit Network Service] Connection Configuration not found. Creating configuration using Auto-Discovery URL: ${this.config.signalKUrl}`),this.setLocalStorageConfig()),this.config.configVersion==9&&(this.config.configVersion=10,this.setLocalStorageConfig(),console.log("[AppInit Network Service] Upgrading Connection version from 9 to 10")),this.config.configVersion==10&&(this.config.configVersion=11,this.setLocalStorageConfig(),console.log("[AppInit Network Service] Upgrading Connection version from 10 to 11"))}preloadFonts(){let e=[{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2)",options:{weight:"300",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2)",options:{weight:"300",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2)",options:{weight:"400",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2)",options:{weight:"400",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2)",options:{weight:"500",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2)",options:{weight:"500",style:"normal"}}];for(let{family:t,src:i,options:o}of e){let a=new FontFace(t,i,o);a.load().then(()=>document.fonts.add(a)).catch(l=>console.log(`[AppInit Network Service] Error loading fonts: ${l}`))}}ngOnDestroy(){this.loggedInSubscription?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();var Gu=(()=>{class r{auth=M(li);authToken=null;authTokenSubscription=null;constructor(){this.authTokenSubscription=this.auth.authToken$.subscribe(e=>{this.authToken=e})}intercept(e,t){let i=e.clone();return this.authToken&&(i=e.clone({headers:e.headers.set("authorization","JWT "+this.authToken.token)})),t.handle(i)}ngOnDestroy(){this.authTokenSubscription?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();var k2=Mr(qu());var V0=r=>()=>r.initNetworkServices().then(()=>{}).catch(()=>{}),L0=(()=>{class r extends Xl{overrides={swipe:{direction:Hammer.DIRECTION_ALL,velocity:.3,threshold:10,domEvents:!0},press:{time:500,domEvents:!0}};options={domEvents:!0};static \u0275fac=(()=>{let e;return function(i){return(e||(e=Un(r)))(i||r)}})();static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();Nh.production&&void 0;jl(Gh,{providers:[wl($l,Ql),{provide:Hl,useClass:Gu,multi:!0},hl,{provide:Dl,useFactory:V0,deps:[hl],multi:!0},{provide:Yl,useClass:L0},{provide:_d,useValue:{hasBackdrop:!0,disableClose:!1,autoFocus:"first-tabbable",delayFocusTrap:!0,backdropClass:"dialogBackdrop"}},{provide:wd,useValue:{appearance:"outline",floatLabel:"always",subscriptSizing:"dynamic"}},{provide:Ud,useValue:{showDelay:1500,hideDelay:0}},li,Xi,po,Yi,Xn,Co,ct,ir,Ht,nn,ea,fo,jd(),Ul(Gl()),Zl(Rh,Jl()),Fu()]});export{L0 as kipHammerConfig};
|
|
232
|
+
`,e.body.appendChild(t)}updateConfig(e){this.widgetUrl=this.resolveUrl(e.widgetUrl)}isValidProtocol(e){try{let t=new URL(e);return t.protocol==="http:"||t.protocol==="https:"}catch(t){return console.warn(`[Embed Widget] Invalid Url: ${e}, Error: ${t}`),!1}}resolveUrl(e){if(!e)return null;try{let t=new URL(e,window.location.origin);return this.isValidProtocol(t.href)?this._sanitizer.bypassSecurityTrustResourceUrl(t.href):null}catch(t){return console.warn(`[Embed Widget] Can't resolve Url: ${e}, Error: ${t}`),null}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-iframe"]],viewQuery:function(t,i){if(t&1&&it(vf,5),t&2){let o;qe(o=je())&&(i.iframe=o.first)}},features:[pe],decls:4,vars:5,consts:[["plainIframe",""],[2,"overflow","hidden",3,"configChange","config","id"],["width","100%","height","100%","frameborder","0",1,"widgetIframe",3,"src"],[2,"padding","15px"],[1,"widgetOverlay"]],template:function(t,i){t&1&&(v(0,"widget-host",1),Pe("configChange",function(a){return Ee(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),L("configChange",function(a){return i.updateConfig(a)}),De(1,yf,2,1,"iframe",2)(2,bf,7,0,"div",3),V(3,"div",4),w()),t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),Me(i.widgetUrl?1:2),P(2),_e("display",i.displayTransparentOverlay()))},dependencies:[Re],styles:[".widgetIframe[_ngcontent-%COMP%]{background-color:#fff;border-radius:var(--mat-card-elevated-container-shape, var(--mat-sys-corner-medium))}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent}"]})}return r})();var ra=(()=>{class r{kipTimers={};constructor(){}createTimer(e,t,i){return e in this.kipTimers?this.kipTimers[e].currentValue.asObservable():(this.kipTimers[e]={currentValue:new Hi(t),timeoutID:null,intervalMS:i},this.kipTimers[e].currentValue.asObservable())}startTimer(e){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&this.kipTimers[e].timeoutID===null&&(this.kipTimers[e].timeoutID=setInterval(()=>{this.kipTimers[e].currentValue.next(this.kipTimers[e].currentValue.value+1)},this.kipTimers[e].intervalMS))}stopTimer(e){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&this.kipTimers[e].timeoutID!==null&&(clearInterval(this.kipTimers[e].timeoutID),this.kipTimers[e].timeoutID=null)}setTimer(e,t){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&this.kipTimers[e].currentValue.next(t)}deleteTimer(e){Object.prototype.hasOwnProperty.call(this.kipTimers,e)&&(this.stopTimer(e),this.kipTimers[e].currentValue.complete(),delete this.kipTimers[e])}isRunning(e){let t=!1;return e in this.kipTimers&&(t=this.kipTimers[e].timeoutID!==null),t}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var _f=["canvasEl"];function wf(r,n){if(r&1){let e=ee();v(0,"button",12),L("click",function(){B(e);let i=ie();return F(i.startTimer())}),D(1," Start "),w()}}function Cf(r,n){if(r&1){let e=ee();v(0,"button",13),L("click",function(){B(e);let i=ie();return F(i.pauseTimer())}),D(1," Pause "),w()}}var Mh=(()=>{class r extends Ie{TimersService=M(ra);canvas=M(At);canvasEl=Be("canvasEl");dataValue=null;zoneState=null;currentValueLength=0;valueFontSize=1;flashOn=!1;flashInterval=null;timerRunning=!1;timeName="race";warnColor=null;warmContrast=null;textColor=null;timerSub=null;canvasCtx=null;constructor(){super(),this.defaultConfig={timerLength:300,color:"contrast"},Se(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.updateCanvas())})}ngOnInit(){this.validateConfig(),this.subscribeTimer(),this.startWidget()}startWidget(){this.getColors(this.widgetProperties.config.color),this.canvasCtx=this.canvasEl().nativeElement.getContext("2d")}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.updateCanvas()}onResized(e){e.contentRect.height<50||e.contentRect.width<50||(this.canvasEl().nativeElement.width!=Math.floor(e.contentRect.width)||this.canvasEl().nativeElement.height!=Math.floor(e.contentRect.height))&&(this.canvasEl().nativeElement.width=Math.floor(e.contentRect.width),this.canvasEl().nativeElement.height=Math.floor(e.contentRect.height/2),this.currentValueLength=0,this.updateCanvas())}subscribeTimer(){this.timerRunning=this.TimersService.isRunning(this.timeName),this.timerSub=this.TimersService.createTimer(this.timeName,-3e3,100).subscribe(e=>{this.dataValue=e,e>0?this.zoneState=ne.Normal:e>-100?this.zoneState=ne.Alarm:e>-300?this.zoneState=ne.Warn:this.zoneState=ne.Normal,this.zoneState==ne.Alarm&&!this.flashInterval?this.flashInterval=setInterval(()=>{this.flashOn=!this.flashOn,this.updateCanvas()},500):this.zoneState!=ne.Alarm&&clearInterval(this.flashInterval),this.updateCanvas()})}startTimer(){this.TimersService.startTimer(this.timeName),this.timerRunning=!0}resetTimer(){this.unsubscribeTimer(),this.TimersService.deleteTimer(this.timeName),this.timerRunning=!1,this.subscribeTimer()}pauseTimer(){this.TimersService.stopTimer(this.timeName),this.timerRunning=!1}roundToMin(){let e=this.dataValue;this.dataValue<0&&(e=e*-1);let t=e%600;this.dataValue>0?t>300?this.TimersService.setTimer(this.timeName,this.dataValue+(600-t)):this.TimersService.setTimer(this.timeName,this.dataValue-t):t>300?this.TimersService.setTimer(this.timeName,this.dataValue-(600-t)):this.TimersService.setTimer(this.timeName,this.dataValue+t)}addOneMin(){this.TimersService.setTimer(this.timeName,this.dataValue+600)}remOneMin(){this.TimersService.setTimer(this.timeName,this.dataValue-600)}getColors(e){switch(e){case"contrast":this.textColor=this.theme().contrast,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"blue":this.textColor=this.theme().blue,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"green":this.textColor=this.theme().green,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"pink":this.textColor=this.theme().pink,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"orange":this.textColor=this.theme().orange,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"purple":this.textColor=this.theme().purple,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"grey":this.textColor=this.theme().grey,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;case"yellow":this.textColor=this.theme().yellow,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break;default:this.textColor=this.theme().contrast,this.warnColor=this.theme().zoneAlarm,this.warmContrast=this.theme().zoneAlarm;break}}unsubscribeTimer(){this.timerSub?.unsubscribe()}ngOnDestroy(){this.timerSub?.unsubscribe(),this.canvasCtx&&this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),clearInterval(this.flashInterval),this.destroyDataStreams()}updateCanvas(){this.canvasCtx&&(this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),this.drawValue())}drawValue(){let e=this.canvasEl().nativeElement,t=Math.floor(e.width*.95),i=Math.floor(e.height),o;if(this.dataValue!=null){let a=Math.abs(this.dataValue),l=Math.floor(a/600),d=Math.floor(a%600/10),p=Math.floor(a%10);o=`${l}:${("0"+d).slice(-2)}.${p}`,this.dataValue<0&&(o=`-${o}`)}else o="--";switch(this.currentValueLength!==o.length&&(this.currentValueLength=o.length,this.valueFontSize=this.canvas.calculateOptimalFontSize(this.canvasCtx,o,t,i,"bold")),this.zoneState){case ne.Alarm:this.flashOn?this.canvasCtx.fillStyle=this.textColor:(this.canvas.drawRectangle(this.canvasCtx,0,0,e.width,e.height,this.warnColor),this.canvasCtx.fillStyle=this.textColor);break;case ne.Warn:this.canvasCtx.fillStyle=this.warnColor;break;default:this.canvasCtx.fillStyle=this.textColor}this.canvas.drawText(this.canvasCtx,o,e.width/2,e.height/2,t,i,"bold",this.canvasCtx.fillStyle,"center","middle")}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-racetimer"]],viewQuery:function(t,i){t&1&&Le(i.canvasEl,_f,5),t&2&&nt()},features:[pe],decls:17,vars:4,consts:[["canvasEl",""],[3,"configChange","config","id"],[1,"raceWrapper",3,"onResize"],["id","canvasValue",1,"canvas-size"],[1,"timerBarContainer"],[1,"timer-button-groups","timer-adjusters-group"],["mat-flat-button","",1,"timer-adjust-buttons",3,"click"],["mat-flat-button","",1,"timer-reset-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){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(1,"div",2),L("onResize",function(l){return B(o),F(i.onResized(l))}),V(2,"canvas",3,0),v(4,"div",4)(5,"div",5)(6,"button",6),L("click",function(){return B(o),F(i.remOneMin())}),D(7," -1 "),w(),v(8,"button",7),L("click",function(){return B(o),F(i.resetTimer())}),D(9," Reset "),w(),v(10,"button",6),L("click",function(){return B(o),F(i.addOneMin())}),D(11," +1 "),w()(),v(12,"div",8),De(13,wf,2,0,"button",9),De(14,Cf,2,0,"button",10),v(15,"button",11),L("click",function(){return B(o),F(i.roundToMin())}),D(16," Synch "),w()()()()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(13),Me(i.timerRunning?-1:13),P(),Me(i.timerRunning?14:-1))},dependencies:[Re,at,ot,qt],styles:[".raceWrapper[_ngcontent-%COMP%]{height:100%;width:100%}.canvas-size[_ngcontent-%COMP%]{position:absolute;width:100%;height:50%;top:0;left:0;z-index:inherit}.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:8%;height:auto;width:calc(100% - 20px);margin:0 10px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:stretch;align-content:stretch;gap:20px}.timer-button-groups[_ngcontent-%COMP%]{min-width:247px;max-width:100%;--mat-button-filled-container-shape: 5px}.timer-adjusters-group[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1}.timer-countdown-group[_ngcontent-%COMP%]{flex-grow:3;flex-shrink:3}.timer-synch-button[_ngcontent-%COMP%]{width:calc(50% - 5px);margin-left:5px}.timer-start-button[_ngcontent-%COMP%]{width:calc(50% - 5px);margin-right:5px}.timer-reset-button[_ngcontent-%COMP%]{width:calc(40% + -0px);margin:0 10px}.timer-adjust-buttons[_ngcontent-%COMP%]{width:calc(30% - 10px)}"]})}return r})();var Sf=["gaugeBarAnimate"],Ah=(()=>{class r{gaugeBarAnimate;displayName=q.required();displayNameColor=q.required();dataValue=q.required();unitLabel=q.required();barColor=q.required();barColorGradient=q.required();barColorBackground=q.required();gaugeValue=q.required();gaugeMinValue=q.required();gaugeMaxValue=q.required();newGaugeValue=1;oldGaugeValue=1;constructor(){}ngOnChanges(e){if(e.gaugeValue&&!e.gaugeValue.firstChange){let t=this.gaugeMaxValue()-this.gaugeMinValue(),i=t!==0?195/t:0;this.oldGaugeValue=this.newGaugeValue,this.newGaugeValue=(e.gaugeValue.currentValue-this.gaugeMinValue())*i,this.gaugeBarAnimate?.nativeElement&&requestAnimationFrame(()=>{this.gaugeBarAnimate?.nativeElement&&this.gaugeBarAnimate.nativeElement.beginElement()})}}ngOnDestroy(){this.gaugeBarAnimate=null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["svg-simple-linear-gauge"]],viewQuery:function(t,i){if(t&1&&it(Sf,5),t&2){let o;qe(o=je())&&(i.gaugeBarAnimate=o.first)}},inputs:{displayName:[1,"displayName"],displayNameColor:[1,"displayNameColor"],dataValue:[1,"dataValue"],unitLabel:[1,"unitLabel"],barColor:[1,"barColor"],barColorGradient:[1,"barColorGradient"],barColorBackground:[1,"barColorBackground"],gaugeValue:[1,"gaugeValue"],gaugeMinValue:[1,"gaugeMinValue"],gaugeMaxValue:[1,"gaugeMaxValue"]},features:[qi],decls:24,vars:11,consts:[["gaugeBarAnimate",""],[0,"xmlns","osb","http://www.openswatchbook.org/uri/2009/osb",0,"xmlns","dc","http://purl.org/dc/elements/1.1/",0,"xmlns","cc","http://creativecommons.org/ns#",0,"xmlns","rdf","http://www.w3.org/1999/02/22-rdf-syntax-ns#",0,"xmlns","svg","http://www.w3.org/2000/svg","xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink","viewBox","0 0 205 50","preserveAspectRatio","xMidYMid","version","1.1","id","svg8",1,"svg-simple-linear"],["id","defs2"],["id","gaugeBarGradient"],["id","stop849","offset","0",2,"stop-opacity","1"],["id","stop851","offset","0.40",2,"stop-opacity","0"],["id","linearGradient855","gradientTransform","translate(5,-30)","gradientUnits","userSpaceOnUse","y2","34.5","x2","-5","y1","34.5","x1","-6","href","#gaugeBarGradient"],["id","layer1",2,"display","inline"],["id","GaugeBackground","width","195","height","9","x","5","y","30","ry","0",2,"opacity","1","fill-opacity","1","stroke","none","stroke-width","0.265899","stroke-miterlimit","4","stroke-dasharray","none","stroke-opacity","1"],["id","gaugeBar"],["id","gaugeValue","width","1","height","9","x","0","y","0","ry","0",2,"mix-blend-mode","normal","fill-opacity","1","stroke-width","0.0864229"],["id","gaugeValueGradient","transform","scale(-1,1)","width","1","height","9","x","-1","y","0","ry","0",2,"display","inline","opacity","1","mix-blend-mode","multiply","fill","url(#linearGradient855)","stroke-width","0.0864229"],[0,"xlink","href","#gaugeBar","transform","translate(5,30)"],["attributeName","transform","type","scale","begin","indefinite","dur","0.5s","additive","sum","fill","freeze"],["id","layer2",2,"display","inline"],[0,"xml","space","preserve","x","4.1731763","y","25.413595","id","displayNameText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["id","tspan1945","x","4.1731763","y","25.413595",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","12.7px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["text-anchor","end","id","gaugeTexts","y","25.293016","x","200.37138",0,"xml","space","preserve",1,"simpleLinear-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","line-height","1.25","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","letter-spacing","0px","word-spacing","0px"],["y","25.293016","x","200.37138","id","valueText",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","22.5778px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal"],["dy","-9","id","unitText",2,"text-transform","capitalize","font-size","9.87778px"]],template:function(t,i){t&1&&(Xe(),v(0,"svg",1)(1,"defs",2)(2,"linearGradient",3),V(3,"stop",4)(4,"stop",5),w(),V(5,"linearGradient",6),w(),v(6,"g",7),V(7,"rect",8),v(8,"defs")(9,"g",9),V(10,"rect",10)(11,"rect",11),w()(),v(12,"use",12),V(13,"animateTransform",13,0),w()(),v(15,"g",14)(16,"text",15)(17,"tspan",16),D(18),w()(),v(19,"text",17)(20,"tspan",18),D(21),w(),v(22,"tspan",19),D(23),w()()()()),t&2&&(P(3),ce("stop-color",i.barColorGradient()),P(),ce("stop-color",i.barColorGradient()),P(3),ce("fill",i.barColorBackground()),P(5),_e("fill",i.barColor()),P(),ce("from",i.oldGaugeValue+" 1")("to",i.newGaugeValue+" 1"),P(4),ce("fill",i.displayNameColor()),P(),pt(" ",i.displayName()),P(3),rt(i.dataValue()),P(2),rt(i.unitLabel()))},styles:["svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.simpleLinear-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}"]})}return r})();var Oh=(()=>{class r extends Ie{unitsLabel="";dataLabelValue="0";dataValue=0;barColor="";barColorGradient="";barColorBackground="";constructor(){super(),this.defaultConfig={displayName:"Gauge Label",filterSelfPaths:!0,paths:{gaugePath:{description:"Numeric Data",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!0,pathSkUnitsFilter:"V",convertUnitTo:"V",sampleTime:500}},displayScale:{lower:0,upper:15,type:"linear"},gauge:{type:"simpleLinear",unitLabelFormat:"full"},numInt:1,numDecimal:2,color:"contrast",enableTimeout:!1,dataTimeout:5},Se(()=>{this.theme()&&this.updateGaugeSettings()})}ngOnInit(){this.validateConfig(),this.startWidget()}startWidget(){this.widgetProperties.config.gauge.unitLabelFormat=="abr"?this.unitsLabel=this.widgetProperties.config.paths.gaugePath.convertUnitTo.substr(0,1):this.unitsLabel=this.widgetProperties.config.paths.gaugePath.convertUnitTo,this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{e.data.value==null?(this.dataValue=0,this.dataLabelValue="--"):(this.dataValue=Math.min(Math.max(e.data.value,this.widgetProperties.config.displayScale.lower),this.widgetProperties.config.displayScale.upper),this.dataLabelValue=this.dataValue.toFixed(this.widgetProperties.config.numDecimal))})}updateConfig(e){this.widgetProperties.config=e,this.startWidget(),this.updateGaugeSettings()}updateGaugeSettings(){switch(this.barColorBackground=this.theme().background,this.widgetProperties.config.color){case"contrast":this.barColor=this.theme().contrast,this.barColorGradient=this.theme().contrastDimmer;break;case"blue":this.barColor=this.theme().blue,this.barColorGradient=this.theme().blueDimmer;break;case"green":this.barColor=this.theme().green,this.barColorGradient=this.theme().greenDimmer;break;case"pink":this.barColor=this.theme().pink,this.barColorGradient=this.theme().pinkDimmer;break;case"orange":this.barColor=this.theme().orange,this.barColorGradient=this.theme().orangeDimmer;break;case"purple":this.barColor=this.theme().purple,this.barColorGradient=this.theme().purpleDimmer;break;case"grey":this.barColor=this.theme().grey,this.barColorGradient=this.theme().greyDimmer;break;case"yellow":this.barColor=this.theme().yellow,this.barColorGradient=this.theme().yellowDimmer;break;default:this.barColor=this.theme().contrast,this.barColorGradient=this.theme().contrastDimmer}}ngOnDestroy(){this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-simple-linear"]],features:[pe],decls:2,vars:12,consts:[[3,"configChange","config","id"],[1,"simpleLinearGaugeContainer",3,"displayName","displayNameColor","unitLabel","dataValue","barColor","barColorGradient","barColorBackground","gaugeValue","gaugeMaxValue","gaugeMinValue"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Pe("configChange",function(a){return Ee(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),L("configChange",function(a){return i.updateConfig(a)}),V(1,"svg-simple-linear-gauge",1),w()),t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("displayName",i.widgetProperties.config.displayName)("displayNameColor",i.theme().contrastDim)("unitLabel",i.unitsLabel)("dataValue",i.dataLabelValue)("barColor",i.barColor)("barColorGradient",i.barColorGradient)("barColorBackground",i.barColorBackground)("gaugeValue",i.dataLabelValue)("gaugeMaxValue",i.widgetProperties.config.displayScale.upper)("gaugeMinValue",i.widgetProperties.config.displayScale.lower))},dependencies:[Re,Ah],styles:[".simpleLinearGaugeContainer[_ngcontent-%COMP%]{display:block;position:relative;height:100%;width:100%;padding:0}"]})}return r})();function kf(r,n){if(r&1){let e=ee();v(0,"h3"),D(1,"Getting Started"),w(),v(2,"p"),D(3,"Welcome to KIP! Here are some basic gestures to help you navigate the application:"),w(),v(4,"table")(5,"tr")(6,"th"),D(7,"Actions"),w(),v(8,"th"),D(9,"Gestures"),w(),v(10,"th"),D(11,"Keyboard Shortcuts"),w()(),v(12,"tr")(13,"td"),D(14,"Cycle through dashboards"),w(),v(15,"td"),D(16,"Swipe Up/Down"),w(),v(17,"td"),D(18,"Shift + Ctrl + Up/Down Arrow"),w()(),v(19,"tr")(20,"td"),D(21,"Open Actions menu"),w(),v(22,"td"),D(23,"Swipe left"),w(),v(24,"td"),D(25,"Shift + Ctrl + Right Arrow"),w()(),v(26,"tr")(27,"td"),D(28,"Open Notification menu"),w(),v(29,"td"),D(30,"Swipe right"),w(),v(31,"td"),D(32,"Shift + Ctrl + Left Arrow"),w()()(),v(33,"h3"),D(34,"Log in to Signal K"),w(),v(35,"p"),D(36," The first step is to configure Signal K server authentication ("),v(37,"i"),D(38,"a pre-existing Signal K server user/password is required"),w(),D(39,"). Swipe left to open the Actions menu, hit Settings, toggle Login to server and enter you pre-existing Signal K credentials. "),w(),v(40,"h3"),D(41,"Option 1: Load Demonstration Dashboards"),w(),v(42,"p"),D(43," Try the sample dashboards using data from your server. : "),V(44,"br"),v(45,"button",2),L("click",function(){B(e);let i=ie();return F(i.loadDemoConfig())}),D(46,"Load Demo"),w()(),v(47,"h3"),D(48,"Option 2: Create Your Own Layout"),w(),v(49,"p"),D(50,' The text you are reading is actually a full screen widget in a dashboard. Dashboards are "Locked" by default to prevent accidental modifications. To edit a dashboard, swipe left and hit the bottom unlock menu button. You can later add and manage dashboards using the Dashboards page from the Actions menu. '),w(),v(51,"p")(52,"strong"),D(53,"Try editing the Dashboard now to receive further instructions!"),w()()}}function Tf(r,n){r&1&&(v(0,"h3"),D(1,"Build Your Layout"),w(),v(2,"p"),D(3," First, resize this Tutorial widget using the now visible dashed borders so it does not take up all the screen. You can delete this Tutorial widget later when you are done with the instructions. Then, to add a widget: in an empty dashboard area, press and hold. This will open the widget selection panel. Here you can choose from a variety of widgets. "),w(),v(4,"p"),D(5,"To manage widgets, you can:"),w(),v(6,"ul")(7,"li")(8,"strong"),D(9,"Touch and drag"),w(),D(10," to move widgets"),w(),v(11,"li")(12,"strong"),D(13,"Drag corners and sides"),w(),D(14," to resize widgets"),w(),v(15,"li")(16,"strong"),D(17,"Double Tap"),w(),D(18," on a widget to configure it"),w(),v(19,"li")(20,"strong"),D(21,"Press and Hold"),w(),D(22," on a widget to delete or duplicate widgets"),w()(),v(23,"h3"),D(24,"Exit Dashboard Edit Mode"),w(),v(25,"p"),D(26,"Use the Save or Cancel buttons in the lower right corner to either persist your changes or revert changes."),w(),v(27,"h3"),D(28,"Add More Dashboards"),w(),v(29,"p"),D(30,"Swipe left and hit the Dashboards button. From this page you can add, rename, position and duplicate dashboards."),w())}var Ih=(()=>{class r extends Ie{dashboard=M(ct);settings=M(Ut);constructor(){super()}loadDemoConfig(){this.settings.loadDemoConfig()}startWidget(){}updateConfig(){}ngOnDestroy(){this.destroyDataStreams()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-tutorial"]],features:[pe],decls:4,vars:3,consts:[[3,"configChange","config","id"],[1,"tutorial-container"],["mat-raised-button","",2,"margin-left","15px",3,"click"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Pe("configChange",function(a){return Ee(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),L("configChange",function(){return i.updateConfig()}),v(1,"div",1),De(2,kf,54,0)(3,Tf,31,0),w()()),t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(2),Me(i.dashboard.isDashboardStatic()?2:3))},dependencies:[Re,qt],styles:[".tutorial-container[_ngcontent-%COMP%]{position:absolute;top:0;left:0;display:block;height:100%;width:100%;overflow:none}.tutorial-container[_ngcontent-%COMP%]{padding:0 15px}table[_ngcontent-%COMP%], th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-on-background);border-collapse:collapse}tr[_ngcontent-%COMP%]:nth-child(2n){background-color:var(--mat-sys-surface-container-high)}"]})}return r})();var xf=["rotatingDial"],Ef=["awaIndicator"],Pf=["twaIndicator"],Df=["wptIndicator"],Mf=["setIndicator"],Af=["cogIndicator"],Rh=([r,n],[e,t],[i,o])=>(Math.atan2(o-t,i-e)-Math.atan2(n-t,r-e)+3*Math.PI)%(2*Math.PI)-Math.PI,Nh=(()=>{class r{rotatingDial=Be.required("rotatingDial");awaIndicator=Be.required("awaIndicator");twaIndicator=Be.required("twaIndicator");wptIndicator=Be.required("wptIndicator");setIndicator=Be.required("setIndicator");cogIndicator=Be.required("cogIndicator");compassHeading=q.required();courseOverGroundAngle=q(void 0);courseOverGroundEnabled=q.required();trueWindAngle=q.required();twsEnabled=q.required();trueWindSpeed=q.required();trueWindSpeedUnit=q.required();appWindAngle=q.required();awsEnabled=q.required();appWindSpeed=q.required();appWindSpeedUnit=q.required();laylineAngle=q(void 0);closeHauledLineEnabled=q.required();sailSetupEnabled=q.required();windSectorEnabled=q.required();driftEnabled=q.required();driftSet=q(void 0);driftFlow=q(void 0);waypointAngle=q(void 0);waypointEnabled=q.required();trueWindMinHistoric=q(void 0);trueWindMidHistoric=q(void 0);trueWindMaxHistoric=q(void 0);compass={oldValue:0,newValue:0};twa={oldValue:0,newValue:0};awa={oldValue:0,newValue:0};wpt={oldValue:0,newValue:0};cog={oldValue:0,newValue:0};set={oldValue:0,newValue:0};headingValue="--";appWindSpeedDisplay=Ct(()=>{let e=this.appWindSpeed();return e==null?"--":e.toFixed(1)});trueWindSpeedDisplay=Ct(()=>{let e=this.trueWindSpeed();return e==null?"--":e.toFixed(1)});trueWindHeading=0;waypointActive=Ge(!1);flow=Ct(()=>{let e=this.driftFlow();return e==null?"--":e.toFixed(1)});portLaylinePrev=0;stbdLaylinePrev=0;portLaylineAnimId=null;stbdLaylineAnimId=null;closeHauledLinePortPath="M 500,500 500,500";closeHauledLineStbdPath="M 500,500 500,500";portSectorPrev={min:0,mid:0,max:0};stbdSectorPrev={min:0,mid:0,max:0};portSectorAnimId=null;stbdSectorAnimId=null;portWindSectorPath="";stbdWindSectorPath="";animationFrameIds=new WeakMap;CENTER=500;RADIUS=350;ANIMATION_DURATION=1e3;constructor(){Se(()=>{let e=this.waypointEnabled();Nt(()=>{this.waypointActive.set(e)})}),Se(()=>{let e=parseFloat(this.compassHeading().toFixed(0));e!==null&&Nt(()=>{this.compass.oldValue=this.compass.newValue,this.compass.newValue=e,this.headingValue=e.toString(),this.rotatingDial()?.nativeElement&&(Mi(this.rotatingDial().nativeElement,-this.compass.oldValue,-this.compass.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds),this.updateCloseHauledLines(),this.updateWindSectors())})}),Se(()=>{let e=parseFloat(this.courseOverGroundAngle().toFixed(0));e!=null&&Nt(()=>{this.cog.oldValue=this.cog.newValue,this.cog.newValue=e-this.compass.newValue,this.cogIndicator()?.nativeElement&&Mi(this.cogIndicator().nativeElement,this.cog.oldValue,this.cog.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})}),Se(()=>{let e=this.waypointAngle();Nt(()=>{if(!e){this.waypointActive.set(!1);return}this.waypointEnabled()?this.waypointActive.set(!0):this.waypointActive.set(!1),this.wpt.oldValue=this.wpt.newValue,this.wpt.newValue=e,this.wptIndicator()?.nativeElement&&Mi(this.wptIndicator().nativeElement,this.wpt.oldValue,this.wpt.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})}),Se(()=>{let e=parseFloat(this.appWindAngle().toFixed(0));e!=null&&Nt(()=>{this.awa.oldValue=this.awa.newValue,this.awa.newValue=e,this.awaIndicator()?.nativeElement&&Mi(this.awaIndicator().nativeElement,this.awa.oldValue,this.awa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})}),Se(()=>{let e=parseFloat(this.trueWindAngle().toFixed(0));e!=null&&Nt(()=>{this.twa.oldValue=this.twa.newValue,this.trueWindHeading=e,this.twa.newValue=this.addHeading(this.trueWindHeading,this.compass.newValue*-1),this.twaIndicator()?.nativeElement&&(Mi(this.twaIndicator().nativeElement,this.twa.oldValue,this.twa.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds),this.updateCloseHauledLines())})}),Se(()=>{let e=parseFloat(this.driftSet().toFixed(0));e!=null&&Nt(()=>{this.set.oldValue=this.set.newValue,this.set.newValue=e,this.setIndicator()?.nativeElement&&Mi(this.setIndicator().nativeElement,this.set.oldValue,this.set.newValue,this.ANIMATION_DURATION,void 0,this.animationFrameIds)})})}updateCloseHauledLines(){if(!this.closeHauledLineEnabled())return;let e=this.addHeading(Number(this.awa.newValue),this.laylineAngle()*-1);this.animateLayline(this.portLaylinePrev,e,!0),this.portLaylinePrev=e;let t=this.addHeading(Number(this.awa.newValue),this.laylineAngle());this.animateLayline(this.stbdLaylinePrev,t,!1),this.stbdLaylinePrev=t}animateLayline(e,t,i){i&&this.portLaylineAnimId&&cancelAnimationFrame(this.portLaylineAnimId),!i&&this.stbdLaylineAnimId&&cancelAnimationFrame(this.stbdLaylineAnimId);let o=this.ANIMATION_DURATION,a=performance.now(),l=s=>s<.5?4*s*s*s:1-Math.pow(-2*s+2,3)/2,d=s=>{let c=s-a,m=Math.min(c/o,1),y=l(m),_=t-e;_>180&&(_-=360),_<-180&&(_+=360);let E=(e+_*y+360)%360*Math.PI/180,z=Math.floor(this.RADIUS*Math.sin(E)+this.CENTER),Y=Math.floor(this.RADIUS*Math.cos(E)*-1+this.CENTER);if(i?this.closeHauledLinePortPath=`M ${this.CENTER},${this.CENTER} L ${z},${Y}`:this.closeHauledLineStbdPath=`M ${this.CENTER},${this.CENTER} L ${z},${Y}`,m<1){let te=requestAnimationFrame(d);i?this.portLaylineAnimId=te:this.stbdLaylineAnimId=te}else i?this.portLaylineAnimId=null:this.stbdLaylineAnimId=null},p=requestAnimationFrame(d);i?this.portLaylineAnimId=p:this.stbdLaylineAnimId=p}windSectorsInitialized=!1;updateWindSectors(){if(!this.windSectorEnabled()||this.trueWindMinHistoric()==null||this.trueWindMidHistoric()==null||this.trueWindMaxHistoric()==null)return;let e={min:this.trueWindMinHistoric(),mid:this.trueWindMidHistoric(),max:this.trueWindMaxHistoric()},t={min:this.trueWindMinHistoric(),mid:this.trueWindMidHistoric(),max:this.trueWindMaxHistoric()};if(!this.windSectorsInitialized){this.portSectorPrev=e,this.stbdSectorPrev=t,this.windSectorsInitialized=!0,this.animateWindSector(e,e,!0),this.animateWindSector(t,t,!1);return}this.animateWindSector(this.portSectorPrev,e,!0),this.animateWindSector(this.stbdSectorPrev,t,!1),this.portSectorPrev=e,this.stbdSectorPrev=t}animateWindSector(e,t,i){i&&this.portSectorAnimId&&cancelAnimationFrame(this.portSectorAnimId),!i&&this.stbdSectorAnimId&&cancelAnimationFrame(this.stbdSectorAnimId);let o=this.ANIMATION_DURATION,a=performance.now(),l=s=>s<.5?4*s*s*s:1-Math.pow(-2*s+2,3)/2,d=s=>{let c=s-a,m=Math.min(c/o,1),y=l(m),_=(Ot,Vi)=>Ot+(Vi-Ot)*y,T=_(e.min,t.min),E=_(e.mid,t.mid),z=_(e.max,t.max),Y=this.addHeading(this.addHeading(T,Number(this.compass.newValue)*-1),this.laylineAngle()*(i?-1:1)),te=this.addHeading(this.addHeading(E,Number(this.compass.newValue)*-1),this.laylineAngle()*(i?-1:1)),be=this.addHeading(this.addHeading(z,Number(this.compass.newValue)*-1),this.laylineAngle()*(i?-1:1)),He=this.RADIUS*Math.sin(Y*Math.PI/180)+this.CENTER,$e=this.RADIUS*Math.cos(Y*Math.PI/180)*-1+this.CENTER,Qe=this.RADIUS*Math.sin(te*Math.PI/180)+this.CENTER,se=this.RADIUS*Math.cos(te*Math.PI/180)*-1+this.CENTER,ht=this.RADIUS*Math.sin(be*Math.PI/180)+this.CENTER,lt=this.RADIUS*Math.cos(be*Math.PI/180)*-1+this.CENTER,zt=Math.abs(Rh([He,$e],[Qe,se],[ht,lt]))>Math.PI/2?0:1,ft=Rh([ht,lt],[He,$e],[Qe,se])>0?0:1,ut=`M ${this.CENTER},${this.CENTER} L ${He},${$e} A ${this.RADIUS},${this.RADIUS} 0 ${zt} ${ft} ${ht},${lt} z`;if(i?this.portWindSectorPath=ut:this.stbdWindSectorPath=ut,m<1){let Ot=requestAnimationFrame(d);i?this.portSectorAnimId=Ot:this.stbdSectorAnimId=Ot}else i?this.portSectorAnimId=null:this.stbdSectorAnimId=null},p=requestAnimationFrame(d);i?this.portSectorAnimId=p:this.stbdSectorAnimId=p}addHeading(e=0,t=0){let i=e+t;for(;i>359;)i=i-359;for(;i<0;)i=i+359;return i}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["app-svg-wind"]],viewQuery:function(t,i){t&1&&(Le(i.rotatingDial,xf,5),Le(i.awaIndicator,Ef,5),Le(i.twaIndicator,Pf,5),Le(i.wptIndicator,Df,5),Le(i.setIndicator,Mf,5),Le(i.cogIndicator,Af,5)),t&2&&nt(6)},inputs:{compassHeading:[1,"compassHeading"],courseOverGroundAngle:[1,"courseOverGroundAngle"],courseOverGroundEnabled:[1,"courseOverGroundEnabled"],trueWindAngle:[1,"trueWindAngle"],twsEnabled:[1,"twsEnabled"],trueWindSpeed:[1,"trueWindSpeed"],trueWindSpeedUnit:[1,"trueWindSpeedUnit"],appWindAngle:[1,"appWindAngle"],awsEnabled:[1,"awsEnabled"],appWindSpeed:[1,"appWindSpeed"],appWindSpeedUnit:[1,"appWindSpeedUnit"],laylineAngle:[1,"laylineAngle"],closeHauledLineEnabled:[1,"closeHauledLineEnabled"],sailSetupEnabled:[1,"sailSetupEnabled"],windSectorEnabled:[1,"windSectorEnabled"],driftEnabled:[1,"driftEnabled"],driftSet:[1,"driftSet"],driftFlow:[1,"driftFlow"],waypointAngle:[1,"waypointAngle"],waypointEnabled:[1,"waypointEnabled"],trueWindMinHistoric:[1,"trueWindMinHistoric"],trueWindMidHistoric:[1,"trueWindMidHistoric"],trueWindMaxHistoric:[1,"trueWindMaxHistoric"]},decls:156,vars:32,consts:[["rotatingDial",""],["wptIndicator",""],["setIndicator",""],["cogIndicator",""],["awaIndicator",""],["twaIndicator",""],["viewBox","0 0 1000 1000"],["id","defs1"],["id","linearGradient18"],["offset","0",1,"boat",2,"stop-opacity","0.71372495"],["offset","1",1,"boat",2,"stop-opacity","0"],["id","linearGradient16"],["id","linearGradient13"],["offset","0.41176471",1,"drift-arrow",2,"stop-opacity","1"],["offset","1",1,"drift-arrow",2,"stop-opacity","0"],["id","swatch4"],["offset","0","id","stop4",2,"stop-color","#000000","stop-opacity","1"],["clipPathUnits","userSpaceOnUse","id","clipPath16"],["id","ellipse16","cx","311.24539","cy","-1516.3778","rx","194.27342","ry","181.83022",2,"display","inline","fill","#9a9300","fill-opacity","1","stroke","none","stroke-width","55","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"],[0,"xlink","href","#linearGradient13","id","linearGradient14","x1","453.48047","y1","583.62891","x2","638.11328","y2","583.62891","gradientUnits","userSpaceOnUse","gradientTransform","matrix(0.00723393,1.2388183,-1.0538241,0.00615367,1111.2051,-179.73465)"],[0,"xlink","href","#linearGradient16","id","linearGradient17","x1","-502.04896","y1","439.35551","x2","-316","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],[0,"xlink","href","#linearGradient18","id","linearGradient19","x1","495.83999","y1","439.35551","x2","681.88895","y2","439.35551","gradientUnits","userSpaceOnUse","gradientTransform","translate(0,49.000266)"],["id","layerBackground",2,"display","inline"],["id","boat",2,"display","inline"],["id","portSide","d","M 498.75049,208.89453 A 267.09439,554.67401 0 0 1 678.45974,767.81661",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient19)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","starboardSide","d","m -499.13846,208.89453 a 267.09439,554.67401 0 0 1 179.70925,558.92208","transform","scale(-1,1)",2,"fill","none","fill-opacity","1","stroke","url(#linearGradient17)","stroke-width","5.821","stroke-linecap","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","LayerLayline"],["id","PortLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","StbdLayline",1,"laylines",2,"fill","none","stroke-width","5","stroke-dasharray","40, 20","stroke-dashoffset","0","stroke-opacity","0.6"],["id","LayerWindShift"],["id","portSectorShift",1,"wind-sector-port",2,"fill-opacity","0.5","stroke","none"],["id","StbdSectorShift",1,"wind-sector-stbd",2,"fill-opacity","0.5","stroke","none"],["id","layerCompass"],["id","fixedDial"],["id","portStarboardBackground","d","M 499.99997,10.520805 A 489.47916,489.47916 0 0 0 10.520805,499.99997 489.47916,489.47916 0 0 0 499.99997,989.47913 489.47916,489.47916 0 0 0 989.47913,499.99997 489.47916,489.47916 0 0 0 499.99997,10.520805 Z m 0,132.291665 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"fixed-dial-background",2,"display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","port","d","M 93.283801,265.18231 A 469.63541,469.63541 0 0 1 339.37522,58.687079",1,"port",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","starboard","d","M 660.62476,58.687069 A 469.63541,469.63541 0 0 1 906.71619,265.18228",1,"starboard",2,"display","inline","fill","none","stroke-width","39.6875","stroke-linecap","butt","stroke-linejoin","round","stroke-miterlimit","0"],["id","barsAndText",1,"contrast-stroke",2,"display","inline"],["d","m 416.35095,19.837399 2.78142,15.77426","id","path199",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 334.23173,41.658798 5.47834,15.051615","id","path200",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 260.27336,81.806174 12.55151,21.739856","id","path37",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 187.44581,126.00035 10.29591,12.2702","id","path197",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 127.23918,185.95785 12.27019,10.29591","id","path198",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 83.252815,257.66724 21.739865,12.55151","id","path166",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 42.289518,332.39273 15.05162,5.47835","id","path195",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 20.127799,414.42077 15.774251,2.78142","id","path196",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 17.879075,498.47765 H 42.982096","id","path167",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 19.776759,583.71187 15.77426,-2.78142","id","path193",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 41.598167,665.8311 15.051615,-5.47834","id","path194",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 81.668963,739.71246 103.40883,727.16095","id","path168",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 125.93981,812.61701 12.2702,-10.29591","id","path191",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 185.89732,872.82365 10.29591,-12.27019","id","path192",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 257.53004,916.73298 12.55151,-21.73985","id","path169",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 332.33219,957.7732 5.47835,-15.05162","id","path189",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 414.36024,979.93493 2.78142,-15.77425","id","path190",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 498.34046,982.10672 V 957.0037","id","path170",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 583.65133,980.28596 580.86991,964.5117","id","path187",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 665.77057,958.46456 -5.47834,-15.05161","id","path188",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 739.57526,918.31683 727.02375,896.57698","id","path171",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 812.55647,874.12301 802.26056,861.85282","id","path185",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 872.76312,814.16551 860.49293,803.8696","id","path186",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 916.59579,742.45577 894.85593,729.90426","id","path172",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 957.71266,667.73063 -15.05161,-5.47834","id","path183",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 979.8744,585.70259 -15.77425,-2.78142","id","path184",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 981.96954,501.64535 -25.10304,10e-6","id","path173",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 980.22542,416.41149 -15.77425,2.78143","id","path181",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 958.40403,334.29226 -15.05161,5.47834","id","path182",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 918.17964,260.41055 -21.73986,12.55151","id","path174",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 874.06247,187.50636 -12.27018,10.29591","id","path180",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 817.34594,130.05494 -10.40259,12.17987","id","path179",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 742.31857,83.390025 729.76706,105.12988","id","path175",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 667.6701,42.350172 -5.47834,15.051615","id","path178",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","m 585.64206,20.188432 -2.78142,15.77425","id","path176",2,"fill","none","fill-opacity","0","stroke-width","4.18042","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["d","M 501.50816,18.016286 V 43.119307","id","path177",2,"fill","none","fill-opacity","0","stroke-width","15","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0","stroke-dasharray","none"],["id","rotatingDialBackplate","d","M 499.99997,50.208304 A 449.79166,449.79166 0 0 0 50.208304,499.99997 449.79166,449.79166 0 0 0 499.99997,949.79163 449.79166,449.79166 0 0 0 949.79163,499.99997 449.79166,449.79166 0 0 0 499.99997,50.208304 Z m 0,92.604166 a 357.1875,357.1875 0 0 1 357.18749,357.1875 357.1875,357.1875 0 0 1 -357.18749,357.18749 357.1875,357.1875 0 0 1 -357.1875,-357.18749 357.1875,357.1875 0 0 1 357.1875,-357.1875 z",1,"rotating-dial-Backplate",2,"display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],[0,"xml","space","preserve","x","181.91386","y","284.25186","id","text3","transform","rotate(-30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan3","x","181.91386","y","284.25186",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-183.53558","y","283.74811","id","text14","transform","rotate(-60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan14","x","-183.53558","y","283.74811",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-499.70761","y","100.95312","id","text15","transform","rotate(-90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan15","x","-499.70761","y","100.95312",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.66119","y","-216.36243","id","text16","transform","rotate(-120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["x","-681.66119","y","-216.36243","id","tspan25",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-681.06616","y","-581.71271","id","text17","transform","rotate(-150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan17","x","-681.06616","y","-581.71271",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-498.3313","y","-897.40875","id","text18","transform","scale(-1)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan18","x","-498.3313","y","-897.40875",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","-184.41313","y","-1080.8452","id","text19","transform","rotate(150)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan19","x","-184.41313","y","-1080.8452",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","181.57225","y","-1080.8853","id","text20","transform","rotate(120)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan20","x","181.57225","y","-1080.8853",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","501.42661","y","-896.93701","id","text21","transform","rotate(90)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan21","x","501.42661","y","-896.93701",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","682.35815","y","-579.63336","id","text22","transform","rotate(60)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan22","x","682.35815","y","-579.63336",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","681.81525","y","-214.27321","id","text23","transform","rotate(30)",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan23","x","681.81525","y","-214.27321",2,"font-style","normal","font-variant","normal","font-weight","normal","font-stretch","normal","font-size","44.0972px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],[0,"xml","space","preserve","x","500.15503","y","101.96342","id","text24",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","display","inline","stroke","none","stroke-width","0.47625","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0"],["id","tspan24","x","500.15503","y","101.96342",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","52.9167px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke-width","0.47625"],["clip-path","url(#clipPath16)","d","m 416.36313,-1521.3937 c 371.15015,24.6522 731.95257,192.9774 983.98757,467.456 227.2972,244.24389 363.1732,572.3808 369.4045,906.42978 15.9331,499.10271 -269.2071,986.17861 -700.5178,1232.88522 -485.08308,290.4843 -1134.555606,269.7346 -1599.2788,-52.7169 -404.5062,-269.24461 -653.2224,-759.35388 -614.1746,-1245.84043 30.2148,-487.61814 344.18931,-937.89997 780.52695,-1152.15867 176.96718,-89.2092 371.8823084,-142.3103 569.54914,-156.0363","transform","matrix(0.28310615,0,0,0.32000828,411.88452,661.64815)",1,"next-waypoint-bar",2,"display","inline","fill","none","stroke-width","30","stroke-miterlimit","0"],["id","path6341","cx","500","cy","175.00002","rx","17.361122","ry","17.361118",1,"next-waypoint",2,"display","inline","fill","none","stroke-width","15.2778","stroke-dasharray","none"],["id","setArrow","d","m 563.93337,480.60403 -64.4901,-94.9673 -63.37665,95.71396 58.48691,-30.71299 0.77713,133.08346 c 0.0992,16.99331 2.52916,30.65913 5.44822,30.64209 2.91911,-0.0171 5.18926,-13.71032 5.09001,-30.70362 l -0.77782,-133.20444 z",2,"fill","url(#linearGradient14)","stroke","none","stroke-width","1.18648"],["id","layerCounter"],["id","twsCounter"],[0,"xml","space","preserve","x","904.27722","y","150.88913","id","text43",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","903.84814","y","114.73512","id","text42",1,"true-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","905.25897","y","52.894646","id","text41",1,"true-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","awsCounter"],[0,"xml","space","preserve","x","94.554222","y","150.88913","id","text39",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","94.580925","y","114.63747","id","text40",1,"app-wind",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],[0,"xml","space","preserve","x","95.967644","y","52.894646","id","text39-7",1,"app-wind-label",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","34.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","14.5521","stroke-miterlimit","0"],["id","layerCurrent"],["id","text11",0,"xml","space","preserve","x","499.78842","y","523.55145",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-stretch","normal","font-size","66.6667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none"],["id","layerIndicators",2,"display","inline"],["d","m 506.20767,172.99458 a 6.3888631,8.8250643 0 0 1 -6.38888,8.82508 6.3888631,8.8250643 0 0 1 -6.38888,-8.82508 6.3888631,8.8250643 0 0 1 6.38888,-8.82509 6.3888631,8.8250643 0 0 1 6.38888,8.82509 z M 476.25472,30.811298 493.47058,13.265068 c 3.6173,-3.6867571 9.44162,-3.6867571 13.05892,0 l 17.21586,17.546106 c 3.6173,3.686743 3.6173,9.622786 0,13.309544 l -17.21595,17.54623 c -3.61721,3.686757 -9.44153,3.686757 -13.05893,0 L 476.25472,44.120841 c -3.6174,-3.686743 -3.6174,-9.622924 0,-13.309543 z m 17.20533,-16.510116 h 12.77766 V 173.26408 h -12.77766 z",1,"course-over-ground",2,"stroke-width","14.7329","stroke-linecap","square"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.7935953,0,0,0.92686935,101.84848,11.000842)",1,"app-wind",2,"display","inline","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110",1,"card-color",2,"font-weight","bold","font-size","70px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["d","m 451.77021,55.078207 42.08541,-33.202814 a 12.555638,12.555638 0.26446337 0 1 15.64423,0.07221 l 42.20046,33.930296 a 15.557694,15.557694 71.53185 0 1 5.32954,15.957795 L 504.17034,279.76529 a 2.5373267,2.5373267 0.02614114 0 1 -4.91879,-0.002 L 446.37431,70.966036 a 15.416336,15.416336 108.75875 0 1 5.3959,-15.887829 z","transform","matrix(0.60410307,0,0,0.70555435,196.91787,21.152867)",1,"true-wind",2,"display","inline","stroke","none","stroke-width","5.8876","stroke-miterlimit","0"],[0,"xml","space","preserve","x","500","y","110","id","text10",1,"card-color",2,"font-weight","bold","font-size","60px","font-family","Roboto","text-align","center","text-anchor","middle","display","inline","stroke","none"],["id","layerHeading",2,"display","inline"],["id","rect1","width","256.47919","height","108.5428","x","371.76041","y","10.805443","rx","23.757372",1,"heading-background",2,"stroke-width","4.43107","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","0.509946"],["x","511.29395","y","102.86786",1,"contrast-text",2,"font-style","normal","font-variant","normal","font-weight","bold","font-stretch","normal","font-size","106.667px","font-family","Roboto","font-variant-ligatures","normal","font-variant-caps","normal","font-variant-numeric","normal","font-variant-east-asian","normal","text-align","center","text-anchor","middle","stroke","none","stroke-width","5","stroke-linejoin","bevel","stroke-miterlimit","0","stroke-dasharray","none","stroke-opacity","1"]],template:function(t,i){t&1&&(Xe(),v(0,"svg",6)(1,"defs",7)(2,"linearGradient",8),V(3,"stop",9)(4,"stop",10),w(),v(5,"linearGradient",11),V(6,"stop",9)(7,"stop",10),w(),v(8,"linearGradient",12),V(9,"stop",13)(10,"stop",14),w(),v(11,"linearGradient",15),V(12,"stop",16),w(),v(13,"clipPath",17),V(14,"ellipse",18),w(),V(15,"linearGradient",19)(16,"linearGradient",20)(17,"linearGradient",21),w(),v(18,"g",22)(19,"g",23),V(20,"path",24)(21,"path",25),w()(),v(22,"g",26),V(23,"path",27)(24,"path",28),w(),v(25,"g",29),V(26,"path",30)(27,"path",31),w(),v(28,"g",32)(29,"g",33),V(30,"path",34)(31,"path",35)(32,"path",36),w(),v(33,"g",null,0)(35,"g",37),V(36,"path",38)(37,"path",39)(38,"path",40)(39,"path",41)(40,"path",42)(41,"path",43)(42,"path",44)(43,"path",45)(44,"path",46)(45,"path",47)(46,"path",48)(47,"path",49)(48,"path",50)(49,"path",51)(50,"path",52)(51,"path",53)(52,"path",54)(53,"path",55)(54,"path",56)(55,"path",57)(56,"path",58)(57,"path",59)(58,"path",60)(59,"path",61)(60,"path",62)(61,"path",63)(62,"path",64)(63,"path",65)(64,"path",66)(65,"path",67)(66,"path",68)(67,"path",69)(68,"path",70)(69,"path",71)(70,"path",72)(71,"path",73)(72,"path",74),v(73,"text",75)(74,"tspan",76),D(75,"330"),w()(),v(76,"text",77)(77,"tspan",78),D(78,"300"),w()(),v(79,"text",79)(80,"tspan",80),D(81,"W"),w()(),v(82,"text",81)(83,"tspan",82),D(84,"240"),w()(),v(85,"text",83)(86,"tspan",84),D(87,"210"),w()(),v(88,"text",85)(89,"tspan",86),D(90,"S"),w()(),v(91,"text",87)(92,"tspan",88),D(93,"150"),w()(),v(94,"text",89)(95,"tspan",90),D(96,"120"),w()(),v(97,"text",91)(98,"tspan",92),D(99,"E"),w()(),v(100,"text",93)(101,"tspan",94),D(102,"60"),w()(),v(103,"text",95)(104,"tspan",96),D(105,"30"),w()(),v(106,"text",97)(107,"tspan",98),D(108,"N"),w()()(),v(109,"g",null,1),V(111,"path",99)(112,"ellipse",100),w(),v(113,"g",null,2),V(115,"path",101),w()()(),v(116,"g",102)(117,"g",103)(118,"text",104),D(119),w(),v(120,"text",105),D(121),w(),v(122,"text",106),D(123,"TWS"),w()(),v(124,"g",107)(125,"text",108),D(126),w(),v(127,"text",109),D(128),w(),v(129,"text",110),D(130,"AWS"),w()()(),v(131,"g",111)(132,"text",112),D(133),w()(),v(134,"g",113)(135,"g",null,3),V(137,"path",114),w(),v(138,"g",null,4),V(140,"path",115),v(141,"text",116),D(142,"A"),w()(),v(143,"g",null,5),V(145,"path",117),v(146,"text",118),D(147,"T"),w(),D(148,` attributeName="transform" type="rotate" [attr.from]="trueWind.oldDegreeIndicator+' 500 500'" [attr.to]="trueWind.newDegreeIndicator+' 500 500'" begin="indefinite" dur="0.5s" keySplines="0.25 0.1 0.25 1" keyTimes="0;1" calcMode="spline" additive="replace" fill="freeze" /> `),w()(),v(149,"g",119),V(150,"rect",120),v(151,"text",121)(152,"tspan"),D(153),v(154,"tspan"),D(155,"\xB0"),w()()()()()),t&2&&(P(22),_e("display",i.closeHauledLineEnabled()?"inline":"none"),P(),_e("display",i.trueWindAngle()!=null?"inline":"none"),ce("d",i.closeHauledLineStbdPath),P(),_e("display",i.trueWindAngle()!=null?"inline":"none"),ce("d",i.closeHauledLinePortPath),P(),_e("display",i.windSectorEnabled()?"inline":"none"),P(),_e("display",i.portWindSectorPath!="none"?"inline":"none"),ce("d",i.portWindSectorPath),P(),_e("display",i.portWindSectorPath!="none"?"inline":"none"),ce("d",i.stbdWindSectorPath),P(82),ce("display",i.waypointActive()?"inline":"none"),P(4),_e("display",i.driftEnabled()?"inline":"none"),P(4),_e("display",i.twsEnabled()?"inline":"none"),P(2),rt(i.trueWindSpeedUnit()),P(2),rt(i.trueWindSpeedDisplay()),P(3),_e("display",i.awsEnabled()?"inline":"none"),P(2),rt(i.appWindSpeedUnit()),P(2),rt(i.appWindSpeedDisplay()),P(3),_e("display",i.driftEnabled()?"inline":"none"),P(2),rt(i.flow()),P(2),ce("display",i.courseOverGroundEnabled()?"inline":"none"),P(18),rt(i.headingValue))},styles:["[_nghost-%COMP%]{display:block;width:100%;height:100%}svg[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;left:0;top:0}.fixed-dial-background[_ngcontent-%COMP%]{fill:var(--kip-grey-color)}.rotating-dial-Backplate[_ngcontent-%COMP%]{fill:var(--mat-sys-background)}.starboard[_ngcontent-%COMP%]{stroke:var(--kip-starboard-color)}.port[_ngcontent-%COMP%]{stroke:var(--kip-port-color)}.heading-background[_ngcontent-%COMP%]{stroke:var(--kip-grey-color);fill:var(--kip-widget-card-background-color)}.boat[_ngcontent-%COMP%]{stop-color:var(--kip-grey-color)!important}.contrast-text[_ngcontent-%COMP%]{fill:var(--kip-contrast-color)}.contrast-stroke[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.card-color[_ngcontent-%COMP%]{fill:var(--kip-widget-card-background-color)}.true-wind[_ngcontent-%COMP%]{fill:var(--kip-yellow-color)}.true-wind-label[_ngcontent-%COMP%]{fill:var(--kip-yellow-dim-color)}.app-wind[_ngcontent-%COMP%]{fill:var(--kip-orange-color)}.app-wind-label[_ngcontent-%COMP%]{fill:var(--kip-orange-dim-color)}.course-over-ground[_ngcontent-%COMP%]{fill:var(--kip-pink-color)}.next-waypoint[_ngcontent-%COMP%]{stroke:var(--kip-green-color)}.next-waypoint-bar[_ngcontent-%COMP%]{stroke:var(--kip-grey-color)}.laylines[_ngcontent-%COMP%]{stroke:var(--kip-contrast-color)}.wind-sector-port[_ngcontent-%COMP%]{fill:var(--kip-port-color)}.wind-sector-stbd[_ngcontent-%COMP%]{fill:var(--kip-starboard-color)}.drift-arrow[_ngcontent-%COMP%]{stop-color:var(--kip-blue-color)}"]})}return r})();var Wh=(()=>{class r extends Ie{zones=M(yt);currentHeading=0;courseOverGroundAngle=0;appWindAngle=0;appWindSpeed=0;appWindSpeedUnit="";trueWindAngle=0;trueWindSpeed=0;trueWindSpeedUnit="";driftFlow=0;driftSet=0;waypointAngle=0;historicalWindDirection=[];trueWindMinHistoric;trueWindMidHistoric;trueWindMaxHistoric;windSectorObservableSub=null;constructor(){super(),this.defaultConfig={filterSelfPaths:!0,paths:{headingPath:{description:"True Heading",path:"self.navigation.headingTrue",source:"default",pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},appWindAngle:{description:"Apparent Wind Angle",path:"self.environment.wind.angleApparent",source:"default",pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},appWindSpeed:{description:"Apparent Wind Speed",path:"self.environment.wind.speedApparent",source:"default",pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:500},trueWindAngle:{description:"True Wind Angle",path:"self.environment.wind.angleTrueWater",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},trueWindSpeed:{description:"True Wind Speed",path:"self.environment.wind.speedTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:500},courseOverGround:{description:"True Course Over Ground",path:"self.navigation.courseOverGroundTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",showConvertUnitTo:!1,convertUnitTo:"deg",sampleTime:500},nextWaypointBearing:{description:"Next Waypoint True Bearing",path:"self.navigation.courseGreatCircle.nextPoint.bearingTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},set:{description:"True Drift Set",path:"self.environment.current.setTrue",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"rad",convertUnitTo:"deg",showConvertUnitTo:!1,sampleTime:500},drift:{description:"Drift Speed Impact",path:"self.environment.current.drift",source:"default",pathType:"number",isPathConfigurable:!0,pathRequired:!1,showPathSkUnitsFilter:!1,pathSkUnitsFilter:"m/s",convertUnitTo:"knots",sampleTime:500}},windSectorEnable:!0,windSectorWindowSeconds:5,laylineEnable:!0,laylineAngle:40,waypointEnable:!0,courseOverGroundEnable:!0,driftEnable:!0,awsEnable:!0,twsEnable:!0,sailSetupEnable:!1,enableTimeout:!1,dataTimeout:5}}ngOnInit(){this.validateConfig(),this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.stopWindSectors(),this.appWindSpeedUnit=this.widgetProperties.config.paths.trueWindSpeed.convertUnitTo,this.trueWindSpeedUnit=this.widgetProperties.config.paths.appWindSpeed.convertUnitTo,this.observeDataStream("headingPath",e=>{e.data.value==null&&(e.data.value=0),this.currentHeading=e.data.value}),this.observeDataStream("courseOverGround",e=>{e.data.value==null&&(e.data.value=0),this.courseOverGroundAngle=e.data.value}),this.observeDataStream("drift",e=>{e.data.value==null&&(e.data.value=0),this.driftFlow=e.data.value}),this.observeDataStream("set",e=>{e.data.value==null&&(e.data.value=0),this.driftSet=e.data.value}),this.observeDataStream("nextWaypointBearing",e=>{e.data.value<0?this.waypointAngle=360+e.data.value:this.waypointAngle=e.data.value}),this.observeDataStream("appWindAngle",e=>{if(e.data.value==null&&(e.data.value=0),e.data.value<0?this.appWindAngle=360+e.data.value:this.appWindAngle=e.data.value,this.widgetProperties.config.windSectorEnable){let t=this.addHeading(this.currentHeading,e.data.value);this.addHistoricalWindDirection(t)}}),this.observeDataStream("appWindSpeed",e=>{e.data.value==null&&(e.data.value=0),this.appWindSpeed=e.data.value}),this.observeDataStream("trueWindSpeed",e=>{e.data.value==null&&(e.data.value=0),this.trueWindSpeed=e.data.value}),this.observeDataStream("trueWindAngle",e=>{e.data.value==null&&(e.data.value=0);let t=this.widgetProperties.config.paths.trueWindAngle.path;t.includes("angleTrueWater")||t.includes("angleTrueGround")?this.trueWindAngle=this.addHeading(this.currentHeading,e.data.value):this.trueWindAngle=e.data.value}),this.startWindSectors()}updateConfig(e){this.widgetProperties.config=e,this.startWidget()}ngOnDestroy(){this.destroyDataStreams(),this.stopWindSectors()}startWindSectors(){this.zones.runOutsideAngular(()=>{this.windSectorObservableSub=Cl(500).subscribe(()=>{this.historicalCleanup()})})}addHistoricalWindDirection(e){this.historicalWindDirection.push({timestamp:Date.now(),windDirection:e});let t=this.arcForAngles(this.historicalWindDirection.map(i=>i.windDirection));this.trueWindMinHistoric=t.min,this.trueWindMaxHistoric=t.max,this.trueWindMidHistoric=t.mid}arcForAngles(e){return!e||e.length===0?{min:0,max:0,mid:0}:e.slice(1).reduce((i,o)=>{let a=o;for(;a<i.min-180;)a+=360;for(;a>i.max+180;)a-=360;return i.min=Math.min(i.min,a),i.max=Math.max(i.max,a),i.mid=(i.max-i.min)/2+i.min,i},{min:e[0],max:e[0],mid:e[0]})}historicalCleanup(){let e=Date.now()-this.widgetProperties.config.windSectorWindowSeconds*1e3;this.historicalWindDirection=this.historicalWindDirection.filter(t=>t.timestamp>=e)}stopWindSectors(){this.windSectorObservableSub?.unsubscribe()}addHeading(e,t){let i=(e+t)%360;return i<0&&(i+=360),i}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-wind-steer"]],features:[pe],decls:2,vars:25,consts:[[3,"configChange","config","id"],[3,"compassHeading","courseOverGroundAngle","courseOverGroundEnabled","trueWindAngle","twsEnabled","trueWindSpeed","trueWindSpeedUnit","appWindAngle","awsEnabled","appWindSpeed","appWindSpeedUnit","laylineAngle","closeHauledLineEnabled","windSectorEnabled","driftEnabled","driftFlow","driftSet","waypointAngle","waypointEnabled","trueWindMinHistoric","trueWindMidHistoric","trueWindMaxHistoric","sailSetupEnabled"]],template:function(t,i){t&1&&(v(0,"widget-host",0),Pe("configChange",function(a){return Ee(i.widgetProperties.config,a)||(i.widgetProperties.config=a),a}),L("configChange",function(a){return i.updateConfig(a)}),V(1,"app-svg-wind",1),w()),t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("compassHeading",i.currentHeading)("courseOverGroundAngle",i.courseOverGroundAngle)("courseOverGroundEnabled",i.widgetProperties.config.courseOverGroundEnable)("trueWindAngle",i.trueWindAngle)("twsEnabled",i.widgetProperties.config.twsEnable)("trueWindSpeed",i.trueWindSpeed)("trueWindSpeedUnit",i.trueWindSpeedUnit)("appWindAngle",i.appWindAngle)("awsEnabled",i.widgetProperties.config.awsEnable)("appWindSpeed",i.appWindSpeed)("appWindSpeedUnit",i.appWindSpeedUnit)("laylineAngle",i.widgetProperties.config.laylineAngle)("closeHauledLineEnabled",i.widgetProperties.config.laylineEnable)("windSectorEnabled",i.widgetProperties.config.windSectorEnable)("driftEnabled",i.widgetProperties.config.driftEnable)("driftFlow",i.driftFlow)("driftSet",i.driftSet)("waypointAngle",i.waypointAngle)("waypointEnabled",i.widgetProperties.config.waypointEnable)("trueWindMinHistoric",i.trueWindMinHistoric)("trueWindMidHistoric",i.trueWindMidHistoric)("trueWindMaxHistoric",i.trueWindMaxHistoric)("sailSetupEnabled",i.defaultConfig.sailSetupEnable))},dependencies:[Nh,Re],encapsulation:2})}return r})();var Of=["canvasEl"],Vh=(()=>{class r extends Ie{canvasEl=Be("canvasEl");canvas=M(At);canvasCtx=null;isDestroyed=!1;maxTextWidth=0;maxTextHeight=0;constructor(){super(),this.defaultConfig={displayName:"Static Label",color:"green",bgColor:"grey",noColor:!1,noBgColor:!0},Se(()=>{this.theme()&&(this.getColors(this.widgetProperties.config.color),this.updateCanvas())})}ngOnInit(){this.validateConfig()}ngAfterViewInit(){this.canvas.setHighDPISize(this.canvasEl().nativeElement,this.canvasEl().nativeElement.parentElement.getBoundingClientRect()),this.canvasCtx=this.canvasEl().nativeElement.getContext("2d"),this.maxTextWidth=this.canvasEl().nativeElement.width-40,this.maxTextHeight=this.canvasEl().nativeElement.height-40,!this.isDestroyed&&this.updateCanvas()}ngOnDestroy(){this.isDestroyed=!0,this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),this.canvasEl().nativeElement.remove()}startWidget(){}updateConfig(e){e.displayName?this.widgetProperties.config.displayName=e.displayName:this.widgetProperties.config.displayName="",this.updateCanvas()}onResized(e){this.canvas.setHighDPISize(this.canvasEl().nativeElement,e.contentRect),this.maxTextWidth=Math.floor(this.canvasEl().nativeElement.width-40),this.maxTextHeight=Math.floor(this.canvasEl().nativeElement.height-40),this.updateCanvas()}getColors(e){switch(e){case"contrast":return this.theme().contrast;case"blue":return this.theme().blue;case"green":return this.theme().green;case"pink":return this.theme().pink;case"orange":return this.theme().orange;case"purple":return this.theme().purple;case"grey":return this.theme().grey;case"yellow":return this.theme().yellow;default:return this.theme().contrast}}updateCanvas(){this.canvasCtx&&(this.canvas.clearCanvas(this.canvasCtx,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height),this.widgetProperties.config.noBgColor||this.canvas.drawRectangle(this.canvasCtx,0,0,this.canvasEl().nativeElement.width,this.canvasEl().nativeElement.height,this.getColors(this.widgetProperties.config.bgColor)),this.drawValue())}drawValue(){this.canvas.drawText(this.canvasCtx,this.widgetProperties.config.displayName,Math.floor(this.canvasEl().nativeElement.width/2),Math.floor(this.canvasEl().nativeElement.height/2+10),this.maxTextWidth,this.maxTextHeight,"bold",this.getColors(this.widgetProperties.config.color))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-label"]],viewQuery:function(t,i){t&1&&Le(i.canvasEl,Of,5),t&2&&nt()},features:[pe],decls:4,vars:2,consts:[["canvasEl",""],[3,"configChange","config","id"],[1,"wrapper",3,"onResize"],[1,"canvas",2,"z-index","inherit"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),v(1,"div",2),L("onResize",function(l){return B(o),F(i.onResized(l))}),V(2,"canvas",3,0),w()()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid))},dependencies:[Re,at,ot],styles:["[_nghost-%COMP%]{display:block;position:relative;width:100%;height:100%}.wrapper[_ngcontent-%COMP%]{position:relative;display:block;width:100%;height:100%}.canvas[_ngcontent-%COMP%]{display:block;z-index:inherit;border-radius:var(--mat-card-elevated-container-shape, var(--mat-sys-corner-medium))}"]})}return r})();var If=["svgSlider"];function Rf(r,n){r&1&&V(0,"div",11)}var zh=(()=>{class r extends Ie{svgElement=Be.required("svgSlider");canvas=M(At);dashboard=M(ct);signalkRequestsService=M(rn);appService=M(Dt);labelColor=void 0;barColor=void 0;skRequestSub=new ao;lineStartPx;lineWidthPx;lineEndPx;resizeTimeout;debounceTimeout;handlePosition=20;pathValue=0;lineStart=this.handlePosition;isDragStarted=!1;lineWidth="0px";VIEWBOX_WIDTH=200;LINE_START=20;LINE_WIDTH=160;colorMap=new Map([["contrast",{label:this.theme().contrastDim,bar:this.theme().contrast}],["blue",{label:this.theme().blueDim,bar:this.theme().blue}],["green",{label:this.theme().greenDim,bar:this.theme().green}],["pink",{label:this.theme().pinkDim,bar:this.theme().pink}],["orange",{label:this.theme().orangeDim,bar:this.theme().orange}],["purple",{label:this.theme().purpleDim,bar:this.theme().purple}],["grey",{label:this.theme().greyDim,bar:this.theme().grey}],["yellow",{label:this.theme().yellowDim,bar:this.theme().yellow}]]);valueChange$=new vt;constructor(){super(),this.defaultConfig={displayName:"Slider Label",filterSelfPaths:!0,paths:{gaugePath:{description:"PUT Supported Numeric Path. IMPORTANT: Format must be set to (base)",path:null,source:null,pathType:"number",isPathConfigurable:!0,showPathSkUnitsFilter:!1,pathSkUnitsFilter:null,showConvertUnitTo:!1,convertUnitTo:null,supportsPut:!0,sampleTime:500}},displayScale:{lower:0,upper:1,type:"linear"},enableTimeout:!1,dataTimeout:5,color:"contrast"},Se(()=>{this.theme()&&this.getColors(this.widgetProperties.config.color)})}ngOnInit(){this.validateConfig(),this.valueChange$.pipe(Kt(e=>this.isWithinMargin(e,this.widgetProperties.config.displayScale.lower)?this.widgetProperties.config.displayScale.lower:this.isWithinMargin(e,this.widgetProperties.config.displayScale.upper)?this.widgetProperties.config.displayScale.upper:parseFloat(e.toFixed(2))),lo(200),Tl()).subscribe(e=>{this.sendValue(e)})}ngAfterViewInit(){this.startWidget()}startWidget(){this.unsubscribeDataStream(),this.observeDataStream("gaugePath",e=>{if(!e||!e.data){this.handlePosition=this.mapValueToPosition(this.widgetProperties.config.displayScale.lower);return}this.updateHandlePosition(this.mapValueToPosition(e.data.value))}),this.skRequestSub?.unsubscribe(),this.subscribeSKRequest()}mapValueToPosition(e){let t=this.widgetProperties.config.displayScale.upper-this.widgetProperties.config.displayScale.lower,i=this.LINE_WIDTH;return(e-this.widgetProperties.config.displayScale.lower)/t*i+this.LINE_START}mapPositionToValue(e){let t=this.widgetProperties.config.displayScale.upper-this.widgetProperties.config.displayScale.lower,i=this.LINE_WIDTH;return(e-this.LINE_START)/i*t+this.widgetProperties.config.displayScale.lower}isWithinMargin(e,t){let i=(this.widgetProperties.config.displayScale.upper-this.widgetProperties.config.displayScale.lower)*.01;return Math.abs(e-t)<=i}subscribeSKRequest(){this.skRequestSub=this.signalkRequestsService.subscribeRequest().subscribe(e=>{if(e.widgetUUID==this.widgetProperties.uuid){let t=`Toggle Widget ${this.widgetProperties.config.displayName}: `;e.statusCode!=200&&(e.message?t+=e.message:t+=e.statusCode+" - "+e.statusCodeDescription,this.appService.sendSnackbarNotification(t,0))}})}sendValue(e){let t=this.widgetProperties.config.paths.gaugePath.path;this.signalkRequestsService.putRequest(t,e,this.widgetProperties.uuid)}updateConfig(e){this.widgetProperties.config=e,this.getColors(this.widgetProperties.config.color),this.calculateLineBounds(),this.startWidget()}onResized(){clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.calculateLineBounds()},200)}calculateLineBounds(){if(!this.svgElement()?.nativeElement){console.warn("[Slider Widget] SVG element is not initialized yet.");return}let e=this.svgElement().nativeElement.getBoundingClientRect(),t=this.LINE_START/this.VIEWBOX_WIDTH*e.width,i=this.LINE_WIDTH/this.VIEWBOX_WIDTH*e.width;this.lineStartPx=t,this.lineWidthPx=i,this.lineEndPx=this.lineStartPx+this.lineWidthPx}updateHandlePosition(e){this.handlePosition=e,this.lineWidth=`${e-this.lineStart}px`}getPointerX(e){return e.clientX-this.svgElement().nativeElement.getBoundingClientRect().left}onPointerDown(e){this.isDragStarted=!0,this.onPointerMove(e),e.stopPropagation(),e.preventDefault()}onPointerMove(e){if(this.isDragStarted){let t=this.getPointerX(e);if(t>=this.lineStartPx&&t<=this.lineEndPx){let i=(t-this.lineStartPx)/this.lineWidthPx*this.LINE_WIDTH+this.LINE_START;this.updateHandlePosition(i),this.handlePosition<=this.LINE_START?this.pathValue=this.widgetProperties.config.displayScale.lower:this.handlePosition>=this.LINE_START+this.LINE_WIDTH?this.pathValue=this.widgetProperties.config.displayScale.upper:this.pathValue=this.mapPositionToValue(this.handlePosition),this.valueChange$.next(this.pathValue)}}}onPointerUp(){this.isDragStarted=!1,this.valueChange$.next(this.pathValue)}onPointerLeave(){this.isDragStarted&&(this.isDragStarted=!1,this.valueChange$.next(this.pathValue))}getColors(e){let t=this.colorMap.get(e)||this.colorMap.get("contrast");this.labelColor=t.label,this.barColor=t.bar}ngOnDestroy(){this.destroyDataStreams(),this.skRequestSub?.unsubscribe(),this.valueChange$.complete(),clearTimeout(this.debounceTimeout),clearTimeout(this.resizeTimeout)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["widget-slider"]],viewQuery:function(t,i){t&1&&Le(i.svgElement,If,5),t&2&&nt()},features:[pe],decls:12,vars:9,consts:[["svgSlider",""],[3,"configChange","config","id"],[3,"text","color"],[1,"widgets-container",3,"onResize"],["width","100%","height","100%","viewBox","0 40 200 40"],["width","160","height","8","rx","4.5","id","rect3","x","20","y","56",1,"slider-bg-bar",2,"display","inline","stroke-width","1.57144"],["height","8","rx","4.5","id","rect3","x","20","y","56",2,"display","inline","stroke-width","1.57144"],["id","g22"],["cy","60","fill","#ffffff","id","circle3","r","19.549999",2,"display","inline","fill","#4d4d4d","fill-opacity","1","stroke","#8c8c8c","stroke-width","0.9","stroke-dasharray","none","stroke-opacity","1"],["cy","60","fill","#ffffff","id","circle3-3","r","17.950001",2,"display","inline","fill","#ffffff","fill-opacity","1","stroke","#e6e6e6","stroke-width","1.8","stroke-dasharray","none","stroke-opacity","0.97"],["cursor","pointer","width","200","height","40","x","0","y","40",2,"display","inline","fill","rgba(0, 0, 0, 0)","stroke","none","stroke-width","0.3","stroke-linecap","square","stroke-linejoin","round","stroke-miterlimit","0",3,"pointerdown","pointerup","pointermove","pointerleave"],[1,"widgetOverlay"]],template:function(t,i){if(t&1){let o=ee();v(0,"widget-host",1),Pe("configChange",function(l){return B(o),Ee(i.widgetProperties.config,l)||(i.widgetProperties.config=l),F(l)}),L("configChange",function(l){return B(o),F(i.updateConfig(l))}),V(1,"widget-title",2),v(2,"div",3),L("onResize",function(){return B(o),F(i.onResized())}),Xe(),v(3,"svg",4),V(4,"rect",5)(5,"rect",6),v(6,"g",7),V(7,"circle",8)(8,"circle",9),w(),v(9,"rect",10,0),L("pointerdown",function(l){return B(o),F(i.onPointerDown(l))})("pointerup",function(){return B(o),F(i.onPointerUp())})("pointermove",function(l){return B(o),F(i.onPointerMove(l))})("pointerleave",function(){return B(o),F(i.onPointerLeave())}),w()()(),De(11,Rf,1,0,"div",11),w()}t&2&&(xe("config",i.widgetProperties.config),U("id",i.widgetProperties.uuid),P(),U("text",i.widgetProperties.config.displayName)("color",i.labelColor),P(4),ce("width",i.lineWidth)("fill",i.barColor),P(2),ce("cx",i.handlePosition),P(),ce("cx",i.handlePosition),P(3),Me(i.dashboard.isDashboardStatic()?-1:11))},dependencies:[Re,at,ot,ui],styles:[".widgets-container[_ngcontent-%COMP%]{display:block;position:absolute;left:0;right:0;top:15%;height:85%;width:100%;overflow:hidden;z-index:20;padding:0 20px}.widgetOverlay[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;right:0;bottom:0;color:transparent;z-index:21}.slider-bg-bar[_ngcontent-%COMP%]{fill:var(--mat-sys-inverse-on-surface)}"]})}return r})();var Nf=["grid"];function Wf(r,n){r&1&&(v(0,"p",7)(1,"strong"),D(2,"Long press/click and hold anywhere"),w(),D(3," to add widgets"),w(),v(4,"mat-icon",8),D(5,"touch_app"),w())}function Vf(r,n){if(r&1){let e=ee();v(0,"p",7),D(1,"This empty dashboard is ready to be customized."),w(),v(2,"button",9),L("click",function(){B(e);let i=ie(2);return F(i.editDashboard())}),v(3,"mat-icon"),D(4,"lock_open"),w(),D(5," Unlock and Customize "),w()}}function zf(r,n){if(r&1&&(v(0,"div",2)(1,"div",4)(2,"div",5)(3,"mat-icon",6),D(4,"dashboard"),w(),De(5,Wf,6,0)(6,Vf,6,0),w()()()),r&2){let e=ie();P(5),Me(e.dashboard.isDashboardStatic()?6:5)}}function Lf(r,n){if(r&1){let e=ee();v(0,"div",3)(1,"button",10),L("click",function(){B(e);let i=ie();return F(i.saveLayoutChanges())}),v(2,"mat-icon"),D(3,"done"),w()(),v(4,"button",11),L("click",function(){B(e);let i=ie();return F(i.cancelLayoutChanges())}),v(5,"mat-icon"),D(6,"close"),w()()()}}function Bf(r,n){r&1&&V(0,"notification-badge")}function Ff(r,n){if(r&1&&(V(0,"dashboard-scroller",12),De(1,Bf,1,0,"notification-badge")),r&2){let e=ie();U("activePage",e.dashboard.activeDashboard())("dashboards",e.dashboard.dashboards()),P(),Me(e.notificationsInfo().alarmCount>0?1:-1)}}var Rs=(()=>{class r{_app=M(Dt);_dialog=M(ar);dashboard=M(ct);_notifications=M(on);_destroyRef=M(co);_uiEvent=M(sr);notificationsInfo=Gt(this._notifications.observerNotificationsInfo());isDashboardStatic=Gt(this.dashboard.isDashboardStatic$);isLoading=Ge(!0);_gridstack;_previousIsStaticState=!0;gridOptions={margin:4,minRow:12,maxRow:12,float:!0,acceptWidgets:!1,resizable:{handles:"all"}};_boundHandleKeyDown=this.handleKeyDown.bind(this);constructor(){Sn.addComponentToSelectorType([Go,gc,qo,_c,Oh,kh,xh,wh,Ph,gh,Cc,ph,Mh,Dh,Ih,Wh,jo,Vh,zh])}ngAfterViewInit(){this.dashboard.isDashboardStatic$.pipe(Xi(this._destroyRef)).subscribe(e=>{e?(this._gridstack.grid.setStatic(e),e!==this._previousIsStaticState&&(this.saveDashboard(),this._previousIsStaticState=e)):(this._gridstack.grid.setStatic(e),this._previousIsStaticState=e)}),this.dashboard.widgetAction$.pipe(Xi(this._destroyRef)).subscribe(e=>{e&&this._gridstack.grid.getGridItems().forEach(t=>{if(t.gridstackNode.id===e.id)switch(e.operation){case"delete":this.deleteWidget(t);break;case"duplicate":this.duplicateWidget(t);break;default:break}})}),this.resizeGridColumns(),this._uiEvent.addHotkeyListener(this._boundHandleKeyDown,{ctrlKey:!0,keys:["arrowdown","arrowup"]}),setTimeout(()=>{this.loadDashboard(this.dashboard.activeDashboard()),this.isLoading.set(!1)})}ngOnDestroy(){this._gridstack?.grid&&this._gridstack.grid.destroy(!0),this._gridstack=null,this._uiEvent.removeHotkeyListener(this._boundHandleKeyDown)}handleKeyDown(e,t){e==="arrowdown"?this.previousDashboard(t):e==="arrowup"&&this.nextDashboard(t)}resizeGridColumns(){this._gridstack.grid.cellHeight(window.innerHeight/this._gridstack.grid.getRow())}loadDashboard(e){let t=this.dashboard.dashboards()[e];this._gridstack?.grid&&(this._gridstack.grid.batchUpdate(),this._gridstack.grid.load(t.configuration),this._gridstack.grid.commit(),this.isLoading.set(!1))}saveDashboard(){let e=this._gridstack.grid.save(!1,!1)||null;this.dashboard.updateConfiguration(this.dashboard.activeDashboard(),e)}saveLayoutChanges(){this.dashboard.setStaticDashboard(!0)}cancelLayoutChanges(){this.loadDashboard(this.dashboard.activeDashboard()),this.dashboard.setStaticDashboard(!0)}addNewWidget(e){if(!this.dashboard.isDashboardStatic()){let t=e.center.x,i=e.center.y,o=this._gridstack.grid.getCellFromPixel({left:t,top:i});this._gridstack.grid.isAreaEmpty(o.x,o.y,1,1)&&(this._gridstack.grid.willItFit({x:o.x,y:o.y,w:2,h:3})?this._dialog.openFrameDialog({title:"Add Widget",component:"select-widget"},!0).subscribe(l=>{if(!l||typeof l!="object")return;let d=Pi.create(),p=l,s={x:o.x,y:o.y,w:p.defaultWidth,h:p.defaultHeight,minW:p.minWidth,minH:p.minHeight,id:d,selector:p.selector,input:{widgetProperties:{type:p.selector,uuid:d}}};this._gridstack.grid.addWidget(s)}):this._app.sendSnackbarNotification("Error Adding Widget: Not enough space at the selected location. Please reorganize the dashboard to free up space or choose a larger empty area.",0))}}duplicateWidget(e){let t=Pi.create(),i=e.gridstackNode,o={w:i.w,h:i.h,id:t,selector:i.selector,input:{widgetProperties:{type:i.input.widgetProperties.type,uuid:t,config:er(i.input.widgetProperties.config)}}};this._gridstack.grid.willItFit(o)?this._gridstack.grid.addWidget(o):(o.h=2,o.w=2,this._gridstack.grid.willItFit(o)?this._gridstack.grid.addWidget(o):this._app.sendSnackbarNotification("Duplication failed: Insufficient space on the dashboard. Please reorganize to free up space.",0))}deleteWidget(e){this._gridstack.grid.removeWidget(e)}nextDashboard(e){e.preventDefault(),this.dashboard.isDashboardStatic()&&(this.dashboard.nextDashboard(),this._gridstack?.grid&&setTimeout(()=>{this.loadDashboard(this.dashboard.activeDashboard())},0))}previousDashboard(e){e.preventDefault(),this.dashboard.isDashboardStatic()&&(this.dashboard.previousDashboard(),this._gridstack?.grid&&setTimeout(()=>{this.loadDashboard(this.dashboard.activeDashboard())},0))}editDashboard(){this.dashboard.toggleStaticDashboard()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["dashboard"]],viewQuery:function(t,i){if(t&1&&it(Nf,7),t&2){let o;qe(o=je())&&(i._gridstack=o.first)}},decls:5,vars:3,consts:[["grid",""],[3,"swipeup","swipedown","press","resize","options"],["empty-content","",1,"dashboard-empty-state"],[1,"edit-layout-close-icon"],[1,"empty-state-content"],[1,"empty-state-actions"],[1,"empty-state-icon"],[1,"empty-state-text"],[1,"touch-icon"],["mat-flat-button","",1,"empty-state-button",3,"click"],["mat-fab","",1,"layout-action-btn",2,"margin-right","10px",3,"click"],["mat-fab","",1,"layout-action-btn",3,"click"],[3,"activePage","dashboards"]],template:function(t,i){if(t&1){let o=ee();v(0,"gridstack",1,0),L("swipeup",function(l){return B(o),F(i.previousDashboard(l))})("swipedown",function(l){return B(o),F(i.nextDashboard(l))})("press",function(l){return B(o),F(i.addNewWidget(l))})("resize",function(){return B(o),F(i.resizeGridColumns())},Dl),De(2,zf,7,1,"div",2),w(),De(3,Lf,7,0,"div",3)(4,Ff,2,3)}t&2&&(U("options",i.gridOptions),P(2),Me(i.isLoading()?-1:2),P(),Me(i.dashboard.isDashboardStatic()?4:3))},dependencies:[sc,Sn,dc,Mt,di,Zt,qt,To,mc],styles:["[_nghost-%COMP%]{display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;width:100%;overflow:hidden}.grid-stack[_ngcontent-%COMP%]{width:100%}.edit-layout-close-icon[_ngcontent-%COMP%]{position:absolute;bottom:20px;right:20px;cursor:pointer;z-index:100}.layout-action-btn[_ngcontent-%COMP%]{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-primary)}.dashboard-empty-state[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:80vh;width:100%;padding:2rem;text-align:center}.empty-state-content[_ngcontent-%COMP%]{max-width:500px;color:var(--mat-sys-outline-variant)}.empty-state-icon[_ngcontent-%COMP%]{font-size:4rem;width:4rem;height:4rem;color:var(--mat-sys-outline-variant);margin-bottom:1rem}.empty-state-actions[_ngcontent-%COMP%] .touch-icon[_ngcontent-%COMP%]{font-size:2rem;width:2rem;height:2rem;color:var(--mat-sys-outline-variant);margin-top:.5rem;animation:_ngcontent-%COMP%_bounce 2s infinite}.empty-state-button[_ngcontent-%COMP%]{--mat-button-filled-label-text-color: var(--kip-widget-card-background-color);--mat-button-filled-container-color: var(--mat-sys-outline-variant);--mat-button-filled-hover-state-layer-opacity: .7;--mat-button-filled-state-layer-color: var(--mat-sys-primary-fixed-dim)}.empty-state-text[_ngcontent-%COMP%]{color:var(--mat-sys-outline-variant);font-style:italic}@keyframes _ngcontent-%COMP%_bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}"]})}return r})();var Lh=[{path:"dashboard",component:Rs},{path:"settings",loadComponent:()=>import("./chunk-HZN6ZOWD.js").then(r=>r.AppSettingsComponent)},{path:"help",loadComponent:()=>import("./chunk-T7T34DNY.js").then(r=>r.AppHelpComponent)},{path:"data",loadComponent:()=>import("./chunk-WVZ5YLYA.js").then(r=>r.DataInspectorComponent)},{path:"dashboards",loadComponent:()=>import("./chunk-SK4FQEPS.js").then(r=>r.DashboardsEditorComponent)},{path:"datasets",loadComponent:()=>import("./chunk-U7WT5AK3.js").then(r=>r.SettingsDatasetsComponent)},{path:"configurations",loadComponent:()=>import("./chunk-VTJ7KOEH.js").then(r=>r.SettingsConfigComponent)},{path:"login",loadComponent:()=>import("./chunk-5FUAHCDM.js").then(r=>r.WidgetLoginComponent)},{path:"**",component:Rs}];var Bh={production:!0};var Yh=Ir(hs());function Hf(r,n){if(r&1){let e=ee();v(0,"div",1)(1,"button",2),L("click",function(){B(e);let i=ie();return F(i.action())}),D(2),w()()}if(r&2){let e=ie();P(2),pt(" ",e.data.action," ")}}var Uf=["label"];function Gf(r,n){}var qf=Math.pow(2,31)-1,Gr=class{_overlayRef;instance;containerInstance;_afterDismissed=new vt;_afterOpened=new vt;_onAction=new vt;_durationTimeoutId;_dismissedByAction=!1;constructor(n,e){this._overlayRef=e,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,qf))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},Fh=new qn("MatSnackBarData"),kr=class{politeness="polite";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},jf=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275dir=Ti({type:r,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return r})(),$f=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275dir=Ti({type:r,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return r})(),Yf=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275dir=Ti({type:r,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return r})(),Xf=(()=>{class r{snackBarRef=M(Gr);data=M(Fh);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["matButton","","matSnackBarAction","",3,"click"]],template:function(t,i){t&1&&(v(0,"div",0),D(1),w(),De(2,Hf,3,1,"div",1)),t&2&&(P(),pt(" ",i.data.message,`
|
|
233
|
+
`),P(),Me(i.hasAction?2:-1))},dependencies:[qt,jf,$f,Yf],styles:[`.mat-mdc-simple-snack-bar{display:flex}
|
|
234
|
+
`],encapsulation:2,changeDetection:0})}return r})(),Ns="_mat-snack-bar-enter",Ws="_mat-snack-bar-exit",Kf=(()=>{class r extends wd{_ngZone=M(yt);_elementRef=M(tt);_changeDetectorRef=M(Qn);_platform=M(ir);_animationsDisabled=yn();snackBarConfig=M(kr);_document=M(Gi);_trackedModals=new Set;_enterFallback;_exitFallback;_injector=M(Ui);_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new vt;_onExit=new vt;_onEnter=new vt;_animationState="void";_live;_label;_role;_liveElementId=M(So).getId("mat-snack-bar-container-live-");constructor(){super();let e=this.snackBarConfig;e.politeness==="assertive"&&!e.announcementMessage?this._live="assertive":e.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();let t=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),t}attachTemplatePortal(e){this._assertNotAttached();let t=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),t}attachDomPortal=e=>{this._assertNotAttached();let t=this._portalOutlet.attachDomPortal(e);return this._afterPortalAttached(),t};onAnimationEnd(e){e===Ws?this._completeExit():e===Ns&&(clearTimeout(this._enterFallback),this._ngZone.run(()=>{this._onEnter.next(),this._onEnter.complete()}))}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce(),this._animationsDisabled?ji(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(Ns)))},{injector:this._injector}):(clearTimeout(this._enterFallback),this._enterFallback=setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-snack-bar-fallback-visible"),this.onAnimationEnd(Ns)},200)))}exit(){return this._destroyed?_l(void 0):(this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._animationsDisabled?ji(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(Ws)))},{injector:this._injector}):(clearTimeout(this._exitFallback),this._exitFallback=setTimeout(()=>this.onAnimationEnd(Ws),200))}),this._onExit)}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){clearTimeout(this._exitFallback),queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let e=this._elementRef.nativeElement,t=this.snackBarConfig.panelClass;t&&(Array.isArray(t)?t.forEach(a=>e.classList.add(a)):e.classList.add(t)),this._exposeToModals();let i=this._label.nativeElement,o="mdc-snackbar__label";i.classList.toggle(o,!i.querySelector(`.${o}`))}_exposeToModals(){let e=this._liveElementId,t=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let i=0;i<t.length;i++){let o=t[i],a=o.getAttribute("aria-owns");this._trackedModals.add(o),a?a.indexOf(e)===-1&&o.setAttribute("aria-owns",a+" "+e):o.setAttribute("aria-owns",e)}}_clearFromModals(){this._trackedModals.forEach(e=>{let t=e.getAttribute("aria-owns");if(t){let i=t.replace(this._liveElementId,"").trim();i.length>0?e.setAttribute("aria-owns",i):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{if(this._destroyed)return;let e=this._elementRef.nativeElement,t=e.querySelector("[aria-hidden]"),i=e.querySelector("[aria-live]");if(t&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&t.contains(document.activeElement)&&(o=document.activeElement),t.removeAttribute("aria-hidden"),i.appendChild(t),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["mat-snack-bar-container"]],viewQuery:function(t,i){if(t&1&&(it(Za,7),it(Uf,7)),t&2){let o;qe(o=je())&&(i._portalOutlet=o.first),qe(o=je())&&(i._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:6,hostBindings:function(t,i){t&1&&L("animationend",function(a){return i.onAnimationEnd(a.animationName)})("animationcancel",function(a){return i.onAnimationEnd(a.animationName)}),t&2&&Pt("mat-snack-bar-container-enter",i._animationState==="visible")("mat-snack-bar-container-exit",i._animationState==="hidden")("mat-snack-bar-container-animations-enabled",!i._animationsDisabled)},features:[pe],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(t,i){t&1&&(v(0,"div",1)(1,"div",2,0)(3,"div",3),Rr(4,Gf,0,0,"ng-template",4),w(),V(5,"div"),w()()),t&2&&(P(5),ce("aria-live",i._live)("role",i._role)("id",i._liveElementId))},dependencies:[Za],styles:[`@keyframes _mat-snack-bar-enter{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes _mat-snack-bar-exit{from{opacity:1}to{opacity:0}}.mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-snack-bar-container-animations-enabled{opacity:0}.mat-snack-bar-container-animations-enabled.mat-snack-bar-fallback-visible{opacity:1}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-enter{animation:_mat-snack-bar-enter 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-exit{animation:_mat-snack-bar-exit 75ms cubic-bezier(0.4, 0, 1, 1) forwards}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mat-snack-bar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-snack-bar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-snack-bar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mat-snack-bar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mat-snack-bar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mat-snack-bar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mat-snack-bar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-button-text-state-layer-color: currentColor;--mat-button-text-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}
|
|
235
|
+
`],encapsulation:2})}return r})();function Qf(){return new kr}var Zf=new qn("mat-snack-bar-default-options",{providedIn:"root",factory:Qf}),Hh=(()=>{class r{_live=M(pd);_injector=M(Ui);_breakpointObserver=M(wo);_parentSnackBar=M(r,{optional:!0,skipSelf:!0});_defaultConfig=M(Zf);_animationsDisabled=yn();_snackBarRefAtThisLevel=null;simpleSnackBarComponent=Xf;snackBarContainerComponent=Kf;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(){}openFromComponent(e,t){return this._attach(e,t)}openFromTemplate(e,t){return this._attach(e,t)}open(e,t="",i){let o=X(X({},this._defaultConfig),i);return o.data={message:e,action:t},o.announcementMessage===e&&(o.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,o)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,t){let i=t&&t.viewContainerRef&&t.viewContainerRef.injector,o=Ui.create({parent:i||this._injector,providers:[{provide:kr,useValue:t}]}),a=new Qa(this.snackBarContainerComponent,t.viewContainerRef,o),l=e.attach(a);return l.instance.snackBarConfig=t,l.instance}_attach(e,t){let i=X(X(X({},new kr),this._defaultConfig),t),o=this._createOverlay(i),a=this._attachSnackBarContainer(o,i),l=new Gr(a,o);if(e instanceof Ml){let d=new _d(e,null,{$implicit:i.data,snackBarRef:l});l.instance=a.attachTemplatePortal(d)}else{let d=this._createInjector(i,l),p=new Qa(e,void 0,d),s=a.attachComponentPortal(p);l.instance=s.instance}return this._breakpointObserver.observe(ko.HandsetPortrait).pipe(Qt(o.detachments())).subscribe(d=>{o.overlayElement.classList.toggle(this.handsetCssClass,d.matches)}),i.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(i.announcementMessage,i.politeness)}),this._animateSnackBar(l,i),this._openedSnackBarRef=l,this._openedSnackBarRef}_animateSnackBar(e,t){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),t.announcementMessage&&this._live.clear()}),t.duration&&t.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(t.duration)),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter()}_createOverlay(e){let t=new kd;t.direction=e.direction;let i=Td(this._injector),o=e.direction==="rtl",a=e.horizontalPosition==="left"||e.horizontalPosition==="start"&&!o||e.horizontalPosition==="end"&&o,l=!a&&e.horizontalPosition!=="center";return a?i.left("0"):l?i.right("0"):i.centerHorizontally(),e.verticalPosition==="top"?i.top("0"):i.bottom("0"),t.positionStrategy=i,t.disableAnimations=this._animationsDisabled,xd(this._injector,t)}_createInjector(e,t){let i=e&&e.viewContainerRef&&e.viewContainerRef.injector;return Ui.create({parent:i||this._injector,providers:[{provide:Gr,useValue:t},{provide:Fh,useValue:e.data}]})}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac,providedIn:"root"})}return r})();var Jf=(r,n)=>n.path;function eg(r,n){r&1&&(v(0,"mat-icon"),D(1,"info"),w())}function tg(r,n){r&1&&(v(0,"mat-icon"),D(1,"info"),w())}function ig(r,n){r&1&&(v(0,"mat-icon",3),D(1,"report"),w())}function ng(r,n){r&1&&(v(0,"mat-icon",4),D(1,"warning"),w())}function rg(r,n){r&1&&(v(0,"mat-icon",5),D(1,"error"),w())}function og(r,n){r&1&&(v(0,"mat-icon",6),D(1,"emergency_home"),w())}function ag(r,n){if(r&1){let e=ee();v(0,"div",2),De(1,eg,2,0,"mat-icon")(2,tg,2,0,"mat-icon")(3,ig,2,0,"mat-icon",3)(4,ng,2,0,"mat-icon",4)(5,rg,2,0,"mat-icon",5)(6,og,2,0,"mat-icon",6),v(7,"div",7),D(8),w(),v(9,"div",8),D(10),Kn(11,"slice"),w(),v(12,"div",9),D(13),w(),v(14,"button",10),L("click",function(){let i=B(e).$implicit,o=ie();return F(o.silence(i.path))}),v(15,"mat-icon"),D(16,"music_off"),w()(),v(17,"button",11),L("click",function(){let i=B(e).$implicit,o=ie();return F(o.clear(i.path))}),v(18,"mat-icon"),D(19,"published_with_changes"),w()()(),V(20,"mat-divider",12)}if(r&2){let e,t=n.$implicit;P(),Me((e=t.value.state)==="nominal"?1:e==="normal"?2:e==="alert"?3:e==="warn"?4:e==="alarm"?5:e==="emergency"?6:-1),P(7),rt(t.value.state),P(2),rt(Bl(11,5,t.path,14)),P(3),rt(t.value.message),P(),U("disabled",!t.value.method.includes("sound"))}}function sg(r,n){r&1&&(v(0,"mat-list-item",13)(1,"span",15),D(2,"Notifications Disabled"),w(),v(3,"span")(4,"i"),D(5,"*Enable notifications in Settings."),w()()())}function lg(r,n){r&1&&(v(0,"mat-list-item",14)(1,"i"),D(2,'"No Notification"'),w()())}function dg(r,n){if(r&1&&De(0,sg,6,0,"mat-list-item",13)(1,lg,3,0,"mat-list-item",14),r&2){let e=ie();Me(e.notificationConfig().disableNotifications?0:1)}}function cg(r,n){if(r&1){let e=ee();v(0,"button",17),L("click",function(){B(e);let i=ie(2);return F(i.mutePlayer(!i.isMuted))}),v(1,"span",18),D(2,"volume_up"),w(),D(3," Unmute Audio "),w()}}function hg(r,n){if(r&1){let e=ee();v(0,"button",17),L("click",function(){B(e);let i=ie(2);return F(i.mutePlayer(!i.isMuted))}),v(1,"span",18),D(2,"volume_off"),w(),D(3," Mute Audio "),w()}}function ug(r,n){if(r&1&&De(0,cg,4,0,"button",16)(1,hg,4,0,"button",16),r&2){let e=ie();Me(e.isMuted?0:1)}}var Uh=(()=>{class r{_notificationsService=M(on);_notifications$=this._notificationsService.observeNotifications();notificationConfig=Gt(this._notificationsService.observeNotificationConfiguration(),{requireSync:!0});menuNotifications=Gt(this._notifications$.pipe(Kt(e=>{let t=[];return this.notificationConfig().devices.showNormalState||t.push(ne.Normal),this.notificationConfig().devices.showNominalState||t.push(ne.Nominal),e.filter(i=>i.value&&i.value.state&&!t.includes(i.value.state))}),Kt(e=>e.filter(t=>t.value&&t.value.method&&t.value.method.includes(tr.Visual)))),{requireSync:!0,equal:gi});isMuted=!1;mutePlayer(e){this.isMuted=e,this._notificationsService.mutePlayer(e)}silence(e){this._notificationsService.setSkMethod(e,[tr.Visual])}clear(e){this._notificationsService.setSkState(e,ne.Normal)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["menu-notifications"]],decls:6,vars:2,consts:[[1,"menu-item-container"],[1,"actions-container","actions-bottom-container"],[1,"notification-container"],[1,"icon-alert-color"],[1,"icon-warn-color"],[1,"icon-alarm-color"],[1,"icon-emergency-color"],[1,"notification-title"],[1,"notification-path","scrollable-text"],[1,"notification-text"],["mat-icon-button","",1,"notification-action-btn",3,"click","disabled"],["mat-icon-button","",1,"notification-action-btn",3,"click"],[1,"notification-divider"],["lines","3","disabled","true",2,"text-align","center"],["disabled","true",2,"text-align","center"],["matListItemTitle",""],["mat-flat-button","","matTooltip","Temporally toggle all notification audio. To permanently disable/enable notification audio, use the configuration settings option",1,"action-button"],["mat-flat-button","","matTooltip","Temporally toggle all notification audio. To permanently disable/enable notification audio, use the configuration settings option",1,"action-button",3,"click"],[1,"material-icons"]],template:function(t,i){t&1&&(v(0,"mat-list",0),xi(1,ag,21,8,null,null,Jf,!1,dg,2,1),w(),v(4,"div",1),De(5,ug,2,1),w()),t&2&&(P(),Ei(i.menuNotifications()),P(4),Me(i.notificationConfig().disableNotifications?-1:5))},dependencies:[Do,Vd,Po,Dd,Rd,Zt,qt,bd,gr,Qd,Kd,Mt,di,ql],styles:[".notification-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly;padding:2px 10px 7px;overflow-y:scroll;overflow-x:hidden;scroll-behavior:smooth}mat-icon[_ngcontent-%COMP%]{margin-right:10px}.scrollable-text[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.scrollable-text[_ngcontent-%COMP%]:hover{overflow:auto;white-space:normal;word-wrap:break-word}.notification-title[_ngcontent-%COMP%]{text-transform:capitalize;font-size:var(--mat-sys-headline-small-size);width:calc(100% - 34px)}.notification-path[_ngcontent-%COMP%]{font-size:var(--mat-sys-body-small-size);word-break:break-all;width:100%}.notification-text[_ngcontent-%COMP%]{font-size:var(--mat-sys-body-small-line-height);font-style:italic;width:100%;overflow:auto;white-space:normal;word-wrap:break-word}.notification-action-btn[_ngcontent-%COMP%]{background-color:var(--mat-sys-surface-container)}.notification-btn-container[_ngcontent-%COMP%]{display:inline-block;width:50%;height:48px;text-align:center}.menu-item-container[_ngcontent-%COMP%]{width:230px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;height:calc(100% - 48px)}.notification-bottom-container[_ngcontent-%COMP%]{position:absolute;bottom:0;width:100%;background-color:var(--mat-sys-surface-container)}.actions-container[_ngcontent-%COMP%]{display:grid;grid-auto-flow:column}.actions-bottom-container[_ngcontent-%COMP%]{position:absolute;bottom:0;width:100%;height:48px}.action-button[_ngcontent-%COMP%]{border-radius:0;height:48px;border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large))}.icon-alert-color[_ngcontent-%COMP%]{color:var(--kip-zone-alert-color)}.icon-warn-color[_ngcontent-%COMP%]{color:var(--kip-zone-warn-color)}.icon-alarm-color[_ngcontent-%COMP%]{color:var(--kip-zone-alarm-color)}.icon-emergency-color[_ngcontent-%COMP%]{color:var(--kip-zone-emergency-color)}.alarm-emergency-blink[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_blinking-emergency 1.5s infinite}@keyframes _ngcontent-%COMP%_blinking-emergency{0%{background-color:var(--kip-zone-alarm-color)}50%{background-color:transparent}to{background-color:var(--kip-zone-alarm-color)}}.warn[_ngcontent-%COMP%]{color:var(--kip-zone-warn-color)}.notification-divider[_ngcontent-%COMP%]{padding-top:10px}"]})}return r})();var sa=["*"],pg=["content"],fg=[[["mat-drawer"]],[["mat-drawer-content"]],"*"],gg=["mat-drawer","mat-drawer-content","*"];function vg(r,n){if(r&1){let e=ee();v(0,"div",1),L("click",function(){B(e);let i=ie();return F(i._onBackdropClicked())}),w()}if(r&2){let e=ie();Pt("mat-drawer-shown",e._isShowingBackdrop())}}function yg(r,n){r&1&&(v(0,"mat-drawer-content"),Et(1,2),w())}var bg=[[["mat-sidenav"]],[["mat-sidenav-content"]],"*"],_g=["mat-sidenav","mat-sidenav-content","*"];function wg(r,n){if(r&1){let e=ee();v(0,"div",1),L("click",function(){B(e);let i=ie();return F(i._onBackdropClicked())}),w()}if(r&2){let e=ie();Pt("mat-drawer-shown",e._isShowingBackdrop())}}function Cg(r,n){r&1&&(v(0,"mat-sidenav-content"),Et(1,2),w())}var Sg=`.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}
|
|
236
|
+
`;var kg=new qn("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:Tg}),Ls=new qn("MAT_DRAWER_CONTAINER");function Tg(){return!1}var oa=(()=>{class r extends rr{_platform=M(ir);_changeDetectorRef=M(Qn);_container=M(zs);constructor(){let e=M(tt),t=M(Cd),i=M(yt);super(e,t,i)}ngAfterContentInit(){this._container._contentMarginChanges.subscribe(()=>{this._changeDetectorRef.markForCheck()})}_shouldBeHidden(){if(this._platform.isBrowser)return!1;let{start:e,end:t}=this._container;return e!=null&&e.mode!=="over"&&e.opened||t!=null&&t.mode!=="over"&&t.opened}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["mat-drawer-content"]],hostAttrs:[1,"mat-drawer-content"],hostVars:6,hostBindings:function(t,i){t&2&&(_e("margin-left",i._container._contentMargins.left,"px")("margin-right",i._container._contentMargins.right,"px"),Pt("mat-drawer-content-hidden",i._shouldBeHidden()))},features:[Xn([{provide:rr,useExisting:r}]),pe],ngContentSelectors:sa,decls:1,vars:0,template:function(t,i){t&1&&(si(),Et(0))},encapsulation:2,changeDetection:0})}return r})(),Vs=(()=>{class r{_elementRef=M(tt);_focusTrapFactory=M(md);_focusMonitor=M(cd);_platform=M(ir);_ngZone=M(yt);_renderer=M(mo);_interactivityChecker=M(Co);_doc=M(Gi);_container=M(Ls,{optional:!0});_focusTrap=null;_elementFocusedBeforeDrawerWasOpened=null;_eventCleanups;_isAttached;_anchor;get position(){return this._position}set position(e){e=e==="end"?"end":"start",e!==this._position&&(this._isAttached&&this._updatePositionInParent(e),this._position=e,this.onPositionChanged.emit())}_position="start";get mode(){return this._mode}set mode(e){this._mode=e,this._updateFocusTrapState(),this._modeChanged.next()}_mode="over";get disableClose(){return this._disableClose}set disableClose(e){this._disableClose=bn(e)}_disableClose=!1;get autoFocus(){let e=this._autoFocus;return e??(this.mode==="side"?"dialog":"first-tabbable")}set autoFocus(e){(e==="true"||e==="false"||e==null)&&(e=bn(e)),this._autoFocus=e}_autoFocus;get opened(){return this._opened()}set opened(e){this.toggle(bn(e))}_opened=Ge(!1);_openedVia;_animationStarted=new vt;_animationEnd=new vt;openedChange=new mt(!0);_openedStream=this.openedChange.pipe(Un(e=>e),Kt(()=>{}));openedStart=this._animationStarted.pipe(Un(()=>this.opened),Ha(void 0));_closedStream=this.openedChange.pipe(Un(e=>!e),Kt(()=>{}));closedStart=this._animationStarted.pipe(Un(()=>!this.opened),Ha(void 0));_destroyed=new vt;onPositionChanged=new mt;_content;_modeChanged=new vt;_injector=M(Ui);_changeDetectorRef=M(Qn);constructor(){this.openedChange.pipe(Qt(this._destroyed)).subscribe(e=>{e?(this._elementFocusedBeforeDrawerWasOpened=this._doc.activeElement,this._takeFocus()):this._isFocusWithinDrawer()&&this._restoreFocus(this._openedVia||"program")}),this._ngZone.runOutsideAngular(()=>{let e=this._elementRef.nativeElement;wl(e,"keydown").pipe(Un(t=>t.keyCode===27&&!this.disableClose&&!gd(t)),Qt(this._destroyed)).subscribe(t=>this._ngZone.run(()=>{this.close(),t.stopPropagation(),t.preventDefault()})),this._eventCleanups=[this._renderer.listen(e,"transitionrun",this._handleTransitionEvent),this._renderer.listen(e,"transitionend",this._handleTransitionEvent),this._renderer.listen(e,"transitioncancel",this._handleTransitionEvent)]}),this._animationEnd.subscribe(()=>{this.openedChange.emit(this.opened)})}_forceFocus(e,t){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let i=()=>{o(),a(),e.removeAttribute("tabindex")},o=this._renderer.listen(e,"blur",i),a=this._renderer.listen(e,"mousedown",i)})),e.focus(t)}_focusByCssSelector(e,t){let i=this._elementRef.nativeElement.querySelector(e);i&&this._forceFocus(i,t)}_takeFocus(){if(!this._focusTrap)return;let e=this._elementRef.nativeElement;switch(this.autoFocus){case!1:case"dialog":return;case!0:case"first-tabbable":ji(()=>{!this._focusTrap.focusInitialElement()&&typeof e.focus=="function"&&e.focus()},{injector:this._injector});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this.autoFocus);break}}_restoreFocus(e){this.autoFocus!=="dialog"&&(this._elementFocusedBeforeDrawerWasOpened?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,e):this._elementRef.nativeElement.blur(),this._elementFocusedBeforeDrawerWasOpened=null)}_isFocusWithinDrawer(){let e=this._doc.activeElement;return!!e&&this._elementRef.nativeElement.contains(e)}ngAfterViewInit(){this._isAttached=!0,this._position==="end"&&this._updatePositionInParent("end"),this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._updateFocusTrapState())}ngOnDestroy(){this._eventCleanups.forEach(e=>e()),this._focusTrap?.destroy(),this._anchor?.remove(),this._anchor=null,this._animationStarted.complete(),this._animationEnd.complete(),this._modeChanged.complete(),this._destroyed.next(),this._destroyed.complete()}open(e){return this.toggle(!0,e)}close(){return this.toggle(!1)}_closeViaBackdropClick(){return this._setOpen(!1,!0,"mouse")}toggle(e=!this.opened,t){e&&t&&(this._openedVia=t);let i=this._setOpen(e,!e&&this._isFocusWithinDrawer(),this._openedVia||"program");return e||(this._openedVia=null),i}_setOpen(e,t,i){return e===this.opened?Promise.resolve(e?"open":"close"):(this._opened.set(e),this._container?._transitionsEnabled?this._setIsAnimating(!0):setTimeout(()=>{this._animationStarted.next(),this._animationEnd.next()}),this._elementRef.nativeElement.classList.toggle("mat-drawer-opened",e),!e&&t&&this._restoreFocus(i),this._changeDetectorRef.markForCheck(),this._updateFocusTrapState(),new Promise(o=>{this.openedChange.pipe(kl(1)).subscribe(a=>o(a?"open":"close"))}))}_setIsAnimating(e){this._elementRef.nativeElement.classList.toggle("mat-drawer-animating",e)}_getWidth(){return this._elementRef.nativeElement.offsetWidth||0}_updateFocusTrapState(){this._focusTrap&&(this._focusTrap.enabled=!!this._container?.hasBackdrop&&this.opened)}_updatePositionInParent(e){if(!this._platform.isBrowser)return;let t=this._elementRef.nativeElement,i=t.parentNode;e==="end"?(this._anchor||(this._anchor=this._doc.createComment("mat-drawer-anchor"),i.insertBefore(this._anchor,t)),i.appendChild(t)):this._anchor&&this._anchor.parentNode.insertBefore(t,this._anchor)}_handleTransitionEvent=e=>{let t=this._elementRef.nativeElement;e.target===t&&this._ngZone.run(()=>{e.type==="transitionrun"?this._animationStarted.next(e):(e.type==="transitionend"&&this._setIsAnimating(!1),this._animationEnd.next(e))})};static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["mat-drawer"]],viewQuery:function(t,i){if(t&1&&it(pg,5),t&2){let o;qe(o=je())&&(i._content=o.first)}},hostAttrs:[1,"mat-drawer"],hostVars:12,hostBindings:function(t,i){t&2&&(ce("align",null)("tabIndex",i.mode!=="side"?"-1":null),_e("visibility",!i._container&&!i.opened?"hidden":null),Pt("mat-drawer-end",i.position==="end")("mat-drawer-over",i.mode==="over")("mat-drawer-push",i.mode==="push")("mat-drawer-side",i.mode==="side"))},inputs:{position:"position",mode:"mode",disableClose:"disableClose",autoFocus:"autoFocus",opened:"opened"},outputs:{openedChange:"openedChange",_openedStream:"opened",openedStart:"openedStart",_closedStream:"closed",closedStart:"closedStart",onPositionChanged:"positionChanged"},exportAs:["matDrawer"],ngContentSelectors:sa,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,i){t&1&&(si(),v(0,"div",1,0),Et(2),w())},dependencies:[rr],encapsulation:2,changeDetection:0})}return r})(),zs=(()=>{class r{_dir=M(yd,{optional:!0});_element=M(tt);_ngZone=M(yt);_changeDetectorRef=M(Qn);_animationDisabled=yn();_transitionsEnabled=!1;_allDrawers;_drawers=new Pl;_content;_userContent;get start(){return this._start}get end(){return this._end}get autosize(){return this._autosize}set autosize(e){this._autosize=bn(e)}_autosize=M(kg);get hasBackdrop(){return this._drawerHasBackdrop(this._start)||this._drawerHasBackdrop(this._end)}set hasBackdrop(e){this._backdropOverride=e==null?null:bn(e)}_backdropOverride;backdropClick=new mt;_start;_end;_left;_right;_destroyed=new vt;_doCheckSubject=new vt;_contentMargins={left:null,right:null};_contentMarginChanges=new vt;get scrollable(){return this._userContent||this._content}_injector=M(Ui);constructor(){let e=M(ir),t=M(Sd);this._dir?.change.pipe(Qt(this._destroyed)).subscribe(()=>{this._validateDrawers(),this.updateContentMargins()}),t.change().pipe(Qt(this._destroyed)).subscribe(()=>this.updateContentMargins()),!this._animationDisabled&&e.isBrowser&&this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{this._element.nativeElement.classList.add("mat-drawer-transition"),this._transitionsEnabled=!0},200)})}ngAfterContentInit(){this._allDrawers.changes.pipe(qa(this._allDrawers),Qt(this._destroyed)).subscribe(e=>{this._drawers.reset(e.filter(t=>!t._container||t._container===this)),this._drawers.notifyOnChanges()}),this._drawers.changes.pipe(qa(null)).subscribe(()=>{this._validateDrawers(),this._drawers.forEach(e=>{this._watchDrawerToggle(e),this._watchDrawerPosition(e),this._watchDrawerMode(e)}),(!this._drawers.length||this._isDrawerOpen(this._start)||this._isDrawerOpen(this._end))&&this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),this._ngZone.runOutsideAngular(()=>{this._doCheckSubject.pipe(lo(10),Qt(this._destroyed)).subscribe(()=>this.updateContentMargins())})}ngOnDestroy(){this._contentMarginChanges.complete(),this._doCheckSubject.complete(),this._drawers.destroy(),this._destroyed.next(),this._destroyed.complete()}open(){this._drawers.forEach(e=>e.open())}close(){this._drawers.forEach(e=>e.close())}updateContentMargins(){let e=0,t=0;if(this._left&&this._left.opened){if(this._left.mode=="side")e+=this._left._getWidth();else if(this._left.mode=="push"){let i=this._left._getWidth();e+=i,t-=i}}if(this._right&&this._right.opened){if(this._right.mode=="side")t+=this._right._getWidth();else if(this._right.mode=="push"){let i=this._right._getWidth();t+=i,e-=i}}e=e||null,t=t||null,(e!==this._contentMargins.left||t!==this._contentMargins.right)&&(this._contentMargins={left:e,right:t},this._ngZone.run(()=>this._contentMarginChanges.next(this._contentMargins)))}ngDoCheck(){this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(()=>this._doCheckSubject.next())}_watchDrawerToggle(e){e._animationStarted.pipe(Qt(this._drawers.changes)).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()}),e.mode!=="side"&&e.openedChange.pipe(Qt(this._drawers.changes)).subscribe(()=>this._setContainerClass(e.opened))}_watchDrawerPosition(e){e.onPositionChanged.pipe(Qt(this._drawers.changes)).subscribe(()=>{ji({read:()=>this._validateDrawers()},{injector:this._injector})})}_watchDrawerMode(e){e._modeChanged.pipe(Qt(Sl(this._drawers.changes,this._destroyed))).subscribe(()=>{this.updateContentMargins(),this._changeDetectorRef.markForCheck()})}_setContainerClass(e){let t=this._element.nativeElement.classList,i="mat-drawer-container-has-open";e?t.add(i):t.remove(i)}_validateDrawers(){this._start=this._end=null,this._drawers.forEach(e=>{e.position=="end"?(this._end!=null,this._end=e):(this._start!=null,this._start=e)}),this._right=this._left=null,this._dir&&this._dir.value==="rtl"?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)}_isPushed(){return this._isDrawerOpen(this._start)&&this._start.mode!="over"||this._isDrawerOpen(this._end)&&this._end.mode!="over"}_onBackdropClicked(){this.backdropClick.emit(),this._closeModalDrawersViaBackdrop()}_closeModalDrawersViaBackdrop(){[this._start,this._end].filter(e=>e&&!e.disableClose&&this._drawerHasBackdrop(e)).forEach(e=>e._closeViaBackdropClick())}_isShowingBackdrop(){return this._isDrawerOpen(this._start)&&this._drawerHasBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._drawerHasBackdrop(this._end)}_isDrawerOpen(e){return e!=null&&e.opened}_drawerHasBackdrop(e){return this._backdropOverride==null?!!e&&e.mode!=="side":this._backdropOverride}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["mat-drawer-container"]],contentQueries:function(t,i,o){if(t&1&&(gn(o,oa,5),gn(o,Vs,5)),t&2){let a;qe(a=je())&&(i._content=a.first),qe(a=je())&&(i._allDrawers=a)}},viewQuery:function(t,i){if(t&1&&it(oa,5),t&2){let o;qe(o=je())&&(i._userContent=o.first)}},hostAttrs:[1,"mat-drawer-container"],hostVars:2,hostBindings:function(t,i){t&2&&Pt("mat-drawer-container-explicit-backdrop",i._backdropOverride)},inputs:{autosize:"autosize",hasBackdrop:"hasBackdrop"},outputs:{backdropClick:"backdropClick"},exportAs:["matDrawerContainer"],features:[Xn([{provide:Ls,useExisting:r}])],ngContentSelectors:gg,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(t,i){t&1&&(si(fg),De(0,vg,1,2,"div",0),Et(1),Et(2,1),De(3,yg,2,0,"mat-drawer-content")),t&2&&(Me(i.hasBackdrop?0:-1),P(3),Me(i._content?-1:3))},dependencies:[oa],styles:[`.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed}
|
|
237
|
+
`],encapsulation:2,changeDetection:0})}return r})(),aa=(()=>{class r extends oa{static \u0275fac=(()=>{let e;return function(i){return(e||(e=$n(r)))(i||r)}})();static \u0275cmp=G({type:r,selectors:[["mat-sidenav-content"]],hostAttrs:[1,"mat-drawer-content","mat-sidenav-content"],features:[Xn([{provide:rr,useExisting:r}]),pe],ngContentSelectors:sa,decls:1,vars:0,template:function(t,i){t&1&&(si(),Et(0))},encapsulation:2,changeDetection:0})}return r})(),Bs=(()=>{class r extends Vs{get fixedInViewport(){return this._fixedInViewport}set fixedInViewport(e){this._fixedInViewport=bn(e)}_fixedInViewport=!1;get fixedTopGap(){return this._fixedTopGap}set fixedTopGap(e){this._fixedTopGap=Ka(e)}_fixedTopGap=0;get fixedBottomGap(){return this._fixedBottomGap}set fixedBottomGap(e){this._fixedBottomGap=Ka(e)}_fixedBottomGap=0;static \u0275fac=(()=>{let e;return function(i){return(e||(e=$n(r)))(i||r)}})();static \u0275cmp=G({type:r,selectors:[["mat-sidenav"]],hostAttrs:[1,"mat-drawer","mat-sidenav"],hostVars:16,hostBindings:function(t,i){t&2&&(ce("tabIndex",i.mode!=="side"?"-1":null)("align",null),_e("top",i.fixedInViewport?i.fixedTopGap:null,"px")("bottom",i.fixedInViewport?i.fixedBottomGap:null,"px"),Pt("mat-drawer-end",i.position==="end")("mat-drawer-over",i.mode==="over")("mat-drawer-push",i.mode==="push")("mat-drawer-side",i.mode==="side")("mat-sidenav-fixed",i.fixedInViewport))},inputs:{fixedInViewport:"fixedInViewport",fixedTopGap:"fixedTopGap",fixedBottomGap:"fixedBottomGap"},exportAs:["matSidenav"],features:[Xn([{provide:Vs,useExisting:r}]),pe],ngContentSelectors:sa,decls:3,vars:0,consts:[["content",""],["cdkScrollable","",1,"mat-drawer-inner-container"]],template:function(t,i){t&1&&(si(),v(0,"div",1,0),Et(2),w())},dependencies:[rr],encapsulation:2,changeDetection:0})}return r})(),Gh=(()=>{class r extends zs{_allDrawers=void 0;_content=void 0;static \u0275fac=(()=>{let e;return function(i){return(e||(e=$n(r)))(i||r)}})();static \u0275cmp=G({type:r,selectors:[["mat-sidenav-container"]],contentQueries:function(t,i,o){if(t&1&&(gn(o,aa,5),gn(o,Bs,5)),t&2){let a;qe(a=je())&&(i._content=a.first),qe(a=je())&&(i._allDrawers=a)}},hostAttrs:[1,"mat-drawer-container","mat-sidenav-container"],hostVars:2,hostBindings:function(t,i){t&2&&Pt("mat-drawer-container-explicit-backdrop",i._backdropOverride)},exportAs:["matSidenavContainer"],features:[Xn([{provide:Ls,useExisting:r},{provide:zs,useExisting:r}]),pe],ngContentSelectors:_g,decls:4,vars:2,consts:[[1,"mat-drawer-backdrop",3,"mat-drawer-shown"],[1,"mat-drawer-backdrop",3,"click"]],template:function(t,i){t&1&&(si(bg),De(0,wg,1,2,"div",0),Et(1),Et(2,1),De(3,Cg,2,0,"mat-sidenav-content")),t&2&&(Me(i.hasBackdrop?0:-1),P(3),Me(i._content?-1:3))},dependencies:[aa],styles:[Sg],encapsulation:2,changeDetection:0})}return r})(),qh=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=ai({type:r});static \u0275inj=oi({imports:[nr,Ja,Ja,nr]})}return r})();var jh=(()=>{class r{svgIcon=q.required();iconSize=q.required();label=q.required();constructor(){let e=M(dd),t=M(Jn);e.addSvgIconSet(t.bypassSecurityTrustResourceUrl("assets/svg/icons.svg"))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["tile-large-icon"]],inputs:{svgIcon:[1,"svgIcon"],iconSize:[1,"iconSize"],label:[1,"label"]},decls:3,vars:6,consts:[["aria-hidden","false",3,"svgIcon"],[1,"large-icon-tile-label"]],template:function(t,i){t&1&&(V(0,"mat-icon",0),v(1,"p",1),D(2),w()),t&2&&(_e("width",i.iconSize(),"px")("height",i.iconSize(),"px"),U("svgIcon",i.svgIcon()),P(2),rt(i.label()))},dependencies:[Mt,di,Eo],styles:["[_nghost-%COMP%]{display:block;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;padding:10px}[_nghost-%COMP%]:hover{background-color:var(--mat-sys-inverse-on-surface)}[_nghost-%COMP%]:focus-visible{background-color:var(--mat-sys-surface-bright);outline:-webkit-focus-ring-color auto 0px}.large-icon-tile-label[_ngcontent-%COMP%]{cursor:pointer;color:var(--mat-sys-outline)}"]})}return r})();function Eg(r,n){if(r&1){let e=ee();v(0,"button",7),L("click",function(){B(e);let i=ie(2);return F(i.onActionItem("toggleFullScreen"))}),v(1,"span",5),D(2,"fullscreen"),w()()}}function Pg(r,n){if(r&1){let e=ee();v(0,"button",7),L("click",function(){B(e);let i=ie(2);return F(i.onActionItem("toggleFullScreen"))}),v(1,"span",5),D(2,"close_fullscreen"),w()()}}function Dg(r,n){if(r&1&&De(0,Eg,3,0,"button",6)(1,Pg,3,0,"button",6),r&2){let e=ie();Me(e.uiEvent.fullscreenStatus()?1:0)}}function Mg(r,n){if(r&1){let e=ee();v(0,"button",4),L("click",function(){B(e);let i=ie(2);return F(i.onActionItem("nightMode"))}),v(1,"span",5),D(2,"mode_night"),w()()}}function Ag(r,n){if(r&1){let e=ee();v(0,"button",4),L("click",function(){B(e);let i=ie(2);return F(i.onActionItem("nightMode"))}),v(1,"span",5),D(2,"light_mode"),w()()}}function Og(r,n){if(r&1&&De(0,Mg,3,0,"button",8)(1,Ag,3,0,"button",8),r&2){let e=ie();Me(e.app.isNightMode()?1:0)}}function Ig(r,n){if(r&1){let e=ee();v(0,"tile-large-icon",9),L("click",function(){let i=B(e).$implicit,o=ie();return F(o.onActionItem(i.action))}),w()}if(r&2){let e=n.$implicit;U("svgIcon",e.svgIcon)("iconSize",e.iconSize)("label",e.label)}}var $h=(()=>{class r{actionsSidenav=q.required();_router=M(_o);uiEvent=M(sr);dashboard=M(ct);app=M(Dt);_settings=M(Ut);isAutoNightMode=Gt(this._settings.getAutoNightModeAsO(),{requireSync:!0});menuItems=[{svgIcon:"dashboard",iconSize:48,label:"Dashboards",action:"dashboards"},{svgIcon:"troubleshoot",iconSize:48,label:"Data Inspector",action:"datainspector"},{svgIcon:"dataset",iconSize:48,label:"Datasets",action:"datasets"},{svgIcon:"configuration",iconSize:48,label:"Configurations",action:"configurations"},{svgIcon:"settings",iconSize:48,label:"Settings",action:"settings"},{svgIcon:"help-center",iconSize:48,label:"Help",action:"help"}];constructor(){}ngAfterViewInit(){this.uiEvent.addHotkeyListener((e,t)=>this.handleKeyDown(e,t),{ctrlKey:!0,shiftKey:!0,keys:["e","f","n"]})}ngOnDestroy(){this.uiEvent.removeHotkeyListener(this.handleKeyDown.bind(this))}handleKeyDown(e,t){switch(e){case"e":this.onActionItem("layout");break;case"f":this.onActionItem("toggleFullScreen");break;case"n":this.onActionItem("nightMode");break;default:break}}onActionItem(e){switch(this.actionsSidenav().close(),e){case"help":this._router.navigate(["/help"]);break;case"dashboards":this._router.navigate(["/dashboards"]);break;case"datainspector":this._router.navigate(["/data"]);break;case"datasets":this._router.navigate(["/datasets"]);break;case"configurations":this._router.navigate(["/configurations"]);break;case"toggleFullScreen":this.uiEvent.toggleFullScreen();break;case"settings":this._router.navigate(["/settings"]);break;case"layout":this.dashboard.toggleStaticDashboard();break;case"nightMode":this.app.isNightMode.set(!this.app.isNightMode()),this.app.toggleDayNightMode();break;default:break}}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["menu-actions"]],inputs:{actionsSidenav:[1,"actionsSidenav"]},decls:10,vars:2,consts:[[1,"actions-container","actions-top-container"],[1,"menu-item-container"],["tabindex","0",3,"svgIcon","iconSize","label"],[1,"actions-container","actions-bottom-container"],["mat-flat-button","",1,"action-button",3,"click"],[1,"material-icons"],["mat-flat-button","","tabindex","0",1,"action-button"],["mat-flat-button","","tabindex","0",1,"action-button",3,"click"],["mat-flat-button","",1,"action-button"],["tabindex","0",3,"click","svgIcon","iconSize","label"]],template:function(t,i){t&1&&(v(0,"div",0),De(1,Dg,2,1),De(2,Og,2,1),w(),v(3,"div",1),xi(4,Ig,1,3,"tile-large-icon",2,Yn),w(),v(6,"div",3)(7,"button",4),L("click",function(){return i.onActionItem("layout")}),v(8,"span",5),D(9,"lock_open"),w()()()),t&2&&(P(),Me(i.uiEvent.fullscreenSupported()?1:-1),P(),Me(i.isAutoNightMode()?-1:2),P(2),Ei(i.menuItems))},dependencies:[Mt,Zt,qt,jh],styles:[".actions-container[_ngcontent-%COMP%]{display:grid;grid-auto-flow:column}.actions-top-container[_ngcontent-%COMP%]{position:absolute;top:0;width:100%}.actions-bottom-container[_ngcontent-%COMP%]{position:absolute;bottom:0;width:100%}.action-button[_ngcontent-%COMP%]{border-radius:0;height:48px}.menu-item-container[_ngcontent-%COMP%]{position:absolute;top:48px;width:135px;overflow-y:scroll;overflow-x:hidden;scroll-behavior:smooth;height:calc(100% - 96px)}"]})}return r})();var Rg=["actionsSidenav"],Xh=(()=>{class r{_snackBar=M(Hh);_deltaService=M(Ki);_connectionStateMachine=M(Zn);_app=M(Dt);_dashboard=M(ct);_uiEvent=M(sr);_dialog=M(ar);appSettingsService=M(Ut);authenticationService=M(li);_responsive=M(wo);openSidenavEvent=new mt;actionsSidenav=Be("actionsSidenav");actionsSidenavOpen=Nr(!1);notificationsSidenavOpened=Nr(!1);isPhonePortrait;notificationsVisibility="hidden";themeName;themeNameSub;appNotificationSub;connectionStatusSub;constructor(){Se(()=>{this.appSettingsService.configUpgrade()&&this._dialog.openFrameDialog({title:"Configuration Upgrade",component:"upgrade-config"},!0).subscribe(e=>{})}),this.isPhonePortrait=Gt(this._responsive.observe(ko.HandsetPortrait))}ngOnInit(){this.connectionStatusSub=this._connectionStateMachine.status$.subscribe(e=>{this.displayConnectionsStatusNotification(e)}),this.appNotificationSub=this._app.getSnackbarAppNotifications().subscribe(e=>{if(this._snackBar.open(e.message,"dismiss",{duration:e.duration,verticalPosition:"top"}),!this.appSettingsService.getNotificationConfig().sound.disableSound&&!e.silent){let t=new Yh.Howl({src:["assets/notification.mp3"],autoplay:!0,preload:!0,loop:!1,volume:.3,onend:function(){t=void 0},onloaderror:function(){console.log("snackbar: player onload error"),t.unload(),t=void 0},onplayerror:function(){console.log("snackbar: player locked"),this.howlPlayer.once("unlock",function(){this.howlPlayer.play(),this.howlPlayer.unload(),this.howlPlayer=void 0}),t.unload(),t=void 0}});t.play(),Howler.autoUnlock=!0,Howler.autoSuspend=!1}}),this._uiEvent.addGestureListeners(this.onSwipeLeft.bind(this),this.onSwipeRight.bind(this))}ngAfterViewInit(){this._uiEvent.addHotkeyListener((e,t)=>this.handleKeyDown(e,t),{ctrlKey:!0,keys:["arrowright","arrowleft"]})}handleKeyDown(e,t){e==="arrowright"?this.onSwipeRight(t):e==="arrowleft"&&this.onSwipeLeft(t)}displayConnectionsStatusNotification(e){let t=e.message;switch(e.operation){case 0:this._app.sendSnackbarNotification(t,5e3,!0);break;case 1:this._app.sendSnackbarNotification(t,5e3,!0);break;case 2:this._app.sendSnackbarNotification(t,2e3,!1);break;case 3:this._app.sendSnackbarNotification(t,5e3,!1);break;case 4:this._app.sendSnackbarNotification(t,3e3,!0);break;case 5:this._app.sendSnackbarNotification(t,0,!1);break;default:console.error(`[AppComponent] Unknown operation code: ${e.operation} for state: ${e.state}`),this._app.sendSnackbarNotification(`Unknown connection status: ${e.state}`,0,!1);break}}onSwipeRight(e){this._dashboard.isDashboardStatic()&&!this._uiEvent.isDragging()&&(e.preventDefault(),this.isPhonePortrait().matches?(this.actionsSidenavOpen.set(!1),this.notificationsSidenavOpened.set(!0)):this.notificationsSidenavOpened.set(!0))}onSwipeLeft(e){this._dashboard.isDashboardStatic()&&!this._uiEvent.isDragging()&&(e.preventDefault(),this.isPhonePortrait().matches?(this.notificationsSidenavOpened.set(!1),this.actionsSidenavOpen.set(!0)):this.actionsSidenavOpen.set(!0))}ngOnDestroy(){this.themeNameSub.unsubscribe(),this.appNotificationSub.unsubscribe(),this.connectionStatusSub.unsubscribe(),this._uiEvent.removeGestureListeners(this.onSwipeLeft.bind(this),this.onSwipeRight.bind(this)),this._uiEvent.removeHotkeyListener(this.handleKeyDown.bind(this))}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=G({type:r,selectors:[["app-root"]],viewQuery:function(t,i){t&1&&Le(i.actionsSidenav,Rg,5),t&2&&nt()},inputs:{actionsSidenavOpen:[1,"actionsSidenavOpen"],notificationsSidenavOpened:[1,"notificationsSidenavOpened"]},outputs:{actionsSidenavOpen:"actionsSidenavOpenChange",notificationsSidenavOpened:"notificationsSidenavOpenedChange"},decls:9,vars:3,consts:[["notificationsSidenav",""],["actionsSidenav",""],[1,"sidenav-container",3,"swipeleft","swiperight"],["mode","over","position","start","autoFocus","true",1,"sidenav-notifications",3,"openedChange","opened"],["mode","over","position","end","autoFocus","true",1,"sidenav-actions",3,"openedChange","opened"],[3,"actionsSidenav"],[1,"router-outlet-container"]],template:function(t,i){if(t&1){let o=ee();v(0,"mat-sidenav-container",2),L("swipeleft",function(l){return B(o),F(i.onSwipeLeft(l))})("swiperight",function(l){return B(o),F(i.onSwipeRight(l))}),v(1,"mat-sidenav",3,0),Pe("openedChange",function(l){return B(o),Ee(i.notificationsSidenavOpened,l)||(i.notificationsSidenavOpened=l),F(l)}),V(3,"menu-notifications"),w(),v(4,"mat-sidenav",4,1),Pe("openedChange",function(l){return B(o),Ee(i.actionsSidenavOpen,l)||(i.actionsSidenavOpen=l),F(l)}),V(6,"menu-actions",5),w(),v(7,"mat-sidenav-content"),V(8,"router-outlet",6),w()()}if(t&2){let o=Nl(5);P(),xe("opened",i.notificationsSidenavOpened),P(3),xe("opened",i.actionsSidenavOpen),P(2),U("actionsSidenav",o)}},dependencies:[Uh,$h,Zt,Jd,Mt,sd,rd,qh,Bs,Gh,aa],styles:[".sidenav-container[_ngcontent-%COMP%]{height:100%;width:100%}mat-sidenav.sidenav-notifications[_ngcontent-%COMP%]{width:230px}mat-sidenav.sidenav-actions[_ngcontent-%COMP%]{width:135px}"]})}return r})();function Kh(r){return new Fe(3e3,!1)}function Ng(){return new Fe(3100,!1)}function Wg(){return new Fe(3101,!1)}function Vg(r){return new Fe(3001,!1)}function zg(r){return new Fe(3003,!1)}function Lg(r){return new Fe(3004,!1)}function Zh(r,n){return new Fe(3005,!1)}function Jh(){return new Fe(3006,!1)}function eu(){return new Fe(3007,!1)}function tu(r,n){return new Fe(3008,!1)}function iu(r){return new Fe(3002,!1)}function nu(r,n,e,t,i){return new Fe(3010,!1)}function ru(){return new Fe(3011,!1)}function ou(){return new Fe(3012,!1)}function au(){return new Fe(3200,!1)}function su(){return new Fe(3202,!1)}function lu(){return new Fe(3013,!1)}function du(r){return new Fe(3014,!1)}function cu(r){return new Fe(3015,!1)}function hu(r){return new Fe(3016,!1)}function uu(r,n){return new Fe(3404,!1)}function Bg(r){return new Fe(3502,!1)}function mu(r){return new Fe(3503,!1)}function pu(){return new Fe(3300,!1)}function fu(r){return new Fe(3504,!1)}function gu(r){return new Fe(3301,!1)}function vu(r,n){return new Fe(3302,!1)}function yu(r){return new Fe(3303,!1)}function bu(r,n){return new Fe(3400,!1)}function _u(r){return new Fe(3401,!1)}function wu(r){return new Fe(3402,!1)}function Cu(r,n){return new Fe(3505,!1)}function Wi(r){switch(r.length){case 0:return new Di;case 1:return r[0];default:return new kn(r)}}function Gs(r,n,e=new Map,t=new Map){let i=[],o=[],a=-1,l=null;if(n.forEach(d=>{let p=d.get("offset"),s=p==a,c=s&&l||new Map;d.forEach((m,y)=>{let _=y,T=m;if(y!=="offset")switch(_=r.normalizePropertyName(_,i),T){case fr:T=e.get(y);break;case hi:T=t.get(y);break;default:T=r.normalizeStyleValue(y,_,T,i);break}c.set(_,T)}),s||o.push(c),l=c,a=p}),i.length)throw Bg(i);return o}function la(r,n,e,t){switch(n){case"start":r.onStart(()=>t(e&&Fs(e,"start",r)));break;case"done":r.onDone(()=>t(e&&Fs(e,"done",r)));break;case"destroy":r.onDestroy(()=>t(e&&Fs(e,"destroy",r)));break}}function Fs(r,n,e){let t=e.totalTime,i=!!e.disabled,o=da(r.element,r.triggerName,r.fromState,r.toState,n||r.phaseName,t??r.totalTime,i),a=r._data;return a!=null&&(o._data=a),o}function da(r,n,e,t,i="",o=0,a){return{element:r,triggerName:n,fromState:e,toState:t,phaseName:i,totalTime:o,disabled:!!a}}function $t(r,n,e){let t=r.get(n);return t||r.set(n,t=e),t}function qs(r){let n=r.indexOf(":"),e=r.substring(1,n),t=r.slice(n+1);return[e,t]}var Fg=typeof document>"u"?null:document.documentElement;function ca(r){let n=r.parentNode||r.host||null;return n===Fg?null:n}function Hg(r){return r.substring(1,6)=="ebkit"}var An=null,Qh=!1;function Su(r){An||(An=Ug()||{},Qh=An.style?"WebkitAppearance"in An.style:!1);let n=!0;return An.style&&!Hg(r)&&(n=r in An.style,!n&&Qh&&(n="Webkit"+r.charAt(0).toUpperCase()+r.slice(1)in An.style)),n}function Ug(){return typeof document<"u"?document.body:null}function js(r,n){for(;n;){if(n===r)return!0;n=ca(n)}return!1}function $s(r,n,e){if(e)return Array.from(r.querySelectorAll(n));let t=r.querySelector(n);return t?[t]:[]}var Gg=1e3,Ys="{{",qg="}}",Xs="ng-enter",ha="ng-leave",qr="ng-trigger",jr=".ng-trigger",Ks="ng-animating",ua=".ng-animating";function Ai(r){if(typeof r=="number")return r;let n=r.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Hs(parseFloat(n[1]),n[2])}function Hs(r,n){switch(n){case"s":return r*Gg;default:return r}}function $r(r,n,e){return r.hasOwnProperty("duration")?r:jg(r,n,e)}function jg(r,n,e){let t=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,i,o=0,a="";if(typeof r=="string"){let l=r.match(t);if(l===null)return n.push(Kh(r)),{duration:0,delay:0,easing:""};i=Hs(parseFloat(l[1]),l[2]);let d=l[3];d!=null&&(o=Hs(parseFloat(d),l[4]));let p=l[5];p&&(a=p)}else i=r;if(!e){let l=!1,d=n.length;i<0&&(n.push(Ng()),l=!0),o<0&&(n.push(Wg()),l=!0),l&&n.splice(d,0,Kh(r))}return{duration:i,delay:o,easing:a}}function ku(r){return r.length?r[0]instanceof Map?r:r.map(n=>new Map(Object.entries(n))):[]}function _i(r,n,e){n.forEach((t,i)=>{let o=ma(i);e&&!e.has(i)&&e.set(i,r.style[o]),r.style[o]=t})}function un(r,n){n.forEach((e,t)=>{let i=ma(t);r.style[i]=""})}function Tr(r){return Array.isArray(r)?r.length==1?r[0]:lc(r):r}function Tu(r,n,e){let t=n.params||{},i=Qs(r);i.length&&i.forEach(o=>{t.hasOwnProperty(o)||e.push(Vg(o))})}var Us=new RegExp(`${Ys}\\s*(.+?)\\s*${qg}`,"g");function Qs(r){let n=[];if(typeof r=="string"){let e;for(;e=Us.exec(r);)n.push(e[1]);Us.lastIndex=0}return n}function xr(r,n,e){let t=`${r}`,i=t.replace(Us,(o,a)=>{let l=n[a];return l==null&&(e.push(zg(a)),l=""),l.toString()});return i==t?r:i}var $g=/-+([a-z0-9])/g;function ma(r){return r.replace($g,(...n)=>n[1].toUpperCase())}function xu(r,n){return r===0||n===0}function Eu(r,n,e){if(e.size&&n.length){let t=n[0],i=[];if(e.forEach((o,a)=>{t.has(a)||i.push(a),t.set(a,o)}),i.length)for(let o=1;o<n.length;o++){let a=n[o];i.forEach(l=>a.set(l,pa(r,l)))}}return n}function Yt(r,n,e){switch(n.type){case ke.Trigger:return r.visitTrigger(n,e);case ke.State:return r.visitState(n,e);case ke.Transition:return r.visitTransition(n,e);case ke.Sequence:return r.visitSequence(n,e);case ke.Group:return r.visitGroup(n,e);case ke.Animate:return r.visitAnimate(n,e);case ke.Keyframes:return r.visitKeyframes(n,e);case ke.Style:return r.visitStyle(n,e);case ke.Reference:return r.visitReference(n,e);case ke.AnimateChild:return r.visitAnimateChild(n,e);case ke.AnimateRef:return r.visitAnimateRef(n,e);case ke.Query:return r.visitQuery(n,e);case ke.Stagger:return r.visitStagger(n,e);default:throw Lg(n.type)}}function pa(r,n){return window.getComputedStyle(r)[n]}var pl=(()=>{class r{validateStyleProperty(e){return Su(e)}containsElement(e,t){return js(e,t)}getParentElement(e){return ca(e)}query(e,t,i){return $s(e,t,i)}computeStyle(e,t,i){return i||""}animate(e,t,i,o,a,l=[],d){return new Di(i,o)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})(),In=class{static NOOP=new pl},Rn=class{};var Yg=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),ba=class extends Rn{normalizePropertyName(n,e){return ma(n)}normalizeStyleValue(n,e,t,i){let o="",a=t.toString().trim();if(Yg.has(e)&&t!==0&&t!=="0")if(typeof t=="number")o="px";else{let l=t.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&l[1].length==0&&i.push(Zh(n,t))}return a+o}};var _a="*";function Xg(r,n){let e=[];return typeof r=="string"?r.split(/\s*,\s*/).forEach(t=>Kg(t,e,n)):e.push(r),e}function Kg(r,n,e){if(r[0]==":"){let d=Qg(r,e);if(typeof d=="function"){n.push(d);return}r=d}let t=r.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(t==null||t.length<4)return e.push(cu(r)),n;let i=t[1],o=t[2],a=t[3];n.push(Pu(i,a));let l=i==_a&&a==_a;o[0]=="<"&&!l&&n.push(Pu(a,i))}function Qg(r,n){switch(r){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,t)=>parseFloat(t)>parseFloat(e);case":decrement":return(e,t)=>parseFloat(t)<parseFloat(e);default:return n.push(hu(r)),"* => *"}}var fa=new Set(["true","1"]),ga=new Set(["false","0"]);function Pu(r,n){let e=fa.has(r)||ga.has(r),t=fa.has(n)||ga.has(n);return(i,o)=>{let a=r==_a||r==i,l=n==_a||n==o;return!a&&e&&typeof i=="boolean"&&(a=i?fa.has(r):ga.has(r)),!l&&t&&typeof o=="boolean"&&(l=o?fa.has(n):ga.has(n)),a&&l}}var zu=":self",Zg=new RegExp(`s*${zu}s*,?`,"g");function Lu(r,n,e,t){return new nl(r).build(n,e,t)}var Du="",nl=class{_driver;constructor(n){this._driver=n}build(n,e,t){let i=new rl(e);return this._resetContextStyleTimingState(i),Yt(this,Tr(n),i)}_resetContextStyleTimingState(n){n.currentQuerySelector=Du,n.collectedStyles=new Map,n.collectedStyles.set(Du,new Map),n.currentTime=0}visitTrigger(n,e){let t=e.queryCount=0,i=e.depCount=0,o=[],a=[];return n.name.charAt(0)=="@"&&e.errors.push(Jh()),n.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),l.type==ke.State){let d=l,p=d.name;p.toString().split(/\s*,\s*/).forEach(s=>{d.name=s,o.push(this.visitState(d,e))}),d.name=p}else if(l.type==ke.Transition){let d=this.visitTransition(l,e);t+=d.queryCount,i+=d.depCount,a.push(d)}else e.errors.push(eu())}),{type:ke.Trigger,name:n.name,states:o,transitions:a,queryCount:t,depCount:i,options:null}}visitState(n,e){let t=this.visitStyle(n.styles,e),i=n.options&&n.options.params||null;if(t.containsDynamicStyles){let o=new Set,a=i||{};t.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{Qs(d).forEach(p=>{a.hasOwnProperty(p)||o.add(p)})})}),o.size&&e.errors.push(tu(n.name,[...o.values()]))}return{type:ke.State,name:n.name,style:t,options:i?{params:i}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;let t=Yt(this,Tr(n.animation),e),i=Xg(n.expr,e.errors);return{type:ke.Transition,matchers:i,animation:t,queryCount:e.queryCount,depCount:e.depCount,options:On(n.options)}}visitSequence(n,e){return{type:ke.Sequence,steps:n.steps.map(t=>Yt(this,t,e)),options:On(n.options)}}visitGroup(n,e){let t=e.currentTime,i=0,o=n.steps.map(a=>{e.currentTime=t;let l=Yt(this,a,e);return i=Math.max(i,e.currentTime),l});return e.currentTime=i,{type:ke.Group,steps:o,options:On(n.options)}}visitAnimate(n,e){let t=i0(n.timings,e.errors);e.currentAnimateTimings=t;let i,o=n.styles?n.styles:Ri({});if(o.type==ke.Keyframes)i=this.visitKeyframes(o,e);else{let a=n.styles,l=!1;if(!a){l=!0;let p={};t.easing&&(p.easing=t.easing),a=Ri(p)}e.currentTime+=t.duration+t.delay;let d=this.visitStyle(a,e);d.isEmptyStep=l,i=d}return e.currentAnimateTimings=null,{type:ke.Animate,timings:t,style:i,options:null}}visitStyle(n,e){let t=this._makeStyleAst(n,e);return this._validateStyleAst(t,e),t}_makeStyleAst(n,e){let t=[],i=Array.isArray(n.styles)?n.styles:[n.styles];for(let l of i)typeof l=="string"?l===hi?t.push(l):e.errors.push(iu(l)):t.push(new Map(Object.entries(l)));let o=!1,a=null;return t.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(a=l.get("easing"),l.delete("easing")),!o)){for(let d of l.values())if(d.toString().indexOf(Ys)>=0){o=!0;break}}}),{type:ke.Style,styles:t,easing:a,offset:n.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(n,e){let t=e.currentAnimateTimings,i=e.currentTime,o=e.currentTime;t&&o>0&&(o-=t.duration+t.delay),n.styles.forEach(a=>{typeof a!="string"&&a.forEach((l,d)=>{let p=e.collectedStyles.get(e.currentQuerySelector),s=p.get(d),c=!0;s&&(o!=i&&o>=s.startTime&&i<=s.endTime&&(e.errors.push(nu(d,s.startTime,s.endTime,o,i)),c=!1),o=s.startTime),c&&p.set(d,{startTime:o,endTime:i}),e.options&&Tu(l,e.options,e.errors)})})}visitKeyframes(n,e){let t={type:ke.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(ru()),t;let i=1,o=0,a=[],l=!1,d=!1,p=0,s=n.steps.map(z=>{let Y=this._makeStyleAst(z,e),te=Y.offset!=null?Y.offset:t0(Y.styles),be=0;return te!=null&&(o++,be=Y.offset=te),d=d||be<0||be>1,l=l||be<p,p=be,a.push(be),Y});d&&e.errors.push(ou()),l&&e.errors.push(au());let c=n.steps.length,m=0;o>0&&o<c?e.errors.push(su()):o==0&&(m=i/(c-1));let y=c-1,_=e.currentTime,T=e.currentAnimateTimings,E=T.duration;return s.forEach((z,Y)=>{let te=m>0?Y==y?1:m*Y:a[Y],be=te*E;e.currentTime=_+T.delay+be,T.duration=be,this._validateStyleAst(z,e),z.offset=te,t.styles.push(z)}),t}visitReference(n,e){return{type:ke.Reference,animation:Yt(this,Tr(n.animation),e),options:On(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:ke.AnimateChild,options:On(n.options)}}visitAnimateRef(n,e){return{type:ke.AnimateRef,animation:this.visitReference(n.animation,e),options:On(n.options)}}visitQuery(n,e){let t=e.currentQuerySelector,i=n.options||{};e.queryCount++,e.currentQuery=n;let[o,a]=Jg(n.selector);e.currentQuerySelector=t.length?t+" "+o:o,$t(e.collectedStyles,e.currentQuerySelector,new Map);let l=Yt(this,Tr(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=t,{type:ke.Query,selector:o,limit:i.limit||0,optional:!!i.optional,includeSelf:a,animation:l,originalSelector:n.selector,options:On(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(lu());let t=n.timings==="full"?{duration:0,delay:0,easing:"full"}:$r(n.timings,e.errors,!0);return{type:ke.Stagger,animation:Yt(this,Tr(n.animation),e),timings:t,options:null}}};function Jg(r){let n=!!r.split(/\s*,\s*/).find(e=>e==zu);return n&&(r=r.replace(Zg,"")),r=r.replace(/@\*/g,jr).replace(/@\w+/g,e=>jr+"-"+e.slice(1)).replace(/:animating/g,ua),[r,n]}function e0(r){return r?X({},r):null}var rl=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(n){this.errors=n}};function t0(r){if(typeof r=="string")return null;let n=null;if(Array.isArray(r))r.forEach(e=>{if(e instanceof Map&&e.has("offset")){let t=e;n=parseFloat(t.get("offset")),t.delete("offset")}});else if(r instanceof Map&&r.has("offset")){let e=r;n=parseFloat(e.get("offset")),e.delete("offset")}return n}function i0(r,n){if(r.hasOwnProperty("duration"))return r;if(typeof r=="number"){let o=$r(r,n).duration;return Zs(o,0,"")}let e=r;if(e.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=Zs(0,0,"");return o.dynamic=!0,o.strValue=e,o}let i=$r(e,n);return Zs(i.duration,i.delay,i.easing)}function On(r){return r?(r=X({},r),r.params&&(r.params=e0(r.params))):r={},r}function Zs(r,n,e){return{duration:r,delay:n,easing:e}}function fl(r,n,e,t,i,o,a=null,l=!1){return{type:1,element:r,keyframes:n,preStyleProps:e,postStyleProps:t,duration:i,delay:o,totalTime:i+o,easing:a,subTimeline:l}}var Xr=class{_map=new Map;get(n){return this._map.get(n)||[]}append(n,e){let t=this._map.get(n);t||this._map.set(n,t=[]),t.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}},n0=1,r0=":enter",o0=new RegExp(r0,"g"),a0=":leave",s0=new RegExp(a0,"g");function Bu(r,n,e,t,i,o=new Map,a=new Map,l,d,p=[]){return new ol().buildKeyframes(r,n,e,t,i,o,a,l,d,p)}var ol=class{buildKeyframes(n,e,t,i,o,a,l,d,p,s=[]){p=p||new Xr;let c=new al(n,e,p,i,o,s,[]);c.options=d;let m=d.delay?Ai(d.delay):0;c.currentTimeline.delayNextStep(m),c.currentTimeline.setStyles([a],null,c.errors,d),Yt(this,t,c);let y=c.timelines.filter(_=>_.containsAnimation());if(y.length&&l.size){let _;for(let T=y.length-1;T>=0;T--){let E=y[T];if(E.element===e){_=E;break}}_&&!_.allowOnlyTimelineStyles()&&_.setStyles([l],null,c.errors,d)}return y.length?y.map(_=>_.buildKeyframes()):[fl(e,[],[],[],0,m,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){let t=e.subInstructions.get(e.element);if(t){let i=e.createSubContext(n.options),o=e.currentTimeline.currentTime,a=this._visitSubInstructions(t,i,i.options);o!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){let t=e.createSubContext(n.options);t.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,t),this.visitReference(n.animation,t),e.transformIntoNewTimeline(t.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,t){for(let i of n){let o=i?.delay;if(o){let a=typeof o=="number"?o:Ai(xr(o,i?.params??{},e.errors));t.delayNextStep(a)}}}_visitSubInstructions(n,e,t){let o=e.currentTimeline.currentTime,a=t.duration!=null?Ai(t.duration):null,l=t.delay!=null?Ai(t.delay):null;return a!==0&&n.forEach(d=>{let p=e.appendInstructionToTimeline(d,a,l);o=Math.max(o,p.duration+p.delay)}),o}visitReference(n,e){e.updateOptions(n.options,!0),Yt(this,n.animation,e),e.previousNode=n}visitSequence(n,e){let t=e.subContextCount,i=e,o=n.options;if(o&&(o.params||o.delay)&&(i=e.createSubContext(o),i.transformIntoNewTimeline(),o.delay!=null)){i.previousNode.type==ke.Style&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=wa);let a=Ai(o.delay);i.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>Yt(this,a,i)),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>t&&i.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){let t=[],i=e.currentTimeline.currentTime,o=n.options&&n.options.delay?Ai(n.options.delay):0;n.steps.forEach(a=>{let l=e.createSubContext(n.options);o&&l.delayNextStep(o),Yt(this,a,l),i=Math.max(i,l.currentTimeline.currentTime),t.push(l.currentTimeline)}),t.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(i),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){let t=n.strValue,i=e.params?xr(t,e.params,e.errors):t;return $r(i,e.errors)}else return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){let t=e.currentAnimateTimings=this._visitTiming(n.timings,e),i=e.currentTimeline;t.delay&&(e.incrementTime(t.delay),i.snapshotCurrentStyles());let o=n.style;o.type==ke.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(t.duration),this.visitStyle(o,e),i.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){let t=e.currentTimeline,i=e.currentAnimateTimings;!i&&t.hasCurrentStyleProperties()&&t.forwardFrame();let o=i&&i.easing||n.easing;n.isEmptyStep?t.applyEmptyStep(o):t.setStyles(n.styles,o,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){let t=e.currentAnimateTimings,i=e.currentTimeline.duration,o=t.duration,l=e.createSubContext().currentTimeline;l.easing=t.easing,n.styles.forEach(d=>{let p=d.offset||0;l.forwardTime(p*o),l.setStyles(d.styles,d.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(i+o),e.previousNode=n}visitQuery(n,e){let t=e.currentTimeline.currentTime,i=n.options||{},o=i.delay?Ai(i.delay):0;o&&(e.previousNode.type===ke.Style||t==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=wa);let a=t,l=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!i.optional,e.errors);e.currentQueryTotal=l.length;let d=null;l.forEach((p,s)=>{e.currentQueryIndex=s;let c=e.createSubContext(n.options,p);o&&c.delayNextStep(o),p===e.element&&(d=c.currentTimeline),Yt(this,n.animation,c),c.currentTimeline.applyStylesToKeyframe();let m=c.currentTimeline.currentTime;a=Math.max(a,m)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),d&&(e.currentTimeline.mergeTimelineCollectedStyles(d),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){let t=e.parentContext,i=e.currentTimeline,o=n.timings,a=Math.abs(o.duration),l=a*(e.currentQueryTotal-1),d=a*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":d=l-d;break;case"full":d=t.currentStaggerTime;break}let s=e.currentTimeline;d&&s.delayNextStep(d);let c=s.currentTime;Yt(this,n.animation,e),e.previousNode=n,t.currentStaggerTime=i.currentTime-c+(i.startTime-t.currentTimeline.startTime)}},wa={},al=class r{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=wa;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(n,e,t,i,o,a,l,d){this._driver=n,this.element=e,this.subInstructions=t,this._enterClassName=i,this._leaveClassName=o,this.errors=a,this.timelines=l,this.currentTimeline=d||new Ca(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;let t=n,i=this.options;t.duration!=null&&(i.duration=Ai(t.duration)),t.delay!=null&&(i.delay=Ai(t.delay));let o=t.params;if(o){let a=i.params;a||(a=this.options.params={}),Object.keys(o).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=xr(o[l],a,this.errors))})}}_copyOptions(){let n={};if(this.options){let e=this.options.params;if(e){let t=n.params={};Object.keys(e).forEach(i=>{t[i]=e[i]})}}return n}createSubContext(n=null,e,t){let i=e||this.element,o=new r(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,t||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(n),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(n){return this.previousNode=wa,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,t){let i={duration:e??n.duration,delay:this.currentTimeline.currentTime+(t??0)+n.delay,easing:""},o=new sl(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,i,n.stretchStartingKeyframe);return this.timelines.push(o),i}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,t,i,o,a){let l=[];if(i&&l.push(this.element),n.length>0){n=n.replace(o0,"."+this._enterClassName),n=n.replace(s0,"."+this._leaveClassName);let d=t!=1,p=this._driver.query(this.element,n,d);t!==0&&(p=t<0?p.slice(p.length+t,p.length):p.slice(0,t)),l.push(...p)}return!o&&l.length==0&&a.push(du(e)),l}},Ca=class r{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(n,e,t,i){this._driver=n,this.element=e,this.startTime=t,this._elementTimelineStylesLookup=i,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new r(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=n0,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,t]of this._globalTimelineStyles)this._backFill.set(e,t||hi),this._currentKeyframe.set(e,hi);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,t,i){e&&this._previousKeyframe.set("easing",e);let o=i&&i.params||{},a=l0(n,this._globalTimelineStyles);for(let[l,d]of a){let p=xr(d,o,t);this._pendingStyles.set(l,p),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??hi),this._updateStyle(l,p)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,t)=>{let i=this._styleSummary.get(t);(!i||e.time>i.time)&&this._updateStyle(t,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let n=new Set,e=new Set,t=this._keyframes.size===1&&this.duration===0,i=[];this._keyframes.forEach((l,d)=>{let p=new Map([...this._backFill,...l]);p.forEach((s,c)=>{s===fr?n.add(c):s===hi&&e.add(c)}),t||p.set("offset",d/this.duration),i.push(p)});let o=[...n.values()],a=[...e.values()];if(t){let l=i[0],d=new Map(l);l.set("offset",0),d.set("offset",1),i=[l,d]}return fl(this.element,i,o,a,this.duration,this.startTime,this.easing,!1)}},sl=class extends Ca{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(n,e,t,i,o,a,l=!1){super(n,e,a.delay),this.keyframes=t,this.preStyleProps=i,this.postStyleProps=o,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:t,easing:i}=this.timings;if(this._stretchStartingKeyframe&&e){let o=[],a=t+e,l=e/a,d=new Map(n[0]);d.set("offset",0),o.push(d);let p=new Map(n[0]);p.set("offset",Mu(l)),o.push(p);let s=n.length-1;for(let c=1;c<=s;c++){let m=new Map(n[c]),y=m.get("offset"),_=e+y*t;m.set("offset",Mu(_/a)),o.push(m)}t=a,e=0,i="",n=o}return fl(this.element,n,this.preStyleProps,this.postStyleProps,t,e,i,!0)}};function Mu(r,n=3){let e=Math.pow(10,n-1);return Math.round(r*e)/e}function l0(r,n){let e=new Map,t;return r.forEach(i=>{if(i==="*"){t??=n.keys();for(let o of t)e.set(o,hi)}else for(let[o,a]of i)e.set(o,a)}),e}function Au(r,n,e,t,i,o,a,l,d,p,s,c,m){return{type:0,element:r,triggerName:n,isRemovalTransition:i,fromState:e,fromStyles:o,toState:t,toStyles:a,timelines:l,queriedElements:d,preStyleProps:p,postStyleProps:s,totalTime:c,errors:m}}var Js={},Sa=class{_triggerName;ast;_stateStyles;constructor(n,e,t){this._triggerName=n,this.ast=e,this._stateStyles=t}match(n,e,t,i){return d0(this.ast.matchers,n,e,t,i)}buildStyles(n,e,t){let i=this._stateStyles.get("*");return n!==void 0&&(i=this._stateStyles.get(n?.toString())||i),i?i.buildStyles(e,t):new Map}build(n,e,t,i,o,a,l,d,p,s){let c=[],m=this.ast.options&&this.ast.options.params||Js,y=l&&l.params||Js,_=this.buildStyles(t,y,c),T=d&&d.params||Js,E=this.buildStyles(i,T,c),z=new Set,Y=new Map,te=new Map,be=i==="void",He={params:Fu(T,m),delay:this.ast.options?.delay},$e=s?[]:Bu(n,e,this.ast.animation,o,a,_,E,He,p,c),Qe=0;return $e.forEach(se=>{Qe=Math.max(se.duration+se.delay,Qe)}),c.length?Au(e,this._triggerName,t,i,be,_,E,[],[],Y,te,Qe,c):($e.forEach(se=>{let ht=se.element,lt=$t(Y,ht,new Set);se.preStyleProps.forEach(ft=>lt.add(ft));let zt=$t(te,ht,new Set);se.postStyleProps.forEach(ft=>zt.add(ft)),ht!==e&&z.add(ht)}),Au(e,this._triggerName,t,i,be,_,E,$e,[...z.values()],Y,te,Qe))}};function d0(r,n,e,t,i){return r.some(o=>o(n,e,t,i))}function Fu(r,n){let e=X({},n);return Object.entries(r).forEach(([t,i])=>{i!=null&&(e[t]=i)}),e}var ll=class{styles;defaultParams;normalizer;constructor(n,e,t){this.styles=n,this.defaultParams=e,this.normalizer=t}buildStyles(n,e){let t=new Map,i=Fu(n,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((a,l)=>{a&&(a=xr(a,i,e));let d=this.normalizer.normalizePropertyName(l,e);a=this.normalizer.normalizeStyleValue(l,d,a,e),t.set(l,a)})}),t}};function c0(r,n,e){return new dl(r,n,e)}var dl=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(n,e,t){this.name=n,this.ast=e,this._normalizer=t,e.states.forEach(i=>{let o=i.options&&i.options.params||{};this.states.set(i.name,new ll(i.style,o,t))}),Ou(this.states,"true","1"),Ou(this.states,"false","0"),e.transitions.forEach(i=>{this.transitionFactories.push(new Sa(n,i,this.states))}),this.fallbackTransition=h0(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,t,i){return this.transitionFactories.find(a=>a.match(n,e,t,i))||null}matchStyles(n,e,t){return this.fallbackTransition.buildStyles(n,e,t)}};function h0(r,n,e){let t=[(a,l)=>!0],i={type:ke.Sequence,steps:[],options:null},o={type:ke.Transition,animation:i,matchers:t,options:null,queryCount:0,depCount:0};return new Sa(r,o,n)}function Ou(r,n,e){r.has(n)?r.has(e)||r.set(e,r.get(n)):r.has(e)&&r.set(n,r.get(e))}var u0=new Xr,cl=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(n,e,t){this.bodyNode=n,this._driver=e,this._normalizer=t}register(n,e){let t=[],i=[],o=Lu(this._driver,e,t,i);if(t.length)throw mu(t);this._animations.set(n,o)}_buildPlayer(n,e,t){let i=n.element,o=Gs(this._normalizer,n.keyframes,e,t);return this._driver.animate(i,o,n.duration,n.delay,n.easing,[],!0)}create(n,e,t={}){let i=[],o=this._animations.get(n),a,l=new Map;if(o?(a=Bu(this._driver,e,o,Xs,ha,new Map,new Map,t,u0,i),a.forEach(s=>{let c=$t(l,s.element,new Map);s.postStyleProps.forEach(m=>c.set(m,null))})):(i.push(pu()),a=[]),i.length)throw fu(i);l.forEach((s,c)=>{s.forEach((m,y)=>{s.set(y,this._driver.computeStyle(c,y,hi))})});let d=a.map(s=>{let c=l.get(s.element);return this._buildPlayer(s,new Map,c)}),p=Wi(d);return this._playersById.set(n,p),p.onDestroy(()=>this.destroy(n)),this.players.push(p),p}destroy(n){let e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);let t=this.players.indexOf(e);t>=0&&this.players.splice(t,1)}_getPlayer(n){let e=this._playersById.get(n);if(!e)throw gu(n);return e}listen(n,e,t,i){let o=da(e,"","","");return la(this._getPlayer(n),t,o,i),()=>{}}command(n,e,t,i){if(t=="register"){this.register(n,i[0]);return}if(t=="create"){let a=i[0]||{};this.create(n,e,a);return}let o=this._getPlayer(n);switch(t){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(n);break}}},Iu="ng-animate-queued",m0=".ng-animate-queued",el="ng-animate-disabled",p0=".ng-animate-disabled",f0="ng-star-inserted",g0=".ng-star-inserted",v0=[],Hu={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},y0={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},wi="__ng_removed",Kr=class{namespaceId;value;options;get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;let t=n&&n.hasOwnProperty("value"),i=t?n.value:n;if(this.value=_0(i),t){let o=n,{value:a}=o,l=bl(o,["value"]);this.options=l}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){let e=n.params;if(e){let t=this.options.params;Object.keys(e).forEach(i=>{t[i]==null&&(t[i]=e[i])})}}},Yr="void",tl=new Kr(Yr),hl=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(n,e,t){this.id=n,this.hostElement=e,this._engine=t,this._hostClassName="ng-tns-"+n,mi(e,this._hostClassName)}listen(n,e,t,i){if(!this._triggers.has(e))throw vu(t,e);if(t==null||t.length==0)throw yu(e);if(!w0(t))throw bu(t,e);let o=$t(this._elementListeners,n,[]),a={name:e,phase:t,callback:i};o.push(a);let l=$t(this._engine.statesByElement,n,new Map);return l.has(e)||(mi(n,qr),mi(n,qr+"-"+e),l.set(e,tl)),()=>{this._engine.afterFlush(()=>{let d=o.indexOf(a);d>=0&&o.splice(d,1),this._triggers.has(e)||l.delete(e)})}}register(n,e){return this._triggers.has(n)?!1:(this._triggers.set(n,e),!0)}_getTrigger(n){let e=this._triggers.get(n);if(!e)throw _u(n);return e}trigger(n,e,t,i=!0){let o=this._getTrigger(e),a=new Qr(this.id,e,n),l=this._engine.statesByElement.get(n);l||(mi(n,qr),mi(n,qr+"-"+e),this._engine.statesByElement.set(n,l=new Map));let d=l.get(e),p=new Kr(t,this.id);if(!(t&&t.hasOwnProperty("value"))&&d&&p.absorbOptions(d.options),l.set(e,p),d||(d=tl),!(p.value===Yr)&&d.value===p.value){if(!k0(d.params,p.params)){let T=[],E=o.matchStyles(d.value,d.params,T),z=o.matchStyles(p.value,p.params,T);T.length?this._engine.reportError(T):this._engine.afterFlush(()=>{un(n,E),_i(n,z)})}return}let m=$t(this._engine.playersByElement,n,[]);m.forEach(T=>{T.namespaceId==this.id&&T.triggerName==e&&T.queued&&T.destroy()});let y=o.matchTransition(d.value,p.value,n,p.params),_=!1;if(!y){if(!i)return;y=o.fallbackTransition,_=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:y,fromState:d,toState:p,player:a,isFallbackTransition:_}),_||(mi(n,Iu),a.onStart(()=>{Er(n,Iu)})),a.onDone(()=>{let T=this.players.indexOf(a);T>=0&&this.players.splice(T,1);let E=this._engine.playersByElement.get(n);if(E){let z=E.indexOf(a);z>=0&&E.splice(z,1)}}),this.players.push(a),m.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,t)=>{this._elementListeners.set(t,e.filter(i=>i.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);let e=this._engine.playersByElement.get(n);e&&(e.forEach(t=>t.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){let t=this._engine.driver.query(n,jr,!0);t.forEach(i=>{if(i[wi])return;let o=this._engine.fetchNamespacesByElement(i);o.size?o.forEach(a=>a.triggerLeaveAnimation(i,e,!1,!0)):this.clearElementCache(i)}),this._engine.afterFlushAnimationsDone(()=>t.forEach(i=>this.clearElementCache(i)))}triggerLeaveAnimation(n,e,t,i){let o=this._engine.statesByElement.get(n),a=new Map;if(o){let l=[];if(o.forEach((d,p)=>{if(a.set(p,d.value),this._triggers.has(p)){let s=this.trigger(n,p,Yr,i);s&&l.push(s)}}),l.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),t&&Wi(l).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){let e=this._elementListeners.get(n),t=this._engine.statesByElement.get(n);if(e&&t){let i=new Set;e.forEach(o=>{let a=o.name;if(i.has(a))return;i.add(a);let d=this._triggers.get(a).fallbackTransition,p=t.get(a)||tl,s=new Kr(Yr),c=new Qr(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:d,fromState:p,toState:s,player:c,isFallbackTransition:!0})})}}removeNode(n,e){let t=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let i=!1;if(t.totalAnimations){let o=t.players.length?t.playersByQueriedElement.get(n):[];if(o&&o.length)i=!0;else{let a=n;for(;a=a.parentNode;)if(t.statesByElement.get(a)){i=!0;break}}}if(this.prepareLeaveAnimationListeners(n),i)t.markElementAsRemoved(this.id,n,!1,e);else{let o=n[wi];(!o||o===Hu)&&(t.afterFlush(()=>this.clearElementCache(n)),t.destroyInnerAnimations(n),t._onRemovalComplete(n,e))}}insertNode(n,e){mi(n,this._hostClassName)}drainQueuedTransitions(n){let e=[];return this._queue.forEach(t=>{let i=t.player;if(i.destroyed)return;let o=t.element,a=this._elementListeners.get(o);a&&a.forEach(l=>{if(l.name==t.triggerName){let d=da(o,t.triggerName,t.fromState.value,t.toState.value);d._data=n,la(t.player,l.phase,d,l.callback)}}),i.markedForDestroy?this._engine.afterFlush(()=>{i.destroy()}):e.push(t)}),this._queue=[],e.sort((t,i)=>{let o=t.transition.ast.depCount,a=i.transition.ast.depCount;return o==0||a==0?o-a:this._engine.driver.containsElement(t.element,i.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}},ul=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(n,e)=>{};_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,t){this.bodyNode=n,this.driver=e,this._normalizer=t}get queuedPlayers(){let n=[];return this._namespaceList.forEach(e=>{e.players.forEach(t=>{t.queued&&n.push(t)})}),n}createNamespace(n,e){let t=new hl(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(t,e):(this.newHostElements.set(e,t),this.collectEnterElement(e)),this._namespaceLookup[n]=t}_balanceNamespaceList(n,e){let t=this._namespaceList,i=this.namespacesByHostElement;if(t.length-1>=0){let a=!1,l=this.driver.getParentElement(e);for(;l;){let d=i.get(l);if(d){let p=t.indexOf(d);t.splice(p+1,0,n),a=!0;break}l=this.driver.getParentElement(l)}a||t.unshift(n)}else t.push(n);return i.set(e,n),n}register(n,e){let t=this._namespaceLookup[n];return t||(t=this.createNamespace(n,e)),t}registerTrigger(n,e,t){let i=this._namespaceLookup[n];i&&i.register(e,t)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let t=this._fetchNamespace(n);this.namespacesByHostElement.delete(t.hostElement);let i=this._namespaceList.indexOf(t);i>=0&&this._namespaceList.splice(i,1),t.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){let e=new Set,t=this.statesByElement.get(n);if(t){for(let i of t.values())if(i.namespaceId){let o=this._fetchNamespace(i.namespaceId);o&&e.add(o)}}return e}trigger(n,e,t,i){if(va(e)){let o=this._fetchNamespace(n);if(o)return o.trigger(e,t,i),!0}return!1}insertNode(n,e,t,i){if(!va(e))return;let o=e[wi];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){let a=this._fetchNamespace(n);a&&a.insertNode(e,t)}i&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),mi(n,el)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),Er(n,el))}removeNode(n,e,t){if(va(e)){let i=n?this._fetchNamespace(n):null;i?i.removeNode(e,t):this.markElementAsRemoved(n,e,!1,t);let o=this.namespacesByHostElement.get(e);o&&o.id!==n&&o.removeNode(e,t)}else this._onRemovalComplete(e,t)}markElementAsRemoved(n,e,t,i,o){this.collectedLeaveElements.push(e),e[wi]={namespaceId:n,setForRemoval:i,hasAnimation:t,removedBeforeQueried:!1,previousTriggersValues:o}}listen(n,e,t,i,o){return va(e)?this._fetchNamespace(n).listen(e,t,i,o):()=>{}}_buildInstruction(n,e,t,i,o){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,t,i,n.fromState.options,n.toState.options,e,o)}destroyInnerAnimations(n){let e=this.driver.query(n,jr,!0);e.forEach(t=>this.destroyActiveAnimationsForElement(t)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(n,ua,!0),e.forEach(t=>this.finishActiveQueriedAnimationOnElement(t)))}destroyActiveAnimationsForElement(n){let e=this.playersByElement.get(n);e&&e.forEach(t=>{t.queued?t.markedForDestroy=!0:t.destroy()})}finishActiveQueriedAnimationOnElement(n){let e=this.playersByQueriedElement.get(n);e&&e.forEach(t=>t.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Wi(this.players).onDone(()=>n());n()})}processLeaveNode(n){let e=n[wi];if(e&&e.setForRemoval){if(n[wi]=Hu,e.namespaceId){this.destroyInnerAnimations(n);let t=this._fetchNamespace(e.namespaceId);t&&t.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(el)&&this.markElementAsDisabled(n,!1),this.driver.query(n,p0,!0).forEach(t=>{this.markElementAsDisabled(t,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((t,i)=>this._balanceNamespaceList(t,i)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let t=0;t<this.collectedEnterElements.length;t++){let i=this.collectedEnterElements[t];mi(i,f0)}if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){let t=[];try{e=this._flushAnimations(t,n)}finally{for(let i=0;i<t.length;i++)t[i]()}}else for(let t=0;t<this.collectedLeaveElements.length;t++){let i=this.collectedLeaveElements[t];this.processLeaveNode(i)}if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(t=>t()),this._flushFns=[],this._whenQuietFns.length){let t=this._whenQuietFns;this._whenQuietFns=[],e.length?Wi(e).onDone(()=>{t.forEach(i=>i())}):t.forEach(i=>i())}}reportError(n){throw wu(n)}_flushAnimations(n,e){let t=new Xr,i=[],o=new Map,a=[],l=new Map,d=new Map,p=new Map,s=new Set;this.disabledNodes.forEach(K=>{s.add(K);let re=this.driver.query(K,m0,!0);for(let le=0;le<re.length;le++)s.add(re[le])});let c=this.bodyNode,m=Array.from(this.statesByElement.keys()),y=Wu(m,this.collectedEnterElements),_=new Map,T=0;y.forEach((K,re)=>{let le=Xs+T++;_.set(re,le),K.forEach(Ae=>mi(Ae,le))});let E=[],z=new Set,Y=new Set;for(let K=0;K<this.collectedLeaveElements.length;K++){let re=this.collectedLeaveElements[K],le=re[wi];le&&le.setForRemoval&&(E.push(re),z.add(re),le.hasAnimation?this.driver.query(re,g0,!0).forEach(Ae=>z.add(Ae)):Y.add(re))}let te=new Map,be=Wu(m,Array.from(z));be.forEach((K,re)=>{let le=ha+T++;te.set(re,le),K.forEach(Ae=>mi(Ae,le))}),n.push(()=>{y.forEach((K,re)=>{let le=_.get(re);K.forEach(Ae=>Er(Ae,le))}),be.forEach((K,re)=>{let le=te.get(re);K.forEach(Ae=>Er(Ae,le))}),E.forEach(K=>{this.processLeaveNode(K)})});let He=[],$e=[];for(let K=this._namespaceList.length-1;K>=0;K--)this._namespaceList[K].drainQueuedTransitions(e).forEach(le=>{let Ae=le.player,dt=le.element;if(He.push(Ae),this.collectedEnterElements.length){let Je=dt[wi];if(Je&&Je.setForMove){if(Je.previousTriggersValues&&Je.previousTriggersValues.has(le.triggerName)){let Ue=Je.previousTriggersValues.get(le.triggerName),Ye=this.statesByElement.get(le.element);if(Ye&&Ye.has(le.triggerName)){let ti=Ye.get(le.triggerName);ti.value=Ue,Ye.set(le.triggerName,ti)}}Ae.destroy();return}}let bt=!c||!this.driver.containsElement(c,dt),_t=te.get(dt),It=_.get(dt),Ze=this._buildInstruction(le,t,It,_t,bt);if(Ze.errors&&Ze.errors.length){$e.push(Ze);return}if(bt){Ae.onStart(()=>un(dt,Ze.fromStyles)),Ae.onDestroy(()=>_i(dt,Ze.toStyles)),i.push(Ae);return}if(le.isFallbackTransition){Ae.onStart(()=>un(dt,Ze.fromStyles)),Ae.onDestroy(()=>_i(dt,Ze.toStyles)),i.push(Ae);return}let Nn=[];Ze.timelines.forEach(Je=>{Je.stretchStartingKeyframe=!0,this.disabledNodes.has(Je.element)||Nn.push(Je)}),Ze.timelines=Nn,t.append(dt,Ze.timelines);let gt={instruction:Ze,player:Ae,element:dt};a.push(gt),Ze.queriedElements.forEach(Je=>$t(l,Je,[]).push(Ae)),Ze.preStyleProps.forEach((Je,Ue)=>{if(Je.size){let Ye=d.get(Ue);Ye||d.set(Ue,Ye=new Set),Je.forEach((ti,pi)=>Ye.add(pi))}}),Ze.postStyleProps.forEach((Je,Ue)=>{let Ye=p.get(Ue);Ye||p.set(Ue,Ye=new Set),Je.forEach((ti,pi)=>Ye.add(pi))})});if($e.length){let K=[];$e.forEach(re=>{K.push(Cu(re.triggerName,re.errors))}),He.forEach(re=>re.destroy()),this.reportError(K)}let Qe=new Map,se=new Map;a.forEach(K=>{let re=K.element;t.has(re)&&(se.set(re,re),this._beforeAnimationBuild(K.player.namespaceId,K.instruction,Qe))}),i.forEach(K=>{let re=K.element;this._getPreviousPlayers(re,!1,K.namespaceId,K.triggerName,null).forEach(Ae=>{$t(Qe,re,[]).push(Ae),Ae.destroy()})});let ht=E.filter(K=>Vu(K,d,p)),lt=new Map;Nu(lt,this.driver,Y,p,hi).forEach(K=>{Vu(K,d,p)&&ht.push(K)});let ft=new Map;y.forEach((K,re)=>{Nu(ft,this.driver,new Set(K),d,fr)}),ht.forEach(K=>{let re=lt.get(K),le=ft.get(K);lt.set(K,new Map([...re?.entries()??[],...le?.entries()??[]]))});let ut=[],Ot=[],Vi={};a.forEach(K=>{let{element:re,player:le,instruction:Ae}=K;if(t.has(re)){if(s.has(re)){le.onDestroy(()=>_i(re,Ae.toStyles)),le.disabled=!0,le.overrideTotalTime(Ae.totalTime),i.push(le);return}let dt=Vi;if(se.size>1){let _t=re,It=[];for(;_t=_t.parentNode;){let Ze=se.get(_t);if(Ze){dt=Ze;break}It.push(_t)}It.forEach(Ze=>se.set(Ze,dt))}let bt=this._buildAnimation(le.namespaceId,Ae,Qe,o,ft,lt);if(le.setRealPlayer(bt),dt===Vi)ut.push(le);else{let _t=this.playersByElement.get(dt);_t&&_t.length&&(le.parentPlayer=Wi(_t)),i.push(le)}}else un(re,Ae.fromStyles),le.onDestroy(()=>_i(re,Ae.toStyles)),Ot.push(le),s.has(re)&&i.push(le)}),Ot.forEach(K=>{let re=o.get(K.element);if(re&&re.length){let le=Wi(re);K.setRealPlayer(le)}}),i.forEach(K=>{K.parentPlayer?K.syncPlayerEvents(K.parentPlayer):K.destroy()});for(let K=0;K<E.length;K++){let re=E[K],le=re[wi];if(Er(re,ha),le&&le.hasAnimation)continue;let Ae=[];if(l.size){let bt=l.get(re);bt&&bt.length&&Ae.push(...bt);let _t=this.driver.query(re,ua,!0);for(let It=0;It<_t.length;It++){let Ze=l.get(_t[It]);Ze&&Ze.length&&Ae.push(...Ze)}}let dt=Ae.filter(bt=>!bt.destroyed);dt.length?C0(this,re,dt):this.processLeaveNode(re)}return E.length=0,ut.forEach(K=>{this.players.push(K),K.onDone(()=>{K.destroy();let re=this.players.indexOf(K);this.players.splice(re,1)}),K.play()}),ut}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,t,i,o){let a=[];if(e){let l=this.playersByQueriedElement.get(n);l&&(a=l)}else{let l=this.playersByElement.get(n);if(l){let d=!o||o==Yr;l.forEach(p=>{p.queued||!d&&p.triggerName!=i||a.push(p)})}}return(t||i)&&(a=a.filter(l=>!(t&&t!=l.namespaceId||i&&i!=l.triggerName))),a}_beforeAnimationBuild(n,e,t){let i=e.triggerName,o=e.element,a=e.isRemovalTransition?void 0:n,l=e.isRemovalTransition?void 0:i;for(let d of e.timelines){let p=d.element,s=p!==o,c=$t(t,p,[]);this._getPreviousPlayers(p,s,a,l,e.toState).forEach(y=>{let _=y.getRealPlayer();_.beforeDestroy&&_.beforeDestroy(),y.destroy(),c.push(y)})}un(o,e.fromStyles)}_buildAnimation(n,e,t,i,o,a){let l=e.triggerName,d=e.element,p=[],s=new Set,c=new Set,m=e.timelines.map(_=>{let T=_.element;s.add(T);let E=T[wi];if(E&&E.removedBeforeQueried)return new Di(_.duration,_.delay);let z=T!==d,Y=S0((t.get(T)||v0).map(Qe=>Qe.getRealPlayer())).filter(Qe=>{let se=Qe;return se.element?se.element===T:!1}),te=o.get(T),be=a.get(T),He=Gs(this._normalizer,_.keyframes,te,be),$e=this._buildPlayer(_,He,Y);if(_.subTimeline&&i&&c.add(T),z){let Qe=new Qr(n,l,T);Qe.setRealPlayer($e),p.push(Qe)}return $e});p.forEach(_=>{$t(this.playersByQueriedElement,_.element,[]).push(_),_.onDone(()=>b0(this.playersByQueriedElement,_.element,_))}),s.forEach(_=>mi(_,Ks));let y=Wi(m);return y.onDestroy(()=>{s.forEach(_=>Er(_,Ks)),_i(d,e.toStyles)}),c.forEach(_=>{$t(i,_,[]).push(y)}),y}_buildPlayer(n,e,t){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,t):new Di(n.duration,n.delay)}},Qr=class{namespaceId;triggerName;element;_player=new Di;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(n,e,t){this.namespaceId=n,this.triggerName=e,this.element=t}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,t)=>{e.forEach(i=>la(n,t,void 0,i))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){let e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){$t(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){let e=this._player;e.triggerCallback&&e.triggerCallback(n)}};function b0(r,n,e){let t=r.get(n);if(t){if(t.length){let i=t.indexOf(e);t.splice(i,1)}t.length==0&&r.delete(n)}return t}function _0(r){return r??null}function va(r){return r&&r.nodeType===1}function w0(r){return r=="start"||r=="done"}function Ru(r,n){let e=r.style.display;return r.style.display=n??"none",e}function Nu(r,n,e,t,i){let o=[];e.forEach(d=>o.push(Ru(d)));let a=[];t.forEach((d,p)=>{let s=new Map;d.forEach(c=>{let m=n.computeStyle(p,c,i);s.set(c,m),(!m||m.length==0)&&(p[wi]=y0,a.push(p))}),r.set(p,s)});let l=0;return e.forEach(d=>Ru(d,o[l++])),a}function Wu(r,n){let e=new Map;if(r.forEach(l=>e.set(l,[])),n.length==0)return e;let t=1,i=new Set(n),o=new Map;function a(l){if(!l)return t;let d=o.get(l);if(d)return d;let p=l.parentNode;return e.has(p)?d=p:i.has(p)?d=t:d=a(p),o.set(l,d),d}return n.forEach(l=>{let d=a(l);d!==t&&e.get(d).push(l)}),e}function mi(r,n){r.classList?.add(n)}function Er(r,n){r.classList?.remove(n)}function C0(r,n,e){Wi(e).onDone(()=>r.processLeaveNode(n))}function S0(r){let n=[];return Uu(r,n),n}function Uu(r,n){for(let e=0;e<r.length;e++){let t=r[e];t instanceof kn?Uu(t.players,n):n.push(t)}}function k0(r,n){let e=Object.keys(r),t=Object.keys(n);if(e.length!=t.length)return!1;for(let i=0;i<e.length;i++){let o=e[i];if(!n.hasOwnProperty(o)||r[o]!==n[o])return!1}return!0}function Vu(r,n,e){let t=e.get(r);if(!t)return!1;let i=n.get(r);return i?t.forEach(o=>i.add(o)):n.set(r,t),e.delete(r),!0}var Pr=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(n,e)=>{};constructor(n,e,t){this._driver=e,this._normalizer=t,this._transitionEngine=new ul(n.body,e,t),this._timelineEngine=new cl(n.body,e,t),this._transitionEngine.onRemovalComplete=(i,o)=>this.onRemovalComplete(i,o)}registerTrigger(n,e,t,i,o){let a=n+"-"+i,l=this._triggerCache[a];if(!l){let d=[],p=[],s=Lu(this._driver,o,d,p);if(d.length)throw uu(i,d);l=c0(i,s,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,i,l)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,t,i){this._transitionEngine.insertNode(n,e,t,i)}onRemove(n,e,t){this._transitionEngine.removeNode(n,e,t)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,t,i){if(t.charAt(0)=="@"){let[o,a]=qs(t),l=i;this._timelineEngine.command(o,e,a,l)}else this._transitionEngine.trigger(n,e,t,i)}listen(n,e,t,i,o){if(t.charAt(0)=="@"){let[a,l]=qs(t);return this._timelineEngine.listen(a,e,l,o)}return this._transitionEngine.listen(n,e,t,i,o)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}};function T0(r,n){let e=null,t=null;return Array.isArray(n)&&n.length?(e=il(n[0]),n.length>1&&(t=il(n[n.length-1]))):n instanceof Map&&(e=il(n)),e||t?new x0(r,e,t):null}var x0=(()=>{class r{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,t,i){this._element=e,this._startStyles=t,this._endStyles=i;let o=r.initialStylesByElement.get(e);o||r.initialStylesByElement.set(e,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&_i(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_i(this._element,this._initialStyles),this._endStyles&&(_i(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(r.initialStylesByElement.delete(this._element),this._startStyles&&(un(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(un(this._element,this._endStyles),this._endStyles=null),_i(this._element,this._initialStyles),this._state=3)}}return r})();function il(r){let n=null;return r.forEach((e,t)=>{E0(t)&&(n=n||new Map,n.set(t,e))}),n}function E0(r){return r==="display"||r==="position"}var ka=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(n,e,t,i){this.element=n,this.keyframes=e,this.options=t,this._specialStyles=i,this._duration=t.duration,this._delay=t.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){let e=[];return n.forEach(t=>{e.push(Object.fromEntries(t))}),e}_triggerWebAnimation(n,e,t){return n.animate(this._convertKeyframesToObject(e),t)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((t,i)=>{i!=="offset"&&n.set(i,this._finished?t:pa(this.element,i))}),this.currentSnapshot=n}triggerCallback(n){let e=n==="start"?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}},Ta=class{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return js(n,e)}getParentElement(n){return ca(n)}query(n,e,t){return $s(n,e,t)}computeStyle(n,e,t){return pa(n,e)}animate(n,e,t,i,o,a=[]){let l=i==0?"both":"forwards",d={duration:t,delay:i,fill:l};o&&(d.easing=o);let p=new Map,s=a.filter(y=>y instanceof ka);xu(t,i)&&s.forEach(y=>{y.currentSnapshot.forEach((_,T)=>p.set(T,_))});let c=ku(e).map(y=>new Map(y));c=Eu(n,c,p);let m=T0(n,c);return new ka(n,c,d,m)}};var ya="@",Gu="@.disabled",xa=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(n,e,t,i){this.namespaceId=n,this.delegate=e,this.engine=t,this._onDestroy=i}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,t,i=!0){this.delegate.insertBefore(n,e,t),this.engine.onInsert(this.namespaceId,e,n,i)}removeChild(n,e,t){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,t,i){this.delegate.setAttribute(n,e,t,i)}removeAttribute(n,e,t){this.delegate.removeAttribute(n,e,t)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,t,i){this.delegate.setStyle(n,e,t,i)}removeStyle(n,e,t){this.delegate.removeStyle(n,e,t)}setProperty(n,e,t){e.charAt(0)==ya&&e==Gu?this.disableAnimations(n,!!t):this.delegate.setProperty(n,e,t)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,t,i){return this.delegate.listen(n,e,t,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}},ml=class extends xa{factory;constructor(n,e,t,i,o){super(e,t,i,o),this.factory=n,this.namespaceId=e}setProperty(n,e,t){e.charAt(0)==ya?e.charAt(1)=="."&&e==Gu?(t=t===void 0?!0:!!t,this.disableAnimations(n,t)):this.engine.process(this.namespaceId,n,e.slice(1),t):this.delegate.setProperty(n,e,t)}listen(n,e,t,i){if(e.charAt(0)==ya){let o=P0(n),a=e.slice(1),l="";return a.charAt(0)!=ya&&([a,l]=D0(a)),this.engine.listen(this.namespaceId,o,a,l,d=>{let p=d._data||-1;this.factory.scheduleListenerCallback(p,t,d)})}return this.delegate.listen(n,e,t,i)}};function P0(r){switch(r){case"body":return document.body;case"document":return document;case"window":return window;default:return r}}function D0(r){let n=r.indexOf("."),e=r.substring(0,n),t=r.slice(n+1);return[e,t]}var Ea=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(n,e,t){this.delegate=n,this.engine=e,this._zone=t,e.onRemovalComplete=(i,o)=>{o?.removeChild(null,i)}}createRenderer(n,e){let t="",i=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){let p=this._rendererCache,s=p.get(i);if(!s){let c=()=>p.delete(i);s=new xa(t,i,this.engine,c),p.set(i,s)}return s}let o=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,n);let l=p=>{Array.isArray(p)?p.forEach(l):this.engine.registerTrigger(o,a,n,p.name,p)};return e.data.animation.forEach(l),new ml(this,a,i,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,t){if(n>=0&&n<this._microtaskId){this._zone.run(()=>e(t));return}let i=this._animationCallbacksBuffer;i.length==0&&queueMicrotask(()=>{this._zone.run(()=>{i.forEach(o=>{let[a,l]=o;a(l)}),this._animationCallbacksBuffer=[]})}),i.push([e,t])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(n){this.engine.flush(),this.delegate.componentReplaced?.(n)}};var A0=(()=>{class r extends Pr{constructor(e,t,i){super(e,t,i)}ngOnDestroy(){this.flush()}static \u0275fac=function(t){return new(t||r)(jn(Gi),jn(In),jn(Rn))};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();function O0(){return new ba}function I0(r,n,e){return new Ea(r,n,e)}var qu=[{provide:Rn,useFactory:O0},{provide:Pr,useClass:A0},{provide:Al,useFactory:I0,deps:[Zl,Pr,yt]}],PE=[{provide:In,useClass:pl},{provide:$a,useValue:"NoopAnimations"},...qu],R0=[{provide:In,useFactory:()=>new Ta},{provide:$a,useFactory:()=>"BrowserAnimations"},...qu];function ju(){return Ol("NgEagerAnimations"),[...R0]}var $u=11,Yu="connectionConfig",gl=(()=>{class r{config;isLoggedIn=null;loggedInSubscription=null;connection=M(yo);auth=M(li);connectionStateMachine=M(Zn);router=M(_o);delta=M(Ki);data=M(Qi);storage=M(bo);constructor(){this.loggedInSubscription=this.auth.isLoggedIn$.subscribe(e=>{this.isLoggedIn=e})}initNetworkServices(){return Hn(this,null,function*(){this.loadLocalStorageConfig(),this.preloadFonts();try{this.config?.signalKUrl!==void 0&&this.config.signalKUrl!==null&&(yield this.connection.initializeConnection({url:this.config.signalKUrl,new:!1},this.config.proxyEnabled,this.config.signalKSubscribeAll)),!this.isLoggedIn&&this.config?.signalKUrl&&this.config?.useSharedConfig&&this.config?.loginName&&this.config?.loginPassword&&(yield this.login()),this.isLoggedIn&&this.config?.useSharedConfig&&(this.storage.activeConfigFileVersion=$u,this.storage.sharedConfigName=this.config.sharedConfigName,yield this.storage.getConfig("user",this.config.sharedConfigName,$u,!0)),!this.isLoggedIn&&this.config?.signalKUrl&&this.config?.useSharedConfig&&this.router.navigate(["/login"])}catch(e){return console.warn("[AppInit Network Service] Services loaded. Connection attempt unsuccessful"),console.error(e),Promise.reject("[AppInit Network Service] Services loaded. Connection issue")}finally{console.log("[AppInit Network Service] Initialization completed"),this.connectionStateMachine.enableWebSocketMode(),this.connectionStateMachine.isHTTPConnected()&&(console.log("[AppInit Network Service] Starting WebSocket connection after initialization"),this.connectionStateMachine.startWebSocketConnection())}})}login(){return Hn(this,null,function*(){if(!this.isLoggedIn&&this.config.useSharedConfig&&this.config.loginName&&this.config.loginPassword)try{yield this.auth.login({usr:this.config.loginName,pwd:this.config.loginPassword})}catch(e){e.status===0?this.router.navigate(["/settings"]):e.status===401&&this.router.navigate(["/login"]),console.error("[AppInit Network Service] Login failure. Server returned: "+JSON.stringify(e.error))}})}setLocalStorageConfig(){localStorage.setItem(Yu,JSON.stringify(this.config))}loadLocalStorageConfig(){this.config=JSON.parse(localStorage.getItem(Yu)),this.config?this.config.signalKUrl||(this.config.signalKUrl=window.location.origin,this.setLocalStorageConfig(),console.log(`[AppInit Network Service] Config found with no server URL. Setting Auto-Discovery URL: ${this.config.signalKUrl}`)):(this.config=$l,this.config.signalKUrl=window.location.origin,console.log(`[AppInit Network Service] Connection Configuration not found. Creating configuration using Auto-Discovery URL: ${this.config.signalKUrl}`),this.setLocalStorageConfig()),this.config.configVersion==9&&(this.config.configVersion=10,this.setLocalStorageConfig(),console.log("[AppInit Network Service] Upgrading Connection version from 9 to 10")),this.config.configVersion==10&&(this.config.configVersion=11,this.setLocalStorageConfig(),console.log("[AppInit Network Service] Upgrading Connection version from 10 to 11"))}preloadFonts(){let e=[{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2)",options:{weight:"300",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2)",options:{weight:"300",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2)",options:{weight:"400",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2)",options:{weight:"400",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2)",options:{weight:"500",style:"normal"}},{family:"Roboto",src:"url(./assets/google-fonts/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2)",options:{weight:"500",style:"normal"}}];for(let{family:t,src:i,options:o}of e){let a=new FontFace(t,i,o);a.load().then(()=>document.fonts.add(a)).catch(l=>console.log(`[AppInit Network Service] Error loading fonts: ${l}`))}}ngOnDestroy(){this.loggedInSubscription?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();var Xu=(()=>{class r{auth=M(li);authToken=null;authTokenSubscription=null;constructor(){this.authTokenSubscription=this.auth.authToken$.subscribe(e=>{this.authToken=e})}intercept(e,t){let i=e.clone();return this.authToken&&(i=e.clone({headers:e.headers.set("authorization","JWT "+this.authToken.token)})),t.handle(i)}ngOnDestroy(){this.authTokenSubscription?.unsubscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();var w2=Ir(Ku());var N0=r=>()=>r.initNetworkServices().then(()=>{}).catch(()=>{}),W0=(()=>{class r extends id{overrides={swipe:{direction:Hammer.DIRECTION_ALL,velocity:.3,threshold:10,domEvents:!0},press:{time:500,domEvents:!0}};options={domEvents:!0};static \u0275fac=(()=>{let e;return function(i){return(e||(e=$n(r)))(i||r)}})();static \u0275prov=st({token:r,factory:r.\u0275fac})}return r})();Bh.production&&void 0;Jl(Xh,{providers:[El(ed,nd),{provide:Xl,useClass:Xu,multi:!0},gl,{provide:Rl,useFactory:N0,deps:[gl],multi:!0},{provide:td,useClass:W0},{provide:Ed,useValue:{hasBackdrop:!0,disableClose:!1,autoFocus:"first-tabbable",delayFocusTrap:!0,backdropClass:"dialogBackdrop"}},{provide:Pd,useValue:{appearance:"outline",floatLabel:"always",subscriptSizing:"dynamic"}},{provide:Xd,useValue:{showDelay:1500,hideDelay:0}},li,Qi,yo,Ki,Zn,xo,ct,or,Ut,on,ra,bo,Zd(),Kl(Ql()),od(Lh,ad()),ju()]});export{W0 as kipHammerConfig};
|