PageSourceSearch

https://mobilingo.ai/assets/chunks/chunk-WyKnTzBf.js

js mobilingo.ai collected 2026-09-24 10:49:32 UTC 40,153 bytes, 34 lines download raw bytes

1import{r as c,ae as ze,j as t,B as Q,ak as ae,E as we,_ as Ue,h as V,I as ie,a7 as ye,J as Z,m as Ge,aJ as Je,M as Qe,T as Ve,a4 as ve,am as je}from"../entries/pages_index.DwH1fEUc.js";import{S as Ye}from"./chunk-B5przYSq.js";import{u as Ze}from"./chunk-Dk9tB3xN.js";import{F as Ke}from"./chunk-BdhSanBx.js";import"./chunk-BugajZ7n.js";/* empty css              *//* empty css              *//* empty css              *//* empty css              *//* empty css              */function Xe({title:_,titleId:L,...k},v){return c.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:v,"aria-labelledby":L},k),_?c.createElement("title",{id:L},_):null,c.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z"}))}const et=c.forwardRef(Xe),m={INFO:"info",WARN:"warn",ERROR:"error"},tt=[{id:"database",name:"Database",enabled:!0,color:"#FF6B6B",messageCount:0,messagesPerMinute:0,enabledLevels:[m.INFO,m.WARN,m.ERROR]},{id:"system",name:"System",enabled:!0,color:"#4ECDC4",messageCount:0,messagesPerMinute:0,enabledLevels:[m.INFO,m.WARN,m.ERROR]},{id:"api",name:"API",enabled:!0,color:"#4285F4",messageCount:0,messagesPerMinute:0,enabledLevels:[m.INFO,m.WARN,m.ERROR]},{id:"licensing",name:"Licensing",enabled:!0,color:"#9C27B0",messageCount:0,messagesPerMinute:0,enabledLevels:[m.INFO,m.WARN,m.ERROR]},{id:"subscriptions",name:"Subscriptions",enabled:!0,color:"#FF9800",messageCount:0,messagesPerMinute:0,enabledLevels:[m.INFO,m.WARN,m.ERROR]},{id:"google-play",name:"Google Play",enabled:!0,color:"#4CAF50",messageCount:0,messagesPerMinute:0,enabledLevels:[m.INFO,m.WARN,m.ERROR]},{id:"apple-store",name:"Apple Store",enabled:!0,color:"#007AFF",messageCount:0,messagesPerMinute:0,enabledLevels:[m.INFO,m.WARN,m.ERROR]}],st={maxReconnectAttempts:10},de={searchPlaceholder:"Search log messages...",filterPlaceholder:"Filter out (comma-separated)...",channelSearchPlaceholder:"Search channels..."},_e=[{message:"Server startup complete",channel:"system",repeat:1,level:m.INFO,callstack:`at ServerBootstrap.start (server.js:45:12)
2    at Application.boot (app.js:23:8)
3    at main (index.js:15:5)`},{message:"Heartbeat check",channel:"system",repeat:5,level:m.INFO,callstack:`at HealthMonitor.check (monitor.js:78:15)
4    at setInterval (timer.js:12:3)`},{message:"Database connection established successfully with connection pool size of 10, timeout configured to 30 seconds, and retry mechanism enabled for handling temporary connection failures",channel:"database",repeat:1,level:m.INFO,callstack:`at DatabaseManager.connect (db.js:156:20)
5    at ConnectionPool.initialize (pool.js:89:14)
6    at DatabaseService.start (service.js:34:7)`},{message:"Cache hit",channel:"database",repeat:8,level:m.INFO,callstack:`at RedisCache.get (cache.js:45:8)
7    at DataService.fetch (data.js:23:12)`},{message:"Processing incoming webhook from payment provider Stripe with event type payment_intent.succeeded, amount $149.99, customer ID cus_ABC123, attempting to update order status and send confirmation email to customer",channel:"api",repeat:1,level:m.INFO,callstack:`at WebhookHandler.process (webhook.js:234:16)
8    at PaymentProcessor.handleStripe (payment.js:67:9)
9    at ExpressRouter.post (routes.js:45:13)`,structuredData:{provider:"stripe",eventType:"payment_intent.succeeded",amount:149.99,currency:"USD",customerId:"cus_ABC123",paymentIntent:"pi_1234567890abcdef",metadata:{orderId:"order_789",customerEmail:"[email protected]",productIds:["prod_123","prod_456"]}}},{message:"Queue size: 12",channel:"system",repeat:3,level:m.WARN,callstack:`at QueueMonitor.checkSize (queue.js:98:11)
10    at WorkerManager.monitor (worker.js:145:7)`},{message:"User login failed",channel:"api",repeat:1,level:m.WARN,callstack:`at AuthService.authenticate (auth.js:87:14)
11    at LoginController.handleLogin (login.js:56:9)
12    at ExpressRouter.post (routes.js:23:5)`},{message:"Memory usage: 67%",channel:"system",repeat:12,level:m.WARN,callstack:`at SystemMonitor.checkMemory (monitor.js:123:19)
13    at ResourceWatcher.poll (watcher.js:78:15)`},{message:"Critical error occurred during batch processing job for customer data synchronization: Unable to connect to external CRM system after 5 retry attempts, affecting 2,847 customer records scheduled for update",channel:"database",repeat:1,level:m.ERROR,callstack:`at CRMSyncService.syncCustomers (crm.js:456:23)
14    at BatchProcessor.processChunk (batch.js:234:12)
15    at DataSyncJob.execute (jobs.js:89:8)
16    at JobScheduler.runJob (scheduler.js:167:14)`},{message:"API rate limit exceeded",channel:"api",repeat:6,level:m.WARN,callstack:`at RateLimiter.checkLimit (limiter.js:67:10)
17    at ApiMiddleware.enforce (middleware.js:34:7)
18    at ExpressRouter.use (routes.js:12:3)`},{message:"Backup process started",channel:"system",repeat:1,level:m.INFO,callstack:`at BackupService.start (backup.js:78:13)
19    at CronJob.execute (cron.js:45:9)
20    at ScheduleManager.run (schedule.js:123:6)`},{message:"Processing transaction validation for payment method ending in 4532, amount $299.99, merchant verification passed, fraud detection score 0.23, proceeding with authorization request to payment gateway",channel:"api",repeat:2,level:m.INFO,callstack:`at PaymentValidator.validate (validator.js:145:18)
21    at TransactionProcessor.process (transaction.js:89:12)
22    at PaymentGateway.authorize (gateway.js:234:8)`},{message:"Database connection timeout",channel:"database",repeat:1,level:m.ERROR,callstack:`at Connection.timeout (connection.js:234:15)
23    at ConnectionPool.acquire (pool.js:123:9)
24    at DatabaseService.query (service.js:78:11)
25    at UserRepository.findById (repository.js:45:7)`},{message:"Invalid authentication token",channel:"api",repeat:1,level:m.ERROR,callstack:`at TokenValidator.verify (token.js:89:12)
26    at AuthMiddleware.authenticate (auth.js:56:8)
27    at ExpressRouter.use (routes.js:34:5)
28    at Application.handle (app.js:123:11)`},{message:"📊 License synchronization completed",channel:"licensing",repeat:1,level:m.INFO,callstack:`at ProductLicensing.syncLicenseStatusWithSubscription (index.js:702:16)
29    at GooglePlayEventAdapter.syncLicenseStatus (event-adapter.js:34:12)
30    at GooglePlayEventAdapter.handleCancellation (event-adapter.js:427:8)`,structuredData:{subscriptionId:"686943ab5ca6bb7f37ef1db0",subscriptionStatus:"canceled",licenseStatus:"canceled",syncedCount:2,totalLicenses:3,userId:"672261b62d9ed95689baff66",source:"google_play_adapter"}},{message:"🔄 Processing subscription cancellation",channel:"google-play",repeat:1,level:m.INFO,callstack:`at GooglePlayEventAdapter.handleCancellation (event-adapter.js:408:8)
31    at GooglePlayEventAdapter.processEvent (event-adapter.js:119:12)
32    at WebhookController.handleGooglePlay (webhook.js:45:9)`,structuredData:{userId:"672261b62d9ed95689baff66",subscriptionId:"686943ab5ca6bb7f37ef1db0",status:"canceled",accessNote:"User maintains access until expiry per Google Play policy",source:"google_play_adapter",platform:"android",notificationType:3,purchaseToken:"unique_purchase_token_123"}}],at=(_,{loadThreshold:L=150,initialPageSize:k=100})=>{const[v,$]=c.useState([]),[N,B]=c.useState(!1),[P,A]=c.useState({before:!0,after:!0}),[z,I]=c.useState(0),[D,f]=c.useState(!0),h=c.useRef(null),E=c.useRef(0),H=c.useRef(!1),d=c.useCallback(async(b={})=>{B(!0);try{const x=await _({...b,limit:k,initialLoad:!0});return x.success?($(x.logs),A({before:x.hasBefore!==!1,after:x.hasAfter!==!1}),I(x.totalCount||0),f(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(h.current){const{scrollHeight:s,clientHeight:l}=h.current,i=Math.max(0,s-l);h.current.scrollTop=i,f(!0)}})}),x):(console.error("Failed to load initial logs: result not successful",x),x||{success:!1,error:"No result returned"})}catch(x){return console.error("Failed to load initial logs:",x),{success:!1,error:x.message}}finally{B(!1)}},[_,k]),w=c.useCallback(async(b={})=>
32{if(N||!P.before)return;const x=v[0];if(x){B(!0);try{const s=await _({...b,cursor:{timestamp:x.timestamp,sequenceId:x.sequenceId},direction:"before",limit:50});if(s.success&&s.logs.length>0){const l=h.current;let i=0,o=0;l&&(i=l.scrollHeight,o=l.scrollTop),$(y=>{const O=new Set(y.map(M=>M.id));return[...s.logs.filter(M=>!O.has(M.id)),...y]});const u=(y=0)=>{if(!l||i===0||y>10)return;const T=l.scrollHeight-i;if(T>0){H.current=!0;const W=o+T;l.scrollTop=W,E.current=W,setTimeout(()=>{H.current=!1},50)}else T===0&&y<5&&setTimeout(()=>u(y+1),10)};requestAnimationFrame(()=>{requestAnimationFrame(()=>{u()})}),A(y=>({...y,before:s.hasBefore!==!1}))}else s.success&&s.logs.length===0&&A(l=>({...l,before:!1}))}catch(s){console.error("Failed to load older logs:",s)}finally{B(!1)}}},[_,N,P.before,v]),j=c.useCallback(async(b={})=>{if(N||!P.after)return;const x=v[v.length-1];if(x){B(!0);try{const s=await _({...b,cursor:{timestamp:x.timestamp,sequenceId:x.sequenceId},direction:"after",limit:50});s.success&&s.logs.length>0&&($(l=>{const i=new Set(l.map(u=>u.id)),o=s.logs.filter(u=>!i.has(u.id));return[...l,...o]}),A(l=>({...l,after:s.hasAfter!==!1})))}catch(s){console.error("Failed to load newer logs:",s)}finally{B(!1)}}},[_,N,P.after,v]),R=c.useCallback(b=>{const x=h.current&&(()=>{const{scrollTop:s,scrollHeight:l,clientHeight:i}=h.current,o=l-s-i;return v.length<5?!0:o<=5})();$(s=>s.some(i=>i.id===b.id)?s:[...s,b]),x&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{if(h.current){const{scrollHeight:s,clientHeight:l}=h.current,i=s-l;h.current.scrollTop=Math.max(0,i),f(!0)}})})},[v.length]),S=c.useCallback(b=>{if(!h.current)return;const{scrollTop:x,scrollHeight:s,clientHeight:l}=h.current,i=x<=0,o=x>=s-l-1;if(i&&b.deltaY<0||o&&b.deltaY>0)return b.preventDefault(),b.stopPropagation(),!1},[]),F=c.useCallback(b=>{if(!h.current)return;const x=b.touches[0];h.current.touchStartY=x.clientY},[]),g=c.useCallback(b=>{if(!h.current||!h.current.touchStartY)return;const{scrollTop:x,scrollHeight:s,clientHeight:l}=h.current,i=b.touches[0],o=h.current.touchStartY-i.clientY,u=x<=0,y=x>=s-l-1;if(u&&o<0||y&&o>0)return b.preventDefault(),b.stopPropagation(),!1},[]),K=c.useCallback(()=>{if(!h.current||N||H.current)return;const{scrollTop:b,scrollHeight:x,clientHeight:s}=h.current,l=x-b-s,i=b<E.current,o=b>E.current;E.current=b;const u=l<=5;u!==D&&f(u);const O=b/(x-s)<.25;i&&O&&!N&&P.before&&w(),o&&l<L&&P.after&&!N&&j()},[N,L,w,j,P.after,D]),Y=c.useCallback(()=>{$([]),A({before:!0,after:!0}),I(0),f(!0)},[]),U=c.useCallback(()=>{h.current&&requestAnimationFrame(()=>{if(h.current){const{scrollHeight:b,clientHeight:x}=h.current,s=Math.max(0,b-x);h.current.scrollTop=s,f(!0)}})},[]);return{logs:v,isLoading:N,totalCount:z,hasMore:P,shouldAutoScroll:D,loadInitial:d,loadOlderLogs:w,loadNewerLogs:j,addRealtimeLog:R,clearLogs:Y,scrollToBottom:U,scrollRef:h,handleScroll:K,handleWheel:S,handleTouchStart:F,handleTouchMove:g}},nt=()=>{const[_,L]=c.useState([]),[k,v]=c.useState(tt),[$,N]=c.useState(null),[B,P]=c.useState([]),[A,z]=c.useState(null),[I,D]=c.useState({totalLogs:0,memoryBytes:0,formattedMemory:"0 B",callstackCacheSize:0}),{socket:f,connected:h,connecting:E,error:H}=Ze("logs"),d=c.useRef(0),w=s=>{if(s===0)return"0 B";const l=1024,i=["B","KB","MB","GB"],o=Math.floor(Math.log(s)/Math.log(l));return parseFloat((s/Math.pow(l,o)).toFixed(2))+" "+i[o]},j=c.useCallback(async()=>!f||!h?null:new Promise((s,l)=>{f.emit("logs:get_server_time",{},i=>
32{if(i.success&&i.data?.success){const o=i.data.serverTime;z(o),s(o)}else{const o=Date.now();z(o),s(o)}})}),[f,h]),R=c.useCallback(async()=>{if(!(!f||!h))return new Promise((s,l)=>{f.emit("logs:get_channels",{},i=>{if(i.success&&i.data?.success){const o=i.data.channels.map(u=>({id:u.id,name:u.name||u.id,enabled:u.enabled,color:u.color,messageCount:u.messageCount||0,messagesPerSec:u.messagesPerSec||0,messagesPerMinute:u.messagesPerMinute||0,enabledLevels:u.enabledLevels||["info","warn","error"],retention:u.retention}));v(o),i.data.systemStats&&D(i.data.systemStats),s(o)}else{const o=i.error||i.data?.error||"Failed to fetch channels";N(o),l(new Error(o))}})})},[]),S=c.useCallback(async(s={})=>{if(!f||!h){let u=30;for(;(!f||!h)&&u>0;)await new Promise(y=>setTimeout(y,100)),u--;if(!f||!h)return{logs:[],totalCount:0}}const{channels:l=[],levels:i=[],limit:o=1e3}=s;return new Promise((u,y)=>{const O={channels:l,levels:i,limit:o,cursor:s.cursor,direction:s.direction,initialLoad:s.initialLoad};f.emit("logs:get_logs",O,T=>{if(T.success&&T.data?.success){const W=T.data.logs.map(M=>({id:M.id,timestamp:M.timestamp,sequenceId:M.sequenceId,data:M.data,channels:M.channels,level:M.level?M.level.toLowerCase():"info",callstack:M.callstack,metadata:M.metadata,timeSinceLastCall:M.timeSinceLastCall,color:"#666"}));L(W),u({success:!0,logs:W,totalCount:T.data.totalCount||W.length,hasMore:T.data.hasMore||!1,hasBefore:T.data.hasBefore||!1,hasAfter:T.data.hasAfter||!1,cursors:T.data.cursors||null})}else{const W=T.error||T.data?.error||"Failed to fetch logs";N(W),y(new Error(W))}})})},[f,h,A,j]),F=c.useCallback(async s=>await S(s),[S]),g=at(F,{loadThreshold:50,initialPageSize:100}),K=c.useCallback(async(s={})=>(g.clearLogs(),await g.loadInitial(s)),[g]),Y=c.useCallback(async(s=[],l=["INFO","WARN","ERROR"])=>!f||!h?!1:new Promise((i,o)=>{f.emit("logs:subscribe",{channels:s,levels:l},u=>{if(u.success&&u.data?.success)P(y=>[...y,{channels:s,levels:l}]),i(!0);else{const y=u.error||u.data?.error||"Failed to subscribe";N(y),o(new Error(y))}})}),[]),U=c.useCallback(async(s=[])=>!f||!h?(L([]),!0):new Promise((l,i)=>{f.emit("logs:clear_logs",{channels:s},o=>{if(o.success)L([]),l(!0);else{const u=o.error||o.data?.error||"Failed to clear logs";N(u),i(new Error(u))}})}),[]),b=c.useCallback(async(s,l)=>!f||!h?(v(i=>i.map(o=>o.id===s?{...o,...l}:o)),!0):new Promise((i,o)=>{f.emit("logs:toggle_channel",{channelId:s,enabled:l.enabled},u=>{if(u.success)v(y=>y.map(O=>O.id===s?{...O,...l}:O)),i(!0);else{const y=u.error||u.data?.error||"Failed to update channel";N(y),o(new Error(y))}})}),[]);return c.useEffect(()=>{if(!f)return;const s=i=>{const o={...i,level:i.level?i.level.toLowerCase():"info",timeSinceLastCall:i.timeSinceLastCall,color:"#666"};g.addRealtimeLog(o),v(u=>u.map(y=>i.channels&&i.channels.includes(y.id)?{...y,messageCount:y.messageCount+1}:y)),D(u=>({...u,totalLogs:u.totalLogs+1,memoryBytes:u.memoryBytes+JSON.stringify(o).length*2,formattedMemory:w(u.memoryBytes+JSON.stringify(o).length*2)}))},l=i=>{i.channels&&i.channels.length>0&&v(o=>o.map(u=>{const y=i.channels.find(O=>O.id===u.id);return y?{...u,messagesPerMinute:y.messagesPerMinute,messagesPerSec:y.messagesPerSec}:u}))};return f.on("logs:message",s),f.on("channel_rates_updated",l),()=>{f.off("logs:message",s),f.off("channel_rates_updated",l)}},[f,g]),c.useEffect(()=>{h&&f&&(f.emit("logs:get_channels",{},s=>{if(s.success&&s.data?.success){const l=s.data.channels.map(o=>({id:o.id,name:o.name||o.id,enabled:o.enabled,color:o.color,messageCount:o.messageCount||0,messagesPerSec:o.messagesPerSec||0,messagesPerMinute:o.messagesPerMinute||0,enabledLevels:o.enabledLevels||["info","warn","error"],retention:o.retention}));v(l),s.data.systemStats&&D(s.data.systemStats);const i=l.filter(o=>o.enabled).map(o=>o.id);Y(i,["INFO","WARN","ERROR"]).catch(o=>{console.error("Failed to subscribe to channels:",o)})}else{const l=s.error||s.data?.error||"Failed to fetch channels";N(l)}}),j().then(s=>K({serverTime:s})).catch(s=>{console.error("Error during initialization:",s)}))},[h,f]),c.useEffect(()=>{if(!h||!f)return;const s=setInterval(()=>{R()},5e3);return()=>clearInterval(s)},[h,f,R]),{isConnected:h,connectionStatus:E?"connecting":h?"connected":"disconnected",connecting:E,error:$||H,logs:g.logs,channels:k,subscriptions:B,serverTime:A,systemStats:I,totalCount:g.totalCount,isLoading:g.isLoading,fetchChannels:R,fetchLogs:K,clearLogs:U,updateChannel:b,subscribeToChannels:Y,getServerTime:j,loadOlderLogs:g.loadOlderLogs,loadNewerLogs:g.loadNewerLogs,scrollToBottom:g.scrollToBottom,scrollRef:g.scrollRef,handleScroll:g.handleScroll,handleWheel:g.handleWheel,handleTouchStart:g.handleTouchStart,handleTouchMove:g.handleTouchMove,shouldAutoScroll:g.shouldAutoScroll,reconnectAttempts:d.current,maxReconnectAttempts:st.maxReconnectAttempts,socket:f}},rt=({data:_,maxDepth:L=10,initialExpandedDepth:k=2,compact:v=!1,className:$="",onCopy:N=null})=>{const[B,P]=c.useState(new Set),[A,z]=c.useState(new Set);ze.useEffect(()=>{if(_&&typeof _=="object"&&k>0){const d=new Set,w=(j,R="",S=0)=>{S>=k||S>
32=L||j&&typeof j=="object"&&(d.add(R),Object.keys(j).forEach(F=>{const g=R?`${R}.${F}`:F;j[F]&&typeof j[F]=="object"&&w(j[F],g,S+1)}))};w(_),P(d)}},[_,k,L]);const I=d=>{P(w=>{const j=new Set(w);return j.has(d)?j.delete(d):j.add(d),j})},D=async(d,w)=>{try{const j=typeof d=="string"?d:JSON.stringify(d,null,2);await navigator.clipboard.writeText(j),z(R=>new Set(R).add(w)),N?N(j,w):V({type:"success",title:"Copied!",message:"Value copied to clipboard",duration:2e3}),setTimeout(()=>{z(R=>{const S=new Set(R);return S.delete(w),S})},1500)}catch(j){console.error("Failed to copy:",j),V({type:"error",title:"Copy Failed",message:"Unable to copy to clipboard",duration:3e3})}},f=d=>d===null?"text-gray-500 italic":d===void 0?"text-gray-400 italic":typeof d=="string"?"text-emerald-600":typeof d=="number"?"text-blue-600":typeof d=="boolean"?"text-purple-600":Array.isArray(d)?"text-orange-600":typeof d=="object"?"text-amber-600":"text-admin_text",h=d=>d===null?"null":d===void 0?"undefined":typeof d=="string"?`"${d}"`:typeof d=="boolean"||typeof d=="number"?d.toString():JSON.stringify(d),E=(d,w,j="",R=0)=>{const S=`${j}-${w}-${R}`,F=j?`${j}.${w}`:w,g=Array.isArray(d),Y=!g&&!(d&&typeof d=="object"&&!g),U=B.has(F),b=R>=L;if(Y)return t.jsxs("div",{className:"flex items-center space-x-2 group",children:[t.jsxs("span",{className:"text-admin_text_secondary",children:[w,":"]}),t.jsx("span",{className:f(d),children:h(d)}),t.jsx(Q,{variant:"admin_icon",onClick:s=>{s.stopPropagation(),D(d,S)},className:"text-admin_neutral_3 opacity-0 group-hover:opacity-100 transition p-1 h-6 w-6",title:"Copy value",children:A.has(S)?t.jsx("span",{className:"text-admin_success text-xs",children:"✓"}):t.jsx(ae,{className:"w-3 h-3"})})]});if(b)return t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsxs("span",{className:"text-admin_text_secondary",children:[w,":"]}),t.jsx("span",{className:"text-admin_text_secondary italic",children:g?`[${d.length} items] (max depth reached)`:"{...} (max depth reached)"})]});const x=g?d.length:Object.keys(d).length;return t.jsxs("div",{children:[t.jsxs("div",{className:"flex items-center space-x-2 cursor-pointer hover:bg-admin_neutral_1 rounded px-1 py-0.5 group",onClick:()=>I(F),children:[t.jsxs("div",{className:"flex items-center space-x-1",children:[U?t.jsx(we,{className:"w-3 h-3 text-admin_text_secondary"}):t.jsx(Ue,{className:"w-3 h-3 text-admin_text_secondary"}),t.jsxs("span",{className:"text-admin_text_secondary",children:[w,":"]}),t.jsx("span",{className:f(d),children:g?`Array[${x}]`:`Object{${x}}`})]}),t.jsx(Q,{variant:"admin_icon",onClick:s=>{s.stopPropagation(),D(d,S)},className:"h-6 w-6 text-admin_neutral_3 opacity-0 group-hover:opacity-100 transition p-1",title:"Copy entire object",children:A.has(S)?t.jsx("span",{className:"text-admin_success text-xs",children:"✓"}):t.jsx(ae,{className:"w-3 h-3"})})]}),U&&t.jsx("div",{className:"ml-4 border-l border-admin_bordered pl-3 mt-1 space-y-1",children:g?d.map((s,l)=>t.jsx("div",{children:E(s,`[${l}]`,F,R+1)},l)):Object.entries(d).map(([s,l])=>t.jsx("div",{children:E(l,s,F,R+1)},s))})]})};if(!_||typeof _!="object")return t.jsx("div",{className:`text-admin_text_secondary italic ${$}`,children:"No structured data"});const H=Array.isArray(_)?_.length:Object.keys(_).length;return v&&H===0?t.jsx("div",{className:`text-admin_text_secondary italic ${$}`,children:"Empty object"}):t.jsx("div",{className:`font-mono text-sm ${$}`,children:t.jsx("div",{className:"space-y-1",children:Array.isArray(_)?_.map((d,w)=>t.jsx("div",{children:E(d,`[${w}]`,"",0)},w)):Object.entries(_).map(([d,w])=>t.jsx("div",{children:E(w,d,"",0)},d))})})},ot=()=>{const{isConnected:_,connectionStatus:L,logs:k,channels:v,serverTime:$,systemStats:N,totalCount:B,isLoading:P,error:A,clearLogs:z,updateChannel:I,scrollToBottom:D,scrollRef:f,handleScroll:h,handleWheel:E,handleTouchStart:H,handleTouchMove:d,shouldAutoScroll:w}=nt(),[j,R]=c.useState(""),[S,F]=c.useState(""),[g,K]=c.useState(!0),[Y,U]=c.useState(!1),[b,x]=c.useState(!1),[s,l]=c.useState(new Set),[i,o]=c.useState(new Set),[u,y]=c.useState(""),[O,T]=c.useState([m.INFO,m.WARN,m.ERROR]),[W,M]=c.useState({}),[ne,Ce]=c.useState(!0),[Ne,Se]=c.useState("calc(100vh - 140px)"),[X,Re]=c.useState(new Set),[ue,me]=c.useState({}),re=c.useRef(0),oe=c.useRef(null),ce=c.useRef(null),he=e=>e.split(",").map(r=>r.trim().toLowerCase()).filter(r=>r.length>0),le=e=>{if(e==null)return"";if(typeof e=="object")try{return JSON.stringify(e).toLowerCase()}catch{return String(e).toLowerCase()}return String(e).toLowerCase()},ee=(e,r="")=>{let a=[];return e==null||(typeof e=="object"&&!Array.isArray(e)?Object.entries(e).forEach(([n,p])=>{const C=r?`${r}.${n}`:n;a.push(n.toLowerCase()),a.push(le(p)),typeof p=="object"&&p!==null&&a.push(...ee(p,C))}):Array.isArray(e)?e.forEach((n,p)=>{const C=r?`${r}[${p}]`:`[${p}]`;a.push(le(n)),typeof n=="object"&&n!==null&&a.push(...ee(n,C))}):a.push(le(e))),a},Le=(e,r)=>{if(r.length===0)return!0;let a=[];a.push(e.data.toLowerCase()),e.callstack&&a.push(e.callstack.toLowerCase());const n=e.structuredData||e.metadata;return n&&typeof n=="object"&&a.push(...ee(n)),e.channels&&Array.isArray(e.channels)&&a.push(...e.channels.map(p=>p.toLowerCase())),e.level&&a.push(e.level.toLowerCase()),r.some(p=>a.some(C=>C.includes(p)))},ke=(e,r)=>{if(r.length===0)return!1;let a=[];a.push(e.data.toLowerCase()),e.callstack&&a.push(e.callstack.toLowerCase());const n=e.structuredData||e.metadata;return n&&typeof n=="object"&&a.push(...ee(n)),e.channels&&Array.isArray(e.channels)&&a.push(...e.channels.map(p=>p.toLowerCase())),e.level&&a.push(e.level.toLowerCase()),r.some(p=>a.some(C=>C.includes(p)))},Te=({timestamp:e})=>{const[r,a]=c.useState(()=>pe(e));return c.useEffect(()=>{a(pe(e))},[e]),t.jsx("span",{className:"opacity-60",children:r})};c.useCallback(()=>{const e=_e[re.current],r=v.find(p=>p.id===e.channel),a=[],n=Date.now();for(let p=0;p<e.repeat;p++)a.push({id:`${n}-${p}`,timestamp:n+p*100,data:e.message,channels:[e.channel],color:r.color,level:e.level,callstack:e.callstack});return re.current=(re.current+1)%_e.length,a},[v]),c.useEffect(()=>{A&&A.trim()&&V(`Connection error: ${A}`)},[A]),c.useEffect(()=>{_&&V("✅ Connected to logs server")},[_]);const Ae=c.useCallback(e=>{if(e.length===0)return[];const r=[];let a=null;for(const n of e)a&&a.data===n.data&&a.level===n.level&&a.callstack===n.callstack&&JSON.stringify([...a.channels].sort())===JSON.stringify([...n.channels].sort())?(a.count+=1,a.lastTimestamp=n.timestamp,a.endTime=n.timestamp):(a&&r.push(a),a={...n,count:1,startTime:n.timestamp,endTime:n.timestamp});return a&&r.push(a),r},[]);c.useEffect(()=>{const e=()=>{if(oe.current&&ce.current){const r=oe.current.offsetHeight,a=ce.current.offsetHeight;let n=0,p=0;const C=document.querySelector(".h-screen");C?n=C.getBoundingClientRect().top:n=60;const q=`calc(100vh - ${r+a+n+p}px)`;Se(q)}};return setTimeout(e,100),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),c.useEffect(()=>{const e=f.current;if(e)return e.addEventListener("scroll",h),e.addEventListener("wheel",E,{passive:!1}),e.addEventListener("touchstart",H,{passive:!1}),e.addEventListener("touchmove",d,{passive:!1}),()=>{e.removeEventListener("scroll",h),e.removeEventListener("wheel",E),e.removeEventListener("touchstart",H),e.removeEventListener("touchmove",d)}},[h,E,H,d]);const te=c.useMemo(()=>{const e=he(j),r=he(S),a=k.filter(n=>{const p=v.filter(q=>q.enabled).map(q=>q.id);return!(!(n.channels&&n.channels.length>0?n.channels.some(q=>p.includes(q)):p.length>0)||!O.includes(n.level)||!n.channels.some(q=>{const J=v.find(se=>se.id===q);return J&&J.enabled&&J.enabledLevels.includes(n.level)})||!Le(n,e)||ke(n,r))});return Ae(a)},[k,v,j,S,O]),Ee=e=>{const r=v.find(a=>a.id===e);r&&I(e,{enabled:!r.enabled})},Fe=(e,r)=>{const a=v.find(n=>n.id===e);if(a){const n=a.enabledLevels.includes(r)?a.enabledLevels.filter(p=>p!==r):[...a.enabledLevels,r];I(e,{enabledLevels:n})}},Oe=e=>{T(r=>r.includes(e)?r.filter(a=>a!==e):[...r,e])},Pe=()=>{const e=!ne;v.forEach(r=>{I(r.id,{enabled:e})}),Ce(e)},Me=e=>{const r=new Set(X);if(X.has(e))r.delete(e),r.size===0?(Object.keys(ue).forEach(a=>{I(a,{enabled:ue[a]})}),me({})):I(e,{enabled:!1});else{if(X.size===0){const a={};v.forEach(n=>{a[n.id]=n.enabled}),me(a),v.forEach(n=>{I(n.id,{enabled:!1})})}r.add(e),I(e,{enabled:!0})}Re(r)},$e=()=>{K(!g)},Ie=async()=>{try{await z(),V("✅ Logs cleared successfully")}catch(e){V(`❌ Failed to clear logs: ${e.message}`)}},Be=(e,r)=>{const a=f.current;if(!a)return;const n=r.currentTarget.closest("[data-log-entry]");if(!n)return;const p=a.getBoundingClientRect(),G=n.getBoundingClientRect().top-p.top;l(q=>{const J=new Set(q);return J.has(e)?J.delete(e):J.add(e),requestAnimationFrame(()=>{if(a&&n){const se=n.getBoundingClientRect(),qe=a.getBoundingClientRect(),be=se.top-qe.top-G;Math.abs(be)>1&&(a.scrollTop+=be)}}),J})},fe=async(e,r,a)=>{a.stopPropagation();try{await navigator.clipboard.writeText(e),o(p=>new Set(p).add(r));const n=r.includes("message")?"Log message":"Callstack";V({type:"success",title:"Copied!",message:`${n} copied to clipboard`,duration:2e3}),setTimeout(()=>{o(p=>{const C=new Set(p);return C.delete(r),C})},1500)}catch(n){console.error("Failed to copy text: ",n),V({type:"error",title:"Copy Failed",message:"Unable to copy to clipboard",duration:3e3})}},De=e=>new Date(e).toLocaleTimeString(),pe=e=>{const a=Date.now()-e,n=Math.floor(a/1e3),p=Math.floor(n/60),C=Math.floor(p/60),G=Math.floor(C/24);return G>0?`${G} day${G>1?"s":""} ago`:C>0?`${C} hour${C>1?"s":""} ago`:p>0?`${p} min ago`:n>0?`${n}s ago`:"just now"},xe=e=>v.find(r=>r.id===e)||{color:"#666",name:e},He=e=>{switch(e){case m.WARN:return"#FFA500";case m.ERROR:return"#FF4444";case m.INFO:default:return"transparent"}},We=v.filter(e=>e.enabled).length,ge=v.filter(e=>e.name.toLowerCase().includes(u.toLowerCase()));return t.jsxs("div",{className:"h-screen bg-admin_canvas text-admin_text flex flex-col",children:[t.jsx("div",{ref:oe,className:"flex-shrink-0 bg-admin_paper border-b border-admin_bordered p-4",children:t.jsxs("div",{className:"flex items-center gap-4",children:[t.jsxs("div",{className:"flex flex-col",children:[t.jsx("h1",{className:"text-xl font-bold text-admin_text",children:"Aldoo Logger"}),t.jsxs("div",{className:"text-xs text-admin_text_secondary",children:["Server Time: ",$?new Date($).toLocaleStr
32ing():"N/A"]})]}),t.jsxs("div",{className:"flex items-center space-x-3 flex-1",children:[t.jsx("div",{className:"flex-1 max-w-xs",children:t.jsx(ie,{variant:"admin_compact",placeholder:de.searchPlaceholder,value:j,onChange:e=>R(e.target.value),leftIcon:t.jsx(ye,{className:"w-4 h-4"}),showClearButton:!0,debounce:300})}),t.jsx("div",{className:"flex-1 max-w-xs",children:t.jsx(ie,{variant:"admin_compact",placeholder:de.filterPlaceholder,value:S,onChange:e=>F(e.target.value),leftIcon:t.jsx(Ke,{className:"w-4 h-4"}),showClearButton:!0,debounce:300})}),t.jsx("div",{className:"relative",children:t.jsxs(Q,{variant:"admin_secondary",size:"sm",onClick:()=>U(!0),className:"flex items-center space-x-2",children:[t.jsxs("span",{children:["Channels (",We,"/",v.length,")"]}),t.jsx(we,{className:"w-4 h-4"})]})})]}),t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx(Z,{content:"Clear all log messages",children:t.jsx(Q,{variant:"admin_icon",onClick:Ie,className:"text-admin_text_secondary p-2",children:t.jsx(Ge,{className:"w-5 h-5"})})}),t.jsx(Z,{content:`${g?"Pause":"Resume"} log subscription`,children:t.jsxs(Q,{variant:"admin_primary",onClick:$e,className:`flex items-center space-x-2 w-32 justify-center border transition-all duration-600 ${_?g?"bg-admin_success/10 border-admin_success/30 hover:bg-admin_success/20":"bg-admin_progress/10 border-admin_progress/30 hover:bg-admin_progress/20":L==="connecting"?"bg-admin_progress/10 border-admin_progress/30":"bg-admin_error/10 border-admin_error/30"}`,children:[t.jsx("div",{className:`w-4 h-4 rounded-full flex-shrink-0 transition-all duration-600 ${_?g?"bg-admin_success":"bg-admin_progress":L==="connecting"?"bg-admin_progress animate-pulse":"bg-admin_error"}`}),t.jsx("span",{className:`transition-colors duration-600 ${_?g?"text-admin_success":"text-admin_warning":L==="connecting"?"text-admin_progress":"text-admin_error"}`,children:L==="connecting"?"Connecting...":_?g?"Active":"Paused":"Disconnected"})]})})]})]})}),t.jsx("div",{ref:ce,className:"flex-shrink-0 bg-admin_paper border-b border-admin_bordered px-4 py-2",children:t.jsxs("div",{className:"flex items-center justify-between text-xs text-admin_text_secondary",children:[t.jsxs("div",{className:"flex items-center space-x-4",children:[t.jsxs("span",{children:["Total: ",B]}),t.jsxs("span",{children:["Loaded: ",k.length]}),t.jsxs("span",{children:["Visible: ",te.length]}),t.jsxs("span",{children:["Memory: ",N?.formattedMemory||"0 B"]}),(j||S)&&t.jsxs("span",{className:"text-admin_text",children:["Filtered: ",k.length-te.length]}),P&&t.jsx("span",{className:"text-admin_text",children:"Loading..."})]}),t.jsxs("div",{className:"flex items-center space-x-4",children:[t.jsxs("span",{className:"text-admin_info",children:["Info: ",k.filter(e=>e.level==="info").length]}),t.jsxs("span",{className:"text-admin_warning",children:["Warn: ",k.filter(e=>e.level==="warn").length]}),t.jsxs("span",{className:"text-admin_error",children:["Error: ",k.filter(e=>e.level==="error").length]})]})]})}),t.jsxs("div",{className:"overflow-hidden relative",style:{height:Ne},children:[!w&&t.jsx("div",{className:"absolute top-4 right-9 z-10",children:t.jsx(Z,{content:"Scroll to bottom",children:t.jsx(Q,{variant:"admin_primary",size:"sm",onClick:D,className:"w-10 h-10 rounded-full p-0 shadow-lg flex items-center justify-center",children:"↓"})})}),t.jsx("div",{ref:f,className:"h-full overflow-y-auto bg-admin_canvas p-4 font-mono text-sm",children:te.length===0?t.jsx("div",{className:"flex items-center justify-center h-full text-admin_text_secondary",children:t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"text-lg mb-2",children:"No logs to display"}),t.jsx("div",{className:"text-sm",children:_?g?"Waiting for log messages...":"Enable logging to see messages":'Click "Start" to begin receiving logs'})]})}):t.jsx("div",{className:"divide-y divide-admin_bordered",children:te.map(e=>{const r=s.has(e.id);return t.jsxs("div",{className:"hover:bg-admin_neutral_1","data-log-entry":!0,children:[t.jsxs("div",{className:"flex cursor-pointer transition-colors",onClick:a=>Be(e.id,a),title:"Click to expand/collapse callstack",children:[t.jsxs("div",{className:"w-44 bg-admin_paper p-2 border-l-4 border-r-4 flex flex-col justify-between min-h-full relative",style:{borderLeftColor:xe(e.channels[0]).color,borderRightColor:He(e.level)},children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx("div",{className:"flex items-center space-x-1",children:e.channels.map(a=>{const n=xe(a);return t.jsx("span",{className:"text-xs font-medium",style:{color:n.color},children:n.name},a)})}),t.jsxs("div",{className:"flex items-center space-x-2",children:[e.count>1&&t.jsxs(Je,{variant:"admin_neutral",children:["×",e.count]}),t.jsx("span",{className:"text-admin_text_secondary text-xs",children:r?"▼":"▶"})]})]}),t.jsxs("div",{className:"flex items-center justify-between text-admin_text_secondary text-xs mt-1",children:[t.jsx("span",{children:De(e.count>1?e.endTime:e.startTime)}),r&&t.jsx(Te,{timestamp:e.count>1?e.endTime:e.startTime})]})]}),t.jsxs("div",{className:"flex-1 text-admin_text px-4 py-2 leading-relaxed relative group",children:[t.jsx("div",{className:`pr-12 ${r?"whitespace-pre-wrap":"line-clamp-2"}`,children:e.data}),r&&t.jsx(Q,{variant:"admin_icon",onClick:a=>fe(e.data,`${e.id}-message`,a),className:"absolute top-2 right-2 text-admin_neutral_3 opacity-0 group-hover:opacity-100 transition p-3",title:"Copy message",children:i.has(`${e.id}-message`)?t.jsx("span",{className:"text-admin_success text-base",children:"✓"}):t.jsx(ae,{className:"w-5 h-5"})})]})]}),r&&t.jsxs("div",{className:"bg-admin_neutral border-t border-admin_bordered",children:[(e.structuredData&&Object.keys(e.structuredData).length>0||e.metadata&&Object.keys(e.metadata).length>0)&&t.jsxs("div",{className:"flex border-b border-admin_bordered",children:[t.jsxs("div",{className:"flex flex-col justify-between w-44 min-h-full bg-admin_paper p-2",children:[t.jsx("span",{className:"text-xs text-admin_text_secondary",children:"Context Data:"}),t.jsx("div",{className:"mt-2",children:t.jsxs("div",{className:"text-xs text-admin_text_secondary opacity-60",children:[Object.keys(e.structuredData||e.metadata||{}).length," field",Object.keys(e.structuredData||e.metadata||{}).length!==1?"s":""]})})]}),t.jsx("div",{className:"flex-1 px-4 py-3",children:t.jsx(rt,{data:e.structuredData||e.metadata,maxDepth:4,initialExpandedDepth:2,onCopy:(a,n)=>{V({type:"success",title:"Copied!",message:"Context data copied to clipboard",duration:2e3})}})})]}),e.callstack&&t.jsxs("div",{className:"flex",children:[t.jsxs("div",{className:"w-44 bg-admin_paper p-2 flex flex-col justify-between min-h-full",children:[t.jsx("span",{className:"text-xs text-admin_text_secondary",children:"Callstack:"}),t.jsx("div",{className:"mt-2",children:t.jsx("div",{className:"text-xs text-admin_text_secondary opacity-60",children:e.timeSinceLastCall?`Time: ${e.timeSinceLastCall}`:"Time: N/A"})})]}),t.jsxs("div",{className:"flex-1 px-4 py-3 relative group",children:[t.jsx("div",{className:"text-xs text-admin_text font-mono overflow-x-auto pr-12",children:(()=>
32{if(!e.callstack)return null;const a=e.callstack.split(`
33`),[n,...p]=a;return t.jsxs("div",{children:[t.jsx("div",{className:"whitespace-pre-wrap",children:n}),p.map((C,G)=>t.jsx("div",{className:"whitespace-pre-wrap opacity-60",children:C},G))]})})()}),t.jsx(Q,{variant:"admin_icon",onClick:a=>fe(e.callstack,`${e.id}-callstack`,a),className:"absolute top-2 right-2 text-admin_neutral_3 opacity-0 group-hover:opacity-100 transition p-3",title:"Copy callstack",children:i.has(`${e.id}-callstack`)?t.jsx("span",{className:"text-admin_success text-base",children:"✓"}):t.jsx(ae,{className:"w-5 h-5"})})]})]}),!e.structuredData&&!e.metadata&&!e.callstack&&t.jsxs("div",{className:"flex",children:[t.jsx("div",{className:"w-44 bg-admin_paper p-2",children:t.jsx("span",{className:"text-xs text-admin_text_secondary",children:"Details:"})}),t.jsx("div",{className:"flex-1 px-4 py-3 text-admin_text_secondary italic text-sm",children:"No additional context data or callstack available"})]})]})]},e.id)})})})]}),t.jsxs(Qe,{isOpen:Y,onClose:()=>U(!1),variant:"admin_drawer_right",closeOnClickOutside:!0,passInteractionEvents:!0,title:"Channel Configuration",children:[t.jsxs("div",{className:"flex-shrink-0 bg-admin_paper",children:[t.jsxs("div",{className:"border-b border-admin_bordered bg-admin_paper p-4",children:[t.jsxs("div",{className:"flex items-center justify-between mb-3",children:[t.jsx(Ve,{component:"h2",variant:"admin_h4",className:"",children:"Global Level Filter"}),t.jsx(Z,{content:ne?"Hide all channels":"Show all channels",children:t.jsx(Q,{onClick:Pe,variant:"admin_icon",className:"text-admin_text_secondary",children:ne?t.jsx(ve,{className:"w-7 h-7"}):t.jsx(je,{className:"w-7 h-7"})})})]}),t.jsx("div",{className:"flex justify-center",children:t.jsx("div",{className:"flex space-x-2",children:Object.values(m).map(e=>{const r=O.includes(e),a={[m.INFO]:r?"bg-admin_info text-white":"bg-admin_neutral_1 text-admin_text_secondary hover:bg-admin_neutral_2",[m.WARN]:r?"bg-admin_warning text-white":"bg-admin_neutral_1 text-admin_text_secondary hover:bg-admin_neutral_2",[m.ERROR]:r?"bg-admin_error text-white":"bg-admin_neutral_1 text-admin_text_secondary hover:bg-admin_neutral_2"};return t.jsx(Z,{content:`${r?"Hide":"Show"} ${e.toUpperCase()} level messages across all channels`,children:t.jsx("button",{onClick:()=>Oe(e),className:`w-8 h-8 rounded-full text-xs font-medium transition-colors cursor-pointer flex items-center justify-center ${a[e]}`,children:e.charAt(0).toUpperCase()})},e)})})})]}),t.jsx("div",{className:"p-4 border-b border-admin_bordered bg-admin_paper",children:t.jsx(ie,{variant:"admin_compact",placeholder:de.channelSearchPlaceholder,value:u,onChange:e=>y(e.target.value),leftIcon:t.jsx(ye,{className:"w-4 h-4"}),showClearButton:!0,autoFocus:!0})})]}),t.jsx("div",{className:"flex-1 overflow-hidden",children:t.jsx("div",{className:"max-h-[calc(100vh-200px)] overflow-y-auto scrollbar-thin scrollbar-thumb-admin_neutral_2 scrollbar-track-admin_paper pb-20",children:ge.length===0?t.jsx("div",{className:"p-4 text-center text-sm text-admin_text_secondary",children:u?"No channels found":"No channels available"}):t.jsx("div",{className:"divide-y divide-admin_bordered",children:ge.map(e=>t.jsx("div",{className:`p-4 hover:bg-admin_neutral_1 transition-all ${e.enabled?"":"opacity-50 bg-admin_neutral_1/30"}`,children:t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"flex items-center space-x-3 min-w-0 flex-1",children:[t.jsx(Z,{content:X.has(e.id)?`Remove ${e.name} from solo`:`Add ${e.name} to solo`,children:t.jsx("button",{onClick:()=>Me(e.id),className:`flex items-center justify-center w-7 h-7 rounded-full transition-colors ${X.has(e.id)?"text-white bg-admin_info/80 hover:bg-admin_info":"text-admin_text_secondary hover:text-admin_primary"}`,children:t.jsx(et,{className:"w-5 h-5"})})}),t.jsx(Z,{content:`${e.enabled?"Hide":"Show"} all messages from ${e.name} channel`,children:t.jsx("button",{onClick:()=>Ee(e.id),className:"flex items-center justify-center w-7 h-7 text-admin_text_secondary hover:text-admin_primary transition-colors",children:e.enabled?t.jsx(ve,{className:"w-5 h-5"}):t.jsx(je,{className:"w-5 h-5"})})}),t.jsx("div",{className:`w-4 h-4 rounded-full flex-shrink-0 ${e.enabled?"":"opacity-40"}`,style:{backgroundColor:e.color}}),t.jsx("div",{className:`text-base font-medium truncate ${e.enabled?"text-admin_text":"text-admin_text_secondary"}`,children:e.name})]}),t.jsxs("div",{className:"flex items-center space-x-4 flex-shrink-0",children:[t.jsxs("div",{className:`text-sm text-right ${e.enabled?"text-admin_text_secondary":"text-admin_text_secondary opacity-60"}`,children:[t.jsxs("div",{children:[e.messageCount," msgs"]}
33),t.jsxs("div",{children:[(e.messagesPerMinute||0).toLocaleString(),"/min"]})]}),t.jsx("div",{className:"flex space-x-1",children:Object.values(m).map(r=>{const a=e.enabledLevels.includes(r),n={[m.INFO]:a?"bg-admin_info text-white":"bg-admin_neutral_1 text-admin_text_secondary hover:bg-admin_neutral_2",[m.WARN]:a?"bg-admin_warning text-white":"bg-admin_neutral_1 text-admin_text_secondary hover:bg-admin_neutral_2",[m.ERROR]:a?"bg-admin_error text-white":"bg-admin_neutral_1 text-admin_text_secondary hover:bg-admin_neutral_2"};return t.jsx(Z,{content:`${a?"Hide":"Show"} ${r.toUpperCase()} messages from ${e.name} channel`,children:t.jsx("button",{onClick:()=>Fe(e.id,r),className:`w-7 h-7 rounded-full text-sm font-medium transition-colors cursor-pointer flex items-center justify-center ${n[r]}`,children:r.charAt(0).toUpperCase()})},r)})})]})]})},e.id))})})})]})]})},bt=()=>t.jsx(Ye,{menuName:"AdminLogs",tabs:{logs:ot}});export{bt as default};
34//# sourceMappingURL=chunk-WyKnTzBf.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.