ws4kp-linhanced/dist/resources/ws.min.js

1 line
133 KiB
JavaScript
Raw Normal View History

2025-02-23 20:57:06 -06:00
(()=>{"use strict";var e={2:(e,t,s)=>{var n=s(592),r=s(73),a=s(24),i=s(211),o=s(125);class l extends a.A{constructor(e,t,s){super(e,t,"Hourly Graph",s),document.addEventListener("DOMContentLoaded",(()=>{this.moveHeader()}))}moveHeader(){const e=this.fillTemplate("top-right",{});this.elem.querySelector(".header .right").append(e)}async getData(){if(!super.getData())return;const e=await(0,r.A)((()=>this.stillWaiting()));if(void 0===e)return void this.setStatus(n.Ay.failed);const t=e.map((e=>e.temperature)),s=e.map((e=>e.probabilityOfPrecipitation)),a=e.map((e=>e.skyCover));this.data={skyCover:a,temperature:t,probabilityOfPrecipitation:s},this.setStatus(n.Ay.loaded)}drawCanvas(){this.image||(this.image=this.elem.querySelector(".chart img"));const e=285;this.image.width=532,this.image.height=e;const t=document.createElement("canvas");t.width=532,t.height=e;const s=t.getContext("2d");s.imageSmoothingEnabled=!1;const n=c(0,5,this.data.temperature.length-1,532),r=o.c9.now().startOf("hour");document.querySelector(".x-axis .l-1").innerHTML=h(r),document.querySelector(".x-axis .l-2").innerHTML=h(r.plus({hour:6})),document.querySelector(".x-axis .l-3").innerHTML=h(r.plus({hour:12})),document.querySelector(".x-axis .l-4").innerHTML=h(r.plus({hour:18})),document.querySelector(".x-axis .l-5").innerHTML=h(r.plus({hour:24}));const a=c(0,275,100,10),i=u(this.data.skyCover,n,a);d(i,s,{strokeStyle:"lightgrey",lineWidth:3});const l=u(this.data.probabilityOfPrecipitation,n,a);d(l,s,{strokeStyle:"aqua",lineWidth:3});const m=Math.min(...this.data.temperature),f=Math.max(...this.data.temperature),g=Math.round((m+f)/2),y=c(m,275,f,10),p=u(this.data.temperature,n,y);d(p,s,{strokeStyle:"red",lineWidth:3});const w=String.fromCharCode(176);this.elem.querySelector(".y-axis .l-1").innerHTML=(f+w).substring(0,3),this.elem.querySelector(".y-axis .l-2").innerHTML=(g+w).substring(0,3),this.elem.querySelector(".y-axis .l-3").innerHTML=(m+w).substring(0,3),this.image.src=t.toDataURL(),super.drawCanvas(),this.finishDraw()}}const c=(e,t,s,n)=>{const r=(n-t)/(s-e),a=t-r*e;return e=>r*e+a},u=(e,t,s)=>e.map(((e,n)=>[t(n),s(e)])),d=(e,t,s)=>{t.beginPath(),t.strokeStyle="black",t.lineWidth=(s?.lineWidth??2)+2,t.moveTo(e[0][0],e[0][1]),e.slice(1).forEach((e=>t.lineTo(e[0],e[1]+2))),t.stroke(),t.beginPath(),t.strokeStyle=s?.strokeStyle??"red",t.lineWidth=s?.lineWidth??2,t.moveTo(e[0][0],e[0][1]),e.slice(1).forEach((e=>t.lineTo(e[0],e[1]))),t.stroke()},h=e=>e.toFormat("ha").slice(0,-1);(0,i.Kb)(new l(4,"hourly-graph"))},24:(e,t,s)=>{s.d(t,{A:()=>l});var n=s(592),r=s(125),a=s(211),i=s(999),o=s(302);const l=class{constructor(e,t,s,r){this.navId=e,this.elemId=void 0,this.data=void 0,this.loadingStatus=n.Ay.loading,this.name=s??t,this.getDataCallbacks=[],this.stillWaitingCallbacks=[],this.defaultEnabled=r,this.okToDrawCurrentConditions=!0,this.okToDrawCurrentDateTime=!0,this.showOnProgress=!0,this.timing={totalScreens:1,baseDelay:9e3,delay:1},this.navBaseCount=0,this.screenIndex=-1,this.storeElemId(t),this.isEnabled?this.setStatus(n.Ay.loading):this.setStatus(n.Ay.disabled),this.startNavCount(),document.addEventListener("DOMContentLoaded",(()=>{this.loadTemplates()}))}generateCheckbox(e=!0){if("progress"===this.elemId)return!1;const t=(0,i.J)()?.[`${this.elemId}-checkbox`];let s;void 0!==t&&(s="true"===t);let n=s??window.localStorage.getItem(`display-enabled: ${this.elemId}`);null===n&&(n=e),this.isEnabled=!("true"!==n&&!0!==n),window.localStorage.setItem(`display-enabled: ${this.elemId}`,this.isEnabled);const r=document.createElement("label");r.for=`${this.elemId}-checkbox`,r.id=`${this.elemId}-label`;const a=document.createElement("input");a.type="checkbox",a.value=!0,a.id=`${this.elemId}-checkbox`,a.name=`${this.elemId}-checkbox`,a.checked=this.isEnabled,a.addEventListener("change",(e=>this.checkboxChange(e)));const o=document.createElement("span");o.innerHTML=this.name;const l=document.createElement("span");return l.innerHTML="!!!",l.classList.add("alert"),r.append(a,o,l),this.checkbox=r,r}checkboxChange(e){this.isEnabled=e.target.checked,window.localStorage.setItem