mirror of
https://github.com/pyMC-dev/pyMC_Repeater.git
synced 2026-08-07 09:23:06 +02:00
1 line
19 KiB
JavaScript
1 line
19 KiB
JavaScript
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-GPpxWKdp.js";import{t as se}from"./Spinner-CMJUE3iy.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(null),F=null,gt=ae(),I=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},L=e=>{if(e.logger)return e.logger;let t=e.message.match(/- ([^-]+) - (?:DEBUG|INFO|WARNING|ERROR|WARN) -/);return t?t[1].trim():`Unknown`},R=e=>{let t=e.message.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3} - [^-]+ - (?:DEBUG|INFO|WARNING|ERROR|WARN) - (.+)$/);return t?t[1]:e.message},_t=e=>new Date(e).toLocaleTimeString(`en-US`,{hour12:!1,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),z=e=>new Date(e).toLocaleString(`en-US`,{hour12:!1,year:`numeric`,month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),vt=e=>({ERROR:`text-accent-red bg-accent-red/opacity-light border-accent-red/opacity-medium`,WARNING:`text-accent-amber bg-accent-amber/opacity-light border-accent-amber/opacity-medium`,WARN:`text-accent-amber bg-accent-amber/opacity-light border-accent-amber/opacity-medium`,INFO:`text-accent-cyan bg-accent-cyan/opacity-light border-accent-cyan/opacity-medium`,DEBUG:`text-content-muted bg-background-mute/opacity-light border-slate-500/20`})[e]||`text-content-muted bg-background-mute/opacity-light border-slate-500/20`,yt=(e,t)=>t?{ERROR:`border-accent-red/opacity-heavy bg-accent-red/opacity-light text-accent-red`,WARNING:`border-accent-amber/opacity-heavy bg-accent-amber/opacity-light text-accent-amber`,WARN:`border-accent-amber/opacity-heavy bg-accent-amber/opacity-light text-accent-amber`,INFO:`border-accent-cyan/opacity-heavy bg-accent-cyan/opacity-light text-accent-cyan`,DEBUG:`border-slate-500/40 bg-background-mute/opacity-light text-content-muted`}[e]||`border-primary/opacity-heavy bg-primary/opacity-light text-primary`:`border-stroke-subtle dark:border-stroke/opacity-medium text-content-muted bg-background-mute/opacity-heavy dark:bg-white/opacity-subtle hover:bg-background-mute dark:hover:bg-white/opacity-light`,bt=c(()=>({connecting:`border-accent-amber/opacity-medium bg-accent-amber/opacity-light text-accent-amber`,live:`border-accent-green/opacity-medium bg-accent-green/opacity-light text-accent-green`,paused:`border-stroke/opacity-medium bg-background-mute text-content-muted`,reconnecting:`border-accent-amber/opacity-medium bg-accent-amber/opacity-light text-accent-amber`,offline:`border-accent-red/opacity-medium bg-accent-red/opacity-light text-accent-red`})[w.value]),xt=c(()=>({connecting:`Connecting`,live:`Live`,paused:`Paused`,reconnecting:`Reconnecting`,offline:`Offline`})[w.value]),St=c(()=>{let e=[`ERROR`,`WARNING`,`WARN`,`INFO`,`DEBUG`];return Array.from(b.value).sort((t,n)=>{let r=e.indexOf(t),i=e.indexOf(n);return r!==-1&&i!==-1?r-i:t.localeCompare(n)})}),B=c(()=>{let e=k.value.trim().toLowerCase();return Array.from(y.value).sort().filter(t=>!e||t.toLowerCase().includes(e))}),V=c(()=>{let e=O.value.trim().toLowerCase();return g.value.filter(t=>{let n=L(t),r=_.value.has(n),i=v.value.has(t.level);return!r||!i?!1:e?[n,t.level,R(t),t.exception??``,t.module??``,t.process??``].join(` `).toLowerCase().includes(e):!0})}),H=c(()=>_.value.size),U=c(()=>v.value.size),Ct=c(()=>g.value.length),wt=c(()=>V.value.length),W=c(()=>g.value[g.value.length-1]?.id??0);c(()=>A.value===null?null:g.value.find(e=>e.id===A.value)??null);function G(){if(!N.value)return!0;let e=N.value;return e.scrollHeight-e.scrollTop-e.clientHeight<32}function K(e=!1){re(()=>{let t=N.value;t&&(t.scrollTop=t.scrollHeight,e&&(E.value=!0,D.value=0))})}function Tt(e){let t=new Set,n=new Set;e.forEach(e=>{t.add(L(e)),n.add(e.level)});let r=_.value.size===0||I(_.value,y.value),i=v.value.size===0||I(v.value,b.value);y.value=t,b.value=n,r||_.value.size===0?_.value=new Set(t):_.value=new Set(Array.from(_.value).filter(e=>t.has(e))),i||v.value.size===0?v.value=new Set(n):v.value=new Set(Array.from(v.value).filter(e=>n.has(e)))}function Et(e){return{id:typeof e.id==`number`?e.id:void 0,message:String(e.message??``),timestamp:String(e.timestamp??new Date().toISOString()),level:String(e.level??`INFO`),logger:e.logger?String(e.logger):void 0,exception:e.exception?String(e.exception):void 0,module:e.module?String(e.module):void 0,pathname:e.pathname?String(e.pathname):void 0,line:typeof e.line==`number`?e.line:void 0,thread:e.thread?String(e.thread):void 0,process:e.process?String(e.process):void 0}}function q(e,t={}){let n=e.map(Et),r=G(),i=0;if(t.replace)g.value=n.sort((e,t)=>(e.id??0)-(t.id??0)).slice(-h);else{let e=new Set(g.value.map(e=>e.id).filter(e=>typeof e==`number`)),t=n.filter(t=>typeof t.id==`number`?!e.has(t.id):!0);if(i=t.length,!t.length)return;g.value=[...g.value,...t].sort((e,t)=>(e.id??0)-(t.id??0)).slice(-h)}Tt(g.value),A.value!==null&&!g.value.some(e=>e.id===A.value)&&(A.value=null),t.fromStream&&i>0?E.value&&r?K():D.value+=i:E.value&&K()}async function J(e=`refresh`){e===`initial`?x.value=!0:S.value=!0;try{q((await oe.getLogs()).logs,{replace:!0}),C.value=null}catch(e){console.error(`Error loading logs:`,e),C.value=e instanceof Error?e.message:`Failed to load logs`,g.value.length||(w.value=`offline`)}finally{x.value=!1,S.value=!1}}function Y(){F&&=(clearTimeout(F),null)}function X(e=`paused`){Y(),P.value&&=(P.value.close(),null),w.value=e}function Dt(){T.value&&(Y(),w.value=`reconnecting`,F=setTimeout(()=>{F=null,Z()},ht))}function Z(){if(!T.value){w.value=`paused`;return}X(`connecting`);let e=m(),t=new URLSearchParams;e&&t.set(`token`,e),W.value>0&&t.set(`since_id`,String(W.value));let n=t.toString(),r=`/api/logs_stream${n?`?${n}`:``}`,i=new EventSource(r);P.value=i,i.onopen=()=>{(w.value===`connecting`||w.value===`reconnecting`)&&(w.value=`live`),M.value=new Date().toISOString(),C.value=null},i.addEventListener(`connected`,e=>{if(w.value=`live`,M.value=new Date().toISOString(),e instanceof MessageEvent&&e.data)try{(JSON.parse(e.data).latest_id??0)>W.value&&J(`refresh`)}catch{}}),i.addEventListener(`log`,e=>{if(e instanceof MessageEvent)try{let t=JSON.parse(e.data);t.entry&&q([t.entry],{fromStream:!0}),w.value=`live`,M.value=new Date().toISOString(),C.value=null}catch(e){console.error(`Failed to parse log stream payload:`,e)}}),i.addEventListener(`keepalive`,()=>{M.value=new Date().toISOString(),w.value!==`paused`&&(w.value=`live`)}),i.onerror=()=>{if(!T.value){X(`paused`);return}if(!m()||ie()){X(`offline`),gt.handleAuthFailure(`expired`);return}P.value&&=(P.value.close(),null),Dt()}}function Ot(){T.value=!T.value,T.value?Z():X(`paused`)}function kt(){let e=G();E.value=e,e&&(D.value=0)}function Q(){K(!0)}function At(e){A.value=A.value===e.id?null:e.id??null}function jt(e){v.value.has(e)?v.value.delete(e):v.value.add(e),v.value=new Set(v.value)}function Mt(e){_.value.has(e)?_.value.delete(e):_.value.add(e),_.value=new Set(_.value)}function $(){_.value=new Set(y.value)}function Nt(){_.value=new Set}function Pt(){v.value=new Set(b.value)}function Ft(){v.value=new Set}function It(){O.value=``,k.value=``,$(),Pt()}return e(async()=>{await J(`initial`),Z()}),ne(()=>{X(`offline`)}),(e,i)=>(r(),f(`div`,ce,[d(`div`,le,[d(`div`,ue,[i[8]||=d(`div`,null,[d(`h1`,{class:`text-content-primary text-2xl font-semibold mb-2`},` System Logs `),d(`p`,{class:`text-content-secondary dark:text-content-muted max-w-2xl`},` Live tail for repeater logs with pause, follow, search, and logger-level filtering. `)],-1),d(`div`,de,[d(`span`,{class:o([`inline-flex items-center gap-2 rounded-full border px-3 py-1.5 text-xs font-semibold`,bt.value])},[i[6]||=d(`span`,{class:`h-2 w-2 rounded-full bg-current`},null,-1),l(` `+a(xt.value),1)],2),d(`button`,{onClick:Ot,class:`btn-secondary`},a(T.value?`Pause Live`:`Resume Live`),1),d(`button`,{onClick:i[0]||=e=>J(`refresh`),disabled:S.value,class:`btn-primary flex items-center gap-2`},[(r(),f(`svg`,{class:o([`w-4 h-4`,{"animate-spin":S.value}]),fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[...i[7]||=[d(`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)),l(` `+a(S.value?`Refreshing…`:`Refresh Snapshot`),1)],8,fe)])]),d(`div`,pe,[d(`div`,me,[i[9]||=d(`div`,{class:`text-xs uppercase tracking-wide text-content-muted`},`Visible`,-1),d(`div`,he,a(wt.value),1),d(`div`,ge,`of `+a(Ct.value)+` retained lines`,1)]),d(`div`,_e,[i[10]||=d(`div`,{class:`text-xs uppercase tracking-wide text-content-muted`},`Logger Filters`,-1),d(`div`,ve,a(H.value),1),d(`div`,ye,`of `+a(y.value.size)+` selected`,1)]),d(`div`,be,[i[11]||=d(`div`,{class:`text-xs uppercase tracking-wide text-content-muted`},`Level Filters`,-1),d(`div`,xe,a(U.value),1),d(`div`,Se,`of `+a(b.value.size)+` selected`,1)]),d(`div`,Ce,[i[12]||=d(`div`,{class:`text-xs uppercase tracking-wide text-content-muted`},`Last Activity`,-1),d(`div`,we,a(M.value?z(M.value):`Waiting for stream`),1),d(`div`,Te,a(D.value?`${D.value} new line${D.value===1?``:`s`} waiting`:`Up to date`),1)])]),d(`div`,Ee,[d(`div`,De,[d(`div`,Oe,[i[13]||=d(`label`,{class:`block text-xs font-semibold uppercase tracking-wide text-content-muted mb-2`},` Search Logs `,-1),n(d(`input`,{"onUpdate:modelValue":i[1]||=e=>O.value=e,type:`text`,class:`cfg-input`,placeholder:`Search logger, message, exception, module...`},null,512),[[p,O.value]])]),d(`div`,ke,[i[14]||=d(`label`,{class:`block text-xs font-semibold uppercase tracking-wide text-content-muted mb-2`},` Actions `,-1),d(`div`,Ae,[d(`button`,{onClick:i[2]||=e=>E.value=!E.value,class:`btn-secondary`},a(E.value?`Following Tail`:`Follow Off`),1),D.value?(r(),f(`button`,{key:0,onClick:Q,class:`btn-primary`},` Jump to Latest (`+a(D.value)+`) `,1)):s(``,!0),d(`button`,{onClick:It,class:`btn-secondary`},`Reset Filters`)])])]),d(`div`,je,[d(`div`,Me,[d(`div`,Ne,[d(`div`,null,[i[15]||=d(`div`,{class:`text-sm font-semibold text-content-primary`},`Level Filters`,-1),d(`div`,Pe,a(U.value)+` of `+a(b.value.size)+` selected`,1)]),d(`div`,{class:`flex items-center gap-2`},[d(`button`,{onClick:Pt,class:`btn-success-xs`},`All`),d(`button`,{onClick:Ft,class:`btn-danger-xs`},`None`)])]),d(`div`,Fe,[(r(!0),f(u,null,t(St.value,e=>(r(),f(`button`,{key:e,onClick:t=>jt(e),class:o([`px-3 py-1.5 text-xs border rounded-full transition-colors font-semibold`,yt(e,v.value.has(e))])},a(e),11,Ie))),128))])]),d(`div`,Le,[d(`button`,{onClick:i[3]||=e=>j.value=!j.value,class:`w-full flex items-center justify-between px-4 py-3 text-left`},[d(`div`,null,[i[16]||=d(`div`,{class:`text-sm font-semibold text-content-primary`},`Logger Filters`,-1),d(`div`,Re,a(H.value)+` of `+a(y.value.size)+` selected`,1)]),(r(),f(`svg`,{class:o([`w-4 h-4 text-content-muted transition-transform`,{"rotate-180":j.value}]),fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[...i[17]||=[d(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M19 9l-7 7-7-7`},null,-1)]],2))]),j.value?(r(),f(`div`,ze,[d(`div`,Be,[n(d(`input`,{"onUpdate:modelValue":i[4]||=e=>k.value=e,type:`text`,class:`cfg-input lg:max-w-sm`,placeholder:`Find a logger...`},null,512),[[p,k.value]]),d(`div`,{class:`flex flex-wrap items-center gap-2`},[d(`button`,{onClick:$,class:`btn-success-xs`},`All Loggers`),d(`button`,{onClick:Nt,class:`btn-danger-xs`},`Clear Loggers`)])]),d(`div`,Ve,[B.value.length?(r(),f(`div`,He,[(r(!0),f(u,null,t(B.value,e=>(r(),f(`button`,{key:e,onClick:t=>Mt(e),class:o([`px-3 py-1.5 text-xs border rounded-full transition-colors`,_.value.has(e)?`bg-primary/opacity-light border-primary/opacity-heavy text-primary`:`bg-background-main dark:bg-white/opacity-subtle border-stroke-subtle dark:border-stroke/opacity-medium text-content-secondary dark:text-content-muted hover:bg-background-mute dark:hover:bg-white/opacity-light`])},a(e),11,Ue))),128))])):(r(),f(`div`,We,` No loggers match this filter. `))])])):s(``,!0)])])])]),d(`div`,Ge,[x.value&&g.value.length===0?(r(),f(`div`,Ke,[te(se,{class:`mx-auto mb-4`}),i[18]||=d(`p`,{class:`text-content-secondary dark:text-content-muted`},`Loading log history...`,-1)])):C.value&&g.value.length===0?(r(),f(`div`,qe,[i[19]||=d(`div`,{class:`text-accent-red mb-4`},[d(`svg`,{class:`w-12 h-12 mx-auto mb-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[d(`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[20]||=d(`h3`,{class:`text-content-primary text-lg font-medium mb-2`},`Error Loading Logs`,-1),d(`p`,Je,a(C.value),1),d(`button`,{onClick:i[5]||=e=>J(`refresh`),class:`btn-primary`},`Try Again`)])):(r(),f(`div`,Ye,[d(`div`,{ref_key:`logContainer`,ref:N,class:`max-h-[70vh] overflow-y-auto bg-background-mute dark:bg-background-mute/opacity-heavy text-content-primary`,onScroll:kt},[V.value.length===0?(r(),f(`div`,Xe,[...i[21]||=[d(`h3`,{class:`text-lg font-medium text-content-primary mb-2`},`No Logs to Display`,-1),d(`p`,{class:`text-sm text-content-muted`},`The current search and filter settings removed every retained line.`,-1)]])):(r(),f(`div`,Ze,[(r(!0),f(u,null,t(V.value,(e,t)=>(r(),f(`div`,{key:e.id??`${e.timestamp}-${t}`,class:o([`px-3 py-1 transition-colors cursor-pointer`,A.value===e.id?`bg-stroke-subtle dark:bg-white/opacity-subtle`:`hover:bg-stroke-subtle/50 dark:hover:bg-white/opacity-light`]),onClick:t=>At(e)},[d(`div`,$e,[d(`div`,et,[d(`span`,tt,a(_t(e.timestamp)),1),d(`span`,nt,a(L(e)),1),d(`span`,{class:o([`px-1.5 py-0.5 text-[10px] font-semibold rounded-full border`,vt(e.level)])},a(e.level),3)]),d(`div`,rt,[d(`div`,it,a(R(e)),1),A.value===e.id?(r(),f(`div`,at,[d(`div`,ot,[d(`div`,null,[i[22]||=d(`div`,{class:`uppercase tracking-wide text-content-muted`},`Timestamp`,-1),d(`div`,st,a(z(e.timestamp)),1)]),d(`div`,null,[i[23]||=d(`div`,{class:`uppercase tracking-wide text-content-muted`},`Logger`,-1),d(`div`,ct,a(L(e)),1)]),d(`div`,null,[i[24]||=d(`div`,{class:`uppercase tracking-wide text-content-muted`},`Module`,-1),d(`div`,lt,a(e.module||`—`),1)]),d(`div`,null,[i[25]||=d(`div`,{class:`uppercase tracking-wide text-content-muted`},`Line`,-1),d(`div`,ut,a(e.line??`—`),1)])]),d(`div`,null,[i[26]||=d(`div`,{class:`uppercase tracking-wide text-content-muted mb-1`},`Full Message`,-1),d(`pre`,dt,a(e.message),1)]),e.exception?(r(),f(`div`,ft,[i[27]||=d(`div`,{class:`uppercase tracking-wide text-content-muted mb-1`},`Exception`,-1),d(`pre`,pt,a(e.exception),1)])):s(``,!0)])):s(``,!0)])])],10,Qe))),128))]))],544),!E.value&&D.value?(r(),f(`div`,mt,[d(`button`,{onClick:Q,class:`rounded-full border border-primary/opacity-heavy bg-primary/opacity-medium hover:bg-primary/opacity-medium text-primary px-4 py-2 shadow-lg`},a(D.value)+` new line`+a(D.value===1?``:`s`),1)])):s(``,!0)]))])]))}});export{g as default}; |