Files
pyMC_Repeater/repeater/web/html/assets/Logs-BpG7T8_d.js
T
2026-04-11 21:14:39 +01:00

1 line
8.4 KiB
JavaScript

import{E as e,S as t,dt as n,f as r,g as i,l as a,lt as o,o as s,p as c,r as l,s as u,u as d,w as f,x as p,z as m}from"./runtime-core.esm-bundler-IofF4kUm.js";import{t as h}from"./api-CiSov_eM.js";var g={class:`space-y-6`},_={class:`glass-card backdrop-blur border border-stroke-subtle dark:border-white/10 rounded-[15px] p-6`},v={class:`flex items-center justify-between mb-4`},y=[`disabled`],b={class:`bg-gray-50 dark:bg-white/5 border border-stroke-subtle dark:border-stroke/10 rounded-lg p-4`},x={class:`flex flex-wrap gap-2`},S=[`onClick`],C={key:0,class:`w-px h-6 bg-stroke-subtle dark:bg-stroke/20 mx-2 self-center`},w=[`onClick`],T={class:`glass-card backdrop-blur border border-stroke-subtle dark:border-white/10 rounded-[15px] overflow-hidden`},E={key:0,class:`p-8 text-center`},D={key:1,class:`p-8 text-center`},O={class:`text-content-secondary dark:text-content-muted mb-4`},k={key:2,class:`max-h-[600px] overflow-y-auto`},A={key:0,class:`p-8 text-center`},j={key:1,class:`divide-y divide-gray-200 dark:divide-white/5`},M={class:`flex-shrink-0 text-content-secondary dark:text-content-muted`},N={class:`flex-shrink-0 px-2 py-1 text-xs font-medium rounded bg-blue-500/20 text-blue-600 dark:text-blue-400`},P={class:`text-content-primary dark:text-content-primary flex-1 break-all`},F=i({name:`LogsView`,__name:`Logs`,setup(i){let F=m([]),I=m(new Set),L=m(new Set([`DEBUG`,`INFO`,`WARNING`,`ERROR`])),R=m(new Set),z=m(new Set),B=m(!0),V=m(null),H=null,U=e=>{let t=e.match(/- ([^-]+) - (?:DEBUG|INFO|WARNING|ERROR) -/);return t?t[1].trim():`Unknown`},ee=e=>{let t=e.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3} - [^-]+ - (?:DEBUG|INFO|WARNING|ERROR) - (.+)$/);return t?t[1]:e},W=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},G=async()=>{try{let e=await h.getLogs();if(e.logs&&e.logs.length>0){F.value=e.logs;let t=new Set;F.value.forEach(e=>{let n=U(e.message);t.add(n)});let n=new Set;F.value.forEach(e=>{n.add(e.level)}),I.value.size===0&&(I.value=new Set(t));let r=!W(R.value,t),i=!W(z.value,n);r&&(R.value=t),i&&(z.value=n),V.value=null}}catch(e){console.error(`Error loading logs:`,e),V.value=e instanceof Error?e.message:`Failed to load logs`}finally{B.value=!1}},K=s(()=>F.value.filter(e=>{let t=U(e.message),n=I.value.has(t),r=L.value.has(e.level);return n&&r})),q=s(()=>Array.from(R.value).sort()),J=s(()=>{let e=[`ERROR`,`WARNING`,`WARN`,`INFO`,`DEBUG`];return Array.from(z.value).sort((t,n)=>{let r=e.indexOf(t),i=e.indexOf(n);return r!==-1&&i!==-1?r-i:t.localeCompare(n)})}),Y=e=>{L.value.has(e)?L.value.delete(e):L.value.add(e),L.value=new Set(L.value)},X=e=>new Date(e).toLocaleTimeString(`en-US`,{hour12:!1,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),Z=e=>({ERROR:`text-red-600 dark:text-red-400 bg-red-900/20`,WARNING:`text-yellow-600 dark:text-yellow-400 bg-yellow-900/20`,WARN:`text-yellow-600 dark:text-yellow-400 bg-yellow-900/20`,INFO:`text-blue-600 dark:text-blue-400 bg-blue-900/20`,DEBUG:`text-gray-400 bg-gray-900/20`})[e]||`text-gray-400 bg-gray-900/20`,Q=(e,t)=>t?{ERROR:`bg-red-100 dark:bg-red-500/20 text-red-600 dark:text-red-400 border-red-500/50`,WARNING:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-600 dark:text-yellow-400 border-yellow-500/50`,WARN:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-600 dark:text-yellow-400 border-yellow-500/50`,INFO:`bg-blue-500/20 text-blue-600 dark:text-blue-400 border-blue-500/50`,DEBUG:`bg-gray-500/20 text-gray-400 border-gray-500/50`}[e]||`bg-primary/20 text-primary border-primary/50`:`bg-background-mute dark:bg-white/5 text-content-muted dark:text-white/60 border-stroke-subtle dark:border-white/20 hover:bg-stroke-subtle dark:hover:bg-white/10`,$=e=>{I.value.has(e)?I.value.delete(e):I.value.add(e),I.value=new Set(I.value)},te=()=>{I.value=new Set(R.value)},ne=()=>{I.value=new Set},re=()=>{L.value=new Set(z.value)},ie=()=>{L.value=new Set},ae=()=>{H&&clearInterval(H),H=setInterval(G,5e3)},oe=()=>{H&&=(clearInterval(H),null)};return t(()=>{G(),ae()}),p(()=>{oe()}),(t,i)=>(f(),d(`div`,g,[u(`div`,_,[u(`div`,v,[i[1]||=u(`div`,null,[u(`h1`,{class:`text-content-primary dark:text-content-primary text-2xl font-semibold mb-2`},` System Logs `),u(`p`,{class:`text-content-secondary dark:text-content-muted`},` Real-time system events and diagnostics `)],-1),u(`button`,{onClick:G,disabled:B.value,class:`flex items-center gap-2 px-4 py-2 bg-primary/20 hover:bg-primary/30 text-primary border border-primary/50 rounded-lg transition-colors disabled:opacity-50`},[(f(),d(`svg`,{class:o([`w-4 h-4`,{"animate-spin":B.value}]),fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[...i[0]||=[u(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`},null,-1)]],2)),c(` `+n(B.value?`Loading...`:`Refresh`),1)],8,y)]),u(`div`,b,[u(`div`,{class:`flex flex-wrap items-center gap-3 mb-4`},[i[2]||=u(`span`,{class:`text-content-primary dark:text-content-primary font-medium`},`Filters:`,-1),u(`button`,{onClick:te,class:`px-3 py-1 text-xs bg-accent-green/20 hover:bg-accent-green/30 text-accent-green border border-accent-green/50 rounded transition-colors`},` All Loggers `),u(`button`,{onClick:ne,class:`px-3 py-1 text-xs bg-accent-red/20 hover:bg-accent-red/30 text-accent-red border border-accent-red/50 rounded transition-colors`},` Clear Loggers `),i[3]||=u(`div`,{class:`w-px h-4 bg-white/20 mx-1`},null,-1),u(`button`,{onClick:re,class:`px-3 py-1 text-xs bg-accent-green/20 hover:bg-accent-green/30 text-accent-green border border-accent-green/50 rounded transition-colors`},` All Levels `),u(`button`,{onClick:ie,class:`px-3 py-1 text-xs bg-accent-red/20 hover:bg-accent-red/30 text-accent-red border border-accent-red/50 rounded transition-colors`},` Clear Levels `)]),u(`div`,x,[(f(!0),d(l,null,e(q.value,e=>(f(),d(`button`,{key:`logger-`+e,onClick:t=>$(e),class:o([`px-3 py-1 text-xs border rounded-full transition-colors`,I.value.has(e)?`bg-primary/20 text-primary border-primary/50`:`bg-background-mute dark:bg-white/5 text-content-secondary dark:text-content-muted border-stroke-subtle dark:border-stroke/20 hover:bg-stroke-subtle dark:hover:bg-white/10`])},n(e),11,S))),128)),q.value.length>0&&J.value.length>0?(f(),d(`div`,C)):a(``,!0),(f(!0),d(l,null,e(J.value,e=>(f(),d(`button`,{key:`level-`+e,onClick:t=>Y(e),class:o([`px-3 py-1 text-xs border rounded-full transition-colors font-medium`,L.value.has(e)?Q(e,!0):Q(e,!1)])},n(e),11,w))),128))])])]),u(`div`,T,[B.value&&F.value.length===0?(f(),d(`div`,E,[...i[4]||=[u(`div`,{class:`animate-spin rounded-full h-8 w-8 border-b-2 border-primary mx-auto mb-4`},null,-1),u(`p`,{class:`text-content-secondary dark:text-content-muted`},`Loading system logs...`,-1)]])):V.value?(f(),d(`div`,D,[i[5]||=u(`div`,{class:`text-red-600 dark:text-red-400 mb-4`},[u(`svg`,{class:`w-12 h-12 mx-auto mb-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[u(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})])],-1),i[6]||=u(`h3`,{class:`text-content-primary dark:text-content-primary text-lg font-medium mb-2`},` Error Loading Logs `,-1),u(`p`,O,n(V.value),1),u(`button`,{onClick:G,class:`px-4 py-2 bg-red-100 dark:bg-red-500/20 hover:bg-red-500/30 text-red-600 dark:text-red-400 border border-red-500/50 rounded-lg transition-colors`},` Try Again `)])):(f(),d(`div`,k,[K.value.length===0?(f(),d(`div`,A,[...i[7]||=[r(`<div class="text-content-muted dark:text-content-muted mb-4"><svg class="w-12 h-12 mx-auto mb-4 opacity-50" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></div><h3 class="text-content-primary dark:text-content-primary text-lg font-medium mb-2"> No Logs to Display </h3><p class="text-content-secondary dark:text-content-muted"> No logs match the current filter criteria. </p>`,3)]])):(f(),d(`div`,j,[(f(!0),d(l,null,e(K.value,(e,t)=>(f(),d(`div`,{key:t,class:`flex items-start gap-4 p-4 hover:bg-background-mute dark:hover:bg-stroke/5 transition-colors font-mono text-sm`},[u(`span`,M,` [`+n(X(e.timestamp))+`] `,1),u(`span`,N,n(U(e.message)),1),u(`span`,{class:o([`flex-shrink-0 px-2 py-1 text-xs font-medium rounded`,Z(e.level)])},n(e.level),3),u(`span`,P,n(ee(e.message)),1)]))),128))]))]))])]))}});export{F as default};