var Cl=Object.defineProperty;var Fl=(t,n,s)=>n in t?Cl(t,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[n]=s;var Ht=(t,n,s)=>Fl(t,typeof n!="symbol"?n+"":n,s);(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const g of r.addedNodes)g.tagName==="LINK"&&g.rel==="modulepreload"&&a(g)}).observe(document,{childList:!0,subtree:!0});function s(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(o){if(o.ep)return;o.ep=!0;const r=s(o);fetch(o.href,r)}})();function Re(){}function _l(t){return t()}function $t(){return Object.create(null)}function ot(t){t.forEach(_l)}function bl(t){return typeof t=="function"}function mt(t,n){return t!=t?n==n:t!==n||t&&typeof t=="object"||typeof t=="function"}function Tl(t){return Object.keys(t).length===0}function e(t,n){t.appendChild(n)}function je(t,n,s){t.insertBefore(n,s||null)}function we(t){t.parentNode&&t.parentNode.removeChild(t)}function It(t,n){for(let s=0;st.removeEventListener(n,s,a)}function l(t,n,s){s==null?t.removeAttribute(n):t.getAttribute(n)!==s&&t.setAttribute(n,s)}function Ot(t){return t===""?null:+t}function Sl(t){return Array.from(t.childNodes)}function P(t,n){n=""+n,t.data!==n&&(t.data=n)}function Qe(t,n){t.value=n??""}function de(t,n,s,a){s==null?t.style.removeProperty(n):t.style.setProperty(n,s,"")}function Pt(t,n,s){for(let a=0;at.indexOf(a)===-1?n.push(a):s.push(a)),s.forEach(a=>a()),Mt=n}const Dt=new Set;let Ll;function gt(t,n){t&&t.i&&(Dt.delete(t),t.i(n))}function Ct(t,n,s,a){if(t&&t.o){if(Dt.has(t))return;Dt.add(t),Ll.c.push(()=>{Dt.delete(t)}),t.o(n)}}function dt(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function Ft(t){t&&t.c()}function _t(t,n,s){const{fragment:a,after_update:o}=t.$$;a&&a.m(n,s),qt(()=>{const r=t.$$.on_mount.map(_l).filter(bl);t.$$.on_destroy?t.$$.on_destroy.push(...r):ot(r),t.$$.on_mount=[]}),o.forEach(qt)}function bt(t,n){const s=t.$$;s.fragment!==null&&(El(s.after_update),ot(s.on_destroy),s.fragment&&s.fragment.d(n),s.on_destroy=s.fragment=null,s.ctx=[])}function ql(t,n){t.$$.dirty[0]===-1&&(St.push(t),Al(),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<{const k=p.length?p[0]:b;return c.ctx&&o(c.ctx[h],c.ctx[h]=k)&&(!c.skip_bound&&c.bound[h]&&c.bound[h](k),_&&ql(t,h)),b}):[],c.update(),_=!0,ot(c.before_update),c.fragment=a?a(c.ctx):!1,n.target){if(n.hydrate){const h=Sl(n.target);c.fragment&&c.fragment.l(h),h.forEach(we)}else c.fragment&&c.fragment.c();n.intro&>(t.$$.fragment),_t(t,n.target,n.anchor),jl()}Et(m)}class yt{constructor(){Ht(this,"$$");Ht(this,"$$set")}$destroy(){bt(this,1),this.$destroy=Re}$on(n,s){if(!bl(s))return Re;const a=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return a.push(s),()=>{const o=a.indexOf(s);o!==-1&&a.splice(o,1)}}$set(n){this.$$set&&!Tl(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}}const Il="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Il);const Tt=[];function Rt(t,n=Re){let s;const a=new Set;function o(d){if(mt(t,d)&&(t=d,s)){const m=!Tt.length;for(const c of a)c[1](),Tt.push(c,t);if(m){for(let c=0;c{a.delete(c),a.size===0&&s&&(s(),s=null)}}return{set:o,update:r,subscribe:g}}const Bt=Rt(!1),kl=Rt(null),Dl=Rt(null);class Hl{constructor(){this.ws=null,this.reconnectTimeout=null,this.reconnectDelay=3e3}connect(){const s=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`;try{this.ws=new WebSocket(s),this.ws.onopen=()=>{console.log("WebSocket connected"),Bt.set(!0)},this.ws.onmessage=a=>{try{const o=JSON.parse(a.data);o.type==="update"&&(console.log("System status updated:",o.data),kl.set(o.data),Dl.set(new Date(o.timestamp)))}catch(o){console.error("Error parsing message:",o)}},this.ws.onerror=a=>{console.error("WebSocket error:",a)},this.ws.onclose=()=>{console.log("WebSocket disconnected"),Bt.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(n){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify(n))}disconnect(){this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.ws&&this.ws.close()}}const ll=new Hl,xl="/api";async function Fe(t,n={}){try{const s=await fetch(`${xl}${t}`,{...n,headers:{"Content-Type":"application/json",...n.headers}});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return await s.json()}catch(s){throw console.error("API request failed:",s),s}}const Ue={getStatus:()=>Fe("/status"),getConfig:()=>Fe("/config"),webswitch:{relayOn:t=>Fe(`/webswitch/relay/on?relay=${t}`,{method:"POST"}),relayOff:t=>Fe(`/webswitch/relay/off?relay=${t}`,{method:"POST"}),allOn:()=>Fe("/webswitch/all/on",{method:"POST"}),allOff:()=>Fe("/webswitch/all/off",{method:"POST"})},rotator:{move:(t,n)=>Fe("/rotator/move",{method:"POST",body:JSON.stringify({rotator:t,azimuth:n})}),cw:t=>Fe(`/rotator/cw?rotator=${t}`,{method:"POST"}),ccw:t=>Fe(`/rotator/ccw?rotator=${t}`,{method:"POST"}),stop:()=>Fe("/rotator/stop",{method:"POST"})},tuner:{setOperate:t=>Fe("/tuner/operate",{method:"POST",body:JSON.stringify({value:t})}),setBypass:t=>Fe("/tuner/bypass",{method:"POST",body:JSON.stringify({value:t})}),autoTune:()=>Fe("/tuner/autotune",{method:"POST"})},antenna:{selectAntenna:(t,n)=>Fe("/antenna/select",{method:"POST",body:JSON.stringify({port:t,antenna:n})}),reboot:()=>Fe("/antenna/reboot",{method:"POST"})},power:{setFanMode:t=>Fe("/power/fanmode",{method:"POST",body:JSON.stringify({mode:t})}),setOperate:t=>Fe("/power/operate",{method:"POST",body:JSON.stringify({value:t})})},rotator:{setHeading:t=>Fe("/rotator/heading",{method:"POST",body:JSON.stringify({heading:t})}),rotateCW:()=>Fe("/rotator/cw",{method:"POST"}),rotateCCW:()=>Fe("/rotator/ccw",{method:"POST"}),stop:()=>Fe("/rotator/stop",{method:"POST"})},ultrabeam:{setFrequency:(t,n)=>Fe("/ultrabeam/frequency",{method:"POST",body:JSON.stringify({frequency:t,direction:n})}),retract:()=>Fe("/ultrabeam/retract",{method:"POST"})}};function nl(t,n,s){var g;const a=t.slice();a[10]=n[s];const o=a[1].find(function(...m){return t[9](a[10],...m)});a[11]=o;const r=((g=a[11])==null?void 0:g.state)||!1;return a[12]=r,a}function sl(t){let n,s,a,o,r,g,d=t[12]?"ON":"OFF",m,c,_,h,b,p,k,j;function f(){return t[8](t[10])}return{c(){n=i("div"),s=i("div"),a=i("div"),o=i("div"),o.textContent=`${t[3][t[10]]}`,r=u(),g=i("div"),m=w(d),c=u(),_=i("button"),h=i("div"),h.innerHTML='
',p=u(),l(o,"class","relay-name svelte-z2csmj"),l(g,"class","relay-status svelte-z2csmj"),l(a,"class","relay-details svelte-z2csmj"),l(s,"class","relay-info svelte-z2csmj"),l(h,"class","toggle-track svelte-z2csmj"),l(_,"class","relay-toggle svelte-z2csmj"),_.disabled=b=t[0][t[10]],E(_,"active",t[12]),E(_,"loading",t[0][t[10]]),l(n,"class","relay-card svelte-z2csmj"),E(n,"relay-on",t[12])},m(C,y){je(C,n,y),e(n,s),e(s,a),e(a,o),e(a,r),e(a,g),e(g,m),e(n,c),e(n,_),e(_,h),e(n,p),k||(j=ye(_,"click",f),k=!0)},p(C,y){t=C,y&2&&d!==(d=t[12]?"ON":"OFF")&&P(m,d),y&1&&b!==(b=t[0][t[10]])&&(_.disabled=b),y&2&&E(_,"active",t[12]),y&1&&E(_,"loading",t[0][t[10]]),y&2&&E(n,"relay-on",t[12])},d(C){C&&we(n),k=!1,j()}}}function zl(t){let n,s,a,o,r,g,d,m,c,_,h,b,p,k,j,f=dt([1,2,3,4,5]),C=[];for(let y=0;y<5;y+=1)C[y]=sl(nl(t,f,y));return{c(){n=i("div"),s=i("div"),a=i("h2"),a.textContent="WebSwitch",o=u(),r=i("span"),g=u(),d=i("div"),m=i("div");for(let y=0;y<5;y+=1)C[y].c();c=u(),_=i("div"),h=i("button"),h.innerHTML=` ALL ON`,b=u(),p=i("button"),p.innerHTML=` ALL OFF`,l(a,"class","svelte-z2csmj"),l(r,"class","status-dot svelte-z2csmj"),E(r,"disconnected",!t[2]),l(s,"class","card-header svelte-z2csmj"),l(m,"class","relays svelte-z2csmj"),l(h,"class","control-btn all-on svelte-z2csmj"),l(p,"class","control-btn all-off svelte-z2csmj"),l(_,"class","controls svelte-z2csmj"),l(d,"class","metrics svelte-z2csmj"),l(n,"class","card svelte-z2csmj")},m(y,v){je(y,n,v),e(n,s),e(s,a),e(s,o),e(s,r),e(n,g),e(n,d),e(d,m);for(let F=0;F<5;F+=1)C[F]&&C[F].m(m,null);e(d,c),e(d,_),e(_,h),e(_,b),e(_,p),k||(j=[ye(h,"click",t[5]),ye(p,"click",t[6])],k=!0)},p(y,[v]){if(v&4&&E(r,"disconnected",!y[2]),v&27){f=dt([1,2,3,4,5]);let F;for(F=0;F<5;F+=1){const T=nl(y,f,F);C[F]?C[F].p(T,v):(C[F]=sl(T),C[F].c(),C[F].m(m,null))}for(;F<5;F+=1)C[F].d(1)}},i:Re,o:Re,d(y){y&&we(n),It(C,y),k=!1,ot(j)}}}function Bl(t,n,s){let a,o,{status:r}=n;const g={1:"Power Supply",2:"PGXL",3:"TGXL",4:"Flex Radio Start",5:"Reserve"};let d={};async function m(p){const k=a.find(f=>f.number===p),j=(k==null?void 0:k.state)||!1;s(0,d[p]=!0,d);try{j?await Ue.webswitch.relayOff(p):await Ue.webswitch.relayOn(p)}catch(f){console.error("Failed to toggle relay:",f),alert("Failed to control relay")}finally{s(0,d[p]=!1,d)}}async function c(){try{await Ue.webswitch.allOn()}catch(p){console.error("Failed to turn all on:",p)}}async function _(){try{await Ue.webswitch.allOff()}catch(p){console.error("Failed to turn all off:",p)}}const h=p=>m(p),b=(p,k)=>k.number===p;return t.$$set=p=>{"status"in p&&s(7,r=p.status)},t.$$.update=()=>{t.$$.dirty&128&&s(1,a=(r==null?void 0:r.relays)||[]),t.$$.dirty&128&&s(2,o=(r==null?void 0:r.connected)||!1)},[d,a,o,g,m,c,_,r,h,b]}class Rl extends yt{constructor(n){super(),wt(this,n,Bl,zl,mt,{status:7})}}function Wl(t){let n;return{c(){n=i("span"),n.textContent="High!",l(n,"class","status-text danger svelte-utvwj6")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function Gl(t){let n;return{c(){n=i("span"),n.textContent="Caution",l(n,"class","status-text warning svelte-utvwj6")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function Ul(t){let n;return{c(){n=i("span"),n.textContent="Good",l(n,"class","status-text ok svelte-utvwj6")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function Jl(t){let n;return{c(){n=i("span"),n.textContent="Excellent",l(n,"class","status-text good svelte-utvwj6")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function Xl(t){let n,s,a,o,r,g,d,m,c,_,h,b,p,k,j=t[1].toFixed(0)+"",f,C,y,v,F,T,S,L,R,X,ae,Y,N,I,te=t[2].toFixed(2)+"",Q,Te,K,D,M,ee,O,x,ke,ge=t[3].toFixed(1)+"",Ae,oe,xe,ue,re,Ne,G,Z,Ie,z,Ce=t[12].toFixed(1)+"",ve,Ee,De,Se,He,_e,fe,Ye,le,$,B,ne,U,Me=t[15].toFixed(0)+"",We,Ke,Oe,Je,et,Ze,ze=t[14].toFixed(1)+"",Le,Be,Ge,pe,Xe,V,me=t[13].toFixed(1)+"",A,ce,W,qe,Ve,$e,H,be,rt,ut,nt,ct,ht,st,At,it,tt,Pe,lt,vt,ft,pt,jt,Nt;function q(J,ie){return J[2]<1.5?Jl:J[2]<2?Ul:J[2]<3?Gl:Wl}let se=q(t),at=se(t);return{c(){n=i("div"),s=i("div"),a=i("h2"),a.textContent="Power Genius XL",o=u(),r=i("div"),g=i("button"),d=w(t[7]),m=u(),c=i("span"),_=u(),h=i("div"),b=i("div"),p=i("div"),k=i("div"),f=w(j),C=i("span"),C.textContent="W",y=u(),v=i("div"),v.textContent="Forward Power",F=u(),T=i("div"),S=i("div"),L=i("div"),R=u(),X=i("div"),X.innerHTML="0 1000 2000",ae=u(),Y=i("div"),N=i("div"),I=i("div"),Q=w(te),Te=u(),K=i("div"),K.textContent="SWR",D=u(),M=i("div"),at.c(),ee=u(),O=i("div"),x=i("div"),ke=i("div"),Ae=w(ge),oe=w("°"),xe=u(),ue=i("div"),ue.textContent="PA Temp",re=u(),Ne=i("div"),G=i("div"),Z=u(),Ie=i("div"),z=i("div"),ve=w(Ce),Ee=w("°"),De=u(),Se=i("div"),Se.textContent="HL Temp",He=u(),_e=i("div"),fe=i("div"),Ye=u(),le=i("div"),$=i("div"),B=i("div"),B.textContent="VAC",ne=u(),U=i("div"),We=w(Me),Ke=u(),Oe=i("div"),Je=i("div"),Je.textContent="VDD",et=u(),Ze=i("div"),Le=w(ze),Be=u(),Ge=i("div"),pe=i("div"),pe.textContent="ID Peak",Xe=u(),V=i("div"),A=w(me),ce=u(),W=i("div"),qe=i("div"),Ve=i("span"),Ve.textContent="Band A",$e=u(),H=i("span"),be=w(t[10]),rt=u(),ut=i("div"),nt=i("span"),nt.textContent="Band B",ct=u(),ht=i("span"),st=w(t[9]),At=u(),it=i("div"),tt=i("label"),tt.textContent="Fan Mode",Pe=u(),lt=i("select"),vt=i("option"),vt.textContent="Standard",ft=i("option"),ft.textContent="Contest",pt=i("option"),pt.textContent="Broadcast",l(a,"class","svelte-utvwj6"),l(g,"class","state-badge svelte-utvwj6"),E(g,"idle",t[0]==="IDLE"),E(g,"transmit",t[0].includes("TRANSMIT")),l(c,"class","status-dot svelte-utvwj6"),E(c,"disconnected",!t[8]),l(r,"class","header-right svelte-utvwj6"),l(s,"class","card-header svelte-utvwj6"),l(C,"class","unit svelte-utvwj6"),l(k,"class","power-value svelte-utvwj6"),l(v,"class","power-label svelte-utvwj6"),l(p,"class","power-main svelte-utvwj6"),l(L,"class","power-bar-glow svelte-utvwj6"),l(S,"class","power-bar-fill svelte-utvwj6"),de(S,"width",t[4]+"%"),l(X,"class","power-scale svelte-utvwj6"),l(T,"class","power-bar svelte-utvwj6"),l(b,"class","power-display svelte-utvwj6"),l(I,"class","swr-value svelte-utvwj6"),l(K,"class","swr-label svelte-utvwj6"),l(N,"class","swr-circle svelte-utvwj6"),de(N,"--swr-color",t[5]),l(M,"class","swr-status svelte-utvwj6"),l(Y,"class","swr-container svelte-utvwj6"),l(ke,"class","temp-value svelte-utvwj6"),de(ke,"color",t[6]),l(ue,"class","temp-label svelte-utvwj6"),l(G,"class","temp-mini-fill svelte-utvwj6"),de(G,"width",t[3]/80*100+"%"),de(G,"background",t[6]),l(Ne,"class","temp-mini-bar svelte-utvwj6"),l(x,"class","temp-item svelte-utvwj6"),l(z,"class","temp-value svelte-utvwj6"),de(z,"color",t[6]),l(Se,"class","temp-label svelte-utvwj6"),l(fe,"class","temp-mini-fill svelte-utvwj6"),de(fe,"width",t[12]/80*100+"%"),de(fe,"background",t[6]),l(_e,"class","temp-mini-bar svelte-utvwj6"),l(Ie,"class","temp-item svelte-utvwj6"),l(O,"class","temp-group svelte-utvwj6"),l(B,"class","param-label svelte-utvwj6"),l(U,"class","param-value svelte-utvwj6"),l($,"class","param-box svelte-utvwj6"),l(Je,"class","param-label svelte-utvwj6"),l(Ze,"class","param-value svelte-utvwj6"),l(Oe,"class","param-box svelte-utvwj6"),l(pe,"class","param-label svelte-utvwj6"),l(V,"class","param-value svelte-utvwj6"),l(Ge,"class","param-box svelte-utvwj6"),l(le,"class","params-grid svelte-utvwj6"),l(Ve,"class","band-label svelte-utvwj6"),l(H,"class","band-value svelte-utvwj6"),l(qe,"class","band-item svelte-utvwj6"),l(nt,"class","band-label svelte-utvwj6"),l(ht,"class","band-value svelte-utvwj6"),l(ut,"class","band-item svelte-utvwj6"),l(W,"class","band-display svelte-utvwj6"),l(tt,"class","control-label svelte-utvwj6"),vt.__value="STANDARD",Qe(vt,vt.__value),ft.__value="CONTEST",Qe(ft,ft.__value),pt.__value="BROADCAST",Qe(pt,pt.__value),l(lt,"class","svelte-utvwj6"),l(it,"class","fan-control svelte-utvwj6"),l(h,"class","metrics svelte-utvwj6"),l(n,"class","card svelte-utvwj6")},m(J,ie){je(J,n,ie),e(n,s),e(s,a),e(s,o),e(s,r),e(r,g),e(g,d),e(r,m),e(r,c),e(n,_),e(n,h),e(h,b),e(b,p),e(p,k),e(k,f),e(k,C),e(p,y),e(p,v),e(b,F),e(b,T),e(T,S),e(S,L),e(T,R),e(T,X),e(h,ae),e(h,Y),e(Y,N),e(N,I),e(I,Q),e(N,Te),e(N,K),e(Y,D),e(Y,M),at.m(M,null),e(h,ee),e(h,O),e(O,x),e(x,ke),e(ke,Ae),e(ke,oe),e(x,xe),e(x,ue),e(x,re),e(x,Ne),e(Ne,G),e(O,Z),e(O,Ie),e(Ie,z),e(z,ve),e(z,Ee),e(Ie,De),e(Ie,Se),e(Ie,He),e(Ie,_e),e(_e,fe),e(h,Ye),e(h,le),e(le,$),e($,B),e($,ne),e($,U),e(U,We),e(le,Ke),e(le,Oe),e(Oe,Je),e(Oe,et),e(Oe,Ze),e(Ze,Le),e(le,Be),e(le,Ge),e(Ge,pe),e(Ge,Xe),e(Ge,V),e(V,A),e(h,ce),e(h,W),e(W,qe),e(qe,Ve),e(qe,$e),e(qe,H),e(H,be),e(W,rt),e(W,ut),e(ut,nt),e(ut,ct),e(ut,ht),e(ht,st),e(h,At),e(h,it),e(it,tt),e(it,Pe),e(it,lt),e(lt,vt),e(lt,ft),e(lt,pt),Pt(lt,t[11]),jt||(Nt=[ye(g,"click",t[17]),ye(lt,"change",t[19])],jt=!0)},p(J,[ie]){ie&128&&P(d,J[7]),ie&1&&E(g,"idle",J[0]==="IDLE"),ie&1&&E(g,"transmit",J[0].includes("TRANSMIT")),ie&256&&E(c,"disconnected",!J[8]),ie&2&&j!==(j=J[1].toFixed(0)+"")&&P(f,j),ie&16&&de(S,"width",J[4]+"%"),ie&4&&te!==(te=J[2].toFixed(2)+"")&&P(Q,te),ie&32&&de(N,"--swr-color",J[5]),se!==(se=q(J))&&(at.d(1),at=se(J),at&&(at.c(),at.m(M,null))),ie&8&&ge!==(ge=J[3].toFixed(1)+"")&&P(Ae,ge),ie&64&&de(ke,"color",J[6]),ie&8&&de(G,"width",J[3]/80*100+"%"),ie&64&&de(G,"background",J[6]),ie&4096&&Ce!==(Ce=J[12].toFixed(1)+"")&&P(ve,Ce),ie&64&&de(z,"color",J[6]),ie&4096&&de(fe,"width",J[12]/80*100+"%"),ie&64&&de(fe,"background",J[6]),ie&32768&&Me!==(Me=J[15].toFixed(0)+"")&&P(We,Me),ie&16384&&ze!==(ze=J[14].toFixed(1)+"")&&P(Le,ze),ie&8192&&me!==(me=J[13].toFixed(1)+"")&&P(A,me),ie&1024&&P(be,J[10]),ie&512&&P(st,J[9]),ie&2048&&Pt(lt,J[11])},i:Re,o:Re,d(J){J&&we(n),at.d(),jt=!1,ot(Nt)}}}function Vl(t,n,s){let a,o,r,g,d,m,c,_,h,b,p,k,j,f,C,y,{status:v}=n;async function F(L){try{await Ue.power.setFanMode(L)}catch(R){console.error("Failed to set fan mode:",R),alert("Failed to set fan mode")}}async function T(){try{const L=h==="IDLE"?0:1;await Ue.power.setOperate(L)}catch(L){console.error("Failed to toggle operate:",L),alert("Failed to toggle operate mode")}}const S=L=>F(L.target.value);return t.$$set=L=>{"status"in L&&s(18,v=L.status)},t.$$.update=()=>{t.$$.dirty&262144&&s(1,a=(v==null?void 0:v.power_forward)||0),t.$$.dirty&262144&&v!=null&&v.power_reflected,t.$$.dirty&262144&&s(2,o=(v==null?void 0:v.swr)||1),t.$$.dirty&262144&&s(15,r=(v==null?void 0:v.voltage)||0),t.$$.dirty&262144&&s(14,g=(v==null?void 0:v.vdd)||0),t.$$.dirty&262144&&v!=null&&v.current,t.$$.dirty&262144&&s(13,d=(v==null?void 0:v.peak_current)||0),t.$$.dirty&262144&&s(3,m=(v==null?void 0:v.temperature)||0),t.$$.dirty&262144&&s(12,c=(v==null?void 0:v.harmonic_load_temp)||0),t.$$.dirty&262144&&s(11,_=(v==null?void 0:v.fan_mode)||"CONTEST"),t.$$.dirty&262144&&s(0,h=(v==null?void 0:v.state)||"IDLE"),t.$$.dirty&262144&&s(10,b=(v==null?void 0:v.band_a)||"0"),t.$$.dirty&262144&&s(9,p=(v==null?void 0:v.band_b)||"0"),t.$$.dirty&262144&&s(8,k=(v==null?void 0:v.connected)||!1),t.$$.dirty&1&&s(7,j=h.replace("TRANSMIT_A","TRANSMIT").replace("TRANSMIT_B","TRANSMIT")),t.$$.dirty&8&&s(6,f=m<40?"#4caf50":m<60?"#ffc107":m<75?"#ff9800":"#f44336"),t.$$.dirty&4&&s(5,C=o<1.5?"#4caf50":o<2?"#ffc107":o<3?"#ff9800":"#f44336"),t.$$.dirty&2&&s(4,y=Math.min(a/2e3*100,100))},[h,a,o,m,y,C,f,j,k,p,b,_,c,d,g,r,F,T,v,S]}class Yl extends yt{constructor(n){super(),wt(this,n,Vl,Xl,mt,{status:18})}}function Kl(t){let n;return{c(){n=i("span"),n.textContent="High!",l(n,"class","status-text danger svelte-j97t2j")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function Zl(t){let n;return{c(){n=i("span"),n.textContent="Caution",l(n,"class","status-text warning svelte-j97t2j")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function $l(t){let n;return{c(){n=i("span"),n.textContent="Good",l(n,"class","status-text ok svelte-j97t2j")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function Ql(t){let n;return{c(){n=i("span"),n.textContent="Excellent",l(n,"class","status-text good svelte-j97t2j")},m(s,a){je(s,n,a)},d(s){s&&we(n)}}}function en(t){let n,s,a,o,r,g,d,m,c,_,h,b,p,k,j=t[0].toFixed(0)+"",f,C,y,v,F,T,S,L,R,X,ae,Y,N,I,te=t[1].toFixed(2)+"",Q,Te,K,D,M,ee,O,x,ke,ge,Ae,oe,xe,ue,re,Ne,G,Z,Ie,z,Ce,ve,Ee,De,Se,He,_e,fe,Ye,le,$=(t[11]/1e3).toFixed(3)+"",B,ne,U,Me,We,Ke,Oe,Je=(t[10]/1e3).toFixed(3)+"",et,Ze,ze,Le,Be,Ge=t[8]===1?"OPERATE":"STANDBY",pe,Xe,V,me,A,ce,W;function qe(H,be){return H[1]<1.5?Ql:H[1]<2?$l:H[1]<3?Zl:Kl}let Ve=qe(t),$e=Ve(t);return{c(){n=i("div"),s=i("div"),a=i("h2"),a.textContent="Tuner Genius XL",o=u(),r=i("div"),g=i("span"),d=w(t[12]),m=u(),c=i("span"),_=u(),h=i("div"),b=i("div"),p=i("div"),k=i("div"),f=w(j),C=i("span"),C.textContent="W",y=u(),v=i("div"),v.textContent="Forward Power",F=u(),T=i("div"),S=i("div"),L=i("div"),R=u(),X=i("div"),X.innerHTML="0 1000 2000",ae=u(),Y=i("div"),N=i("div"),I=i("div"),Q=w(te),Te=u(),K=i("div"),K.textContent="SWR",D=u(),M=i("div"),$e.c(),ee=u(),O=i("div"),x=i("div"),ke=i("div"),ge=w(t[7]),Ae=u(),oe=i("div"),oe.textContent="C1",xe=u(),ue=i("div"),re=i("div"),Ne=w(t[6]),G=u(),Z=i("div"),Z.textContent="L",Ie=u(),z=i("div"),Ce=i("div"),ve=w(t[5]),Ee=u(),De=i("div"),De.textContent="C2",Se=u(),He=i("div"),_e=i("div"),fe=i("div"),fe.textContent="Freq A",Ye=u(),le=i("div"),B=w($),ne=i("span"),ne.textContent="MHz",U=u(),Me=i("div"),We=i("div"),We.textContent="Freq B",Ke=u(),Oe=i("div"),et=w(Je),Ze=i("span"),Ze.textContent="MHz",ze=u(),Le=i("div"),Be=i("button"),pe=w(Ge),Xe=u(),V=i("button"),V.textContent="BYPASS",me=u(),A=i("button"),A.innerHTML=` AUTO TUNE`,l(a,"class","svelte-j97t2j"),l(g,"class","tuning-badge svelte-j97t2j"),E(g,"tuning",t[12]==="TUNING"),l(c,"class","status-dot svelte-j97t2j"),E(c,"disconnected",!t[4]),l(r,"class","header-right svelte-j97t2j"),l(s,"class","card-header svelte-j97t2j"),l(C,"class","unit svelte-j97t2j"),l(k,"class","power-value svelte-j97t2j"),l(v,"class","power-label svelte-j97t2j"),l(p,"class","power-main svelte-j97t2j"),l(L,"class","power-bar-glow svelte-j97t2j"),l(S,"class","power-bar-fill svelte-j97t2j"),de(S,"width",t[2]+"%"),l(X,"class","power-scale svelte-j97t2j"),l(T,"class","power-bar svelte-j97t2j"),l(b,"class","power-display svelte-j97t2j"),l(I,"class","swr-value svelte-j97t2j"),l(K,"class","swr-label svelte-j97t2j"),l(N,"class","swr-circle svelte-j97t2j"),de(N,"--swr-color",t[3]),l(M,"class","swr-status svelte-j97t2j"),l(Y,"class","swr-container svelte-j97t2j"),l(ke,"class","cap-value svelte-j97t2j"),l(oe,"class","cap-label svelte-j97t2j"),l(x,"class","cap-item svelte-j97t2j"),l(re,"class","cap-value svelte-j97t2j"),l(Z,"class","cap-label svelte-j97t2j"),l(ue,"class","cap-item svelte-j97t2j"),l(Ce,"class","cap-value svelte-j97t2j"),l(De,"class","cap-label svelte-j97t2j"),l(z,"class","cap-item svelte-j97t2j"),l(O,"class","capacitors svelte-j97t2j"),l(fe,"class","freq-label svelte-j97t2j"),l(ne,"class","freq-unit svelte-j97t2j"),l(le,"class","freq-value svelte-j97t2j"),l(_e,"class","freq-item svelte-j97t2j"),l(We,"class","freq-label svelte-j97t2j"),l(Ze,"class","freq-unit svelte-j97t2j"),l(Oe,"class","freq-value svelte-j97t2j"),l(Me,"class","freq-item svelte-j97t2j"),l(He,"class","freq-display svelte-j97t2j"),l(Be,"class","control-btn operate svelte-j97t2j"),E(Be,"active",t[8]===1),l(V,"class","control-btn bypass svelte-j97t2j"),E(V,"active",t[9]),l(Le,"class","controls svelte-j97t2j"),l(A,"class","tune-btn svelte-j97t2j"),l(h,"class","metrics svelte-j97t2j"),l(n,"class","card svelte-j97t2j")},m(H,be){je(H,n,be),e(n,s),e(s,a),e(s,o),e(s,r),e(r,g),e(g,d),e(r,m),e(r,c),e(n,_),e(n,h),e(h,b),e(b,p),e(p,k),e(k,f),e(k,C),e(p,y),e(p,v),e(b,F),e(b,T),e(T,S),e(S,L),e(T,R),e(T,X),e(h,ae),e(h,Y),e(Y,N),e(N,I),e(I,Q),e(N,Te),e(N,K),e(Y,D),e(Y,M),$e.m(M,null),e(h,ee),e(h,O),e(O,x),e(x,ke),e(ke,ge),e(x,Ae),e(x,oe),e(O,xe),e(O,ue),e(ue,re),e(re,Ne),e(ue,G),e(ue,Z),e(O,Ie),e(O,z),e(z,Ce),e(Ce,ve),e(z,Ee),e(z,De),e(h,Se),e(h,He),e(He,_e),e(_e,fe),e(_e,Ye),e(_e,le),e(le,B),e(le,ne),e(He,U),e(He,Me),e(Me,We),e(Me,Ke),e(Me,Oe),e(Oe,et),e(Oe,Ze),e(h,ze),e(h,Le),e(Le,Be),e(Be,pe),e(Le,Xe),e(Le,V),e(h,me),e(h,A),ce||(W=[ye(Be,"click",t[17]),ye(V,"click",t[18]),ye(A,"click",t[13])],ce=!0)},p(H,[be]){be&4096&&P(d,H[12]),be&4096&&E(g,"tuning",H[12]==="TUNING"),be&16&&E(c,"disconnected",!H[4]),be&1&&j!==(j=H[0].toFixed(0)+"")&&P(f,j),be&4&&de(S,"width",H[2]+"%"),be&2&&te!==(te=H[1].toFixed(2)+"")&&P(Q,te),be&8&&de(N,"--swr-color",H[3]),Ve!==(Ve=qe(H))&&($e.d(1),$e=Ve(H),$e&&($e.c(),$e.m(M,null))),be&128&&P(ge,H[7]),be&64&&P(Ne,H[6]),be&32&&P(ve,H[5]),be&2048&&$!==($=(H[11]/1e3).toFixed(3)+"")&&P(B,$),be&1024&&Je!==(Je=(H[10]/1e3).toFixed(3)+"")&&P(et,Je),be&256&&Ge!==(Ge=H[8]===1?"OPERATE":"STANDBY")&&P(pe,Ge),be&256&&E(Be,"active",H[8]===1),be&512&&E(V,"active",H[9])},i:Re,o:Re,d(H){H&&we(n),$e.d(),ce=!1,ot(W)}}}function tn(t,n,s){let a,o,r,g,d,m,c,_,h,b,p,k,j,{status:f}=n;async function C(){try{await Ue.tuner.autoTune()}catch(S){console.error("Failed to tune:",S),alert("Failed to start tuning")}}async function y(S){try{await Ue.tuner.setBypass(S)}catch(L){console.error("Failed to set bypass:",L),alert("Failed to set bypass")}}async function v(S){try{await Ue.tuner.setOperate(S)}catch(L){console.error("Failed to set operate:",L),alert("Failed to set operate")}}const F=()=>v(c===1?0:1),T=()=>y(m?0:1);return t.$$set=S=>{"status"in S&&s(16,f=S.status)},t.$$.update=()=>{t.$$.dirty&65536&&s(0,a=(f==null?void 0:f.power_forward)||0),t.$$.dirty&65536&&s(1,o=(f==null?void 0:f.swr)||1),t.$$.dirty&65536&&s(12,r=(f==null?void 0:f.tuning_status)||"READY"),t.$$.dirty&65536&&s(11,g=(f==null?void 0:f.frequency_a)||0),t.$$.dirty&65536&&s(10,d=(f==null?void 0:f.frequency_b)||0),t.$$.dirty&65536&&s(9,m=(f==null?void 0:f.bypass)||!1),t.$$.dirty&65536&&s(8,c=(f==null?void 0:f.state)||0),t.$$.dirty&65536&&s(7,_=(f==null?void 0:f.c1)||0),t.$$.dirty&65536&&s(6,h=(f==null?void 0:f.l)||0),t.$$.dirty&65536&&s(5,b=(f==null?void 0:f.c2)||0),t.$$.dirty&65536&&s(4,p=(f==null?void 0:f.connected)||!1),t.$$.dirty&2&&s(3,k=o<1.5?"#4caf50":o<2?"#ffc107":o<3?"#ff9800":"#f44336"),t.$$.dirty&1&&s(2,j=Math.min(a/2e3*100,100))},[a,o,j,k,p,b,h,_,c,m,d,g,r,C,y,v,f,F,T]}class ln extends yt{constructor(n){super(),wt(this,n,tn,en,mt,{status:16})}}function il(t,n,s){const a=t.slice();a[12]=n[s];const o=a[1].tx&&a[1].tx_ant===a[12].number;a[13]=o;const r=a[0].tx&&a[0].tx_ant===a[12].number;a[14]=r;const g=!a[1].tx&&a[1].rx_ant===a[12].number;a[15]=g;const d=!a[0].tx&&a[0].rx_ant===a[12].number;a[16]=d;const m=a[13]||a[14];a[17]=m;const c=a[15]||a[13];a[18]=c;const _=a[16]||a[14];return a[19]=_,a}function al(t){let n,s,a=t[12].name+"",o,r,g,d,m,c,_,h,b;function p(){return t[9](t[12])}function k(){return t[10](t[12])}return{c(){n=i("div"),s=i("div"),o=w(a),r=u(),g=i("div"),d=i("button"),d.textContent="A",m=u(),c=i("button"),c.textContent="B",_=u(),l(s,"class","antenna-name svelte-1r71rs8"),l(d,"class","port-btn svelte-1r71rs8"),E(d,"active",t[18]),l(c,"class","port-btn svelte-1r71rs8"),E(c,"active",t[19]),l(g,"class","antenna-ports svelte-1r71rs8"),l(n,"class","antenna-card svelte-1r71rs8"),E(n,"tx",t[17]),E(n,"active-a",t[18]),E(n,"active-b",t[19])},m(j,f){je(j,n,f),e(n,s),e(s,o),e(n,r),e(n,g),e(g,d),e(g,m),e(g,c),e(n,_),h||(b=[ye(d,"click",p),ye(c,"click",k)],h=!0)},p(j,f){t=j,f&16&&a!==(a=t[12].name+"")&&P(o,a),f&18&&E(d,"active",t[18]),f&17&&E(c,"active",t[19]),f&19&&E(n,"tx",t[17]),f&18&&E(n,"active-a",t[18]),f&17&&E(n,"active-b",t[19])},d(j){j&&we(n),h=!1,ot(b)}}}function nn(t){let n,s,a,o,r,g,d,m,c,_,h=(t[1].source||"FLEX")+"",b,p,k,j,f=(t[0].source||"FLEX")+"",C,y,v,F,T,S,L,R,X,ae,Y,N,I,te,Q,Te,K=dt(t[4]),D=[];for(let M=0;M🔄 REBOOT`,l(a,"class","svelte-1r71rs8"),l(r,"class","status-dot svelte-1r71rs8"),E(r,"disconnected",!t[5]),l(s,"class","card-header svelte-1r71rs8"),l(_,"class","source-label svelte-1r71rs8"),l(c,"class","source-item svelte-1r71rs8"),l(j,"class","source-label svelte-1r71rs8"),l(k,"class","source-item svelte-1r71rs8"),l(m,"class","sources svelte-1r71rs8"),l(T,"class","band-value svelte-1r71rs8"),l(F,"class","band-item svelte-1r71rs8"),l(X,"class","band-value svelte-1r71rs8"),l(R,"class","band-item svelte-1r71rs8"),l(v,"class","bands svelte-1r71rs8"),l(N,"class","antennas svelte-1r71rs8"),l(te,"class","reboot-btn svelte-1r71rs8"),l(d,"class","metrics svelte-1r71rs8"),l(n,"class","card svelte-1r71rs8")},m(M,ee){je(M,n,ee),e(n,s),e(s,a),e(s,o),e(s,r),e(n,g),e(n,d),e(d,m),e(m,c),e(c,_),e(_,b),e(m,p),e(m,k),e(k,j),e(j,C),e(d,y),e(d,v),e(v,F),e(F,T),e(T,S),e(v,L),e(v,R),e(R,X),e(X,ae),e(d,Y),e(d,N);for(let O=0;Oh(1,j.number),k=j=>h(2,j.number);return t.$$set=j=>{"status"in j&&s(8,c=j.status)},t.$$.update=()=>{t.$$.dirty&256&&s(5,a=(c==null?void 0:c.connected)||!1),t.$$.dirty&256&&s(1,o=(c==null?void 0:c.port_a)||{}),t.$$.dirty&256&&s(0,r=(c==null?void 0:c.port_b)||{}),t.$$.dirty&256&&s(4,g=(c==null?void 0:c.antennas)||[]),t.$$.dirty&2&&s(3,d=_[o.band]||"None"),t.$$.dirty&1&&s(2,m=_[r.band]||"None")},[r,o,m,d,g,a,h,b,c,p,k]}class an extends yt{constructor(n){super(),wt(this,n,sn,nn,mt,{status:8})}}function ol(t,n,s){const a=t.slice();a[9]=n[s];const o=150+125*Math.sin(a[9]*Math.PI/180);a[10]=o;const r=150-125*Math.cos(a[9]*Math.PI/180);return a[11]=r,a}function rl(t){let n,s,a;return{c(){n=he("text"),s=w(t[9]),a=w("°"),l(n,"x",t[10]),l(n,"y",t[11]),l(n,"text-anchor","middle"),l(n,"dominant-baseline","middle"),l(n,"class","degree-label svelte-1sgx2se")},m(o,r){je(o,n,r),e(n,s),e(n,a)},p:Re,d(o){o&&we(n)}}}function on(t){let n,s,a,o,r,g,d,m,c,_,h,b,p,k,j,f,C,y,v,F,T,S,L,R,X,ae,Y,N,I,te,Q,Te,K,D,M,ee,O,x,ke,ge,Ae,oe,xe,ue,re,Ne,G,Z,Ie,z,Ce,ve,Ee,De,Se,He,_e,fe,Ye,le=dt([45,135,225,315]),$=[];for(let B=0;B<4;B+=1)$[B]=rl(ol(t,le,B));return{c(){n=i("div"),s=i("div"),a=i("h2"),a.textContent="Rotator Genius",o=u(),r=i("span"),g=u(),d=i("div"),m=i("div"),c=i("div"),c.textContent="CURRENT HEADING",_=u(),h=i("div"),b=w(t[0]),p=w("°"),k=u(),j=i("div"),f=he("svg"),C=he("defs"),y=he("radialGradient"),v=he("stop"),F=he("stop"),T=he("circle"),S=he("circle"),L=he("circle"),R=he("circle"),X=he("g"),ae=he("g"),Y=he("path"),N=he("line"),I=he("line"),te=he("g"),Q=he("polygon"),K=he("circle"),D=he("animate"),M=he("circle"),ee=he("animate"),O=he("animate"),x=he("text"),ke=w("N"),ge=he("text"),Ae=w("E"),oe=he("text"),xe=w("S"),ue=he("text"),re=w("W");for(let B=0;B<4;B+=1)$[B].c();Ne=u(),G=i("div"),Z=i("input"),Ie=u(),z=i("button"),z.textContent="GO",Ce=u(),ve=i("div"),Ee=i("button"),Ee.innerHTML=` CCW`,De=u(),Se=i("button"),Se.textContent="STOP",He=u(),_e=i("button"),_e.innerHTML=` CW`,l(a,"class","svelte-1sgx2se"),l(r,"class","status-dot svelte-1sgx2se"),E(r,"disconnected",!t[1]),l(s,"class","card-header svelte-1sgx2se"),l(c,"class","heading-label svelte-1sgx2se"),l(h,"class","heading-value svelte-1sgx2se"),l(m,"class","heading-display svelte-1sgx2se"),l(v,"offset","0%"),de(v,"stop-color","rgba(79, 195, 247, 0.7)"),de(v,"stop-opacity","1"),l(F,"offset","100%"),de(F,"stop-color","rgba(79, 195, 247, 0)"),de(F,"stop-opacity","0"),l(y,"id","beamGradient"),l(T,"cx","150"),l(T,"cy","150"),l(T,"r","140"),l(T,"fill","rgba(30, 64, 175, 0.15)"),l(T,"stroke","rgba(79, 195, 247, 0.4)"),l(T,"stroke-width","2"),l(S,"cx","150"),l(S,"cy","150"),l(S,"r","105"),l(S,"fill","none"),l(S,"stroke","rgba(79,195,247,0.2)"),l(S,"stroke-width","1"),l(S,"stroke-dasharray","3,3"),l(L,"cx","150"),l(L,"cy","150"),l(L,"r","70"),l(L,"fill","none"),l(L,"stroke","rgba(79,195,247,0.2)"),l(L,"stroke-width","1"),l(L,"stroke-dasharray","3,3"),l(R,"cx","150"),l(R,"cy","150"),l(R,"r","35"),l(R,"fill","none"),l(R,"stroke","rgba(79,195,247,0.2)"),l(R,"stroke-width","1"),l(R,"stroke-dasharray","3,3"),l(Y,"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(Y,"fill","url(#beamGradient)"),l(Y,"opacity","0.85"),l(N,"x1","0"),l(N,"y1","0"),l(N,"x2",-Math.sin(15*Math.PI/180)*130),l(N,"y2",-Math.cos(15*Math.PI/180)*130),l(N,"stroke","#4fc3f7"),l(N,"stroke-width","2"),l(N,"opacity","0.9"),l(I,"x1","0"),l(I,"y1","0"),l(I,"x2",Math.sin(15*Math.PI/180)*130),l(I,"y2",-Math.cos(15*Math.PI/180)*130),l(I,"stroke","#4fc3f7"),l(I,"stroke-width","2"),l(I,"opacity","0.9"),l(Q,"points","0,-20 -8,5 0,0 8,5"),l(Q,"fill","#4fc3f7"),l(Q,"stroke","#0288d1"),l(Q,"stroke-width","2"),de(Q,"filter","drop-shadow(0 0 10px rgba(79, 195, 247, 1))"),l(te,"transform","translate(0, -110)"),l(ae,"transform",Te="rotate("+t[0]+")"),l(D,"attributeName","r"),l(D,"values","5;7;5"),l(D,"dur","2s"),l(D,"repeatCount","indefinite"),l(K,"cx","0"),l(K,"cy","0"),l(K,"r","5"),l(K,"fill","#f44336"),l(K,"stroke","#fff"),l(K,"stroke-width","2"),l(ee,"attributeName","r"),l(ee,"values","10;16;10"),l(ee,"dur","2s"),l(ee,"repeatCount","indefinite"),l(O,"attributeName","opacity"),l(O,"values","0.5;0;0.5"),l(O,"dur","2s"),l(O,"repeatCount","indefinite"),l(M,"cx","0"),l(M,"cy","0"),l(M,"r","10"),l(M,"fill","none"),l(M,"stroke","#f44336"),l(M,"stroke-width","1.5"),l(M,"opacity","0.5"),l(X,"transform","translate(150, 150)"),l(x,"x","150"),l(x,"y","20"),l(x,"text-anchor","middle"),l(x,"class","cardinal svelte-1sgx2se"),l(ge,"x","280"),l(ge,"y","155"),l(ge,"text-anchor","middle"),l(ge,"class","cardinal svelte-1sgx2se"),l(oe,"x","150"),l(oe,"y","285"),l(oe,"text-anchor","middle"),l(oe,"class","cardinal svelte-1sgx2se"),l(ue,"x","20"),l(ue,"y","155"),l(ue,"text-anchor","middle"),l(ue,"class","cardinal svelte-1sgx2se"),l(f,"viewBox","0 0 300 300"),l(f,"class","map-svg svelte-1sgx2se"),l(j,"class","map-container svelte-1sgx2se"),l(Z,"type","number"),l(Z,"min","0"),l(Z,"max","359"),l(Z,"placeholder","Enter heading"),l(Z,"class","heading-input svelte-1sgx2se"),l(z,"class","go-btn svelte-1sgx2se"),l(G,"class","goto-container svelte-1sgx2se"),l(Ee,"class","control-btn ccw svelte-1sgx2se"),l(Se,"class","control-btn stop svelte-1sgx2se"),l(_e,"class","control-btn cw svelte-1sgx2se"),l(ve,"class","controls svelte-1sgx2se"),l(d,"class","metrics svelte-1sgx2se"),l(n,"class","card svelte-1sgx2se")},m(B,ne){je(B,n,ne),e(n,s),e(s,a),e(s,o),e(s,r),e(n,g),e(n,d),e(d,m),e(m,c),e(m,_),e(m,h),e(h,b),e(h,p),e(d,k),e(d,j),e(j,f),e(f,C),e(C,y),e(y,v),e(y,F),e(f,T),e(f,S),e(f,L),e(f,R),e(f,X),e(X,ae),e(ae,Y),e(ae,N),e(ae,I),e(ae,te),e(te,Q),e(X,K),e(K,D),e(X,M),e(M,ee),e(M,O),e(f,x),e(x,ke),e(f,ge),e(ge,Ae),e(f,oe),e(oe,xe),e(f,ue),e(ue,re);for(let U=0;U<4;U+=1)$[U]&&$[U].m(f,null);e(d,Ne),e(d,G),e(G,Z),Qe(Z,t[2]),e(G,Ie),e(G,z),e(d,Ce),e(d,ve),e(ve,Ee),e(ve,De),e(ve,Se),e(ve,He),e(ve,_e),fe||(Ye=[ye(Z,"input",t[8]),ye(z,"click",t[3]),ye(Ee,"click",t[5]),ye(Se,"click",t[6]),ye(_e,"click",t[4])],fe=!0)},p(B,[ne]){if(ne&2&&E(r,"disconnected",!B[1]),ne&1&&P(b,B[0]),ne&1&&Te!==(Te="rotate("+B[0]+")")&&l(ae,"transform",Te),ne&0){le=dt([45,135,225,315]);let U;for(U=0;U<4;U+=1){const Me=ol(B,le,U);$[U]?$[U].p(Me,ne):($[U]=rl(Me),$[U].c(),$[U].m(f,null))}for(;U<4;U+=1)$[U].d(1)}ne&4&&Ot(Z.value)!==B[2]&&Qe(Z,B[2])},i:Re,o:Re,d(B){B&&we(n),It($,B),fe=!1,ot(Ye)}}}function rn(t,n,s){let{status:a}=n,o=0,r=!1,g=0;async function d(){if(g<0||g>359){alert("Heading must be between 0 and 359");return}try{const b=(g-10+360)%360;await Ue.rotator.setHeading(b)}catch(b){console.error("Failed to set heading:",b),alert("Failed to rotate")}}async function m(){try{await Ue.rotator.rotateCW()}catch(b){console.error("Failed to rotate CW:",b)}}async function c(){try{await Ue.rotator.rotateCCW()}catch(b){console.error("Failed to rotate CCW:",b)}}async function _(){try{await Ue.rotator.stop()}catch(b){console.error("Failed to stop:",b)}}function h(){g=Ot(this.value),s(2,g)}return t.$$set=b=>{"status"in b&&s(7,a=b.status)},t.$$.update=()=>{t.$$.dirty&128&&(a==null?void 0:a.heading)!==void 0&&(a==null?void 0:a.heading)!==null&&s(0,o=a.heading),t.$$.dirty&128&&s(1,r=(a==null?void 0:a.connected)||!1)},[o,r,g,d,m,c,_,a,h]}class cn extends yt{constructor(n){super(),wt(this,n,rn,on,mt,{status:7})}}function cl(t,n,s){const a=t.slice();return a[26]=n[s],a[28]=s,a}function dl(t,n,s){const a=t.slice();return a[26]=n[s],a[28]=s,a}function ul(t){let n,s,a,o,r,g,d,m,c,_=t[6].toFixed(0)+"",h,b;return{c(){n=i("div"),s=i("h3"),s.textContent="Motors Moving...",a=u(),o=i("div"),r=i("div"),g=u(),d=i("div"),m=w(t[0]),c=w(" / 60 ("),h=w(_),b=w("%)"),l(s,"class","svelte-1knxynm"),l(r,"class","progress-fill svelte-1knxynm"),de(r,"width",t[6]+"%"),l(o,"class","progress-bar svelte-1knxynm"),l(d,"class","progress-text svelte-1knxynm"),l(n,"class","progress-section svelte-1knxynm")},m(p,k){je(p,n,k),e(n,s),e(n,a),e(n,o),e(o,r),e(n,g),e(n,d),e(d,m),e(d,c),e(d,h),e(d,b)},p(p,k){k&64&&de(r,"width",p[6]+"%"),k&1&&P(m,p[0]),k&64&&_!==(_=p[6].toFixed(0)+"")&&P(h,_)},d(p){p&&we(n)}}}function vl(t){let n,s,a,o,r=t[26]+"",g,d,m;return{c(){n=i("div"),s=i("div"),s.textContent=`Element ${t[28]+1}`,a=u(),o=i("div"),g=w(r),d=w(" mm"),m=u(),l(s,"class","element-label svelte-1knxynm"),l(o,"class","element-value svelte-1knxynm"),l(n,"class","element-item svelte-1knxynm")},m(c,_){je(c,n,_),e(n,s),e(n,a),e(n,o),e(o,g),e(o,d),e(n,m)},p(c,_){_&128&&r!==(r=c[26]+"")&&P(g,r)},d(c){c&&we(n)}}}function fl(t){let n,s=t[26]>0&&vl(t);return{c(){s&&s.c(),n=wl()},m(a,o){s&&s.m(a,o),je(a,n,o)},p(a,o){a[26]>0?s?s.p(a,o):(s=vl(a),s.c(),s.m(n.parentNode,n)):s&&(s.d(1),s=null)},d(a){a&&we(n),s&&s.d(a)}}}function pl(t){let n,s,a,o,r,g,d,m,c,_,h,b,p,k,j,f,C=dt(t[7]),y=[];for(let v=0;v⚙️ Apply Adjustment`,p=u(),k=i("p"),k.textContent="⚠️ Calibration changes are saved after 12 seconds. Do not turn off during this time.",l(a,"for","element-select"),l(a,"class","svelte-1knxynm"),l(r,"id","element-select"),l(r,"class","svelte-1knxynm"),t[4]===void 0&&qt(()=>t[24].call(r)),l(s,"class","input-group svelte-1knxynm"),l(m,"for","adjustment"),l(m,"class","svelte-1knxynm"),l(_,"id","adjustment"),l(_,"type","number"),l(_,"step","1"),l(_,"placeholder","±10"),l(_,"class","svelte-1knxynm"),l(d,"class","input-group svelte-1knxynm"),l(b,"class","btn-caution svelte-1knxynm"),l(k,"class","warning-text svelte-1knxynm"),l(n,"class","calibration-controls svelte-1knxynm")},m(v,F){je(v,n,F),e(n,s),e(s,a),e(s,o),e(s,r);for(let T=0;T0&&ml(t);return{c(){s&&s.c(),n=wl()},m(a,o){s&&s.m(a,o),je(a,n,o)},p(a,o){a[26]>0?s?s.p(a,o):(s=ml(a),s.c(),s.m(n.parentNode,n)):s&&(s.d(1),s=null)},d(a){a&&we(n),s&&s.d(a)}}}function dn(t){let n,s,a,o,r,g,d,m,c,_,h,b,p=(t[12]/1e3).toFixed(3)+"",k,j,f,C,y,v,F,T=(t[14][t[11]]||"Unknown")+"",S,L,R,X,ae,Y,N=t[15][t[10]]+"",I,te,Q,Te,K,D,M,ee,O,x,ke,ge,Ae,oe,xe,ue,re,Ne,G,Z,Ie,z,Ce,ve,Ee,De,Se,He,_e,fe,Ye,le,$,B,ne,U,Me,We,Ke,Oe=t[3]?"Hide":"Show",Je,et,Ze,ze,Le,Be,Ge,pe=t[9]>0&&ul(t),Xe=dt(t[7]),V=[];for(let A=0;A📡 Set Frequency`,He=u(),pe&&pe.c(),_e=u(),fe=i("div"),Ye=i("h3"),Ye.textContent="Element Lengths (mm)",le=u(),$=i("div");for(let A=0;A↓ Retract Elements`,l(a,"class","svelte-1knxynm"),l(r,"class","status-dot svelte-1knxynm"),E(r,"disconnected",!t[13]),l(s,"class","card-header svelte-1knxynm"),l(_,"class","status-label svelte-1knxynm"),l(b,"class","status-value freq svelte-1knxynm"),l(c,"class","status-item svelte-1knxynm"),l(y,"class","status-label svelte-1knxynm"),l(F,"class","status-value band svelte-1knxynm"),l(C,"class","status-item svelte-1knxynm"),l(X,"class","status-label svelte-1knxynm"),l(Y,"class","status-value direction svelte-1knxynm"),l(R,"class","status-item svelte-1knxynm"),l(Te,"class","status-label svelte-1knxynm"),l(D,"class","status-value fw svelte-1knxynm"),l(Q,"class","status-item svelte-1knxynm"),l(m,"class","status-grid svelte-1knxynm"),l(ke,"class","svelte-1knxynm"),l(xe,"for","target-freq"),l(xe,"class","svelte-1knxynm"),l(re,"id","target-freq"),l(re,"type","number"),l(re,"min","1800"),l(re,"max","30000"),l(re,"step","1"),l(re,"placeholder","e.g. 14200"),l(re,"class","svelte-1knxynm"),l(oe,"class","input-group svelte-1knxynm"),l(Z,"for","target-dir"),l(Z,"class","svelte-1knxynm"),Ce.__value=0,Qe(Ce,Ce.__value),ve.__value=1,Qe(ve,ve.__value),Ee.__value=2,Qe(Ee,Ee.__value),l(z,"id","target-dir"),l(z,"class","svelte-1knxynm"),t[2]===void 0&&qt(()=>t[22].call(z)),l(G,"class","input-group svelte-1knxynm"),l(Se,"class","btn-primary svelte-1knxynm"),l(Ae,"class","freq-control svelte-1knxynm"),l(x,"class","control-section svelte-1knxynm"),l(Ye,"class","svelte-1knxynm"),l($,"class","elements-grid svelte-1knxynm"),l(fe,"class","elements-section svelte-1knxynm"),l(Me,"class","svelte-1knxynm"),l(Ke,"class","btn-toggle svelte-1knxynm"),E(Ke,"active",t[3]),l(U,"class","section-header svelte-1knxynm"),l(ne,"class","calibration-section svelte-1knxynm"),l(Le,"class","btn-danger svelte-1knxynm"),l(ze,"class","actions svelte-1knxynm"),l(d,"class","metrics svelte-1knxynm"),l(n,"class","card svelte-1knxynm")},m(A,ce){je(A,n,ce),e(n,s),e(s,a),e(s,o),e(s,r),e(n,g),e(n,d),e(d,m),e(m,c),e(c,_),e(c,h),e(c,b),e(b,k),e(b,j),e(m,f),e(m,C),e(C,y),e(C,v),e(C,F),e(F,S),e(m,L),e(m,R),e(R,X),e(R,ae),e(R,Y),e(Y,I),e(m,te),e(m,Q),e(Q,Te),e(Q,K),e(Q,D),e(D,M),e(D,ee),e(d,O),e(d,x),e(x,ke),e(x,ge),e(x,Ae),e(Ae,oe),e(oe,xe),e(oe,ue),e(oe,re),Qe(re,t[1]),e(Ae,Ne),e(Ae,G),e(G,Z),e(G,Ie),e(G,z),e(z,Ce),e(z,ve),e(z,Ee),Pt(z,t[2],!0),e(Ae,De),e(Ae,Se),e(d,He),pe&&pe.m(d,null),e(d,_e),e(d,fe),e(fe,Ye),e(fe,le),e(fe,$);for(let W=0;W0?pe?pe.p(A,ce):(pe=ul(A),pe.c(),pe.m(d,_e)):pe&&(pe.d(1),pe=null),ce&128){Xe=dt(A[7]);let W;for(W=0;W3e4){alert("Frequency must be between 1.8 MHz and 30 MHz");return}try{await Ue.ultrabeam.setFrequency(f,C)}catch(I){console.error("Failed to set frequency:",I),alert("Failed to set frequency")}}async function S(){if(confirm("Retract all antenna elements?"))try{await Ue.ultrabeam.retract()}catch(I){console.error("Failed to retract:",I),alert("Failed to retract")}}async function L(){try{const I=_[v]+F;alert(`Would adjust element ${v} by ${F}mm to ${I}mm`),s(5,F=0)}catch(I){console.error("Failed to adjust element:",I),alert("Failed to adjust element")}}function R(){f=Ot(this.value),s(1,f)}function X(){C=Qt(this),s(2,C)}const ae=()=>s(3,y=!y);function Y(){v=Qt(this),s(4,v)}function N(){F=Ot(this.value),s(5,F)}return t.$$set=I=>{"status"in I&&s(19,p=I.status)},t.$$.update=()=>{t.$$.dirty&524288&&s(13,a=(p==null?void 0:p.connected)||!1),t.$$.dirty&524288&&s(12,o=(p==null?void 0:p.frequency)||0),t.$$.dirty&524288&&s(11,r=(p==null?void 0:p.band)||0),t.$$.dirty&524288&&s(10,g=(p==null?void 0:p.direction)||0),t.$$.dirty&524288&&s(9,d=(p==null?void 0:p.motors_moving)||0),t.$$.dirty&524288&&s(20,m=(p==null?void 0:p.progress_total)||0),t.$$.dirty&524288&&s(0,c=(p==null?void 0:p.progress_current)||0),t.$$.dirty&524288&&s(7,_=(p==null?void 0:p.element_lengths)||[]),t.$$.dirty&524288&&s(8,h=p?`${p.firmware_major}.${p.firmware_minor}`:"0.0"),t.$$.dirty&1048577&&s(6,b=m>0?c/60*100:0)},[c,f,C,y,v,F,b,_,h,d,g,r,o,a,k,j,T,S,L,p,m,R,X,ae,Y,N]}class vn extends yt{constructor(n){super(),wt(this,n,un,dn,mt,{status:19})}}function fn(t){var lt,vt,ft,pt,jt,Nt;let n,s,a,o,r,g,d,m,c,_,h=t[1]?"Connected":"Disconnected",b,p,k,j,f,C,y,v=t[5].sfi+"",F,T,S,L,R,X=t[5].sunspots+"",ae,Y,N,I,te,Q=t[5].a_index+"",Te,K,D,M,ee,O=t[5].k_index+"",x,ke,ge,Ae,oe,xe=t[5].geomag+"",ue,re,Ne,G,Z,Ie,z=t[4].wind_speed.toFixed(1)+"",Ce,ve,Ee,De,Se,He=t[4].wind_gust.toFixed(1)+"",_e,fe,Ye,le,$,B=t[4].temp.toFixed(1)+"",ne,U,Me,We,Ke,Oe=t[4].feels_like.toFixed(1)+"",Je,et,Ze,ze,Le,Be=gl(t[2])+"",Ge,pe,Xe,V=t[2].toLocaleDateString()+"",me,A,ce,W,qe,Ve,$e,H,be,rt,ut,nt,ct,ht,st,At,it,tt,Pe;return Ve=new Rl({props:{status:(lt=t[0])==null?void 0:lt.webswitch}}),H=new Yl({props:{status:(vt=t[0])==null?void 0:vt.power_genius}}),rt=new ln({props:{status:(ft=t[0])==null?void 0:ft.tuner_genius}}),ct=new an({props:{status:(pt=t[0])==null?void 0:pt.antenna_genius}}),st=new cn({props:{status:(jt=t[0])==null?void 0:jt.rotator_genius}}),tt=new vn({props:{status:(Nt=t[0])==null?void 0:Nt.ultrabeam}}),{c(){n=i("div"),s=i("header"),a=i("div"),o=i("h1"),r=w(t[3]),g=w(" Shack"),d=u(),m=i("div"),c=i("span"),_=u(),b=w(h),p=u(),k=i("div"),j=i("div"),f=i("span"),C=w("SFI "),y=i("span"),F=w(v),T=u(),S=i("span"),L=w("Spots "),R=i("span"),ae=w(X),Y=u(),N=i("span"),I=w("A "),te=i("span"),Te=w(Q),K=u(),D=i("span"),M=w("K "),ee=i("span"),x=w(O),ke=u(),ge=i("span"),Ae=w("G "),oe=i("span"),ue=w(xe),re=u(),Ne=i("div"),G=i("div"),Z=i("span"),Ie=w("🌬️ "),Ce=w(z),ve=w("m/s"),Ee=u(),De=i("span"),Se=w("💨 "),_e=w(He),fe=w("m/s"),Ye=u(),le=i("span"),$=w("🌡️ "),ne=w(B),U=w("°C"),Me=u(),We=i("span"),Ke=w("→ "),Je=w(Oe),et=w("°C"),Ze=u(),ze=i("div"),Le=i("span"),Ge=w(Be),pe=u(),Xe=i("span"),me=w(V),A=u(),ce=i("main"),W=i("div"),qe=i("div"),Ft(Ve.$$.fragment),$e=u(),Ft(H.$$.fragment),be=u(),Ft(rt.$$.fragment),ut=u(),nt=i("div"),Ft(ct.$$.fragment),ht=u(),Ft(st.$$.fragment),At=u(),it=i("div"),Ft(tt.$$.fragment),l(o,"class","svelte-1hrhory"),l(c,"class","status-indicator"),E(c,"status-online",t[1]),E(c,"status-offline",!t[1]),l(m,"class","connection-status svelte-1hrhory"),l(a,"class","header-left svelte-1hrhory"),l(y,"class","value svelte-1hrhory"),l(f,"class","solar-item svelte-1hrhory"),l(R,"class","value svelte-1hrhory"),l(S,"class","solar-item svelte-1hrhory"),l(te,"class","value svelte-1hrhory"),l(N,"class","solar-item svelte-1hrhory"),l(ee,"class","value svelte-1hrhory"),l(D,"class","solar-item svelte-1hrhory"),l(oe,"class","value svelte-1hrhory"),l(ge,"class","solar-item svelte-1hrhory"),l(j,"class","solar-info svelte-1hrhory"),l(k,"class","header-center svelte-1hrhory"),l(Z,"title","Wind"),l(De,"title","Gust"),l(le,"title","Temperature"),l(We,"title","Feels like"),l(G,"class","weather-info svelte-1hrhory"),l(Le,"class","time svelte-1hrhory"),l(Xe,"class","date svelte-1hrhory"),l(ze,"class","clock svelte-1hrhory"),l(Ne,"class","header-right svelte-1hrhory"),l(s,"class","svelte-1hrhory"),l(qe,"class","row svelte-1hrhory"),l(nt,"class","row svelte-1hrhory"),l(it,"class","row svelte-1hrhory"),l(W,"class","dashboard-grid svelte-1hrhory"),l(ce,"class","svelte-1hrhory"),l(n,"class","app svelte-1hrhory")},m(q,se){je(q,n,se),e(n,s),e(s,a),e(a,o),e(o,r),e(o,g),e(a,d),e(a,m),e(m,c),e(m,_),e(m,b),e(s,p),e(s,k),e(k,j),e(j,f),e(f,C),e(f,y),e(y,F),e(j,T),e(j,S),e(S,L),e(S,R),e(R,ae),e(j,Y),e(j,N),e(N,I),e(N,te),e(te,Te),e(j,K),e(j,D),e(D,M),e(D,ee),e(ee,x),e(j,ke),e(j,ge),e(ge,Ae),e(ge,oe),e(oe,ue),e(s,re),e(s,Ne),e(Ne,G),e(G,Z),e(Z,Ie),e(Z,Ce),e(Z,ve),e(G,Ee),e(G,De),e(De,Se),e(De,_e),e(De,fe),e(G,Ye),e(G,le),e(le,$),e(le,ne),e(le,U),e(G,Me),e(G,We),e(We,Ke),e(We,Je),e(We,et),e(Ne,Ze),e(Ne,ze),e(ze,Le),e(Le,Ge),e(ze,pe),e(ze,Xe),e(Xe,me),e(n,A),e(n,ce),e(ce,W),e(W,qe),_t(Ve,qe,null),e(qe,$e),_t(H,qe,null),e(qe,be),_t(rt,qe,null),e(W,ut),e(W,nt),_t(ct,nt,null),e(nt,ht),_t(st,nt,null),e(W,At),e(W,it),_t(tt,it,null),Pe=!0},p(q,[se]){var Jt,Xt,Vt,Yt,Kt,Zt;(!Pe||se&8)&&P(r,q[3]),(!Pe||se&2)&&E(c,"status-online",q[1]),(!Pe||se&2)&&E(c,"status-offline",!q[1]),(!Pe||se&2)&&h!==(h=q[1]?"Connected":"Disconnected")&&P(b,h),(!Pe||se&32)&&v!==(v=q[5].sfi+"")&&P(F,v),(!Pe||se&32)&&X!==(X=q[5].sunspots+"")&&P(ae,X),(!Pe||se&32)&&Q!==(Q=q[5].a_index+"")&&P(Te,Q),(!Pe||se&32)&&O!==(O=q[5].k_index+"")&&P(x,O),(!Pe||se&32)&&xe!==(xe=q[5].geomag+"")&&P(ue,xe),(!Pe||se&16)&&z!==(z=q[4].wind_speed.toFixed(1)+"")&&P(Ce,z),(!Pe||se&16)&&He!==(He=q[4].wind_gust.toFixed(1)+"")&&P(_e,He),(!Pe||se&16)&&B!==(B=q[4].temp.toFixed(1)+"")&&P(ne,B),(!Pe||se&16)&&Oe!==(Oe=q[4].feels_like.toFixed(1)+"")&&P(Je,Oe),(!Pe||se&4)&&Be!==(Be=gl(q[2])+"")&&P(Ge,Be),(!Pe||se&4)&&V!==(V=q[2].toLocaleDateString()+"")&&P(me,V);const at={};se&1&&(at.status=(Jt=q[0])==null?void 0:Jt.webswitch),Ve.$set(at);const J={};se&1&&(J.status=(Xt=q[0])==null?void 0:Xt.power_genius),H.$set(J);const ie={};se&1&&(ie.status=(Vt=q[0])==null?void 0:Vt.tuner_genius),rt.$set(ie);const Wt={};se&1&&(Wt.status=(Yt=q[0])==null?void 0:Yt.antenna_genius),ct.$set(Wt);const Gt={};se&1&&(Gt.status=(Kt=q[0])==null?void 0:Kt.rotator_genius),st.$set(Gt);const Ut={};se&1&&(Ut.status=(Zt=q[0])==null?void 0:Zt.ultrabeam),tt.$set(Ut)},i(q){Pe||(gt(Ve.$$.fragment,q),gt(H.$$.fragment,q),gt(rt.$$.fragment,q),gt(ct.$$.fragment,q),gt(st.$$.fragment,q),gt(tt.$$.fragment,q),Pe=!0)},o(q){Ct(Ve.$$.fragment,q),Ct(H.$$.fragment,q),Ct(rt.$$.fragment,q),Ct(ct.$$.fragment,q),Ct(st.$$.fragment,q),Ct(tt.$$.fragment,q),Pe=!1},d(q){q&&we(n),bt(Ve),bt(H),bt(rt),bt(ct),bt(st),bt(tt)}}}function gl(t){return t.toTimeString().slice(0,8)}function pn(t,n,s){let a,o,r=null,g=!1,d=new Date,m="F4BPO";const c=kl.subscribe(h=>{s(0,r=h)}),_=Bt.subscribe(h=>{s(1,g=h)});return Ml(async()=>{ll.connect();try{const b=await Ue.getConfig();b.callsign&&s(3,m=b.callsign)}catch(b){console.error("Failed to fetch config:",b)}const h=setInterval(()=>{s(2,d=new Date)},1e3);return()=>{clearInterval(h)}}),Ol(()=>{ll.disconnect(),c(),_()}),t.$$.update=()=>{t.$$.dirty&1&&s(5,a=(r==null?void 0:r.solar)||{sfi:0,sunspots:0,a_index:0,k_index:0,geomag:"Unknown"}),t.$$.dirty&1&&s(4,o=(r==null?void 0:r.weather)||{wind_speed:0,wind_gust:0,temp:0,feels_like:0})},[r,g,d,m,o,a]}class mn extends yt{constructor(n){super(),wt(this,n,pn,fn,mt,{})}}new mn({target:document.getElementById("app")});