mirror of
https://github.com/pyMC-dev/pyMC_Repeater.git
synced 2026-11-03 11:52:22 +01:00
feat: UI update packet table
This commit is contained in:
1 parent
aa59c313e4
commit
c7157d280b
51 files changed
+48
-45
No files matched your search
+1
-1
@@ -1 +1 @@
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,f as o,gt as s,h as ee,ht as c,l,m as te,o as u,p as d,r as ne,s as f,u as p,w as re}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as ie,o as m,r as ae}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{l as oe,t as se}from"./api-B-2vYkoY.js";import{t as ce}from"./system-uA3cZx_m.js";import{d as h,r as le}from"./index-DoCDF--l.js";var ue={class:`h-[calc(100vh-5rem)] overflow-hidden p-4 flex flex-col gap-4`},de={key:0,class:`glass-card shrink-0 rounded-[15px] p-4 border border-accent-red/opacity-medium bg-accent-red/opacity-light space-y-3`},fe={class:`text-base font-semibold text-accent-red`},pe={class:`text-sm text-content-secondary dark:text-content-muted`},me={class:`flex gap-3`},he={class:`glass-card shrink-0 rounded-[15px] p-4 space-y-3`},ge={class:`flex flex-wrap items-center justify-between gap-3`},_e={class:`inline-flex rounded-lg border border-stroke-subtle/30 overflow-hidden`},ve=[`disabled`],ye=[`disabled`],be={class:`text-xs text-content-muted`},xe={class:`flex gap-4`},Se=[`disabled`],Ce=[`disabled`],we=[`disabled`],Te={class:`glass-card shrink-0 rounded-[15px] p-4 space-y-3`},Ee={class:`text-content-primary`},De={class:`space-y-2`},Oe={class:`w-full bg-white/opacity-light rounded-full h-2`},ke={class:`text-content-secondary dark:text-content-muted text-sm`},Ae={key:0,class:`px-4 py-3 bg-primary/opacity-light border border-primary/opacity-medium rounded-lg text-sm text-content-primary`},je={class:`grid shrink-0 grid-cols-2 md:grid-cols-4 lg:grid-cols-8 gap-3`},Me={class:`glass-card rounded-[15px] p-3 text-center`},Ne={class:`text-2xl font-bold text-primary`},Pe={class:`glass-card rounded-[15px] p-3 text-center`},Fe={class:`text-2xl font-bold text-primary`},Ie={class:`glass-card rounded-[15px] p-4 text-center`},Le={class:`text-2xl font-bold text-primary`},Re={class:`glass-card rounded-[15px] p-4 text-center`},ze={class:`text-2xl font-bold text-accent-green`},Be={class:`glass-card rounded-[15px] p-4 text-center`},Ve={class:`text-2xl font-bold text-primary`},He={class:`glass-card rounded-[15px] p-4 text-center`},Ue={class:`text-2xl font-bold text-primary`},We={class:`glass-card rounded-[15px] p-4 text-center`},Ge={class:`text-2xl font-bold text-accent-red`},Ke={class:`glass-card rounded-[15px] p-4 text-center`},qe={class:`text-2xl font-bold text-primary`},Je={class:`min-h-0 flex-1 grid lg:grid-cols-2 gap-4 overflow-hidden`},Ye={class:`glass-card rounded-[15px] p-4 space-y-3 overflow-auto`},Xe={key:0,class:`text-sm text-content-primary`},Ze={key:0,class:`ml-2 inline-flex items-center rounded-full border border-orange-400/40 bg-orange-400/10 px-2 py-0.5 text-xs text-orange-400`},Qe={key:1,class:`text-sm text-content-muted`},$e={key:2,class:`text-sm text-content-secondary dark:text-content-muted`},et={class:`space-y-2 text-sm text-content-secondary dark:text-content-muted list-disc list-inside`},tt=[`disabled`],nt={key:4,class:`text-xs text-accent-red`},rt={class:`glass-card rounded-[15px] p-4 space-y-3 overflow-auto`},it={key:0,class:`text-sm text-content-muted`},at={key:1,class:`max-h-64 overflow-auto`},ot={class:`w-full text-sm`},st={class:`py-2`},ct={class:`py-2`},lt={class:`py-2`},ut={class:`py-2`},dt={class:`py-2`},ft={class:`py-2`},pt={class:`py-2`},mt={class:`py-2`},ht={key:0,class:`inline-flex items-center rounded-full border border-orange-400/40 bg-orange-400/10 px-2 py-0.5 text-xs text-orange-400`},gt={class:`glass-card shrink-0 rounded-[15px] p-4 space-y-3`},_t={class:`flex items-center justify-between gap-3`},vt={class:`text-xs text-content-secondary dark:text-content-muted break-words`},yt={class:`flex flex-wrap gap-2 text-xs text-content-secondary dark:text-content-muted`},bt={class:`px-2 py-1 rounded border border-stroke-subtle/30`},xt={class:`px-2 py-1 rounded border border-stroke-subtle/30`},St={class:`px-2 py-1 rounded border border-stroke-subtle/30`},Ct={key:0},wt={key:0,class:`text-sm text-content-muted`},Tt={key:1,class:`max-h-64 overflow-auto space-y-2`},Et={key:0,class:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`},Dt={class:`glass-card w-full max-w-2xl rounded-[15px] p-6 space-y-5`},Ot={class:`flex items-start justify-between gap-4`},kt={class:`grid grid-cols-2 md:grid-cols-5 gap-3 text-sm`},At={class:`space-y-1`},jt={class:`space-y-1`},Mt={class:`space-y-1`},Nt={class:`space-y-1`},Pt={class:`space-y-1`},Ft={class:`flex items-center gap-2 text-sm text-content-secondary dark:text-content-muted`},It={class:`space-y-3`},Lt={class:`flex items-center justify-between gap-3`},Rt={class:`text-sm text-content-primary font-medium`},zt={class:`h-4 w-full rounded-full overflow-hidden border border-stroke-subtle/30 bg-background-mute/opacity-light relative`},Bt={class:`space-y-2 text-sm`},Vt={class:`grid grid-cols-1 md:grid-cols-2 gap-2 text-content-secondary dark:text-content-muted`},Ht={class:`px-2 py-1 rounded border border-stroke-subtle/30`},Ut={class:`px-2 py-1 rounded border border-stroke-subtle/30`},WLine truncated
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,f as o,gt as s,h as ee,ht as c,l,m as te,o as u,p as d,r as ne,s as f,u as p,w as re}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as ie,o as m,r as ae}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{l as oe,t as se}from"./api-BgU2z9oO.js";import{t as ce}from"./system-BVs_Y0rK.js";import{d as h,r as le}from"./index-DXPlD6DJ.js";var ue={class:`h-[calc(100vh-5rem)] overflow-hidden p-4 flex flex-col gap-4`},de={key:0,class:`glass-card shrink-0 rounded-[15px] p-4 border border-accent-red/opacity-medium bg-accent-red/opacity-light space-y-3`},fe={class:`text-base font-semibold text-accent-red`},pe={class:`text-sm text-content-secondary dark:text-content-muted`},me={class:`flex gap-3`},he={class:`glass-card shrink-0 rounded-[15px] p-4 space-y-3`},ge={class:`flex flex-wrap items-center justify-between gap-3`},_e={class:`inline-flex rounded-lg border border-stroke-subtle/30 overflow-hidden`},ve=[`disabled`],ye=[`disabled`],be={class:`text-xs text-content-muted`},xe={class:`flex gap-4`},Se=[`disabled`],Ce=[`disabled`],we=[`disabled`],Te={class:`glass-card shrink-0 rounded-[15px] p-4 space-y-3`},Ee={class:`text-content-primary`},De={class:`space-y-2`},Oe={class:`w-full bg-white/opacity-light rounded-full h-2`},ke={class:`text-content-secondary dark:text-content-muted text-sm`},Ae={key:0,class:`px-4 py-3 bg-primary/opacity-light border border-primary/opacity-medium rounded-lg text-sm text-content-primary`},je={class:`grid shrink-0 grid-cols-2 md:grid-cols-4 lg:grid-cols-8 gap-3`},Me={class:`glass-card rounded-[15px] p-3 text-center`},Ne={class:`text-2xl font-bold text-primary`},Pe={class:`glass-card rounded-[15px] p-3 text-center`},Fe={class:`text-2xl font-bold text-primary`},Ie={class:`glass-card rounded-[15px] p-4 text-center`},Le={class:`text-2xl font-bold text-primary`},Re={class:`glass-card rounded-[15px] p-4 text-center`},ze={class:`text-2xl font-bold text-accent-green`},Be={class:`glass-card rounded-[15px] p-4 text-center`},Ve={class:`text-2xl font-bold text-primary`},He={class:`glass-card rounded-[15px] p-4 text-center`},Ue={class:`text-2xl font-bold text-primary`},We={class:`glass-card rounded-[15px] p-4 text-center`},Ge={class:`text-2xl font-bold text-accent-red`},Ke={class:`glass-card rounded-[15px] p-4 text-center`},qe={class:`text-2xl font-bold text-primary`},Je={class:`min-h-0 flex-1 grid lg:grid-cols-2 gap-4 overflow-hidden`},Ye={class:`glass-card rounded-[15px] p-4 space-y-3 overflow-auto`},Xe={key:0,class:`text-sm text-content-primary`},Ze={key:0,class:`ml-2 inline-flex items-center rounded-full border border-orange-400/40 bg-orange-400/10 px-2 py-0.5 text-xs text-orange-400`},Qe={key:1,class:`text-sm text-content-muted`},$e={key:2,class:`text-sm text-content-secondary dark:text-content-muted`},et={class:`space-y-2 text-sm text-content-secondary dark:text-content-muted list-disc list-inside`},tt=[`disabled`],nt={key:4,class:`text-xs text-accent-red`},rt={class:`glass-card rounded-[15px] p-4 space-y-3 overflow-auto`},it={key:0,class:`text-sm text-content-muted`},at={key:1,class:`max-h-64 overflow-auto`},ot={class:`w-full text-sm`},st={class:`py-2`},ct={class:`py-2`},lt={class:`py-2`},ut={class:`py-2`},dt={class:`py-2`},ft={class:`py-2`},pt={class:`py-2`},mt={class:`py-2`},ht={key:0,class:`inline-flex items-center rounded-full border border-orange-400/40 bg-orange-400/10 px-2 py-0.5 text-xs text-orange-400`},gt={class:`glass-card shrink-0 rounded-[15px] p-4 space-y-3`},_t={class:`flex items-center justify-between gap-3`},vt={class:`text-xs text-content-secondary dark:text-content-muted break-words`},yt={class:`flex flex-wrap gap-2 text-xs text-content-secondary dark:text-content-muted`},bt={class:`px-2 py-1 rounded border border-stroke-subtle/30`},xt={class:`px-2 py-1 rounded border border-stroke-subtle/30`},St={class:`px-2 py-1 rounded border border-stroke-subtle/30`},Ct={key:0},wt={key:0,class:`text-sm text-content-muted`},Tt={key:1,class:`max-h-64 overflow-auto space-y-2`},Et={key:0,class:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`},Dt={class:`glass-card w-full max-w-2xl rounded-[15px] p-6 space-y-5`},Ot={class:`flex items-start justify-between gap-4`},kt={class:`grid grid-cols-2 md:grid-cols-5 gap-3 text-sm`},At={class:`space-y-1`},jt={class:`space-y-1`},Mt={class:`space-y-1`},Nt={class:`space-y-1`},Pt={class:`space-y-1`},Ft={class:`flex items-center gap-2 text-sm text-content-secondary dark:text-content-muted`},It={class:`space-y-3`},Lt={class:`flex items-center justify-between gap-3`},Rt={class:`text-sm text-content-primary font-medium`},zt={class:`h-4 w-full rounded-full overflow-hidden border border-stroke-subtle/30 bg-background-mute/opacity-light relative`},Bt={class:`space-y-2 text-sm`},Vt={class:`grid grid-cols-1 md:grid-cols-2 gap-2 text-content-secondary dark:text-content-muted`},Ht={class:`px-2 py-1 rounded border border-stroke-subtle/30`},Ut={class:`px-2 py-1 rounded border border-stroke-subtle/30`},WLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{C as e,D as t,P as n,T as r,U as i,X as ee,_t as a,c as o,f as s,h as c,ht as l,i as u,j as d,l as f,m as p,o as m,p as h,r as g,s as _,u as v,y}from"./runtime-core.esm-bundler-CINEgm0a.js";import{i as b,l as x,o as S,r as C}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as w}from"./api-B-2vYkoY.js";import{t as T}from"./Spinner-D-jFxDsV.js";import{r as E}from"./index-DoCDF--l.js";import{t as D}from"./ConfirmDialog-CKP12S0V.js";import{t as O}from"./MessageDialog-DgBtqb-B.js";var k={role:`dialog`,"aria-describedby":`import-modal-description`,class:`bg-white dark:bg-surface-elevated backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-6 max-w-lg w-full max-h-[90vh] overflow-y-auto`},A={id:`import-modal-description`,class:`text-content-secondary dark:text-content-muted text-sm mb-4`},j={class:`mb-4`},M={class:`flex items-center gap-2 mb-2`},N={key:0,class:`text-content-muted text-xs mb-2`},P={key:1,class:`flex flex-wrap gap-3 ml-6`},F=[`value`],I={class:`text-content-primary text-sm capitalize`},L={class:`border-t border-stroke-subtle dark:border-white/opacity-light pt-4 mt-4 mb-4`},R={class:`flex flex-wrap gap-3 mb-2`},z=[`value`],B={class:`text-content-primary text-sm`},V={class:`flex flex-wrap items-center gap-2 mt-2`},H={class:`flex items-center gap-2`},te={key:1,class:`text-content-muted text-sm`},ne={class:`border-t border-stroke-subtle dark:border-white/opacity-light pt-4 mt-4 mb-4`},re={class:`flex flex-wrap items-center gap-2`},ie={key:0,role:`alert`,class:`mb-4 p-3 rounded-lg bg-accent-red/opacity-light dark:bg-accent-red/opacity-medium border border-accent-red/opacity-medium text-accent-red text-sm`},U={key:1,class:`text-content-muted text-sm mb-4`},ae={class:`flex justify-end gap-3`},W=[`disabled`],G=[`disabled`],K=c({name:`ImportRepeaterContactsModal`,__name:`ImportRepeaterContactsModal`,props:{isOpen:{type:Boolean},companionName:{}},emits:[`close`,`imported`],setup(e,{emit:s}){let c=[`companion`,`repeater`,`room_server`,`sensor`],l=[{label:`All time`,value:null},{label:`Last 24 hours`,value:24},{label:`Last 7 days`,value:168},{label:`Last 30 days`,value:720},{label:`Custom`,value:`custom`}].slice(0,4),p=e,T=s,E=i(!1),D=i(null),O=i(!0),K=i([]),q=i(null),J=i(``),Y=i(``),X=i(null),oe=i(null);function Z(){let e=q.value;if(e===null||e===`custom`){if(e===`custom`){let e=J.value;if(e===``||e===null)return;let t=Number(e);return Number.isInteger(t)&&t>=1?t:void 0}return}return e}function Q(){let e=Y.value;if(e===``||e===null)return;let t=Number(e);return Number.isInteger(t)&&t>=1?t:void 0}function se(){O.value=!0,K.value=[],q.value=null,J.value=``,Y.value=``,D.value=null}d(()=>p.isOpen,e=>{e&&(se(),y(()=>{oe.value?.focus()}))}),d(q,e=>{e===`custom`&&y(()=>{X.value?.focus()})});let ce=m(()=>{let e=O.value?`All types`:K.value.map(e=>e.replace(`_`,` `)).join(`, `),t,n=q.value;if(n===null)t=`all time`;else if(n===`custom`){let e=Z();t=e===void 0?`custom`:`last ${e} hours`}else t=n===24?`last 24 hours`:n===168?`last 7 days`:n===720?`last 30 days`:`all time`;let r=Q(),i=r===void 0?`no limit`:`max ${r} contacts`;return`Import: ${e}, ${t}, ${i}.`});function le(){if(q.value===`custom`){let e=Z();if(e===void 0||e<1)return`Custom recency must be at least 1 hour.`}let e=Q();if(Y.value!==``&&(e===void 0||e<1))return`Limit must be at least 1.`;if(!O.value&&K.value.length===0)return`Select at least one contact type or use All types.`;if(!O.value){let e=K.value.filter(e=>!c.includes(e));if(e.length>0)return`Invalid contact type: ${e.join(`, `)}`}return null}async function ue(){D.value=null;let e=le();if(e){D.value=e;return}let t={companion_name:p.companionName};!O.value&&K.value.length>0&&(t.contact_types=[...K.value]);let n=Z();n!==void 0&&(t.hours=n);let r=Q();r!==void 0&&(t.limit=r),E.value=!0;try{let e=await w.importRepeaterContacts(t);e.success&&e.data?(T(`imported`,e.data.imported),T(`close`)):D.value=e.error||`Import failed.`}catch(e){D.value=e instanceof Error?e.message:`Import failed.`}finally{E.value=!1}}function de(e){e.key===`Escape`&&T(`close`)}return(i,s)=>(r(),o(u,{to:`body`},[e.isOpen?(r(),v(`div`,{key:0,class:`modal-backdrop z-[350]!`,onClick:s[7]||=x(e=>T(`close`),[`self`]),onKeydown:de},[_(`div`,k,[s[18]||=_(`h2`,{class:`text-xl font-bold text-content-primary mb-4`},` Import repeater contacts `,-1),_(`p`,A,[s[8]||=h(` Seed `,-1),_(`strong`,null,a(e.companionName),1),s[9]||=h(` with contacts from the repeater's adverts. Results are ordered by most recent first. `,-1)]),_(`div`,j,[s[11]||=_(`label`,{class:`block text-content-secondary dark:text-content-primary/opacity-heavy text-sm mb-2`},` Contact types `,-1),_(`label`,M,[n(_(`input`,{ref_key:`firstFocusRef`,ref:oe,"onUpdate:modelValue":s[0]||=e=>O.value=e,type:`checkbox`,class:`rounded border-stroke-subtle dark:border-stroke/opacity-medium text-primary focus:ring-primary/opacity-heavy`},null,512),[[C,O.value]]),s[10]||=_(`span`,{class:`text-content-primary text-sm`},`All types`,-1)]),O.value?(r(),vLine truncated
|
||||
import{C as e,D as t,P as n,T as r,U as i,X as ee,_t as a,c as o,f as s,h as c,ht as l,i as u,j as d,l as f,m as p,o as m,p as h,r as g,s as _,u as v,y}from"./runtime-core.esm-bundler-CINEgm0a.js";import{i as b,l as x,o as S,r as C}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as w}from"./api-BgU2z9oO.js";import{t as T}from"./Spinner-D-jFxDsV.js";import{r as E}from"./index-DXPlD6DJ.js";import{t as D}from"./ConfirmDialog-CKP12S0V.js";import{t as O}from"./MessageDialog-DgBtqb-B.js";var k={role:`dialog`,"aria-describedby":`import-modal-description`,class:`bg-white dark:bg-surface-elevated backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-6 max-w-lg w-full max-h-[90vh] overflow-y-auto`},A={id:`import-modal-description`,class:`text-content-secondary dark:text-content-muted text-sm mb-4`},j={class:`mb-4`},M={class:`flex items-center gap-2 mb-2`},N={key:0,class:`text-content-muted text-xs mb-2`},P={key:1,class:`flex flex-wrap gap-3 ml-6`},F=[`value`],I={class:`text-content-primary text-sm capitalize`},L={class:`border-t border-stroke-subtle dark:border-white/opacity-light pt-4 mt-4 mb-4`},R={class:`flex flex-wrap gap-3 mb-2`},z=[`value`],B={class:`text-content-primary text-sm`},V={class:`flex flex-wrap items-center gap-2 mt-2`},H={class:`flex items-center gap-2`},te={key:1,class:`text-content-muted text-sm`},ne={class:`border-t border-stroke-subtle dark:border-white/opacity-light pt-4 mt-4 mb-4`},re={class:`flex flex-wrap items-center gap-2`},ie={key:0,role:`alert`,class:`mb-4 p-3 rounded-lg bg-accent-red/opacity-light dark:bg-accent-red/opacity-medium border border-accent-red/opacity-medium text-accent-red text-sm`},U={key:1,class:`text-content-muted text-sm mb-4`},ae={class:`flex justify-end gap-3`},W=[`disabled`],G=[`disabled`],K=c({name:`ImportRepeaterContactsModal`,__name:`ImportRepeaterContactsModal`,props:{isOpen:{type:Boolean},companionName:{}},emits:[`close`,`imported`],setup(e,{emit:s}){let c=[`companion`,`repeater`,`room_server`,`sensor`],l=[{label:`All time`,value:null},{label:`Last 24 hours`,value:24},{label:`Last 7 days`,value:168},{label:`Last 30 days`,value:720},{label:`Custom`,value:`custom`}].slice(0,4),p=e,T=s,E=i(!1),D=i(null),O=i(!0),K=i([]),q=i(null),J=i(``),Y=i(``),X=i(null),oe=i(null);function Z(){let e=q.value;if(e===null||e===`custom`){if(e===`custom`){let e=J.value;if(e===``||e===null)return;let t=Number(e);return Number.isInteger(t)&&t>=1?t:void 0}return}return e}function Q(){let e=Y.value;if(e===``||e===null)return;let t=Number(e);return Number.isInteger(t)&&t>=1?t:void 0}function se(){O.value=!0,K.value=[],q.value=null,J.value=``,Y.value=``,D.value=null}d(()=>p.isOpen,e=>{e&&(se(),y(()=>{oe.value?.focus()}))}),d(q,e=>{e===`custom`&&y(()=>{X.value?.focus()})});let ce=m(()=>{let e=O.value?`All types`:K.value.map(e=>e.replace(`_`,` `)).join(`, `),t,n=q.value;if(n===null)t=`all time`;else if(n===`custom`){let e=Z();t=e===void 0?`custom`:`last ${e} hours`}else t=n===24?`last 24 hours`:n===168?`last 7 days`:n===720?`last 30 days`:`all time`;let r=Q(),i=r===void 0?`no limit`:`max ${r} contacts`;return`Import: ${e}, ${t}, ${i}.`});function le(){if(q.value===`custom`){let e=Z();if(e===void 0||e<1)return`Custom recency must be at least 1 hour.`}let e=Q();if(Y.value!==``&&(e===void 0||e<1))return`Limit must be at least 1.`;if(!O.value&&K.value.length===0)return`Select at least one contact type or use All types.`;if(!O.value){let e=K.value.filter(e=>!c.includes(e));if(e.length>0)return`Invalid contact type: ${e.join(`, `)}`}return null}async function ue(){D.value=null;let e=le();if(e){D.value=e;return}let t={companion_name:p.companionName};!O.value&&K.value.length>0&&(t.contact_types=[...K.value]);let n=Z();n!==void 0&&(t.hours=n);let r=Q();r!==void 0&&(t.limit=r),E.value=!0;try{let e=await w.importRepeaterContacts(t);e.success&&e.data?(T(`imported`,e.data.imported),T(`close`)):D.value=e.error||`Import failed.`}catch(e){D.value=e instanceof Error?e.message:`Import failed.`}finally{E.value=!1}}function de(e){e.key===`Escape`&&T(`close`)}return(i,s)=>(r(),o(u,{to:`body`},[e.isOpen?(r(),v(`div`,{key:0,class:`modal-backdrop z-[350]!`,onClick:s[7]||=x(e=>T(`close`),[`self`]),onKeydown:de},[_(`div`,k,[s[18]||=_(`h2`,{class:`text-xl font-bold text-content-primary mb-4`},` Import repeater contacts `,-1),_(`p`,A,[s[8]||=h(` Seed `,-1),_(`strong`,null,a(e.companionName),1),s[9]||=h(` with contacts from the repeater's adverts. Results are ordered by most recent first. `,-1)]),_(`div`,j,[s[11]||=_(`label`,{class:`block text-content-secondary dark:text-content-primary/opacity-heavy text-sm mb-2`},` Contact types `,-1),_(`label`,M,[n(_(`input`,{ref_key:`firstFocusRef`,ref:oe,"onUpdate:modelValue":s[0]||=e=>O.value=e,type:`checkbox`,class:`rounded border-stroke-subtle dark:border-stroke/opacity-medium text-primary focus:ring-primary/opacity-heavy`},null,512),[[C,O.value]]),s[10]||=_(`span`,{class:`text-content-primary text-sm`},`All types`,-1)]),O.value?(r(),vLine truncated
|
||||
@@ -0,0 +1,2 @@
|
||||
import{C as e,D as t,M as n,N as r,P as i,T as a,U as o,V as s,X as c,_t as l,c as u,f as d,h as f,ht as p,i as m,j as h,k as g,l as _,m as v,o as y,p as b,r as x,s as S,u as C,w,x as T,y as E}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as D,c as O,i as k,l as A,o as j,r as M,t as N}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{g as P,h as F,m as I,p as L,t as R,v as z,y as B}from"./api-BgU2z9oO.js";import{t as ee}from"./system-BVs_Y0rK.js";import{c as V,d as H,i as U,n as W,t as G}from"./formatters-vw234I-c.js";import{r as K,t as q}from"./dataService-4qyr7nMC.js";import{n as te,t as ne}from"./TxPowerNoticeModal-C1zbTXJk.js";import{t as J}from"./Spinner-D-jFxDsV.js";import{c as re,d as Y,r as ie,s as ae}from"./index-DXPlD6DJ.js";import{t as X}from"./ConfirmDialog-CKP12S0V.js";import{t as oe}from"./LocationPicker-BY42-b1V.js";import{n as se,t as ce}from"./CopyLabel-CpHEW2NL.js";var Z={key:0,class:`modal-backdrop`},le={class:`modal-card max-w-md`},ue={class:`flex items-start gap-3 mb-4`},de={class:`mt-1 text-sm text-content-secondary dark:text-content-muted`},fe={class:`modal-actions`},pe=[`disabled`],me=[`disabled`],he=[`disabled`],ge=f({__name:`UnsavedChangesModal`,props:{show:{type:Boolean},isSaving:{type:Boolean},label:{}},emits:[`discard`,`save`,`cancel`],setup(e){return(t,n)=>(a(),u(m,{to:`body`},[v(N,{"enter-active-class":`transition-opacity duration-200`,"enter-from-class":`opacity-0`,"leave-active-class":`transition-opacity duration-200`,"leave-to-class":`opacity-0`},{default:r(()=>[e.show?(a(),C(`div`,Z,[S(`div`,le,[S(`div`,ue,[n[4]||=S(`div`,{class:`flex-shrink-0 w-10 h-10 rounded-full bg-accent-amber/opacity-light dark:bg-accent-amber/opacity-medium flex items-center justify-center`},[S(`svg`,{class:`w-5 h-5 text-accent-amber`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[S(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z`})])],-1),S(`div`,null,[n[3]||=S(`h3`,{class:`text-base font-semibold text-content-primary`},` Unsaved Changes `,-1),S(`p`,de,l(e.label?e.label:`Settings`)+` have not been saved. What would you like to do? `,1)])]),S(`div`,fe,[S(`button`,{onClick:n[0]||=e=>t.$emit(`cancel`),disabled:e.isSaving,class:`modal-btn-cancel`},` Keep Editing `,8,pe),S(`button`,{onClick:n[1]||=e=>t.$emit(`discard`),disabled:e.isSaving,class:`modal-btn-danger`},` Discard `,8,me),S(`button`,{onClick:n[2]||=e=>t.$emit(`save`),disabled:e.isSaving,class:`modal-btn-primary`},l(e.isSaving?`Saving…`:`Save Settings`),9,he)])])])):_(``,!0)]),_:1})]))}});function _e(e,t,n,r){let i=o(!1),a=o(null),s=o(null);L((t,n,r)=>{e.value?(i.value=!0,a.value=()=>r(),s.value=()=>r(!1)):r()});function c(t){e.value?(i.value=!0,a.value=t,s.value=null):t()}function l(){n(),i.value=!1,s.value=null,a.value&&=(a.value(),null)}async function u(){await r()&&(i.value=!1,s.value=null,a.value&&=(a.value(),null))}function d(){i.value=!1,s.value&&=(s.value(),null),a.value=null}return{showUnsavedModal:i,requestLeave:c,handleDiscard:l,handleSave:u,handleCancel:d}}function ve(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function ye(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n,r=String(e.id??e.radio_id??``).trim();r&&t.push({...e,id:r})}return t}function be(){let e=ee(),t=y(()=>{let t=e.stats;if(!t)return{};let n=ve(t.config);return{...t,...n}}),n=y(()=>{let n=t.value.radios;if(Array.isArray(n)&&n.length)return ye(n);let r=e.stats;return ye(r?.radios)}),r=y(()=>{let n=ve(t.value.fabric);if(Object.keys(n).length)return n;let r=e.stats;return ve(r?.fabric)}),i=y(()=>{let n=ve(t.value.radio_stack);if(Object.keys(n).length)return n;let r=e.stats;return ve(r?.radio_stack)}),a=y(()=>n.value.length>0),s=y(()=>{let e=r.value,t=e.default_radio||e.default_radio_id;return t?String(t):n.value.length?n.value[0].id:`radio0`}),c=o(``),l=y(()=>{if(!a.value)return``;let e=new Set(n.value.map(e=>e.id));return c.value&&e.has(c.value)?c.value:s.value});function u(e){c.value=e}function d(){if(!a.value){c.value=``;return}let e=new Set(n.value.map(e=>e.id));(!c.value||!e.has(c.value))&&(c.value=s.value)}let f=y(()=>{if(!a.value)return null;let e=l.value;return n.value.find(t=>t.id===e)??null});return{rootConfig:t,radios:n,fabric:r,radioStack:i,isMultiRadio:a,defaultRadioId:s,selectedRadioId:c,effectiveSelectedId:l,selectedEntry:f,activeRadioAirConfig:y(()=>f.value?ve(f.value.radio):ve(t.value.radio)),activeHardware:y(()=>{let e=f.value;return e?{radio_type:e.radio_type??t.value.radio_type,sx1262:ve(e.sx1262),ch341:ve(e.ch341),kiss:ve(e.kiss),pymc_usb:ve(e.pymc_usb),pymc_tcp:ve(e.pymc_tcp)}:{radio_type:t.value.radio_type,sx1262:ve(t.value.sx1262),ch341:ve(t.value.ch341),kiss:ve(t.value.kiss),pymc_usb:ve(t.value.pymc_usb),pymc_tcp:ve(t.value.pymc_tcp)}}),radioOptions:y(()=>n.value.map(e=>({id:e.id,label:e.id,radio_type:String(e.radio_type??`unknown`)Line truncated
|
||||
`):t==null?``:typeof t==`string`?t:typeof t==`number`||typeof t==`boolean`?String(t):JSON.stringify(t)}function ze(e){let t=e.value.trim();if(Ne(e.field)){let n=Le(t);if(e.op===`contains`){if(n.length!==1)throw Error(`Path Hashes with Contains expects one hash. Use Intersects for multiple hashes.`);return n[0]}return n}return Pe(e.field)?Fe(t):Ue(t,e.valueType)}function Be(e){return Ne(e.field)?e.op===`contains`?`Single hash, e.g. 0x42, 0x0042, or 0x000042`:`One hash per line or comma-separated; all must be the same size`:Pe(e.field)?`1-byte channel hash (0x11) or full channel secret key`:e.valueType===`boolean`?`true/false`:`value`}function Ve(e){return Ne(e.field)&&e.valueSource===`literal`}function He(e){return typeof e==`number`?`number`:typeof e==`boolean`?`boolean`:`string`}function Ue(e,t){if(t===`number`){let t=Number(e);if(!Number.isFinite(t))throw Error(`Invalid numeric value: ${e}`);return t}if(t===`boolean`){let t=e.trim().toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1;throw Error(`Invalid boolean value: ${e}. Use true or false.`)}return e}function We(e){return{id:e,field:`hop_count`,op:`greater_than`,valueType:`number`,valueSource:`literal`,value:`2`}}function Ge(e){return{id:e,name:`Rule ${e}`,enabled:!0,matchMode:`all`,conditions:[We(1)],action:`drop`}}function Ke(){return F.value.length?Math.max(...F.value.map(e=>Number(e.id)||0))+1:1}function qe(e){return e.conditions.length?Math.max(...e.conditions.map(e=>e.id))+1:1}function Je(e){let t=Ee(e.field);t.includes(e.op)||(e.op=t[0]);let n=De(e.field);n.includes(e.valueType)||(e.valueType=n[0]);let r=Oe(e.field);if(!r.length){e.valueSource=`literal`,e.groupKind=void 0,e.groupId=void 0;return}if(e.valueSource===`group`){(!e.groupKind||!r.includes(e.groupKind))&&(e.groupKind=r[0]),Pe(e.field)&&e.op!==`in`&&(e.op=`in`);let t=ke(e.groupKind);t.find(t=>t.id===e.groupId)||(e.groupId=t[0]?.id)}}function Ye(e,t){let n=e.if??{},r=`all`,i=[];Array.isArray(n.any)?(r=`any`,i=n.any):Array.isArray(n.all)?(r=`all`,i=n.all):`field`in n&&(i=[n]),i.length||(i=[{field:`hop_count`,op:`greater_than`,value:2}]);let a=i.map((e,t)=>{let n=String(e.field??`hop_count`),r=String(e.op??`equals`),i=Ee(n),a=i.includes(r)?r:i[0],o=e.value;if(typeof o==`string`&&o.startsWith(`@`)){let[e,r]=o.slice(1).split(`.`,2),i=e===`channel_hash_groups`?`channel_hashes`:e===`pubkey_groups`?`pubkeys`:void 0,s={id:t+1,field:n,op:a,valueType:`string`,valueSource:`group`,value:r||``,groupKind:i,groupId:r};return Je(s),s}let s=He(o),c={id:t+1,field:n,op:a,valueType:De(n).includes(s)?s:De(n)[0],valueSource:`literal`,value:Re(n,o)};return Je(c),c}),o=e.then??{},s=String(o.action??e.action??`allow`),c=te.some(e=>e.value===s)?s:`allow`;return{id:Number(e.id??t+1),name:String(e.name??`Rule ${t+1}`),enabled:!!(e.enabled??!0),matchMode:r,conditions:a,action:c}}function Xe(e,t){let n=e.conditions.map(t=>{let n;if(t.valueSource===`group`){if(!t.groupKind||!t.groupId)throw Error(`Condition ${t.id} in ${e.name} is missing group selection`);n=`@${t.groupKind===`channel_hashes`?`channel_hash_groups`:`pubkey_groups`}.${t.groupId}`}else n=ze(t);return{field:t.field,op:t.op,value:n}});return{id:Number(e.id)||t+1,name:e.name.trim()||`Rule ${t+1}`,enabled:!!e.enabled,if:{[e.matchMode]:n},then:{action:e.action}}}function Ze(){let e=F.value.map((e,t)=>Xe(e,t));N.value=JSON.stringify(e,null,2)}function Qe(){let e=JSON.parse(N.value);if(!Array.isArray(e))throw Error(`Rules must be a JSON array`);return e}function $e(){F.value=Qe().map((e,t)=>Ye(e,t))}function Q(){return P.value?Qe():F.value.map((e,t)=>Xe(e,t))}function $(e){if(e.valueSource===`group`)return`${we(e.field)} ${Te(e.op)} ${e.groupKind}:${e.groupId||`unset`}`;if(Ne(e.field)){let t=e.value.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean).length;return`${we(e.field)} ${Te(e.op)} ${t} hash${t===1?``:`es`}`}return`${we(e.field)} ${Te(e.op)} ${e.value}`}function et(e){let t=e.matchMode===`all`?` AND `:` OR `;return e.conditions.map(e=>$(e)).join(t)}function tt(e){return e===`log_only`?`Log Only`:e.charAt(0).toUpperCase()+e.slice(1)}function nt(e){return e===`drop`?`border-accent-red/opacity-medium bg-accent-red/opacity-light text-accent-red`:e===`log_only`?`border-accent-amber/opacity-medium bg-accent-amber/opacity-light text-accent-amber`:`border-accent-green/opacity-medium bg-accent-green/opacity-light text-accent-green`}function rt(){z.value=null,B.value=Ge(Ke()),ee.value=null,L.value=!0}function it(e){let t=F.value[e];t&&(z.value=e,B.value=JSON.parse(JSON.stringify(t)),ee.value=null,L.value=!0)}function at(){L.value=!1,B.value=null,z.value=null,ee.value=null,V.value=!1,H.value=null,U.value=null}function ot(){if(!B.value)return;let e=We(qe(B.value));B.value.conditions.push(e)}function st(e){B.value&&(B.value.conditions.length<=1||B.value.conditions.splice(e,1))}function ct(e,t){if(!B.value)return;let n=e+t;if(n<0||n>=B.value.conditions.length)return;let r=B.value.conditions[e];B.value.conditions[e]=B.value.conditions[n],B.value.conditions[n]
Line truncated
|
||||
@@ -1,2 +0,0 @@
|
||||
import{C as e,D as t,M as n,N as r,P as i,T as a,U as o,V as s,X as c,_t as l,c as u,f as d,h as f,ht as p,i as m,j as h,k as g,l as _,m as v,o as y,p as b,r as x,s as S,u as C,w,x as T,y as E}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as D,c as O,i as k,l as A,o as j,r as M,t as N}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{g as P,h as F,m as I,p as L,t as R,v as z,y as B}from"./api-B-2vYkoY.js";import{t as ee}from"./system-uA3cZx_m.js";import{c as V,d as H,i as U,n as W,t as G}from"./formatters-vw234I-c.js";import{r as K,t as q}from"./dataService-CPAucQH-.js";import{n as te,t as ne}from"./TxPowerNoticeModal-FiFCOWr9.js";import{t as J}from"./Spinner-D-jFxDsV.js";import{c as re,d as Y,r as ie,s as X}from"./index-DoCDF--l.js";import{t as Z}from"./ConfirmDialog-CKP12S0V.js";import{t as ae}from"./LocationPicker-CvfMnVsT.js";import{n as oe,t as se}from"./CopyLabel-CpHEW2NL.js";var ce={key:0,class:`modal-backdrop`},le={class:`modal-card max-w-md`},ue={class:`flex items-start gap-3 mb-4`},de={class:`mt-1 text-sm text-content-secondary dark:text-content-muted`},fe={class:`modal-actions`},pe=[`disabled`],me=[`disabled`],he=[`disabled`],ge=f({__name:`UnsavedChangesModal`,props:{show:{type:Boolean},isSaving:{type:Boolean},label:{}},emits:[`discard`,`save`,`cancel`],setup(e){return(t,n)=>(a(),u(m,{to:`body`},[v(N,{"enter-active-class":`transition-opacity duration-200`,"enter-from-class":`opacity-0`,"leave-active-class":`transition-opacity duration-200`,"leave-to-class":`opacity-0`},{default:r(()=>[e.show?(a(),C(`div`,ce,[S(`div`,le,[S(`div`,ue,[n[4]||=S(`div`,{class:`flex-shrink-0 w-10 h-10 rounded-full bg-accent-amber/opacity-light dark:bg-accent-amber/opacity-medium flex items-center justify-center`},[S(`svg`,{class:`w-5 h-5 text-accent-amber`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[S(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z`})])],-1),S(`div`,null,[n[3]||=S(`h3`,{class:`text-base font-semibold text-content-primary`},` Unsaved Changes `,-1),S(`p`,de,l(e.label?e.label:`Settings`)+` have not been saved. What would you like to do? `,1)])]),S(`div`,fe,[S(`button`,{onClick:n[0]||=e=>t.$emit(`cancel`),disabled:e.isSaving,class:`modal-btn-cancel`},` Keep Editing `,8,pe),S(`button`,{onClick:n[1]||=e=>t.$emit(`discard`),disabled:e.isSaving,class:`modal-btn-danger`},` Discard `,8,me),S(`button`,{onClick:n[2]||=e=>t.$emit(`save`),disabled:e.isSaving,class:`modal-btn-primary`},l(e.isSaving?`Saving…`:`Save Settings`),9,he)])])])):_(``,!0)]),_:1})]))}});function _e(e,t,n,r){let i=o(!1),a=o(null),s=o(null);L((t,n,r)=>{e.value?(i.value=!0,a.value=()=>r(),s.value=()=>r(!1)):r()});function c(t){e.value?(i.value=!0,a.value=t,s.value=null):t()}function l(){n(),i.value=!1,s.value=null,a.value&&=(a.value(),null)}async function u(){await r()&&(i.value=!1,s.value=null,a.value&&=(a.value(),null))}function d(){i.value=!1,s.value&&=(s.value(),null),a.value=null}return{showUnsavedModal:i,requestLeave:c,handleDiscard:l,handleSave:u,handleCancel:d}}function ve(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function ye(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n,r=String(e.id??e.radio_id??``).trim();r&&t.push({...e,id:r})}return t}function be(){let e=ee(),t=y(()=>{let t=e.stats;if(!t)return{};let n=ve(t.config);return{...t,...n}}),n=y(()=>{let n=t.value.radios;if(Array.isArray(n)&&n.length)return ye(n);let r=e.stats;return ye(r?.radios)}),r=y(()=>{let n=ve(t.value.fabric);if(Object.keys(n).length)return n;let r=e.stats;return ve(r?.fabric)}),i=y(()=>{let n=ve(t.value.radio_stack);if(Object.keys(n).length)return n;let r=e.stats;return ve(r?.radio_stack)}),a=y(()=>n.value.length>0),s=y(()=>{let e=r.value,t=e.default_radio||e.default_radio_id;return t?String(t):n.value.length?n.value[0].id:`radio0`}),c=o(``),l=y(()=>{if(!a.value)return``;let e=new Set(n.value.map(e=>e.id));return c.value&&e.has(c.value)?c.value:s.value});function u(e){c.value=e}function d(){if(!a.value){c.value=``;return}let e=new Set(n.value.map(e=>e.id));(!c.value||!e.has(c.value))&&(c.value=s.value)}let f=y(()=>{if(!a.value)return null;let e=l.value;return n.value.find(t=>t.id===e)??null});return{rootConfig:t,radios:n,fabric:r,radioStack:i,isMultiRadio:a,defaultRadioId:s,selectedRadioId:c,effectiveSelectedId:l,selectedEntry:f,activeRadioAirConfig:y(()=>f.value?ve(f.value.radio):ve(t.value.radio)),activeHardware:y(()=>{let e=f.value;return e?{radio_type:e.radio_type??t.value.radio_type,sx1262:ve(e.sx1262),ch341:ve(e.ch341),kiss:ve(e.kiss),pymc_usb:ve(e.pymc_usb),pymc_tcp:ve(e.pymc_tcp)}:{radio_type:t.value.radio_type,sx1262:ve(t.value.sx1262),ch341:ve(t.value.ch341),kiss:ve(t.value.kiss),pymc_usb:ve(t.value.pymc_usb),pymc_tcp:ve(t.value.pymc_tcp)}}),radioOptions:y(()=>n.value.map(e=>({id:e.id,label:e.id,radio_type:String(e.radio_type??`unknown`Line truncated
|
||||
`):t==null?``:typeof t==`string`?t:typeof t==`number`||typeof t==`boolean`?String(t):JSON.stringify(t)}function ze(e){let t=e.value.trim();if(Ne(e.field)){let n=Le(t);if(e.op===`contains`){if(n.length!==1)throw Error(`Path Hashes with Contains expects one hash. Use Intersects for multiple hashes.`);return n[0]}return n}return Pe(e.field)?Fe(t):Ue(t,e.valueType)}function Be(e){return Ne(e.field)?e.op===`contains`?`Single hash, e.g. 0x42, 0x0042, or 0x000042`:`One hash per line or comma-separated; all must be the same size`:Pe(e.field)?`1-byte channel hash (0x11) or full channel secret key`:e.valueType===`boolean`?`true/false`:`value`}function Ve(e){return Ne(e.field)&&e.valueSource===`literal`}function He(e){return typeof e==`number`?`number`:typeof e==`boolean`?`boolean`:`string`}function Ue(e,t){if(t===`number`){let t=Number(e);if(!Number.isFinite(t))throw Error(`Invalid numeric value: ${e}`);return t}if(t===`boolean`){let t=e.trim().toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1;throw Error(`Invalid boolean value: ${e}. Use true or false.`)}return e}function We(e){return{id:e,field:`hop_count`,op:`greater_than`,valueType:`number`,valueSource:`literal`,value:`2`}}function Ge(e){return{id:e,name:`Rule ${e}`,enabled:!0,matchMode:`all`,conditions:[We(1)],action:`drop`}}function Ke(){return F.value.length?Math.max(...F.value.map(e=>Number(e.id)||0))+1:1}function qe(e){return e.conditions.length?Math.max(...e.conditions.map(e=>e.id))+1:1}function Je(e){let t=Ee(e.field);t.includes(e.op)||(e.op=t[0]);let n=De(e.field);n.includes(e.valueType)||(e.valueType=n[0]);let r=Oe(e.field);if(!r.length){e.valueSource=`literal`,e.groupKind=void 0,e.groupId=void 0;return}if(e.valueSource===`group`){(!e.groupKind||!r.includes(e.groupKind))&&(e.groupKind=r[0]),Pe(e.field)&&e.op!==`in`&&(e.op=`in`);let t=ke(e.groupKind);t.find(t=>t.id===e.groupId)||(e.groupId=t[0]?.id)}}function Ye(e,t){let n=e.if??{},r=`all`,i=[];Array.isArray(n.any)?(r=`any`,i=n.any):Array.isArray(n.all)?(r=`all`,i=n.all):`field`in n&&(i=[n]),i.length||(i=[{field:`hop_count`,op:`greater_than`,value:2}]);let a=i.map((e,t)=>{let n=String(e.field??`hop_count`),r=String(e.op??`equals`),i=Ee(n),a=i.includes(r)?r:i[0],o=e.value;if(typeof o==`string`&&o.startsWith(`@`)){let[e,r]=o.slice(1).split(`.`,2),i=e===`channel_hash_groups`?`channel_hashes`:e===`pubkey_groups`?`pubkeys`:void 0,s={id:t+1,field:n,op:a,valueType:`string`,valueSource:`group`,value:r||``,groupKind:i,groupId:r};return Je(s),s}let s=He(o),c={id:t+1,field:n,op:a,valueType:De(n).includes(s)?s:De(n)[0],valueSource:`literal`,value:Re(n,o)};return Je(c),c}),o=e.then??{},s=String(o.action??e.action??`allow`),c=te.some(e=>e.value===s)?s:`allow`;return{id:Number(e.id??t+1),name:String(e.name??`Rule ${t+1}`),enabled:!!(e.enabled??!0),matchMode:r,conditions:a,action:c}}function Xe(e,t){let n=e.conditions.map(t=>{let n;if(t.valueSource===`group`){if(!t.groupKind||!t.groupId)throw Error(`Condition ${t.id} in ${e.name} is missing group selection`);n=`@${t.groupKind===`channel_hashes`?`channel_hash_groups`:`pubkey_groups`}.${t.groupId}`}else n=ze(t);return{field:t.field,op:t.op,value:n}});return{id:Number(e.id)||t+1,name:e.name.trim()||`Rule ${t+1}`,enabled:!!e.enabled,if:{[e.matchMode]:n},then:{action:e.action}}}function Ze(){let e=F.value.map((e,t)=>Xe(e,t));N.value=JSON.stringify(e,null,2)}function Qe(){let e=JSON.parse(N.value);if(!Array.isArray(e))throw Error(`Rules must be a JSON array`);return e}function $e(){F.value=Qe().map((e,t)=>Ye(e,t))}function Q(){return P.value?Qe():F.value.map((e,t)=>Xe(e,t))}function $(e){if(e.valueSource===`group`)return`${we(e.field)} ${Te(e.op)} ${e.groupKind}:${e.groupId||`unset`}`;if(Ne(e.field)){let t=e.value.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean).length;return`${we(e.field)} ${Te(e.op)} ${t} hash${t===1?``:`es`}`}return`${we(e.field)} ${Te(e.op)} ${e.value}`}function et(e){let t=e.matchMode===`all`?` AND `:` OR `;return e.conditions.map(e=>$(e)).join(t)}function tt(e){return e===`log_only`?`Log Only`:e.charAt(0).toUpperCase()+e.slice(1)}function nt(e){return e===`drop`?`border-accent-red/opacity-medium bg-accent-red/opacity-light text-accent-red`:e===`log_only`?`border-accent-amber/opacity-medium bg-accent-amber/opacity-light text-accent-amber`:`border-accent-green/opacity-medium bg-accent-green/opacity-light text-accent-green`}function rt(){z.value=null,B.value=Ge(Ke()),ee.value=null,L.value=!0}function it(e){let t=F.value[e];t&&(z.value=e,B.value=JSON.parse(JSON.stringify(t)),ee.value=null,L.value=!0)}function at(){L.value=!1,B.value=null,z.value=null,ee.value=null,V.value=!1,H.value=null,U.value=null}function ot(){if(!B.value)return;let e=We(qe(B.value));B.value.conditions.push(e)}function st(e){B.value&&(B.value.conditions.length<=1||B.value.conditions.splice(e,1))}function ct(e,t){if(!B.value)return;let n=e+t;if(n<0||n>=B.value.conditions.length)return;let r=B.value.conditions[e];B.value.conditions[e]=B.value.conditions[n],B.value.conditions[n]
Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.sparkline-card[data-v-94df851b]{background:color-mix(in srgb, var(--color-surface) 75%, transparent);border:1px solid var(--color-border-subtle);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);box-shadow:0 4px 16px color-mix(in srgb, var(--color-background) 18%, transparent), 0 1px 3px color-mix(in srgb, var(--color-background) 10%, transparent);border-radius:12px;padding:12px 14px;transition:background .3s,border-color .3s,box-shadow .3s;overflow:hidden}.dark .sparkline-card[data-v-94df851b]{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);box-shadow:0 4px 16px color-mix(in srgb, var(--color-background) 35%, transparent)}.card-header[data-v-94df851b]{justify-content:space-between;align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.card-title[data-v-94df851b]{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;flex:auto;min-width:0;font-weight:500;transition:color .3s}.dark .card-title[data-v-94df851b]{color:var(--color-text-muted)}.card-value[data-v-94df851b]{font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.card-values[data-v-94df851b]{flex-shrink:0;align-items:baseline;gap:6px;margin-left:auto;display:flex}.card-secondary-value[data-v-94df851b]{font-variant-numeric:tabular-nums;opacity:.85;font-weight:600;line-height:1}.card-chart[data-v-94df851b]{width:100%;height:28px;overflow:hidden}.card-chart canvas[data-v-94df851b]{width:100%!important;height:100%!important}@media (width>=1024px){.sparkline-card[data-v-94df851b]{padding:14px 16px}.card-header[data-v-94df851b]{margin-bottom:10px}.card-chart[data-v-94df851b]{height:32px}}.stats-cards-container[data-v-a0ec6d77]{will-change:auto;contain:layout}.stat-card[data-v-a0ec6d77]{min-width:0;transition:opacity .3s ease-out}canvas[data-v-dff649e7]{width:100%;height:100%}
|
||||
@@ -1 +0,0 @@
|
||||
.sparkline-card[data-v-94df851b]{background:color-mix(in srgb, var(--color-surface) 75%, transparent);border:1px solid var(--color-border-subtle);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);box-shadow:0 4px 16px color-mix(in srgb, var(--color-background) 18%, transparent), 0 1px 3px color-mix(in srgb, var(--color-background) 10%, transparent);border-radius:12px;padding:12px 14px;transition:background .3s,border-color .3s,box-shadow .3s;overflow:hidden}.dark .sparkline-card[data-v-94df851b]{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);box-shadow:0 4px 16px color-mix(in srgb, var(--color-background) 35%, transparent)}.card-header[data-v-94df851b]{justify-content:space-between;align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.card-title[data-v-94df851b]{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;flex:auto;min-width:0;font-weight:500;transition:color .3s}.dark .card-title[data-v-94df851b]{color:var(--color-text-muted)}.card-value[data-v-94df851b]{font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.card-values[data-v-94df851b]{flex-shrink:0;align-items:baseline;gap:6px;margin-left:auto;display:flex}.card-secondary-value[data-v-94df851b]{font-variant-numeric:tabular-nums;opacity:.85;font-weight:600;line-height:1}.card-chart[data-v-94df851b]{width:100%;height:28px;overflow:hidden}.card-chart canvas[data-v-94df851b]{width:100%!important;height:100%!important}@media (width>=1024px){.sparkline-card[data-v-94df851b]{padding:14px 16px}.card-header[data-v-94df851b]{margin-bottom:10px}.card-chart[data-v-94df851b]{height:32px}}.stats-cards-container[data-v-a0ec6d77]{will-change:auto;contain:layout}.stat-card[data-v-a0ec6d77]{min-width:0;transition:opacity .3s ease-out}canvas[data-v-dff649e7]{width:100%;height:100%}.hop-connector[data-v-5fc98e84]{justify-content:center;align-items:center;width:1.2rem;height:.8rem;margin:0 .1rem;display:inline-flex;position:relative}.hop-rabbit[data-v-5fc98e84]{width:.65rem;height:.65rem}.hop-connector-forward[data-v-5fc98e84]{color:color-mix(in srgb, var(--color-accent-cyan) 95%, transparent)}.hop-connector-forward .hop-rabbit[data-v-5fc98e84]{filter:drop-shadow(0 0 3px color-mix(in srgb, var(--color-accent-cyan) 50%, transparent))}.hop-connector-drop[data-v-5fc98e84]{color:color-mix(in srgb, var(--color-secondary) 95%, transparent)}.hop-connector-drop .hop-rabbit[data-v-5fc98e84]{filter:drop-shadow(0 0 3px color-mix(in srgb, var(--color-secondary) 55%, transparent))}.hop-connector-received[data-v-5fc98e84]{color:color-mix(in srgb, var(--color-primary) 75%, transparent)}.hop-connector-received .hop-rabbit[data-v-5fc98e84]{opacity:.9}@media (width<=640px){.hop-connector[data-v-5fc98e84]{width:1rem;height:.7rem}.hop-rabbit[data-v-5fc98e84]{width:.55rem;height:.55rem}}.fade-enter-active[data-v-b7eb498f],.fade-leave-active[data-v-b7eb498f]{transition:opacity .3s ease-out,transform .3s ease-out}.fade-enter-from[data-v-b7eb498f],.fade-leave-to[data-v-b7eb498f]{opacity:0;transform:translateY(-10px)}.packet-list-enter-active[data-v-b7eb498f],.packet-list-leave-active[data-v-b7eb498f],.packet-list-move[data-v-b7eb498f]{transition:all .4s ease-out}.packet-list-enter-from[data-v-b7eb498f]{opacity:0;transform:translateY(-30px)scale(.98)}.packet-list-enter-to[data-v-b7eb498f],.packet-list-leave-from[data-v-b7eb498f]{opacity:1;transform:translateY(0)scale(1)}.packet-list-leave-to[data-v-b7eb498f]{opacity:0;transform:translateY(-20px)scale(.95)}.packet-row[data-v-b7eb498f]{transition:all .3s;position:relative}.packet-list-enter-active .packet-row[data-v-b7eb498f]{background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent-green) 10%, transparent) 0%, color-mix(in srgb, var(--color-accent-green) 5%, transparent) 50%, transparent 100%);box-shadow:0 0 20px color-mix(in srgb, var(--color-accent-green) 20%, transparent);border-left:3px solid color-mix(in srgb, var(--color-accent-green) 60%, transparent);border-radius:8px;padding-left:12px}.packet-row[data-v-b7eb498f]:hover{background:color-mix(in srgb, var(--color-surface) 20%, transparent);border-radius:8px;transition:background .2s}.duplicate-packet-row[data-v-b7eb498f]{background:linear-gradient(96deg, color-mix(in srgb, var(--color-primary) 11%, transparent) 0%, color-mix(in srgb, var(--color-primary) 8%, transparent) 26%, color-mix(in srgb, var(--color-primary) 5%, transparent) 52%, color-mix(in srgb, var(--color-primary) 3%, transparent) 74%, transparent 90%);border-left-width:3px}.duplicate-group-container[data-v-b7eb498f]{border:1px solid color-mix(in srgb, var(--color-primary) 35%, var(--color-border-subtle));background:linear-gradient(140deg, color-mix(in srgb, var(--color-primary) 7%, var(--color-surface)) 0%, color-mix(in srgb, var(--color-primary) 5%, var(--color-surface)) 38%, color-mix(in srgb, var(--color-primary) 3%, var(--color-surface)) 72%, color-mix(in srgb, var(--color-primary) 2%, var(--color-surface)) 100%)}.dLine truncated
|
||||
@@ -1 +0,0 @@
|
||||
import{C as e,D as t,N as n,P as r,T as i,U as a,X as o,_t as s,c,f as l,gt as u,h as d,ht as f,j as p,l as m,m as h,o as g,p as _,r as v,s as y,u as b,x,y as S,z as C}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as w,l as T}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ee}from"./packets-B5s0Tvcs.js";import{t as E}from"./system-uA3cZx_m.js";import{t as D}from"./dataService-CPAucQH-.js";import{t as O}from"./Spinner-D-jFxDsV.js";import{t as k}from"./websocket-Br2zM8_8.js";import{c as A,d as j,s as te,t as M}from"./index-DoCDF--l.js";import{a as N,c as P,f as F,g as ne,l as I,o as re,t as ie,u as ae}from"./ChartCard-DvNDqE-i.js";import{t as oe}from"./streamingFetch-BztyMxVG.js";import{n as se,t as ce}from"./SignalBars-Boub7Vuj.js";import{t as le}from"./PacketDetailsModal-DSCriOjT.js";var ue={class:`sparkline-card`},de={class:`card-header`},L={class:`card-title text-ui-caption truncate`},R={class:`card-values`},z={class:`card-chart`},B=j(d({name:`ChartSparkline`,__name:`ChartSparkline`,props:{title:{},value:{},color:{},data:{default:()=>[]},showChart:{type:Boolean,default:!0},secondaryValue:{default:void 0},secondaryLabel:{default:``},secondaryColor:{default:``},secondaryData:{default:()=>[]}},setup(t){re.register(N,ae,F,I,P,ne);let n=t,r=a(null),o=a(null),c=e=>{let t=e.trim();if(typeof window>`u`)return t;let n=t;for(let e=0;e<4&&n.startsWith(`var(`);e++){let e=n.match(/^var\(\s*(--[\w-]+)\s*(?:,\s*([^\)]+))?\s*\)$/);if(!e)break;let[,t,r]=e;n=window.getComputedStyle(document.documentElement).getPropertyValue(t).trim()||(r?.trim()??n)}return n},l=e=>{if(e.length<3)return e;let t=Math.min(15,Math.max(3,Math.floor(e.length*.2))),n=[];for(let r=0;r<e.length;r++){let i=Math.floor(t/2),a=Math.max(0,r-i),o=Math.min(e.length,r+i+1),s=e.slice(a,o);n.push(s.reduce((e,t)=>e+t,0)/s.length)}let r=Math.min(12,n.length),i=n.length/r,a=[];for(let e=0;e<r;e++){let t=Math.floor(e*i);a.push(n[t])}return a},d=g(()=>!n.data||n.data.length===0?[]:l(n.data)),f=g(()=>!n.secondaryData||n.secondaryData.length===0?[]:l(n.secondaryData)),h=()=>{if(!r.value)return;let e=r.value.getContext(`2d`);if(!e)return;o.value&&=(o.value.destroy(),null);let t=d.value;if(t.length<2)return;let i=[{data:t,borderColor:c(n.color),borderWidth:2.5,fill:!1,tension:.4,pointRadius:0,pointHoverRadius:0}],a=f.value;a.length>=2&&n.secondaryColor&&i.push({data:a,borderColor:c(n.secondaryColor),borderWidth:2,borderDash:[4,3],fill:!1,tension:.4,pointRadius:0,pointHoverRadius:0}),o.value=C(new re(e,{type:`line`,data:{labels:t.map((e,t)=>t.toString()),datasets:i},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:800,easing:`easeOutQuart`},plugins:{legend:{display:!1},tooltip:{enabled:!1}},scales:{x:{display:!1,grid:{display:!1}},y:{display:!1,grid:{display:!1},grace:`10%`}},elements:{line:{capBezierPoints:!0}}}}))},_=()=>{if(!o.value){h();return}let e=d.value;if(e.length<2)return;o.value.data.labels=e.map((e,t)=>t.toString()),o.value.data.datasets[0].data=e;let t=f.value;t.length>=2&&n.secondaryColor&&(o.value.data.datasets.length<2?o.value.data.datasets.push({data:t,borderColor:c(n.secondaryColor),borderWidth:2,borderDash:[4,3],fill:!1,tension:.4,pointRadius:0,pointHoverRadius:0}):o.value.data.datasets[1].data=t),o.value.update(`default`)};return p(()=>n.data,()=>{S(()=>_())},{deep:!0}),p(()=>n.color,()=>{o.value&&(o.value.data.datasets[0].borderColor=c(n.color),o.value.update(`none`))}),p(()=>n.secondaryColor,()=>{o.value&&o.value.data.datasets.length>1&&(o.value.data.datasets[1].borderColor=c(n.secondaryColor),o.value.update(`none`))}),e(()=>{S(()=>h())}),x(()=>{o.value&&=(o.value.destroy(),null)}),(e,n)=>(i(),b(`div`,ue,[y(`div`,de,[y(`p`,L,s(t.title),1),y(`div`,R,[y(`span`,{class:`card-value text-ui-metric lg:text-ui-metric-lg`,style:u({color:t.color})},s(typeof t.value==`number`?t.value.toLocaleString():t.value),5),t.secondaryValue===void 0?m(``,!0):(i(),b(`span`,{key:0,class:`card-secondary-value text-ui-label`,style:u({color:t.secondaryColor})},s(t.secondaryLabel)+s(typeof t.secondaryValue==`number`?t.secondaryValue.toLocaleString():t.secondaryValue),5))])]),y(`div`,z,[t.showChart?(i(),b(`canvas`,{key:0,ref_key:`canvasRef`,ref:r},null,512)):m(``,!0)])]))}}),[[`__scopeId`,`data-v-94df851b`]]),fe={class:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 2xl:grid-cols-7 gap-2 sm:gap-3 xl:gap-4 mb-5 stats-cards-container`},pe=j(d({name:`StatsCards`,__name:`StatsCards`,setup(t){let n={uptime:`var(--color-primary)`,rx:`var(--color-primary)`,forward:`var(--color-secondary)`,dropped:`var(--color-accent-red)`,policy:`var(--color-accent-cyan)`,crcErrors:`var(--color-accent-red)`,hashCache:`var(--color-secondary)`},r=ee(),a=E(),o=D(),s=e=>{let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h`:n>0?`${n}h ${r}m`:`${r}m`},c=g(()=>{let e=r.packetStats,t=a.stats?.uptime_seconds||0,n=e?.total_packets||0,i=e?.dropped_packets||0,o=e?.drop_reasons?.reduce((e,t)=>typeof t?.reason==`string`&&t.reason.sLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{C as e,D as t,N as n,T as r,U as i,X as a,_t as o,f as s,gt as c,h as l,j as u,l as d,m as f,o as p,p as m,r as h,s as g,u as _,x as v,y,z as b}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as x}from"./packets-DROiFL8U.js";import{t as S}from"./system-BVs_Y0rK.js";import{t as C}from"./dataService-4qyr7nMC.js";import{t as w}from"./websocket-BAIFVlsY.js";import{d as T,t as E}from"./index-DXPlD6DJ.js";import{a as D,c as O,f as k,g as A,l as j,o as M,t as N,u as P}from"./ChartCard-DvNDqE-i.js";import{t as F}from"./streamingFetch-CTsu5vGX.js";import{t as I}from"./PacketTable-D6tdB8OQ.js";var L={class:`sparkline-card`},R={class:`card-header`},z={class:`card-title text-ui-caption truncate`},ee={class:`card-values`},te={class:`card-chart`},B=T(l({name:`ChartSparkline`,__name:`ChartSparkline`,props:{title:{},value:{},color:{},data:{default:()=>[]},showChart:{type:Boolean,default:!0},secondaryValue:{default:void 0},secondaryLabel:{default:``},secondaryColor:{default:``},secondaryData:{default:()=>[]}},setup(t){M.register(D,P,k,j,O,A);let n=t,a=i(null),s=i(null),l=e=>{let t=e.trim();if(typeof window>`u`)return t;let n=t;for(let e=0;e<4&&n.startsWith(`var(`);e++){let e=n.match(/^var\(\s*(--[\w-]+)\s*(?:,\s*([^\)]+))?\s*\)$/);if(!e)break;let[,t,r]=e;n=window.getComputedStyle(document.documentElement).getPropertyValue(t).trim()||(r?.trim()??n)}return n},f=e=>{if(e.length<3)return e;let t=Math.min(15,Math.max(3,Math.floor(e.length*.2))),n=[];for(let r=0;r<e.length;r++){let i=Math.floor(t/2),a=Math.max(0,r-i),o=Math.min(e.length,r+i+1),s=e.slice(a,o);n.push(s.reduce((e,t)=>e+t,0)/s.length)}let r=Math.min(12,n.length),i=n.length/r,a=[];for(let e=0;e<r;e++){let t=Math.floor(e*i);a.push(n[t])}return a},m=p(()=>!n.data||n.data.length===0?[]:f(n.data)),h=p(()=>!n.secondaryData||n.secondaryData.length===0?[]:f(n.secondaryData)),x=()=>{if(!a.value)return;let e=a.value.getContext(`2d`);if(!e)return;s.value&&=(s.value.destroy(),null);let t=m.value;if(t.length<2)return;let r=[{data:t,borderColor:l(n.color),borderWidth:2.5,fill:!1,tension:.4,pointRadius:0,pointHoverRadius:0}],i=h.value;i.length>=2&&n.secondaryColor&&r.push({data:i,borderColor:l(n.secondaryColor),borderWidth:2,borderDash:[4,3],fill:!1,tension:.4,pointRadius:0,pointHoverRadius:0}),s.value=b(new M(e,{type:`line`,data:{labels:t.map((e,t)=>t.toString()),datasets:r},options:{responsive:!0,maintainAspectRatio:!1,animation:{duration:800,easing:`easeOutQuart`},plugins:{legend:{display:!1},tooltip:{enabled:!1}},scales:{x:{display:!1,grid:{display:!1}},y:{display:!1,grid:{display:!1},grace:`10%`}},elements:{line:{capBezierPoints:!0}}}}))},S=()=>{if(!s.value){x();return}let e=m.value;if(e.length<2)return;s.value.data.labels=e.map((e,t)=>t.toString()),s.value.data.datasets[0].data=e;let t=h.value;t.length>=2&&n.secondaryColor&&(s.value.data.datasets.length<2?s.value.data.datasets.push({data:t,borderColor:l(n.secondaryColor),borderWidth:2,borderDash:[4,3],fill:!1,tension:.4,pointRadius:0,pointHoverRadius:0}):s.value.data.datasets[1].data=t),s.value.update(`default`)};return u(()=>n.data,()=>{y(()=>S())},{deep:!0}),u(()=>n.color,()=>{s.value&&(s.value.data.datasets[0].borderColor=l(n.color),s.value.update(`none`))}),u(()=>n.secondaryColor,()=>{s.value&&s.value.data.datasets.length>1&&(s.value.data.datasets[1].borderColor=l(n.secondaryColor),s.value.update(`none`))}),e(()=>{y(()=>x())}),v(()=>{s.value&&=(s.value.destroy(),null)}),(e,n)=>(r(),_(`div`,L,[g(`div`,R,[g(`p`,z,o(t.title),1),g(`div`,ee,[g(`span`,{class:`card-value text-ui-metric lg:text-ui-metric-lg`,style:c({color:t.color})},o(typeof t.value==`number`?t.value.toLocaleString():t.value),5),t.secondaryValue===void 0?d(``,!0):(r(),_(`span`,{key:0,class:`card-secondary-value text-ui-label`,style:c({color:t.secondaryColor})},o(t.secondaryLabel)+o(typeof t.secondaryValue==`number`?t.secondaryValue.toLocaleString():t.secondaryValue),5))])]),g(`div`,te,[t.showChart?(r(),_(`canvas`,{key:0,ref_key:`canvasRef`,ref:a},null,512)):d(``,!0)])]))}}),[[`__scopeId`,`data-v-94df851b`]]),ne={class:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 2xl:grid-cols-7 gap-2 sm:gap-3 xl:gap-4 mb-5 stats-cards-container`},V=T(l({name:`StatsCards`,__name:`StatsCards`,setup(t){let n={uptime:`var(--color-primary)`,rx:`var(--color-primary)`,forward:`var(--color-secondary)`,dropped:`var(--color-accent-red)`,policy:`var(--color-accent-cyan)`,crcErrors:`var(--color-accent-red)`,hashCache:`var(--color-secondary)`},i=x(),a=S(),o=C(),s=e=>{let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h`:n>0?`${n}h ${r}m`:`${r}m`},c=p(()=>{let e=i.packetStats,t=a.stats?.uptime_seconds||0,n=e?.total_packets||0,r=e?.dropped_packets||0,o=e?.drop_reasons?.reduce((e,t)=>typeof t?.reason==`string`&&t.reason.startsWith(`Policy blocked packet`)?e+(t.count||0):e,0)||0;return{packetsReceived:n,packetsForwarded:e?.transmitted_packets||0,uptimeFormatted:s(t),droppedPackets:r,policyEvents:o,crcErrorCount:i.crcErrorCount,hashLine truncated
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,gt as o,h as s,ht as c,j as l,l as u,o as d,p as f,r as p,s as m,u as h,w as g,x as _,y as v}from"./runtime-core.esm-bundler-CINEgm0a.js";import{s as y}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{d as b,i as x,l as S,t as C}from"./api-B-2vYkoY.js";import{d as w}from"./index-DoCDF--l.js";var T={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},E={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},D=1e3,O=1001,k=1002,A=1003,j=1004,ee=1005,M=1006,N=1007,te=1008,ne=1009,re=1010,ie=1011,ae=1012,oe=1013,se=1014,P=1015,ce=1016,F=1017,le=1018,ue=1020,de=35902,fe=35899,pe=1021,me=1022,he=1023,ge=1026,_e=1027,ve=1028,ye=1029,be=1030,xe=1031,Se=1033,Ce=33776,I=33777,we=33778,Te=33779,Ee=35840,De=35841,Oe=35842,L=35843,ke=36196,R=37492,Ae=37496,z=37488,je=37489,B=37490,V=37491,Me=37808,Ne=37809,Pe=37810,Fe=37811,Ie=37812,Le=37813,Re=37814,ze=37815,Be=37816,Ve=37817,He=37818,Ue=37819,We=37820,Ge=37821,Ke=36492,qe=36494,Je=36495,Ye=36283,Xe=36284,Ze=36285,Qe=36286,$e=2300,et=2301,tt=2302,nt=2303,rt=2400,it=2401,at=2402,ot=3200,st=`srgb`,ct=`srgb-linear`,lt=`linear`,ut=`srgb`,dt=7680,ft=35044,pt=35048,mt=2e3;function ht(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}function gt(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function _t(e){return document.createElementNS(`http://www.w3.org/1999/xhtml`,e)}function vt(){let e=_t(`canvas`);return e.style.display=`block`,e}var yt={},bt=null;function xt(...e){let t=`THREE.`+e.shift();bt?bt(`log`,t,...e):console.log(t,...e)}function St(e){let t=e[0];if(typeof t==`string`&&t.startsWith(`TSL:`)){let t=e[1];t&&t.isStackTrace?e[0]+=` `+t.getLocation():e[1]=`Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.`}return e}function H(...e){e=St(e);let t=`THREE.`+e.shift();if(bt)bt(`warn`,t,...e);else{let n=e[0];n&&n.isStackTrace?console.warn(n.getError(t)):console.warn(t,...e)}}function U(...e){e=St(e);let t=`THREE.`+e.shift();if(bt)bt(`error`,t,...e);else{let n=e[0];n&&n.isStackTrace?console.error(n.getError(t)):console.error(t,...e)}}function Ct(...e){let t=e.join(` `);t in yt||(yt[t]=!0,H(...e))}function wt(e,t,n){return new Promise(function(r,i){function a(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:i();break;case e.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:r()}}setTimeout(a,n)})}var Tt={0:1,2:6,4:7,3:5,1:0,6:2,7:4,5:3},Et=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){let n=this._listeners;return n===void 0?!1:n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){let n=this._listeners;if(n===void 0)return;let r=n[e];if(r!==void 0){let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let n=t[e.type];if(n!==void 0){e.target=this;let t=n.slice(0);for(let n=0,r=t.length;n<r;n++)t[n].call(this,e);e.target=null}}},Dt=`00.01.02.03.04.05.06.07.08.09.0a.0b.0c.0d.0e.0f.10.11.12.13.14.15.16.17.18.19.1a.1b.1c.1d.1e.1f.20.21.22.23.24.25.26.27.28.29.2a.2b.2c.2d.2e.2f.30.31.32.33.34.35.36.37.38.39.3a.3b.3c.3d.3e.3f.40.41.42.43.44.45.46.47.48.49.4a.4b.4c.4d.4e.4f.50.51.52.53.54.55.56.57.58.59.5a.5b.5c.5d.5e.5f.60.61.62.63.64.65.66.67.68.69.6a.6b.6c.6d.6e.6f.70.71.72.73.74.75.76.77.78.79.7a.7b.7c.7d.7e.7f.80.81.82.83.84.85.86.87.88.89.8a.8b.8c.8d.8e.8f.90.91.92.93.94.95.96.97.98.99.9a.9b.9c.9d.9e.9f.a0.a1.a2.a3.a4.a5.a6.a7.a8.a9.aa.ab.ac.ad.ae.af.b0.b1.b2.b3.b4.b5.b6.b7.b8.b9.ba.bb.bc.bd.be.bf.c0.c1.c2.c3.c4.c5.c6.c7.c8.c9.ca.cb.cc.cd.ce.cf.d0.d1.d2.d3.d4.d5.d6.d7.d8.d9.da.db.dc.dd.de.df.e0.e1.e2.e3.e4.e5.e6.e7.e8.e9.ea.eb.ec.ed.ee.ef.f0.f1.f2.f3.f4.f5.f6.f7.f8.f9.fa.fb.fc.fd.fe.ff`.split(`.`),Ot=1234567,kt=Math.PI/180,At=180/Math.PI;function jt(){let e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,n=Math.random()*4294967295|0,r=Math.random()*4294967295|0;return(Dt[e&255]+Dt[e>>8&255]+Dt[e>>16&255]+Dt[e>>24&255]+`-`+Dt[t&255]+Dt[t>>8&255]+`-`+Dt[t>>16&15|64]+Dt[t>>24&255]+`-`+Dt[n&63|128]+Dt[n>>8&255]+`-`+Dt[n>>16&255]+Dt[n>>24&255]+Dt[r&255]+Dt[r>>8&255]+Dt[r>>16&255]+Dt[r>>24&255]).toLowerCase()}function W(e,t,n){return Math.max(t,Math.min(n,e))}function Mt(e,t){return(e%t+t)%t}function Nt(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)}function Pt(e,t,n){return e===t?0:(n-e)/(t-e)}function Ft(e,t,n){return(1-n)*e+n*t}function It(e,t,n,r){return Ft(e,t,1-Math.exp(-n*r))}function Lt(e,t=1){return t-Math.abs(Mt(e,t*2)-t)}function Rt(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*(3-2*e))}function zt(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*e*(e*(e*6-15)+10))}function Bt(e,t){return e+Math.floor(Math.random()*(t-e+1))}function Vt(e,t){return e+Math.random()*(t-e)}function Ht(e){return e*(.5-Math.random())}function Ut(e){e!==void 0&&(Ot=e);let t=Ot+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function Wt(Line truncated
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,gt as o,h as s,ht as c,j as l,l as u,o as d,p as f,r as p,s as m,u as h,w as g,x as _,y as v}from"./runtime-core.esm-bundler-CINEgm0a.js";import{s as y}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{d as b,i as x,l as S,t as C}from"./api-BgU2z9oO.js";import{d as w}from"./index-DXPlD6DJ.js";var T={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},E={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},D=1e3,O=1001,k=1002,A=1003,j=1004,ee=1005,M=1006,N=1007,te=1008,ne=1009,re=1010,ie=1011,ae=1012,oe=1013,se=1014,P=1015,ce=1016,F=1017,le=1018,ue=1020,de=35902,fe=35899,pe=1021,me=1022,he=1023,ge=1026,_e=1027,ve=1028,ye=1029,be=1030,xe=1031,Se=1033,Ce=33776,I=33777,we=33778,Te=33779,Ee=35840,De=35841,Oe=35842,L=35843,ke=36196,R=37492,Ae=37496,z=37488,je=37489,B=37490,V=37491,Me=37808,Ne=37809,Pe=37810,Fe=37811,Ie=37812,Le=37813,Re=37814,ze=37815,Be=37816,Ve=37817,He=37818,Ue=37819,We=37820,Ge=37821,Ke=36492,qe=36494,Je=36495,Ye=36283,Xe=36284,Ze=36285,Qe=36286,$e=2300,et=2301,tt=2302,nt=2303,rt=2400,it=2401,at=2402,ot=3200,st=`srgb`,ct=`srgb-linear`,lt=`linear`,ut=`srgb`,dt=7680,ft=35044,pt=35048,mt=2e3;function ht(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}function gt(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function _t(e){return document.createElementNS(`http://www.w3.org/1999/xhtml`,e)}function vt(){let e=_t(`canvas`);return e.style.display=`block`,e}var yt={},bt=null;function xt(...e){let t=`THREE.`+e.shift();bt?bt(`log`,t,...e):console.log(t,...e)}function St(e){let t=e[0];if(typeof t==`string`&&t.startsWith(`TSL:`)){let t=e[1];t&&t.isStackTrace?e[0]+=` `+t.getLocation():e[1]=`Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.`}return e}function H(...e){e=St(e);let t=`THREE.`+e.shift();if(bt)bt(`warn`,t,...e);else{let n=e[0];n&&n.isStackTrace?console.warn(n.getError(t)):console.warn(t,...e)}}function U(...e){e=St(e);let t=`THREE.`+e.shift();if(bt)bt(`error`,t,...e);else{let n=e[0];n&&n.isStackTrace?console.error(n.getError(t)):console.error(t,...e)}}function Ct(...e){let t=e.join(` `);t in yt||(yt[t]=!0,H(...e))}function wt(e,t,n){return new Promise(function(r,i){function a(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:i();break;case e.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:r()}}setTimeout(a,n)})}var Tt={0:1,2:6,4:7,3:5,1:0,6:2,7:4,5:3},Et=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){let n=this._listeners;return n===void 0?!1:n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){let n=this._listeners;if(n===void 0)return;let r=n[e];if(r!==void 0){let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let n=t[e.type];if(n!==void 0){e.target=this;let t=n.slice(0);for(let n=0,r=t.length;n<r;n++)t[n].call(this,e);e.target=null}}},Dt=`00.01.02.03.04.05.06.07.08.09.0a.0b.0c.0d.0e.0f.10.11.12.13.14.15.16.17.18.19.1a.1b.1c.1d.1e.1f.20.21.22.23.24.25.26.27.28.29.2a.2b.2c.2d.2e.2f.30.31.32.33.34.35.36.37.38.39.3a.3b.3c.3d.3e.3f.40.41.42.43.44.45.46.47.48.49.4a.4b.4c.4d.4e.4f.50.51.52.53.54.55.56.57.58.59.5a.5b.5c.5d.5e.5f.60.61.62.63.64.65.66.67.68.69.6a.6b.6c.6d.6e.6f.70.71.72.73.74.75.76.77.78.79.7a.7b.7c.7d.7e.7f.80.81.82.83.84.85.86.87.88.89.8a.8b.8c.8d.8e.8f.90.91.92.93.94.95.96.97.98.99.9a.9b.9c.9d.9e.9f.a0.a1.a2.a3.a4.a5.a6.a7.a8.a9.aa.ab.ac.ad.ae.af.b0.b1.b2.b3.b4.b5.b6.b7.b8.b9.ba.bb.bc.bd.be.bf.c0.c1.c2.c3.c4.c5.c6.c7.c8.c9.ca.cb.cc.cd.ce.cf.d0.d1.d2.d3.d4.d5.d6.d7.d8.d9.da.db.dc.dd.de.df.e0.e1.e2.e3.e4.e5.e6.e7.e8.e9.ea.eb.ec.ed.ee.ef.f0.f1.f2.f3.f4.f5.f6.f7.f8.f9.fa.fb.fc.fd.fe.ff`.split(`.`),Ot=1234567,kt=Math.PI/180,At=180/Math.PI;function jt(){let e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,n=Math.random()*4294967295|0,r=Math.random()*4294967295|0;return(Dt[e&255]+Dt[e>>8&255]+Dt[e>>16&255]+Dt[e>>24&255]+`-`+Dt[t&255]+Dt[t>>8&255]+`-`+Dt[t>>16&15|64]+Dt[t>>24&255]+`-`+Dt[n&63|128]+Dt[n>>8&255]+`-`+Dt[n>>16&255]+Dt[n>>24&255]+Dt[r&255]+Dt[r>>8&255]+Dt[r>>16&255]+Dt[r>>24&255]).toLowerCase()}function W(e,t,n){return Math.max(t,Math.min(n,e))}function Mt(e,t){return(e%t+t)%t}function Nt(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)}function Pt(e,t,n){return e===t?0:(n-e)/(t-e)}function Ft(e,t,n){return(1-n)*e+n*t}function It(e,t,n,r){return Ft(e,t,1-Math.exp(-n*r))}function Lt(e,t=1){return t-Math.abs(Mt(e,t*2)-t)}function Rt(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*(3-2*e))}function zt(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*e*(e*(e*6-15)+10))}function Bt(e,t){return e+Math.floor(Math.random()*(t-e+1))}function Vt(e,t){return e+Math.random()*(t-e)}function Ht(e){return e*(.5-Math.random())}function Ut(e){e!==void 0&&(Ot=e);let t=Ot+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function Wt(Line truncated
|
||||
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
||||
}`,Sa=`void main() {
|
||||
gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{T as e,f as t,h as n,u as r}from"./runtime-core.esm-bundler-CINEgm0a.js";var i={class:`p-3 sm:p-6`},a=n({name:`HelpView`,__name:`Help`,setup(n){return(n,a)=>(e(),r(`div`,i,[...a[0]||=[t(`<div class="glass-card backdrop-blur border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-4 sm:p-8"><h1 class="text-content-primary text-ui-title sm:text-ui-title-lg font-semibold mb-4 sm:mb-6"> Help & Documentation </h1><div class="text-center py-12"><div class="text-primary mb-6"><svg class="w-20 h-20 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.746 0 3.332.477 4.5 1.253v13C19.832 18.477 18.246 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path></svg></div><h2 class="text-content-primary text-ui-section sm:text-ui-title font-medium mb-3"> Repeater Wiki </h2><p class="text-content-secondary dark:text-content-muted text-ui-label sm:text-ui-body mb-8 max-w-md mx-auto"> Access documentation, setup guides, troubleshooting tips, and community resources on our official wiki. </p><a href="https://github.com/openhop-dev/openhop-repeater/wiki" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 font-medium py-3 px-6 rounded-xl transition-colors bg-primary/opacity-medium hover:bg-primary/opacity-medium border border-primary/opacity-heavy text-primary"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path></svg> Visit Wiki Documentation </a><div class="mt-8 text-xs text-content-muted"> Opens in a new tab </div></div></div>`,1)]]))}});export{a as default};
|
||||
import{T as e,f as t,h as n,u as r}from"./runtime-core.esm-bundler-CINEgm0a.js";var i={class:`p-3 sm:p-6`},a=n({name:`HelpView`,__name:`Help`,setup(n){return(n,a)=>(e(),r(`div`,i,[...a[0]||=[t(`<div class="glass-card backdrop-blur border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-4 sm:p-8"><h1 class="text-content-primary text-ui-title sm:text-ui-title-lg font-semibold mb-4 sm:mb-6"> Help & Documentation </h1><div class="text-center py-12"><div class="text-primary mb-6"><svg class="w-20 h-20 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.746 0 3.332.477 4.5 1.253v13C19.832 18.477 18.246 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path></svg></div><h2 class="text-content-primary text-ui-section sm:text-ui-title font-medium mb-3"> Repeater Documentation </h2><p class="text-content-secondary dark:text-content-muted text-ui-label sm:text-ui-body mb-8 max-w-md mx-auto"> Access setup guides, configuration references, troubleshooting, and hardware documentation on the official openHop documentation site. </p><a href="https://docs.openhop.dev/projects/openhop-repeater/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 font-medium py-3 px-6 rounded-xl transition-colors bg-primary/opacity-medium hover:bg-primary/opacity-medium border border-primary/opacity-heavy text-primary"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path></svg> Visit Documentation </a><div class="mt-8 text-xs text-content-muted">Opens in a new tab</div></div></div>`,1)]]))}});export{a as default};
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/leaflet-src-Ds2Z6AGo.js","assets/chunk-DECur_0Z.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e}from"./chunk-DECur_0Z.js";import{P as t,T as n,U as r,c as i,h as a,i as o,j as s,l as c,p as l,s as u,u as d,w as f,y as p}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as m,o as h}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{o as g}from"./api-B-2vYkoY.js";import{d as _}from"./index-DoCDF--l.js";/* empty css */var v={class:`glass-card border border-stroke-subtle dark:border-white/opacity-medium rounded-[15px] w-full max-w-3xl max-h-[90vh] flex flex-col shadow-2xl`},y={class:`flex-1 relative min-h-[400px]`},b={class:`p-6 border-t border-stroke-subtle dark:border-stroke/opacity-light space-y-4`},x={class:`grid grid-cols-2 gap-4`},S=_(a({__name:`LocationPicker`,props:{isOpen:{type:Boolean},latitude:{},longitude:{}},emits:[`close`,`select`],setup(a,{emit:_}){let S=a,C=_,w=e=>Math.round(e*1e6)/1e6,T=r(null),E=r(w(S.latitude||0)),D=r(w(S.longitude||0)),O=null,k=null,A=async()=>{if(T.value){j();try{let t=(await g(async()=>{let{default:t}=await import(`./leaflet-src-Ds2Z6AGo.js`).then(t=>e(t.t(),1));return{default:t}},__vite__mapDeps([0,1]))).default;delete t.Icon.Default.prototype._getIconUrl,t.Icon.Default.mergeOptions({iconRetinaUrl:`https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png`,iconUrl:`https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png`,shadowUrl:`https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png`}),await p();let n=E.value||0,r=D.value||0,i=n===0&&r===0?2:13;O=t.map(T.value).setView([n,r],i);try{let e=t.tileLayer(`https://{s}.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}{r}.png`,{maxZoom:19,attribution:`© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors © <a href="https://carto.com/attributions">CARTO</a>`,errorTileUrl:`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==`}),n=t.tileLayer(`https://{s}.basemaps.cartocdn.com/dark_only_labels/{z}/{x}/{y}{r}.png`,{maxZoom:19,attribution:``,errorTileUrl:`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==`});e.addTo(O),n.addTo(O)}catch(e){console.warn(`Error loading tiles:`,e)}(n!==0||r!==0)&&(k=t.marker([n,r]).addTo(O)),O.on(`click`,e=>{E.value=w(e.latlng.lat),D.value=w(e.latlng.lng),k?k.setLatLng(e.latlng):k=t.marker(e.latlng).addTo(O)}),setTimeout(()=>{O?.invalidateSize()},200)}catch(e){console.error(`Failed to initialize map:`,e)}}},j=()=>{O&&(O.remove(),O=null,k=null)};s(()=>S.isOpen,async e=>{e?(await p(),await A()):j()}),s(()=>[S.latitude,S.longitude],([e,t])=>{E.value=w(e),D.value=w(t)});let M=()=>{C(`select`,{latitude:w(E.value),longitude:w(D.value)}),C(`close`)},N=()=>{C(`close`)},P=()=>{navigator.geolocation?navigator.geolocation.getCurrentPosition(async t=>{if(E.value=w(t.coords.latitude),D.value=w(t.coords.longitude),O){O.setView([E.value,D.value],13);let t=(await g(async()=>{let{default:t}=await import(`./leaflet-src-Ds2Z6AGo.js`).then(t=>e(t.t(),1));return{default:t}},__vite__mapDeps([0,1]))).default;k?k.setLatLng([E.value,D.value]):k=t.marker([E.value,D.value]).addTo(O)}},e=>{console.error(`Error getting location:`,e),alert(`Unable to get current location. Please check browser permissions.`)}):alert(`Geolocation is not supported by this browser.`)};return f(()=>{j()}),(e,r)=>(n(),i(o,{to:`body`},[a.isOpen?(n(),d(`div`,{key:0,class:`modal-backdrop z-[400]!`,onClick:m(N,[`self`])},[u(`div`,v,[u(`div`,{class:`flex items-center justify-between p-6 border-b border-stroke-subtle dark:border-stroke/opacity-light`},[r[3]||=u(`h3`,{class:`text-xl font-semibold text-content-primary`},` Select Location `,-1),u(`button`,{onClick:N,class:`text-content-secondary dark:text-content-muted hover:text-content-primary dark:hover:text-content-primary transition-colors`},[...r[2]||=[u(`svg`,{class:`w-6 h-6`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[u(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M6 18L18 6M6 6l12 12`})],-1)]])]),u(`div`,y,[u(`div`,{ref_key:`mapContainer`,ref:T,class:`absolute inset-0 rounded-b-[15px] overflow-hidden`},null,512)]),u(`div`,b,[u(`div`,x,[u(`div`,null,[r[4]||=u(`label`,{class:`block text-sm font-medium text-content-secondary dark:text-content-muted mb-2`},`Latitude`,-1),t(u(`input`,{"onUpdate:modelValue":r[0]||=e=>E.value=e,type:`number`,step:`0.000001`,class:`modal-input-readonly`,readonly:``},null,512),[[h,E.value,void 0,{number:!0}]])]),u(`div`,null,[r[5]||=u(`label`,{class:`block text-sm font-medium text-content-secondary dark:text-content-muted mb-2`},`Longitude`,-1),t(u(`input`,{"onUpdate:modelValue":r[1]||=e=>D.value=e,type:`number`,step:`0.000001`,class:`modal-input-readonly`,readonly:``},null,512),[[h,D.value,void 0,{number:!0}]])])]),u(`div`,{class:`flex gap-3`},[u(`button`,{onClick:P,class:`modal-btn-cancel flex items-center justify-center gap-2`},[...r[6]||=[u(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`Line truncated
|
||||
import{r as e}from"./chunk-DECur_0Z.js";import{P as t,T as n,U as r,c as i,h as a,i as o,j as s,l as c,p as l,s as u,u as d,w as f,y as p}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as m,o as h}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{o as g}from"./api-BgU2z9oO.js";import{d as _}from"./index-DXPlD6DJ.js";/* empty css */var v={class:`glass-card border border-stroke-subtle dark:border-white/opacity-medium rounded-[15px] w-full max-w-3xl max-h-[90vh] flex flex-col shadow-2xl`},y={class:`flex-1 relative min-h-[400px]`},b={class:`p-6 border-t border-stroke-subtle dark:border-stroke/opacity-light space-y-4`},x={class:`grid grid-cols-2 gap-4`},S=_(a({__name:`LocationPicker`,props:{isOpen:{type:Boolean},latitude:{},longitude:{}},emits:[`close`,`select`],setup(a,{emit:_}){let S=a,C=_,w=e=>Math.round(e*1e6)/1e6,T=r(null),E=r(w(S.latitude||0)),D=r(w(S.longitude||0)),O=null,k=null,A=async()=>{if(T.value){j();try{let t=(await g(async()=>{let{default:t}=await import(`./leaflet-src-Ds2Z6AGo.js`).then(t=>e(t.t(),1));return{default:t}},__vite__mapDeps([0,1]))).default;delete t.Icon.Default.prototype._getIconUrl,t.Icon.Default.mergeOptions({iconRetinaUrl:`https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png`,iconUrl:`https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png`,shadowUrl:`https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png`}),await p();let n=E.value||0,r=D.value||0,i=n===0&&r===0?2:13;O=t.map(T.value).setView([n,r],i);try{let e=t.tileLayer(`https://{s}.basemaps.cartocdn.com/dark_nolabels/{z}/{x}/{y}{r}.png`,{maxZoom:19,attribution:`© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors © <a href="https://carto.com/attributions">CARTO</a>`,errorTileUrl:`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==`}),n=t.tileLayer(`https://{s}.basemaps.cartocdn.com/dark_only_labels/{z}/{x}/{y}{r}.png`,{maxZoom:19,attribution:``,errorTileUrl:`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==`});e.addTo(O),n.addTo(O)}catch(e){console.warn(`Error loading tiles:`,e)}(n!==0||r!==0)&&(k=t.marker([n,r]).addTo(O)),O.on(`click`,e=>{E.value=w(e.latlng.lat),D.value=w(e.latlng.lng),k?k.setLatLng(e.latlng):k=t.marker(e.latlng).addTo(O)}),setTimeout(()=>{O?.invalidateSize()},200)}catch(e){console.error(`Failed to initialize map:`,e)}}},j=()=>{O&&(O.remove(),O=null,k=null)};s(()=>S.isOpen,async e=>{e?(await p(),await A()):j()}),s(()=>[S.latitude,S.longitude],([e,t])=>{E.value=w(e),D.value=w(t)});let M=()=>{C(`select`,{latitude:w(E.value),longitude:w(D.value)}),C(`close`)},N=()=>{C(`close`)},P=()=>{navigator.geolocation?navigator.geolocation.getCurrentPosition(async t=>{if(E.value=w(t.coords.latitude),D.value=w(t.coords.longitude),O){O.setView([E.value,D.value],13);let t=(await g(async()=>{let{default:t}=await import(`./leaflet-src-Ds2Z6AGo.js`).then(t=>e(t.t(),1));return{default:t}},__vite__mapDeps([0,1]))).default;k?k.setLatLng([E.value,D.value]):k=t.marker([E.value,D.value]).addTo(O)}},e=>{console.error(`Error getting location:`,e),alert(`Unable to get current location. Please check browser permissions.`)}):alert(`Geolocation is not supported by this browser.`)};return f(()=>{j()}),(e,r)=>(n(),i(o,{to:`body`},[a.isOpen?(n(),d(`div`,{key:0,class:`modal-backdrop z-[400]!`,onClick:m(N,[`self`])},[u(`div`,v,[u(`div`,{class:`flex items-center justify-between p-6 border-b border-stroke-subtle dark:border-stroke/opacity-light`},[r[3]||=u(`h3`,{class:`text-xl font-semibold text-content-primary`},` Select Location `,-1),u(`button`,{onClick:N,class:`text-content-secondary dark:text-content-muted hover:text-content-primary dark:hover:text-content-primary transition-colors`},[...r[2]||=[u(`svg`,{class:`w-6 h-6`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[u(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M6 18L18 6M6 6l12 12`})],-1)]])]),u(`div`,y,[u(`div`,{ref_key:`mapContainer`,ref:T,class:`absolute inset-0 rounded-b-[15px] overflow-hidden`},null,512)]),u(`div`,b,[u(`div`,x,[u(`div`,null,[r[4]||=u(`label`,{class:`block text-sm font-medium text-content-secondary dark:text-content-muted mb-2`},`Latitude`,-1),t(u(`input`,{"onUpdate:modelValue":r[0]||=e=>E.value=e,type:`number`,step:`0.000001`,class:`modal-input-readonly`,readonly:``},null,512),[[h,E.value,void 0,{number:!0}]])]),u(`div`,null,[r[5]||=u(`label`,{class:`block text-sm font-medium text-content-secondary dark:text-content-muted mb-2`},`Longitude`,-1),t(u(`input`,{"onUpdate:modelValue":r[1]||=e=>D.value=e,type:`number`,step:`0.000001`,class:`modal-input-readonly`,readonly:``},null,512),[[h,D.value,void 0,{number:!0}]])])]),u(`div`,{class:`flex gap-3`},[u(`button`,{onClick:P,class:`modal-btn-cancel flex items-center justify-center gap-2`},[...r[6]||=[u(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{C as e,P as t,T as n,U as r,_t as i,c as a,h as ee,l as o,m as s,o as c,s as l,u,x as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as te,o as f}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{c as ne,f as p,g as m,i as h,r as g}from"./api-B-2vYkoY.js";import{t as _}from"./useTheme-BtGkqRpn.js";import{t as re}from"./Spinner-D-jFxDsV.js";import{a as ie,d as v,i as ae,l as oe,n as se,u as ce}from"./index-DoCDF--l.js";var le={class:`min-h-screen bg-background dark:bg-background overflow-hidden relative flex items-start sm:items-center justify-center p-2 sm:p-4 pt-1`},ue={class:`absolute top-4 right-4 z-20`},de={class:`login-card relative z-10 w-full max-w-md p-6 sm:p-10 rounded-[16px] sm:rounded-[24px] border-0 sm:border sm:border-stroke-subtle dark:sm:border-stroke/opacity-medium backdrop-blur-xl`},fe={class:`relative login-content`},pe={class:`text-center`},me={class:`flex justify-center`},he=[`src`],y={key:0,class:`text-content-primary text-sm sm:text-base font-semibold mb-1`},b={class:`form-group`},x={class:`relative`},S=[`disabled`],C={class:`form-group`},w={class:`relative`},T=[`disabled`],E={key:0,class:`bg-accent-red/opacity-light border border-accent-red/opacity-medium rounded-[12px] p-2.5 sm:p-3.5 backdrop-blur-sm animate-shake`},D={class:`text-accent-red text-xs sm:text-sm font-medium`},O=[`disabled`],k={key:1,class:`w-4 h-4 sm:w-5 sm:h-5 group-hover:translate-x-1 transition-transform duration-300`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},A={class:`relative`},j={class:`mt-4 sm:mt-5 pt-3 sm:pt-4 border-t border-stroke-subtle dark:border-stroke/opacity-light`},M={class:`flex items-center justify-center gap-3`},N={href:`https://github.com/rightup`,target:`_blank`,class:`inline-flex items-center justify-center w-9 h-9 sm:w-10 sm:h-10 rounded-xl bg-content-primary dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-medium hover:bg-primary/opacity-medium dark:hover:bg-primary/opacity-medium hover:border-primary/opacity-heavy dark:hover:border-primary/opacity-heavy transition-all duration-300 hover:scale-110 group backdrop-blur-sm`,title:`GitHub`},P={href:`https://buymeacoffee.com/rightup`,target:`_blank`,class:`inline-flex items-center justify-center w-9 h-9 sm:w-10 sm:h-10 rounded-xl bg-content-primary dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-medium hover:bg-secondary/opacity-light hover:border-secondary/opacity-heavy dark:hover:border-secondary/opacity-heavy transition-all duration-300 hover:scale-110 group backdrop-blur-sm`,title:`Buy Me a Coffee`},F=v(ee({name:`LoginView`,__name:`Login`,setup(ee){let v=m(),F=h(),{theme:ge}=_(),I=c(()=>ie),L=r(`admin`),R=r(``),z=r(!1),B=r(``),V=r(0),H=r(!1),U=r(!1),W=r(``),G=c(()=>V.value>0),K=null,q=null,J=e=>{let t=document.querySelector(`meta[name="viewport"]`);if(t){if(e){q===null&&(q=t.getAttribute(`content`)),t.setAttribute(`content`,`width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover`);return}q===null?t.setAttribute(`content`,`width=device-width, initial-scale=1, viewport-fit=cover`):(t.setAttribute(`content`,q),q=null)}},_e=()=>{let e=document.activeElement;e instanceof HTMLElement&&e.blur()},Y=()=>new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e()})})}),ve=async()=>{let e=window.visualViewport;if(!e||e.scale<=1.01)return;let t=document.querySelector(`meta[name="viewport"]`);if(!t)return;let n=t.getAttribute(`content`)||`width=device-width, initial-scale=1, viewport-fit=cover`;t.setAttribute(`content`,`width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover`),await Y(),t.setAttribute(`content`,n),await Y()},X=async()=>{_e(),await Y(),await ve(),window.scrollTo({top:0,left:0,behavior:`auto`}),await v.replace(`/`),await Y(),window.dispatchEvent(new Event(`resize`))},Z=()=>{K&&=(clearInterval(K),null)},ye=e=>{V.value=Math.max(1,Math.floor(e)),Z(),K=setInterval(()=>{if(V.value<=1){V.value=0,Z();return}--V.value},1e3)};d(()=>{Z(),J(!1)}),e(async()=>{try{W.value=(await g.get(`/api/site_info`)).data?.site_name??``}catch{}});let be=async()=>{if(G.value){B.value=`Too many login attempts. Please try again in ${V.value}s.`;return}B.value=``,z.value=!0;try{let e=ne(),t=(await g.post(`/auth/login`,{username:L.value,password:R.value,client_id:e})).data;t.success&&t.token?(V.value=0,Z(),R.value===`admin123`?(p(t.token),F.markAuthenticated(),U.value=!0,H.value=!0):(p(t.token),F.markAuthenticated(),await X())):B.value=t.error||`Login failed`}catch(e){console.error(`Login error:`,e);let t=e,n=t.response?.status,r=Number(t.response?.headers?.[`retry-after`]??0),i=Number(t.response?.data?.retry_after??0),a=Math.max(r,i);n===429&&a>0?(ye(a),B.value=t.response?.data?.error||`Too many login attempts. Please try again in ${V.value}s.`):B.value=t.response?.data?.error||`Connection error. Please try again.`}finally{z.value=!1}},xe=()=>{H.value=!1,X()},Se=()=>{H.value=!1,U.value&&X()},Q=()=>{J(!0)},$=()=>{J(!1)};returnLine truncated
|
||||
import{C as e,P as t,T as n,U as r,_t as i,c as a,h as ee,l as o,m as s,o as c,s as l,u,x as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as te,o as f}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{c as ne,f as p,g as m,i as h,r as g}from"./api-BgU2z9oO.js";import{t as _}from"./useTheme-BtGkqRpn.js";import{t as re}from"./Spinner-D-jFxDsV.js";import{a as ie,d as v,i as ae,l as oe,n as se,u as ce}from"./index-DXPlD6DJ.js";var le={class:`min-h-screen bg-background dark:bg-background overflow-hidden relative flex items-start sm:items-center justify-center p-2 sm:p-4 pt-1`},ue={class:`absolute top-4 right-4 z-20`},de={class:`login-card relative z-10 w-full max-w-md p-6 sm:p-10 rounded-[16px] sm:rounded-[24px] border-0 sm:border sm:border-stroke-subtle dark:sm:border-stroke/opacity-medium backdrop-blur-xl`},fe={class:`relative login-content`},pe={class:`text-center`},me={class:`flex justify-center`},he=[`src`],y={key:0,class:`text-content-primary text-sm sm:text-base font-semibold mb-1`},b={class:`form-group`},x={class:`relative`},S=[`disabled`],C={class:`form-group`},w={class:`relative`},T=[`disabled`],E={key:0,class:`bg-accent-red/opacity-light border border-accent-red/opacity-medium rounded-[12px] p-2.5 sm:p-3.5 backdrop-blur-sm animate-shake`},D={class:`text-accent-red text-xs sm:text-sm font-medium`},O=[`disabled`],k={key:1,class:`w-4 h-4 sm:w-5 sm:h-5 group-hover:translate-x-1 transition-transform duration-300`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},A={class:`relative`},j={class:`mt-4 sm:mt-5 pt-3 sm:pt-4 border-t border-stroke-subtle dark:border-stroke/opacity-light`},M={class:`flex items-center justify-center gap-3`},N={href:`https://github.com/rightup`,target:`_blank`,class:`inline-flex items-center justify-center w-9 h-9 sm:w-10 sm:h-10 rounded-xl bg-content-primary dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-medium hover:bg-primary/opacity-medium dark:hover:bg-primary/opacity-medium hover:border-primary/opacity-heavy dark:hover:border-primary/opacity-heavy transition-all duration-300 hover:scale-110 group backdrop-blur-sm`,title:`GitHub`},P={href:`https://buymeacoffee.com/rightup`,target:`_blank`,class:`inline-flex items-center justify-center w-9 h-9 sm:w-10 sm:h-10 rounded-xl bg-content-primary dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-medium hover:bg-secondary/opacity-light hover:border-secondary/opacity-heavy dark:hover:border-secondary/opacity-heavy transition-all duration-300 hover:scale-110 group backdrop-blur-sm`,title:`Buy Me a Coffee`},F=v(ee({name:`LoginView`,__name:`Login`,setup(ee){let v=m(),F=h(),{theme:ge}=_(),I=c(()=>ie),L=r(`admin`),R=r(``),z=r(!1),B=r(``),V=r(0),H=r(!1),U=r(!1),W=r(``),G=c(()=>V.value>0),K=null,q=null,J=e=>{let t=document.querySelector(`meta[name="viewport"]`);if(t){if(e){q===null&&(q=t.getAttribute(`content`)),t.setAttribute(`content`,`width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover`);return}q===null?t.setAttribute(`content`,`width=device-width, initial-scale=1, viewport-fit=cover`):(t.setAttribute(`content`,q),q=null)}},_e=()=>{let e=document.activeElement;e instanceof HTMLElement&&e.blur()},Y=()=>new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e()})})}),ve=async()=>{let e=window.visualViewport;if(!e||e.scale<=1.01)return;let t=document.querySelector(`meta[name="viewport"]`);if(!t)return;let n=t.getAttribute(`content`)||`width=device-width, initial-scale=1, viewport-fit=cover`;t.setAttribute(`content`,`width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover`),await Y(),t.setAttribute(`content`,n),await Y()},X=async()=>{_e(),await Y(),await ve(),window.scrollTo({top:0,left:0,behavior:`auto`}),await v.replace(`/`),await Y(),window.dispatchEvent(new Event(`resize`))},Z=()=>{K&&=(clearInterval(K),null)},ye=e=>{V.value=Math.max(1,Math.floor(e)),Z(),K=setInterval(()=>{if(V.value<=1){V.value=0,Z();return}--V.value},1e3)};d(()=>{Z(),J(!1)}),e(async()=>{try{W.value=(await g.get(`/api/site_info`)).data?.site_name??``}catch{}});let be=async()=>{if(G.value){B.value=`Too many login attempts. Please try again in ${V.value}s.`;return}B.value=``,z.value=!0;try{let e=ne(),t=(await g.post(`/auth/login`,{username:L.value,password:R.value,client_id:e})).data;t.success&&t.token?(V.value=0,Z(),R.value===`admin123`?(p(t.token),F.markAuthenticated(),U.value=!0,H.value=!0):(p(t.token),F.markAuthenticated(),await X())):B.value=t.error||`Login failed`}catch(e){console.error(`Login error:`,e);let t=e,n=t.response?.status,r=Number(t.response?.headers?.[`retry-after`]??0),i=Number(t.response?.data?.retry_after??0),a=Math.max(r,i);n===429&&a>0?(ye(a),B.value=t.response?.data?.error||`Too many login attempts. Please try again in ${V.value}s.`):B.value=t.response?.data?.error||`Connection error. Please try again.`}finally{z.value=!1}},xe=()=>{H.value=!1,X()},Se=()=>{H.value=!1,U.value&&X()},Q=()=>{J(!0)},$=()=>{J(!1)};returnLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,h as ee,ht as o,l as s,m as te,o as c,p as l,r as u,s as d,u as f,x as ne,y as re}from"./runtime-core.esm-bundler-CINEgm0a.js";import{o as p}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{d as ie,i as ae,l as m,t as oe}from"./api-B-2vYkoY.js";import{t as se}from"./Spinner-D-jFxDsV.js";var ce={class:`space-y-6`},le={class:`glass-card backdrop-blur border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-6 space-y-5`},ue={class:`flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between`},de={class:`flex flex-wrap items-center gap-2`},fe=[`disabled`],pe={class:`grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4`},me={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},he={class:`mt-1 text-xl font-semibold text-content-primary`},ge={class:`text-xs text-content-secondary dark:text-content-muted`},_e={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},ve={class:`mt-1 text-xl font-semibold text-content-primary`},ye={class:`text-xs text-content-secondary dark:text-content-muted`},be={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},xe={class:`mt-1 text-xl font-semibold text-content-primary`},Se={class:`text-xs text-content-secondary dark:text-content-muted`},Ce={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},we={class:`mt-1 text-sm font-semibold text-content-primary`},Te={class:`text-xs text-content-secondary dark:text-content-muted`},Ee={class:`rounded-2xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-main dark:bg-surface-900 p-4 space-y-4`},De={class:`grid grid-cols-1 xl:grid-cols-12 gap-4`},Oe={class:`xl:col-span-8`},ke={class:`xl:col-span-4`},Ae={class:`flex flex-wrap items-center gap-2 xl:justify-end`},je={class:`grid grid-cols-1 xl:grid-cols-2 gap-4`},Me={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/[0.03] p-4`},Ne={class:`flex flex-wrap items-center justify-between gap-2 mb-3`},Pe={class:`text-xs text-content-secondary dark:text-content-muted`},Fe={class:`flex flex-wrap gap-2`},Ie=[`onClick`],Le={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/[0.03] overflow-hidden`},Re={class:`text-xs text-content-secondary dark:text-content-muted`},ze={key:0,class:`border-t border-stroke-subtle dark:border-stroke/opacity-medium px-4 py-4 space-y-3`},Be={class:`flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between`},Ve={class:`max-h-52 overflow-y-auto pr-1`},He={key:0,class:`flex flex-wrap gap-2`},Ue=[`onClick`],We={key:1,class:`text-sm text-content-secondary dark:text-content-muted py-6 text-center`},Ge={class:`glass-card backdrop-blur border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] overflow-hidden`},Ke={key:0,class:`p-8 text-center`},qe={key:1,class:`p-8 text-center`},Je={class:`text-content-secondary dark:text-content-muted mb-4`},Ye={key:2,class:`relative`},Xe={key:0,class:`p-10 text-center text-content-secondary`},Ze={key:1,class:`divide-y divide-stroke-subtle dark:divide-white/opacity-subtle`},Qe=[`onClick`],$e={class:`flex flex-col gap-0.5 xl:flex-row xl:items-start`},et={class:`flex flex-wrap items-center gap-1.5 xl:min-w-[260px] xl:max-w-[260px] xl:flex-none`},tt={class:`text-[11px] text-content-muted`},nt={class:`px-1.5 py-0.5 text-[10px] font-semibold rounded-full border border-stroke-subtle dark:border-white/opacity-light bg-stroke-subtle/50 dark:bg-white/opacity-subtle text-content-secondary dark:text-content-muted`},rt={class:`min-w-0 flex-1`},it={class:`text-xs leading-4 break-words text-content-primary`},at={key:0,class:`mt-3 rounded-xl border border-stroke-subtle dark:border-white/opacity-light bg-background-mute dark:bg-black/opacity-medium p-3 space-y-3 text-xs text-content-secondary`},ot={class:`grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-4`},st={class:`mt-1 text-content-primary`},ct={class:`mt-1 text-content-primary`},lt={class:`mt-1 text-content-primary`},ut={class:`mt-1 text-content-primary`},dt={class:`whitespace-pre-wrap break-words text-content-primary`},ft={key:0},pt={class:`whitespace-pre-wrap break-words text-accent-red/opacity-heavy`},mt={key:0,class:`absolute bottom-4 right-4`},h=1e3,ht=3e3,g=ee({name:`LogsView`,__name:`Logs`,setup(ee){let g=i([]),_=i(new Set),v=i(new Set([`DEBUG`,`INFO`,`WARNING`,`ERROR`,`WARN`])),y=i(new Set),b=i(new Set),x=i(!0),S=i(!1),C=i(null),w=i(`connecting`),T=i(!0),E=i(!0),D=i(0),O=i(``),k=i(``),A=i(null),j=i(!1),M=i(null),N=i(null),P=i(nulLine truncated
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,h as ee,ht as o,l as s,m as te,o as c,p as l,r as u,s as d,u as f,x as ne,y as re}from"./runtime-core.esm-bundler-CINEgm0a.js";import{o as p}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{d as ie,i as ae,l as m,t as oe}from"./api-BgU2z9oO.js";import{t as se}from"./Spinner-D-jFxDsV.js";var ce={class:`space-y-6`},le={class:`glass-card backdrop-blur border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-6 space-y-5`},ue={class:`flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between`},de={class:`flex flex-wrap items-center gap-2`},fe=[`disabled`],pe={class:`grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4`},me={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},he={class:`mt-1 text-xl font-semibold text-content-primary`},ge={class:`text-xs text-content-secondary dark:text-content-muted`},_e={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},ve={class:`mt-1 text-xl font-semibold text-content-primary`},ye={class:`text-xs text-content-secondary dark:text-content-muted`},be={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},xe={class:`mt-1 text-xl font-semibold text-content-primary`},Se={class:`text-xs text-content-secondary dark:text-content-muted`},Ce={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle px-4 py-3`},we={class:`mt-1 text-sm font-semibold text-content-primary`},Te={class:`text-xs text-content-secondary dark:text-content-muted`},Ee={class:`rounded-2xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-main dark:bg-surface-900 p-4 space-y-4`},De={class:`grid grid-cols-1 xl:grid-cols-12 gap-4`},Oe={class:`xl:col-span-8`},ke={class:`xl:col-span-4`},Ae={class:`flex flex-wrap items-center gap-2 xl:justify-end`},je={class:`grid grid-cols-1 xl:grid-cols-2 gap-4`},Me={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/[0.03] p-4`},Ne={class:`flex flex-wrap items-center justify-between gap-2 mb-3`},Pe={class:`text-xs text-content-secondary dark:text-content-muted`},Fe={class:`flex flex-wrap gap-2`},Ie=[`onClick`],Le={class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-medium bg-background-mute/opacity-heavy dark:bg-white/[0.03] overflow-hidden`},Re={class:`text-xs text-content-secondary dark:text-content-muted`},ze={key:0,class:`border-t border-stroke-subtle dark:border-stroke/opacity-medium px-4 py-4 space-y-3`},Be={class:`flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between`},Ve={class:`max-h-52 overflow-y-auto pr-1`},He={key:0,class:`flex flex-wrap gap-2`},Ue=[`onClick`],We={key:1,class:`text-sm text-content-secondary dark:text-content-muted py-6 text-center`},Ge={class:`glass-card backdrop-blur border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] overflow-hidden`},Ke={key:0,class:`p-8 text-center`},qe={key:1,class:`p-8 text-center`},Je={class:`text-content-secondary dark:text-content-muted mb-4`},Ye={key:2,class:`relative`},Xe={key:0,class:`p-10 text-center text-content-secondary`},Ze={key:1,class:`divide-y divide-stroke-subtle dark:divide-white/opacity-subtle`},Qe=[`onClick`],$e={class:`flex flex-col gap-0.5 xl:flex-row xl:items-start`},et={class:`flex flex-wrap items-center gap-1.5 xl:min-w-[260px] xl:max-w-[260px] xl:flex-none`},tt={class:`text-[11px] text-content-muted`},nt={class:`px-1.5 py-0.5 text-[10px] font-semibold rounded-full border border-stroke-subtle dark:border-white/opacity-light bg-stroke-subtle/50 dark:bg-white/opacity-subtle text-content-secondary dark:text-content-muted`},rt={class:`min-w-0 flex-1`},it={class:`text-xs leading-4 break-words text-content-primary`},at={key:0,class:`mt-3 rounded-xl border border-stroke-subtle dark:border-white/opacity-light bg-background-mute dark:bg-black/opacity-medium p-3 space-y-3 text-xs text-content-secondary`},ot={class:`grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-4`},st={class:`mt-1 text-content-primary`},ct={class:`mt-1 text-content-primary`},lt={class:`mt-1 text-content-primary`},ut={class:`mt-1 text-content-primary`},dt={class:`whitespace-pre-wrap break-words text-content-primary`},ft={key:0},pt={class:`whitespace-pre-wrap break-words text-accent-red/opacity-heavy`},mt={key:0,class:`absolute bottom-4 right-4`},h=1e3,ht=3e3,g=ee({name:`LogsView`,__name:`Logs`,setup(ee){let g=i([]),_=i(new Set),v=i(new Set([`DEBUG`,`INFO`,`WARNING`,`ERROR`,`WARN`])),y=i(new Set),b=i(new Set),x=i(!0),S=i(!1),C=i(null),w=i(`connecting`),T=i(!0),E=i(!0),D=i(0),O=i(``),k=i(``),A=i(null),j=i(!1),M=i(null),N=i(null),P=i(nulLine truncated
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import{r as e}from"./chunk-DECur_0Z.js";import{C as t,D as n,N as r,P as i,T as a,U as o,X as s,_t as c,c as l,f as u,gt as d,h as f,ht as p,i as m,j as h,l as g,m as _,o as v,p as y,r as b,s as x,u as S,w as C,y as w}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as T,l as E,o as D,s as O,t as k}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as A}from"./api-B-2vYkoY.js";import{t as j}from"./system-uA3cZx_m.js";import{a as M,c as N,i as P,l as F,o as I,r as L,s as R,u as z}from"./formatters-vw234I-c.js";import{i as ee,n as B,r as te,t as ne}from"./dataService-CPAucQH-.js";import{t as V}from"./createLucideIcon-C08u_PTE.js";import{t as H}from"./Spinner-D-jFxDsV.js";import{c as U,d as W,s as G}from"./index-DoCDF--l.js";import{t as K}from"./leaflet-src-Ds2Z6AGo.js";/* empty css */import{n as q,t as J}from"./CopyLabel-CpHEW2NL.js";import{n as re,t as ie}from"./SignalBars-Boub7Vuj.js";var ae=V(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),oe={class:`modal-card max-w-md`},Y={class:`bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-lg p-4 mb-6`},X={class:`flex items-center gap-3`},se={class:`flex-1 min-w-0`},ce={class:`text-content-primary font-medium truncate`},le={class:`text-content-secondary dark:text-content-muted text-sm font-mono`},ue={key:0,class:`text-white/50 text-xs`},de={key:1,class:`text-white/50 text-xs`},fe=f({__name:`DeleteNeighborModal`,props:{show:{type:Boolean},neighbor:{}},emits:[`close`,`delete`],setup(e,{emit:t}){let n=e,r=t,i=()=>{n.neighbor&&(r(`delete`,n.neighbor.id),o())},o=()=>{r(`close`)};return(t,n)=>(a(),l(m,{to:`body`},[e.show&&e.neighbor?(a(),S(`div`,{key:0,onClick:n[0]||=E(e=>o(),[`self`]),class:`modal-backdrop-heavy`},[x(`div`,oe,[x(`div`,{class:`flex items-center gap-3 mb-6`},[n[2]||=x(`svg`,{class:`w-6 h-6 text-accent-red`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[x(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z`})],-1),n[3]||=x(`div`,null,[x(`h3`,{class:`text-xl font-semibold text-content-primary`},` Delete Neighbor `),x(`p`,{class:`text-content-secondary dark:text-content-muted text-sm mt-1`},` Are you sure you want to delete this neighbor? `)],-1),x(`button`,{onClick:o,class:`ml-auto text-content-secondary dark:text-content-muted hover:text-content-primary dark:hover:text-content-primary transition-colors`},[...n[1]||=[x(`svg`,{class:`w-5 h-5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[x(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M6 18L18 6M6 6l12 12`})],-1)]])]),x(`div`,Y,[x(`div`,X,[x(`div`,se,[x(`div`,ce,c(e.neighbor?.node_name||e.neighbor?.long_name||e.neighbor?.short_name||`Unknown`),1),x(`div`,le,` ID: `+c(e.neighbor?.node_num_hex||e.neighbor?.node_num||e.neighbor?.id||`N/A`),1),e.neighbor?.contact_type?(a(),S(`div`,ue,c(e.neighbor.contact_type),1)):g(``,!0),e.neighbor?.hw_model?(a(),S(`div`,de,c(e.neighbor.hw_model),1)):g(``,!0)])])]),n[4]||=x(`div`,{class:`bg-accent-red/opacity-light border border-accent-red/opacity-medium rounded-lg p-4 mb-6`},[x(`div`,{class:`flex items-center gap-2 text-accent-red text-sm`},[x(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[x(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})]),x(`span`,null,`This action cannot be undone`)])],-1),x(`div`,{class:`flex gap-3`},[x(`button`,{onClick:o,class:`flex-1 px-4 py-3 bg-background-mute dark:bg-white/opacity-subtle hover:bg-stroke-subtle dark:hover:bg-white/opacity-light border border-stroke-subtle dark:border-stroke/opacity-medium text-content-primary rounded-lg transition-colors`},` Cancel `),x(`button`,{onClick:i,class:`modal-btn-danger`},` Delete `)])])])):g(``,!0)]))}}),pe={class:`p-6 space-y-4`},me={class:`flex flex-wrap items-center gap-3 text-sm`},he={key:0,class:`text-content-secondary dark:text-content-muted`},ge={key:1,class:`text-content-secondary dark:text-content-muted`},_e={class:`text-content-secondary dark:text-content-muted`},ve={key:0,class:`text-center py-10`},ye={key:1,class:`rounded-xl border border-accent-red/opacity-medium bg-accent-red/opacity-light p-4 text-accent-red`},be={key:2,class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-light bg-background-mute dark:bg-white/opacity-subtle p-6 text-center text-content-secondary dark:text-content-muted`},xe={key:3,class:`max-h-[26rem] overflow-y-auto space-y-3 pr-1`},Se={class:`flex items-start justify-between gap-4`},Ce={class:`min-w-0 flex-1`},we={class:`flex
Line truncated
|
||||
import{r as e}from"./chunk-DECur_0Z.js";import{C as t,D as n,N as r,P as i,T as a,U as o,X as s,_t as c,c as l,f as u,gt as d,h as f,ht as p,i as m,j as h,l as g,m as _,o as v,p as y,r as b,s as x,u as S,w as C,y as w}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as T,l as E,o as D,s as O,t as k}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as A}from"./api-BgU2z9oO.js";import{t as j}from"./system-BVs_Y0rK.js";import{a as M,c as N,i as P,l as F,o as I,r as L,s as R,u as z}from"./formatters-vw234I-c.js";import{i as ee,n as B,r as te,t as ne}from"./dataService-4qyr7nMC.js";import{t as V}from"./createLucideIcon-C08u_PTE.js";import{t as H}from"./Spinner-D-jFxDsV.js";import{c as U,d as W,s as G}from"./index-DXPlD6DJ.js";import{t as K}from"./leaflet-src-Ds2Z6AGo.js";/* empty css */import{n as q,t as J}from"./CopyLabel-CpHEW2NL.js";import{n as re,t as ie}from"./SignalBars-BHfvDDnj.js";var ae=V(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),oe={class:`modal-card max-w-md`},Y={class:`bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-lg p-4 mb-6`},X={class:`flex items-center gap-3`},se={class:`flex-1 min-w-0`},ce={class:`text-content-primary font-medium truncate`},le={class:`text-content-secondary dark:text-content-muted text-sm font-mono`},ue={key:0,class:`text-white/50 text-xs`},de={key:1,class:`text-white/50 text-xs`},fe=f({__name:`DeleteNeighborModal`,props:{show:{type:Boolean},neighbor:{}},emits:[`close`,`delete`],setup(e,{emit:t}){let n=e,r=t,i=()=>{n.neighbor&&(r(`delete`,n.neighbor.id),o())},o=()=>{r(`close`)};return(t,n)=>(a(),l(m,{to:`body`},[e.show&&e.neighbor?(a(),S(`div`,{key:0,onClick:n[0]||=E(e=>o(),[`self`]),class:`modal-backdrop-heavy`},[x(`div`,oe,[x(`div`,{class:`flex items-center gap-3 mb-6`},[n[2]||=x(`svg`,{class:`w-6 h-6 text-accent-red`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[x(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z`})],-1),n[3]||=x(`div`,null,[x(`h3`,{class:`text-xl font-semibold text-content-primary`},` Delete Neighbor `),x(`p`,{class:`text-content-secondary dark:text-content-muted text-sm mt-1`},` Are you sure you want to delete this neighbor? `)],-1),x(`button`,{onClick:o,class:`ml-auto text-content-secondary dark:text-content-muted hover:text-content-primary dark:hover:text-content-primary transition-colors`},[...n[1]||=[x(`svg`,{class:`w-5 h-5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[x(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M6 18L18 6M6 6l12 12`})],-1)]])]),x(`div`,Y,[x(`div`,X,[x(`div`,se,[x(`div`,ce,c(e.neighbor?.node_name||e.neighbor?.long_name||e.neighbor?.short_name||`Unknown`),1),x(`div`,le,` ID: `+c(e.neighbor?.node_num_hex||e.neighbor?.node_num||e.neighbor?.id||`N/A`),1),e.neighbor?.contact_type?(a(),S(`div`,ue,c(e.neighbor.contact_type),1)):g(``,!0),e.neighbor?.hw_model?(a(),S(`div`,de,c(e.neighbor.hw_model),1)):g(``,!0)])])]),n[4]||=x(`div`,{class:`bg-accent-red/opacity-light border border-accent-red/opacity-medium rounded-lg p-4 mb-6`},[x(`div`,{class:`flex items-center gap-2 text-accent-red text-sm`},[x(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[x(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})]),x(`span`,null,`This action cannot be undone`)])],-1),x(`div`,{class:`flex gap-3`},[x(`button`,{onClick:o,class:`flex-1 px-4 py-3 bg-background-mute dark:bg-white/opacity-subtle hover:bg-stroke-subtle dark:hover:bg-white/opacity-light border border-stroke-subtle dark:border-stroke/opacity-medium text-content-primary rounded-lg transition-colors`},` Cancel `),x(`button`,{onClick:i,class:`modal-btn-danger`},` Delete `)])])])):g(``,!0)]))}}),pe={class:`p-6 space-y-4`},me={class:`flex flex-wrap items-center gap-3 text-sm`},he={key:0,class:`text-content-secondary dark:text-content-muted`},ge={key:1,class:`text-content-secondary dark:text-content-muted`},_e={class:`text-content-secondary dark:text-content-muted`},ve={key:0,class:`text-center py-10`},ye={key:1,class:`rounded-xl border border-accent-red/opacity-medium bg-accent-red/opacity-light p-4 text-accent-red`},be={key:2,class:`rounded-xl border border-stroke-subtle dark:border-stroke/opacity-light bg-background-mute dark:bg-white/opacity-subtle p-6 text-center text-content-secondary dark:text-content-muted`},xe={key:3,class:`max-h-[26rem] overflow-y-auto space-y-3 pr-1`},Se={class:`flex items-start justify-between gap-4`},Ce={class:`min-w-0 flex-1`},we={class:`flex
Line truncated
|
||||
<div style="
|
||||
width: ${t}px;
|
||||
height: ${t}px;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import{C as e,D as t,K as n,N as r,P as i,T as a,U as o,_t as s,c,h as l,ht as ee,i as te,j as u,l as d,m as f,o as p,p as m,r as h,s as g,u as _,x as ne,y as re,z as ie}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as ae,l as oe,o as se}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ce}from"./api-B-2vYkoY.js";import{t as le}from"./index-DoCDF--l.js";import{_ as ue,c as de,f as fe,l as pe,m as me,o as v,p as he,t as y,u as ge,v as _e,y as ve}from"./ChartCard-DvNDqE-i.js";import"./chartjs-adapter-date-fns.esm-C1pzr0Ah.js";var ye={class:`space-y-5`,"data-testid":`neighbour-links-page`},be={class:`flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between`},xe={class:`flex flex-wrap items-center gap-2`},Se=[`value`],Ce={class:`grid grid-cols-2 lg:grid-cols-4 gap-3`},we={class:`glass-card rounded-[15px] p-4`},Te={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-total-links`},Ee={class:`glass-card rounded-[15px] p-4`},De={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-active-links`},Oe={class:`glass-card rounded-[15px] p-4`},ke={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-avg-score`},Ae={class:`glass-card rounded-[15px] p-4`},je={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-duplicate-ratio`},Me={class:`glass-card rounded-[15px] p-4 h-[320px]`},Ne={class:`glass-card rounded-[15px] p-4`,"data-testid":`links-table-wrapper`},Pe={class:`flex flex-col gap-3 md:flex-row md:items-center md:justify-between mb-3`},Fe={class:`flex flex-wrap items-center gap-2`},Ie=[`value`],Le={class:`overflow-x-auto`,"data-testid":`links-table-scroll`},Re={class:`w-full min-w-[980px] text-sm`,"data-testid":`links-table`},ze={class:`text-left border-b border-stroke-subtle`},Be={class:`py-2 pr-3`},Ve={class:`py-2 pr-3`},He={class:`py-2 pr-3`},Ue={class:`py-2 pr-3`},We={class:`py-2 pr-3`},Ge={class:`py-2 pr-3`},Ke=[`onClick`],qe={class:`py-2 pr-3 font-mono text-content-primary`},Je={class:`py-2 pr-3 text-content-primary`},Ye={class:`py-2 pr-3 text-content-primary`},Xe={class:`py-2 pr-3 text-content-primary`},Ze={class:`py-2 pr-3 text-content-primary`},Qe={class:`py-2 pr-3 text-content-primary`},$e={class:`py-2 pr-3 text-content-primary`},et={class:`py-2 pr-3 text-content-secondary`},tt={class:`py-2 pr-0`},nt={key:0},rt={key:0,class:`grid grid-cols-1 xl:grid-cols-3 gap-4`},it={class:`glass-card rounded-[15px] p-4 xl:col-span-2`},at={class:`mt-2 grid grid-cols-1 sm:grid-cols-2 gap-2 text-sm`},ot={class:`font-mono text-content-primary`,"data-testid":`selected-peer`},st={class:`text-content-primary`},ct={class:`text-content-primary`},lt={class:`text-content-primary`},ut={class:`text-content-primary`,"data-testid":`selected-latest-rx-score`},dt={class:`text-content-primary`,"data-testid":`selected-ewma-rx-score`},ft={class:`text-content-primary`},pt={class:`glass-card rounded-[15px] p-4`,"data-testid":`stability-panel`},mt={class:`mt-2 text-xl font-semibold text-content-primary`,"data-testid":`stability-status`},ht={class:`text-sm text-content-secondary mt-1`},gt={class:`mt-3 text-sm text-content-secondary`},_t={class:`text-content-primary`},vt={class:`text-sm text-content-secondary`},yt={class:`text-content-primary`,"data-testid":`rx-score-stddev`},bt={class:`text-xs text-content-secondary mt-2`},xt={key:1,class:`grid grid-cols-1 xl:grid-cols-3 gap-4`,"data-testid":`history-charts`},St={class:`glass-card rounded-[15px] p-4 h-[280px]`},Ct={class:`glass-card rounded-[15px] p-4 h-[280px]`},wt={class:`glass-card rounded-[15px] p-4 h-[280px]`},Tt={key:2,class:`glass-card rounded-[15px] p-6 text-center`,"data-testid":`page-empty`},Et={class:`modal-card max-w-2xl`},Dt={class:`flex items-center justify-between mb-4`},Ot={class:`modal-actions mt-5`},kt=1e3,At=`RX score is a normalised value from 0 to 1 calculated by Core from received SNR, spreading factor and complete received frame length.
|
||||
import{C as e,D as t,K as n,N as r,P as i,T as a,U as o,_t as s,c,h as l,ht as ee,i as te,j as u,l as d,m as f,o as p,p as m,r as h,s as g,u as _,x as ne,y as re,z as ie}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as ae,l as oe,o as se}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ce}from"./api-BgU2z9oO.js";import{t as le}from"./index-DXPlD6DJ.js";import{_ as ue,c as de,f as fe,l as pe,m as me,o as v,p as he,t as y,u as ge,v as _e,y as ve}from"./ChartCard-DvNDqE-i.js";import"./chartjs-adapter-date-fns.esm-aaoeOWeX.js";var ye={class:`space-y-5`,"data-testid":`neighbour-links-page`},be={class:`flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between`},xe={class:`flex flex-wrap items-center gap-2`},Se=[`value`],Ce={class:`grid grid-cols-2 lg:grid-cols-4 gap-3`},we={class:`glass-card rounded-[15px] p-4`},Te={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-total-links`},Ee={class:`glass-card rounded-[15px] p-4`},De={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-active-links`},Oe={class:`glass-card rounded-[15px] p-4`},ke={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-avg-score`},Ae={class:`glass-card rounded-[15px] p-4`},je={class:`text-2xl font-semibold text-content-primary mt-1`,"data-testid":`kpi-duplicate-ratio`},Me={class:`glass-card rounded-[15px] p-4 h-[320px]`},Ne={class:`glass-card rounded-[15px] p-4`,"data-testid":`links-table-wrapper`},Pe={class:`flex flex-col gap-3 md:flex-row md:items-center md:justify-between mb-3`},Fe={class:`flex flex-wrap items-center gap-2`},Ie=[`value`],Le={class:`overflow-x-auto`,"data-testid":`links-table-scroll`},Re={class:`w-full min-w-[980px] text-sm`,"data-testid":`links-table`},ze={class:`text-left border-b border-stroke-subtle`},Be={class:`py-2 pr-3`},Ve={class:`py-2 pr-3`},He={class:`py-2 pr-3`},Ue={class:`py-2 pr-3`},We={class:`py-2 pr-3`},Ge={class:`py-2 pr-3`},Ke=[`onClick`],qe={class:`py-2 pr-3 font-mono text-content-primary`},Je={class:`py-2 pr-3 text-content-primary`},Ye={class:`py-2 pr-3 text-content-primary`},Xe={class:`py-2 pr-3 text-content-primary`},Ze={class:`py-2 pr-3 text-content-primary`},Qe={class:`py-2 pr-3 text-content-primary`},$e={class:`py-2 pr-3 text-content-primary`},et={class:`py-2 pr-3 text-content-secondary`},tt={class:`py-2 pr-0`},nt={key:0},rt={key:0,class:`grid grid-cols-1 xl:grid-cols-3 gap-4`},it={class:`glass-card rounded-[15px] p-4 xl:col-span-2`},at={class:`mt-2 grid grid-cols-1 sm:grid-cols-2 gap-2 text-sm`},ot={class:`font-mono text-content-primary`,"data-testid":`selected-peer`},st={class:`text-content-primary`},ct={class:`text-content-primary`},lt={class:`text-content-primary`},ut={class:`text-content-primary`,"data-testid":`selected-latest-rx-score`},dt={class:`text-content-primary`,"data-testid":`selected-ewma-rx-score`},ft={class:`text-content-primary`},pt={class:`glass-card rounded-[15px] p-4`,"data-testid":`stability-panel`},mt={class:`mt-2 text-xl font-semibold text-content-primary`,"data-testid":`stability-status`},ht={class:`text-sm text-content-secondary mt-1`},gt={class:`mt-3 text-sm text-content-secondary`},_t={class:`text-content-primary`},vt={class:`text-sm text-content-secondary`},yt={class:`text-content-primary`,"data-testid":`rx-score-stddev`},bt={class:`text-xs text-content-secondary mt-2`},xt={key:1,class:`grid grid-cols-1 xl:grid-cols-3 gap-4`,"data-testid":`history-charts`},St={class:`glass-card rounded-[15px] p-4 h-[280px]`},Ct={class:`glass-card rounded-[15px] p-4 h-[280px]`},wt={class:`glass-card rounded-[15px] p-4 h-[280px]`},Tt={key:2,class:`glass-card rounded-[15px] p-6 text-center`,"data-testid":`page-empty`},Et={class:`modal-card max-w-2xl`},Dt={class:`flex items-center justify-between mb-4`},Ot={class:`modal-actions mt-5`},kt=1e3,At=`RX score is a normalised value from 0 to 1 calculated by Core from received SNR, spreading factor and complete received frame length.
|
||||
|
||||
A higher value generally means greater reception margin and/or a shorter frame. It should not be interpreted as a pure signal-strength measurement.`,jt=`The proportion of physical observations recorded as duplicates.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
import{T as e,h as t,m as n,u as r}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as i}from"./PacketTable-D6tdB8OQ.js";var a={class:`space-y-4`},o=t({name:`PacketArchiveView`,__name:`PacketArchive`,setup(t){return(t,o)=>(e(),r(`div`,a,[n(i,{mode:`archive`,title:`Packet Archive`,"default-hours":24})]))}});export{o as default};
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
import{D as e,N as t,T as n,U as r,X as i,_t as a,c as o,gt as s,h as c,ht as l,i as u,j as d,l as f,m as p,o as m,p as h,r as g,s as _,u as v}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as ee,t as te}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as y}from"./api-B-2vYkoY.js";import{d as b}from"./index-DoCDF--l.js";import{n as ne,t as re}from"./SignalBars-Boub7Vuj.js";var ie={class:`bg-white dark:bg-surface-elevated backdrop-blur-xl rounded-[16px] sm:rounded-[20px] shadow-2xl border border-stroke-subtle dark:border-white/opacity-medium flex flex-col h-full overflow-hidden`},ae={class:`flex flex-col sm:flex-row sm:items-start sm:justify-between p-4 sm:p-6 lg:p-8 pb-3 sm:pb-4 shrink-0 gap-3 sm:gap-4`},oe={class:`min-w-0 flex-1`},se={class:`flex flex-wrap gap-2 mt-2`},ce={class:`inline-flex items-center rounded-full bg-accent-cyan/opacity-light text-accent-cyan px-2 py-0.5 text-[11px] sm:text-xs font-medium max-w-full truncate`},le={class:`inline-flex items-center rounded-full bg-accent-orange/opacity-light text-accent-orange px-2 py-0.5 text-[11px] sm:text-xs font-medium max-w-full truncate`},ue={class:`w-full sm:w-auto flex flex-wrap items-center justify-between sm:justify-end gap-2 pt-1 sm:pt-0`},de={key:0,class:`flex items-center gap-2`},fe={class:`flex items-center rounded-lg border border-stroke-subtle dark:border-stroke/opacity-medium overflow-hidden bg-background-mute dark:bg-white/opacity-subtle`},pe=[`disabled`],me=[`disabled`],he={class:`text-xs text-content-secondary dark:text-content-muted font-medium`},ge=[`title`],_e={class:`flex-1 overflow-y-auto custom-scrollbar px-4 sm:px-6 lg:px-8`},ve={class:`mb-6`},ye={class:`glass-card bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[15px] p-4`},be={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},xe={class:`space-y-3`},Se={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ce={class:`text-content-primary font-mono text-sm`},we={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Te={class:`text-content-primary font-mono text-xs break-all`},Ee={key:0,class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},De={class:`text-content-primary font-mono text-xs`},Oe={class:`space-y-3`},ke={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ae={class:`text-content-primary font-semibold`},je={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Me={class:`text-content-primary font-semibold`},x={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ne={key:0,class:`mb-6`},Pe={class:`text-base sm:text-lg font-semibold text-content-primary mb-4 flex items-center`},Fe={class:`bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[15px] p-4 border border-stroke-subtle dark:border-stroke/opacity-light space-y-3`},Ie={class:`flex items-center justify-between gap-2 mb-2`},Le={class:`text-content-primary text-sm font-semibold`},Re={class:`text-content-secondary dark:text-content-muted text-xs font-mono`},ze={class:`mb-2 flex flex-wrap items-start justify-between gap-2 py-1 border-b border-stroke-subtle/60 dark:border-stroke/opacity-light`},Be={class:`text-content-primary text-xs font-mono break-all text-right`},Ve={key:0,class:`space-y-1`},He={class:`text-content-secondary dark:text-content-muted text-xs`},Ue={class:`text-content-primary text-xs font-mono break-all text-right`},We={key:1,class:`text-content-secondary dark:text-content-muted text-xs italic`},Ge={class:`mb-6`},Ke={class:`bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[15px] p-4 border border-stroke-subtle dark:border-stroke/opacity-light`},qe={class:`space-y-3`},Je={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ye={class:`text-content-primary`},Xe={key:0,class:`pt-2`},Ze={class:`glass-card bg-background-mute dark:bg-white/opacity-subtle rounded-[10px] p-4 mb-4`},Qe={class:`w-full overflow-x-auto`},$e={class:`text-content-primary/opacity-heavy text-xs font-mono whitespace-pre leading-relaxed min-w-full`},et={class:`flex items-center justify-between mb-3`},tt={class:`text-content-secondary dark:text-content-primary/opacity-heavy text-sm font-semibold`},nt={class:`text-content-muted text-xs`},rt={class:`bg-background-mute dark:bg-white/opacity-subtle rounded-[8px] p-3 mb-3`},it={class:`font-mono text-xs text-content-primary break-all whitespace-pre-wrap leading-relaxed`},at={class:`bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[10px] overflow-hidden`},ot={key:0,class:`min-w-0`},st={class:`text-accent-cyan text-sm font-mono break-words min-w-0`},ct={class:`text-content-primary text-sm break-words min-w-0`},lt={class:`text-content-primary text-sm font-semibold break-all min-w-0 overflow-hidden`},utLine truncated
|
||||
import{D as e,N as t,T as n,U as r,X as i,_t as a,c as o,gt as s,h as c,ht as l,i as u,j as d,l as f,m as p,o as m,p as h,r as g,s as _,u as v}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as ee,t as te}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as y}from"./api-BgU2z9oO.js";import{d as b}from"./index-DXPlD6DJ.js";import{n as ne,t as re}from"./SignalBars-BHfvDDnj.js";var ie={class:`bg-white dark:bg-surface-elevated backdrop-blur-xl rounded-[16px] sm:rounded-[20px] shadow-2xl border border-stroke-subtle dark:border-white/opacity-medium flex flex-col h-full overflow-hidden`},ae={class:`flex flex-col sm:flex-row sm:items-start sm:justify-between p-4 sm:p-6 lg:p-8 pb-3 sm:pb-4 shrink-0 gap-3 sm:gap-4`},oe={class:`min-w-0 flex-1`},se={class:`flex flex-wrap gap-2 mt-2`},ce={class:`inline-flex items-center rounded-full bg-accent-cyan/opacity-light text-accent-cyan px-2 py-0.5 text-[11px] sm:text-xs font-medium max-w-full truncate`},le={class:`inline-flex items-center rounded-full bg-accent-orange/opacity-light text-accent-orange px-2 py-0.5 text-[11px] sm:text-xs font-medium max-w-full truncate`},ue={class:`w-full sm:w-auto flex flex-wrap items-center justify-between sm:justify-end gap-2 pt-1 sm:pt-0`},de={key:0,class:`flex items-center gap-2`},fe={class:`flex items-center rounded-lg border border-stroke-subtle dark:border-stroke/opacity-medium overflow-hidden bg-background-mute dark:bg-white/opacity-subtle`},pe=[`disabled`],me=[`disabled`],he={class:`text-xs text-content-secondary dark:text-content-muted font-medium`},ge=[`title`],_e={class:`flex-1 overflow-y-auto custom-scrollbar px-4 sm:px-6 lg:px-8`},ve={class:`mb-6`},ye={class:`glass-card bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[15px] p-4`},be={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},xe={class:`space-y-3`},Se={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ce={class:`text-content-primary font-mono text-sm`},we={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Te={class:`text-content-primary font-mono text-xs break-all`},Ee={key:0,class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},De={class:`text-content-primary font-mono text-xs`},Oe={class:`space-y-3`},ke={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ae={class:`text-content-primary font-semibold`},je={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Me={class:`text-content-primary font-semibold`},x={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ne={key:0,class:`mb-6`},Pe={class:`text-base sm:text-lg font-semibold text-content-primary mb-4 flex items-center`},Fe={class:`bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[15px] p-4 border border-stroke-subtle dark:border-stroke/opacity-light space-y-3`},Ie={class:`flex items-center justify-between gap-2 mb-2`},Le={class:`text-content-primary text-sm font-semibold`},Re={class:`text-content-secondary dark:text-content-muted text-xs font-mono`},ze={class:`mb-2 flex flex-wrap items-start justify-between gap-2 py-1 border-b border-stroke-subtle/60 dark:border-stroke/opacity-light`},Be={class:`text-content-primary text-xs font-mono break-all text-right`},Ve={key:0,class:`space-y-1`},He={class:`text-content-secondary dark:text-content-muted text-xs`},Ue={class:`text-content-primary text-xs font-mono break-all text-right`},We={key:1,class:`text-content-secondary dark:text-content-muted text-xs italic`},Ge={class:`mb-6`},Ke={class:`bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[15px] p-4 border border-stroke-subtle dark:border-stroke/opacity-light`},qe={class:`space-y-3`},Je={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/opacity-light`},Ye={class:`text-content-primary`},Xe={key:0,class:`pt-2`},Ze={class:`glass-card bg-background-mute dark:bg-white/opacity-subtle rounded-[10px] p-4 mb-4`},Qe={class:`w-full overflow-x-auto`},$e={class:`text-content-primary/opacity-heavy text-xs font-mono whitespace-pre leading-relaxed min-w-full`},et={class:`flex items-center justify-between mb-3`},tt={class:`text-content-secondary dark:text-content-primary/opacity-heavy text-sm font-semibold`},nt={class:`text-content-muted text-xs`},rt={class:`bg-background-mute dark:bg-white/opacity-subtle rounded-[8px] p-3 mb-3`},it={class:`font-mono text-xs text-content-primary break-all whitespace-pre-wrap leading-relaxed`},at={class:`bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle rounded-[10px] overflow-hidden`},ot={key:0,class:`min-w-0`},st={class:`text-accent-cyan text-sm font-mono break-words min-w-0`},ct={class:`text-content-primary text-sm break-words min-w-0`},lt={class:`text-content-primary text-sm font-semibold break-all min-w-0 overflow-hidden`},utLine truncated
|
||||
`)||e},W=(e,t,n)=>{try{let r=0,i=t.length/2;if(i>=100){if(t.length>=r+64){let i=t.slice(r,r+64);e.push({name:`Public Key`,byteRange:`${(n+r)/2}-${(n+r+63)/2}`,hexData:i.match(/.{8}/g)?.join(` `)||i,description:`Ed25519 public key of the node (32 bytes)`,fields:[{bits:`0-255`,name:`Ed25519 Public Key`,value:`${i.slice(0,16)}...${i.slice(-16)}`,binary:`32 bytes (256 bits)`}]}),r+=64}if(t.length>=r+8){let i=t.slice(r,r+8),a=parseInt(i,16),o=new Date(a*1e3);e.push({name:`Timestamp`,byteRange:`${(n+r)/2}-${(n+r+7)/2}`,hexData:i.match(/.{2}/g)?.join(` `)||i,description:`Unix timestamp of advertisement`,fields:[{bits:`0-31`,name:`Unix Timestamp`,value:`${a} (${o.toLocaleString()})`,binary:a.toString(2).padStart(32,`0`)}]}),r+=8}if(t.length>=r+128){let i=t.slice(r,r+128);e.push({name:`Signature`,byteRange:`${(n+r)/2}-${(n+r+127)/2}`,hexData:i.match(/.{8}/g)?.join(` `)||i,description:`Ed25519 signature of public key, timestamp, and appdata`,fields:[{bits:`0-511`,name:`Ed25519 Signature`,value:`${i.slice(0,16)}...${i.slice(-16)}`,binary:`64 bytes (512 bits)`}]}),r+=128}t.length>r&&G(e,t.slice(r),n+r)}else e.push({name:`ADVERT AppData (Partial)`,byteRange:`${n/2}-${n/2+i-1}`,hexData:t.match(/.{2}/g)?.join(` `)||t,description:`Partial ADVERT data - appears to be just AppData portion (${i} bytes)`,fields:[{bits:`0-${i*8-1}`,name:`Partial Data`,value:`${i} bytes - attempting to decode as AppData`,binary:`${i} bytes (${i*8} bits)`}]}),G(e,t,n)}catch(n){e.push({name:`ADVERT Parse Error`,byteRange:`N/A`,hexData:t.slice(0,32)+`...`,description:`Failed to parse ADVERT payload structure`,fields:[{bits:`N/A`,name:`Error`,value:`Parse error: ${n instanceof Error?n.message:`Unknown error`}`,binary:`Invalid`}]})}},G=(e,t,n)=>{try{let r=t.length/2;e.push({name:`AppData`,byteRange:`${n/2}-${n/2+r-1}`,hexData:t.match(/.{2}/g)?.join(` `)||t,description:`Node advertisement application data (${r} bytes)`,fields:[{bits:`0-${r*8-1}`,name:`Application Data`,value:`${r} bytes (contains flags, location, name, etc.)`,binary:`${r} bytes (${r*8} bits)`}]});let i=0;if(t.length>=2){let r=parseInt(t.slice(i,i+2),16),a=[],o=!!(r&16),s=!!(r&32),c=!!(r&64),l=!!(r&128);if(r&1&&a.push(`is chat node`),r&2&&a.push(`is repeater`),r&4&&a.push(`is room server`),r&8&&a.push(`is sensor`),o&&a.push(`has location`),s&&a.push(`has feature 1`),c&&a.push(`has feature 2`),l&&a.push(`has name`),e.push({name:`AppData Flags`,byteRange:`${(n+i)/2}`,hexData:`0x${t.slice(i,i+2)}`,description:`Flags indicating which optional fields are present`,fields:[{bits:`0-7`,name:`Flags`,value:a.join(`, `)||`none`,binary:r.toString(2).padStart(8,`0`)}]}),i+=2,o&&t.length>=i+16){let r=t.slice(i,i+8),a=[];for(let e=6;e>=0;e-=2)a.push(r.slice(e,e+2));let o=parseInt(a.join(``),16),s=o>2147483647?o-4294967296:o,c=s/1e6,l=t.slice(i+8,i+16),u=[];for(let e=6;e>=0;e-=2)u.push(l.slice(e,e+2));let d=parseInt(u.join(``),16),f=d>2147483647?d-4294967296:d,p=f/1e6;e.push({name:`Location Data`,byteRange:`${(n+i)/2}-${(n+i+15)/2}`,hexData:`${r.match(/.{2}/g)?.join(` `)||r} ${l.match(/.{2}/g)?.join(` `)||l}`,description:`GPS coordinates (latitude and longitude)`,fields:[{bits:`0-31`,name:`Latitude`,value:`${c.toFixed(6)}° (raw: ${s})`,binary:s.toString(2).padStart(32,`0`)},{bits:`32-63`,name:`Longitude`,value:`${p.toFixed(6)}° (raw: ${f})`,binary:f.toString(2).padStart(32,`0`)}]}),i+=16}if(s&&t.length>=i+4){let r=t.slice(i,i+4),a=parseInt(r,16);e.push({name:`Feature 1`,byteRange:`${(n+i)/2}-${(n+i+3)/2}`,hexData:r.match(/.{2}/g)?.join(` `)||r,description:`Reserved feature 1 (2 bytes)`,fields:[{bits:`0-15`,name:`Feature 1 Value`,value:`${a}`,binary:a.toString(2).padStart(16,`0`)}]}),i+=4}if(c&&t.length>=i+4){let r=t.slice(i,i+4),a=parseInt(r,16);e.push({name:`Feature 2`,byteRange:`${(n+i)/2}-${(n+i+3)/2}`,hexData:r.match(/.{2}/g)?.join(` `)||r,description:`Reserved feature 2 (2 bytes)`,fields:[{bits:`0-15`,name:`Feature 2 Value`,value:`${a}`,binary:a.toString(2).padStart(16,`0`)}]}),i+=4}if(l&&t.length>i){let r=t.slice(i),a=r.match(/.{2}/g)||[],o=a.map(e=>{let t=parseInt(e,16);return t>=32&&t<=126?String.fromCharCode(t):`.`}).join(``).replace(/\.+$/,``);e.push({name:`Node Name`,byteRange:`${(n+i)/2}-${(n+t.length-1)/2}`,hexData:r.match(/.{2}/g)?.join(` `)||r,description:`Node name string (${a.length} bytes)`,fields:[{bits:`0-${a.length*8-1}`,name:`Node Name`,value:`"${o}"`,binary:`ASCII text (${a.length} bytes)`}]})}}}catch(n){e.push({name:`AppData Parse Error`,byteRange:`N/A`,hexData:t.slice(0,Math.min(32,t.length)),description:`Failed to parse AppData structure`,fields:[{bits:`N/A`,name:`Error`,value:`Parse error: ${n instanceof Error?n.message:`Unknown error`}`,binary:`Invalid`}]})}},K=e=>{if(!e)return[];if(Array.isArray(e))return e;if(typeof e==`string`)try{return JSON.parse(e)}catch{return[]}return[]},ur=e=>{let t=A(e),n=A(C.localHash);return!t||!n?!1:n.startsWith(t)||t.startsWith(n)},dr=(e,t,n)=>n?{name:`This repeater`,matchDetail:``,matchConfidence:null,matchCandidates:[]}:t?{name:t.name,mat
Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
.hop-connector[data-v-5fc98e84]{justify-content:center;align-items:center;width:1.2rem;height:.8rem;margin:0 .1rem;display:inline-flex;position:relative}.hop-rabbit[data-v-5fc98e84]{width:.65rem;height:.65rem}.hop-connector-forward[data-v-5fc98e84]{color:color-mix(in srgb, var(--color-accent-cyan) 95%, transparent)}.hop-connector-forward .hop-rabbit[data-v-5fc98e84]{filter:drop-shadow(0 0 3px color-mix(in srgb, var(--color-accent-cyan) 50%, transparent))}.hop-connector-drop[data-v-5fc98e84]{color:color-mix(in srgb, var(--color-secondary) 95%, transparent)}.hop-connector-drop .hop-rabbit[data-v-5fc98e84]{filter:drop-shadow(0 0 3px color-mix(in srgb, var(--color-secondary) 55%, transparent))}.hop-connector-received[data-v-5fc98e84]{color:color-mix(in srgb, var(--color-primary) 75%, transparent)}.hop-connector-received .hop-rabbit[data-v-5fc98e84]{opacity:.9}@media (width<=640px){.hop-connector[data-v-5fc98e84]{width:1rem;height:.7rem}.hop-rabbit[data-v-5fc98e84]{width:.55rem;height:.55rem}}.fade-enter-active[data-v-7d88e838],.fade-leave-active[data-v-7d88e838]{transition:opacity .3s ease-out,transform .3s ease-out}.fade-enter-from[data-v-7d88e838],.fade-leave-to[data-v-7d88e838]{opacity:0;transform:translateY(-10px)}.packet-list-enter-active[data-v-7d88e838],.packet-list-leave-active[data-v-7d88e838],.packet-list-move[data-v-7d88e838]{transition:all .4s ease-out}.packet-list-enter-from[data-v-7d88e838]{opacity:0;transform:translateY(-30px)scale(.98)}.packet-list-enter-to[data-v-7d88e838],.packet-list-leave-from[data-v-7d88e838]{opacity:1;transform:translateY(0)scale(1)}.packet-list-leave-to[data-v-7d88e838]{opacity:0;transform:translateY(-20px)scale(.95)}.packet-row[data-v-7d88e838]{transition:all .3s;position:relative}.packet-list-enter-active .packet-row[data-v-7d88e838]{background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent-green) 10%, transparent) 0%, color-mix(in srgb, var(--color-accent-green) 5%, transparent) 50%, transparent 100%);box-shadow:0 0 20px color-mix(in srgb, var(--color-accent-green) 20%, transparent);border-left:3px solid color-mix(in srgb, var(--color-accent-green) 60%, transparent);border-radius:8px;padding-left:12px}.packet-row[data-v-7d88e838]:hover{background:color-mix(in srgb, var(--color-surface) 20%, transparent);border-radius:8px;transition:background .2s}.duplicate-packet-row[data-v-7d88e838]{background:linear-gradient(96deg, color-mix(in srgb, var(--color-primary) 11%, transparent) 0%, color-mix(in srgb, var(--color-primary) 8%, transparent) 26%, color-mix(in srgb, var(--color-primary) 5%, transparent) 52%, color-mix(in srgb, var(--color-primary) 3%, transparent) 74%, transparent 90%);border-left-width:3px}.duplicate-group-container[data-v-7d88e838]{border:1px solid color-mix(in srgb, var(--color-primary) 35%, var(--color-border-subtle));background:linear-gradient(140deg, color-mix(in srgb, var(--color-primary) 7%, var(--color-surface)) 0%, color-mix(in srgb, var(--color-primary) 5%, var(--color-surface)) 38%, color-mix(in srgb, var(--color-primary) 3%, var(--color-surface)) 72%, color-mix(in srgb, var(--color-primary) 2%, var(--color-surface)) 100%)}.duplicate-group-expanded-row[data-v-7d88e838]{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 35%, transparent)}.duplicate-group-banner[data-v-7d88e838]{border:1px dashed color-mix(in srgb, var(--color-primary) 45%, transparent);background:linear-gradient(92deg, color-mix(in srgb, var(--color-primary) 14%, transparent) 0%, color-mix(in srgb, var(--color-primary) 11%, transparent) 46%, color-mix(in srgb, var(--color-primary) 8%, transparent) 100%)}.mobile-packet-card[data-v-7d88e838]{border:1px solid color-mix(in srgb, var(--color-primary) 30%, var(--color-border-subtle));background:linear-gradient(142deg, color-mix(in srgb, var(--color-primary) 10%, var(--color-surface)) 0%, color-mix(in srgb, var(--color-primary) 6%, var(--color-surface)) 48%, color-mix(in srgb, var(--color-primary) 4%, var(--color-surface)) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 24%, transparent), 0 10px 24px color-mix(in srgb, var(--color-background) 45%, transparent)}.mobile-path-chip[data-v-7d88e838]{border:1px solid color-mix(in srgb, var(--color-primary) 24%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-primary) 7%, var(--color-surface))}.mobile-duplicate-icon-btn[data-v-7d88e838]{box-shadow:0 6px 16px color-mix(in srgb, var(--color-primary) 20%, transparent)}.mobile-metrics-grid[data-v-7d88e838]{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-metric-cell[data-v-7d88e838]{min-width:0;padding:0 .5rem}.mobile-metric-cell[data-v-7d88e838]:first-child{padding-left:0}.mobile-metric-cell+.mobile-metric-cell[data-v-7d88e838]{border-left:1px solid color-mix(in srgb, var(--color-border-subtle) 70%, transparent)}.dark{border-left-color:color-mix(in srgb, var(--color-border) 65%, transparent)}@media (width<=1023px){.filter-container[data-v-7d88e838]{flex-direction:coluLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{C as e,D as t,P as n,T as r,U as i,X as a,_t as o,c as s,f as ee,h as te,ht as c,j as l,l as u,m as d,o as f,p,r as m,s as h,u as g,x as ne}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as re,l as ie,o as _}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ae}from"./packets-DROiFL8U.js";import{t as oe}from"./dataService-4qyr7nMC.js";import{t as se}from"./Spinner-D-jFxDsV.js";import{c as ce,d as v,s as le}from"./index-DXPlD6DJ.js";import{n as ue,t as de}from"./SignalBars-BHfvDDnj.js";import{t as fe}from"./PacketDetailsModal-eskwnUUt.js";var y={},b={viewBox:`0 0 20 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`};function pe(e,t){return r(),g(`svg`,b,[...t[0]||=[ee(`<ellipse cx="3" cy="12" rx="1.5" ry="2.5" fill="currentColor"></ellipse><ellipse cx="9" cy="9" rx="4" ry="3" fill="currentColor"></ellipse><circle cx="13" cy="7" r="3" fill="currentColor"></circle><ellipse cx="12" cy="2" rx="1.5" ry="3" fill="currentColor"></ellipse><ellipse cx="14" cy="2" rx="1.5" ry="3" fill="currentColor"></ellipse><ellipse cx="16" cy="11" rx="1.5" ry="2" fill="currentColor"></ellipse><circle cx="5" cy="8" r="2" fill="currentColor" opacity="0.8"></circle>`,7)]])}var x=v(y,[[`render`,pe]]),me=v(te({__name:`HopConnector`,props:{status:{default:`received`}},setup(e){return(t,n)=>(r(),g(`span`,{class:c([`hop-connector`,`hop-connector-${e.status}`]),title:`Rabbit hop`},[d(x,{class:`hop-rabbit`})],2))}}),[[`__scopeId`,`data-v-5fc98e84`]]),he={class:`glass-card w-full max-w-none rounded-[20px] p-6`},ge={class:`flex flex-col lg:flex-row lg:justify-between lg:items-center mb-6 gap-4 filter-container`},_e={class:`flex items-center gap-2 header-info relative`},ve={class:`text-content-primary text-xl font-semibold`},ye={class:`text-content-secondary dark:text-content-muted text-sm packet-count`},be=[`title`],xe={class:`hidden sm:inline`},Se=[`title`],Ce={key:2,class:`text-accent-red text-sm error-indicator`},we={class:`flex items-center gap-3 lg:flex filter-controls`},Te={key:0,class:`flex flex-wrap items-end gap-3`},Ee={class:`flex flex-col`},De={class:`relative`},Oe={class:`flex flex-col`},ke={class:`flex flex-wrap items-center gap-2`},Ae=[`onClick`],je={class:`flex flex-col`},Me={class:`flex flex-col`},Ne={class:`flex flex-col`},Pe=[`value`],Fe={class:`flex flex-col`},Ie=[`value`],Le={key:1,class:`flex flex-col`},Re={class:`flex flex-col reset-container`},ze=[`disabled`],Be={class:`space-y-4 w-full`},Ve=[`onClick`],He={key:0,class:`duplicate-group-banner mb-2 flex items-center justify-between gap-2 rounded-[8px] px-2 py-1`},Ue={class:`text-[10px] text-content-secondary dark:text-content-muted`},We={class:`hidden lg:block w-full space-y-2`},Ge={class:`grid w-full grid-cols-11 gap-2 items-center`},Ke={class:`col-span-1 text-content-primary text-sm`},qe={class:`col-span-1 flex items-center gap-2`},Je={class:`flex flex-col`},Ye={class:`text-content-primary text-xs`},Xe=[`title`],Ze={class:`whitespace-normal break-words`},Qe={class:`col-span-2`},$e={class:`col-span-1 text-content-primary text-xs`},et={class:`col-span-1 text-content-primary text-xs`},tt={class:`col-span-1 text-content-primary text-xs flex items-center gap-1`},nt={class:`col-span-1 text-content-primary text-xs`},rt={class:`col-span-1 text-content-primary text-xs`},it={key:0,class:`flex items-center gap-1`},at={class:`col-span-2`},ot={class:`flex items-center gap-1`},st={key:0,class:`inline-flex items-center text-[10px] font-medium text-accent-amber`,title:`Policy blocked`},ct={key:0,class:`mt-1 flex items-center gap-2`},lt=[`onClick`],ut={key:1,class:`mt-1 text-[10px] text-content-secondary dark:text-content-muted`},dt={class:`mt-1 text-[10px] text-content-secondary dark:text-content-muted font-mono`},ft={key:2,class:`text-accent-red text-[8px] italic truncate`},pt={class:`grid w-full grid-cols-11 gap-2 items-start`},mt={class:`col-span-11`},ht={class:`space-y-1`},gt={class:`flex items-center gap-2`},_t={class:`text-[9px] text-content-muted`},vt={class:`flex items-center gap-0.5 flex-wrap`},yt=[`title`],bt={key:1,class:`flex items-center gap-1`},xt={class:`inline-block px-2 py-0.5 rounded bg-badge-cyan-bg text-badge-cyan-text text-xs font-mono`},St={class:`lg:hidden space-y-2`},Ct={class:`mobile-packet-card space-y-3 rounded-[16px] p-4`},wt={class:`flex items-start justify-between gap-3`},Tt={class:`flex items-start gap-3 min-w-0`},Et={class:`min-w-0`},Dt={class:`flex items-center gap-2 flex-wrap`},Ot={class:`text-content-primary text-xl font-semibold tracking-wide`},kt={key:0,class:`text-content-secondary dark:text-content-muted text-[10px] font-medium leading-tight`},At=[`title`],jt={class:`whitespace-normal break-words`},Mt={class:`flex items-start gap-2 flex-shrink-0`},Nt={class:`flex flex-col items-end`},Pt={class:`text-content-secondary dark:text-content-muted text-xs`},Ft={class:`mt-1 flex items-center gap-1 justify-end`},It={key:0,class:`inline-flex items-center text-[10px] font-medium text-accent-amber`,title:`Policy block
Line truncated
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
import{C as e,D as t,K as n,N as r,P as i,T as a,U as o,X as s,_t as c,c as l,gt as u,h as d,ht as f,i as ee,j as te,l as p,m,o as h,p as g,r as _,s as v,u as y,x as ne,y as b,z as x}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as re,l as ie,t as S}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ae}from"./api-B-2vYkoY.js";import{d as C,t as w}from"./index-DoCDF--l.js";import{_ as T,a as oe,c as se,d as ce,f as E,g as le,i as ue,l as de,m as fe,o as D,r as pe,t as O,u as me,v as k,y as he}from"./ChartCard-DvNDqE-i.js";import{t as ge}from"./streamingFetch-BztyMxVG.js";import{t as A}from"./PacketDetailsModal-DSCriOjT.js";import"./chartjs-adapter-date-fns.esm-C1pzr0Ah.js";var _e={class:`bg-gradient-to-r from-accent-amber/20 to-accent-red/20 border-b border-stroke-subtle dark:border-stroke/opacity-light px-6 py-4`},j={class:`flex items-center justify-between`},ve={class:`flex items-center gap-3`},M={class:`text-sm text-content-secondary dark:text-content-muted`},ye={class:`max-h-[75vh] overflow-y-auto`},be={class:`px-6 py-4 space-y-6`},N={class:`flex items-center gap-3`},P={class:`grid grid-cols-2 gap-4`},xe={class:`bg-surface-primary rounded-lg p-4`},Se={class:`text-content-primary font-medium`},Ce={class:`bg-surface-primary rounded-lg p-4`},F={class:`text-content-primary font-medium`},I={class:`bg-surface-primary rounded-lg p-4`},we={class:`text-2xl text-content-primary font-semibold`},Te={class:`grid grid-cols-2 gap-4`},Ee={class:`bg-surface-primary rounded-lg p-4 border-l-4 border-accent-red`},L={class:`text-3xl text-accent-red font-bold`},De={class:`bg-surface-primary rounded-lg p-4 border-l-4 border-accent-amber`},R={class:`text-3xl text-accent-amber font-bold`},z={class:`bg-surface-primary rounded-lg p-4`},B={class:`space-y-2 text-sm text-content-secondary`},V={class:`flex gap-2`},H={class:`flex gap-2`},Oe={class:`bg-surface-primary rounded-lg p-4`},U={class:`flex items-center justify-between gap-3`},W={class:`text-xs text-content-secondary mt-1`},ke={class:`flex items-center gap-2`},G=[`value`],K={key:0,class:`text-sm text-content-secondary mt-3`},q={key:1,class:`text-sm text-accent-red mt-3`},Ae={key:2,class:`mt-3 space-y-3`},J={class:`grid grid-cols-2 md:grid-cols-4 gap-2 text-xs`},je={class:`rounded-md border border-stroke-subtle px-2 py-2`},Me={class:`text-content-primary font-semibold`},Ne={class:`rounded-md border border-stroke-subtle px-2 py-2`},Pe={class:`text-content-primary font-semibold`},Fe={class:`rounded-md border border-stroke-subtle px-2 py-2`},Ie={class:`text-content-primary font-semibold`},Le={class:`rounded-md border border-stroke-subtle px-2 py-2`},Re={class:`text-content-primary font-semibold`},ze={class:`text-xs text-content-secondary`},Be={class:`grid grid-cols-1 md:grid-cols-2 gap-3`},Ve={class:`rounded-md border border-stroke-subtle p-3`},He={key:0,class:`text-xs text-content-secondary`},Ue={key:1,class:`space-y-1.5`},We={class:`font-medium text-content-primary`},Ge={class:`rounded-md border border-stroke-subtle p-3`},Ke={key:0,class:`text-xs text-content-secondary`},qe={key:1,class:`space-y-1.5`},Y=[`title`],Je={class:`font-medium text-content-primary`},Ye={class:`glass-card border border-stroke-subtle dark:border-stroke rounded-xl overflow-hidden`},Xe={key:0,class:`px-3 py-3 text-sm text-content-secondary`},Ze={key:1,class:`max-h-56 overflow-y-auto`},Qe={class:`md:col-span-2 text-content-secondary text-xs`},$e={class:`md:col-span-2 text-content-primary text-xs font-medium`},et=[`title`],tt={class:`md:col-span-2 md:text-right`},X=[`onClick`],nt={class:`border-t border-stroke-subtle dark:border-stroke/opacity-light px-6 py-4`},rt={class:`modal-actions`},it=C(d({__name:`IncidentDetailsModal`,props:{incident:{default:null}},emits:[`close`],setup(e,{emit:n}){let u=e,d=n,ne=Array.from({length:15},(e,t)=>t+1),b=o(10),x=o([]),C=o(!1),w=o(null),T=o(null),oe=o(!1),se=e=>new Date(e).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),ce=(e,t)=>{let n=Math.max(0,t-e),r=Math.floor(n/1e3),i=Math.floor(r/60),a=Math.floor(i/60);return a>0?`${a}h ${i%60}m`:i>0?`${i}m ${r%60}s`:`${r}s`},E=h(()=>{if(!u.incident)return null;let e=u.incident;return{startTime:se(e.startMs),endTime:se(e.endMs),duration:ce(e.startMs,e.endMs),peakNoise:e.peakNoiseDelta.toFixed(2),totalCrc:e.totalCrc.toLocaleString(),severityColor:e.severity===`high`?`bg-accent-red/opacity-light text-accent-red`:e.severity===`medium`?`bg-accent-amber/opacity-light text-accent-amber`:`bg-accent-green/opacity-light text-accent-green`}}),le=h(()=>u.incident?{startTs:Math.floor(u.incident.startMs/1e3)-b.value,endTs:Math.ceil(u.incident.endMs/1e3)+b.value,contextSeconds:b.value}:null),ue=e=>e<1e10?e*1e3:e,de=e=>new Date(ue(e)).toLocaleTimeString(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),fe=e=>({0:`REQ`,1:`RESP`,2:`MSG`,3:`ACK`,4:`ADVERT`,5:`GRP_TXT`,6:`GRP_DATA`,7:`ANON_REQ`,8:`PATH`,9:`TRACE`,10:`MP`,15:`CUSTOM`})[e]??`T${e}`,D=e=>({0:`Transport Flood`,1:Line truncated
|
||||
import{C as e,D as t,K as n,N as r,P as i,T as a,U as o,X as s,_t as c,c as l,gt as u,h as d,ht as f,i as ee,j as te,l as p,m,o as h,p as g,r as _,s as v,u as y,x as ne,y as b,z as x}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as re,l as ie,t as S}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ae}from"./api-BgU2z9oO.js";import{d as C,t as w}from"./index-DXPlD6DJ.js";import{_ as T,a as oe,c as se,d as ce,f as E,g as le,i as ue,l as de,m as fe,o as D,r as pe,t as O,u as me,v as k,y as he}from"./ChartCard-DvNDqE-i.js";import{t as ge}from"./streamingFetch-CTsu5vGX.js";import{t as A}from"./PacketDetailsModal-eskwnUUt.js";import"./chartjs-adapter-date-fns.esm-aaoeOWeX.js";var _e={class:`bg-gradient-to-r from-accent-amber/20 to-accent-red/20 border-b border-stroke-subtle dark:border-stroke/opacity-light px-6 py-4`},j={class:`flex items-center justify-between`},ve={class:`flex items-center gap-3`},M={class:`text-sm text-content-secondary dark:text-content-muted`},ye={class:`max-h-[75vh] overflow-y-auto`},be={class:`px-6 py-4 space-y-6`},N={class:`flex items-center gap-3`},P={class:`grid grid-cols-2 gap-4`},xe={class:`bg-surface-primary rounded-lg p-4`},Se={class:`text-content-primary font-medium`},Ce={class:`bg-surface-primary rounded-lg p-4`},F={class:`text-content-primary font-medium`},I={class:`bg-surface-primary rounded-lg p-4`},we={class:`text-2xl text-content-primary font-semibold`},Te={class:`grid grid-cols-2 gap-4`},Ee={class:`bg-surface-primary rounded-lg p-4 border-l-4 border-accent-red`},L={class:`text-3xl text-accent-red font-bold`},De={class:`bg-surface-primary rounded-lg p-4 border-l-4 border-accent-amber`},R={class:`text-3xl text-accent-amber font-bold`},z={class:`bg-surface-primary rounded-lg p-4`},B={class:`space-y-2 text-sm text-content-secondary`},V={class:`flex gap-2`},H={class:`flex gap-2`},Oe={class:`bg-surface-primary rounded-lg p-4`},U={class:`flex items-center justify-between gap-3`},W={class:`text-xs text-content-secondary mt-1`},ke={class:`flex items-center gap-2`},G=[`value`],K={key:0,class:`text-sm text-content-secondary mt-3`},q={key:1,class:`text-sm text-accent-red mt-3`},Ae={key:2,class:`mt-3 space-y-3`},J={class:`grid grid-cols-2 md:grid-cols-4 gap-2 text-xs`},je={class:`rounded-md border border-stroke-subtle px-2 py-2`},Me={class:`text-content-primary font-semibold`},Ne={class:`rounded-md border border-stroke-subtle px-2 py-2`},Pe={class:`text-content-primary font-semibold`},Fe={class:`rounded-md border border-stroke-subtle px-2 py-2`},Ie={class:`text-content-primary font-semibold`},Le={class:`rounded-md border border-stroke-subtle px-2 py-2`},Re={class:`text-content-primary font-semibold`},ze={class:`text-xs text-content-secondary`},Be={class:`grid grid-cols-1 md:grid-cols-2 gap-3`},Ve={class:`rounded-md border border-stroke-subtle p-3`},He={key:0,class:`text-xs text-content-secondary`},Ue={key:1,class:`space-y-1.5`},We={class:`font-medium text-content-primary`},Ge={class:`rounded-md border border-stroke-subtle p-3`},Ke={key:0,class:`text-xs text-content-secondary`},qe={key:1,class:`space-y-1.5`},Y=[`title`],Je={class:`font-medium text-content-primary`},Ye={class:`glass-card border border-stroke-subtle dark:border-stroke rounded-xl overflow-hidden`},Xe={key:0,class:`px-3 py-3 text-sm text-content-secondary`},Ze={key:1,class:`max-h-56 overflow-y-auto`},Qe={class:`md:col-span-2 text-content-secondary text-xs`},$e={class:`md:col-span-2 text-content-primary text-xs font-medium`},et=[`title`],tt={class:`md:col-span-2 md:text-right`},X=[`onClick`],nt={class:`border-t border-stroke-subtle dark:border-stroke/opacity-light px-6 py-4`},rt={class:`modal-actions`},it=C(d({__name:`IncidentDetailsModal`,props:{incident:{default:null}},emits:[`close`],setup(e,{emit:n}){let u=e,d=n,ne=Array.from({length:15},(e,t)=>t+1),b=o(10),x=o([]),C=o(!1),w=o(null),T=o(null),oe=o(!1),se=e=>new Date(e).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),ce=(e,t)=>{let n=Math.max(0,t-e),r=Math.floor(n/1e3),i=Math.floor(r/60),a=Math.floor(i/60);return a>0?`${a}h ${i%60}m`:i>0?`${i}m ${r%60}s`:`${r}s`},E=h(()=>{if(!u.incident)return null;let e=u.incident;return{startTime:se(e.startMs),endTime:se(e.endMs),duration:ce(e.startMs,e.endMs),peakNoise:e.peakNoiseDelta.toFixed(2),totalCrc:e.totalCrc.toLocaleString(),severityColor:e.severity===`high`?`bg-accent-red/opacity-light text-accent-red`:e.severity===`medium`?`bg-accent-amber/opacity-light text-accent-amber`:`bg-accent-green/opacity-light text-accent-green`}}),le=h(()=>u.incident?{startTs:Math.floor(u.incident.startMs/1e3)-b.value,endTs:Math.ceil(u.incident.endMs/1e3)+b.value,contextSeconds:b.value}:null),ue=e=>e<1e10?e*1e3:e,de=e=>new Date(ue(e)).toLocaleTimeString(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),fe=e=>({0:`REQ`,1:`RESP`,2:`MSG`,3:`ACK`,4:`ADVERT`,5:`GRP_TXT`,6:`GRP_DATA`,7:`ANON_REQ`,8:`PATH`,9:`TRACE`,10:`MP`,15:`CUSTOM`})[e]??`T${e}`,D=e=>({0:`Transport Flood`,1:Line truncated
|
||||
`)},Ir=(e,t,n)=>{Z.value===`mobile`&&(Ee.value={packetTypeLabel:e,group:t,cell:n})},Lr=()=>{Ee.value=null},Rr=h(()=>{let e=Ee.value;return e?`${e.packetTypeLabel} • ${wr(e.group)}`:``}),zr=h(()=>{let e=Ee.value;return e?Fr(e.packetTypeLabel,e.group,e.cell).split(`
|
||||
`).filter(e=>e.trim().length>0).slice(1):[]}),Br=async()=>{be.value?N.value=!0:P.value=!0,xe.value=null,Ce.value=null;try{let e=async()=>{let e=[],t=0;for(let n=0;n<Zn;n++){let n=J((await ge(`/noise_floor_history`,{hours:S.value,limit:Xn,offset:t},{idleTimeoutMs:3e4,onPhaseChange:e=>{Se.value=e===`receiving`?`Receiving data...`:`Connecting...`}})).data)??{},r=J(n.data)??n,i=Array.isArray(r.history)?r.history:[];if(i.length===0||(e.push(...i),i.length<Xn))break;t+=Xn,Se.value=`Receiving data... (${e.length.toLocaleString()} points)`}return e},t=ae.getLbtDiagnostics({hours:S.value}).catch(e=>({success:!1,error:e instanceof Error?e.message:`Failed to load LBT diagnostics`})),[n,r,i,a,o]=await Promise.all([ge(`/packet_stats`,{hours:S.value}),e(),ge(`/crc_error_history`,{hours:S.value}),ge(`/metrics_graph_data`,{hours:S.value,resolution:`average`,metrics:`rx_count,tx_count`}),t]),s=J(n.data)??{},c=J(s.data)??s;R.value={total_packets:q(c.total_packets)??void 0,received:q(c.received)??void 0,transmitted:q(c.transmitted)??void 0,dropped:q(c.dropped)??void 0,drop_reasons:c.drop_reasons??void 0},z.value=Pe({history:r}),B.value=Fe(i.data),V.value=Le(a.data);let l=`data`in o?o.data:void 0;o?.success&&l?W.value=l:(W.value=null,Ce.value=o?.error??`LBT diagnostics unavailable`),H.value=Ve(),Oe.value=We(H.value),H.value.length===0&&(xe.value=`No correlation data available for the selected time range.`),await b(),Wr(),Gr(),Kr(),be.value=!0}catch(e){xe.value=e instanceof Error?e.message:`Failed to load RF health correlation data.`}finally{P.value=!1,N.value=!1}},Vr=()=>{A.value&&=(n(A.value).destroy(),null)},Hr=()=>{M.value&&=(n(M.value).destroy(),null)},Ur=()=>{j.value&&=(n(j.value).destroy(),null)},Wr=()=>{if(!C.value||H.value.length===0){Vr();return}let e=C.value.getContext(`2d`);if(!e)return;let t=H.value.filter(e=>e.noise!==null).map(e=>({x:e.bucketMs,y:e.noise})),r=t.map(e=>e.y),i=r.length>0?Math.min(...r):null,a=r.length>0?Math.max(...r):null,o=i===null?void 0:Math.floor(i)-(i===a?1:0),s=a===null?void 0:Math.ceil(a)+(i===a?1:0),c=H.value.map(e=>({x:e.bucketMs,y:e.crc})),l=Math.max(1,...c.map(e=>e.y)),u=H.value.map(e=>({x:e.bucketMs,y:e.packets})),d=u.map(e=>e.y),f=d.length>0?je(d,.95):1,ee=Math.max(1,Math.ceil(f*1.25)),te=S.value>48?`day`:`hour`,p={type:`bar`,data:{datasets:[{type:`line`,label:`Noise floor (dBm)`,yAxisID:`yNoise`,data:t,borderColor:G(K.noise),backgroundColor:G(K.noise),borderWidth:2,tension:.25,pointRadius:0,pointHoverRadius:3},{type:`line`,label:`Packet count (bucket)`,yAxisID:`yPacketCount`,data:u,borderColor:G(K.packetCount),backgroundColor:G(K.packetCount),borderWidth:2,tension:.25,pointRadius:0,pointHoverRadius:3},{type:`bar`,label:`CRC errors`,yAxisID:`yCount`,data:c,borderWidth:0,backgroundColor:G(K.crc),barPercentage:.9,categoryPercentage:1}]},options:{responsive:!0,maintainAspectRatio:!1,interaction:{mode:`index`,intersect:!1},plugins:{legend:{position:`top`,labels:{color:G(K.ticks)}},tooltip:{backgroundColor:G(K.tooltipBg),titleColor:G(K.tooltipText),bodyColor:G(K.tooltipText),borderColor:G(K.tooltipBorder),borderWidth:1}},scales:{x:{type:`time`,time:{unit:te},min:Date.now()-S.value*60*60*1e3,max:Date.now(),grid:{color:G(K.grid)},ticks:{color:G(K.ticks),maxTicksLimit:8}},yNoise:{type:`linear`,position:`left`,min:o,max:s,title:{display:!0,text:`Noise floor (dBm)`,color:G(K.ticks)},grid:{color:G(K.grid)},ticks:{color:G(K.ticks)}},yCount:{type:`linear`,position:`right`,beginAtZero:!0,max:Math.ceil(l*1.2),title:{display:!0,text:`CRC errors`,color:G(K.ticks)},grid:{drawOnChartArea:!1},ticks:{color:G(K.ticks)}},yPacketCount:{type:`linear`,position:`right`,offset:!0,beginAtZero:!0,max:Math.ceil(ee*1.2),title:{display:!0,text:`Packet count`,color:G(K.ticks)},grid:{drawOnChartArea:!1},ticks:{color:G(K.ticks)}}}}};if(A.value){let e=n(A.value);e.data=p.data,e.options=p.options,e.update();return}A.value=x(new D(e,p))},Gr=()=>{if(!_e.value||Y.value.length===0){Ur();return}let e=_e.value.getContext(`2d`);if(!e)return;let t=Y.value.map(e=>e.reason),r=Y.value.map(e=>e.count),i=Math.max(1,...r),a=i/Math.max(1,Math.min(...r)),o=!L.value&&a>=100,s={type:`bar`,data:{labels:t,datasets:[{label:`Dropped packets`,data:r,backgroundColor:G(K.crc),borderColor:G(K.crc),borderWidth:1,borderRadius:6,minBarLength:2,maxBarThickness:18}]},options:{responsive:!0,maintainAspectRatio:!1,indexAxis:`y`,plugins:{legend:{display:!1},tooltip:{backgroundColor:G(K.tooltipBg),titleColor:G(K.tooltipText),bodyColor:G(K.tooltipText),borderColor:G(K.tooltipBorder),borderWidth:1}},scales:{x:{type:o?`logarithmic`:`linear`,beginAtZero:!o,min:o?1:0,suggestedMax:o?void 0:Math.ceil(i*1.15),grid:{color:G(K.grid)},ticks:{color:G(K.ticks)},title:{display:!0,text:`Dropped packets`,color:G(K.ticks)}},y:{grid:{display:!1},ticks:{color:G(K.ticks),autoSkip:!1}}}}};if(j.value){let e=n(j.value);e.data=s.data,e.options=s.options,e.update();return}j.value=x(new D(e,s))},Kr=()=>{if(!ve.value||nt.value.length===0){Hr();return}let e=ve.value.getContext(`2d`)
Line truncated
|
||||
@@ -1 +0,0 @@
|
||||
import{C as e,D as t,N as n,P as r,T as i,U as a,_t as o,c as s,f as ee,h as te,ht as c,i as l,j as ne,l as u,m as d,o as f,p,r as m,s as h,u as g}from"./runtime-core.esm-bundler-CINEgm0a.js";import{c as re,l as _,o as v,r as ie,t as ae}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as y}from"./api-B-2vYkoY.js";import{t as oe}from"./system-uA3cZx_m.js";import{t as b}from"./Spinner-D-jFxDsV.js";import{c as se,r as ce,s as le}from"./index-DoCDF--l.js";import{t as ue}from"./ConfirmDialog-CKP12S0V.js";import{t as de}from"./MessageDialog-DgBtqb-B.js";import{t as fe}from"./LocationPicker-CvfMnVsT.js";var pe={class:`p-3 sm:p-6 space-y-4 sm:space-y-6`},me={key:0,class:`grid grid-cols-1 md:grid-cols-3 gap-4`},he={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-5`},ge={class:`flex items-center justify-between`},_e={class:`text-3xl font-bold text-content-primary mb-1`},ve={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-5`},ye={class:`flex items-center justify-between`},be={class:`text-3xl font-bold text-primary mb-1`},xe={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-5`},Se={class:`flex items-center justify-between`},Ce={key:0,class:`w-6 h-6 text-accent-green`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},we={key:1,class:`w-6 h-6 text-accent-yellow`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},Te={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-6`},Ee={key:0,class:`flex items-center justify-center py-12`},De={class:`text-center`},Oe={key:1,class:`flex items-center justify-center py-12`},ke={class:`text-center`},Ae={class:`text-content-secondary dark:text-content-muted text-sm mb-4`},je={key:2,class:`space-y-4`},Me={class:`flex items-start justify-between`},Ne={class:`flex-1`},Pe={class:`flex items-center gap-3 mb-4`},Fe={class:`relative`},Ie={key:0,class:`absolute inset-0 bg-accent-green/opacity-heavy rounded-full animate-ping`},Le={class:`text-xl font-bold text-content-primary`},Re={key:0,class:`text-content-muted text-sm`},ze={class:`grid grid-cols-1 md:grid-cols-2 gap-3 text-sm mb-3`},Be={class:`text-content-primary/opacity-heavy ml-2`},Ve={class:`flex items-center gap-2`},He={key:0,class:`text-content-primary/opacity-heavy font-mono ml-2 text-xs`},Ue={key:1,class:`text-content-muted ml-2 text-xs`},We=[`onClick`],Ge={class:`text-content-primary/opacity-heavy ml-2`},Ke={key:0},qe={class:`text-content-primary/opacity-heavy ml-2`},Je={key:0,class:`text-accent-green`},Ye={key:1,class:`text-content-muted`},Xe={key:2,class:`text-primary`},Ze={class:`text-content-primary/opacity-heavy ml-2`},Qe={key:0,class:`text-xs text-content-muted font-mono`},$e={class:`ml-4 flex flex-wrap gap-2`},et=[`onClick`,`disabled`,`title`],tt=[`onClick`,`disabled`,`title`],nt=[`onClick`],rt=[`onClick`],it={key:3,class:`text-center py-12 text-content-secondary dark:text-content-muted`},at={class:`modal-card max-w-2xl w-full max-h-[90vh] overflow-y-auto`},ot={class:`modal-field-label-row`},st={key:0},ct={key:1,class:`text-content-secondary dark:text-content-muted text-sm`},lt={class:`grid grid-cols-2 gap-5`},ut={class:`grid grid-cols-2 gap-5`},dt={class:`rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light bg-background-card dark:bg-white/opacity-subtle p-4`},ft={class:`flex items-start gap-3 cursor-pointer`},pt={class:`text-content-secondary dark:text-content-muted text-xs mt-1`},mt={class:`modal-card max-w-2xl w-full max-h-[90vh] overflow-y-auto`},ht={class:`modal-field-label-row`},gt={key:0},_t={key:1,class:`text-content-secondary dark:text-content-muted text-sm`},vt={class:`grid grid-cols-2 gap-5`},yt={class:`grid grid-cols-2 gap-5`},bt={class:`rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light bg-background-card dark:bg-white/opacity-subtle p-4`},xt={class:`flex items-start gap-3 cursor-pointer`},St={class:`text-content-secondary dark:text-content-muted text-xs mt-1`},Ct={class:`bg-white dark:bg-surface-elevated backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[20px] p-6 max-w-4xl w-full h-[85vh] flex flex-col shadow-2xl`},wt={class:`relative overflow-hidden rounded-[15px] mb-6 p-5 bg-white/opacity-heavy dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-white/opacity-light`},Tt={class:`relative flex items-center justify-between`},Et={class:`flex items-center gap-4`},Dt={class:`text-content-secondary dark:text-content-muted text-sm flex items-center gap-2`},Ot={class:`text-primary font-semibold`},kt={class:`flex items-center gap-2`},At={class:`bg-primary/opacity-medium px-1.5 py-0.5 rounded-full text-[10px]`},jt={class:`flex-1 overflow-y-auto mb-4 space-y-3`},Mt={key:0,class:`flex items-center justify-center py-12`},Nt={class:`text-center`},Pt={key:1,class:`flex
Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{C as e,D as t,N as n,P as r,T as i,U as a,_t as o,c as s,f as ee,h as te,ht as c,i as l,j as ne,l as u,m as d,o as f,p,r as m,s as h,u as g}from"./runtime-core.esm-bundler-CINEgm0a.js";import{c as re,l as _,o as v,r as ie,t as ae}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as y}from"./api-BgU2z9oO.js";import{t as oe}from"./system-BVs_Y0rK.js";import{t as b}from"./Spinner-D-jFxDsV.js";import{c as se,r as ce,s as le}from"./index-DXPlD6DJ.js";import{t as ue}from"./ConfirmDialog-CKP12S0V.js";import{t as de}from"./MessageDialog-DgBtqb-B.js";import{t as fe}from"./LocationPicker-BY42-b1V.js";var pe={class:`p-3 sm:p-6 space-y-4 sm:space-y-6`},me={key:0,class:`grid grid-cols-1 md:grid-cols-3 gap-4`},he={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-5`},ge={class:`flex items-center justify-between`},_e={class:`text-3xl font-bold text-content-primary mb-1`},ve={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-5`},ye={class:`flex items-center justify-between`},be={class:`text-3xl font-bold text-primary mb-1`},xe={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-5`},Se={class:`flex items-center justify-between`},Ce={key:0,class:`w-6 h-6 text-accent-green`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},we={key:1,class:`w-6 h-6 text-accent-yellow`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},Te={class:`glass-card backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[15px] p-6`},Ee={key:0,class:`flex items-center justify-center py-12`},De={class:`text-center`},Oe={key:1,class:`flex items-center justify-center py-12`},ke={class:`text-center`},Ae={class:`text-content-secondary dark:text-content-muted text-sm mb-4`},je={key:2,class:`space-y-4`},Me={class:`flex items-start justify-between`},Ne={class:`flex-1`},Pe={class:`flex items-center gap-3 mb-4`},Fe={class:`relative`},Ie={key:0,class:`absolute inset-0 bg-accent-green/opacity-heavy rounded-full animate-ping`},Le={class:`text-xl font-bold text-content-primary`},Re={key:0,class:`text-content-muted text-sm`},ze={class:`grid grid-cols-1 md:grid-cols-2 gap-3 text-sm mb-3`},Be={class:`text-content-primary/opacity-heavy ml-2`},Ve={class:`flex items-center gap-2`},He={key:0,class:`text-content-primary/opacity-heavy font-mono ml-2 text-xs`},Ue={key:1,class:`text-content-muted ml-2 text-xs`},We=[`onClick`],Ge={class:`text-content-primary/opacity-heavy ml-2`},Ke={class:`text-content-primary/opacity-heavy ml-2`},qe={key:0},Je={class:`text-content-primary/opacity-heavy ml-2`},Ye={key:0,class:`text-accent-green`},Xe={key:1,class:`text-content-muted`},Ze={key:2,class:`text-primary`},Qe={class:`text-content-primary/opacity-heavy ml-2`},$e={key:0,class:`text-xs text-content-muted font-mono`},et={class:`ml-4 flex flex-wrap gap-2`},tt=[`onClick`,`disabled`,`title`],nt=[`onClick`,`disabled`,`title`],rt=[`onClick`],it=[`onClick`],at={key:3,class:`text-center py-12 text-content-secondary dark:text-content-muted`},ot={class:`modal-card max-w-2xl w-full max-h-[90vh] overflow-y-auto`},st={class:`modal-field-label-row`},ct={key:0},lt={key:1,class:`text-content-secondary dark:text-content-muted text-sm`},ut={class:`grid grid-cols-2 gap-5`},dt={class:`grid grid-cols-2 gap-5`},ft={class:`grid grid-cols-2 gap-5`},pt={class:`rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light bg-background-card dark:bg-white/opacity-subtle p-4`},mt={class:`flex items-start gap-3 cursor-pointer`},ht={class:`text-content-secondary dark:text-content-muted text-xs mt-1`},gt={class:`modal-card max-w-2xl w-full max-h-[90vh] overflow-y-auto`},_t={class:`modal-field-label-row`},vt={key:0},yt={key:1,class:`text-content-secondary dark:text-content-muted text-sm`},bt={class:`grid grid-cols-2 gap-5`},xt={class:`grid grid-cols-2 gap-5`},St={class:`grid grid-cols-2 gap-5`},Ct={class:`rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light bg-background-card dark:bg-white/opacity-subtle p-4`},wt={class:`flex items-start gap-3 cursor-pointer`},Tt={class:`text-content-secondary dark:text-content-muted text-xs mt-1`},Et={class:`bg-white dark:bg-surface-elevated backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[20px] p-6 max-w-4xl w-full h-[85vh] flex flex-col shadow-2xl`},Dt={class:`relative overflow-hidden rounded-[15px] mb-6 p-5 bg-white/opacity-heavy dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-white/opacity-light`},Ot={class:`relative flex items-center justify-between`},kt={class:`flex items-center gap-4`},At={class:`text-content-secondary dark:text-content-muted text-sm flex items-center gap-2`},jt={class:`text-primary font-semibold`},Mt={class:`flex items-center gap-2`},Nt={class:`bg-primary/opacity-medium px-1.5 py-0.5 rounded-full text-[10px]`},Pt={class:`flex-1 overflow-y-au
Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{D as e,T as t,_t as n,h as r,ht as i,l as a,o,r as s,s as c,u as l}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as u}from"./system-uA3cZx_m.js";import{t as d}from"./index-DoCDF--l.js";var f={class:`space-y-4`},p={class:`glass-card rounded-[15px] p-4 sm:p-6`},m={class:`mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4`},h={class:`text-xs uppercase tracking-wide text-content-muted`},g={class:`mt-2 text-lg font-semibold text-content-heading`},_={key:0,class:`glass-card rounded-[15px] p-5 text-content-muted`},v={class:`flex flex-wrap items-center justify-between gap-3`},y={class:`text-lg font-semibold text-content-heading`},b={class:`text-sm text-content-muted`},x={class:`mt-3 grid grid-cols-1 gap-2 sm:grid-cols-2`},S={class:`text-sm`},C={class:`ml-2 text-content-heading`},w={key:0,class:`text-sm`},T={class:`ml-2 text-accent-red`},E={class:`mt-4 overflow-x-auto rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light`},D={class:`min-w-full text-sm`},O={class:`px-3 py-2 font-medium text-content-heading`},k={class:`px-3 py-2 text-content-muted break-all`},A={key:0},j={key:1,class:`glass-card rounded-[15px] p-5 text-content-muted`},M=r({name:`SensorsView`,__name:`Sensors`,setup(r){let M=u(),N=o(()=>M.stats?.sensors??null),P=o(()=>N.value?.readings??[]),F=o(()=>{let e=N.value;return e?[{label:`Enabled`,value:e.enabled?`Yes`:`No`},{label:`Running`,value:e.running?`Yes`:`No`},{label:`Configured / Loaded`,value:`${e.configured??0} / ${e.loaded??0}`},{label:`Poll Interval`,value:typeof e.poll_interval_seconds==`number`?`${e.poll_interval_seconds.toFixed(1)}s`:`n/a`}]:[{label:`Enabled`,value:`n/a`},{label:`Running`,value:`n/a`},{label:`Configured`,value:`n/a`},{label:`Poll Interval`,value:`n/a`}]}),I=e=>{if(e==null)return`n/a`;if(typeof e==`boolean`)return e?`true`:`false`;if(typeof e==`number`)return Number.isFinite(e)?String(e):`n/a`;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}},L=e=>{if(!e)return`n/a`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},R=async()=>{await M.fetchStats()};return d(async()=>{await M.fetchStats()},{intervalMs:1e4,immediate:!0}),(r,o)=>(t(),l(`div`,f,[c(`div`,p,[c(`div`,{class:`flex items-start justify-between gap-4`},[o[0]||=c(`div`,null,[c(`h1`,{class:`text-ui-title sm:text-ui-title-lg font-semibold text-content-heading`},`Sensors`),c(`p`,{class:`mt-1 text-ui-label sm:text-ui-body text-content-muted`},` Live sensor summary from the existing stats API. `)],-1),c(`button`,{class:`rounded-[10px] border border-stroke-subtle dark:border-white/opacity-light px-3 py-2 text-sm hover:bg-black/opacity-light dark:hover:bg-white/opacity-light`,onClick:R},` Refresh `)]),c(`div`,m,[(t(!0),l(s,null,e(F.value,e=>(t(),l(`div`,{key:e.label,class:`rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light p-3`},[c(`p`,h,n(e.label),1),c(`p`,g,n(e.value),1)]))),128))])]),N.value?a(``,!0):(t(),l(`div`,_,` Sensor data is not available yet. Ensure the repeater has started and stats are loading. `)),(t(!0),l(s,null,e(P.value,(r,u)=>(t(),l(`div`,{key:`${r.name||`sensor`}-${u}`,class:`glass-card rounded-[15px] p-4 sm:p-5`},[c(`div`,v,[c(`div`,null,[c(`h2`,y,n(r.name||`Sensor ${u+1}`),1),c(`p`,b,`Type: `+n(r.type||`unknown`),1)]),c(`span`,{class:i([`rounded-full px-3 py-1 text-xs font-semibold`,r.ok?`bg-accent-green/opacity-light text-accent-green dark:bg-accent-green/opacity-medium dark:text-accent-green`:`bg-accent-red/opacity-light text-accent-red dark:bg-accent-red/opacity-medium dark:text-accent-red`])},n(r.ok?`OK`:`Error`),3)]),c(`div`,x,[c(`div`,S,[o[1]||=c(`span`,{class:`text-content-muted`},`Timestamp:`,-1),c(`span`,C,n(L(r.timestamp)),1)]),r.error?(t(),l(`div`,w,[o[2]||=c(`span`,{class:`text-content-muted`},`Error:`,-1),c(`span`,T,n(r.error),1)])):a(``,!0)]),c(`div`,E,[c(`table`,D,[o[4]||=c(`thead`,{class:`bg-black/opacity-light dark:bg-white/opacity-subtle`},[c(`tr`,null,[c(`th`,{class:`px-3 py-2 text-left text-content-muted`},`Field`),c(`th`,{class:`px-3 py-2 text-left text-content-muted`},`Value`)])],-1),c(`tbody`,null,[(t(!0),l(s,null,e(r.data||{},(e,r)=>(t(),l(`tr`,{key:String(r),class:`border-t border-stroke-subtle dark:border-white/opacity-light`},[c(`td`,O,n(r),1),c(`td`,k,n(I(e)),1)]))),128)),!r.data||Object.keys(r.data).length===0?(t(),l(`tr`,A,[...o[3]||=[c(`td`,{class:`px-3 py-3 text-content-muted`,colspan:`2`},`No fields in payload`,-1)]])):a(``,!0)])])])]))),128)),N.value&&P.value.length===0?(t(),l(`div`,j,` Sensors are configured but no readings are available yet. `)):a(``,!0)]))}});export{M as default};
|
||||
import{D as e,T as t,_t as n,h as r,ht as i,l as a,o,r as s,s as c,u as l}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as u}from"./system-BVs_Y0rK.js";import{t as d}from"./index-DXPlD6DJ.js";var f={class:`space-y-4`},p={class:`glass-card rounded-[15px] p-4 sm:p-6`},m={class:`mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4`},h={class:`text-xs uppercase tracking-wide text-content-muted`},g={class:`mt-2 text-lg font-semibold text-content-heading`},_={key:0,class:`glass-card rounded-[15px] p-5 text-content-muted`},v={class:`flex flex-wrap items-center justify-between gap-3`},y={class:`text-lg font-semibold text-content-heading`},b={class:`text-sm text-content-muted`},x={class:`mt-3 grid grid-cols-1 gap-2 sm:grid-cols-2`},S={class:`text-sm`},C={class:`ml-2 text-content-heading`},w={key:0,class:`text-sm`},T={class:`ml-2 text-accent-red`},E={class:`mt-4 overflow-x-auto rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light`},D={class:`min-w-full text-sm`},O={class:`px-3 py-2 font-medium text-content-heading`},k={class:`px-3 py-2 text-content-muted break-all`},A={key:0},j={key:1,class:`glass-card rounded-[15px] p-5 text-content-muted`},M=r({name:`SensorsView`,__name:`Sensors`,setup(r){let M=u(),N=o(()=>M.stats?.sensors??null),P=o(()=>N.value?.readings??[]),F=o(()=>{let e=N.value;return e?[{label:`Enabled`,value:e.enabled?`Yes`:`No`},{label:`Running`,value:e.running?`Yes`:`No`},{label:`Configured / Loaded`,value:`${e.configured??0} / ${e.loaded??0}`},{label:`Poll Interval`,value:typeof e.poll_interval_seconds==`number`?`${e.poll_interval_seconds.toFixed(1)}s`:`n/a`}]:[{label:`Enabled`,value:`n/a`},{label:`Running`,value:`n/a`},{label:`Configured`,value:`n/a`},{label:`Poll Interval`,value:`n/a`}]}),I=e=>{if(e==null)return`n/a`;if(typeof e==`boolean`)return e?`true`:`false`;if(typeof e==`number`)return Number.isFinite(e)?String(e):`n/a`;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}},L=e=>{if(!e)return`n/a`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()},R=async()=>{await M.fetchStats()};return d(async()=>{await M.fetchStats()},{intervalMs:1e4,immediate:!0}),(r,o)=>(t(),l(`div`,f,[c(`div`,p,[c(`div`,{class:`flex items-start justify-between gap-4`},[o[0]||=c(`div`,null,[c(`h1`,{class:`text-ui-title sm:text-ui-title-lg font-semibold text-content-heading`},`Sensors`),c(`p`,{class:`mt-1 text-ui-label sm:text-ui-body text-content-muted`},` Live sensor summary from the existing stats API. `)],-1),c(`button`,{class:`rounded-[10px] border border-stroke-subtle dark:border-white/opacity-light px-3 py-2 text-sm hover:bg-black/opacity-light dark:hover:bg-white/opacity-light`,onClick:R},` Refresh `)]),c(`div`,m,[(t(!0),l(s,null,e(F.value,e=>(t(),l(`div`,{key:e.label,class:`rounded-[12px] border border-stroke-subtle dark:border-white/opacity-light p-3`},[c(`p`,h,n(e.label),1),c(`p`,g,n(e.value),1)]))),128))])]),N.value?a(``,!0):(t(),l(`div`,_,` Sensor data is not available yet. Ensure the repeater has started and stats are loading. `)),(t(!0),l(s,null,e(P.value,(r,u)=>(t(),l(`div`,{key:`${r.name||`sensor`}-${u}`,class:`glass-card rounded-[15px] p-4 sm:p-5`},[c(`div`,v,[c(`div`,null,[c(`h2`,y,n(r.name||`Sensor ${u+1}`),1),c(`p`,b,`Type: `+n(r.type||`unknown`),1)]),c(`span`,{class:i([`rounded-full px-3 py-1 text-xs font-semibold`,r.ok?`bg-accent-green/opacity-light text-accent-green dark:bg-accent-green/opacity-medium dark:text-accent-green`:`bg-accent-red/opacity-light text-accent-red dark:bg-accent-red/opacity-medium dark:text-accent-red`])},n(r.ok?`OK`:`Error`),3)]),c(`div`,x,[c(`div`,S,[o[1]||=c(`span`,{class:`text-content-muted`},`Timestamp:`,-1),c(`span`,C,n(L(r.timestamp)),1)]),r.error?(t(),l(`div`,w,[o[2]||=c(`span`,{class:`text-content-muted`},`Error:`,-1),c(`span`,T,n(r.error),1)])):a(``,!0)]),c(`div`,E,[c(`table`,D,[o[4]||=c(`thead`,{class:`bg-black/opacity-light dark:bg-white/opacity-subtle`},[c(`tr`,null,[c(`th`,{class:`px-3 py-2 text-left text-content-muted`},`Field`),c(`th`,{class:`px-3 py-2 text-left text-content-muted`},`Value`)])],-1),c(`tbody`,null,[(t(!0),l(s,null,e(r.data||{},(e,r)=>(t(),l(`tr`,{key:String(r),class:`border-t border-stroke-subtle dark:border-white/opacity-light`},[c(`td`,O,n(r),1),c(`td`,k,n(I(e)),1)]))),128)),!r.data||Object.keys(r.data).length===0?(t(),l(`tr`,A,[...o[3]||=[c(`td`,{class:`px-3 py-3 text-content-muted`,colspan:`2`},`No fields in payload`,-1)]])):a(``,!0)])])])]))),128)),N.value&&P.value.length===0?(t(),l(`div`,j,` Sensors are configured but no readings are available yet. `)):a(``,!0)]))}});export{M as default};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,h as ee,ht as o,l as s,m as te,o as c,p as ne,r as l,s as u,u as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as re}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as f}from"./api-B-2vYkoY.js";import{t as ie}from"./Spinner-D-jFxDsV.js";var ae={class:`p-3 sm:p-6 space-y-4 sm:space-y-6`},oe={key:0,class:`grid grid-cols-1 md:grid-cols-4 gap-4`},se={class:`glass-card rounded-[15px] p-4`},ce={class:`text-2xl font-bold text-content-primary`},le={class:`glass-card rounded-[15px] p-4`},ue={class:`text-2xl font-bold text-primary`},de={class:`glass-card rounded-[15px] p-4`},fe={class:`text-2xl font-bold text-accent-green`},pe={class:`glass-card rounded-[15px] p-4`},me={class:`text-2xl font-bold text-secondary`},he={class:`glass-card rounded-[15px] p-6`},p={class:`flex flex-wrap border-b border-stroke-subtle dark:border-stroke/opacity-light mb-6`},m=[`onClick`],h={class:`flex items-center gap-2`},g={key:0,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},_={key:1,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},v={key:2,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},y={class:`min-h-[400px]`},b={key:0,class:`flex items-center justify-center py-12`},x={class:`text-center`},S={key:1,class:`flex items-center justify-center py-12`},C={class:`text-center`},w={class:`text-content-secondary dark:text-content-muted text-sm mb-4`},T={key:2,class:`space-y-4`},E={key:0,class:`text-center py-12 text-content-secondary dark:text-content-muted`},D={key:1,class:`space-y-4`},O={class:`flex items-start justify-between`},k={class:`flex-1 min-w-0`},A={class:`flex items-center gap-2 flex-wrap mb-3`},j={class:`text-lg font-semibold text-content-primary truncate`},M={class:`flex flex-wrap items-center gap-x-4 gap-y-2 text-sm`},N={key:0,class:`flex items-center gap-1.5`},P={class:`text-content-secondary dark:text-content-muted`},F={key:1,class:`flex items-center gap-1.5`},I={class:`text-content-secondary dark:text-content-muted`},L={key:2,class:`text-content-secondary dark:text-content-muted font-mono text-xs`},R={key:3,class:`text-content-muted font-mono text-xs`},ge={key:0,class:`text-content-muted text-xs mt-2 mb-0`},_e={class:`grid grid-cols-2 md:grid-cols-4 gap-4 mt-4`},ve={class:`text-content-primary font-medium`},ye={class:`text-primary font-medium`},be={class:`mt-3 flex items-center gap-2`},xe={key:3,class:`space-y-4`},Se={key:0,class:`text-center py-12 text-content-secondary dark:text-content-muted`},Ce={key:1,class:`overflow-x-auto`},we={class:`w-full`},Te={class:`py-3`},z={class:`font-mono text-sm text-content-primary`},Ee={class:`py-3`},De={class:`font-mono text-xs text-content-secondary dark:text-content-muted`},Oe={class:`py-3`},ke={class:`text-sm text-content-primary`},Ae={class:`text-xs text-content-muted`},je={class:`py-3`},Me={class:`py-3`},Ne={class:`text-sm text-content-secondary dark:text-content-muted`},Pe={class:`py-3`},Fe=[`onClick`],Ie={key:4,class:`space-y-4`},Le={class:`mb-4`},Re=[`value`],ze={key:0,class:`text-center py-12 text-content-secondary dark:text-content-muted`},Be={key:1,class:`grid grid-cols-1 gap-4`},Ve={class:`flex items-start justify-between`},He={class:`flex-1`},Ue={class:`flex items-center gap-3 mb-3`},We={class:`text-content-primary font-mono text-sm`},Ge={class:`grid grid-cols-1 md:grid-cols-2 gap-3 text-sm`},Ke={class:`text-content-primary/opacity-heavy font-mono ml-2`},qe={class:`text-content-primary/opacity-heavy ml-2`},Je={class:`text-content-primary/opacity-heavy ml-2`},Ye={class:`text-content-primary/opacity-heavy ml-2`},Xe=[`onClick`],Ze={class:`flex justify-end`},Qe=[`disabled`],B=ee({name:`SessionsView`,__name:`Sessions`,setup(ee){let B=i(`overview`),V=i(!1),H=i(!1),U=i(null),W=i(null),G=i([]),K=i(null),q=i(null),$e=[{id:`overview`,label:`Overview`,icon:`overview`},{id:`clients`,label:`Authenticated Clients`,icon:`clients`},{id:`identities`,label:`By Identity`,icon:`identities`}];e(async()=>{await J(),V.value=!0});async function J(){H.value=!0,U.value=null;try{let e=await f.getACLInfo();e.success&&(W.value=e.data);let t=await f.getACLClients();t.success&&t.data&&(G.value=t.data.clients||[]);let n=await f.getACLStats();n.success&&(K.value=n.data)}catch(e){U.value=e instanceof Error?e.message:`Failed to load ACL data`,console.error(`Error fetching ACL data:`,e)}finally{H.value=!1}}async function Y(e,t){if(confirm(`Are you sure you want to remove this client from the ACL?`))try{let n=await f.removeACLClient({public_key:e,identity_hash:t});n.success?await J():alert(`Failed to remove client: ${n.error}`)}catch(e){alert(`Error removing client: ${e}`)}}function X(e){return e?new Date(e*1e3).toLocaleString():`Never`}function et(e){B.value=e}let Z=c(()=>q.value?G.value.filter(e=>e.identity_name===q.value):G.value),Q=c(()=>W.value&&W.value.acls||[]);function tt(e){return e?.type===`companion`}function nt(e){return e===`repeater`?`bg-primary/opacity-medium text-primar
Line truncated
|
||||
import{C as e,D as t,P as n,T as r,U as i,_t as a,h as ee,ht as o,l as s,m as te,o as c,p as ne,r as l,s as u,u as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as re}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as f}from"./api-BgU2z9oO.js";import{t as ie}from"./Spinner-D-jFxDsV.js";var ae={class:`p-3 sm:p-6 space-y-4 sm:space-y-6`},oe={key:0,class:`grid grid-cols-1 md:grid-cols-4 gap-4`},se={class:`glass-card rounded-[15px] p-4`},ce={class:`text-2xl font-bold text-content-primary`},le={class:`glass-card rounded-[15px] p-4`},ue={class:`text-2xl font-bold text-primary`},de={class:`glass-card rounded-[15px] p-4`},fe={class:`text-2xl font-bold text-accent-green`},pe={class:`glass-card rounded-[15px] p-4`},me={class:`text-2xl font-bold text-secondary`},he={class:`glass-card rounded-[15px] p-6`},p={class:`flex flex-wrap border-b border-stroke-subtle dark:border-stroke/opacity-light mb-6`},m=[`onClick`],h={class:`flex items-center gap-2`},g={key:0,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},_={key:1,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},v={key:2,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},y={class:`min-h-[400px]`},b={key:0,class:`flex items-center justify-center py-12`},x={class:`text-center`},S={key:1,class:`flex items-center justify-center py-12`},C={class:`text-center`},w={class:`text-content-secondary dark:text-content-muted text-sm mb-4`},T={key:2,class:`space-y-4`},E={key:0,class:`text-center py-12 text-content-secondary dark:text-content-muted`},D={key:1,class:`space-y-4`},O={class:`flex items-start justify-between`},k={class:`flex-1 min-w-0`},A={class:`flex items-center gap-2 flex-wrap mb-3`},j={class:`text-lg font-semibold text-content-primary truncate`},M={class:`flex flex-wrap items-center gap-x-4 gap-y-2 text-sm`},N={key:0,class:`flex items-center gap-1.5`},P={class:`text-content-secondary dark:text-content-muted`},F={key:1,class:`flex items-center gap-1.5`},I={class:`text-content-secondary dark:text-content-muted`},L={key:2,class:`text-content-secondary dark:text-content-muted font-mono text-xs`},R={key:3,class:`text-content-muted font-mono text-xs`},ge={key:0,class:`text-content-muted text-xs mt-2 mb-0`},_e={class:`grid grid-cols-2 md:grid-cols-4 gap-4 mt-4`},ve={class:`text-content-primary font-medium`},ye={class:`text-primary font-medium`},be={class:`mt-3 flex items-center gap-2`},xe={key:3,class:`space-y-4`},Se={key:0,class:`text-center py-12 text-content-secondary dark:text-content-muted`},Ce={key:1,class:`overflow-x-auto`},we={class:`w-full`},Te={class:`py-3`},z={class:`font-mono text-sm text-content-primary`},Ee={class:`py-3`},De={class:`font-mono text-xs text-content-secondary dark:text-content-muted`},Oe={class:`py-3`},ke={class:`text-sm text-content-primary`},Ae={class:`text-xs text-content-muted`},je={class:`py-3`},Me={class:`py-3`},Ne={class:`text-sm text-content-secondary dark:text-content-muted`},Pe={class:`py-3`},Fe=[`onClick`],Ie={key:4,class:`space-y-4`},Le={class:`mb-4`},Re=[`value`],ze={key:0,class:`text-center py-12 text-content-secondary dark:text-content-muted`},Be={key:1,class:`grid grid-cols-1 gap-4`},Ve={class:`flex items-start justify-between`},He={class:`flex-1`},Ue={class:`flex items-center gap-3 mb-3`},We={class:`text-content-primary font-mono text-sm`},Ge={class:`grid grid-cols-1 md:grid-cols-2 gap-3 text-sm`},Ke={class:`text-content-primary/opacity-heavy font-mono ml-2`},qe={class:`text-content-primary/opacity-heavy ml-2`},Je={class:`text-content-primary/opacity-heavy ml-2`},Ye={class:`text-content-primary/opacity-heavy ml-2`},Xe=[`onClick`],Ze={class:`flex justify-end`},Qe=[`disabled`],B=ee({name:`SessionsView`,__name:`Sessions`,setup(ee){let B=i(`overview`),V=i(!1),H=i(!1),U=i(null),W=i(null),G=i([]),K=i(null),q=i(null),$e=[{id:`overview`,label:`Overview`,icon:`overview`},{id:`clients`,label:`Authenticated Clients`,icon:`clients`},{id:`identities`,label:`By Identity`,icon:`identities`}];e(async()=>{await J(),V.value=!0});async function J(){H.value=!0,U.value=null;try{let e=await f.getACLInfo();e.success&&(W.value=e.data);let t=await f.getACLClients();t.success&&t.data&&(G.value=t.data.clients||[]);let n=await f.getACLStats();n.success&&(K.value=n.data)}catch(e){U.value=e instanceof Error?e.message:`Failed to load ACL data`,console.error(`Error fetching ACL data:`,e)}finally{H.value=!1}}async function Y(e,t){if(confirm(`Are you sure you want to remove this client from the ACL?`))try{let n=await f.removeACLClient({public_key:e,identity_hash:t});n.success?await J():alert(`Failed to remove client: ${n.error}`)}catch(e){alert(`Error removing client: ${e}`)}}function X(e){return e?new Date(e*1e3).toLocaleString():`Never`}function et(e){B.value=e}let Z=c(()=>q.value?G.value.filter(e=>e.identity_name===q.value):G.value),Q=c(()=>W.value&&W.value.acls||[]);function tt(e){return e?.type===`companion`}function nt(e){return e===`repeater`?`bg-primary/opacity-medium text-primar
Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{C as e,D as t,N as n,P as r,T as i,U as a,X as o,_t as s,c,f as l,gt as ee,h as te,ht as u,j as d,l as f,m as p,o as m,p as h,r as g,s as _,u as v,y as ne}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as y,l as re,o as b,r as ie,t as x}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as S}from"./api-B-2vYkoY.js";import{t as C}from"./createLucideIcon-C08u_PTE.js";import{n as ae,t as oe}from"./TxPowerNoticeModal-FiFCOWr9.js";import{t as w}from"./Spinner-D-jFxDsV.js";import{d as T,i as se,o as ce,r as le}from"./index-DoCDF--l.js";var ue=C(`usb`,[[`circle`,{cx:`10`,cy:`7`,r:`1`,key:`dypaad`}],[`circle`,{cx:`4`,cy:`20`,r:`1`,key:`22iqad`}],[`path`,{d:`M4.7 19.3 19 5`,key:`1enqfc`}],[`path`,{d:`m21 3-3 1 2 2Z`,key:`d3ov82`}],[`path`,{d:`M9.26 7.68 5 12l2 5`,key:`1esawj`}],[`path`,{d:`m10 14 5 2 3.5-3.5`,key:`v8oal5`}],[`path`,{d:`m18 12 1-1 1 1-1 1Z`,key:`1bh22v`}]]),de=C(`wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]),fe={class:`min-h-screen bg-background dark:bg-background overflow-hidden relative flex items-center justify-center p-4`},pe={class:`absolute top-4 right-4 z-20`},me={class:`w-full max-w-4xl relative z-10`},he={key:0,class:`mb-8`},ge={class:`flex justify-between mb-2`},_e={class:`text-content-secondary dark:text-content-muted text-sm`},ve={class:`text-content-secondary dark:text-content-muted text-sm`},ye={class:`h-2 bg-stroke-subtle dark:bg-stroke/opacity-subtle rounded-full overflow-hidden`},be={class:`bg-white dark:bg-surface-elevated backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[20px] p-6 sm:p-8 md:p-12`},xe={key:0,class:`flex justify-center mb-8`},Se={class:`flex gap-2`},Ce={class:`mb-8`},we={class:`text-2xl sm:text-3xl font-bold text-content-primary mb-2 text-center`},Te={key:0,class:`space-y-6 mt-8`},Ee={class:`grid grid-cols-1 md:grid-cols-2 gap-4 max-w-4xl mx-auto`},De={key:0,class:`max-w-3xl mx-auto bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-[16px] p-5`},Oe={class:`flex flex-col sm:flex-row sm:items-center gap-3`},ke={class:`text-sm text-content-secondary dark:text-content-muted truncate`},Ae={class:`mt-4`},je=[`disabled`],Me={class:`text-center space-y-4`},Ne={key:0,class:`text-content-secondary dark:text-content-muted text-sm`},Pe={key:1,class:`w-20 h-20 mx-auto bg-primary/opacity-medium rounded-full flex items-center justify-center mb-6`},Fe={key:2,class:`text-content-secondary dark:text-content-primary/opacity-heavy text-lg`},Ie={key:3,class:`bg-primary/opacity-light border border-primary/opacity-medium rounded-lg p-4 text-left`},Le={key:1,class:`space-y-6 mt-8`},Re={class:`max-w-md mx-auto`},ze={key:2,class:`space-y-6 mt-8`},Be={class:`grid grid-cols-1 md:grid-cols-3 gap-4 max-w-5xl mx-auto`},Ve=[`onClick`],He={class:`font-semibold text-lg text-content-primary mb-2`},Ue={class:`text-sm text-content-secondary dark:text-content-muted`},We={key:3,class:`mt-8`},Ge={key:0,class:`text-center text-content-secondary dark:text-content-muted`},Ke={key:1,class:`text-center text-content-secondary dark:text-content-muted`},qe={key:2,class:`text-center text-content-secondary dark:text-content-muted`},Je={key:3,class:`max-w-3xl mx-auto space-y-8`},Ye={class:`flex items-center gap-3 mb-4`},Xe={key:0,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},Ze={key:1},Qe={class:`grid grid-cols-1 md:grid-cols-2 gap-3 pl-10`},$e=[`onClick`],et={class:`flex items-start justify-between gap-2`},tt={class:`font-medium text-content-primary mb-1`},nt={class:`text-sm text-content-secondary dark:text-content-muted`},rt={key:0,class:`text-primary flex-shrink-0 mt-0.5`},it={key:0},at={key:0,class:`pl-10`},ot={class:`bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-[12px] p-5 space-y-4`},st={class:`space-y-2`},ct={class:`flex gap-2`},lt=[`disabled`],ut=[`value`],dt=[`value`],ft=[`disabled`],pt={class:`flex items-center gap-2 text-xs text-content-secondary dark:text-content-muted`},mt={key:1,class:`text-xs text-accent-red`},ht={key:1,class:`pl-10`},gt={class:`bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-[12px] p-5 space-y-4`},_t={class:`grid grid-cols-2 gap-4`},vt={key:4,class:`space-y-6 mt-8`},yt={key:0,class:`text-center text-content-secondary dark:text-content-muted`},bt={key:1,class:`text-center text-content-secondary dark:text-content-muted`},xt={key:2,class:`max-w-5xl mx-auto`},St={class:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-4`},Ct=[`onClick`],wt={class:`relative z-10`},Tt={class:`font-medium text-content-primary mb-1 flex items-start justify-between gap-2`},Et={class:`flex items-center gap-2`},Dt={class:`text-2xl`},Ot={key:0,class:`text-primary fle
Line truncated
|
||||
import{C as e,D as t,N as n,P as r,T as i,U as a,X as o,_t as s,c,f as l,gt as ee,h as te,ht as u,j as d,l as f,m as p,o as m,p as h,r as g,s as _,u as v,y as ne}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as y,l as re,o as b,r as ie,t as x}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as S}from"./api-BgU2z9oO.js";import{t as C}from"./createLucideIcon-C08u_PTE.js";import{n as ae,t as oe}from"./TxPowerNoticeModal-C1zbTXJk.js";import{t as w}from"./Spinner-D-jFxDsV.js";import{d as T,i as se,o as ce,r as le}from"./index-DXPlD6DJ.js";var ue=C(`usb`,[[`circle`,{cx:`10`,cy:`7`,r:`1`,key:`dypaad`}],[`circle`,{cx:`4`,cy:`20`,r:`1`,key:`22iqad`}],[`path`,{d:`M4.7 19.3 19 5`,key:`1enqfc`}],[`path`,{d:`m21 3-3 1 2 2Z`,key:`d3ov82`}],[`path`,{d:`M9.26 7.68 5 12l2 5`,key:`1esawj`}],[`path`,{d:`m10 14 5 2 3.5-3.5`,key:`v8oal5`}],[`path`,{d:`m18 12 1-1 1 1-1 1Z`,key:`1bh22v`}]]),de=C(`wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]),fe={class:`min-h-screen bg-background dark:bg-background overflow-hidden relative flex items-center justify-center p-4`},pe={class:`absolute top-4 right-4 z-20`},me={class:`w-full max-w-4xl relative z-10`},he={key:0,class:`mb-8`},ge={class:`flex justify-between mb-2`},_e={class:`text-content-secondary dark:text-content-muted text-sm`},ve={class:`text-content-secondary dark:text-content-muted text-sm`},ye={class:`h-2 bg-stroke-subtle dark:bg-stroke/opacity-subtle rounded-full overflow-hidden`},be={class:`bg-white dark:bg-surface-elevated backdrop-blur-xl border border-stroke-subtle dark:border-white/opacity-light rounded-[20px] p-6 sm:p-8 md:p-12`},xe={key:0,class:`flex justify-center mb-8`},Se={class:`flex gap-2`},Ce={class:`mb-8`},we={class:`text-2xl sm:text-3xl font-bold text-content-primary mb-2 text-center`},Te={key:0,class:`space-y-6 mt-8`},Ee={class:`grid grid-cols-1 md:grid-cols-2 gap-4 max-w-4xl mx-auto`},De={key:0,class:`max-w-3xl mx-auto bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-[16px] p-5`},Oe={class:`flex flex-col sm:flex-row sm:items-center gap-3`},ke={class:`text-sm text-content-secondary dark:text-content-muted truncate`},Ae={class:`mt-4`},je=[`disabled`],Me={class:`text-center space-y-4`},Ne={key:0,class:`text-content-secondary dark:text-content-muted text-sm`},Pe={key:1,class:`w-20 h-20 mx-auto bg-primary/opacity-medium rounded-full flex items-center justify-center mb-6`},Fe={key:2,class:`text-content-secondary dark:text-content-primary/opacity-heavy text-lg`},Ie={key:3,class:`bg-primary/opacity-light border border-primary/opacity-medium rounded-lg p-4 text-left`},Le={key:1,class:`space-y-6 mt-8`},Re={class:`max-w-md mx-auto`},ze={key:2,class:`space-y-6 mt-8`},Be={class:`grid grid-cols-1 md:grid-cols-3 gap-4 max-w-5xl mx-auto`},Ve=[`onClick`],He={class:`font-semibold text-lg text-content-primary mb-2`},Ue={class:`text-sm text-content-secondary dark:text-content-muted`},We={key:3,class:`mt-8`},Ge={key:0,class:`text-center text-content-secondary dark:text-content-muted`},Ke={key:1,class:`text-center text-content-secondary dark:text-content-muted`},qe={key:2,class:`text-center text-content-secondary dark:text-content-muted`},Je={key:3,class:`max-w-3xl mx-auto space-y-8`},Ye={class:`flex items-center gap-3 mb-4`},Xe={key:0,class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},Ze={key:1},Qe={class:`grid grid-cols-1 md:grid-cols-2 gap-3 pl-10`},$e=[`onClick`],et={class:`flex items-start justify-between gap-2`},tt={class:`font-medium text-content-primary mb-1`},nt={class:`text-sm text-content-secondary dark:text-content-muted`},rt={key:0,class:`text-primary flex-shrink-0 mt-0.5`},it={key:0},at={key:0,class:`pl-10`},ot={class:`bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-[12px] p-5 space-y-4`},st={class:`space-y-2`},ct={class:`flex gap-2`},lt=[`disabled`],ut=[`value`],dt=[`value`],ft=[`disabled`],pt={class:`flex items-center gap-2 text-xs text-content-secondary dark:text-content-muted`},mt={key:1,class:`text-xs text-accent-red`},ht={key:1,class:`pl-10`},gt={class:`bg-background-mute dark:bg-white/opacity-subtle border border-stroke-subtle dark:border-stroke/opacity-light rounded-[12px] p-5 space-y-4`},_t={class:`grid grid-cols-2 gap-4`},vt={key:4,class:`space-y-6 mt-8`},yt={key:0,class:`text-center text-content-secondary dark:text-content-muted`},bt={key:1,class:`text-center text-content-secondary dark:text-content-muted`},xt={key:2,class:`max-w-5xl mx-auto`},St={class:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-4`},Ct=[`onClick`],wt={class:`relative z-10`},Tt={class:`font-medium text-content-primary mb-1 flex items-start justify-between gap-2`},Et={class:`flex items-center gap-2`},Dt={class:`text-2xl`},Ot={key:0,class:`text-primary fle
Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{D as e,T as t,h as n,ht as r,o as i,r as a,s as o,u as s}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as c}from"./system-uA3cZx_m.js";var l={7:-7.5,8:-10,9:-12.5,10:-15,11:-17.5,12:-20},u=-116,d=8,f=4,p=5;function m(e,t){return e-t}function h(e){return l[e]??l[d]}function g(e,t){if(e<t)return{bars:0,color:`text-accent-red`,bgColor:`bg-accent-red`,snr:e,quality:`None`};let n=Math.min(p,Math.floor((e-t)/f)+1);return{bars:n,snr:e,...{1:{color:`text-accent-red`,bgColor:`bg-accent-red`,quality:`Poor`},2:{color:`text-accent-orange`,bgColor:`bg-accent-orange`,quality:`Poor`},3:{color:`text-accent-amber`,bgColor:`bg-accent-amber`,quality:`Fair`},4:{color:`text-accent-green-light`,bgColor:`bg-accent-green-light`,quality:`Good`},5:{color:`text-accent-green`,bgColor:`bg-accent-green`,quality:`Excellent`}}[n]}}function _(){let e=c(),t=i(()=>e.noiseFloorDbm??u),n=i(()=>e.stats?.config?.radio?.spreading_factor??d),r=i(()=>h(n.value));return{getSignalQuality:e=>{if(!e||e>0||e<-120)return{bars:0,color:`text-content-muted`,bgColor:`bg-content-muted`,snr:-999,quality:`None`};let n=m(e,t.value);return g(Math.max(-30,Math.min(20,n)),r.value)},getSignalQualityFromSNR:e=>e===null||!Number.isFinite(e)?{bars:0,color:`text-content-muted`,bgColor:`bg-content-muted`,snr:-999,quality:`None`}:g(Math.max(-30,Math.min(20,e)),r.value),noiseFloor:t,spreadingFactor:n,minSNR:r}}var v={class:`flex items-end gap-0.5`},y=n({name:`SignalBars`,__name:`SignalBars`,props:{bars:{},color:{},size:{default:`sm`}},setup(n){let i=n,c={sm:[`h-1.5`,`h-2`,`h-2.5`,`h-3`,`h-3.5`],md:[`h-2`,`h-2.5`,`h-3`,`h-3.5`,`h-4`]},l={sm:`w-1`,md:`w-1.5`};return(n,u)=>(t(),s(`div`,v,[(t(),s(a,null,e(5,e=>o(`div`,{key:e,class:r([`transition-colors`,l[i.size],c[i.size][e-1],e<=i.bars?i.color:`text-content-muted`])},[...u[0]||=[o(`div`,{class:`w-full h-full bg-current rounded-sm`},null,-1)]],2)),64))]))}});export{_ as n,y as t};
|
||||
import{D as e,T as t,h as n,ht as r,o as i,r as a,s as o,u as s}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as c}from"./system-BVs_Y0rK.js";var l={7:-7.5,8:-10,9:-12.5,10:-15,11:-17.5,12:-20},u=-116,d=8,f=4,p=5;function m(e,t){return e-t}function h(e){return l[e]??l[d]}function g(e,t){if(e<t)return{bars:0,color:`text-accent-red`,bgColor:`bg-accent-red`,snr:e,quality:`None`};let n=Math.min(p,Math.floor((e-t)/f)+1);return{bars:n,snr:e,...{1:{color:`text-accent-red`,bgColor:`bg-accent-red`,quality:`Poor`},2:{color:`text-accent-orange`,bgColor:`bg-accent-orange`,quality:`Poor`},3:{color:`text-accent-amber`,bgColor:`bg-accent-amber`,quality:`Fair`},4:{color:`text-accent-green-light`,bgColor:`bg-accent-green-light`,quality:`Good`},5:{color:`text-accent-green`,bgColor:`bg-accent-green`,quality:`Excellent`}}[n]}}function _(){let e=c(),t=i(()=>e.noiseFloorDbm??u),n=i(()=>e.stats?.config?.radio?.spreading_factor??d),r=i(()=>h(n.value));return{getSignalQuality:e=>{if(!e||e>0||e<-120)return{bars:0,color:`text-content-muted`,bgColor:`bg-content-muted`,snr:-999,quality:`None`};let n=m(e,t.value);return g(Math.max(-30,Math.min(20,n)),r.value)},getSignalQualityFromSNR:e=>e===null||!Number.isFinite(e)?{bars:0,color:`text-content-muted`,bgColor:`bg-content-muted`,snr:-999,quality:`None`}:g(Math.max(-30,Math.min(20,e)),r.value),noiseFloor:t,spreadingFactor:n,minSNR:r}}var v={class:`flex items-end gap-0.5`},y=n({name:`SignalBars`,__name:`SignalBars`,props:{bars:{},color:{},size:{default:`sm`}},setup(n){let i=n,c={sm:[`h-1.5`,`h-2`,`h-2.5`,`h-3`,`h-3.5`],md:[`h-2`,`h-2.5`,`h-3`,`h-3.5`,`h-4`]},l={sm:`w-1`,md:`w-1.5`};return(n,u)=>(t(),s(`div`,v,[(t(),s(a,null,e(5,e=>o(`div`,{key:e,class:r([`transition-colors`,l[i.size],c[i.size][e-1],e<=i.bars?i.color:`text-content-muted`])},[...u[0]||=[o(`div`,{class:`w-full h-full bg-current rounded-sm`},null,-1)]],2)),64))]))}});export{_ as n,y as t};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{T as e,_t as t,c as n,gt as r,h as i,l as a,m as o,o as s,p as c,r as l,s as u,u as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as f}from"./Spinner-D-jFxDsV.js";import{d as p}from"./index-DoCDF--l.js";var m={class:`sparkline-card`},h={class:`card-header`},g={class:`card-title`},_={class:`card-subtitle`},v={key:0,class:`card-chart`},y={key:0,class:`chart-loader`},b={key:1,class:`chart-error`},x={key:2,class:`chart-text`},S={class:`percent-value`},C=[`id`,`viewBox`],w=[`d`,`fill`],T=[`d`,`stroke`],E=100,D=40,O=p(i({name:`SparklineChart`,__name:`Sparkline`,props:{title:{},value:{},color:{},data:{default:()=>[]},showChart:{type:Boolean,default:!0},variant:{default:`smooth`},loading:{type:Boolean,default:!1},error:{default:null},centerText:{default:``},subtitle:{default:``},minY:{default:void 0},maxY:{default:void 0}},emits:[`retry`],setup(i,{emit:p}){let O=i,k=p,A=e=>{if(e.length<3)return e;let t=Math.min(15,Math.max(3,Math.floor(e.length*.2))),n=[];for(let r=0;r<e.length;r++){let i=Math.floor(t/2),a=Math.max(0,r-i),o=Math.min(e.length,r+i+1),s=e.slice(a,o);n.push(s.reduce((e,t)=>e+t,0)/s.length)}let r=Math.min(10,n.length),i=n.length/r,a=[];for(let e=0;e<r;e++){let t=Math.floor(e*i);a.push(n[t])}return a},j=s(()=>!O.data||O.data.length===0?[]:O.variant===`smooth`?A(O.data):O.data),M=e=>{if(e.length<2)return``;let t=O.maxY??Math.max(...e),n=O.minY??Math.min(...e),r=t-n||1,i=O.variant===`classic`?4:2,a=``;return e.forEach((t,o)=>{let s=o/(e.length-1)*E,c=(t-n)/r,l=i+(D-i*2)*(1-c);if(o===0)a+=`M ${s.toFixed(2)} ${l.toFixed(2)}`;else{let t=((o-1)/(e.length-1)*E+s)/2;a+=` Q ${t.toFixed(2)} ${l.toFixed(2)} ${s.toFixed(2)} ${l.toFixed(2)}`}}),a},N=s(()=>M(j.value)),P=s(()=>N.value?`${N.value} L ${E} ${D} L 0 ${D} Z`:``),F=s(()=>`sparkline-${O.title.replace(/\s+/g,`-`).toLowerCase()}`);return(s,p)=>(e(),d(`div`,m,[u(`div`,h,[u(`div`,null,[u(`p`,g,t(i.title),1),u(`p`,_,t(i.subtitle),1)]),u(`span`,{class:`card-value`,style:r({color:i.color})},[i.loading?(e(),n(f,{key:0,size:`sm`,color:`current`})):(e(),d(l,{key:1},[c(t(typeof i.value==`number`?i.value.toLocaleString():i.value),1)],64))],4)]),i.showChart?(e(),d(`div`,v,[i.loading&&i.variant===`classic`?(e(),d(`div`,y,[o(f,{size:`sm`})])):i.error?(e(),d(`div`,b,[u(`button`,{class:`chart-retry-btn`,onClick:p[0]||=e=>k(`retry`)},`↺ Retry`)])):i.centerText?(e(),d(`div`,x,[u(`span`,S,t(i.centerText),1)])):(e(),d(`svg`,{key:3,id:F.value,class:`chart-svg`,viewBox:`0 0 ${E} ${D}`,preserveAspectRatio:`none`},[i.variant===`classic`?(e(),d(l,{key:0},[j.value.length>1?(e(),d(`path`,{key:0,d:P.value,fill:i.color,"fill-opacity":`0.8`,class:`sparkline-path`},null,8,w)):a(``,!0)],64)):(e(),d(l,{key:1},[j.value.length>1?(e(),d(`path`,{key:0,d:N.value,stroke:i.color,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:`none`,class:`sparkline-path`},null,8,T)):a(``,!0)],64))],8,C))])):a(``,!0)]))}}),[[`__scopeId`,`data-v-eb0d809d`]]);export{O as t};
|
||||
import{T as e,_t as t,c as n,gt as r,h as i,l as a,m as o,o as s,p as c,r as l,s as u,u as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as f}from"./Spinner-D-jFxDsV.js";import{d as p}from"./index-DXPlD6DJ.js";var m={class:`sparkline-card`},h={class:`card-header`},g={class:`card-title`},_={class:`card-subtitle`},v={key:0,class:`card-chart`},y={key:0,class:`chart-loader`},b={key:1,class:`chart-error`},x={key:2,class:`chart-text`},S={class:`percent-value`},C=[`id`,`viewBox`],w=[`d`,`fill`],T=[`d`,`stroke`],E=100,D=40,O=p(i({name:`SparklineChart`,__name:`Sparkline`,props:{title:{},value:{},color:{},data:{default:()=>[]},showChart:{type:Boolean,default:!0},variant:{default:`smooth`},loading:{type:Boolean,default:!1},error:{default:null},centerText:{default:``},subtitle:{default:``},minY:{default:void 0},maxY:{default:void 0}},emits:[`retry`],setup(i,{emit:p}){let O=i,k=p,A=e=>{if(e.length<3)return e;let t=Math.min(15,Math.max(3,Math.floor(e.length*.2))),n=[];for(let r=0;r<e.length;r++){let i=Math.floor(t/2),a=Math.max(0,r-i),o=Math.min(e.length,r+i+1),s=e.slice(a,o);n.push(s.reduce((e,t)=>e+t,0)/s.length)}let r=Math.min(10,n.length),i=n.length/r,a=[];for(let e=0;e<r;e++){let t=Math.floor(e*i);a.push(n[t])}return a},j=s(()=>!O.data||O.data.length===0?[]:O.variant===`smooth`?A(O.data):O.data),M=e=>{if(e.length<2)return``;let t=O.maxY??Math.max(...e),n=O.minY??Math.min(...e),r=t-n||1,i=O.variant===`classic`?4:2,a=``;return e.forEach((t,o)=>{let s=o/(e.length-1)*E,c=(t-n)/r,l=i+(D-i*2)*(1-c);if(o===0)a+=`M ${s.toFixed(2)} ${l.toFixed(2)}`;else{let t=((o-1)/(e.length-1)*E+s)/2;a+=` Q ${t.toFixed(2)} ${l.toFixed(2)} ${s.toFixed(2)} ${l.toFixed(2)}`}}),a},N=s(()=>M(j.value)),P=s(()=>N.value?`${N.value} L ${E} ${D} L 0 ${D} Z`:``),F=s(()=>`sparkline-${O.title.replace(/\s+/g,`-`).toLowerCase()}`);return(s,p)=>(e(),d(`div`,m,[u(`div`,h,[u(`div`,null,[u(`p`,g,t(i.title),1),u(`p`,_,t(i.subtitle),1)]),u(`span`,{class:`card-value`,style:r({color:i.color})},[i.loading?(e(),n(f,{key:0,size:`sm`,color:`current`})):(e(),d(l,{key:1},[c(t(typeof i.value==`number`?i.value.toLocaleString():i.value),1)],64))],4)]),i.showChart?(e(),d(`div`,v,[i.loading&&i.variant===`classic`?(e(),d(`div`,y,[o(f,{size:`sm`})])):i.error?(e(),d(`div`,b,[u(`button`,{class:`chart-retry-btn`,onClick:p[0]||=e=>k(`retry`)},`↺ Retry`)])):i.centerText?(e(),d(`div`,x,[u(`span`,S,t(i.centerText),1)])):(e(),d(`svg`,{key:3,id:F.value,class:`chart-svg`,viewBox:`0 0 ${E} ${D}`,preserveAspectRatio:`none`},[i.variant===`classic`?(e(),d(l,{key:0},[j.value.length>1?(e(),d(`path`,{key:0,d:P.value,fill:i.color,"fill-opacity":`0.8`,class:`sparkline-path`},null,8,w)):a(``,!0)],64)):(e(),d(l,{key:1},[j.value.length>1?(e(),d(`path`,{key:0,d:N.value,stroke:i.color,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`,fill:`none`,class:`sparkline-path`},null,8,T)):a(``,!0)],64))],8,C))])):a(``,!0)]))}}),[[`__scopeId`,`data-v-eb0d809d`]]);export{O as t};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{C as e,D as t,K as n,N as r,P as i,T as a,U as o,V as s,_t as c,gt as l,h as u,l as d,m as f,o as p,r as m,s as h,u as g,x as ee,y as _,z as v}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as te}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ne}from"./packets-B5s0Tvcs.js";import{_ as re,a as ie,c as ae,f as oe,g as se,i as ce,l as le,m as ue,n as de,o as y,p as fe,r as pe,s as me,t as b,u as he,v as ge,y as _e}from"./ChartCard-DvNDqE-i.js";import{t as x}from"./streamingFetch-BztyMxVG.js";import"./chartjs-adapter-date-fns.esm-C1pzr0Ah.js";import{t as S}from"./Sparkline-psH5o28w.js";function ve(e){return e.noise_floor_dbm??e.noise_floor??null}var ye={class:`p-3 sm:p-6 space-y-4 sm:space-y-6`},be={class:`flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3`},xe={class:`flex items-center gap-2 sm:gap-3`},Se=[`value`],Ce={class:`grid grid-cols-1 sm:grid-cols-3 gap-4`},we={class:`glass-card rounded-[15px] p-3 sm:p-6`},Te={class:`flex items-center gap-3 sm:gap-6 mb-3 sm:mb-4`},Ee={class:`flex items-center gap-2`},De={class:`flex items-center gap-2`},Oe={class:`grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6 items-stretch`},ke={class:`glass-card rounded-[15px] p-3 sm:p-6 flex flex-col`},Ae={class:`glass-card rounded-[15px] p-3 sm:p-6 flex flex-col`},je={class:`w-28 sm:w-32 text-sm text-content-primary truncate`},Me={class:`flex-1 h-12 bg-background-mute dark:bg-stroke/opacity-subtle rounded overflow-hidden`},Ne={class:`w-20 text-sm text-content-secondary dark:text-content-muted text-right tabular-nums`},C=20,w=u({name:`StatisticsView`,__name:`Statistics`,setup(u){y.register(ie,he,oe,le,ae,pe,me,fe,ge,_e,re,de,ce,se,ue);let w=ne(),T=e=>e>48?{unit:`day`,displayFormats:{day:`EEE MMM d`}}:e>24?{unit:`hour`,displayFormats:{hour:`EEE HH:mm`}}:{unit:`hour`,displayFormats:{hour:`HH:mm`}},E=s({packetRate:`Connecting...`,noiseFloor:`Connecting...`,routePie:`Connecting...`}),D=(e,t)=>typeof window>`u`?t:window.getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t,O=()=>({gridColor:D(`--color-border-subtle`,`lightgray`),tickColor:D(`--color-text-secondary`,`gray`),legendColor:D(`--color-text-primary`,`white`),titleColor:D(`--color-text-primary`,`white`),tooltipBg:D(`--color-surface-elevated`,`black`),tooltipTitle:D(`--color-heading`,`white`),tooltipBody:D(`--color-text-primary`,`white`),tooltipBorder:D(`--color-border-subtle`,`gray`)}),k={tx:D(`--color-accent-red`,`tomato`),rx:D(`--color-secondary`,`violet`),noiseFloor:D(`--color-primary`,`deepskyblue`),noiseFloorFill:D(`--color-primary`,`deepskyblue`),noiseFloorGrid:D(`--color-border-hover`,`gray`),totalRx:D(`--color-accent-cyan`,`cyan`),totalTx:D(`--color-accent-green`,`limegreen`),crcErrors:D(`--color-accent-red`,`tomato`),packetTypes:[D(`--openhop-blue-light`,`lightskyblue`),D(`--color-accent-green`,`limegreen`),D(`--color-primary-bg`,`khaki`),D(`--openhop-purple-light`,`violet`),D(`--color-accent-red`,`tomato`),D(`--color-accent-cyan`,`cyan`),D(`--color-accent-green-bg`,`lightgreen`),D(`--color-accent-purple`,`orchid`),D(`--color-accent-green`,`limegreen`)],routes:[D(`--color-primary`,`deepskyblue`),D(`--color-accent-green`,`limegreen`),D(`--color-accent-cyan`,`cyan`),D(`--color-secondary`,`violet`),D(`--color-accent-red`,`tomato`)]},A=o(24),Pe=[{value:1,label:`1 Hour`},{value:6,label:`6 Hours`},{value:12,label:`12 Hours`},{value:24,label:`24 Hours`},{value:48,label:`2 Days`},{value:168,label:`1 Week`}],j=o(null),M=o(null),N=o(null),P=o([]),F=o([]),I=o(!0),Fe=o(null),L=o({packetRate:!0,noiseFloor:!1,routePie:!0,sparklineMetrics:!0,sparklineCrc:!0}),R=o(null),z=o(null),B=o(null),V=o(null),H=o(null),U=o(null),W=o(null),G=o(null),K=o({totalRx:0,totalTx:0}),q=(e,t)=>{if(e.length===0)return[];let n=Math.round(t*60*60*1e3/72),r=new Map;return e.forEach(([e,t])=>{let i=e;e>0x38d7ea4c68000?i=e/1e3:e>1e9&&e<0xe8d4a51000&&(i=e*1e3);let a=Math.floor(i/n)*n;r.has(a)||r.set(a,[]),r.get(a).push(t)}),Array.from(r.entries()).sort((e,t)=>e[0]-t[0]).map(([,e])=>e.reduce((e,t)=>e+t,0)/e.length)},J=p(()=>{let e=[],t=[];if(j.value?.series){let n=j.value.series.find(e=>e.type===`rx_count`),r=j.value.series.find(e=>e.type===`tx_count`);n?.data&&(e=q(n.data.map(([e,t])=>[e,t>C?0:t]),A.value)),r?.data&&(t=q(r.data.map(([e,t])=>[e,t>C?0:t]),A.value))}return{totalPackets:e,transmittedPackets:t,droppedPackets:[],crcErrors:q(F.value.map(e=>[e.timestamp>0xe8d4a51000?e.timestamp:e.timestamp*1e3,e.count]),A.value)}}),Y=async()=>{try{I.value=!0,Fe.value=null;let e=await x(`/packet_stats`,{hours:A.value});K.value={totalRx:e.data?.total_packets||0,totalTx:e.data?.transmitted_packets||0},I.value=!1}catch(e){Fe.value=e instanceof Error?e.message:`Failed to fetch data`,I.value=!1}Ie()},Ie=async()=>{L.value={packetRate:!0,noiseFloor:!0,routePie:!0,sparklineMetrics:!0,sparklineCrc:!0},w.metricsGraphData&&(j.value=w.metricsGraphData),w.crcErrorHistory.length>0&&(F.value=[...w.crcErrorHistory]),w.noiseFloorHistory.length>0&&(M.value={chart_data:w.noiseFloorLine truncated
|
||||
import{C as e,D as t,K as n,N as r,P as i,T as a,U as o,V as s,_t as c,gt as l,h as u,l as d,m as f,o as p,r as m,s as h,u as g,x as ee,y as _,z as v}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as te}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as ne}from"./packets-DROiFL8U.js";import{_ as re,a as ie,c as ae,f as oe,g as se,i as ce,l as le,m as ue,n as de,o as y,p as fe,r as pe,s as me,t as b,u as he,v as ge,y as _e}from"./ChartCard-DvNDqE-i.js";import{t as x}from"./streamingFetch-CTsu5vGX.js";import"./chartjs-adapter-date-fns.esm-aaoeOWeX.js";import{t as S}from"./Sparkline-Dxp1Pj23.js";function ve(e){return e.noise_floor_dbm??e.noise_floor??null}var ye={class:`p-3 sm:p-6 space-y-4 sm:space-y-6`},be={class:`flex flex-col sm:flex-row sm:justify-between sm:items-center gap-3`},xe={class:`flex items-center gap-2 sm:gap-3`},Se=[`value`],Ce={class:`grid grid-cols-1 sm:grid-cols-3 gap-4`},we={class:`glass-card rounded-[15px] p-3 sm:p-6`},Te={class:`flex items-center gap-3 sm:gap-6 mb-3 sm:mb-4`},Ee={class:`flex items-center gap-2`},De={class:`flex items-center gap-2`},Oe={class:`grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6 items-stretch`},ke={class:`glass-card rounded-[15px] p-3 sm:p-6 flex flex-col`},Ae={class:`glass-card rounded-[15px] p-3 sm:p-6 flex flex-col`},je={class:`w-28 sm:w-32 text-sm text-content-primary truncate`},Me={class:`flex-1 h-12 bg-background-mute dark:bg-stroke/opacity-subtle rounded overflow-hidden`},Ne={class:`w-20 text-sm text-content-secondary dark:text-content-muted text-right tabular-nums`},C=20,w=u({name:`StatisticsView`,__name:`Statistics`,setup(u){y.register(ie,he,oe,le,ae,pe,me,fe,ge,_e,re,de,ce,se,ue);let w=ne(),T=e=>e>48?{unit:`day`,displayFormats:{day:`EEE MMM d`}}:e>24?{unit:`hour`,displayFormats:{hour:`EEE HH:mm`}}:{unit:`hour`,displayFormats:{hour:`HH:mm`}},E=s({packetRate:`Connecting...`,noiseFloor:`Connecting...`,routePie:`Connecting...`}),D=(e,t)=>typeof window>`u`?t:window.getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t,O=()=>({gridColor:D(`--color-border-subtle`,`lightgray`),tickColor:D(`--color-text-secondary`,`gray`),legendColor:D(`--color-text-primary`,`white`),titleColor:D(`--color-text-primary`,`white`),tooltipBg:D(`--color-surface-elevated`,`black`),tooltipTitle:D(`--color-heading`,`white`),tooltipBody:D(`--color-text-primary`,`white`),tooltipBorder:D(`--color-border-subtle`,`gray`)}),k={tx:D(`--color-accent-red`,`tomato`),rx:D(`--color-secondary`,`violet`),noiseFloor:D(`--color-primary`,`deepskyblue`),noiseFloorFill:D(`--color-primary`,`deepskyblue`),noiseFloorGrid:D(`--color-border-hover`,`gray`),totalRx:D(`--color-accent-cyan`,`cyan`),totalTx:D(`--color-accent-green`,`limegreen`),crcErrors:D(`--color-accent-red`,`tomato`),packetTypes:[D(`--openhop-blue-light`,`lightskyblue`),D(`--color-accent-green`,`limegreen`),D(`--color-primary-bg`,`khaki`),D(`--openhop-purple-light`,`violet`),D(`--color-accent-red`,`tomato`),D(`--color-accent-cyan`,`cyan`),D(`--color-accent-green-bg`,`lightgreen`),D(`--color-accent-purple`,`orchid`),D(`--color-accent-green`,`limegreen`)],routes:[D(`--color-primary`,`deepskyblue`),D(`--color-accent-green`,`limegreen`),D(`--color-accent-cyan`,`cyan`),D(`--color-secondary`,`violet`),D(`--color-accent-red`,`tomato`)]},A=o(24),Pe=[{value:1,label:`1 Hour`},{value:6,label:`6 Hours`},{value:12,label:`12 Hours`},{value:24,label:`24 Hours`},{value:48,label:`2 Days`},{value:168,label:`1 Week`}],j=o(null),M=o(null),N=o(null),P=o([]),F=o([]),I=o(!0),Fe=o(null),L=o({packetRate:!0,noiseFloor:!1,routePie:!0,sparklineMetrics:!0,sparklineCrc:!0}),R=o(null),z=o(null),B=o(null),V=o(null),H=o(null),U=o(null),W=o(null),G=o(null),K=o({totalRx:0,totalTx:0}),q=(e,t)=>{if(e.length===0)return[];let n=Math.round(t*60*60*1e3/72),r=new Map;return e.forEach(([e,t])=>{let i=e;e>0x38d7ea4c68000?i=e/1e3:e>1e9&&e<0xe8d4a51000&&(i=e*1e3);let a=Math.floor(i/n)*n;r.has(a)||r.set(a,[]),r.get(a).push(t)}),Array.from(r.entries()).sort((e,t)=>e[0]-t[0]).map(([,e])=>e.reduce((e,t)=>e+t,0)/e.length)},J=p(()=>{let e=[],t=[];if(j.value?.series){let n=j.value.series.find(e=>e.type===`rx_count`),r=j.value.series.find(e=>e.type===`tx_count`);n?.data&&(e=q(n.data.map(([e,t])=>[e,t>C?0:t]),A.value)),r?.data&&(t=q(r.data.map(([e,t])=>[e,t>C?0:t]),A.value))}return{totalPackets:e,transmittedPackets:t,droppedPackets:[],crcErrors:q(F.value.map(e=>[e.timestamp>0xe8d4a51000?e.timestamp:e.timestamp*1e3,e.count]),A.value)}}),Y=async()=>{try{I.value=!0,Fe.value=null;let e=await x(`/packet_stats`,{hours:A.value});K.value={totalRx:e.data?.total_packets||0,totalTx:e.data?.transmitted_packets||0},I.value=!1}catch(e){Fe.value=e instanceof Error?e.message:`Failed to fetch data`,I.value=!1}Ie()},Ie=async()=>{L.value={packetRate:!0,noiseFloor:!0,routePie:!0,sparklineMetrics:!0,sparklineCrc:!0},w.metricsGraphData&&(j.value=w.metricsGraphData),w.crcErrorHistory.length>0&&(F.value=[...w.crcErrorHistory]),w.noiseFloorHistory.length>0&&(M.value={chart_data:w.noiseFloorLine truncated
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/plotly.min-maY9xaEy.js","assets/chunk-DECur_0Z.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e}from"./chunk-DECur_0Z.js";import{C as t,D as n,K as r,N as i,T as a,U as o,X as s,_t as c,h as ee,ht as l,j as te,l as u,m as d,o as f,r as p,s as m,u as h,x as ne,y as g,z as _}from"./runtime-core.esm-bundler-CINEgm0a.js";import{o as v}from"./api-B-2vYkoY.js";import{t as y}from"./formatters-vw234I-c.js";import{t as re}from"./useTheme-BtGkqRpn.js";import{d as b,t as ie}from"./index-DoCDF--l.js";import{_ as ae,a as oe,c as se,f as ce,g as le,i as ue,l as de,m as fe,n as pe,o as x,r as me,s as he,t as S,u as ge,v as _e,y as ve}from"./ChartCard-DvNDqE-i.js";import{t as C}from"./streamingFetch-BztyMxVG.js";import"./chartjs-adapter-date-fns.esm-C1pzr0Ah.js";import{t as w}from"./Sparkline-psH5o28w.js";var ye={class:`p-6 space-y-6`},be={class:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4`},xe={class:`grid grid-cols-1 lg:grid-cols-2 gap-6`},Se={class:`glass-card rounded-[15px] p-6`},Ce={key:0,class:`grid grid-cols-2 gap-4 text-sm`},we={class:`text-content-primary font-semibold`},Te={class:`text-content-primary font-semibold`},Ee={class:`text-content-primary font-semibold`},T={class:`text-content-primary font-semibold`},E={class:`glass-card rounded-[15px] p-6`},D={key:0,class:`grid grid-cols-2 gap-4 text-sm`},De={class:`text-content-primary font-semibold`},Oe={class:`text-content-primary font-semibold`},ke={class:`text-content-primary font-semibold`},Ae={class:`text-content-primary font-semibold`},je={class:`grid grid-cols-1 lg:grid-cols-2 gap-6`},Me={class:`glass-card rounded-[15px] p-6`},Ne={class:`relative h-48`},Pe={key:0,class:`grid grid-cols-3 gap-4 text-sm mt-4`},Fe={class:`text-center`},Ie={class:`text-content-primary font-semibold`},Le={class:`text-center`},Re={class:`font-semibold text-accent-red`},ze={class:`text-center`},Be={class:`font-semibold text-accent-green`},Ve={class:`glass-card rounded-[15px] p-6`},He={key:0,class:`space-y-4`},Ue={class:`grid grid-cols-2 gap-4 text-sm`},We={class:`text-content-primary font-semibold`},Ge={class:`text-content-primary font-semibold`},Ke={class:`text-content-primary font-semibold`},qe={class:`text-content-primary font-semibold`},O={key:0,class:`pt-4 border-t border-stroke-subtle dark:border-stroke/opacity-light`},Je={class:`grid grid-cols-2 gap-2 text-sm`},Ye={class:`text-content-secondary dark:text-content-muted`},Xe={class:`text-content-primary font-semibold ml-1`},Ze={class:`glass-card rounded-[15px] p-6`},Qe={key:0,class:`overflow-x-auto`},$e={class:`w-full text-sm`},et={class:`text-content-secondary dark:text-content-primary/opacity-heavy py-2 transition-all duration-300`},tt={class:`text-content-primary font-semibold py-2 transition-all duration-300`},nt={class:`text-center text-secondary py-2 transition-all duration-300`},rt={class:`text-center text-accent-green py-2 transition-all duration-300`},it={class:`text-right text-content-secondary dark:text-content-primary/opacity-heavy py-2 transition-all duration-300`},at={key:0,class:`mt-4 text-center text-content-secondary dark:text-content-muted text-sm transition-all duration-300`},ot={key:1,class:`text-center text-content-secondary dark:text-content-muted py-8`},k=b(ee({name:`SystemStatsView`,__name:`SystemStats`,setup(ee){x.register(oe,ge,ce,de,se,me,he,_e,ve,ae,pe,ue,le,fe);let{theme:b}=re(),k=(e,t)=>typeof window>`u`?t:window.getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t,A=()=>({labelColor:k(`--color-text-muted`,`gray`),textColor:k(`--color-text-secondary`,`gainsboro`)}),j={cpu:`var(--color-accent-cyan)`,memory:`var(--color-accent-green)`,disk:`var(--color-accent-red)`,free:`var(--color-accent-green)`,uptime:`var(--color-accent-purple)`},M=o(null),N=o(null),P=o([]),F=o(null),I=o({cpuChart:!0,memoryChart:!0,diskChart:!1,processChart:!0}),L=o(null),R=o(null),z=o(`Connecting...`),B=o(`Connecting...`),V=o(null),H=o(null),U=o(null),W=o(null),G=o(null),K=f(()=>M.value?{cpuUsage:M.value.cpu.usage_percent,memoryUsage:M.value.memory.usage_percent,diskUsage:M.value.disk.usage_percent,uptime:M.value.system.uptime}:{cpuUsage:0,memoryUsage:0,diskUsage:0,uptime:0}),q=f(()=>P.value.length===0?{cpu:[],memory:[],disk:[],network:[]}:{cpu:P.value.map(e=>e.cpu.usage_percent),memory:P.value.map(e=>e.memory.usage_percent),disk:P.value.map(e=>e.disk.usage_percent),network:P.value.map(e=>e.network.bytes_recv/1024/1024)}),J=f(()=>{let e=P.value.length;if(e<2)return``;let t=e*5;return t<120?`last ${t}s`:`last ${Math.round(t/60)}m`}),st=e=>{let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h ${r}m`:n>0?`${n}h ${r}m`:`${r}m`},Y=async()=>{z.value=`Connecting...`,B.value=`Connecting...`;try{let e=await C(`/hardware_stats`,void 0,{onPhaseChange:e=>{let t=e===`receiving`?`Receiving data...`:`Connecting...`;z.value=t,B.value=t}});if(e?.success&&e.data){let t=e.data;M.value=t,P.value.push(t),P.value.length>20&&P.value.shift(),L.value=null,R.value=null,await g(),Z()}else L.value=`No data in server response`,R.value=`No data in server response`Line truncated
|
||||
import{r as e}from"./chunk-DECur_0Z.js";import{C as t,D as n,K as r,N as i,T as a,U as o,X as s,_t as c,h as ee,ht as l,j as te,l as u,m as d,o as f,r as p,s as m,u as h,x as ne,y as g,z as _}from"./runtime-core.esm-bundler-CINEgm0a.js";import{o as v}from"./api-BgU2z9oO.js";import{t as y}from"./formatters-vw234I-c.js";import{t as re}from"./useTheme-BtGkqRpn.js";import{d as b,t as ie}from"./index-DXPlD6DJ.js";import{_ as ae,a as oe,c as se,f as ce,g as le,i as ue,l as de,m as fe,n as pe,o as x,r as me,s as he,t as S,u as ge,v as _e,y as ve}from"./ChartCard-DvNDqE-i.js";import{t as C}from"./streamingFetch-CTsu5vGX.js";import"./chartjs-adapter-date-fns.esm-aaoeOWeX.js";import{t as w}from"./Sparkline-Dxp1Pj23.js";var ye={class:`p-6 space-y-6`},be={class:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4`},xe={class:`grid grid-cols-1 lg:grid-cols-2 gap-6`},Se={class:`glass-card rounded-[15px] p-6`},Ce={key:0,class:`grid grid-cols-2 gap-4 text-sm`},we={class:`text-content-primary font-semibold`},Te={class:`text-content-primary font-semibold`},Ee={class:`text-content-primary font-semibold`},T={class:`text-content-primary font-semibold`},E={class:`glass-card rounded-[15px] p-6`},D={key:0,class:`grid grid-cols-2 gap-4 text-sm`},De={class:`text-content-primary font-semibold`},Oe={class:`text-content-primary font-semibold`},ke={class:`text-content-primary font-semibold`},Ae={class:`text-content-primary font-semibold`},je={class:`grid grid-cols-1 lg:grid-cols-2 gap-6`},Me={class:`glass-card rounded-[15px] p-6`},Ne={class:`relative h-48`},Pe={key:0,class:`grid grid-cols-3 gap-4 text-sm mt-4`},Fe={class:`text-center`},Ie={class:`text-content-primary font-semibold`},Le={class:`text-center`},Re={class:`font-semibold text-accent-red`},ze={class:`text-center`},Be={class:`font-semibold text-accent-green`},Ve={class:`glass-card rounded-[15px] p-6`},He={key:0,class:`space-y-4`},Ue={class:`grid grid-cols-2 gap-4 text-sm`},We={class:`text-content-primary font-semibold`},Ge={class:`text-content-primary font-semibold`},Ke={class:`text-content-primary font-semibold`},qe={class:`text-content-primary font-semibold`},O={key:0,class:`pt-4 border-t border-stroke-subtle dark:border-stroke/opacity-light`},Je={class:`grid grid-cols-2 gap-2 text-sm`},Ye={class:`text-content-secondary dark:text-content-muted`},Xe={class:`text-content-primary font-semibold ml-1`},Ze={class:`glass-card rounded-[15px] p-6`},Qe={key:0,class:`overflow-x-auto`},$e={class:`w-full text-sm`},et={class:`text-content-secondary dark:text-content-primary/opacity-heavy py-2 transition-all duration-300`},tt={class:`text-content-primary font-semibold py-2 transition-all duration-300`},nt={class:`text-center text-secondary py-2 transition-all duration-300`},rt={class:`text-center text-accent-green py-2 transition-all duration-300`},it={class:`text-right text-content-secondary dark:text-content-primary/opacity-heavy py-2 transition-all duration-300`},at={key:0,class:`mt-4 text-center text-content-secondary dark:text-content-muted text-sm transition-all duration-300`},ot={key:1,class:`text-center text-content-secondary dark:text-content-muted py-8`},k=b(ee({name:`SystemStatsView`,__name:`SystemStats`,setup(ee){x.register(oe,ge,ce,de,se,me,he,_e,ve,ae,pe,ue,le,fe);let{theme:b}=re(),k=(e,t)=>typeof window>`u`?t:window.getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t,A=()=>({labelColor:k(`--color-text-muted`,`gray`),textColor:k(`--color-text-secondary`,`gainsboro`)}),j={cpu:`var(--color-accent-cyan)`,memory:`var(--color-accent-green)`,disk:`var(--color-accent-red)`,free:`var(--color-accent-green)`,uptime:`var(--color-accent-purple)`},M=o(null),N=o(null),P=o([]),F=o(null),I=o({cpuChart:!0,memoryChart:!0,diskChart:!1,processChart:!0}),L=o(null),R=o(null),z=o(`Connecting...`),B=o(`Connecting...`),V=o(null),H=o(null),U=o(null),W=o(null),G=o(null),K=f(()=>M.value?{cpuUsage:M.value.cpu.usage_percent,memoryUsage:M.value.memory.usage_percent,diskUsage:M.value.disk.usage_percent,uptime:M.value.system.uptime}:{cpuUsage:0,memoryUsage:0,diskUsage:0,uptime:0}),q=f(()=>P.value.length===0?{cpu:[],memory:[],disk:[],network:[]}:{cpu:P.value.map(e=>e.cpu.usage_percent),memory:P.value.map(e=>e.memory.usage_percent),disk:P.value.map(e=>e.disk.usage_percent),network:P.value.map(e=>e.network.bytes_recv/1024/1024)}),J=f(()=>{let e=P.value.length;if(e<2)return``;let t=e*5;return t<120?`last ${t}s`:`last ${Math.round(t/60)}m`}),st=e=>{let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h ${r}m`:n>0?`${n}h ${r}m`:`${r}m`},Y=async()=>{z.value=`Connecting...`,B.value=`Connecting...`;try{let e=await C(`/hardware_stats`,void 0,{onPhaseChange:e=>{let t=e===`receiving`?`Receiving data...`:`Connecting...`;z.value=t,B.value=t}});if(e?.success&&e.data){let t=e.data;M.value=t,P.value.push(t),P.value.length>20&&P.value.shift(),L.value=null,R.value=null,await g(),Z()}else L.value=`No data in server response`,R.value=`No data in server response`Line truncated
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import{C as e,P as t,T as n,U as r,_t as i,h as a,ht as o,j as s,l as c,s as l,u,w as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{c as f,l as p,o as m}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as h}from"./api-B-2vYkoY.js";import{t as g}from"./system-uA3cZx_m.js";import{t as _}from"./useTheme-BtGkqRpn.js";import{r as v,t as y}from"./constants-Hl8RMxy-.js";import{d as b}from"./index-DoCDF--l.js";var x=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(e,t)=>{for(var n in t)x(e,n,{get:t[n],enumerable:!0})},S=(e,t,n,r)=>{for(var i=r>1?void 0:r?ee(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&x(t,n,i),i},C=(e,t)=>(n,r)=>t(n,r,e),w=`Terminal input`,T={get:()=>w,set:e=>w=e},E=`Too much output to announce, navigate to rows manually to read`,D={get:()=>E,set:e=>E=e};function ne(e){return e.replace(/\r?\n/g,`\r`)}function re(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function O(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function k(e,t,n,r){e.stopPropagation(),e.clipboardData&&A(e.clipboardData.getData(`text/plain`),t,n,r)}function A(e,t,n,r){e=ne(e),e=re(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function j(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function ie(e,t,n,r,i){j(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function ae(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function oe(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var se=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},ce=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},le=``,ue=` `,M=class e{constructor(){this.fg=0,this.bg=0,this.extended=new de}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331Line truncated
|
||||
import{C as e,P as t,T as n,U as r,_t as i,h as a,ht as o,j as s,l as c,s as l,u,w as d}from"./runtime-core.esm-bundler-CINEgm0a.js";import{c as f,l as p,o as m}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{t as h}from"./api-BgU2z9oO.js";import{t as g}from"./system-BVs_Y0rK.js";import{t as _}from"./useTheme-BtGkqRpn.js";import{r as v,t as y}from"./constants-Hl8RMxy-.js";import{d as b}from"./index-DXPlD6DJ.js";var x=Object.defineProperty,ee=Object.getOwnPropertyDescriptor,te=(e,t)=>{for(var n in t)x(e,n,{get:t[n],enumerable:!0})},S=(e,t,n,r)=>{for(var i=r>1?void 0:r?ee(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&x(t,n,i),i},C=(e,t)=>(n,r)=>t(n,r,e),w=`Terminal input`,T={get:()=>w,set:e=>w=e},E=`Too much output to announce, navigate to rows manually to read`,D={get:()=>E,set:e=>E=e};function ne(e){return e.replace(/\r?\n/g,`\r`)}function re(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function O(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function k(e,t,n,r){e.stopPropagation(),e.clipboardData&&A(e.clipboardData.getData(`text/plain`),t,n,r)}function A(e,t,n,r){e=ne(e),e=re(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function j(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function ie(e,t,n,r,i){j(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function ae(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function oe(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var se=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},ce=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}else this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},le=``,ue=` `,M=class e{constructor(){this.fg=0,this.bg=0,this.extended=new de}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331Line truncated
|
||||
|
||||
WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var Ae=ge(`CharSizeService`),je=ge(`CoreBrowserService`),Me=ge(`MouseService`),Ne=ge(`RenderService`),Pe=ge(`SelectionService`),Fe=ge(`CharacterJoinerService`),Ie=ge(`ThemeService`),Le=ge(`LinkProviderService`),Re=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?We.isErrorNoTelemetry(e)?new We(e.message+`
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{N as e,T as t,U as n,X as r,_t as i,c as a,h as o,i as s,l as c,m as l,o as u,s as d,u as f}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as p,t as m}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{v as h}from"./api-B-2vYkoY.js";import{t as g}from"./createLucideIcon-C08u_PTE.js";var _=g(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),v=h(`setup`,()=>{let e=n(1),t=n(6),r=n(`pyRpt${Math.floor(Math.random()*1e4).toString().padStart(4,`0`)}`),i=n(null),a=n(null),o=n(null),s=n(``),c=n(``),l=n(`/dev/ttyACM0`),d=n(``),f=n(5055),p=n(``),m=n(!1),h=n({frequency:`915.0`,spreading_factor:`7`,bandwidth:`125`,coding_rate:`5`,tx_power:`14`}),g=n([]),_=n([]),v=n(!1),y=n(!1),b=n(null),x=u(()=>{switch(e.value){case 1:return!0;case 2:return r.value.trim().length>0;case 3:return a.value!==null;case 4:{if(!i.value)return!1;let e=i.value.key.toLowerCase();return e===`kiss`||e===`pymc_usb`?l.value.trim().length>0:e===`pymc_tcp`?d.value.trim().length>0:!0}case 5:return m.value?h.value.frequency&&h.value.spreading_factor&&h.value.bandwidth&&h.value.coding_rate&&h.value.tx_power:o.value!==null;case 6:return s.value.length>=6&&s.value===c.value;default:return!1}}),S=u(()=>e.value>1),C=u(()=>e.value===t.value);async function w(){v.value=!0,b.value=null;try{let e=await(await fetch(`/api/hardware_options`)).json();if(e.error)throw Error(e.error);g.value=e.hardware||[]}catch(e){b.value=e instanceof Error?e.message:`Failed to load hardware options`,console.error(`Error fetching hardware options:`,e)}finally{v.value=!1}}let T=e=>({title:String(e.title??``),description:String(e.description??``),frequency:String(e.frequency??``),spreading_factor:String(e.spreading_factor??``),bandwidth:String(e.bandwidth??``),coding_rate:String(e.coding_rate??``),tx_power:String(e.tx_power??`14`)});async function E(){v.value=!0,b.value=null;try{try{let e=new AbortController,t=setTimeout(()=>e.abort(),4e3);try{let t=await fetch(`https://api.meshcore.nz/api/v1/config`,{signal:e.signal});if(t.ok){let e=(await t.json())?.config?.suggested_radio_settings?.entries??[];if(e.length>0){_.value=e.map(e=>T(e));return}}}finally{clearTimeout(t)}}catch{}let e=await(await fetch(`/api/radio_presets`)).json();if(e.error)throw Error(e.error);_.value=(e.presets??[]).map(e=>T(e))}catch(e){b.value=e instanceof Error?e.message:`Failed to load radio presets`,console.error(`Error fetching radio presets:`,e)}finally{v.value=!1}}async function D(){if(!x.value)return{success:!1,error:`Please complete all required fields`};y.value=!0,b.value=null;try{let e=m.value?{title:`Custom Configuration`,description:`Custom radio settings`,frequency:h.value.frequency,spreading_factor:h.value.spreading_factor,bandwidth:h.value.bandwidth,coding_rate:h.value.coding_rate,tx_power:h.value.tx_power}:{...o.value},t=i.value?.config?.tx_power;t!=null&&t!==``&&(e.tx_power=String(t));let n=Number(e.tx_power??14);if(!Number.isFinite(n)||n<-9||n>22)throw Error(`TX power must be between -9 and +22 dBm`);let a=await(await fetch(`/api/setup_wizard`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({node_name:r.value.trim(),hardware_key:i.value?.key,radio_preset:e,admin_password:s.value,...i.value&&(()=>{let e=i.value.key.toLowerCase();return e===`kiss`?{kiss_port:l.value.trim()||`/dev/ttyUSB0`,kiss_baud_rate:115200}:e===`pymc_usb`?{pymc_usb_port:l.value.trim()||`/dev/ttyACM0`,pymc_usb_baudrate:921600}:e===`pymc_tcp`?{pymc_tcp_host:d.value.trim(),pymc_tcp_port:f.value,pymc_tcp_token:p.value.trim()}:{}})()})})).json();if(!a.success)throw Error(a.error||`Setup failed`);return{success:!0,data:a}}catch(e){let t=e instanceof Error?e.message:`Failed to complete setup`;return b.value=t,{success:!1,error:t}}finally{y.value=!1}}function O(){x.value&&e.value<t.value&&e.value++}function k(){S.value&&e.value--}function A(n){n>=1&&n<=t.value&&(e.value=n)}function j(){e.value=1,r.value=`pyRpt${Math.floor(Math.random()*1e4).toString().padStart(4,`0`)}`,i.value=null,a.value=null,o.value=null,m.value=!1,h.value={frequency:`915.0`,spreading_factor:`7`,bandwidth:`125`,coding_rate:`5`,tx_power:`14`},s.value=``,c.value=``,l.value=`/dev/ttyACM0`,d.value=``,f.value=5055,p.value=``,b.value=null}return{currentStep:e,totalSteps:t,nodeName:r,selectedHardware:i,selectedHardwareConnection:a,selectedRadioPreset:o,useCustomRadio:m,usbPort:l,tcpHost:d,tcpPort:f,tcpToken:p,customRadio:h,adminPassword:s,confirmPassword:c,hardwareOptions:g,radioPresets:_,isLoading:v,isSubmitting:y,error:b,canGoNext:x,canGoBack:S,isLastStep:C,fetchHardwareOptions:w,fetchRadioPresets:E,completeSetup:D,nextStep:O,previousStep:k,goToStep:A,reset:j}}),y={class:`w-full max-w-2xl rounded-3xl border border-accent-amber/opacity-medium bg-white dark:bg-surface-elevated shadow-[0_20px_80px_color-mix(in_srgb,var(--color-shadow-strong)_35%,transparent)] overflow-hidden`},b={class:`p-5
Line truncated
|
||||
import{N as e,T as t,U as n,X as r,_t as i,c as a,h as o,i as s,l as c,m as l,o as u,s as d,u as f}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as p,t as m}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{v as h}from"./api-BgU2z9oO.js";import{t as g}from"./createLucideIcon-C08u_PTE.js";var _=g(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),v=h(`setup`,()=>{let e=n(1),t=n(6),r=n(`pyRpt${Math.floor(Math.random()*1e4).toString().padStart(4,`0`)}`),i=n(null),a=n(null),o=n(null),s=n(``),c=n(``),l=n(`/dev/ttyACM0`),d=n(``),f=n(5055),p=n(``),m=n(!1),h=n({frequency:`915.0`,spreading_factor:`7`,bandwidth:`125`,coding_rate:`5`,tx_power:`14`}),g=n([]),_=n([]),v=n(!1),y=n(!1),b=n(null),x=u(()=>{switch(e.value){case 1:return!0;case 2:return r.value.trim().length>0;case 3:return a.value!==null;case 4:{if(!i.value)return!1;let e=i.value.key.toLowerCase();return e===`kiss`||e===`pymc_usb`?l.value.trim().length>0:e===`pymc_tcp`?d.value.trim().length>0:!0}case 5:return m.value?h.value.frequency&&h.value.spreading_factor&&h.value.bandwidth&&h.value.coding_rate&&h.value.tx_power:o.value!==null;case 6:return s.value.length>=6&&s.value===c.value;default:return!1}}),S=u(()=>e.value>1),C=u(()=>e.value===t.value);async function w(){v.value=!0,b.value=null;try{let e=await(await fetch(`/api/hardware_options`)).json();if(e.error)throw Error(e.error);g.value=e.hardware||[]}catch(e){b.value=e instanceof Error?e.message:`Failed to load hardware options`,console.error(`Error fetching hardware options:`,e)}finally{v.value=!1}}let T=e=>({title:String(e.title??``),description:String(e.description??``),frequency:String(e.frequency??``),spreading_factor:String(e.spreading_factor??``),bandwidth:String(e.bandwidth??``),coding_rate:String(e.coding_rate??``),tx_power:String(e.tx_power??`14`)});async function E(){v.value=!0,b.value=null;try{try{let e=new AbortController,t=setTimeout(()=>e.abort(),4e3);try{let t=await fetch(`https://api.meshcore.nz/api/v1/config`,{signal:e.signal});if(t.ok){let e=(await t.json())?.config?.suggested_radio_settings?.entries??[];if(e.length>0){_.value=e.map(e=>T(e));return}}}finally{clearTimeout(t)}}catch{}let e=await(await fetch(`/api/radio_presets`)).json();if(e.error)throw Error(e.error);_.value=(e.presets??[]).map(e=>T(e))}catch(e){b.value=e instanceof Error?e.message:`Failed to load radio presets`,console.error(`Error fetching radio presets:`,e)}finally{v.value=!1}}async function D(){if(!x.value)return{success:!1,error:`Please complete all required fields`};y.value=!0,b.value=null;try{let e=m.value?{title:`Custom Configuration`,description:`Custom radio settings`,frequency:h.value.frequency,spreading_factor:h.value.spreading_factor,bandwidth:h.value.bandwidth,coding_rate:h.value.coding_rate,tx_power:h.value.tx_power}:{...o.value},t=i.value?.config?.tx_power;t!=null&&t!==``&&(e.tx_power=String(t));let n=Number(e.tx_power??14);if(!Number.isFinite(n)||n<-9||n>22)throw Error(`TX power must be between -9 and +22 dBm`);let a=await(await fetch(`/api/setup_wizard`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({node_name:r.value.trim(),hardware_key:i.value?.key,radio_preset:e,admin_password:s.value,...i.value&&(()=>{let e=i.value.key.toLowerCase();return e===`kiss`?{kiss_port:l.value.trim()||`/dev/ttyUSB0`,kiss_baud_rate:115200}:e===`pymc_usb`?{pymc_usb_port:l.value.trim()||`/dev/ttyACM0`,pymc_usb_baudrate:921600}:e===`pymc_tcp`?{pymc_tcp_host:d.value.trim(),pymc_tcp_port:f.value,pymc_tcp_token:p.value.trim()}:{}})()})})).json();if(!a.success)throw Error(a.error||`Setup failed`);return{success:!0,data:a}}catch(e){let t=e instanceof Error?e.message:`Failed to complete setup`;return b.value=t,{success:!1,error:t}}finally{y.value=!1}}function O(){x.value&&e.value<t.value&&e.value++}function k(){S.value&&e.value--}function A(n){n>=1&&n<=t.value&&(e.value=n)}function j(){e.value=1,r.value=`pyRpt${Math.floor(Math.random()*1e4).toString().padStart(4,`0`)}`,i.value=null,a.value=null,o.value=null,m.value=!1,h.value={frequency:`915.0`,spreading_factor:`7`,bandwidth:`125`,coding_rate:`5`,tx_power:`14`},s.value=``,c.value=``,l.value=`/dev/ttyACM0`,d.value=``,f.value=5055,p.value=``,b.value=null}return{currentStep:e,totalSteps:t,nodeName:r,selectedHardware:i,selectedHardwareConnection:a,selectedRadioPreset:o,useCustomRadio:m,usbPort:l,tcpHost:d,tcpPort:f,tcpToken:p,customRadio:h,adminPassword:s,confirmPassword:c,hardwareOptions:g,radioPresets:_,isLoading:v,isSubmitting:y,error:b,canGoNext:x,canGoBack:S,isLastStep:C,fetchHardwareOptions:w,fetchRadioPresets:E,completeSetup:D,nextStep:O,previousStep:k,goToStep:A,reset:j}}),y={class:`w-full max-w-2xl rounded-3xl border border-accent-amber/opacity-medium bg-white dark:bg-surface-elevated shadow-[0_20px_80px_color-mix(in_srgb,var(--color-shadow-strong)_35%,transparent)] overflow-hidden`},b={class:`p-5
Line truncated
|
||||
@@ -1,7 +1,7 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Setup-BBWiHytP.js","assets/index-DoCDF--l.js","assets/createLucideIcon-C08u_PTE.js","assets/runtime-core.esm-bundler-CINEgm0a.js","assets/runtime-dom.esm-bundler-B3VeUO8l.js","assets/Spinner-D-jFxDsV.js","assets/useTheme-BtGkqRpn.js","assets/dataService-CPAucQH-.js","assets/packets-B5s0Tvcs.js","assets/system-uA3cZx_m.js","assets/formatters-vw234I-c.js","assets/websocket-Br2zM8_8.js","assets/constants-Hl8RMxy-.js","assets/index-BQFqSOPg.css","assets/TxPowerNoticeModal-FiFCOWr9.js","assets/Setup-CEeKireJ.css","assets/Login-BUh2hNS0.js","assets/Login-DL53-MUV.css","assets/Dashboard-CIplS2yj.js","assets/ChartCard-DvNDqE-i.js","assets/PacketDetailsModal-DSCriOjT.js","assets/SignalBars-Boub7Vuj.js","assets/PacketDetailsModal-DyxYLoUF.css","assets/streamingFetch-BztyMxVG.js","assets/Dashboard-BnpjArfv.css","assets/Neighbors-Xpidt66x.js","assets/chunk-DECur_0Z.js","assets/leaflet-src-Ds2Z6AGo.js","assets/CopyLabel-CpHEW2NL.js","assets/Neighbors-DHjt47um.css","assets/leaflet-vh-t_kPv.css","assets/Statistics-7WYMxfVg.js","assets/chartjs-adapter-date-fns.esm-C1pzr0Ah.js","assets/Sparkline-psH5o28w.js","assets/Sparkline-C0HuREuA.css","assets/RfHealthCorrelation-DG2L-A0s.js","assets/RfHealthCorrelation-OJP3k9nw.css","assets/NeighbourLinks-BPnOiANG.js","assets/GPSDiagnostics-CuCK5pTF.js","assets/GPSDiagnostics-CHd4G-Fs.css","assets/SystemStats-DuGgldTq.js","assets/SystemStats-CBr2j_Xi.css","assets/Sensors-BuDcuqiZ.js","assets/Configuration-CdMpjP1E.js","assets/ConfirmDialog-CKP12S0V.js","assets/LocationPicker-CvfMnVsT.js","assets/LocationPicker-DNqNv46A.css","assets/Configuration-Vq8vekY3.css","assets/CADCalibration-Cm60eCO7.js","assets/CADCalibration-DJLKVgpM.css","assets/Sessions-DdmOG2x2.js","assets/RoomServers-DAHAQeMg.js","assets/MessageDialog-DgBtqb-B.js","assets/Companions-CmTKlraJ.js","assets/Logs-Bkt-L6Ah.js","assets/Terminal-DryiH29A.js","assets/Terminal-DX3-65Pp.css","assets/Help-B2C8hXBH.js","assets/websocket-CbQ0uokX.js","assets/packets-B2VT-RJP.js","assets/system-DDlSvEvZ.js","assets/dataService-3IAv1uZy.js"])))=>i.map(i=>d[i]);
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Setup-D1Q55odY.js","assets/index-DXPlD6DJ.js","assets/createLucideIcon-C08u_PTE.js","assets/runtime-core.esm-bundler-CINEgm0a.js","assets/runtime-dom.esm-bundler-B3VeUO8l.js","assets/Spinner-D-jFxDsV.js","assets/useTheme-BtGkqRpn.js","assets/dataService-4qyr7nMC.js","assets/packets-DROiFL8U.js","assets/system-BVs_Y0rK.js","assets/formatters-vw234I-c.js","assets/websocket-BAIFVlsY.js","assets/constants-Hl8RMxy-.js","assets/index-D1q3rCNj.css","assets/TxPowerNoticeModal-C1zbTXJk.js","assets/Setup-CEeKireJ.css","assets/Login-CtDh-NNJ.js","assets/Login-DL53-MUV.css","assets/Dashboard-DfOU4yar.js","assets/ChartCard-DvNDqE-i.js","assets/PacketTable-D6tdB8OQ.js","assets/PacketDetailsModal-eskwnUUt.js","assets/SignalBars-BHfvDDnj.js","assets/PacketDetailsModal-DyxYLoUF.css","assets/PacketTable--oE6ZZZD.css","assets/streamingFetch-CTsu5vGX.js","assets/Dashboard-Bkt1lYRl.css","assets/Neighbors-C2WUidCl.js","assets/chunk-DECur_0Z.js","assets/leaflet-src-Ds2Z6AGo.js","assets/CopyLabel-CpHEW2NL.js","assets/Neighbors-DHjt47um.css","assets/leaflet-vh-t_kPv.css","assets/Statistics-f62o5G-z.js","assets/chartjs-adapter-date-fns.esm-aaoeOWeX.js","assets/Sparkline-Dxp1Pj23.js","assets/Sparkline-C0HuREuA.css","assets/RfHealthCorrelation-C3mvqZlT.js","assets/RfHealthCorrelation-OJP3k9nw.css","assets/NeighbourLinks-N_8qSS6h.js","assets/GPSDiagnostics-Bug84GiU.js","assets/GPSDiagnostics-CHd4G-Fs.css","assets/SystemStats-CSOn6O7I.js","assets/SystemStats-CBr2j_Xi.css","assets/Sensors-BJOjML9B.js","assets/Configuration-BVsFlioS.js","assets/ConfirmDialog-CKP12S0V.js","assets/LocationPicker-BY42-b1V.js","assets/LocationPicker-DNqNv46A.css","assets/Configuration-Vq8vekY3.css","assets/CADCalibration-DMpuUpx4.js","assets/CADCalibration-DJLKVgpM.css","assets/Sessions-BIg1w0p2.js","assets/RoomServers-DHIXBFYk.js","assets/MessageDialog-DgBtqb-B.js","assets/Companions-74VBXlSc.js","assets/PacketArchive-BBEeea3v.js","assets/Logs-BmZr9FQ_.js","assets/Terminal-C0qX7ScO.js","assets/Terminal-DX3-65Pp.css","assets/Help-DJpIyqH9.js","assets/websocket-DJdV_L4n.js","assets/packets-DGHw5b7g.js","assets/system-D2nsPUpA.js","assets/dataService-Baro_YxV.js"])))=>i.map(i=>d[i]);
|
||||
import{n as e}from"./chunk-DECur_0Z.js";import{B as t,E as n,F as r,G as i,I as a,J as o,K as s,L as c,R as l,S as u,U as d,V as f,W as p,X as m,_ as h,b as g,g as _,h as v,j as ee,o as y,q as b,v as x,w as S,y as C,z as te}from"./runtime-core.esm-bundler-CINEgm0a.js";var ne=typeof window<`u`,w,re=e=>w=e,T=Symbol();function ie(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var ae;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(ae||={});var oe=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function se(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function ce(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){fe(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function le(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function ue(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var E=typeof navigator==`object`?navigator:{userAgent:``},de=/Macintosh/.test(E.userAgent)&&/AppleWebKit/.test(E.userAgent)&&!/Safari/.test(E.userAgent),fe=ne?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!de?pe:`msSaveOrOpenBlob`in E?me:he:()=>{};function pe(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?ue(r):le(r.href)?ce(e,t,n):(r.target=`_blank`,ue(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){ue(r)},0))}function me(e,t=`download`,n){if(typeof e==`string`)if(le(e))ce(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){ue(t)})}else navigator.msSaveOrOpenBlob(se(e,n),t)}function he(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return ce(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(oe.HTMLElement))||`safari`in oe,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||de)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:ge}=Object;function _e(){let e=r(!0),t=e.run(()=>d({})),n=[],i=[],a=te({install(e){re(a),a._a=e,e.provide(T,a),e.config.globalProperties.$pinia=a,i.forEach(e=>n.push(e)),i=[]},use(e){return this._a?n.push(e):i.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return a}var D=()=>{};function O(e,n,r,i=D){e.add(n);let o=()=>{e.delete(n)&&i()};return!r&&a()&&t(o),o}function ve(e,...t){e.forEach(e=>{e(...t)})}var ye=e=>e(),be=Symbol(),xe=Symbol();function Se(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];ie(i)&&ie(r)&&e.hasOwnProperty(n)&&!l(r)&&!c(r)?e[n]=Se(i,r):e[n]=r}return e}var Ce=Symbol();function we(e){return!ie(e)||!Object.prototype.hasOwnProperty.call(e,Ce)}var{assign:k}=Object;function Te(e){return!!(l(e)&&e.effect)}function Ee(e,t,n,r){let{state:i,actions:a,getters:s}=t,c=n.state.value[e],l;function u(){return c||(n.state.value[e]=i?i():{}),k(o(n.state.value[e]),a,Object.keys(s||{}).reduce((t,r)=>(t[r]=te(y(()=>{re(n);let t=n._s.get(e);return s[r].call(t,t)})),t),{}))}return l=De(e,u,t,n,r,!0),l}function De(e,t,n={},i,a,o){let u,p=k({actions:{}},n),m={deep:!0},h,g,_=new Set,v=new Set,y=i.state.value[e];!o&&!y&&(i.state.value[e]={}),d({});let b;function x(t){let n;h=g=!1,typeof t==`function`?(t(i.state.value[e]),n={type:ae.patchFunction,storeId:e,events:void 0}):(Se(i.state.value[e],t),n={type:ae.patchObject,payload:t,storeId:e,events:void 0});let r=b=Symbol();C().then(()=>{b===r&&(h=!0)}),g=!0,ve(_,n,i.state.value[e])}let S=o?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{k(e,t)})}:D;function te(){u.stop(),_.clear(),v.clear(),i._s.delete(e)}let ne=(t,n=``)=>{if(be in t)return t[xe]=n,t;let r=function(){re(i);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}ve(v,{args:n,name:r[xe],store:w,after:sLine truncated
|
||||
`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&di[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t},pi=Symbol(`internals`);function mi(e){return e&&String(e).trim().toLowerCase()}function hi(e){return e===!1||e==null?e:H.isArray(e)?e.map(hi):String(e).replace(/[\r\n]+$/,``)}function gi(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var _i=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function vi(e,t,n,r,i){if(H.isFunction(r))return r.call(this,t,n);if(i&&(t=n),H.isString(t)){if(H.isString(r))return t.indexOf(r)!==-1;if(H.isRegExp(r))return r.test(t)}}function yi(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function bi(e,t){let n=H.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var G=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=mi(t);if(!i)throw Error(`header name must be a non-empty string`);let a=H.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=hi(e))}let a=(e,t)=>H.forEach(e,(e,n)=>i(e,n,t));if(H.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(H.isString(e)&&(e=e.trim())&&!_i(e))a(fi(e),t);else if(H.isObject(e)&&H.isIterable(e)){let n={},r,i;for(let t of e){if(!H.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);n[i=t[0]]=(r=n[i])?H.isArray(r)?[...r,t[1]]:[r,t[1]]:t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=mi(e),e){let n=H.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return gi(e);if(H.isFunction(t))return t.call(this,e,n);if(H.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=mi(e),e){let n=H.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||vi(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=mi(e),e){let i=H.findKey(n,e);i&&(!t||vi(n,n[i],i,t))&&(delete n[i],r=!0)}}return H.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||vi(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return H.forEach(this,(r,i)=>{let a=H.findKey(n,i);if(a){t[a]=hi(r),delete t[i];return}let o=e?yi(i):String(i).trim();o!==i&&delete t[i],t[o]=hi(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return H.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&H.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(`
|
||||
`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[pi]=this[pi]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=mi(e);t[r]||(bi(n,e),t[r]=!0)}return H.isArray(e)?e.forEach(r):r(e),this}};G.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),H.reduceDescriptors(G.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),H.freezeMethods(G);function xi(e,t){let n=this||ui,r=t||n,i=G.from(r.headers),a=r.data;return H.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Si(e){return!!(e&&e.__CANCEL__)}var Ci=class extends U{constructor(e,t,n){super(e??`canceled`,U.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function wi(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new U(`Request failed with status code `+n.status,[U.ERR_BAD_REQUEST,U.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ti(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||``}function Ei(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o<t)return;let f=l&&c-l;return f?Math.round(d*1e3/f):void 0}}function Di(e,t){let n=0,r=1e3/t,i,a,o=(t,r=Date.now())=>{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var Oi=(e,t,n=3)=>{let r=0,i=Ei(50,250);return Di(n=>{let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=a-r,c=i(s),l=a<=o;r=a,e({loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:c||void 0,estimated:c&&o&&l?(o-a)/c:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},ki=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Ai=e=>(...t)=>H.asap(()=>e(...t)),ji=W.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,W.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(W.origin),W.navigator&&/(msie|trident)/i.test(W.navigator.userAgent)):()=>!0,Mi=W.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];H.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),H.isString(r)&&s.push(`path=${r}`),H.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),H.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.match(RegExp(`(?:^|; )`+e+`=([^;]*)`));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,``,Date.now()-864e5,`/`)}}:{write(){},read(){return null},remove(){}};function Ni(e){return typeof e==`string`?/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e):!1}function Pi(e,t){return t?e.replace(/\/?\/$/,``)+`/`+t.replace(/^\/+/,``):e}function Fi(e,t,n){let r=!Ni(t);return e&&(r||n==0)?Pi(e,t):t}var Ii=e=>e instanceof G?{...e}:e;function K(e,t){t||={};let n={};function r(e,t,n,r){return H.isPlainObject(e)&&H.isPlainObject(t)?H.merge.call({caseless:r},e,t):H.isPlainObject(t)?H.merge({},t):H.isArray(t)?t.slice():t}function i(e,t,n,i){if(!H.isUndefined(t))return r(e,t,n,i);if(!H.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!H.isUndefined(t))return r(void 0,t)}function o(e,t){if(!H.isUndefined(t))return r(void 0,t);if(!H.isUndefined(e))return r(void 0,e)}function s(n,i,a){if(a in t)return r(n,i);if(a in e)return r(void 0,n)}let c={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t,n)=>i(Ii(e),Ii(t),n,!0)};return H.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=H.hasOwnProp(c,r)?c[r]:i,o=a(e[r],t[r],r);H.isUndefined(o)&&a!==s||(n[r]=o)}),n}var Li=e=>{let t=K({},e),{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:a,headers:o,auth:s}=t;if(t.headers=o=G.from(o),t.url=Yr(Fi(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),s&&o.set(`Authorization`,`Basic `+btoa((s.username||``)+`:`+(s.password?unescape(encodeURIComponent(s.password)):``))),H.isFormData(n)){if(W.hasStandardBrowserEnv||W.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(H.isFunction(n.getHeaders)){let e=n.getHeaders(),t=[`content-type`,`content-length`];Object.entries(e).forEach(([e,n])=>{t.includes(e.toLowerCase())&&o.s
Line truncated
|
||||
`+e.map(ea).join(`
|
||||
`):` `+ea(e[0]):`as no adapter specified`),`ERR_NOT_SUPPORT`)}return i}var ra={getAdapter:na,adapters:$i};function ia(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ci(null,e)}function aa(e){return ia(e),e.headers=G.from(e.headers),e.data=xi.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),ra.getAdapter(e.adapter||ui.adapter,e)(e).then(function(t){return ia(e),t.data=xi.call(e,e.transformResponse,t),t.headers=G.from(t.headers),t},function(t){return Si(t)||(ia(e),t&&t.response&&(t.response.data=xi.call(e,e.transformResponse,t.response),t.response.headers=G.from(t.response.headers))),Promise.reject(t)})}var oa=`1.14.0`,sa={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{sa[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var ca={};sa.transitional=function(e,t,n){function r(e,t){return`[Axios v`+oa+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new U(r(i,` has been removed`+(t?` in `+t:``)),U.ERR_DEPRECATED);return t&&!ca[i]&&(ca[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),e?e(n,i,a):!0}},sa.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function la(e,t,n){if(typeof e!=`object`)throw new U(`options must be an object`,U.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-- >0;){let a=r[i],o=t[a];if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new U(`option `+a+` must be `+n,U.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new U(`Unknown option `+a,U.ERR_BAD_OPTION)}}var ua={assertOptions:la,validators:sa},q=ua.validators,da=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Xr,response:new Xr}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=t.stack?t.stack.replace(/^.+\n/,``):``;try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,``))&&(e.stack+=`
|
||||
`+n):e.stack=n}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=K(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&ua.assertOptions(n,{silentJSONParsing:q.transitional(q.boolean),forcedJSONParsing:q.transitional(q.boolean),clarifyTimeoutError:q.transitional(q.boolean),legacyInterceptorReqResOrdering:q.transitional(q.boolean)},!1),r!=null&&(H.isFunction(r)?t.paramsSerializer={serialize:r}:ua.assertOptions(r,{encode:q.function,serialize:q.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),ua.assertOptions(t,{baseUrl:q.spelling(`baseURL`),withXsrfToken:q.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&H.merge(i.common,i[t.method]);i&&H.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`common`],e=>{delete i[e]}),t.headers=G.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Zr;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[aa.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(;u<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=aa.call(this,f)}catch(e){return Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=K(this.defaults,e),Yr(Fi(e.baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}};H.forEach([`delete`,`get`,`head`,`options`],function(e){da.prototype[e]=function(t,n){return this.request(K(n||{},{method:e,url:t,data:(n||{}).data}))}}),H.forEach([`post`,`put`,`patch`],function(e){function t(t){return function(n,r,i){return this.request(K(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}da.prototype[e]=t(),da.prototype[e+`Form`]=t(!0)});var fa=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new Ci(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function pa(e){return function(t){return e.apply(null,t)}}function ma(e){return H.isObject(e)&&e.isAxiosError===!0}var ha={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ha).forEach(([e,t])=>{ha[t]=e});function ga(e){let t=new da(e),n=jn(da.prototype.request,t);return H.extend(n,da.prototype,t,{allOwnKeys:!0}),H.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return ga(K(e,t))},n}var J=ga(ui);J.Axios=da,J.CanceledError=Ci,J.CancelToken=fa,J.isCancel=Si,J.VERSION=oa,J.toFormData=Wr,J.AxiosError=U,J.Cancel=J.CanceledError,J.all=function(e){re
Line truncated
|
||||
`+n):e.stack=n}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=K(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&ua.assertOptions(n,{silentJSONParsing:q.transitional(q.boolean),forcedJSONParsing:q.transitional(q.boolean),clarifyTimeoutError:q.transitional(q.boolean),legacyInterceptorReqResOrdering:q.transitional(q.boolean)},!1),r!=null&&(H.isFunction(r)?t.paramsSerializer={serialize:r}:ua.assertOptions(r,{encode:q.function,serialize:q.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),ua.assertOptions(t,{baseUrl:q.spelling(`baseURL`),withXsrfToken:q.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&H.merge(i.common,i[t.method]);i&&H.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`common`],e=>{delete i[e]}),t.headers=G.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Zr;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[aa.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(;u<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=aa.call(this,f)}catch(e){return Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=K(this.defaults,e),Yr(Fi(e.baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}};H.forEach([`delete`,`get`,`head`,`options`],function(e){da.prototype[e]=function(t,n){return this.request(K(n||{},{method:e,url:t,data:(n||{}).data}))}}),H.forEach([`post`,`put`,`patch`],function(e){function t(t){return function(n,r,i){return this.request(K(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}da.prototype[e]=t(),da.prototype[e+`Form`]=t(!0)});var fa=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new Ci(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function pa(e){return function(t){return e.apply(null,t)}}function ma(e){return H.isObject(e)&&e.isAxiosError===!0}var ha={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ha).forEach(([e,t])=>{ha[t]=e});function ga(e){let t=new da(e),n=jn(da.prototype.request,t);return H.extend(n,da.prototype,t,{allOwnKeys:!0}),H.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return ga(K(e,t))},n}var J=ga(ui);J.Axios=da,J.CanceledError=Ci,J.CancelToken=fa,J.isCancel=Si,J.VERSION=oa,J.toFormData=Wr,J.AxiosError=U,J.Cancel=J.CanceledError,J.all=function(e){re
Line truncated
|
||||
File renamed without changes.
@@ -1 +0,0 @@
|
||||
import{t as e}from"./dataService-CPAucQH-.js";export{e as useDataService};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{U as e,V as t,o as n}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as r,v as i}from"./api-B-2vYkoY.js";import{t as a}from"./packets-B5s0Tvcs.js";import{t as o}from"./system-uA3cZx_m.js";import{c as s}from"./formatters-vw234I-c.js";var c={timeout:`no reply`,send_failed:`could not send`};function l(e){return(e||``).split(`,`).map(e=>e.trim()).map(e=>e.startsWith(`#`)?e.slice(1).trim():e).filter(e=>e.length>0)}function u(e){return e?` (${s(new Date(e*1e3))})`:``}function d(e){if(!e)return{state:`unknown`,names:[],stale:!1,label:`—`,summary:`Not queried`,title:`Scopes not queried yet`};let t=l(e.scopes),n=t.every(e=>e===`*`)?[]:t,r=e.status===`responded`||e.responded_at!=null,i=r&&e.status!==`responded`;if(!r){let t=c[e.status]||e.status;return{state:`failed`,names:[],stale:!1,label:`⚠`,summary:`Query ${t}`,title:`Scope query ${t}${u(e.queried_at)}`}}let a=i?`; last query ${c[e.status]||e.status}${u(e.queried_at)}`:``,o=`Answered${u(e.responded_at??e.queried_at)}`;return n.length===0?{state:`unscoped`,names:n,stale:i,label:`*`,summary:`Unscoped only`,title:`Unscoped traffic only. ${o}${a}`}:{state:`scoped`,names:n,stale:i,label:String(n.length),summary:n.join(`, `),title:`${n.join(`, `)}. ${o}${a}`}}var f={0:`Unknown`,1:`Chat Node`,2:`Repeater`,3:`Room Server`,4:`Hybrid Node`},p=i(`neighbors`,()=>{let t=e({}),i=e({}),a=e([]),o=e(!1),s=e(null),c=e(48),u=n(()=>Object.values(t.value).flat()),d=n(()=>u.value.length);function p(e=10*6e4){return s.value===null?!0:Date.now()-s.value>e}async function m(e=c.value){o.value=!0,c.value=e;let n=Object.entries(f),i=await Promise.allSettled(n.map(async([t,n])=>{try{let i=[],a=0,o=0;for(;o<200;){let t=await r.get(`/adverts_by_contact_type?contact_type=${encodeURIComponent(n)}&hours=${e}&limit=500&offset=${a}`),s=t.success&&Array.isArray(t.data)?t.data:[];if(s.length===0||(i.push(...s),s.length<500))break;a+=500,o+=1}return{typeKey:t,adverts:i}}catch{return{typeKey:t,adverts:[]}}})),a={};for(let e of i)e.status===`fulfilled`&&e.value.adverts.length>0&&(a[e.value.typeKey]=e.value.adverts);t.value=a,s.value=Date.now(),o.value=!1,await h()}async function h(){try{let e=await r.getNeighborScopes(),t=e.success===!0;return i.value=t&&e.data?e.data:{},a.value=t?l(e.served?.scopes):[],t}catch{return i.value={},a.value=[],!1}}let g=n(()=>{let e=new Map;for(let[t,n]of Object.entries(i.value))for(let r of l(n.scopes)){if(r===`*`)continue;let n=r.toLowerCase(),i=e.get(n);i?i.neighbors.includes(t)||i.neighbors.push(t):e.set(n,{name:r,neighbors:[t]})}return[...e.values()].sort((e,t)=>e.name.localeCompare(t.name))});function _(e){let t=e.trim().toLowerCase();return a.value.some(e=>e.toLowerCase()===t)}function v(e,t){i.value={...i.value,[e.toLowerCase()]:t}}function y(){t.value={},i.value={},a.value=[],o.value=!1,s.value=null,c.value=48}return{advertsByType:t,scopesByPubkey:i,servedScopes:a,discoveredScopes:g,isLoading:o,lastFetched:s,currentHours:c,allAdverts:u,totalCount:d,isStale:p,fetchAll:m,fetchScopes:h,servesScope:_,setScope:v,reset:y}}),m={stats:3e4,packetStats:6e4,noiseFloor:15e3,recentPackets:3e4,sparklines:3e5,advertTier:6e4,neighbors:10*6e4,radioConfig:2**53-1},h=i(`dataService`,()=>{let n=o(),i=a(),s=p(),c=e({currentTier:`unknown`,advertsAllowed:0,advertsDropped:0,activePenalties:0}),l=e(!1),u=e(null),d=t({stats:`pending`,packetStats:`pending`,noiseFloor:`pending`,recentPackets:`pending`,sparklines:`pending`,advertTier:`pending`,neighbors:`pending`,radioConfig:`pending`}),f=new Map,h=new Map,g=[],_=!1,v=null;async function y(e,t=2){for(let n=0;n<t;n++)try{return await e()}catch(e){if(n===t-1)throw e;await new Promise(e=>setTimeout(e,500*2**n))}throw Error(`unreachable`)}async function b(){try{let e=(await r.get(`/advert_rate_limit_stats`))?.data;c.value={currentTier:typeof e?.adaptive?.current_tier==`string`?e.adaptive.current_tier:`unknown`,advertsAllowed:e?.stats?.adverts_allowed||0,advertsDropped:e?.stats?.adverts_dropped||0,activePenalties:Object.keys(e?.active_penalties||{}).length},f.set(`advertTier`,Date.now())}catch{}}async function x(e){if(e===`neighbors`){if(!s.isStale())return}else{let t=f.get(e);if(t!==void 0&&Date.now()-t<m[e])return}let t=h.get(e);if(t)return t;let r;switch(e){case`stats`:r=n.fetchStats().then(()=>{f.set(`stats`,Date.now()),f.set(`radioConfig`,Date.now())});break;case`radioConfig`:r=x(`stats`).then(()=>{f.set(`radioConfig`,Date.now())});break;case`packetStats`:r=i.fetchPacketStats({hours:24}).then(()=>{f.set(`packetStats`,Date.now())});break;case`noiseFloor`:r=i.fetchNoiseFloorHistory({hours:1,limit:500}).then(()=>{f.set(`noiseFloor`,Date.now())});break;case`recentPackets`:r=i.fetchRecentPackets({limit:100}).then(()=>{f.set(`recentPackets`,Date.now())});break;case`sparklines`:r=i.initializeSparklineHistory().then(()=>{f.set(`sparklines`,Date.now())});break;case`advertTier`:r=b();break;case`neighbors`:r=s.fetchAll(s.currentHours).then(()=>{});break}return h.set(e,r),r.finally(()=>h.delete(e)),r}async function S(e,t){d[e]=`loading`;Line truncated
|
||||
import{U as e,V as t,o as n}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as r,v as i}from"./api-BgU2z9oO.js";import{t as a}from"./packets-DROiFL8U.js";import{t as o}from"./system-BVs_Y0rK.js";import{c as s}from"./formatters-vw234I-c.js";var c={timeout:`no reply`,send_failed:`could not send`};function l(e){return(e||``).split(`,`).map(e=>e.trim()).map(e=>e.startsWith(`#`)?e.slice(1).trim():e).filter(e=>e.length>0)}function u(e){return e?` (${s(new Date(e*1e3))})`:``}function d(e){if(!e)return{state:`unknown`,names:[],stale:!1,label:`—`,summary:`Not queried`,title:`Scopes not queried yet`};let t=l(e.scopes),n=t.every(e=>e===`*`)?[]:t,r=e.status===`responded`||e.responded_at!=null,i=r&&e.status!==`responded`;if(!r){let t=c[e.status]||e.status;return{state:`failed`,names:[],stale:!1,label:`⚠`,summary:`Query ${t}`,title:`Scope query ${t}${u(e.queried_at)}`}}let a=i?`; last query ${c[e.status]||e.status}${u(e.queried_at)}`:``,o=`Answered${u(e.responded_at??e.queried_at)}`;return n.length===0?{state:`unscoped`,names:n,stale:i,label:`*`,summary:`Unscoped only`,title:`Unscoped traffic only. ${o}${a}`}:{state:`scoped`,names:n,stale:i,label:String(n.length),summary:n.join(`, `),title:`${n.join(`, `)}. ${o}${a}`}}var f={0:`Unknown`,1:`Chat Node`,2:`Repeater`,3:`Room Server`,4:`Hybrid Node`},p=i(`neighbors`,()=>{let t=e({}),i=e({}),a=e([]),o=e(!1),s=e(null),c=e(48),u=n(()=>Object.values(t.value).flat()),d=n(()=>u.value.length);function p(e=10*6e4){return s.value===null?!0:Date.now()-s.value>e}async function m(e=c.value){o.value=!0,c.value=e;let n=Object.entries(f),i=await Promise.allSettled(n.map(async([t,n])=>{try{let i=[],a=0,o=0;for(;o<200;){let t=await r.get(`/adverts_by_contact_type?contact_type=${encodeURIComponent(n)}&hours=${e}&limit=500&offset=${a}`),s=t.success&&Array.isArray(t.data)?t.data:[];if(s.length===0||(i.push(...s),s.length<500))break;a+=500,o+=1}return{typeKey:t,adverts:i}}catch{return{typeKey:t,adverts:[]}}})),a={};for(let e of i)e.status===`fulfilled`&&e.value.adverts.length>0&&(a[e.value.typeKey]=e.value.adverts);t.value=a,s.value=Date.now(),o.value=!1,await h()}async function h(){try{let e=await r.getNeighborScopes(),t=e.success===!0;return i.value=t&&e.data?e.data:{},a.value=t?l(e.served?.scopes):[],t}catch{return i.value={},a.value=[],!1}}let g=n(()=>{let e=new Map;for(let[t,n]of Object.entries(i.value))for(let r of l(n.scopes)){if(r===`*`)continue;let n=r.toLowerCase(),i=e.get(n);i?i.neighbors.includes(t)||i.neighbors.push(t):e.set(n,{name:r,neighbors:[t]})}return[...e.values()].sort((e,t)=>e.name.localeCompare(t.name))});function _(e){let t=e.trim().toLowerCase();return a.value.some(e=>e.toLowerCase()===t)}function v(e,t){i.value={...i.value,[e.toLowerCase()]:t}}function y(){t.value={},i.value={},a.value=[],o.value=!1,s.value=null,c.value=48}return{advertsByType:t,scopesByPubkey:i,servedScopes:a,discoveredScopes:g,isLoading:o,lastFetched:s,currentHours:c,allAdverts:u,totalCount:d,isStale:p,fetchAll:m,fetchScopes:h,servesScope:_,setScope:v,reset:y}}),m={stats:3e4,packetStats:6e4,noiseFloor:15e3,recentPackets:3e4,sparklines:3e5,advertTier:6e4,neighbors:10*6e4,radioConfig:2**53-1},h=i(`dataService`,()=>{let n=o(),i=a(),s=p(),c=e({currentTier:`unknown`,advertsAllowed:0,advertsDropped:0,activePenalties:0}),l=e(!1),u=e(null),d=t({stats:`pending`,packetStats:`pending`,noiseFloor:`pending`,recentPackets:`pending`,sparklines:`pending`,advertTier:`pending`,neighbors:`pending`,radioConfig:`pending`}),f=new Map,h=new Map,g=[],_=!1,v=null;async function y(e,t=2){for(let n=0;n<t;n++)try{return await e()}catch(e){if(n===t-1)throw e;await new Promise(e=>setTimeout(e,500*2**n))}throw Error(`unreachable`)}async function b(){try{let e=(await r.get(`/advert_rate_limit_stats`))?.data;c.value={currentTier:typeof e?.adaptive?.current_tier==`string`?e.adaptive.current_tier:`unknown`,advertsAllowed:e?.stats?.adverts_allowed||0,advertsDropped:e?.stats?.adverts_dropped||0,activePenalties:Object.keys(e?.active_penalties||{}).length},f.set(`advertTier`,Date.now())}catch{}}async function x(e){if(e===`neighbors`){if(!s.isStale())return}else{let t=f.get(e);if(t!==void 0&&Date.now()-t<m[e])return}let t=h.get(e);if(t)return t;let r;switch(e){case`stats`:r=n.fetchStats().then(()=>{f.set(`stats`,Date.now()),f.set(`radioConfig`,Date.now())});break;case`radioConfig`:r=x(`stats`).then(()=>{f.set(`radioConfig`,Date.now())});break;case`packetStats`:r=i.fetchPacketStats({hours:24}).then(()=>{f.set(`packetStats`,Date.now())});break;case`noiseFloor`:r=i.fetchNoiseFloorHistory({hours:1,limit:500}).then(()=>{f.set(`noiseFloor`,Date.now())});break;case`recentPackets`:r=i.fetchRecentPackets({limit:100}).then(()=>{f.set(`recentPackets`,Date.now())});break;case`sparklines`:r=i.initializeSparklineHistory().then(()=>{f.set(`sparklines`,Date.now())});break;case`advertTier`:r=b();break;case`neighbors`:r=s.fetchAll(s.currentHours).then(()=>{});break}return h.set(e,r),r.finally(()=>h.delete(e)),r}async function S(e,t){d[e]=`loading`;Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{t as e}from"./dataService-4qyr7nMC.js";export{e as useDataService};
|
||||
@@ -1 +0,0 @@
|
||||
@import "https://fonts.googleapis.com/css2?family=Michroma:wght@400;700&family=Inter:wght@300;400;500;600;700;800&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-800:oklch(47.3% .137 46.201);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
@import "https://fonts.googleapis.com/css2?family=Michroma:wght@400;700&family=Inter:wght@300;400;500;600;700;800&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-800:oklch(47.3% .137 46.201);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{A as e,C as t,D as n,E as r,H as i,N as a,P as o,T as s,U as c,X as l,Y as u,_t as d,c as f,f as p,gt as m,h,ht as g,i as _,j as v,k as y,l as b,m as x,o as S,p as C,r as w,s as T,u as E,v as D,w as O,x as k,y as A}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as j,l as M,n as N,o as P,t as F}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{_ as I,a as L,g as ee,h as R,i as z,l as B,r as V,s as H,t as U,u as te,y as W}from"./api-BgU2z9oO.js";import{t as ne}from"./packets-DROiFL8U.js";import{t as re}from"./system-BVs_Y0rK.js";import{n as G,r as K,t as q}from"./dataService-4qyr7nMC.js";import{t as J}from"./createLucideIcon-C08u_PTE.js";import{t as ie}from"./useTheme-BtGkqRpn.js";import{t as Y}from"./Spinner-D-jFxDsV.js";import{n as ae,r as oe,t as se}from"./constants-Hl8RMxy-.js";import{t as ce}from"./websocket-BAIFVlsY.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var le=`/assets/meshcore-DQNtEl5I.svg`,ue=Symbol(`navActionHandlers`),X=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Z={},de={width:`23`,height:`25`,viewBox:`0 0 23 25`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`};function fe(e,t){return s(),E(`svg`,de,[...t[0]||=[T(`path`,{d:`M2.84279 2.25795C2.90709 1.12053 3.17879 0.625914 3.95795 0.228723C4.79631 -0.198778 6.11858 0.000168182 7.67449 0.788054C8.34465 1.12757 8.41289 1.13448 9.58736 0.983905C11.1485 0.783681 13.1582 0.784388 14.5991 0.985738C15.6887 1.13801 15.7603 1.1304 16.4321 0.790174C18.6406 -0.328212 20.3842 -0.255036 21.0156 0.982491C21.3308 1.6002 21.3893 3.20304 21.1449 4.52503C21.0094 5.25793 21.0238 5.34943 21.3502 5.83037C23.6466 9.21443 21.9919 14.6998 18.0569 16.7469C17.7558 16.9036 17.502 17.0005 17.2952 17.0795C16.6602 17.3219 16.4674 17.3956 16.7008 18.5117C16.8132 19.0486 16.9486 20.3833 17.0018 21.478C17.098 23.4567 17.0966 23.4705 16.7495 23.8742C16.2772 24.4233 15.5963 24.4326 15.135 23.8962C14.8341 23.5464 14.8047 23.3812 14.8047 22.0315C14.8047 20.037 14.5861 18.7113 14.0695 17.5753C13.4553 16.2235 13.9106 15.7194 15.3154 15.4173C17.268 14.9973 18.793 13.7923 19.643 11.9978C20.4511 10.2921 20.5729 7.93485 19.1119 6.50124C18.6964 6.00746 18.6674 5.56022 18.9641 4.21159C19.075 3.70754 19.168 3.05725 19.1707 2.76637C19.1749 2.30701 19.1331 2.23764 18.8509 2.23764C18.6724 2.23764 17.9902 2.49736 17.3352 2.81474L16.2897 3.32145C16.1947 3.36751 16.0883 3.38522 15.9834 3.37318C13.3251 3.06805 10.7991 3.06334 8.12774 3.37438C8.02244 3.38663 7.91563 3.36892 7.82025 3.32263L6.77535 2.81559C6.12027 2.49764 5.43813 2.23764 5.25963 2.23764C4.84693 2.23764 4.84072 2.54233 5.2169 4.35258C5.44669 5.45816 5.60133 5.70451 4.93703 6.58851C3.94131 7.91359 3.69258 9.55902 4.22654 11.2878C4.89952 13.4664 6.54749 14.9382 8.86436 15.4292C10.261 15.7253 10.6261 16.1115 10.0928 17.713C9.67293 18.9734 9.40748 19.2982 8.79738 19.2982C7.97649 19.2982 7.46228 18.5871 7.74527 17.843C7.86991 17.5151 7.83283 17.4801 7.06383 17.1996C4.71637 16.3437 2.9209 14.4254 2.10002 11.8959C1.46553 9.94098 1.74471 7.39642 2.76257 5.85843C3.10914 5.33477 3.1145 5.29036 2.95277 4.28787C2.86126 3.72037 2.81177 2.80699 2.84279 2.25795Z`,fill:`currentColor`},null,-1),T(`path`,{d:`M2.02306 16.5589C1.68479 16.0516 0.999227 15.9144 0.491814 16.2527C-0.0155884 16.591 -0.152708 17.2765 0.185564 17.7839C0.435301 18.1586 0.734065 18.4663 0.987777 18.72C1.03455 18.7668 1.08 18.8119 1.12438 18.856C1.3369 19.0671 1.52455 19.2535 1.71302 19.4748C2.12986 19.964 2.54572 20.623 2.78206 21.8047C2.88733 22.3311 3.26569 22.6147 3.47533 22.7386C3.70269 22.8728 3.9511 22.952 4.15552 23.0036C4.57369 23.109 5.08133 23.1638 5.56309 23.1957C6.09196 23.2308 6.665 23.2422 7.17743 23.2453C7.1778 23.8547 7.67202 24.3487 8.28162 24.3487C8.89146 24.3487 9.38582 23.8543 9.38582 23.2445V22.1403C9.38582 21.5305 8.89146 21.0361 8.28162 21.0361C8.17753 21.0361 8.06491 21.0364 7.94562 21.0369C7.29761 21.0389 6.45295 21.0414 5.70905 20.9922C5.35033 20.9684 5.05544 20.9347 4.8392 20.8936C4.50619 19.5863 3.96821 18.7165 3.39415 18.0426C3.14038 17.7448 2.87761 17.4842 2.66387 17.2722C2.62385 17.2326 2.58556 17.1946 2.54935 17.1584C2.30273 16.9118 2.1414 16.7365 2.02306 16.5589Z`,fill:`currentColor`},null,-1)]])}var pe=X(Z,[[`render`,fe]]),me={},he={viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`};function ge(e,t){return s(),E(`svg`,he,[...t[0]||=[T(`pat
Line truncated
|
||||
@@ -1 +0,0 @@
|
||||
import{A as e,C as t,D as n,E as r,H as i,N as a,P as o,T as s,U as c,X as l,Y as u,_t as d,c as f,f as p,gt as m,h,ht as g,i as _,j as v,k as y,l as b,m as x,o as S,p as C,r as w,s as T,u as E,v as D,w as O,x as k,y as A}from"./runtime-core.esm-bundler-CINEgm0a.js";import{a as j,l as M,n as N,o as P,t as F}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{_ as I,a as L,g as ee,h as R,i as z,l as B,r as V,s as H,t as U,u as te,y as W}from"./api-B-2vYkoY.js";import{t as ne}from"./packets-B5s0Tvcs.js";import{t as re}from"./system-uA3cZx_m.js";import{n as G,r as K,t as q}from"./dataService-CPAucQH-.js";import{t as J}from"./createLucideIcon-C08u_PTE.js";import{t as ie}from"./useTheme-BtGkqRpn.js";import{t as Y}from"./Spinner-D-jFxDsV.js";import{n as ae,r as oe,t as se}from"./constants-Hl8RMxy-.js";import{t as ce}from"./websocket-Br2zM8_8.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var le=`/assets/meshcore-DQNtEl5I.svg`,ue=Symbol(`navActionHandlers`),X=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},de={},fe={width:`23`,height:`25`,viewBox:`0 0 23 25`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`};function pe(e,t){return s(),E(`svg`,fe,[...t[0]||=[T(`path`,{d:`M2.84279 2.25795C2.90709 1.12053 3.17879 0.625914 3.95795 0.228723C4.79631 -0.198778 6.11858 0.000168182 7.67449 0.788054C8.34465 1.12757 8.41289 1.13448 9.58736 0.983905C11.1485 0.783681 13.1582 0.784388 14.5991 0.985738C15.6887 1.13801 15.7603 1.1304 16.4321 0.790174C18.6406 -0.328212 20.3842 -0.255036 21.0156 0.982491C21.3308 1.6002 21.3893 3.20304 21.1449 4.52503C21.0094 5.25793 21.0238 5.34943 21.3502 5.83037C23.6466 9.21443 21.9919 14.6998 18.0569 16.7469C17.7558 16.9036 17.502 17.0005 17.2952 17.0795C16.6602 17.3219 16.4674 17.3956 16.7008 18.5117C16.8132 19.0486 16.9486 20.3833 17.0018 21.478C17.098 23.4567 17.0966 23.4705 16.7495 23.8742C16.2772 24.4233 15.5963 24.4326 15.135 23.8962C14.8341 23.5464 14.8047 23.3812 14.8047 22.0315C14.8047 20.037 14.5861 18.7113 14.0695 17.5753C13.4553 16.2235 13.9106 15.7194 15.3154 15.4173C17.268 14.9973 18.793 13.7923 19.643 11.9978C20.4511 10.2921 20.5729 7.93485 19.1119 6.50124C18.6964 6.00746 18.6674 5.56022 18.9641 4.21159C19.075 3.70754 19.168 3.05725 19.1707 2.76637C19.1749 2.30701 19.1331 2.23764 18.8509 2.23764C18.6724 2.23764 17.9902 2.49736 17.3352 2.81474L16.2897 3.32145C16.1947 3.36751 16.0883 3.38522 15.9834 3.37318C13.3251 3.06805 10.7991 3.06334 8.12774 3.37438C8.02244 3.38663 7.91563 3.36892 7.82025 3.32263L6.77535 2.81559C6.12027 2.49764 5.43813 2.23764 5.25963 2.23764C4.84693 2.23764 4.84072 2.54233 5.2169 4.35258C5.44669 5.45816 5.60133 5.70451 4.93703 6.58851C3.94131 7.91359 3.69258 9.55902 4.22654 11.2878C4.89952 13.4664 6.54749 14.9382 8.86436 15.4292C10.261 15.7253 10.6261 16.1115 10.0928 17.713C9.67293 18.9734 9.40748 19.2982 8.79738 19.2982C7.97649 19.2982 7.46228 18.5871 7.74527 17.843C7.86991 17.5151 7.83283 17.4801 7.06383 17.1996C4.71637 16.3437 2.9209 14.4254 2.10002 11.8959C1.46553 9.94098 1.74471 7.39642 2.76257 5.85843C3.10914 5.33477 3.1145 5.29036 2.95277 4.28787C2.86126 3.72037 2.81177 2.80699 2.84279 2.25795Z`,fill:`currentColor`},null,-1),T(`path`,{d:`M2.02306 16.5589C1.68479 16.0516 0.999227 15.9144 0.491814 16.2527C-0.0155884 16.591 -0.152708 17.2765 0.185564 17.7839C0.435301 18.1586 0.734065 18.4663 0.987777 18.72C1.03455 18.7668 1.08 18.8119 1.12438 18.856C1.3369 19.0671 1.52455 19.2535 1.71302 19.4748C2.12986 19.964 2.54572 20.623 2.78206 21.8047C2.88733 22.3311 3.26569 22.6147 3.47533 22.7386C3.70269 22.8728 3.9511 22.952 4.15552 23.0036C4.57369 23.109 5.08133 23.1638 5.56309 23.1957C6.09196 23.2308 6.665 23.2422 7.17743 23.2453C7.1778 23.8547 7.67202 24.3487 8.28162 24.3487C8.89146 24.3487 9.38582 23.8543 9.38582 23.2445V22.1403C9.38582 21.5305 8.89146 21.0361 8.28162 21.0361C8.17753 21.0361 8.06491 21.0364 7.94562 21.0369C7.29761 21.0389 6.45295 21.0414 5.70905 20.9922C5.35033 20.9684 5.05544 20.9347 4.8392 20.8936C4.50619 19.5863 3.96821 18.7165 3.39415 18.0426C3.14038 17.7448 2.87761 17.4842 2.66387 17.2722C2.62385 17.2326 2.58556 17.1946 2.54935 17.1584C2.30273 16.9118 2.1414 16.7365 2.02306 16.5589Z`,fill:`currentColor`},null,-1)]])}var me=X(de,[[`render`,pe]]),he={},ge={viewBox:`0 0 24 24`,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`};function _e(e,t){return s(),E(`svg`,ge,[...t[0]||=[T(`p
Line truncated
|
||||
@@ -1 +0,0 @@
|
||||
import{t as e}from"./packets-B5s0Tvcs.js";export{e as usePacketStore};
|
||||
@@ -0,0 +1 @@
|
||||
import{t as e}from"./packets-DROiFL8U.js";export{e as usePacketStore};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{U as e,o as t}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as n,v as r}from"./api-B-2vYkoY.js";var i=r(`packets`,()=>{let r=e(null),i=e(null),a=e([]),o=e([]),s=e(null),c=e(null),l=e(0),u=e(!1),d=e(null),f=e(null),p=e([]),m=e([]),h=e(null),g=e(0),_=e([]),v=e({rx:0,tx:0,drop:0}),y=e({rx:0,tx:0,drop:0}),b=t(()=>r.value!==null),x=t(()=>i.value!==null),S=t(()=>a.value.length>0),C=t(()=>o.value.length>0),w=t(()=>l.value>=5?null:c.value),T=t(()=>r.value?.total_packets??0),E=t(()=>r.value?.avg_rssi??0),D=t(()=>r.value?.avg_snr??0),O=t(()=>i.value?.uptime_seconds??0),k=t(()=>{if(!r.value?.packet_types)return[];let e=r.value.packet_types,t=e.reduce((e,t)=>e+t.count,0);return e.map(e=>({type:e.type.toString(),count:e.count,percentage:t>0?e.count/t*100:0}))}),A=t(()=>{let e={};return a.value.forEach(t=>{e[t.type]||(e[t.type]=[]),e[t.type].push(t)}),e});async function j(){try{let e=await n.get(`/stats`);if(e.success&&e.data){i.value=e.data;let t=new Date;return m.value.push({timestamp:t,stats:e.data}),m.value.length>50&&(m.value=m.value.slice(-50)),e.data}else if(e&&`version`in e){let t=e;i.value=t;let n=new Date;return m.value.push({timestamp:n,stats:t}),m.value.length>50&&(m.value=m.value.slice(-50)),t}else throw Error(e.error||`Failed to fetch system stats`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching system stats:`,e),e}}async function M(e={hours:24}){try{let t=await n.get(`/noise_floor_history`,e);if(t.success&&t.data&&t.data.history){o.value=t.data.history,f.value=new Date;let e=t.data.history.filter(e=>e.noise_floor_dbm!==0);return e.length>0?(l.value=0,c.value=e[e.length-1].noise_floor_dbm):l.value++,t.data.history}else throw Error(t.error||`Failed to fetch noise floor history`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching noise floor history:`,e),e}}async function N(e={hours:24}){try{let t=await n.get(`/noise_floor_stats`,e);if(t.success&&t.data&&t.data.stats)return s.value=t.data.stats,f.value=new Date,t.data.stats;throw Error(t.error||`Failed to fetch noise floor stats`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching noise floor stats:`,e),e}}function P(e){if(!e)return;let t=Math.floor(Date.now()/1e3),n=o.value[o.value.length-1];n&&Math.abs(n.timestamp-t)<2&&n.noise_floor_dbm===e||(o.value=[...o.value,{timestamp:t,noise_floor_dbm:e}])}async function F(e={hours:24}){try{u.value=!0,d.value=null;let t=await n.get(`/packet_stats`,e);if(t.success&&t.data){r.value=t.data;let e=new Date;p.value.push({timestamp:e,stats:t.data}),p.value.length>50&&(p.value=p.value.slice(-50)),f.value=e}else throw Error(t.error||`Failed to fetch packet stats`)}catch(e){d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching packet stats:`,e)}finally{u.value=!1}}async function I(e={limit:100}){try{u.value=!0,d.value=null;let t=await n.get(`/recent_packets`,e);if(t.success&&t.data)a.value=t.data,f.value=new Date;else throw Error(t.error||`Failed to fetch recent packets`)}catch(e){d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching recent packets:`,e)}finally{u.value=!1}}async function L(e){try{u.value=!0,d.value=null;let t=await n.get(`/filtered_packets`,e);if(t.success&&t.data)return a.value=t.data,f.value=new Date,t.data;throw Error(t.error||`Failed to fetch filtered packets`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching filtered packets:`,e),e}finally{u.value=!1}}async function R(e){try{u.value=!0,d.value=null;let t=await n.get(`/packet_by_hash`,{packet_hash:e});if(t.success&&t.data)return t.data;throw Error(t.error||`Packet not found`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching packet by hash:`,e),e}finally{u.value=!1}}async function z(e){try{u.value=!0,d.value=null;let t=await n.get(`/packet_by_id`,{packet_id:e});if(t.success&&t.data)return t.data;throw Error(t.error||`Packet not found`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching packet by id:`,e),e}finally{u.value=!1}}let B=t(()=>{if(!h.value?.series)return{totalPackets:[],transmittedPackets:[],droppedPackets:[],policyEvents:[],crcErrors:_.value.map(e=>e.count),currentRates:v.value};let e=h.value.series.find(e=>e.type===`rx_count`),t=h.value.series.find(e=>e.type===`tx_count`),n=h.value.series.find(e=>e.type===`policy_events`),r=e?.data||[],i=t?.data||[],a=r.map((e,t)=>{let n=i[t];return n?Math.max(0,e[1]-n[1]):e[1]});return{totalPackets:r.map(e=>e[1]),transmittedPackets:i.map(e=>e[1]),droppedPackets:a,policyEvents:(n?.data||[]).map(e=>e[1]),crcErrors:_.value.map(e=>e.count),currentRates:v.value}}),V=t(()=>{let e=p.value,t=m.value;return{totalPackets:e.map(e=>e.stats.total_packets),transmittedPackets:e.map(e=>e.stats.transLine truncated
|
||||
import{U as e,o as t}from"./runtime-core.esm-bundler-CINEgm0a.js";import{t as n,v as r}from"./api-BgU2z9oO.js";var i=r(`packets`,()=>{let r=e(null),i=e(null),a=e([]),o=e([]),s=e(null),c=e(null),l=e(0),u=e(!1),d=e(null),f=e(null),p=e([]),m=e([]),h=e(null),g=e(0),_=e([]),v=e({rx:0,tx:0,drop:0}),y=e({rx:0,tx:0,drop:0}),b=t(()=>r.value!==null),x=t(()=>i.value!==null),S=t(()=>a.value.length>0),C=t(()=>o.value.length>0),w=t(()=>l.value>=5?null:c.value),T=t(()=>r.value?.total_packets??0),E=t(()=>r.value?.avg_rssi??0),D=t(()=>r.value?.avg_snr??0),O=t(()=>i.value?.uptime_seconds??0),k=t(()=>{if(!r.value?.packet_types)return[];let e=r.value.packet_types,t=e.reduce((e,t)=>e+t.count,0);return e.map(e=>({type:e.type.toString(),count:e.count,percentage:t>0?e.count/t*100:0}))}),A=t(()=>{let e={};return a.value.forEach(t=>{e[t.type]||(e[t.type]=[]),e[t.type].push(t)}),e});async function j(){try{let e=await n.get(`/stats`);if(e.success&&e.data){i.value=e.data;let t=new Date;return m.value.push({timestamp:t,stats:e.data}),m.value.length>50&&(m.value=m.value.slice(-50)),e.data}else if(e&&`version`in e){let t=e;i.value=t;let n=new Date;return m.value.push({timestamp:n,stats:t}),m.value.length>50&&(m.value=m.value.slice(-50)),t}else throw Error(e.error||`Failed to fetch system stats`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching system stats:`,e),e}}async function M(e={hours:24}){try{let t=await n.get(`/noise_floor_history`,e);if(t.success&&t.data&&t.data.history){o.value=t.data.history,f.value=new Date;let e=t.data.history.filter(e=>e.noise_floor_dbm!==0);return e.length>0?(l.value=0,c.value=e[e.length-1].noise_floor_dbm):l.value++,t.data.history}else throw Error(t.error||`Failed to fetch noise floor history`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching noise floor history:`,e),e}}async function N(e={hours:24}){try{let t=await n.get(`/noise_floor_stats`,e);if(t.success&&t.data&&t.data.stats)return s.value=t.data.stats,f.value=new Date,t.data.stats;throw Error(t.error||`Failed to fetch noise floor stats`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching noise floor stats:`,e),e}}function P(e){if(!e)return;let t=Math.floor(Date.now()/1e3),n=o.value[o.value.length-1];n&&Math.abs(n.timestamp-t)<2&&n.noise_floor_dbm===e||(o.value=[...o.value,{timestamp:t,noise_floor_dbm:e}])}async function F(e={hours:24}){try{u.value=!0,d.value=null;let t=await n.get(`/packet_stats`,e);if(t.success&&t.data){r.value=t.data;let e=new Date;p.value.push({timestamp:e,stats:t.data}),p.value.length>50&&(p.value=p.value.slice(-50)),f.value=e}else throw Error(t.error||`Failed to fetch packet stats`)}catch(e){d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching packet stats:`,e)}finally{u.value=!1}}async function I(e={limit:100}){try{u.value=!0,d.value=null;let t=await n.get(`/recent_packets`,e);if(t.success&&t.data)a.value=t.data,f.value=new Date;else throw Error(t.error||`Failed to fetch recent packets`)}catch(e){d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching recent packets:`,e)}finally{u.value=!1}}async function L(e){try{u.value=!0,d.value=null;let t=await n.get(`/filtered_packets`,e);if(t.success&&t.data)return a.value=t.data,f.value=new Date,t.data;throw Error(t.error||`Failed to fetch filtered packets`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching filtered packets:`,e),e}finally{u.value=!1}}async function R(e){try{u.value=!0,d.value=null;let t=await n.get(`/packet_by_hash`,{packet_hash:e});if(t.success&&t.data)return t.data;throw Error(t.error||`Packet not found`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching packet by hash:`,e),e}finally{u.value=!1}}async function z(e){try{u.value=!0,d.value=null;let t=await n.get(`/packet_by_id`,{packet_id:e});if(t.success&&t.data)return t.data;throw Error(t.error||`Packet not found`)}catch(e){throw d.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching packet by id:`,e),e}finally{u.value=!1}}let B=t(()=>{if(!h.value?.series)return{totalPackets:[],transmittedPackets:[],droppedPackets:[],policyEvents:[],crcErrors:_.value.map(e=>e.count),currentRates:v.value};let e=h.value.series.find(e=>e.type===`rx_count`),t=h.value.series.find(e=>e.type===`tx_count`),n=h.value.series.find(e=>e.type===`policy_events`),r=e?.data||[],i=t?.data||[],a=r.map((e,t)=>{let n=i[t];return n?Math.max(0,e[1]-n[1]):e[1]});return{totalPackets:r.map(e=>e[1]),transmittedPackets:i.map(e=>e[1]),droppedPackets:a,policyEvents:(n?.data||[]).map(e=>e[1]),crcErrors:_.value.map(e=>e.count),currentRates:v.value}}),V=t(()=>{let e=p.value,t=m.value;return{totalPackets:e.map(e=>e.stats.total_packets),transmittedPackets:e.map(e=>e.stats.transLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{t as e}from"./api-B-2vYkoY.js";async function t(t,n,r={}){let{connectTimeoutMs:i=15e3,idleTimeoutMs:a=5e3,onPhaseChange:o}=r,s=new AbortController,c=!1,l=null,u=setTimeout(()=>{c||s.abort(Error(`Connection timeout`))},i),d=()=>{l&&clearTimeout(l),l=setTimeout(()=>{s.abort(Error(`Stream stalled`))},a)};o?.(`connecting`);try{return await e.get(t,n,{signal:s.signal,timeout:0,onDownloadProgress:e=>{!c&&(e.loaded??0)>0?(c=!0,clearTimeout(u),o?.(`receiving`),d()):c&&d()}})}finally{clearTimeout(u),l&&clearTimeout(l)}}export{t};
|
||||
import{t as e}from"./api-BgU2z9oO.js";async function t(t,n,r={}){let{connectTimeoutMs:i=15e3,idleTimeoutMs:a=5e3,onPhaseChange:o}=r,s=new AbortController,c=!1,l=null,u=setTimeout(()=>{c||s.abort(Error(`Connection timeout`))},i),d=()=>{l&&clearTimeout(l),l=setTimeout(()=>{s.abort(Error(`Stream stalled`))},a)};o?.(`connecting`);try{return await e.get(t,n,{signal:s.signal,timeout:0,onDownloadProgress:e=>{!c&&(e.loaded??0)>0?(c=!0,clearTimeout(u),o?.(`receiving`),d()):c&&d()}})}finally{clearTimeout(u),l&&clearTimeout(l)}}export{t};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{M as e,U as t,o as n}from"./runtime-core.esm-bundler-CINEgm0a.js";import{n as r,t as i,v as a}from"./api-B-2vYkoY.js";import{t as o}from"./packets-B5s0Tvcs.js";var s=`pymc_config_cache`;function c(){try{let e=sessionStorage.getItem(s);return e?JSON.parse(e):null}catch{return null}}function l(e){if(e)try{sessionStorage.setItem(s,JSON.stringify(e))}catch{}}function u(){try{sessionStorage.removeItem(s)}catch{}}var d=a(`system`,()=>{let a=c(),s=t(a?{config:a}:null),d=t(!1),f=t(null),p=t(null),m=t(`forward`),h=t(!0),g=t(0),_=t(10),v=t(!1),y=n(()=>s.value?.config?.node_name??`Unknown`),b=n(()=>s.value?.site_name??``);e(()=>{let e=b.value;document.title=e?`${e} — Repeater`:`Repeater Dashboard`});let x=n(()=>{let e=s.value?.public_key;return!e||e===`Unknown`?`Unknown`:e.length>=16?`${e.slice(0,8)} ... ${e.slice(-8)}`:`${e}`}),S=n(()=>s.value!==null),C=n(()=>s.value?.version??`Unknown`),w=n(()=>s.value?.core_version??`Unknown`),T=n(()=>s.value?.noise_floor_dbm??null),E=n(()=>_.value>0?Math.min(g.value/_.value*100,100):0),D=n(()=>m.value===`no_tx`?{text:`No TX`,title:`No repeat, no local TX; adverts skipped`}:m.value===`monitor`?{text:`Monitor Mode`,title:`Monitoring only - not forwarding packets`}:h.value?{text:`Active`,title:`Forwarding with duty cycle enforcement`}:{text:`No Limits`,title:`Forwarding without duty cycle enforcement`}),O=n(()=>({mode:m.value})),k=n(()=>h.value?{active:!0,warning:!1}:{active:!1,warning:!0}),A=e=>{v.value=e},j=null;async function M(e){return j===null?(j=(async()=>{try{d.value=!0,f.value=null;let t=new AbortController,n=15e3,i=window.setTimeout(()=>t.abort(),n),a=!1,c=()=>{a||(a=!0,e?.onFirstByte?.()),clearTimeout(i),i=window.setTimeout(()=>t.abort(),n)},u;try{u=await r.get(`/stats`,{signal:t.signal,onDownloadProgress:c,timeout:0})}finally{clearTimeout(i)}let m=u.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 s.value=h,p.value=new Date,N(h),l(h.config),o().systemStats=h,h}catch(e){throw f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching stats:`,e),e}finally{d.value=!1}})(),j.finally(()=>{j=null}),j):j}function N(e){if(e.config){let t=e.config.repeater?.mode;t===`forward`||t===`monitor`||t===`no_tx`?m.value=t:t!==void 0&&(m.value=`forward`);let n=e.config.duty_cycle;if(n){h.value=n.enforcement_enabled!==!1;let e=n.max_airtime_percent;typeof e==`number`?_.value=e:e&&typeof e==`object`&&`parsedValue`in e&&(_.value=e.parsedValue||10)}}let t=e.utilization_percent;typeof t==`number`?g.value=t:t&&typeof t==`object`&&`parsedValue`in t&&(g.value=t.parsedValue||0)}async function P(e){try{let t=await i.post(`/set_mode`,{mode:e});if(t.success)return m.value=e,!0;throw Error(t.error||`Failed to set mode`)}catch(e){throw f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error setting mode:`,e),e}}async function F(e){try{let t=await i.post(`/set_duty_cycle`,{enabled:e});if(t.success)return h.value=e,!0;throw Error(t.error||`Failed to set duty cycle`)}catch(e){throw f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error setting duty cycle:`,e),e}}async function I(){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 f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error sending advert:`,e),e}}async function L(){return await F(!h.value)}function R(e){s.value?(e.uptime_seconds!==void 0&&(s.value.uptime_seconds=e.uptime_seconds),e.noise_floor_dbm!==void 0&&(s.value.noise_floor_dbm=e.noise_floor_dbm)):s.value=e,p.value=new Date,N(e)}async function z(e=5e3,t=!1){t||await M();let n=null;return t||(n=setInterval(async()=>{try{await M()}catch(e){console.error(`Auto-refresh error:`,e)}},e)),()=>{n&&clearInterval(n)}}function B(){s.value=null,f.value=null,p.value=null,d.value=!1,m.value=`forward`,h.value=!0,g.value=0,_.value=10,u()}return{stats:s,isLoading:d,error:f,lastUpdated:p,currentMode:m,dutyCycleEnabled:h,dutyCycleUtilization:g,dutyCycleMax:_,cadCalibrationRunning:v,nodeName:y,siteName:b,pubKey:x,hasStats:S,version:C,coreVersion:w,noiseFloorDbm:T,dutyCyclePercentage:E,statusBadge:D,modeButtonState:O,dutyCycleButtonState:k,fetchStats:M,setMode:P,setDutyCycle:F,sendAdvert:I,toggleDutyCycle:L,startAutoRefresh:z,updateRealtimeStats:R,reset:B,setCadCalibrationRunning:A}});export{d as t};
|
||||
import{M as e,U as t,o as n}from"./runtime-core.esm-bundler-CINEgm0a.js";import{n as r,t as i,v as a}from"./api-BgU2z9oO.js";import{t as o}from"./packets-DROiFL8U.js";var s=`pymc_config_cache`;function c(){try{let e=sessionStorage.getItem(s);return e?JSON.parse(e):null}catch{return null}}function l(e){if(e)try{sessionStorage.setItem(s,JSON.stringify(e))}catch{}}function u(){try{sessionStorage.removeItem(s)}catch{}}var d=a(`system`,()=>{let a=c(),s=t(a?{config:a}:null),d=t(!1),f=t(null),p=t(null),m=t(`forward`),h=t(!0),g=t(0),_=t(10),v=t(!1),y=n(()=>s.value?.config?.node_name??`Unknown`),b=n(()=>s.value?.site_name??``);e(()=>{let e=b.value;document.title=e?`${e} — Repeater`:`Repeater Dashboard`});let x=n(()=>{let e=s.value?.public_key;return!e||e===`Unknown`?`Unknown`:e.length>=16?`${e.slice(0,8)} ... ${e.slice(-8)}`:`${e}`}),S=n(()=>s.value!==null),C=n(()=>s.value?.version??`Unknown`),w=n(()=>s.value?.core_version??`Unknown`),T=n(()=>s.value?.noise_floor_dbm??null),E=n(()=>_.value>0?Math.min(g.value/_.value*100,100):0),D=n(()=>m.value===`no_tx`?{text:`No TX`,title:`No repeat, no local TX; adverts skipped`}:m.value===`monitor`?{text:`Monitor Mode`,title:`Monitoring only - not forwarding packets`}:h.value?{text:`Active`,title:`Forwarding with duty cycle enforcement`}:{text:`No Limits`,title:`Forwarding without duty cycle enforcement`}),O=n(()=>({mode:m.value})),k=n(()=>h.value?{active:!0,warning:!1}:{active:!1,warning:!0}),A=e=>{v.value=e},j=null;async function M(e){return j===null?(j=(async()=>{try{d.value=!0,f.value=null;let t=new AbortController,n=15e3,i=window.setTimeout(()=>t.abort(),n),a=!1,c=()=>{a||(a=!0,e?.onFirstByte?.()),clearTimeout(i),i=window.setTimeout(()=>t.abort(),n)},u;try{u=await r.get(`/stats`,{signal:t.signal,onDownloadProgress:c,timeout:0})}finally{clearTimeout(i)}let m=u.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 s.value=h,p.value=new Date,N(h),l(h.config),o().systemStats=h,h}catch(e){throw f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error fetching stats:`,e),e}finally{d.value=!1}})(),j.finally(()=>{j=null}),j):j}function N(e){if(e.config){let t=e.config.repeater?.mode;t===`forward`||t===`monitor`||t===`no_tx`?m.value=t:t!==void 0&&(m.value=`forward`);let n=e.config.duty_cycle;if(n){h.value=n.enforcement_enabled!==!1;let e=n.max_airtime_percent;typeof e==`number`?_.value=e:e&&typeof e==`object`&&`parsedValue`in e&&(_.value=e.parsedValue||10)}}let t=e.utilization_percent;typeof t==`number`?g.value=t:t&&typeof t==`object`&&`parsedValue`in t&&(g.value=t.parsedValue||0)}async function P(e){try{let t=await i.post(`/set_mode`,{mode:e});if(t.success)return m.value=e,!0;throw Error(t.error||`Failed to set mode`)}catch(e){throw f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error setting mode:`,e),e}}async function F(e){try{let t=await i.post(`/set_duty_cycle`,{enabled:e});if(t.success)return h.value=e,!0;throw Error(t.error||`Failed to set duty cycle`)}catch(e){throw f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error setting duty cycle:`,e),e}}async function I(e=`flood`){try{let t=await i.post(`/send_advert`,{mode:e},{timeout:1e4});if(t.success)return!0;throw Error(t.error||`Failed to send advert`)}catch(e){throw f.value=e instanceof Error?e.message:`Unknown error occurred`,console.error(`Error sending advert:`,e),e}}async function L(){return await F(!h.value)}function R(e){s.value?(e.uptime_seconds!==void 0&&(s.value.uptime_seconds=e.uptime_seconds),e.noise_floor_dbm!==void 0&&(s.value.noise_floor_dbm=e.noise_floor_dbm)):s.value=e,p.value=new Date,N(e)}async function z(e=5e3,t=!1){t||await M();let n=null;return t||(n=setInterval(async()=>{try{await M()}catch(e){console.error(`Auto-refresh error:`,e)}},e)),()=>{n&&clearInterval(n)}}function B(){s.value=null,f.value=null,p.value=null,d.value=!1,m.value=`forward`,h.value=!0,g.value=0,_.value=10,u()}return{stats:s,isLoading:d,error:f,lastUpdated:p,currentMode:m,dutyCycleEnabled:h,dutyCycleUtilization:g,dutyCycleMax:_,cadCalibrationRunning:v,nodeName:y,siteName:b,pubKey:x,hasStats:S,version:C,coreVersion:w,noiseFloorDbm:T,dutyCyclePercentage:E,statusBadge:D,modeButtonState:O,dutyCycleButtonState:k,fetchStats:M,setMode:P,setDutyCycle:F,sendAdvert:I,toggleDutyCycle:L,startAutoRefresh:z,updateRealtimeStats:R,reset:B,setCadCalibrationRunning:A}});export{d as t};
|
||||
@@ -0,0 +1 @@
|
||||
import{t as e}from"./system-BVs_Y0rK.js";export{e as useSystemStore};
|
||||
@@ -1 +0,0 @@
|
||||
import{t as e}from"./system-uA3cZx_m.js";export{e as useSystemStore};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{U as e,o as t}from"./runtime-core.esm-bundler-CINEgm0a.js";import{c as n,d as r,i,l as a,v as o}from"./api-B-2vYkoY.js";import{t as s}from"./packets-B5s0Tvcs.js";import{t as c}from"./system-uA3cZx_m.js";import{t as l}from"./dataService-CPAucQH-.js";var u=o(`websocket`,()=>{let o=e(null),u=e(`idle`),d=e(0),f=e(Date.now()),p=e(null),m=e(null),h=e(!1),g=e(!1),_=e(!1),v=e({visible:!1,message:``,variant:`info`}),y=null,b=s(),x=c(),S=i(),C=l(),w=t(()=>u.value===`open`);function T(e,t,n=0){y!==null&&(clearTimeout(y),y=null),v.value={visible:!0,message:e,variant:t},n>0&&(y=window.setTimeout(()=>{E()},n))}function E(){y!==null&&(clearTimeout(y),y=null),v.value.visible=!1}function D(){p.value!==null&&(clearTimeout(p.value),p.value=null)}function O(){m.value!==null&&(clearInterval(m.value),m.value=null)}function k(){T(`Reconnecting...`,`info`)}function A(){let e=a();return!h.value&&!g.value&&!!e&&!r()&&S.canMaintainConnections}function j(){let e,t=a(),r=n(),i=new URLSearchParams;return t&&i.set(`token`,t),r&&i.set(`client_id`,r),e=`${window.location.protocol===`https:`?`wss:`:`ws:`}//${``?.trim()?new URL(``).host:window.location.host}/ws/packets?${i.toString()}`,e}async function M(){await C.onReconnect()}function N(e=!1){O(),o.value&&e&&(o.value.onopen=null,o.value.onmessage=null,o.value.onerror=null,o.value.onclose=null)}function P(){if(D(),!A()){if(a()&&r()){S.handleAuthFailure(`expired`);return}u.value=`closed`;return}if(d.value>=6){u.value=`closed`,T(`Connection lost`,`error`,5e3);return}u.value=`reconnecting`,k();let e=Math.min(1e3*2**d.value,3e4);d.value+=1,p.value=window.setTimeout(()=>{p.value=null,F(!0)},e)}function F(e=!1){if(!A()||o.value?.readyState===WebSocket.OPEN||o.value?.readyState===WebSocket.CONNECTING)return;D(),N(!0),u.value=e||d.value>0||_.value?`reconnecting`:`connecting`,_.value&&k();let t=new WebSocket(j());o.value=t,t.onopen=()=>{u.value=`open`,f.value=Date.now();let e=d.value>0||_.value;d.value=0,_.value=!1,O(),m.value=window.setInterval(()=>{o.value?.readyState===WebSocket.OPEN&&(o.value.send(JSON.stringify({type:`ping`})),Date.now()-f.value>6e4&&(N(!0),o.value?.close()))},3e4),e?(C.onReconnect(),T(`Back online`,`success`,2500)):E()},t.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`packet`?b.addRealtimePacket(t.data):t.type===`stats`?(t.data?.packet_stats&&b.updateRealtimeStats({packet_stats:t.data.packet_stats}),t.data?.system_stats&&x.updateRealtimeStats(t.data.system_stats)):t.type===`packet_stats`?b.updateRealtimeStats(t.data):t.type===`system_stats`?x.updateRealtimeStats(t.data):(t.type===`pong`||t.type===`ping`)&&(f.value=Date.now(),t.type===`ping`&&o.value?.readyState===WebSocket.OPEN&&o.value.send(JSON.stringify({type:`pong`})))}catch(e){console.error(`[WebSocket] Parse error:`,e)}},t.onerror=()=>{u.value=d.value>0?`reconnecting`:`closed`},t.onclose=e=>{let t=o.value;if(N(),t===o.value&&(o.value=null),h.value||g.value){u.value=`closed`;return}if(e.code===1008||e.code===4001||e.code===4003){S.handleAuthFailure(`expired`);return}C.noteDisconnect(),P()}}function I(e=`lifecycle`){if(g.value=!0,D(),u.value=`closed`,e===`offline`?(_.value=!0,T(`Connection lost`,`error`,4e3)):e===`hidden`?(_.value=!0,E()):e===`logout`&&(_.value=!1,E()),o.value){let e=o.value;o.value=null,N(!0),e.close()}}function L(){h.value=!1,g.value=!1}function R(e={}){h.value=e.preventReconnect??h.value,e.silent||E(),I(e.preventReconnect?`logout`:`lifecycle`),d.value=0}return{isConnected:w,connectionState:u,reconnectAttempts:d,snackbar:v,connect:F,disconnect:R,pause:I,allowReconnect:L,hideSnackbar:E,resyncData:M}});export{u as t};
|
||||
import{U as e,o as t}from"./runtime-core.esm-bundler-CINEgm0a.js";import{c as n,d as r,i,l as a,v as o}from"./api-BgU2z9oO.js";import{t as s}from"./packets-DROiFL8U.js";import{t as c}from"./system-BVs_Y0rK.js";import{t as l}from"./dataService-4qyr7nMC.js";var u=o(`websocket`,()=>{let o=e(null),u=e(`idle`),d=e(0),f=e(Date.now()),p=e(null),m=e(null),h=e(!1),g=e(!1),_=e(!1),v=e({visible:!1,message:``,variant:`info`}),y=null,b=s(),x=c(),S=i(),C=l(),w=t(()=>u.value===`open`);function T(e,t,n=0){y!==null&&(clearTimeout(y),y=null),v.value={visible:!0,message:e,variant:t},n>0&&(y=window.setTimeout(()=>{E()},n))}function E(){y!==null&&(clearTimeout(y),y=null),v.value.visible=!1}function D(){p.value!==null&&(clearTimeout(p.value),p.value=null)}function O(){m.value!==null&&(clearInterval(m.value),m.value=null)}function k(){T(`Reconnecting...`,`info`)}function A(){let e=a();return!h.value&&!g.value&&!!e&&!r()&&S.canMaintainConnections}function j(){let e,t=a(),r=n(),i=new URLSearchParams;return t&&i.set(`token`,t),r&&i.set(`client_id`,r),e=`${window.location.protocol===`https:`?`wss:`:`ws:`}//${``?.trim()?new URL(``).host:window.location.host}/ws/packets?${i.toString()}`,e}async function M(){await C.onReconnect()}function N(e=!1){O(),o.value&&e&&(o.value.onopen=null,o.value.onmessage=null,o.value.onerror=null,o.value.onclose=null)}function P(){if(D(),!A()){if(a()&&r()){S.handleAuthFailure(`expired`);return}u.value=`closed`;return}if(d.value>=6){u.value=`closed`,T(`Connection lost`,`error`,5e3);return}u.value=`reconnecting`,k();let e=Math.min(1e3*2**d.value,3e4);d.value+=1,p.value=window.setTimeout(()=>{p.value=null,F(!0)},e)}function F(e=!1){if(!A()||o.value?.readyState===WebSocket.OPEN||o.value?.readyState===WebSocket.CONNECTING)return;D(),N(!0),u.value=e||d.value>0||_.value?`reconnecting`:`connecting`,_.value&&k();let t=new WebSocket(j());o.value=t,t.onopen=()=>{u.value=`open`,f.value=Date.now();let e=d.value>0||_.value;d.value=0,_.value=!1,O(),m.value=window.setInterval(()=>{o.value?.readyState===WebSocket.OPEN&&(o.value.send(JSON.stringify({type:`ping`})),Date.now()-f.value>6e4&&(N(!0),o.value?.close()))},3e4),e?(C.onReconnect(),T(`Back online`,`success`,2500)):E()},t.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`packet`?b.addRealtimePacket(t.data):t.type===`stats`?(t.data?.packet_stats&&b.updateRealtimeStats({packet_stats:t.data.packet_stats}),t.data?.system_stats&&x.updateRealtimeStats(t.data.system_stats)):t.type===`packet_stats`?b.updateRealtimeStats(t.data):t.type===`system_stats`?x.updateRealtimeStats(t.data):(t.type===`pong`||t.type===`ping`)&&(f.value=Date.now(),t.type===`ping`&&o.value?.readyState===WebSocket.OPEN&&o.value.send(JSON.stringify({type:`pong`})))}catch(e){console.error(`[WebSocket] Parse error:`,e)}},t.onerror=()=>{u.value=d.value>0?`reconnecting`:`closed`},t.onclose=e=>{let t=o.value;if(N(),t===o.value&&(o.value=null),h.value||g.value){u.value=`closed`;return}if(e.code===1008||e.code===4001||e.code===4003){S.handleAuthFailure(`expired`);return}C.noteDisconnect(),P()}}function I(e=`lifecycle`){if(g.value=!0,D(),u.value=`closed`,e===`offline`?(_.value=!0,T(`Connection lost`,`error`,4e3)):e===`hidden`?(_.value=!0,E()):e===`logout`&&(_.value=!1,E()),o.value){let e=o.value;o.value=null,N(!0),e.close()}}function L(){h.value=!1,g.value=!1}function R(e={}){h.value=e.preventReconnect??h.value,e.silent||E(),I(e.preventReconnect?`logout`:`lifecycle`),d.value=0}return{isConnected:w,connectionState:u,reconnectAttempts:d,snackbar:v,connect:F,disconnect:R,pause:I,allowReconnect:L,hideSnackbar:E,resyncData:M}});export{u as t};
|
||||
@@ -1 +0,0 @@
|
||||
import{t as e}from"./websocket-Br2zM8_8.js";export{e as useWebSocketStore};
|
||||
@@ -0,0 +1 @@
|
||||
import{t as e}from"./websocket-BAIFVlsY.js";export{e as useWebSocketStore};
|
||||
@@ -8,21 +8,21 @@
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<script type="module" crossorigin src="/assets/index-DoCDF--l.js"></script>
|
||||
<script type="module" crossorigin src="/assets/index-DXPlD6DJ.js"></script>
|
||||
<link rel="modulepreload" crossorigin href="/assets/chunk-DECur_0Z.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/runtime-core.esm-bundler-CINEgm0a.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/api-B-2vYkoY.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/api-BgU2z9oO.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/createLucideIcon-C08u_PTE.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/runtime-dom.esm-bundler-B3VeUO8l.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/Spinner-D-jFxDsV.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/useTheme-BtGkqRpn.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/packets-B5s0Tvcs.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/system-uA3cZx_m.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/packets-DROiFL8U.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/system-BVs_Y0rK.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/formatters-vw234I-c.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/dataService-CPAucQH-.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/websocket-Br2zM8_8.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/dataService-4qyr7nMC.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/websocket-BAIFVlsY.js">
|
||||
<link rel="modulepreload" crossorigin href="/assets/constants-Hl8RMxy-.js">
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-BQFqSOPg.css">
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-D1q3rCNj.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
Reference in new issue
Block a user