1 line
17 KiB
JavaScript
1 line
17 KiB
JavaScript
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8171],{78171:(e,r,t)=>{t.r(r),t.d(r,{default:()=>w});var a=t(20475),s=t(72167),n=t(45934),l=t(76554),i=t(42541),d=t(39997);let c=(0,d.A)("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);var o=t(92823);let u=(0,d.A)("Signal",[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]),m=(0,d.A)("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);var h=t(17799),x=t(91994),g=t(8782),f=t(49573),p=t(20107);let v=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e4,[r,t]=(0,p.useState)([]),[a,s]=(0,p.useState)(!0),[n,l]=(0,p.useState)(null),[i,d]=(0,p.useState)(null),c=(0,p.useCallback)(async()=>{try{l(null);let e=await fetch("/cgi-bin/quecmanager/experimental/fetch_interpretations.sh",{cache:"no-cache",headers:{"Cache-Control":"no-cache",Pragma:"no-cache"}});if(!e.ok)throw Error("HTTP ".concat(e.status,": Failed to fetch interpretations"));let r=await e.json(),a=Array.isArray(r)?r:[];t(a),d(new Date)}catch(e){console.error("Failed to fetch interpretations:",e),l(e instanceof Error?e.message:"Unknown error occurred")}finally{s(!1)}},[]);return(0,p.useEffect)(()=>{if(c(),e>0){let r=setInterval(c,e);return()=>clearInterval(r)}},[c,e]),{interpretations:r,loading:a,error:n,lastUpdate:i,refresh:(0,p.useCallback)(()=>{s(!0),c()},[c])}};var b=t(36760);let y=e=>e.toLowerCase().includes("band")?(0,a.jsx)(c,{className:"h-4 w-4"}):e.toLowerCase().includes("carrier aggregation")||e.toLowerCase().includes("carriers")?(0,a.jsx)(o.A,{className:"h-4 w-4"}):e.toLowerCase().includes("signal")?(0,a.jsx)(u,{className:"h-4 w-4"}):(e.toLowerCase().includes("network mode")||e.toLowerCase().includes("pci")||e.toLowerCase().includes("earfcn"),(0,a.jsx)(m,{className:"h-4 w-4"})),j=e=>{let r=e.toLowerCase();return r.includes("signal lost")||r.includes("no cellular")?"bg-red-100 text-red-800 border-red-200 dark:bg-red-900/20 dark:text-red-300 dark:border-red-800":r.includes("signal restored")||r.includes("connected")?"bg-green-100 text-green-800 border-green-200 dark:bg-green-900/20 dark:text-green-300 dark:border-green-800":r.includes("aggregation activated")||r.includes("carriers increased")?"bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-900/20 dark:text-blue-300 dark:border-blue-800":r.includes("aggregation deactivated")||r.includes("single carrier")?"bg-orange-100 text-orange-800 border-orange-200 dark:bg-orange-900/20 dark:text-orange-300 dark:border-orange-800":r.includes("network mode changed")||r.includes("nsa")||r.includes("lte")||r.includes("5g sa")?"bg-purple-100 text-purple-800 border-purple-200 dark:bg-purple-900/20 dark:text-purple-300 dark:border-purple-800":r.includes("band")&&(r.includes("added")||r.includes("removed")||r.includes("changed"))?"bg-teal-100 text-teal-800 border-teal-200 dark:bg-teal-900/20 dark:text-teal-300 dark:border-teal-800":"bg-gray-100 text-gray-800 border-gray-200 dark:bg-gray-900/20 dark:text-gray-300 dark:border-gray-800"};function w(){let{interpretations:e,loading:r,error:t,lastUpdate:d,refresh:p}=v(3e4),w=e=>{try{let r=new Date(e);return{date:r.toLocaleDateString(),time:r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}}catch(r){return{date:e.split(" ")[0]||"",time:e.split(" ")[1]||""}}},N=e.reduce((e,r)=>{let{date:t}=w(r.datetime);return e[t]||(e[t]=[]),e[t].push(r),e},{}),k=Object.keys(N).sort((e,r)=>new Date(r).getTime()-new Date(e).getTime());return(0,a.jsxs)(s.Zp,{children:[(0,a.jsxs)(s.aR,{children:[(0,a.jsx)(s.ZB,{children:"Network Insights"}),(0,a.jsx)(s.BT,{children:"Real-time insights into your cellular network changes, including band switches, carrier aggregation events, and signal quality changes. The monitoring service runs automatically as part of QuecManager services."})]}),(0,a.jsx)(s.Wu,{children:(0,a.jsxs)("div",{className:"space-y-6",children:[t&&(0,a.jsxs)(f.Fc,{variant:"destructive",children:[(0,a.jsx)(h.A,{className:"h-4 w-4"}),(0,a.jsxs)(f.TN,{children:["Failed to load network insights: ",t]})]}),(0,a.jsxs)("div",{className:"grid gap-6",children:[(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[(0,a.jsx)(s.Zp,{children:(0,a.jsx)(s.Wu,{className:"p-4",children:(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)(m,{className:"h-8 w-8 text-blue-500"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:"Total Events"}),r&&0===e.length?(0,a.jsx)(b.E,{className:"h-8 w-6 mt-1"}):(0,a.jsx)("p",{className:"text-2xl font-bold",children:e.length})]})]})})}),(0,a.jsx)(s.Zp,{children:(0,a.jsx)(s.Wu,{className:"p-4",children:(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)(c,{className:"h-8 w-8 text-teal-500"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:"Band Changes"}),r&&0===e.length?(0,a.jsx)(b.E,{className:"h-8 w-6 mt-1"}):(0,a.jsx)("p",{className:"text-2xl font-bold",children:e.filter(e=>e.interpretation.toLowerCase().includes("band")).length})]})]})})}),(0,a.jsx)(s.Zp,{children:(0,a.jsx)(s.Wu,{className:"p-4",children:(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)(o.A,{className:"h-8 w-8 text-blue-500"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:"CA Events"}),r&&0===e.length?(0,a.jsx)(b.E,{className:"h-8 w-6 mt-1"}):(0,a.jsx)("p",{className:"text-2xl font-bold",children:e.filter(e=>e.interpretation.toLowerCase().includes("carrier aggregation")||e.interpretation.toLowerCase().includes("carriers")).length})]})]})})}),(0,a.jsx)(s.Zp,{children:(0,a.jsx)(s.Wu,{className:"p-4",children:(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)(u,{className:"h-8 w-8 text-green-500"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:"Signal Events"}),r&&0===e.length?(0,a.jsx)(b.E,{className:"h-8 w-6 mt-1"}):(0,a.jsx)("p",{className:"text-2xl font-bold",children:e.filter(e=>e.interpretation.toLowerCase().includes("signal")||e.interpretation.toLowerCase().includes("network mode")).length})]})]})})})]}),r&&0===e.length?(0,a.jsx)(s.Zp,{className:"pt-6",children:(0,a.jsxs)(s.Wu,{className:"flex flex-col gap-4",children:[(0,a.jsx)(b.E,{className:"h-16 w-full"}),(0,a.jsx)(b.E,{className:"h-16 w-full"}),(0,a.jsx)(b.E,{className:"h-16 w-full"})]})}):(0,a.jsx)(a.Fragment,{children:r||0!==k.length?k.map(e=>(0,a.jsxs)(s.Zp,{children:[(0,a.jsx)(s.aR,{children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)(s.ZB,{children:e}),(0,a.jsxs)(n.E,{variant:"secondary",children:[N[e].length," event",1!==N[e].length?"s":""]})]})}),(0,a.jsx)(s.Wu,{children:(0,a.jsx)("div",{className:"space-y-4",children:N[e].sort((e,r)=>new Date(r.datetime).getTime()-new Date(e.datetime).getTime()).map((r,t)=>{let{time:s}=w(r.datetime);return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-start space-x-3",children:[(0,a.jsx)("div",{className:"p-2 rounded-full border ".concat(j(r.interpretation)),children:y(r.interpretation)}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("div",{className:"flex items-center space-x-2",children:(0,a.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:s})}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-relaxed",children:r.interpretation})]})]}),t<N[e].length-1&&(0,a.jsx)(l.Separator,{className:"mt-4"})]},t)})})})]},e)):(0,a.jsx)(s.Zp,{children:(0,a.jsx)(s.Wu,{className:"flex items-center justify-center p-8",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)(m,{className:"h-12 w-12 text-primary mx-auto mb-4"}),(0,a.jsx)("h3",{className:"text-lg font-medium mb-2",children:"No Network Changes Detected"}),(0,a.jsx)("p",{className:"text-muted-foreground max-w-md",children:"The system is actively monitoring your cellular network for changes. When your modem switches bands, activates carrier aggregation, or changes cells, those events will appear here."})]})})})})]})]})}),(0,a.jsxs)(s.wL,{className:"flex justify-between items-center",children:[(0,a.jsx)("div",{children:(0,a.jsxs)(i.$,{onClick:p,size:"sm",disabled:r,children:[(0,a.jsx)(x.A,{className:"h-4 w-4 ".concat(r?"animate-spin":"")}),"Refresh Insights"]})}),d&&(0,a.jsxs)("div",{className:"flex items-center text-sm text-muted-foreground",children:[(0,a.jsx)(g.A,{className:"h-4 w-4 mr-1"}),d.toLocaleTimeString()]})]})]})}},49573:(e,r,t)=>{t.d(r,{Fc:()=>d,TN:()=>o,XL:()=>c});var a=t(20475),s=t(20107),n=t(29395),l=t(22250);let i=(0,n.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),d=s.forwardRef((e,r)=>{let{className:t,variant:s,...n}=e;return(0,a.jsx)("div",{ref:r,role:"alert",className:(0,l.cn)(i({variant:s}),t),...n})});d.displayName="Alert";let c=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("h5",{ref:r,className:(0,l.cn)("mb-1 font-medium leading-none tracking-tight",t),...s})});c.displayName="AlertTitle";let o=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("div",{ref:r,className:(0,l.cn)("text-sm [&_p]:leading-relaxed",t),...s})});o.displayName="AlertDescription"},45934:(e,r,t)=>{t.d(r,{E:()=>i});var a=t(20475);t(20107);var s=t(29395),n=t(22250);let l=(0,s.F)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i(e){let{className:r,variant:t,...s}=e;return(0,a.jsx)("div",{className:(0,n.cn)(l({variant:t}),r),...s})}},42541:(e,r,t)=>{t.d(r,{$:()=>c,r:()=>d});var a=t(20475),s=t(20107),n=t(61837),l=t(29395),i=t(22250);let d=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),c=s.forwardRef((e,r)=>{let{className:t,variant:s,size:l,asChild:c=!1,...o}=e,u=c?n.DX:"button";return(0,a.jsx)(u,{className:(0,i.cn)(d({variant:s,size:l,className:t})),ref:r,...o})});c.displayName="Button"},72167:(e,r,t)=>{t.d(r,{BT:()=>c,Wu:()=>o,ZB:()=>d,Zp:()=>l,aR:()=>i,wL:()=>u});var a=t(20475),s=t(20107),n=t(22250);let l=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("div",{ref:r,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",t),...s})});l.displayName="Card";let i=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("div",{ref:r,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",t),...s})});i.displayName="CardHeader";let d=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("h3",{ref:r,className:(0,n.cn)("font-semibold leading-none tracking-tight",t),...s})});d.displayName="CardTitle";let c=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("p",{ref:r,className:(0,n.cn)("text-sm text-muted-foreground",t),...s})});c.displayName="CardDescription";let o=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("div",{ref:r,className:(0,n.cn)("p-6 pt-0",t),...s})});o.displayName="CardContent";let u=s.forwardRef((e,r)=>{let{className:t,...s}=e;return(0,a.jsx)("div",{ref:r,className:(0,n.cn)("flex items-center p-6 pt-0",t),...s})});u.displayName="CardFooter"},76554:(e,r,t)=>{t.d(r,{Separator:()=>i});var a=t(20475),s=t(20107),n=t(88853),l=t(22250);let i=s.forwardRef((e,r)=>{let{className:t,orientation:s="horizontal",decorative:i=!0,...d}=e;return(0,a.jsx)(n.b,{ref:r,decorative:i,orientation:s,className:(0,l.cn)("shrink-0 bg-border","horizontal"===s?"h-[1px] w-full":"h-full w-[1px]",t),...d})});i.displayName=n.b.displayName},36760:(e,r,t)=>{t.d(r,{E:()=>n});var a=t(20475),s=t(22250);function n(e){let{className:r,...t}=e;return(0,a.jsx)("div",{className:(0,s.cn)("animate-pulse rounded-md bg-primary/10",r),...t})}},22250:(e,r,t)=>{t.d(r,{cn:()=>n});var a=t(64901),s=t(868);function n(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return(0,s.QP)((0,a.$)(r))}},39997:(e,r,t)=>{t.d(r,{A:()=>d});var a=t(20107);let s=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),n=function(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];return r.filter((e,r,t)=>!!e&&t.indexOf(e)===r).join(" ")};var l={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,a.forwardRef)((e,r)=>{let{color:t="currentColor",size:s=24,strokeWidth:i=2,absoluteStrokeWidth:d,className:c="",children:o,iconNode:u,...m}=e;return(0,a.createElement)("svg",{ref:r,...l,width:s,height:s,stroke:t,strokeWidth:d?24*Number(i)/Number(s):i,className:n("lucide",c),...m},[...u.map(e=>{let[r,t]=e;return(0,a.createElement)(r,t)}),...Array.isArray(o)?o:[o]])}),d=(e,r)=>{let t=(0,a.forwardRef)((t,l)=>{let{className:d,...c}=t;return(0,a.createElement)(i,{ref:l,iconNode:r,className:n("lucide-".concat(s(e)),d),...c})});return t.displayName="".concat(e),t}},17799:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},8782:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},91994:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},92823:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},34544:(e,r,t)=>{t.d(r,{hO:()=>d,sG:()=>i});var a=t(20107),s=t(25642),n=t(61837),l=t(20475),i=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,r)=>{let t=a.forwardRef((e,t)=>{let{asChild:a,...s}=e,i=a?n.DX:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,l.jsx)(i,{...s,ref:t})});return t.displayName=`Primitive.${r}`,{...e,[r]:t}},{});function d(e,r){e&&s.flushSync(()=>e.dispatchEvent(r))}},88853:(e,r,t)=>{t.d(r,{b:()=>c});var a=t(20107),s=t(34544),n=t(20475),l="horizontal",i=["horizontal","vertical"],d=a.forwardRef((e,r)=>{let{decorative:t,orientation:a=l,...d}=e,c=i.includes(a)?a:l;return(0,n.jsx)(s.sG.div,{"data-orientation":c,...t?{role:"none"}:{"aria-orientation":"vertical"===c?c:void 0,role:"separator"},...d,ref:r})});d.displayName="Separator";var c=d},29395:(e,r,t)=>{t.d(r,{F:()=>n});let a=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,s=function(){for(var e,r,t=0,a="";t<arguments.length;)(e=arguments[t++])&&(r=function e(r){var t,a,s="";if("string"==typeof r||"number"==typeof r)s+=r;else if("object"==typeof r){if(Array.isArray(r))for(t=0;t<r.length;t++)r[t]&&(a=e(r[t]))&&(s&&(s+=" "),s+=a);else for(t in r)r[t]&&(s&&(s+=" "),s+=t)}return s}(e))&&(a&&(a+=" "),a+=r);return a},n=(e,r)=>t=>{var n;if((null==r?void 0:r.variants)==null)return s(e,null==t?void 0:t.class,null==t?void 0:t.className);let{variants:l,defaultVariants:i}=r,d=Object.keys(l).map(e=>{let r=null==t?void 0:t[e],s=null==i?void 0:i[e];if(null===r)return null;let n=a(r)||a(s);return l[e][n]}),c=t&&Object.entries(t).reduce((e,r)=>{let[t,a]=r;return void 0===a||(e[t]=a),e},{});return s(e,d,null==r?void 0:null===(n=r.compoundVariants)||void 0===n?void 0:n.reduce((e,r)=>{let{class:t,className:a,...s}=r;return Object.entries(s).every(e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...i,...c}[r]):({...i,...c})[r]===t})?[...e,t,a]:e},[]),null==t?void 0:t.class,null==t?void 0:t.className)}}}]); |