Files
pyMC_Repeater/repeater/web/html/assets/system-eurEQN-G.js
T
2026-05-14 13:54:59 +01:00

1 line
4.3 KiB
JavaScript

import{Y as e,o as t}from"./runtime-core.esm-bundler-C5QBTNWE.js";import{n}from"./pinia-DP0dFoGY.js";import{n as r,t as i}from"./api-Djyhg6JK.js";import{t as a}from"./packets-B8qUuzga.js";var o=`pymc_config_cache`;function s(){try{let e=sessionStorage.getItem(o);return e?JSON.parse(e):null}catch{return null}}function c(e){if(e)try{sessionStorage.setItem(o,JSON.stringify(e))}catch{}}function l(){try{sessionStorage.removeItem(o)}catch{}}var u=n(`system`,()=>{let n=s(),o=e(n?{config:n}:null),u=e(!1),d=e(null),f=e(null),p=e(`forward`),m=e(!0),h=e(0),g=e(10),_=e(!1),v=t(()=>o.value?.config?.node_name??`Unknown`),y=t(()=>{let e=o.value?.public_key;return!e||e===`Unknown`?`Unknown`:e.length>=16?`${e.slice(0,8)} ... ${e.slice(-8)}`:`${e}`}),b=t(()=>o.value!==null),x=t(()=>o.value?.version??`Unknown`),S=t(()=>o.value?.core_version??`Unknown`),C=t(()=>o.value?.noise_floor_dbm??null),w=t(()=>g.value>0?Math.min(h.value/g.value*100,100):0),T=t(()=>p.value===`no_tx`?{text:`No TX`,title:`No repeat, no local TX; adverts skipped`}:p.value===`monitor`?{text:`Monitor Mode`,title:`Monitoring only - not forwarding packets`}:m.value?{text:`Active`,title:`Forwarding with duty cycle enforcement`}:{text:`No Limits`,title:`Forwarding without duty cycle enforcement`}),E=t(()=>({mode:p.value})),D=t(()=>m.value?{active:!0,warning:!1}:{active:!1,warning:!0}),O=e=>{_.value=e},k=null;async function A(e){return k===null?(k=(async()=>{try{u.value=!0,d.value=null;let t=new AbortController,n=15e3,i=window.setTimeout(()=>t.abort(),n),s=!1,l=()=>{s||(s=!0,e?.onFirstByte?.()),clearTimeout(i),i=window.setTimeout(()=>t.abort(),n)},p;try{p=await r.get(`/stats`,{signal:t.signal,onDownloadProgress:l,timeout:0})}finally{clearTimeout(i)}let m=p.data,h;if(m.success&&m.data)h=m.data;else if(m&&`version`in m)h=m;else throw Error(m.error||`Failed to fetch stats`);return o.value=h,f.value=new Date,j(h),c(h.config),a().systemStats=h,h}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching stats:`,e),e}finally{u.value=!1}})(),k.finally(()=>{k=null}),k):k}function j(e){if(e.config){let t=e.config.repeater?.mode;t===`forward`||t===`monitor`||t===`no_tx`?p.value=t:t!==void 0&&(p.value=`forward`);let n=e.config.duty_cycle;if(n){m.value=n.enforcement_enabled!==!1;let e=n.max_airtime_percent;typeof e==`number`?g.value=e:e&&typeof e==`object`&&`parsedValue`in e&&(g.value=e.parsedValue||10)}}let t=e.utilization_percent;typeof t==`number`?h.value=t:t&&typeof t==`object`&&`parsedValue`in t&&(h.value=t.parsedValue||0)}async function M(e){try{let t=await i.post(`/set_mode`,{mode:e});if(t.success)return p.value=e,!0;throw Error(t.error||`Failed to set mode`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error setting mode:`,e),e}}async function N(e){try{let t=await i.post(`/set_duty_cycle`,{enabled:e});if(t.success)return m.value=e,!0;throw Error(t.error||`Failed to set duty cycle`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error setting duty cycle:`,e),e}}async function P(){try{let e=await i.post(`/send_advert`,{},{timeout:1e4});if(e.success)return!0;throw Error(e.error||`Failed to send advert`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error sending advert:`,e),e}}async function F(){return await N(!m.value)}function I(e){o.value?(e.uptime_seconds!==void 0&&(o.value.uptime_seconds=e.uptime_seconds),e.noise_floor_dbm!==void 0&&(o.value.noise_floor_dbm=e.noise_floor_dbm)):o.value=e,f.value=new Date,j(e)}async function L(e=5e3,t=!1){t||await A();let n=null;return t||(n=setInterval(async()=>{try{await A()}catch(e){console.error(`Auto-refresh error:`,e)}},e)),()=>{n&&clearInterval(n)}}function R(){o.value=null,d.value=null,f.value=null,u.value=!1,p.value=`forward`,m.value=!0,h.value=0,g.value=10,l()}return{stats:o,isLoading:u,error:d,lastUpdated:f,currentMode:p,dutyCycleEnabled:m,dutyCycleUtilization:h,dutyCycleMax:g,cadCalibrationRunning:_,nodeName:v,pubKey:y,hasStats:b,version:x,coreVersion:S,noiseFloorDbm:C,dutyCyclePercentage:w,statusBadge:T,modeButtonState:E,dutyCycleButtonState:D,fetchStats:A,setMode:M,setDutyCycle:N,sendAdvert:P,toggleDutyCycle:F,startAutoRefresh:L,updateRealtimeStats:I,reset:R,setCadCalibrationRunning:O}});export{u as t};