1import{o as B,a5 as I,r as V,d as u,f as o,e as t,w as r,g as a,l as P,v as S,P as T,A as M,x as E,a9 as H,n as x,t as n,F as D,k as z,i as p,j as m}from"./app-CxLSEyV0.js";import{H as K}from"./HeaderComponent-sSgxAyx_.js";import{P as j}from"./PageFooter-BCyrjSIR.js";import{a as O}from"./index-DOm85ZNj.js";import"./icon-48-D-Oz7Xlv.js";import"./LanguageSwitcher-CAt8wysM.js";import"./auth-CQwr6egy.js";import"./nprogress-COuRHiZG.js";const X={class:"app-main"},q={class:"page-content"},G={class:"container"},J={class:"nav-tabs-modern"},Q={class:"nav-item"},W={class:"nav-item"},Y={class:"nav-item"},Z={class:"nav-item"},$={class:"nav-item"},tt={class:"nav-item"},et={class:"nav-item"},st={class:"nav-item"},lt={class:"page-header"},ot={key:0,class:"badge bg-success ms-2"},at={class:"card card-elevated mb-4"},nt={class:"card-body py-3"},it={class:"row g-2 align-items-end"},rt={class:"col-auto"},dt={class:"col-auto"},ut={class:"col-auto"},mt={class:"col-auto"},ct={class:"col-auto ms-auto"},vt={class:"card card-elevated"},pt={class:"card-body"},ft={key:0,class:"text-center py-5"},bt={key:1,class:"table-responsive"},_t={class:"table table-sm table-hover mb-0"},gt={class:"text-nowrap small"},ht={class:"small"},xt={class:"small"},Ct={class:"small"},yt={class:"small text-end"},wt={class:"small"},St={class:"small text-truncate",style:{"max-width":"120px"}},kt={key:0},Ut={__name:"AdminTransactionFeedView",setup(Ft){const c=p([]),C=p(!0),d=p(!0),f=p("all"),b=p(""),_=p("");let g=null,v="";function L(){const l=new URLSearchParams;return f.value!=="all"&&l.set("service",f.value),b.value&&l.set("status",b.value),_.value&&l.set("country",_.value),v&&l.set("since",v),l.set("limit","100"),"/admin/feed/?"+l.toString()}function y(){O.get(L()).then(l=>{const e=l.data.entries||[];v&&e.length>0?c.value=[...e,...c.value].slice(0,200):v||(c.value=e),e.length>0&&e[0].date&&(v=e[0].date)}).finally(()=>{C.value=!1})}function h(){v="",c.value=[],C.value=!0,y()}function k(){g=setInterval(y,3e4)}function F(){g&&(clearInterval(g),g=null)}function A(){d.value=!d.value,d.value?k():F()}function N(l){return l?new Date(l).toLocaleTimeString():"-"}function R(l){return{airtime:"bg-primary",databundle:"bg-success",esim:"bg-warning text-dark"}[l]||"bg-secondary"}function U(l){return l==="failed"?"bg-danger":l==="success"||l==="delivered"?"bg-success":l==="sent"?"bg-info":"bg-secondary"}return B(()=>{y(),k()}),I(()=>F()),(l,e)=>{const i=V("RouterLink"),w=V("font-awesome-icon");return m(),u(D,null,[o(K),t("main",X,[t("div",q,[t("div",G,[t("ul",J,[t("li",Q,[o(i,{to:"/admin/"},{default:r(()=>[...e[3]||(e[3]=[a("Dashboard",-1)])]),_:1})]),t("li",W,[o(i,{to:"/admin/provider-health/"},{default:r(()=>[...e[4]||(e[4]=[a("Provider Health",-1)])]),_:1})]),t("li",Y,[o(i,{to:"/admin/stats/"},{default:r(()=>[...e[5]||(e[5]=[a("Stats",-1)])]),_:1})]),t("li",Z,[o(i,{to:"/admin/customers/"},{default:r(()=>[...e[6]||(e[6]=[a("Customers",-1)])]),_:1})]),t("li",$,[o(i,{to:"/admin/refunds/"},{default:r(()=>[...e[7]||(e[7]=[a("Refunds",-1)])]),_:1})]),t("li",tt,[o(i,{to:"/admin/feed/"},{default:r(()=>[...e[8]||(e[8]=[a("Live Feed",-1)])]),_:1})]),t("li",et,[o(i,{to:"/admin/coverage/"},{default:r(()=>[...e[9]||(e[9]=[a("Coverage",-1)])]),_:1})]),t("li",st,[o(i,{to:"/admin/compare/"},{default:r(()=>[...e[10]||(e[10]=[a("Compare",-1)])]),_:1})])]),t("div",lt,[e[13]||(e[13]=t("h1",null,"Transaction Feed",-1)),t("p",null,[e[12]||(e[12]=a(" Real-time transaction monitoring ",-1)),d.value?(m(),u("span",ot,[o(w,{icon:["fas","circle"],class:"me-1",style:{"font-size":"0.5rem"}}),e[11]||(e[11]=a("LIVE ",-1))])):P("",!0)])]),t("div",at,[t("div",nt,[t("div",it,[t("div",rt,[e[15]||(e[15]=t("label",{class:"form-label form-label-sm mb-1"},"Service",-1)),S(t("select",{"onUpdate:modelValue":e[0]||(e[0]=s=>f.value=s),class:"form-select form-select-sm",onChange:h},[...e[14]||(e[14]=[t("option",{value:"all"},"All",-1),t("option",{value:"airtime"},"Airtime",-1),t("option",{value:"databundle"},"Data Mobile",-1),t("option",{value:"esim"},"eSIM",-1)])],544),[[T,f.value]])]),t("div",dt,[e[17]||(e[17]=t("label",{class:"form-label form-label-sm mb-1"},"Status",-1)),S(t("select",{"onUpdate:modelValue":e[1]||(e[1]=s=>b.value=s),class:"form-select form-select-sm",onChange:h},[...e[16]||(e[16]=[M('<option value="">All</option><option value="failed">Failed</option><option value="success">Success</option><option value="delivered">Delivered</option><option value="sent">Sent</option>',5)])],544),[[T,b.value]])]),t("div",ut,[e[18]||(e[18]=t("label",{class:"form-label form-label-sm mb-1"},"Country",-1)),S(t("input",{"onUpdate:modelValue":e[2]||(e[2]=s=>_.value=s),type:"text",class:"form-control form-control-sm",placeholder:"e.g. Cameroon",onKeyup:H(h,["enter"])},null,544),[[E,_.value]])]),t("div",mt,[t("button",{class:"btn btn-sm btn-primary",onClick:h},[o(w,{icon:["fas","filter"],class:"me-1"}),e[19]||(e[19]=a("Filter ",-1))])]),t("div",ct,[t("button",{class:x(["btn btn-sm",d.value?"btn-danger":"btn-success"]),onClick:A},[o(w,{icon:d.value?["fas","pause"]:["fas","play"],class:"me-1"},null,8,["icon"]),a(" "+n(d.value?"Pause":"Resume"),1)],2)])])])]),t("div",vt,[t("div",pt,[C.value?(m(),u("div",ft,[...e[20]||(e[20]=[t("div",{class:"spinner-border text-primary"},[t("span",{class:"sr-only"})],-1)])])):(m(),u("div",bt,[t("table",_t,[e[22]||(e[22]=t("thead",null,[t("tr",null,[t("th",null,"Time"),t("th",null,"Service"),t("th",null,"Status"),t("th",null,"Recipient"),t("th",null,"Country"),t("th",null,"Operator"),t("th",null,"Amount"),t("th",null,"Customer"),t("th",null,"TXN ID")])],-1)),t("tbody",null,[(m(!0),u(D,null,z(c.value,s=>(m(),u("tr",{key:s.txn_id+s.service,class:x({"table-danger":s.status==="failed"})},[t("td",gt,n(N(s.date)),1),t("td",null,[t("span",{class:x(["badge",R(s.service)])},n(s.service),3)]),t("td",null,[t("span",{class:x(["badge",U(s.status)])},n(s.status),3)]),t("td",ht,n(s.recipient||"-"),1),t("td",xt,n(s.country||"-"),1),t("td",Ct,n(s.operator||"-"),1),t("td",yt,n(s.amount||"-")+" "+n(s.currency||""),1),t("td",wt,n(s.customer_email||"-"),1),t("td",St,n(s.txn_id||"-"),1)],2))),128)),c.value.length===0?(m(),u("tr",kt,[...e[21]||(e[21]=[t("td",{colspan:"9",class:"text-center text-muted py-4"},"No transactions in this window",-1)])])):P("",!0)])])]))])])]),o(j)])])],64)}}};export{Ut as default};
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.