8 lines
50 KiB
JavaScript
8 lines
50 KiB
JavaScript
var hl=Object.defineProperty;var bl=(e,s,n)=>s in e?hl(e,s,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[s]=n;var Bt=(e,s,n)=>bl(e,typeof s!="symbol"?s+"":s,n);(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))a(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const b of i.addedNodes)b.tagName==="LINK"&&b.rel==="modulepreload"&&a(b)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function a(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function Se(){}function ul(e){return e()}function Zt(){return Object.create(null)}function ot(e){e.forEach(ul)}function vl(e){return typeof e=="function"}function ft(e,s){return e!=e?s==s:e!==s||e&&typeof e=="object"||typeof e=="function"}function gl(e){return Object.keys(e).length===0}function t(e,s){e.appendChild(s)}function Me(e,s,n){e.insertBefore(s,n||null)}function Te(e){e.parentNode&&e.parentNode.removeChild(e)}function It(e,s){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(s)}function o(e){return document.createElement(e)}function de(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function _(e){return document.createTextNode(e)}function u(){return _(" ")}function ke(e,s,n,a){return e.addEventListener(s,n,a),()=>e.removeEventListener(s,n,a)}function l(e,s,n){n==null?e.removeAttribute(s):e.getAttribute(s)!==n&&e.setAttribute(s,n)}function wl(e){return Array.from(e.childNodes)}function A(e,s){s=""+s,e.data!==s&&(e.data=s)}function wt(e,s){e.value=s??""}function re(e,s,n,a){n==null?e.style.removeProperty(s):e.style.setProperty(s,n,"")}function jt(e,s,n){for(let a=0;a<e.options.length;a+=1){const r=e.options[a];if(r.__value===s){r.selected=!0;return}}(!n||s!==void 0)&&(e.selectedIndex=-1)}function Qt(e){const s=e.querySelector(":checked");return s&&s.__value}function B(e,s,n){e.classList.toggle(s,!!n)}let Et;function Nt(e){Et=e}function fl(){if(!Et)throw new Error("Function called outside component initialization");return Et}function _l(e){fl().$$.on_mount.push(e)}function yl(e){fl().$$.on_destroy.push(e)}const Mt=[],$t=[];let Ot=[];const xt=[],kl=Promise.resolve();let zt=!1;function Cl(){zt||(zt=!0,kl.then(pl))}function Lt(e){Ot.push(e)}const Rt=new Set;let Ct=0;function pl(){if(Ct!==0)return;const e=Et;do{try{for(;Ct<Mt.length;){const s=Mt[Ct];Ct++,Nt(s),Tl(s.$$)}}catch(s){throw Mt.length=0,Ct=0,s}for(Nt(null),Mt.length=0,Ct=0;$t.length;)$t.pop()();for(let s=0;s<Ot.length;s+=1){const n=Ot[s];Rt.has(n)||(Rt.add(n),n())}Ot.length=0}while(Mt.length);for(;xt.length;)xt.pop()();zt=!1,Rt.clear(),Nt(e)}function Tl(e){if(e.fragment!==null){e.update(),ot(e.before_update);const s=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,s),e.after_update.forEach(Lt)}}function Fl(e){const s=[],n=[];Ot.forEach(a=>e.indexOf(a)===-1?s.push(a):n.push(a)),n.forEach(a=>a()),Ot=s}const Dt=new Set;let Sl;function ht(e,s){e&&e.i&&(Dt.delete(e),e.i(s))}function Tt(e,s,n,a){if(e&&e.o){if(Dt.has(e))return;Dt.add(e),Sl.c.push(()=>{Dt.delete(e)}),e.o(s)}}function vt(e){return(e==null?void 0:e.length)!==void 0?e:Array.from(e)}function Ft(e){e&&e.c()}function bt(e,s,n){const{fragment:a,after_update:r}=e.$$;a&&a.m(s,n),Lt(()=>{const i=e.$$.on_mount.map(ul).filter(vl);e.$$.on_destroy?e.$$.on_destroy.push(...i):ot(i),e.$$.on_mount=[]}),r.forEach(Lt)}function gt(e,s){const n=e.$$;n.fragment!==null&&(Fl(n.after_update),ot(n.on_destroy),n.fragment&&n.fragment.d(s),n.on_destroy=n.fragment=null,n.ctx=[])}function Ml(e,s){e.$$.dirty[0]===-1&&(Mt.push(e),Cl(),e.$$.dirty.fill(0)),e.$$.dirty[s/31|0]|=1<<s%31}function _t(e,s,n,a,r,i,b=null,v=[-1]){const h=Et;Nt(e);const c=e.$$={fragment:null,ctx:[],props:i,update:Se,not_equal:r,bound:Zt(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(s.context||(h?h.$$.context:[])),callbacks:Zt(),dirty:v,skip_bound:!1,root:s.target||h.$$.root};b&&b(c.root);let w=!1;if(c.ctx=n?n(e,s.props||{},(f,d,...g)=>{const y=g.length?g[0]:d;return c.ctx&&r(c.ctx[f],c.ctx[f]=y)&&(!c.skip_bound&&c.bound[f]&&c.bound[f](y),w&&Ml(e,f)),d}):[],c.update(),w=!0,ot(c.before_update),c.fragment=a?a(c.ctx):!1,s.target){if(s.hydrate){const f=wl(s.target);c.fragment&&c.fragment.l(f),f.forEach(Te)}else c.fragment&&c.fragment.c();s.intro&&ht(e.$$.fragment),bt(e,s.target,s.anchor),pl()}Nt(h)}class yt{constructor(){Bt(this,"$$");Bt(this,"$$set")}$destroy(){gt(this,1),this.$destroy=Se}$on(s,n){if(!vl(n))return Se;const a=this.$$.callbacks[s]||(this.$$.callbacks[s]=[]);return a.push(n),()=>{const r=a.indexOf(n);r!==-1&&a.splice(r,1)}}$set(s){this.$$set&&!gl(s)&&(this.$$.skip_bound=!0,this.$$set(s),this.$$.skip_bound=!1)}}const jl="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(jl);const St=[];function Gt(e,s=Se){let n;const a=new Set;function r(v){if(ft(e,v)&&(e=v,n)){const h=!St.length;for(const c of a)c[1](),St.push(c,e);if(h){for(let c=0;c<St.length;c+=2)St[c][0](St[c+1]);St.length=0}}}function i(v){r(v(e))}function b(v,h=Se){const c=[v,h];return a.add(c),a.size===1&&(n=s(r,i)||Se),v(e),()=>{a.delete(c),a.size===0&&n&&(n(),n=null)}}return{set:r,update:i,subscribe:b}}const Ht=Gt(!1),ml=Gt(null),Ol=Gt(null);class Pl{constructor(){this.ws=null,this.reconnectTimeout=null,this.reconnectDelay=3e3}connect(){const n=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`;try{this.ws=new WebSocket(n),this.ws.onopen=()=>{console.log("WebSocket connected"),Ht.set(!0)},this.ws.onmessage=a=>{try{const r=JSON.parse(a.data);r.type==="update"&&(console.log("System status updated:",r.data),ml.set(r.data),Ol.set(new Date(r.timestamp)))}catch(r){console.error("Error parsing message:",r)}},this.ws.onerror=a=>{console.error("WebSocket error:",a)},this.ws.onclose=()=>{console.log("WebSocket disconnected"),Ht.set(!1),this.scheduleReconnect()}}catch(a){console.error("Error creating WebSocket:",a),this.scheduleReconnect()}}scheduleReconnect(){this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.reconnectTimeout=setTimeout(()=>{console.log("Attempting to reconnect..."),this.connect()},this.reconnectDelay)}send(s){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify(s))}disconnect(){this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.ws&&this.ws.close()}}const el=new Pl,Al="/api";async function ge(e,s={}){try{const n=await fetch(`${Al}${e}`,{...s,headers:{"Content-Type":"application/json",...s.headers}});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return await n.json()}catch(n){throw console.error("API request failed:",n),n}}const Fe={getStatus:()=>ge("/status"),getConfig:()=>ge("/config"),webswitch:{relayOn:e=>ge(`/webswitch/relay/on?relay=${e}`,{method:"POST"}),relayOff:e=>ge(`/webswitch/relay/off?relay=${e}`,{method:"POST"}),allOn:()=>ge("/webswitch/all/on",{method:"POST"}),allOff:()=>ge("/webswitch/all/off",{method:"POST"})},rotator:{move:(e,s)=>ge("/rotator/move",{method:"POST",body:JSON.stringify({rotator:e,azimuth:s})}),cw:e=>ge(`/rotator/cw?rotator=${e}`,{method:"POST"}),ccw:e=>ge(`/rotator/ccw?rotator=${e}`,{method:"POST"}),stop:()=>ge("/rotator/stop",{method:"POST"})},tuner:{setOperate:e=>ge("/tuner/operate",{method:"POST",body:JSON.stringify({value:e})}),setBypass:e=>ge("/tuner/bypass",{method:"POST",body:JSON.stringify({value:e})}),autoTune:()=>ge("/tuner/autotune",{method:"POST"})},antenna:{selectAntenna:(e,s)=>ge("/antenna/select",{method:"POST",body:JSON.stringify({port:e,antenna:s})}),reboot:()=>ge("/antenna/reboot",{method:"POST"})},power:{setFanMode:e=>ge("/power/fanmode",{method:"POST",body:JSON.stringify({mode:e})}),setOperate:e=>ge("/power/operate",{method:"POST",body:JSON.stringify({value:e})})},rotator:{setHeading:e=>ge("/rotator/heading",{method:"POST",body:JSON.stringify({heading:e})}),rotateCW:()=>ge("/rotator/cw",{method:"POST"}),rotateCCW:()=>ge("/rotator/ccw",{method:"POST"}),stop:()=>ge("/rotator/stop",{method:"POST"})},ultrabeam:{setFrequency:(e,s)=>ge("/ultrabeam/frequency",{method:"POST",body:JSON.stringify({frequency:e,direction:s})}),retract:()=>ge("/ultrabeam/retract",{method:"POST"}),setAutoTrack:(e,s)=>ge("/ultrabeam/autotrack",{method:"POST",body:JSON.stringify({enabled:e,threshold:s})})}};function tl(e,s,n){var b;const a=e.slice();a[10]=s[n];const r=a[1].find(function(...h){return e[9](a[10],...h)});a[11]=r;const i=((b=a[11])==null?void 0:b.state)||!1;return a[12]=i,a}function ll(e){let s,n,a,r,i,b,v=e[12]?"ON":"OFF",h,c,w,f,d,g,y,k;function m(){return e[8](e[10])}return{c(){s=o("div"),n=o("div"),a=o("div"),r=o("div"),r.textContent=`${e[3][e[10]]}`,i=u(),b=o("div"),h=_(v),c=u(),w=o("button"),f=o("div"),f.innerHTML='<div class="toggle-thumb svelte-z2csmj"></div>',g=u(),l(r,"class","relay-name svelte-z2csmj"),l(b,"class","relay-status svelte-z2csmj"),l(a,"class","relay-details svelte-z2csmj"),l(n,"class","relay-info svelte-z2csmj"),l(f,"class","toggle-track svelte-z2csmj"),l(w,"class","relay-toggle svelte-z2csmj"),w.disabled=d=e[0][e[10]],B(w,"active",e[12]),B(w,"loading",e[0][e[10]]),l(s,"class","relay-card svelte-z2csmj"),B(s,"relay-on",e[12])},m(T,F){Me(T,s,F),t(s,n),t(n,a),t(a,r),t(a,i),t(a,b),t(b,h),t(s,c),t(s,w),t(w,f),t(s,g),y||(k=ke(w,"click",m),y=!0)},p(T,F){e=T,F&2&&v!==(v=e[12]?"ON":"OFF")&&A(h,v),F&1&&d!==(d=e[0][e[10]])&&(w.disabled=d),F&2&&B(w,"active",e[12]),F&1&&B(w,"loading",e[0][e[10]]),F&2&&B(s,"relay-on",e[12])},d(T){T&&Te(s),y=!1,k()}}}function Nl(e){let s,n,a,r,i,b,v,h,c,w,f,d,g,y,k,m=vt([1,2,3,4,5]),T=[];for(let F=0;F<5;F+=1)T[F]=ll(tl(e,m,F));return{c(){s=o("div"),n=o("div"),a=o("h2"),a.textContent="WebSwitch",r=u(),i=o("span"),b=u(),v=o("div"),h=o("div");for(let F=0;F<5;F+=1)T[F].c();c=u(),w=o("div"),f=o("button"),f.innerHTML=`<span class="btn-icon svelte-z2csmj">⚡</span>
|
|
ALL ON`,d=u(),g=o("button"),g.innerHTML=`<span class="btn-icon svelte-z2csmj">⏻</span>
|
|
ALL OFF`,l(a,"class","svelte-z2csmj"),l(i,"class","status-dot svelte-z2csmj"),B(i,"disconnected",!e[2]),l(n,"class","card-header svelte-z2csmj"),l(h,"class","relays svelte-z2csmj"),l(f,"class","control-btn all-on svelte-z2csmj"),l(g,"class","control-btn all-off svelte-z2csmj"),l(w,"class","controls svelte-z2csmj"),l(v,"class","metrics svelte-z2csmj"),l(s,"class","card svelte-z2csmj")},m(F,p){Me(F,s,p),t(s,n),t(n,a),t(n,r),t(n,i),t(s,b),t(s,v),t(v,h);for(let P=0;P<5;P+=1)T[P]&&T[P].m(h,null);t(v,c),t(v,w),t(w,f),t(w,d),t(w,g),y||(k=[ke(f,"click",e[5]),ke(g,"click",e[6])],y=!0)},p(F,[p]){if(p&4&&B(i,"disconnected",!F[2]),p&27){m=vt([1,2,3,4,5]);let P;for(P=0;P<5;P+=1){const R=tl(F,m,P);T[P]?T[P].p(R,p):(T[P]=ll(R),T[P].c(),T[P].m(h,null))}for(;P<5;P+=1)T[P].d(1)}},i:Se,o:Se,d(F){F&&Te(s),It(T,F),y=!1,ot(k)}}}function El(e,s,n){let a,r,{status:i}=s;const b={1:"Power Supply",2:"PGXL",3:"TGXL",4:"Flex Radio Start",5:"Reserve"};let v={};async function h(g){const y=a.find(m=>m.number===g),k=(y==null?void 0:y.state)||!1;n(0,v[g]=!0,v);try{k?await Fe.webswitch.relayOff(g):await Fe.webswitch.relayOn(g)}catch(m){console.error("Failed to toggle relay:",m),alert("Failed to control relay")}finally{n(0,v[g]=!1,v)}}async function c(){try{await Fe.webswitch.allOn()}catch(g){console.error("Failed to turn all on:",g)}}async function w(){try{await Fe.webswitch.allOff()}catch(g){console.error("Failed to turn all off:",g)}}const f=g=>h(g),d=(g,y)=>y.number===g;return e.$$set=g=>{"status"in g&&n(7,i=g.status)},e.$$.update=()=>{e.$$.dirty&128&&n(1,a=(i==null?void 0:i.relays)||[]),e.$$.dirty&128&&n(2,r=(i==null?void 0:i.connected)||!1)},[v,a,r,b,h,c,w,i,f,d]}class Ll extends yt{constructor(s){super(),_t(this,s,El,Nl,ft,{status:7})}}function Dl(e){let s;return{c(){s=o("span"),s.textContent="High!",l(s,"class","status-text danger svelte-vjv5wg")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function Il(e){let s;return{c(){s=o("span"),s.textContent="Caution",l(s,"class","status-text warning svelte-vjv5wg")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function Bl(e){let s;return{c(){s=o("span"),s.textContent="Good",l(s,"class","status-text ok svelte-vjv5wg")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function Rl(e){let s;return{c(){s=o("span"),s.textContent="Excellent",l(s,"class","status-text good svelte-vjv5wg")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function zl(e){let s,n,a,r,i,b,v,h,c,w,f,d,g,y,k=e[1].toFixed(0)+"",m,T,F,p,P,R,E,L,D,ne,j,J,z,ae,G=e[2].toFixed(2)+"",K,ue,q,N,M,V,S,x,ee,ve=e[3].toFixed(1)+"",_e,Z,fe,le,we,ie,W,se,he,X,je=e[12].toFixed(1)+"",ye,Le,be,Pe,Ce,Y,O,Q,C,te,$,He,tt,Ge=e[15].toFixed(0)+"",Ie,ut,Ae,Je,at,Ve,We=e[14].toFixed(1)+"",Be,Re,ze,Ze,lt,Ne,Qe=e[13].toFixed(1)+"",Ke,$e,De,Oe,Ee,qe,H,pe,st,rt,Xe,nt,pt,xe,Pt,Ue,me,At,Ye,it,ct,dt,kt,I;function ce(U,oe){return U[2]<1.5?Rl:U[2]<2?Bl:U[2]<3?Il:Dl}let mt=ce(e),et=mt(e);return{c(){s=o("div"),n=o("div"),a=o("h2"),a.textContent="Power Genius XL",r=u(),i=o("div"),b=o("button"),v=_(e[7]),h=u(),c=o("span"),w=u(),f=o("div"),d=o("div"),g=o("div"),y=o("div"),m=_(k),T=o("span"),T.textContent="W",F=u(),p=o("div"),p.textContent="Forward Power",P=u(),R=o("div"),E=o("div"),L=o("div"),D=u(),ne=o("div"),ne.innerHTML="<span>0</span> <span>1000</span> <span>2000</span>",j=u(),J=o("div"),z=o("div"),ae=o("div"),K=_(G),ue=u(),q=o("div"),q.textContent="SWR",N=u(),M=o("div"),et.c(),V=u(),S=o("div"),x=o("div"),ee=o("div"),_e=_(ve),Z=_("°"),fe=u(),le=o("div"),le.textContent="PA Temp",we=u(),ie=o("div"),W=o("div"),se=u(),he=o("div"),X=o("div"),ye=_(je),Le=_("°"),be=u(),Pe=o("div"),Pe.textContent="HL Temp",Ce=u(),Y=o("div"),O=o("div"),Q=u(),C=o("div"),te=o("div"),$=o("div"),$.textContent="VAC",He=u(),tt=o("div"),Ie=_(Ge),ut=u(),Ae=o("div"),Je=o("div"),Je.textContent="VDD",at=u(),Ve=o("div"),Be=_(We),Re=u(),ze=o("div"),Ze=o("div"),Ze.textContent="ID Peak",lt=u(),Ne=o("div"),Ke=_(Qe),$e=u(),De=o("div"),Oe=o("div"),Ee=o("span"),Ee.textContent="Band A",qe=u(),H=o("span"),pe=_(e[10]),st=u(),rt=o("div"),Xe=o("span"),Xe.textContent="Band B",nt=u(),pt=o("span"),xe=_(e[9]),Pt=u(),Ue=o("div"),me=o("label"),me.textContent="Fan Mode",At=u(),Ye=o("select"),it=o("option"),it.textContent="Standard",ct=o("option"),ct.textContent="Contest",dt=o("option"),dt.textContent="Broadcast",l(a,"class","svelte-vjv5wg"),l(b,"class","state-badge svelte-vjv5wg"),B(b,"idle",e[0]==="IDLE"),B(b,"transmit",e[0].includes("TRANSMIT")),l(c,"class","status-dot svelte-vjv5wg"),B(c,"disconnected",!e[8]),l(i,"class","header-right svelte-vjv5wg"),l(n,"class","card-header svelte-vjv5wg"),l(T,"class","unit svelte-vjv5wg"),l(y,"class","power-value svelte-vjv5wg"),l(p,"class","power-label svelte-vjv5wg"),l(g,"class","power-main svelte-vjv5wg"),l(L,"class","power-bar-glow svelte-vjv5wg"),l(E,"class","power-bar-fill svelte-vjv5wg"),re(E,"width",e[4]+"%"),l(ne,"class","power-scale svelte-vjv5wg"),l(R,"class","power-bar svelte-vjv5wg"),l(d,"class","power-display svelte-vjv5wg"),l(ae,"class","swr-value svelte-vjv5wg"),l(q,"class","swr-label svelte-vjv5wg"),l(z,"class","swr-circle svelte-vjv5wg"),re(z,"--swr-color",e[5]),l(M,"class","swr-status svelte-vjv5wg"),l(J,"class","swr-container svelte-vjv5wg"),l(ee,"class","temp-value svelte-vjv5wg"),re(ee,"color",e[6]),l(le,"class","temp-label svelte-vjv5wg"),l(W,"class","temp-mini-fill svelte-vjv5wg"),re(W,"width",e[3]/80*100+"%"),re(W,"background",e[6]),l(ie,"class","temp-mini-bar svelte-vjv5wg"),l(x,"class","temp-item svelte-vjv5wg"),l(X,"class","temp-value svelte-vjv5wg"),re(X,"color",e[6]),l(Pe,"class","temp-label svelte-vjv5wg"),l(O,"class","temp-mini-fill svelte-vjv5wg"),re(O,"width",e[12]/80*100+"%"),re(O,"background",e[6]),l(Y,"class","temp-mini-bar svelte-vjv5wg"),l(he,"class","temp-item svelte-vjv5wg"),l(S,"class","temp-group svelte-vjv5wg"),l($,"class","param-label svelte-vjv5wg"),l(tt,"class","param-value svelte-vjv5wg"),l(te,"class","param-box svelte-vjv5wg"),l(Je,"class","param-label svelte-vjv5wg"),l(Ve,"class","param-value svelte-vjv5wg"),l(Ae,"class","param-box svelte-vjv5wg"),l(Ze,"class","param-label svelte-vjv5wg"),l(Ne,"class","param-value svelte-vjv5wg"),l(ze,"class","param-box svelte-vjv5wg"),l(C,"class","params-grid svelte-vjv5wg"),l(Ee,"class","band-label svelte-vjv5wg"),l(H,"class","band-value svelte-vjv5wg"),l(Oe,"class","band-item svelte-vjv5wg"),l(Xe,"class","band-label svelte-vjv5wg"),l(pt,"class","band-value svelte-vjv5wg"),l(rt,"class","band-item svelte-vjv5wg"),l(De,"class","band-display svelte-vjv5wg"),l(me,"for","fan-mode-select"),l(me,"class","control-label svelte-vjv5wg"),it.__value="STANDARD",wt(it,it.__value),ct.__value="CONTEST",wt(ct,ct.__value),dt.__value="BROADCAST",wt(dt,dt.__value),l(Ye,"id","fan-mode-select"),l(Ye,"class","svelte-vjv5wg"),l(Ue,"class","fan-control svelte-vjv5wg"),l(f,"class","metrics svelte-vjv5wg"),l(s,"class","card svelte-vjv5wg")},m(U,oe){Me(U,s,oe),t(s,n),t(n,a),t(n,r),t(n,i),t(i,b),t(b,v),t(i,h),t(i,c),t(s,w),t(s,f),t(f,d),t(d,g),t(g,y),t(y,m),t(y,T),t(g,F),t(g,p),t(d,P),t(d,R),t(R,E),t(E,L),t(R,D),t(R,ne),t(f,j),t(f,J),t(J,z),t(z,ae),t(ae,K),t(z,ue),t(z,q),t(J,N),t(J,M),et.m(M,null),t(f,V),t(f,S),t(S,x),t(x,ee),t(ee,_e),t(ee,Z),t(x,fe),t(x,le),t(x,we),t(x,ie),t(ie,W),t(S,se),t(S,he),t(he,X),t(X,ye),t(X,Le),t(he,be),t(he,Pe),t(he,Ce),t(he,Y),t(Y,O),t(f,Q),t(f,C),t(C,te),t(te,$),t(te,He),t(te,tt),t(tt,Ie),t(C,ut),t(C,Ae),t(Ae,Je),t(Ae,at),t(Ae,Ve),t(Ve,Be),t(C,Re),t(C,ze),t(ze,Ze),t(ze,lt),t(ze,Ne),t(Ne,Ke),t(f,$e),t(f,De),t(De,Oe),t(Oe,Ee),t(Oe,qe),t(Oe,H),t(H,pe),t(De,st),t(De,rt),t(rt,Xe),t(rt,nt),t(rt,pt),t(pt,xe),t(f,Pt),t(f,Ue),t(Ue,me),t(Ue,At),t(Ue,Ye),t(Ye,it),t(Ye,ct),t(Ye,dt),jt(Ye,e[11]),kt||(I=[ke(b,"click",e[17]),ke(Ye,"change",e[19])],kt=!0)},p(U,[oe]){oe&128&&A(v,U[7]),oe&1&&B(b,"idle",U[0]==="IDLE"),oe&1&&B(b,"transmit",U[0].includes("TRANSMIT")),oe&256&&B(c,"disconnected",!U[8]),oe&2&&k!==(k=U[1].toFixed(0)+"")&&A(m,k),oe&16&&re(E,"width",U[4]+"%"),oe&4&&G!==(G=U[2].toFixed(2)+"")&&A(K,G),oe&32&&re(z,"--swr-color",U[5]),mt!==(mt=ce(U))&&(et.d(1),et=mt(U),et&&(et.c(),et.m(M,null))),oe&8&&ve!==(ve=U[3].toFixed(1)+"")&&A(_e,ve),oe&64&&re(ee,"color",U[6]),oe&8&&re(W,"width",U[3]/80*100+"%"),oe&64&&re(W,"background",U[6]),oe&4096&&je!==(je=U[12].toFixed(1)+"")&&A(ye,je),oe&64&&re(X,"color",U[6]),oe&4096&&re(O,"width",U[12]/80*100+"%"),oe&64&&re(O,"background",U[6]),oe&32768&&Ge!==(Ge=U[15].toFixed(0)+"")&&A(Ie,Ge),oe&16384&&We!==(We=U[14].toFixed(1)+"")&&A(Be,We),oe&8192&&Qe!==(Qe=U[13].toFixed(1)+"")&&A(Ke,Qe),oe&1024&&A(pe,U[10]),oe&512&&A(xe,U[9]),oe&2048&&jt(Ye,U[11])},i:Se,o:Se,d(U){U&&Te(s),et.d(),kt=!1,ot(I)}}}function Hl(e,s,n){let a,r,i,b,v,h,c,w,f,d,g,y,k,m,T,F,{status:p}=s;async function P(L){try{await Fe.power.setFanMode(L)}catch(D){console.error("Failed to set fan mode:",D),alert("Failed to set fan mode")}}async function R(){try{const L=f==="IDLE"?0:1;await Fe.power.setOperate(L)}catch(L){console.error("Failed to toggle operate:",L),alert("Failed to toggle operate mode")}}const E=L=>P(L.target.value);return e.$$set=L=>{"status"in L&&n(18,p=L.status)},e.$$.update=()=>{e.$$.dirty&262144&&n(1,a=(p==null?void 0:p.power_forward)||0),e.$$.dirty&262144&&p!=null&&p.power_reflected,e.$$.dirty&262144&&n(2,r=(p==null?void 0:p.swr)||1),e.$$.dirty&262144&&n(15,i=(p==null?void 0:p.voltage)||0),e.$$.dirty&262144&&n(14,b=(p==null?void 0:p.vdd)||0),e.$$.dirty&262144&&p!=null&&p.current,e.$$.dirty&262144&&n(13,v=(p==null?void 0:p.peak_current)||0),e.$$.dirty&262144&&n(3,h=(p==null?void 0:p.temperature)||0),e.$$.dirty&262144&&n(12,c=(p==null?void 0:p.harmonic_load_temp)||0),e.$$.dirty&262144&&n(11,w=(p==null?void 0:p.fan_mode)||"CONTEST"),e.$$.dirty&262144&&n(0,f=(p==null?void 0:p.state)||"IDLE"),e.$$.dirty&262144&&n(10,d=(p==null?void 0:p.band_a)||"0"),e.$$.dirty&262144&&n(9,g=(p==null?void 0:p.band_b)||"0"),e.$$.dirty&262144&&n(8,y=(p==null?void 0:p.connected)||!1),e.$$.dirty&1&&n(7,k=f.replace("TRANSMIT_A","TRANSMIT").replace("TRANSMIT_B","TRANSMIT")),e.$$.dirty&8&&n(6,m=h<40?"#4caf50":h<60?"#ffc107":h<75?"#ff9800":"#f44336"),e.$$.dirty&4&&n(5,T=r<1.5?"#4caf50":r<2?"#ffc107":r<3?"#ff9800":"#f44336"),e.$$.dirty&2&&n(4,F=Math.min(a/2e3*100,100))},[f,a,r,h,F,T,m,k,y,g,d,w,c,v,b,i,P,R,p,E]}class Gl extends yt{constructor(s){super(),_t(this,s,Hl,zl,ft,{status:18})}}function Wl(e){let s;return{c(){s=o("span"),s.textContent="High!",l(s,"class","status-text danger svelte-ulw0vm")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function ql(e){let s;return{c(){s=o("span"),s.textContent="Caution",l(s,"class","status-text warning svelte-ulw0vm")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function Ul(e){let s;return{c(){s=o("span"),s.textContent="Good",l(s,"class","status-text ok svelte-ulw0vm")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function Jl(e){let s;return{c(){s=o("span"),s.textContent="Excellent",l(s,"class","status-text good svelte-ulw0vm")},m(n,a){Me(n,s,a)},d(n){n&&Te(s)}}}function Xl(e){let s,n,a,r,i,b,v,h,c,w,f,d,g,y,k=e[0].toFixed(0)+"",m,T,F,p,P,R,E,L,D,ne,j,J,z,ae,G=e[1].toFixed(2)+"",K,ue,q,N,M,V,S,x,ee,ve,_e,Z,fe,le,we,ie,W,se,he,X,je,ye,Le,be,Pe,Ce,Y,O,Q,C,te=(e[11]/1e3).toFixed(3)+"",$,He,tt,Ge,Ie,ut,Ae,Je=(e[10]/1e3).toFixed(3)+"",at,Ve,We,Be,Re,ze=e[8]===1?"OPERATE":"STANDBY",Ze,lt,Ne,Qe,Ke,$e,De;function Oe(H,pe){return H[1]<1.5?Jl:H[1]<2?Ul:H[1]<3?ql:Wl}let Ee=Oe(e),qe=Ee(e);return{c(){s=o("div"),n=o("div"),a=o("h2"),a.textContent="Tuner Genius XL",r=u(),i=o("div"),b=o("span"),v=_(e[12]),h=u(),c=o("span"),w=u(),f=o("div"),d=o("div"),g=o("div"),y=o("div"),m=_(k),T=o("span"),T.textContent="W",F=u(),p=o("div"),p.textContent="Forward Power",P=u(),R=o("div"),E=o("div"),L=o("div"),D=u(),ne=o("div"),ne.innerHTML="<span>0</span> <span>1000</span> <span>2000</span>",j=u(),J=o("div"),z=o("div"),ae=o("div"),K=_(G),ue=u(),q=o("div"),q.textContent="SWR",N=u(),M=o("div"),qe.c(),V=u(),S=o("div"),x=o("div"),ee=o("div"),ve=_(e[7]),_e=u(),Z=o("div"),Z.textContent="C1",fe=u(),le=o("div"),we=o("div"),ie=_(e[6]),W=u(),se=o("div"),se.textContent="L",he=u(),X=o("div"),je=o("div"),ye=_(e[5]),Le=u(),be=o("div"),be.textContent="C2",Pe=u(),Ce=o("div"),Y=o("div"),O=o("div"),O.textContent="Freq A",Q=u(),C=o("div"),$=_(te),He=o("span"),He.textContent="MHz",tt=u(),Ge=o("div"),Ie=o("div"),Ie.textContent="Freq B",ut=u(),Ae=o("div"),at=_(Je),Ve=o("span"),Ve.textContent="MHz",We=u(),Be=o("div"),Re=o("button"),Ze=_(ze),lt=u(),Ne=o("button"),Ne.textContent="BYPASS",Qe=u(),Ke=o("button"),Ke.innerHTML=`<span class="tune-icon svelte-ulw0vm">⚡</span>
|
|
AUTO TUNE`,l(a,"class","svelte-ulw0vm"),l(b,"class","tuning-badge svelte-ulw0vm"),B(b,"tuning",e[12]==="TUNING"),l(c,"class","status-dot svelte-ulw0vm"),B(c,"disconnected",!e[4]),l(i,"class","header-right svelte-ulw0vm"),l(n,"class","card-header svelte-ulw0vm"),l(T,"class","unit svelte-ulw0vm"),l(y,"class","power-value svelte-ulw0vm"),l(p,"class","power-label svelte-ulw0vm"),l(g,"class","power-main svelte-ulw0vm"),l(L,"class","power-bar-glow svelte-ulw0vm"),l(E,"class","power-bar-fill svelte-ulw0vm"),re(E,"width",e[2]+"%"),l(ne,"class","power-scale svelte-ulw0vm"),l(R,"class","power-bar svelte-ulw0vm"),l(d,"class","power-display svelte-ulw0vm"),l(ae,"class","swr-value svelte-ulw0vm"),l(q,"class","swr-label svelte-ulw0vm"),l(z,"class","swr-circle svelte-ulw0vm"),re(z,"--swr-color",e[3]),l(M,"class","swr-status svelte-ulw0vm"),l(J,"class","swr-container svelte-ulw0vm"),l(ee,"class","cap-value svelte-ulw0vm"),l(Z,"class","cap-label svelte-ulw0vm"),l(x,"class","cap-item svelte-ulw0vm"),l(we,"class","cap-value svelte-ulw0vm"),l(se,"class","cap-label svelte-ulw0vm"),l(le,"class","cap-item svelte-ulw0vm"),l(je,"class","cap-value svelte-ulw0vm"),l(be,"class","cap-label svelte-ulw0vm"),l(X,"class","cap-item svelte-ulw0vm"),l(S,"class","capacitors svelte-ulw0vm"),l(O,"class","freq-label svelte-ulw0vm"),l(He,"class","freq-unit svelte-ulw0vm"),l(C,"class","freq-value svelte-ulw0vm"),l(Y,"class","freq-item svelte-ulw0vm"),l(Ie,"class","freq-label svelte-ulw0vm"),l(Ve,"class","freq-unit svelte-ulw0vm"),l(Ae,"class","freq-value svelte-ulw0vm"),l(Ge,"class","freq-item svelte-ulw0vm"),l(Ce,"class","freq-display svelte-ulw0vm"),l(Re,"class","control-btn operate svelte-ulw0vm"),B(Re,"active",e[8]===1),l(Ne,"class","control-btn bypass svelte-ulw0vm"),B(Ne,"active",e[9]),l(Be,"class","controls svelte-ulw0vm"),l(Ke,"class","tune-btn svelte-ulw0vm"),l(f,"class","metrics svelte-ulw0vm"),l(s,"class","card svelte-ulw0vm")},m(H,pe){Me(H,s,pe),t(s,n),t(n,a),t(n,r),t(n,i),t(i,b),t(b,v),t(i,h),t(i,c),t(s,w),t(s,f),t(f,d),t(d,g),t(g,y),t(y,m),t(y,T),t(g,F),t(g,p),t(d,P),t(d,R),t(R,E),t(E,L),t(R,D),t(R,ne),t(f,j),t(f,J),t(J,z),t(z,ae),t(ae,K),t(z,ue),t(z,q),t(J,N),t(J,M),qe.m(M,null),t(f,V),t(f,S),t(S,x),t(x,ee),t(ee,ve),t(x,_e),t(x,Z),t(S,fe),t(S,le),t(le,we),t(we,ie),t(le,W),t(le,se),t(S,he),t(S,X),t(X,je),t(je,ye),t(X,Le),t(X,be),t(f,Pe),t(f,Ce),t(Ce,Y),t(Y,O),t(Y,Q),t(Y,C),t(C,$),t(C,He),t(Ce,tt),t(Ce,Ge),t(Ge,Ie),t(Ge,ut),t(Ge,Ae),t(Ae,at),t(Ae,Ve),t(f,We),t(f,Be),t(Be,Re),t(Re,Ze),t(Be,lt),t(Be,Ne),t(f,Qe),t(f,Ke),$e||(De=[ke(Re,"click",e[17]),ke(Ne,"click",e[18]),ke(Ke,"click",e[13])],$e=!0)},p(H,[pe]){pe&4096&&A(v,H[12]),pe&4096&&B(b,"tuning",H[12]==="TUNING"),pe&16&&B(c,"disconnected",!H[4]),pe&1&&k!==(k=H[0].toFixed(0)+"")&&A(m,k),pe&4&&re(E,"width",H[2]+"%"),pe&2&&G!==(G=H[1].toFixed(2)+"")&&A(K,G),pe&8&&re(z,"--swr-color",H[3]),Ee!==(Ee=Oe(H))&&(qe.d(1),qe=Ee(H),qe&&(qe.c(),qe.m(M,null))),pe&128&&A(ve,H[7]),pe&64&&A(ie,H[6]),pe&32&&A(ye,H[5]),pe&2048&&te!==(te=(H[11]/1e3).toFixed(3)+"")&&A($,te),pe&1024&&Je!==(Je=(H[10]/1e3).toFixed(3)+"")&&A(at,Je),pe&256&&ze!==(ze=H[8]===1?"OPERATE":"STANDBY")&&A(Ze,ze),pe&256&&B(Re,"active",H[8]===1),pe&512&&B(Ne,"active",H[9])},i:Se,o:Se,d(H){H&&Te(s),qe.d(),$e=!1,ot(De)}}}function Yl(e,s,n){let a,r,i,b,v,h,c,w,f,d,g,y,k,{status:m}=s;async function T(){try{await Fe.tuner.autoTune()}catch(E){console.error("Failed to tune:",E),alert("Failed to start tuning")}}async function F(E){try{await Fe.tuner.setBypass(E)}catch(L){console.error("Failed to set bypass:",L),alert("Failed to set bypass")}}async function p(E){try{await Fe.tuner.setOperate(E)}catch(L){console.error("Failed to set operate:",L),alert("Failed to set operate")}}const P=()=>p(c===1?0:1),R=()=>F(h?0:1);return e.$$set=E=>{"status"in E&&n(16,m=E.status)},e.$$.update=()=>{e.$$.dirty&65536&&n(0,a=(m==null?void 0:m.power_forward)||0),e.$$.dirty&65536&&n(1,r=(m==null?void 0:m.swr)||1),e.$$.dirty&65536&&n(12,i=(m==null?void 0:m.tuning_status)||"READY"),e.$$.dirty&65536&&n(11,b=(m==null?void 0:m.frequency_a)||0),e.$$.dirty&65536&&n(10,v=(m==null?void 0:m.frequency_b)||0),e.$$.dirty&65536&&n(9,h=(m==null?void 0:m.bypass)||!1),e.$$.dirty&65536&&n(8,c=(m==null?void 0:m.state)||0),e.$$.dirty&65536&&n(7,w=(m==null?void 0:m.c1)||0),e.$$.dirty&65536&&n(6,f=(m==null?void 0:m.l)||0),e.$$.dirty&65536&&n(5,d=(m==null?void 0:m.c2)||0),e.$$.dirty&65536&&n(4,g=(m==null?void 0:m.connected)||!1),e.$$.dirty&2&&n(3,y=r<1.5?"#4caf50":r<2?"#ffc107":r<3?"#ff9800":"#f44336"),e.$$.dirty&1&&n(2,k=Math.min(a/2e3*100,100))},[a,r,k,y,g,d,f,w,c,h,v,b,i,T,F,p,m,P,R]}class Vl extends yt{constructor(s){super(),_t(this,s,Yl,Xl,ft,{status:16})}}function sl(e,s,n){const a=e.slice();a[12]=s[n];const r=a[1].tx&&a[1].tx_ant===a[12].number;a[13]=r;const i=a[0].tx&&a[0].tx_ant===a[12].number;a[14]=i;const b=!a[1].tx&&a[1].rx_ant===a[12].number;a[15]=b;const v=!a[0].tx&&a[0].rx_ant===a[12].number;a[16]=v;const h=a[13]||a[14];a[17]=h;const c=a[15]||a[13];a[18]=c;const w=a[16]||a[14];return a[19]=w,a}function nl(e){let s,n,a=e[12].name+"",r,i,b,v,h,c,w,f,d;function g(){return e[9](e[12])}function y(){return e[10](e[12])}return{c(){s=o("div"),n=o("div"),r=_(a),i=u(),b=o("div"),v=o("button"),v.textContent="A",h=u(),c=o("button"),c.textContent="B",w=u(),l(n,"class","antenna-name svelte-1r71rs8"),l(v,"class","port-btn svelte-1r71rs8"),B(v,"active",e[18]),l(c,"class","port-btn svelte-1r71rs8"),B(c,"active",e[19]),l(b,"class","antenna-ports svelte-1r71rs8"),l(s,"class","antenna-card svelte-1r71rs8"),B(s,"tx",e[17]),B(s,"active-a",e[18]),B(s,"active-b",e[19])},m(k,m){Me(k,s,m),t(s,n),t(n,r),t(s,i),t(s,b),t(b,v),t(b,h),t(b,c),t(s,w),f||(d=[ke(v,"click",g),ke(c,"click",y)],f=!0)},p(k,m){e=k,m&16&&a!==(a=e[12].name+"")&&A(r,a),m&18&&B(v,"active",e[18]),m&17&&B(c,"active",e[19]),m&19&&B(s,"tx",e[17]),m&18&&B(s,"active-a",e[18]),m&17&&B(s,"active-b",e[19])},d(k){k&&Te(s),f=!1,ot(d)}}}function Kl(e){let s,n,a,r,i,b,v,h,c,w,f=(e[1].source||"FLEX")+"",d,g,y,k,m=(e[0].source||"FLEX")+"",T,F,p,P,R,E,L,D,ne,j,J,z,ae,G,K,ue,q=vt(e[4]),N=[];for(let M=0;M<q.length;M+=1)N[M]=nl(sl(e,q,M));return{c(){s=o("div"),n=o("div"),a=o("h2"),a.textContent="Antenna Genius",r=u(),i=o("span"),b=u(),v=o("div"),h=o("div"),c=o("div"),w=o("div"),d=_(f),g=u(),y=o("div"),k=o("div"),T=_(m),F=u(),p=o("div"),P=o("div"),R=o("div"),E=_(e[3]),L=u(),D=o("div"),ne=o("div"),j=_(e[2]),J=u(),z=o("div");for(let M=0;M<N.length;M+=1)N[M].c();ae=u(),G=o("button"),G.innerHTML=`<span class="reboot-icon svelte-1r71rs8">🔄</span>
|
|
REBOOT`,l(a,"class","svelte-1r71rs8"),l(i,"class","status-dot svelte-1r71rs8"),B(i,"disconnected",!e[5]),l(n,"class","card-header svelte-1r71rs8"),l(w,"class","source-label svelte-1r71rs8"),l(c,"class","source-item svelte-1r71rs8"),l(k,"class","source-label svelte-1r71rs8"),l(y,"class","source-item svelte-1r71rs8"),l(h,"class","sources svelte-1r71rs8"),l(R,"class","band-value svelte-1r71rs8"),l(P,"class","band-item svelte-1r71rs8"),l(ne,"class","band-value svelte-1r71rs8"),l(D,"class","band-item svelte-1r71rs8"),l(p,"class","bands svelte-1r71rs8"),l(z,"class","antennas svelte-1r71rs8"),l(G,"class","reboot-btn svelte-1r71rs8"),l(v,"class","metrics svelte-1r71rs8"),l(s,"class","card svelte-1r71rs8")},m(M,V){Me(M,s,V),t(s,n),t(n,a),t(n,r),t(n,i),t(s,b),t(s,v),t(v,h),t(h,c),t(c,w),t(w,d),t(h,g),t(h,y),t(y,k),t(k,T),t(v,F),t(v,p),t(p,P),t(P,R),t(R,E),t(p,L),t(p,D),t(D,ne),t(ne,j),t(v,J),t(v,z);for(let S=0;S<N.length;S+=1)N[S]&&N[S].m(z,null);t(v,ae),t(v,G),K||(ue=ke(G,"click",e[7]),K=!0)},p(M,[V]){if(V&32&&B(i,"disconnected",!M[5]),V&2&&f!==(f=(M[1].source||"FLEX")+"")&&A(d,f),V&1&&m!==(m=(M[0].source||"FLEX")+"")&&A(T,m),V&8&&A(E,M[3]),V&4&&A(j,M[2]),V&83){q=vt(M[4]);let S;for(S=0;S<q.length;S+=1){const x=sl(M,q,S);N[S]?N[S].p(x,V):(N[S]=nl(x),N[S].c(),N[S].m(z,null))}for(;S<N.length;S+=1)N[S].d(1);N.length=q.length}},i:Se,o:Se,d(M){M&&Te(s),It(N,M),K=!1,ue()}}}function Zl(e,s,n){let a,r,i,b,v,h,{status:c}=s;const w={0:"160M",1:"80M",2:"60M",3:"40M",4:"30M",5:"20M",6:"17M",7:"15M",8:"12M",9:"10M",10:"6M",11:"4M",12:"2M",13:"1.25M",14:"70CM",15:"GEN"};async function f(k,m){try{await Fe.antenna.selectAntenna(k,m)}catch(T){console.error("Failed to select antenna:",T),alert("Failed to select antenna")}}async function d(){if(confirm("Are you sure you want to reboot the Antenna Genius?"))try{await Fe.antenna.reboot()}catch(k){console.error("Failed to reboot:",k),alert("Failed to reboot")}}const g=k=>f(1,k.number),y=k=>f(2,k.number);return e.$$set=k=>{"status"in k&&n(8,c=k.status)},e.$$.update=()=>{e.$$.dirty&256&&n(5,a=(c==null?void 0:c.connected)||!1),e.$$.dirty&256&&n(1,r=(c==null?void 0:c.port_a)||{}),e.$$.dirty&256&&n(0,i=(c==null?void 0:c.port_b)||{}),e.$$.dirty&256&&n(4,b=(c==null?void 0:c.antennas)||[]),e.$$.dirty&2&&n(3,v=w[r.band]||"None"),e.$$.dirty&1&&n(2,h=w[i.band]||"None")},[i,r,h,v,b,a,f,d,c,g,y]}class Ql extends yt{constructor(s){super(),_t(this,s,Zl,Kl,ft,{status:8})}}function ol(e,s,n){const a=e.slice();a[9]=s[n];const r=150+125*Math.sin(a[9]*Math.PI/180);a[10]=r;const i=150-125*Math.cos(a[9]*Math.PI/180);return a[11]=i,a}function al(e){let s,n,a;return{c(){s=de("text"),n=_(e[9]),a=_("°"),l(s,"x",e[10]),l(s,"y",e[11]),l(s,"text-anchor","middle"),l(s,"dominant-baseline","middle"),l(s,"class","degree-label svelte-cd0075")},m(r,i){Me(r,s,i),t(s,n),t(s,a)},p:Se,d(r){r&&Te(s)}}}function $l(e){let s,n,a,r,i,b,v,h,c,w,f,d,g,y,k,m,T,F,p,P,R,E,L,D,ne,j,J,z,ae,G,K,ue,q,N,M,V,S,x,ee,ve,_e,Z,fe,le,we,ie,W,se,he,X,je,ye,Le,be,Pe,Ce=vt([45,135,225,315]),Y=[];for(let O=0;O<4;O+=1)Y[O]=al(ol(e,Ce,O));return{c(){s=o("div"),n=o("div"),a=o("h2"),a.textContent="Rotator Genius",r=u(),i=o("span"),b=u(),v=o("div"),h=o("div"),c=o("div"),w=o("div"),w.textContent="CURRENT HEADING",f=u(),d=o("div"),g=_(e[0]),y=_("°"),k=u(),m=o("div"),T=o("button"),T.textContent="↺",F=u(),p=o("button"),p.textContent="■",P=u(),R=o("button"),R.textContent="↻",E=u(),L=o("div"),D=de("svg"),ne=de("defs"),j=de("radialGradient"),J=de("stop"),z=de("stop"),ae=de("circle"),G=de("circle"),K=de("circle"),ue=de("circle"),q=de("g"),N=de("g"),M=de("path"),V=de("line"),S=de("line"),x=de("g"),ee=de("polygon"),_e=de("circle"),Z=de("animate"),fe=de("circle"),le=de("animate"),we=de("animate"),ie=de("text"),W=_("N"),se=de("text"),he=_("E"),X=de("text"),je=_("S"),ye=de("text"),Le=_("W");for(let O=0;O<4;O+=1)Y[O].c();l(a,"class","svelte-cd0075"),l(i,"class","status-dot svelte-cd0075"),B(i,"disconnected",!e[1]),l(n,"class","card-header svelte-cd0075"),l(w,"class","heading-label svelte-cd0075"),l(d,"class","heading-value svelte-cd0075"),l(c,"class","heading-display-compact svelte-cd0075"),l(T,"class","btn-mini ccw svelte-cd0075"),l(T,"title","Rotate Counter-Clockwise"),l(p,"class","btn-mini stop svelte-cd0075"),l(p,"title","Stop Rotation"),l(R,"class","btn-mini cw svelte-cd0075"),l(R,"title","Rotate Clockwise"),l(m,"class","controls-compact svelte-cd0075"),l(h,"class","heading-controls-row svelte-cd0075"),l(J,"offset","0%"),re(J,"stop-color","rgba(79, 195, 247, 0.7)"),re(J,"stop-opacity","1"),l(z,"offset","100%"),re(z,"stop-color","rgba(79, 195, 247, 0)"),re(z,"stop-opacity","0"),l(j,"id","beamGradient"),l(ae,"cx","150"),l(ae,"cy","150"),l(ae,"r","140"),l(ae,"fill","rgba(30, 64, 175, 0.15)"),l(ae,"stroke","rgba(79, 195, 247, 0.4)"),l(ae,"stroke-width","2"),l(G,"cx","150"),l(G,"cy","150"),l(G,"r","105"),l(G,"fill","none"),l(G,"stroke","rgba(79,195,247,0.2)"),l(G,"stroke-width","1"),l(G,"stroke-dasharray","3,3"),l(K,"cx","150"),l(K,"cy","150"),l(K,"r","70"),l(K,"fill","none"),l(K,"stroke","rgba(79,195,247,0.2)"),l(K,"stroke-width","1"),l(K,"stroke-dasharray","3,3"),l(ue,"cx","150"),l(ue,"cy","150"),l(ue,"r","35"),l(ue,"fill","none"),l(ue,"stroke","rgba(79,195,247,0.2)"),l(ue,"stroke-width","1"),l(ue,"stroke-dasharray","3,3"),l(M,"d","M 0,0 L "+-Math.sin(15*Math.PI/180)*130+","+-Math.cos(15*Math.PI/180)*130+` \r
|
|
A 130,130 0 0,1 `+Math.sin(15*Math.PI/180)*130+","+-Math.cos(15*Math.PI/180)*130+" Z"),l(M,"fill","url(#beamGradient)"),l(M,"opacity","0.85"),l(V,"x1","0"),l(V,"y1","0"),l(V,"x2",-Math.sin(15*Math.PI/180)*130),l(V,"y2",-Math.cos(15*Math.PI/180)*130),l(V,"stroke","#4fc3f7"),l(V,"stroke-width","2"),l(V,"opacity","0.9"),l(S,"x1","0"),l(S,"y1","0"),l(S,"x2",Math.sin(15*Math.PI/180)*130),l(S,"y2",-Math.cos(15*Math.PI/180)*130),l(S,"stroke","#4fc3f7"),l(S,"stroke-width","2"),l(S,"opacity","0.9"),l(ee,"points","0,-20 -8,5 0,0 8,5"),l(ee,"fill","#4fc3f7"),l(ee,"stroke","#0288d1"),l(ee,"stroke-width","2"),re(ee,"filter","drop-shadow(0 0 10px rgba(79, 195, 247, 1))"),l(x,"transform","translate(0, -110)"),l(N,"transform",ve="rotate("+e[0]+")"),l(Z,"attributeName","r"),l(Z,"values","5;7;5"),l(Z,"dur","2s"),l(Z,"repeatCount","indefinite"),l(_e,"cx","0"),l(_e,"cy","0"),l(_e,"r","5"),l(_e,"fill","#f44336"),l(_e,"stroke","#fff"),l(_e,"stroke-width","2"),l(le,"attributeName","r"),l(le,"values","10;16;10"),l(le,"dur","2s"),l(le,"repeatCount","indefinite"),l(we,"attributeName","opacity"),l(we,"values","0.5;0;0.5"),l(we,"dur","2s"),l(we,"repeatCount","indefinite"),l(fe,"cx","0"),l(fe,"cy","0"),l(fe,"r","10"),l(fe,"fill","none"),l(fe,"stroke","#f44336"),l(fe,"stroke-width","1.5"),l(fe,"opacity","0.5"),l(q,"transform","translate(150, 150)"),l(ie,"x","150"),l(ie,"y","20"),l(ie,"text-anchor","middle"),l(ie,"class","cardinal svelte-cd0075"),l(se,"x","280"),l(se,"y","155"),l(se,"text-anchor","middle"),l(se,"class","cardinal svelte-cd0075"),l(X,"x","150"),l(X,"y","285"),l(X,"text-anchor","middle"),l(X,"class","cardinal svelte-cd0075"),l(ye,"x","20"),l(ye,"y","155"),l(ye,"text-anchor","middle"),l(ye,"class","cardinal svelte-cd0075"),l(D,"viewBox","0 0 300 300"),l(D,"class","map-svg clickable-compass svelte-cd0075"),l(L,"class","map-container svelte-cd0075"),l(v,"class","metrics svelte-cd0075"),l(s,"class","card svelte-cd0075")},m(O,Q){Me(O,s,Q),t(s,n),t(n,a),t(n,r),t(n,i),t(s,b),t(s,v),t(v,h),t(h,c),t(c,w),t(c,f),t(c,d),t(d,g),t(d,y),t(h,k),t(h,m),t(m,T),t(m,F),t(m,p),t(m,P),t(m,R),t(v,E),t(v,L),t(L,D),t(D,ne),t(ne,j),t(j,J),t(j,z),t(D,ae),t(D,G),t(D,K),t(D,ue),t(D,q),t(q,N),t(N,M),t(N,V),t(N,S),t(N,x),t(x,ee),t(q,_e),t(_e,Z),t(q,fe),t(fe,le),t(fe,we),t(D,ie),t(ie,W),t(D,se),t(se,he),t(D,X),t(X,je),t(D,ye),t(ye,Le);for(let C=0;C<4;C+=1)Y[C]&&Y[C].m(D,null);be||(Pe=[ke(T,"click",e[3]),ke(p,"click",e[4]),ke(R,"click",e[2]),ke(D,"click",e[5])],be=!0)},p(O,[Q]){if(Q&2&&B(i,"disconnected",!O[1]),Q&1&&A(g,O[0]),Q&1&&ve!==(ve="rotate("+O[0]+")")&&l(N,"transform",ve),Q&0){Ce=vt([45,135,225,315]);let C;for(C=0;C<4;C+=1){const te=ol(O,Ce,C);Y[C]?Y[C].p(te,Q):(Y[C]=al(te),Y[C].c(),Y[C].m(D,null))}for(;C<4;C+=1)Y[C].d(1)}},i:Se,o:Se,d(O){O&&Te(s),It(Y,O),be=!1,ot(Pe)}}}function xl(e,s,n){let{status:a}=s,r=0,i=!1,b=0;async function v(){if(b<0||b>359){alert("Heading must be between 0 and 359");return}try{const d=(b-10+360)%360;await Fe.rotator.setHeading(d)}catch(d){console.error("Failed to set heading:",d),alert("Failed to rotate")}}async function h(){try{await Fe.rotator.rotateCW()}catch(d){console.error("Failed to rotate CW:",d)}}async function c(){try{await Fe.rotator.rotateCCW()}catch(d){console.error("Failed to rotate CCW:",d)}}async function w(){try{await Fe.rotator.stop()}catch(d){console.error("Failed to stop:",d)}}function f(d){const y=d.currentTarget.getBoundingClientRect(),k=y.width/2,m=y.height/2,T=d.clientX-y.left-k,F=d.clientY-y.top-m;let p=Math.atan2(T,-F)*(180/Math.PI);p<0&&(p+=360),b=Math.round(p/5)*5,v()}return e.$$set=d=>{"status"in d&&n(6,a=d.status)},e.$$.update=()=>{e.$$.dirty&64&&(a==null?void 0:a.heading)!==void 0&&(a==null?void 0:a.heading)!==null&&n(0,r=a.heading),e.$$.dirty&64&&n(1,i=(a==null?void 0:a.connected)||!1)},[r,i,h,c,w,f,a]}class es extends yt{constructor(s){super(),_t(this,s,xl,$l,ft,{status:6})}}function rl(e,s,n){const a=e.slice();return a[29]=s[n],a}function il(e){let s,n=e[29].label+"",a;return{c(){s=o("option"),a=_(n),s.__value=e[29].value,wt(s,s.__value)},m(r,i){Me(r,s,i),t(s,a)},p:Se,d(r){r&&Te(s)}}}function cl(e){let s,n,a,r,i,b,v,h,c,w=e[6].toFixed(0)+"",f,d;return{c(){s=o("div"),n=o("h3"),n.textContent="Motors Moving...",a=u(),r=o("div"),i=o("div"),b=u(),v=o("div"),h=_(e[0]),c=_(" / 60 ("),f=_(w),d=_("%)"),l(n,"class","svelte-1bbmoku"),l(i,"class","progress-fill svelte-1bbmoku"),re(i,"width",e[6]+"%"),l(r,"class","progress-bar svelte-1bbmoku"),l(v,"class","progress-text svelte-1bbmoku"),l(s,"class","progress-section svelte-1bbmoku")},m(g,y){Me(g,s,y),t(s,n),t(s,a),t(s,r),t(r,i),t(s,b),t(s,v),t(v,h),t(v,c),t(v,f),t(v,d)},p(g,y){y[0]&64&&re(i,"width",g[6]+"%"),y[0]&1&&A(h,g[0]),y[0]&64&&w!==(w=g[6].toFixed(0)+"")&&A(f,w)},d(g){g&&Te(s)}}}function ts(e){let s,n,a,r,i,b,v,h,c,w,f,d,g=(e[1]/1e3).toFixed(3)+"",y,k,m,T,F,p,P,R,E,L,D,ne,j,J=e[10][e[2]]+"",z,ae,G,K,ue,q,N,M,V,S,x,ee,ve,_e,Z,fe,le,we,ie,W,se,he,X,je,ye,Le,be,Pe,Ce,Y=vt(e[11]),O=[];for(let C=0;C<Y.length;C+=1)O[C]=il(rl(e,Y,C));let Q=e[8]>0&&cl(e);return{c(){s=o("div"),n=o("div"),a=o("h2"),a.textContent="Ultrabeam VL2.3",r=u(),i=o("span"),b=u(),v=o("div"),h=o("div"),c=o("div"),w=o("div"),w.textContent="Frequency",f=u(),d=o("div"),y=_(g),k=_(" MHz"),m=u(),T=o("div"),F=o("div"),F.textContent="Band",p=u(),P=o("div"),R=_(e[7]),E=u(),L=o("div"),D=o("div"),D.textContent="Direction",ne=u(),j=o("div"),z=_(J),ae=u(),G=o("div"),K=o("h3"),K.textContent="Auto Tracking",ue=u(),q=o("div"),N=o("label"),M=o("input"),V=u(),S=o("span"),S.textContent="Enable Auto-Track from Tuner",x=u(),ee=o("div"),ve=o("label"),ve.textContent="Threshold:",_e=u(),Z=o("select");for(let C=0;C<O.length;C+=1)O[C].c();fe=u(),le=o("div"),we=o("label"),we.textContent="Direction:",ie=u(),W=o("select"),se=o("option"),se.textContent="Normal",he=o("option"),he.textContent="180°",X=o("option"),X.textContent="Bi-Dir",je=u(),Q&&Q.c(),ye=u(),Le=o("div"),be=o("button"),be.innerHTML=`<span class="icon svelte-1bbmoku">↓</span>
|
|
Retract Elements`,l(a,"class","svelte-1bbmoku"),l(i,"class","status-dot svelte-1bbmoku"),B(i,"disconnected",!e[9]),l(n,"class","card-header svelte-1bbmoku"),l(w,"class","status-label svelte-1bbmoku"),l(d,"class","status-value freq svelte-1bbmoku"),l(c,"class","status-item svelte-1bbmoku"),l(F,"class","status-label svelte-1bbmoku"),l(P,"class","status-value band svelte-1bbmoku"),l(T,"class","status-item svelte-1bbmoku"),l(D,"class","status-label svelte-1bbmoku"),l(j,"class","status-value direction svelte-1bbmoku"),l(L,"class","status-item svelte-1bbmoku"),l(h,"class","status-grid svelte-1bbmoku"),l(K,"class","svelte-1bbmoku"),l(M,"type","checkbox"),l(M,"class","svelte-1bbmoku"),l(N,"class","toggle-label svelte-1bbmoku"),l(ve,"for","threshold-select"),l(ve,"class","svelte-1bbmoku"),l(Z,"id","threshold-select"),l(Z,"class","svelte-1bbmoku"),e[4]===void 0&&Lt(()=>e[19].call(Z)),l(ee,"class","threshold-group svelte-1bbmoku"),l(we,"for","dir-select"),l(we,"class","svelte-1bbmoku"),se.__value=0,wt(se,se.__value),he.__value=1,wt(he,he.__value),X.__value=2,wt(X,X.__value),l(W,"id","dir-select"),l(W,"class","svelte-1bbmoku"),e[5]===void 0&&Lt(()=>e[20].call(W)),l(le,"class","direction-group svelte-1bbmoku"),l(q,"class","auto-track-controls svelte-1bbmoku"),l(G,"class","control-section compact svelte-1bbmoku"),l(be,"class","btn-danger svelte-1bbmoku"),l(Le,"class","actions svelte-1bbmoku"),l(v,"class","metrics svelte-1bbmoku"),l(s,"class","card svelte-1bbmoku")},m(C,te){Me(C,s,te),t(s,n),t(n,a),t(n,r),t(n,i),t(s,b),t(s,v),t(v,h),t(h,c),t(c,w),t(c,f),t(c,d),t(d,y),t(d,k),t(h,m),t(h,T),t(T,F),t(T,p),t(T,P),t(P,R),t(h,E),t(h,L),t(L,D),t(L,ne),t(L,j),t(j,z),t(v,ae),t(v,G),t(G,K),t(G,ue),t(G,q),t(q,N),t(N,M),M.checked=e[3],t(N,V),t(N,S),t(q,x),t(q,ee),t(ee,ve),t(ee,_e),t(ee,Z);for(let $=0;$<O.length;$+=1)O[$]&&O[$].m(Z,null);jt(Z,e[4],!0),t(q,fe),t(q,le),t(le,we),t(le,ie),t(le,W),t(W,se),t(W,he),t(W,X),jt(W,e[5],!0),t(v,je),Q&&Q.m(v,null),t(v,ye),t(v,Le),t(Le,be),Pe||(Ce=[ke(M,"change",e[18]),ke(M,"change",e[13]),ke(Z,"change",e[19]),ke(Z,"change",e[13]),ke(W,"change",e[20]),ke(W,"change",e[12]),ke(be,"click",e[14])],Pe=!0)},p(C,te){if(te[0]&512&&B(i,"disconnected",!C[9]),te[0]&2&&g!==(g=(C[1]/1e3).toFixed(3)+"")&&A(y,g),te[0]&128&&A(R,C[7]),te[0]&4&&J!==(J=C[10][C[2]]+"")&&A(z,J),te[0]&8&&(M.checked=C[3]),te[0]&2048){Y=vt(C[11]);let $;for($=0;$<Y.length;$+=1){const He=rl(C,Y,$);O[$]?O[$].p(He,te):(O[$]=il(He),O[$].c(),O[$].m(Z,null))}for(;$<O.length;$+=1)O[$].d(1);O.length=Y.length}te[0]&2064&&jt(Z,C[4]),te[0]&32&&jt(W,C[5]),C[8]>0?Q?Q.p(C,te):(Q=cl(C),Q.c(),Q.m(v,ye)):Q&&(Q.d(1),Q=null)},i:Se,o:Se,d(C){C&&Te(s),It(O,C),Q&&Q.d(),Pe=!1,ot(Ce)}}}function ls(e,s,n){let a,r,i,b,v,h,c,w,f,{status:d}=s;const g=["6M","10M","12M","15M","17M","20M","30M","40M"];function y(j,J){return J>=0&&J<=7?g[J]:j>=7e3&&j<=7300?"40M":j>=10100&&j<=10150?"30M":j>=14e3&&j<=14350?"20M":j>=18068&&j<=18168?"17M":j>=21e3&&j<=21450?"15M":j>=24890&&j<=24990?"12M":j>=28e3&&j<=29700?"10M":j>=5e4&&j<=54e3?"6M":"Unknown"}const k=["Normal","180°","Bi-Dir"],m=[{value:25,label:"25 kHz"},{value:50,label:"50 kHz"},{value:100,label:"100 kHz"}];let T=!0,F=25,p=0;async function P(){if(r!==0)try{await Fe.ultrabeam.setFrequency(r,p),await Fe.ultrabeam.setDirection(p)}catch(j){console.log("Direction change sent (may show code 30 if busy):",j)}}async function R(){try{await Fe.ultrabeam.setAutoTrack(T,F)}catch(j){console.error("Failed to update auto-track:",j),alert("Failed to update auto-track settings")}}async function E(){if(confirm("Retract all antenna elements?"))try{await Fe.ultrabeam.retract()}catch(j){console.error("Failed to retract:",j),alert("Failed to retract")}}function L(){T=this.checked,n(3,T)}function D(){F=Qt(this),n(4,F),n(11,m)}function ne(){p=Qt(this),n(5,p),n(2,b),n(15,d)}return e.$$set=j=>{"status"in j&&n(15,d=j.status)},e.$$.update=()=>{e.$$.dirty[0]&32768&&n(9,a=(d==null?void 0:d.connected)||!1),e.$$.dirty[0]&32768&&n(1,r=(d==null?void 0:d.frequency)||0),e.$$.dirty[0]&32768&&n(17,i=(d==null?void 0:d.band)||0),e.$$.dirty[0]&32768&&n(2,b=(d==null?void 0:d.direction)||0),e.$$.dirty[0]&32768&&n(8,v=(d==null?void 0:d.motors_moving)||0),e.$$.dirty[0]&32768&&n(16,h=(d==null?void 0:d.progress_total)||0),e.$$.dirty[0]&32768&&n(0,c=(d==null?void 0:d.progress_current)||0),e.$$.dirty[0]&32768&&d!=null&&d.element_lengths,e.$$.dirty[0]&32768&&d&&`${d.firmware_major}${d.firmware_minor}`,e.$$.dirty[0]&131074&&n(7,w=y(r,i)),e.$$.dirty[0]&4&&n(5,p=b),e.$$.dirty[0]&131072,e.$$.dirty[0]&65537&&n(6,f=h>0?c/60*100:0)},[c,r,b,T,F,p,f,w,v,a,k,m,P,R,E,d,h,i,L,D,ne]}class ss extends yt{constructor(s){super(),_t(this,s,ls,ts,ft,{status:15},null,[-1,-1])}}function ns(e){var At,Ye,it,ct,dt,kt;let s,n,a,r,i,b,v,h,c,w,f=e[1]?"Connected":"Disconnected",d,g,y,k,m,T,F,p=e[5].sfi+"",P,R,E,L,D,ne=e[5].sunspots+"",j,J,z,ae,G,K=e[5].a_index+"",ue,q,N,M,V,S=e[5].k_index+"",x,ee,ve,_e,Z,fe=e[5].geomag+"",le,we,ie,W,se,he,X=e[4].wind_speed.toFixed(1)+"",je,ye,Le,be,Pe,Ce=e[4].wind_gust.toFixed(1)+"",Y,O,Q,C,te,$=e[4].temp.toFixed(1)+"",He,tt,Ge,Ie,ut,Ae=e[4].feels_like.toFixed(1)+"",Je,at,Ve,We,Be,Re=dl(e[2])+"",ze,Ze,lt,Ne=e[2].toLocaleDateString()+"",Qe,Ke,$e,De,Oe,Ee,qe,H,pe,st,rt,Xe,nt,pt,xe,Pt,Ue,me;return Ee=new Ll({props:{status:(At=e[0])==null?void 0:At.webswitch}}),H=new Gl({props:{status:(Ye=e[0])==null?void 0:Ye.power_genius}}),st=new Vl({props:{status:(it=e[0])==null?void 0:it.tuner_genius}}),nt=new Ql({props:{status:(ct=e[0])==null?void 0:ct.antenna_genius}}),xe=new ss({props:{status:(dt=e[0])==null?void 0:dt.ultrabeam}}),Ue=new es({props:{status:(kt=e[0])==null?void 0:kt.rotator_genius}}),{c(){s=o("div"),n=o("header"),a=o("div"),r=o("h1"),i=_(e[3]),b=_(" Shack"),v=u(),h=o("div"),c=o("span"),w=u(),d=_(f),g=u(),y=o("div"),k=o("div"),m=o("span"),T=_("SFI "),F=o("span"),P=_(p),R=u(),E=o("span"),L=_("Spots "),D=o("span"),j=_(ne),J=u(),z=o("span"),ae=_("A "),G=o("span"),ue=_(K),q=u(),N=o("span"),M=_("K "),V=o("span"),x=_(S),ee=u(),ve=o("span"),_e=_("G "),Z=o("span"),le=_(fe),we=u(),ie=o("div"),W=o("div"),se=o("span"),he=_("🌬️ "),je=_(X),ye=_("m/s"),Le=u(),be=o("span"),Pe=_("💨 "),Y=_(Ce),O=_("m/s"),Q=u(),C=o("span"),te=_("🌡️ "),He=_($),tt=_("°C"),Ge=u(),Ie=o("span"),ut=_("→ "),Je=_(Ae),at=_("°C"),Ve=u(),We=o("div"),Be=o("span"),ze=_(Re),Ze=u(),lt=o("span"),Qe=_(Ne),Ke=u(),$e=o("main"),De=o("div"),Oe=o("div"),Ft(Ee.$$.fragment),qe=u(),Ft(H.$$.fragment),pe=u(),Ft(st.$$.fragment),rt=u(),Xe=o("div"),Ft(nt.$$.fragment),pt=u(),Ft(xe.$$.fragment),Pt=u(),Ft(Ue.$$.fragment),l(r,"class","svelte-1hrhory"),l(c,"class","status-indicator"),B(c,"status-online",e[1]),B(c,"status-offline",!e[1]),l(h,"class","connection-status svelte-1hrhory"),l(a,"class","header-left svelte-1hrhory"),l(F,"class","value svelte-1hrhory"),l(m,"class","solar-item svelte-1hrhory"),l(D,"class","value svelte-1hrhory"),l(E,"class","solar-item svelte-1hrhory"),l(G,"class","value svelte-1hrhory"),l(z,"class","solar-item svelte-1hrhory"),l(V,"class","value svelte-1hrhory"),l(N,"class","solar-item svelte-1hrhory"),l(Z,"class","value svelte-1hrhory"),l(ve,"class","solar-item svelte-1hrhory"),l(k,"class","solar-info svelte-1hrhory"),l(y,"class","header-center svelte-1hrhory"),l(se,"title","Wind"),l(be,"title","Gust"),l(C,"title","Temperature"),l(Ie,"title","Feels like"),l(W,"class","weather-info svelte-1hrhory"),l(Be,"class","time svelte-1hrhory"),l(lt,"class","date svelte-1hrhory"),l(We,"class","clock svelte-1hrhory"),l(ie,"class","header-right svelte-1hrhory"),l(n,"class","svelte-1hrhory"),l(Oe,"class","row svelte-1hrhory"),l(Xe,"class","row svelte-1hrhory"),l(De,"class","dashboard-grid svelte-1hrhory"),l($e,"class","svelte-1hrhory"),l(s,"class","app svelte-1hrhory")},m(I,ce){Me(I,s,ce),t(s,n),t(n,a),t(a,r),t(r,i),t(r,b),t(a,v),t(a,h),t(h,c),t(h,w),t(h,d),t(n,g),t(n,y),t(y,k),t(k,m),t(m,T),t(m,F),t(F,P),t(k,R),t(k,E),t(E,L),t(E,D),t(D,j),t(k,J),t(k,z),t(z,ae),t(z,G),t(G,ue),t(k,q),t(k,N),t(N,M),t(N,V),t(V,x),t(k,ee),t(k,ve),t(ve,_e),t(ve,Z),t(Z,le),t(n,we),t(n,ie),t(ie,W),t(W,se),t(se,he),t(se,je),t(se,ye),t(W,Le),t(W,be),t(be,Pe),t(be,Y),t(be,O),t(W,Q),t(W,C),t(C,te),t(C,He),t(C,tt),t(W,Ge),t(W,Ie),t(Ie,ut),t(Ie,Je),t(Ie,at),t(ie,Ve),t(ie,We),t(We,Be),t(Be,ze),t(We,Ze),t(We,lt),t(lt,Qe),t(s,Ke),t(s,$e),t($e,De),t(De,Oe),bt(Ee,Oe,null),t(Oe,qe),bt(H,Oe,null),t(Oe,pe),bt(st,Oe,null),t(De,rt),t(De,Xe),bt(nt,Xe,null),t(Xe,pt),bt(xe,Xe,null),t(Xe,Pt),bt(Ue,Xe,null),me=!0},p(I,[ce]){var Ut,Jt,Xt,Yt,Vt,Kt;(!me||ce&8)&&A(i,I[3]),(!me||ce&2)&&B(c,"status-online",I[1]),(!me||ce&2)&&B(c,"status-offline",!I[1]),(!me||ce&2)&&f!==(f=I[1]?"Connected":"Disconnected")&&A(d,f),(!me||ce&32)&&p!==(p=I[5].sfi+"")&&A(P,p),(!me||ce&32)&&ne!==(ne=I[5].sunspots+"")&&A(j,ne),(!me||ce&32)&&K!==(K=I[5].a_index+"")&&A(ue,K),(!me||ce&32)&&S!==(S=I[5].k_index+"")&&A(x,S),(!me||ce&32)&&fe!==(fe=I[5].geomag+"")&&A(le,fe),(!me||ce&16)&&X!==(X=I[4].wind_speed.toFixed(1)+"")&&A(je,X),(!me||ce&16)&&Ce!==(Ce=I[4].wind_gust.toFixed(1)+"")&&A(Y,Ce),(!me||ce&16)&&$!==($=I[4].temp.toFixed(1)+"")&&A(He,$),(!me||ce&16)&&Ae!==(Ae=I[4].feels_like.toFixed(1)+"")&&A(Je,Ae),(!me||ce&4)&&Re!==(Re=dl(I[2])+"")&&A(ze,Re),(!me||ce&4)&&Ne!==(Ne=I[2].toLocaleDateString()+"")&&A(Qe,Ne);const mt={};ce&1&&(mt.status=(Ut=I[0])==null?void 0:Ut.webswitch),Ee.$set(mt);const et={};ce&1&&(et.status=(Jt=I[0])==null?void 0:Jt.power_genius),H.$set(et);const U={};ce&1&&(U.status=(Xt=I[0])==null?void 0:Xt.tuner_genius),st.$set(U);const oe={};ce&1&&(oe.status=(Yt=I[0])==null?void 0:Yt.antenna_genius),nt.$set(oe);const Wt={};ce&1&&(Wt.status=(Vt=I[0])==null?void 0:Vt.ultrabeam),xe.$set(Wt);const qt={};ce&1&&(qt.status=(Kt=I[0])==null?void 0:Kt.rotator_genius),Ue.$set(qt)},i(I){me||(ht(Ee.$$.fragment,I),ht(H.$$.fragment,I),ht(st.$$.fragment,I),ht(nt.$$.fragment,I),ht(xe.$$.fragment,I),ht(Ue.$$.fragment,I),me=!0)},o(I){Tt(Ee.$$.fragment,I),Tt(H.$$.fragment,I),Tt(st.$$.fragment,I),Tt(nt.$$.fragment,I),Tt(xe.$$.fragment,I),Tt(Ue.$$.fragment,I),me=!1},d(I){I&&Te(s),gt(Ee),gt(H),gt(st),gt(nt),gt(xe),gt(Ue)}}}function dl(e){return e.toTimeString().slice(0,8)}function os(e,s,n){let a,r,i=null,b=!1,v=new Date,h="F4BPO";const c=ml.subscribe(f=>{n(0,i=f)}),w=Ht.subscribe(f=>{n(1,b=f)});return _l(async()=>{el.connect();try{const d=await Fe.getConfig();d.callsign&&n(3,h=d.callsign)}catch(d){console.error("Failed to fetch config:",d)}const f=setInterval(()=>{n(2,v=new Date)},1e3);return()=>{clearInterval(f)}}),yl(()=>{el.disconnect(),c(),w()}),e.$$.update=()=>{e.$$.dirty&1&&n(5,a=(i==null?void 0:i.solar)||{sfi:0,sunspots:0,a_index:0,k_index:0,geomag:"Unknown"}),e.$$.dirty&1&&n(4,r=(i==null?void 0:i.weather)||{wind_speed:0,wind_gust:0,temp:0,feels_like:0})},[i,b,v,h,r,a]}class as extends yt{constructor(s){super(),_t(this,s,os,ns,ft,{})}}new as({target:document.getElementById("app")});
|