PageSourceSearch

https://vault22.com/_next/static/chunks/pages/admin/omf-loans-abc65caca40bdf14.js

js vault22.com collected 2026-09-24 13:41:14 UTC 19,779 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1896],{12984:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>C});var s=a(37876),r=a(52042),l=a(14232),n=a(37497),d=a(53403),i=a(65364);let o=e=>{if(null==e||""===e)return"—";let t=new Date(e);return isNaN(t.getTime())?"—":t.toLocaleString("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})},c=(e,t)=>t?"".concat(Math.round(e/t*100),"%"):"0%",m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:60;return e.length>t?"".concat(e.slice(0,t-1),"…"):e},x=e=>"".concat(e.firstName||""," ").concat(e.lastName||"").trim(),u=e=>{let t=e.attempts||[],a=t.length?t[t.length-1]:null;return a?"Sent"===a.status?{kind:"submitted",label:"Submitted",reason:null}:{kind:"failed",label:"Failed",reason:a.reason}:e.formOpenCount>0?{kind:"opened",label:"Opened, no application",reason:null}:{kind:"not-opened",label:"Not opened",reason:null}},p={"not-opened":"bg-gray-100 text-gray-600 border-gray-200",opened:"bg-amber-50 text-amber-700 border-amber-200",submitted:"bg-green-50 text-green-700 border-green-200",failed:"bg-red-50 text-red-700 border-red-200"},h=[{key:"all",label:"All"},{key:"submitted",label:"Submitted"},{key:"opened",label:"Opened"},{key:"failed",label:"Failed"},{key:"not-opened",label:"Not opened"}],g={submitted:3,opened:2,failed:1,"not-opened":0},b=[50,100,150,200],f={applicant:"asc",released:"desc",opened:"desc",status:"desc"},y=["Thabo","Lerato","Sipho","Naledi","Johan","Kagiso","Zanele","Pieter","Nomsa","Ayanda","Lwazi","Refilwe","Bongani","Karabo","Dineo"],N=["Mokoena","Ndlovu","Dlamini","Khumalo","Pretorius","Nkosi","Botha","Mahlangu","Zulu","Naidoo"],j=e=>{let{kind:t}=e;switch(t){case"submitted":return(0,s.jsx)("span",{"aria-hidden":!0,children:"✓"});case"failed":return(0,s.jsx)("span",{"aria-hidden":!0,children:"⚠"});case"opened":return(0,s.jsx)("span",{"aria-hidden":!0,children:"◒"});default:return(0,s.jsx)("span",{"aria-hidden":!0,children:"○"})}},w=e=>{let{status:t}=e;return(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 px-2.5 py-1 rounded-full border text-xs font-medium ".concat(p[t.kind]),children:[(0,s.jsx)(j,{kind:t.kind}),t.label]})},v={neutral:"bg-gray-400",good:"bg-green-500",bad:"bg-red-500"},k=e=>{let{user:t}=e,a=(e=>{let t=[];return t.push({at:e.claimedAt,title:"Released into rollout",tone:"neutral"}),e.formOpenCount>0&&t.push({at:e.lastFormOpenedAt,title:"Opened form (".concat(e.formOpenCount,"\xd7)"),detail:e.lastFormOpenedAt?"last ".concat(o(e.lastFormOpenedAt)):null,tone:"neutral"}),(e.attempts||[]).forEach(e=>{"Sent"===e.status?t.push({at:e.at,title:"Application submitted",detail:e.referenceNumber?"Ref #".concat(e.referenceNumber):null,tone:"good"}):t.push({at:e.at,title:"Application failed",detail:e.reason?"Reason: ".concat(e.reason):"Reason: not provided",tone:"bad"})}),t})(t),r="failed"===u(t).kind;return(0,s.jsxs)("div",{className:"px-6 py-5 bg-gray-50 border-t border-gray-200",children:[r&&(0,s.jsx)("p",{className:"text-xs text-gray-500 mb-4",children:"“Failed” means the application didn’t go through (a technical or validation issue on submit) — it is not an OMF decision to decline the loan."}),(0,s.jsx)("ol",{className:"relative border-l border-gray-300 ml-2 space-y-4",children:a.map((e,t)=>(0,s.jsxs)("li",{className:"ml-4",children:[(0,s.jsx)("span",{className:"absolute -left-[5px] mt-1.5 w-2.5 h-2.5 rounded-full ".concat(v[e.tone])}),(0,s.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-3",children:[(0,s.jsx)("span",{className:"text-sm font-medium ".concat("bad"===e.tone?"text-red-700":"good"===e.tone?"text-green-700":"text-gray-900"),children:e.title}),(0,s.jsx)("span",{className:"text-xs text-gray-500",children:o(e.at)})]}),e.detail&&(0,s.jsx)("p",{className:"mt-0.5 text-xs ".concat("bad"===e.tone?"text-red-600":"text-gray-500"),children:e.detail})]},t))}),(0,s.jsxs)("dl",{className:"mt-5 pt-4 border-t border-gray-200 grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("dt",{className:"text-gray-400 uppercase tracking-wide",children:"Preferred contact"}),(0,s.jsx)("dd",{className:"mt-0.5 text-gray-700",children:t.preferredContactTime||"—"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("dt",{className:"text-gray-400 uppercase tracking-wide",children:"Consent"}),(0,s.jsxs)("dd",{className:"mt-0.5 text-gray-700",children:["bureau ",t.bureauConsent?"✓":"✗"," \xb7 terms ",t.termsChecked?"✓":"✗"]})]})]})]})};function C(){var e,t;let{idToken:a}=(0,r.bn)(),[p,j]=(0,l.useState)(null),[v,C]=(0,l.useState)(!0),[S,M]=(0,l.useState)(null),[O,A]=(0,l.useState)(null),[R,F]=(0,l.useState)(0),[L,_]=(0,l.useState)(!1),[I,E]=(0,l.useState)(!1),[D,T]=(0,l.useState)(null),[P,U]=(0,l.useState)(""),[B,K]=(0,l.useState)("all"),[V,X]=(0,l.useState)("released"),[z,G]=(0,l.useState)("desc"),[Y,Z]=(0,l.useState)(1),[q,H]=(0,l.useState)(50);(0,l.useEffect)(()=>{a&&J()},[a]),(0,l.useEffect)(()=>
1{if(O){let e=setTimeout(()=>A(null),3e3);return()=>clearTimeout(e)}},[O]);let J=async()=>{try{C(!0),M(null);let e=(()=>{if("true"!==i.env.NEXT_PUBLIC_ADMIN_BYPASS_AUTH)return 0;let e=new URLSearchParams(window.location.search).get("mock");if(null===e)return 0;let t=parseInt(e,10);return Number.isFinite(t)&&t>0?Math.min(t,500):60})();if(e){let t=(e=>{let t=Date.now(),a=Array.from({length:e},(e,a)=>{let s=t-36e5*a-Math.floor(36e5*Math.random()),r=.25>Math.random()?0:1+Math.floor(4*Math.random()),l=r?s+6e5:null,n=[],d=!1,i=null;if(r>0){let e=Math.random();e<.45?(d=!0,i=l+3e5,n=[{status:"Sent",reason:null,referenceNumber:String(11251e3+a),at:i}]):e<.65&&(n=[{status:"Declined",reason:.5>Math.random()?"MOBILE_NUMBER_INVALID":"ID_VALIDATION_FAILED",referenceNumber:null,at:l+12e4}])}let o=y[a%y.length],c=N[a%N.length];return{customerId:"mock-".concat(a),email:"".concat(o.toLowerCase(),".").concat(c.toLowerCase()).concat(a,"@example.com"),firstName:o,lastName:c,claimedAt:s,formOpenCount:r,lastFormOpenedAt:l,submitted:d,submittedAt:i,preferredContactTime:["morning","afternoon","evening"][a%3],bureauConsent:!0,termsChecked:n.length>0||.7>Math.random(),formOpens:l?[l]:[],attempts:n}});return{cap:500,claimedCount:e,users:a}})(e);j(t),F(t.cap);return}let t=await d.KD.getOMFRollout();t.success&&t.data?(j(t.data),F(t.data.cap)):M(t.error||"Failed to load OMF rollout data")}catch(e){M(e.message)}finally{C(!1)}},Q=null!=(e=null==p?void 0:p.cap)?e:0,W=null!=(t=null==p?void 0:p.claimedCount)?t:0,$=(0,l.useMemo)(()=>(null==p?void 0:p.users)||[],[p]),ee=(0,l.useMemo)(()=>$.filter(e=>e.formOpenCount>0).length,[$]),et=(0,l.useMemo)(()=>$.filter(e=>"submitted"===u(e).kind).length,[$]),ea=Math.max(0,Q-W),es=(0,l.useMemo)(()=>{let e=P.trim().toLowerCase(),t=$.filter(t=>("all"===B||u(t).kind===B)&&(!e||(t.email||"").toLowerCase().includes(e)||x(t).toLowerCase().includes(e))),a="asc"===z?1:-1;return[...t].sort((e,t)=>{switch(V){case"applicant":return a*(x(e)||e.email||"").localeCompare(x(t)||t.email||"");case"opened":return a*((e.formOpenCount||0)-(t.formOpenCount||0));case"status":return a*(g[u(e).kind]-g[u(t).kind]);default:return a*((e.claimedAt||0)-(t.claimedAt||0))}})},[$,P,B,V,z]),er=Math.max(1,Math.ceil(es.length/q)),el=(0,l.useMemo)(()=>es.slice((Y-1)*q,Y*q),[es,Y,q]);(0,l.useEffect)(()=>{Z(1)},[P,B,V,z,q]),(0,l.useEffect)(()=>{Y>er&&Z(er)},[Y,er]);let en=async()=>{if(!Number.isFinite(R)||R<0)return void M("Cap must be a non-negative number");_(!0),E(!1);try{let e=await d.KD.updateOMFRolloutCap(Math.round(R));e.success&&e.data?(A("Cap updated to ".concat(e.data.cap)),await J()):M(e.error||"Failed to update cap")}catch(e){M(e.message)}finally{_(!1)}};return(0,s.jsx)(n.A,{requireRoles:["Admin"],children:(0,s.jsxs)("div",{className:"p-6",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-2xl font-bold text-gray-900",children:"OMF Loans Rollout"}),(0,s.jsx)("p",{className:"mt-1 text-sm text-gray-500",children:"Gradual rollout for the Old Mutual Finance personal-loans offer"})]}),(0,s.jsx)("button",{onClick:J,disabled:v,className:"inline-flex items-center px-4 py-2 bg-gray-100 text-gray-700 text-sm font-medium rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50",children:"Refresh"})]}),O&&(0,s.jsx)("div",{className:"mb-4 p-3 bg-green-50 border border-green-200 text-green-800 rounded-lg text-sm",children:O}),S&&(0,s.jsxs)("div",{className:"mb-4 p-3 bg-red-50 border border-red-200 text-red-800 rounded-lg text-sm",children:[S,(0,s.jsx)("button",{onClick:()=>M(null),className:"ml-2 text-red-600 hover:text-red-800 font-medium",children:"Dismiss"})]}),v?(0,s.jsx)("div",{className:"flex justify-center py-12",children:(0,s.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"})}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"grid grid-cols-4 gap-4 mb-6",children:[(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow p-4 border border-gray-200",children:[(0,s.jsx)("p",{className:"text-sm text-gray-500",children:"Cap"}),(0,s.jsx)("p",{className:"text-2xl font-bold text-gray-900",children:Q}),(0,s.jsxs)("p",{className:"text-xs text-gray-400 mt-0.5",children:[ea," slot",1===ea?"":"s"," left"]})]}),(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow p-4 border border-gray-200",children:[(0,s.jsx)("p",{className:"text-sm text-gray-500",children:"Released users"}),(0,s.jsxs)("p",{className:"text-2xl font-bold text-blue-600",children:[W,(0,s.jsxs)("span",{className:"text-base font-normal text-gray-400",children:[" / ",Q]})]})]}),(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow p-4 border border-gray-200",children:[(0,s.jsx)("p",{className:"text-sm text-gray-500",children:"Opened form"}),(0,s.jsx)("p",{className:"text-2xl font-bold text-purple-600",children:ee})]}),(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow p-4 border border-gray-200",children:[(0,s.jsx)("p",{className:"text-sm text-gray-500",children:"Submitted"}),(0,s.jsx)("p",{className:"text-2xl font-bold text-green-600",children:et})]})]}),(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow p-5 border border-gray-200 mb-6",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-gray-700 mb-3",children:"Funnel"}),(0,s.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,s.jsxs)("div",{className:"flex-1 min-w-[140px] bg-blue-50 border border-blue-200 rounded-lg px-4 py-3 text-center",children:[(0,s.jsx)("p",{className:"text-xs text-blue-700 uppercase tracking-wide",children:"Released"}),(0,s.jsx)("p",{className:"text-xl font-bold text-blue-800",children:W})]}),(0,s.jsxs)("div",{className:"text-gray-400 text-sm px-1",children:["→ ",(0,s.jsx)("span",{className:"text-gray-500",children:c(ee,W)})]}),(0,s.jsxs)("div",{className:"flex-1 min-w-[140px] bg-purple-50 border border-purple-200 rounded-lg px-4 py-3 text-center",children:[(0,s.jsx)("p",{className:"text-xs text-purple-700 uppercase tracking-wide",children:"Opened"}),(0,s.jsx)("p",{className:"text-xl font-bold text-purple-800",children:ee})]}),(0,s.jsxs)("div",{className:"text-gray-400 text-sm px-1",children:["→ ",(0,s.jsx)("span",{className:"text-gray-500",children:c(et,ee)})]}),(0,s.jsxs)("div",{className:"flex-1 min-w-[140px] bg-green-50 border border-green-200 rounded-lg px-4 py-3 text-center",children:[(0,s.jsx)("p",{className:"text-xs text-green-700 uppercase tracking-wide",children:"Submitted"}),(0,s.jsx)("p",{className:"text-xl font-bold text-green-800",children:et})]})]})]}),(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow p-5 border border-gray-200 mb-6",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-gray-700 mb-1",children:"Rollout cap"}),(0,s.jsxs)("p",{className:"text-xs text-gray-500 mb-3",children:["The first ",Q," eligible users claim a slot. ",W," of ",Q," slots have been claimed — ",ea," still free."]}),(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("input",{type:"number",min:0,value:R,onChange:e=>F(parseInt(e.target.value)||0),className:"w-28 px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"}),(0,s.jsx)("button",{onClick:()=>
1{if(Math.round(R)<W)return void E(!0);en()},disabled:L||Math.round(R)===Q,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors disabled:opacity-50",children:L?"Updating…":"Update cap"})]})]}),(0,s.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 flex-wrap",children:[(0,s.jsx)("h2",{className:"text-lg font-semibold text-gray-900",children:"Applications"}),(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("span",{className:"text-sm text-gray-500",children:es.length===$.length?"".concat($.length," total"):"".concat(es.length," of ").concat($.length)}),(0,s.jsx)("button",{onClick:()=>{let e=new Blob([[["Name","Email","Status","Released","Form opens","Submitted at","Reference","Preferred contact","Bureau consent","Terms"],...es.map(e=>{let t=u(e),a=(e.attempts||[]).find(e=>"Sent"===e.status);return[x(e),e.email||"",t.label,e.claimedAt?new Date(e.claimedAt).toISOString():"",String(e.formOpenCount||0),(null==a?void 0:a.at)?new Date(a.at).toISOString():"",(null==a?void 0:a.referenceNumber)||"",e.preferredContactTime||"",e.bureauConsent?"yes":"no",e.termsChecked?"yes":"no"]})].map(e=>e.map(e=>'"'.concat(String(e).replace(/"/g,'""'),'"')).join(",")).join("\n")],{type:"text/csv;charset=utf-8;"}),t=URL.createObjectURL(e),a=document.createElement("a");a.href=t,a.download="omf-rollout-".concat(new Date().toISOString().slice(0,10),".csv"),a.click(),URL.revokeObjectURL(t)},disabled:0===es.length,className:"inline-flex items-center px-3 py-1.5 bg-gray-100 text-gray-700 text-sm font-medium rounded-lg hover:bg-gray-200 transition-colors disabled:opacity-50",children:"Export CSV"})]})]}),(0,s.jsxs)("div",{className:"mb-3 flex items-center gap-3 flex-wrap",children:[(0,s.jsx)("input",{type:"text",value:P,onChange:e=>U(e.target.value),placeholder:"Search name or email…",className:"w-64 max-w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"}),(0,s.jsx)("div",{className:"flex items-center gap-1 flex-wrap",children:h.map(e=>(0,s.jsx)("button",{onClick:()=>K(e.key),className:"px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ".concat(B===e.key?"bg-blue-600 text-white border-blue-600":"bg-white text-gray-600 border-gray-300 hover:bg-gray-50"),children:e.label},e.key))})]}),(0,s.jsxs)("div",{className:"bg-white rounded-lg shadow overflow-hidden border border-gray-200",children:[(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"min-w-full divide-y divide-gray-200",children:[(0,s.jsx)("thead",{className:"bg-gray-50",children:(0,s.jsxs)("tr",{children:[[["applicant","Applicant"],["released","Released"],["opened","Opened"],["status","Status"]].map(e=>{let[t,a]=e;return(0,s.jsx)("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:(0,s.jsxs)("button",{type:"button",onClick:()=>{t===V?G(e=>"asc"===e?"desc":"asc"):(X(t),G(f[t]))},className:"inline-flex items-center gap-1 uppercase tracking-wider hover:text-gray-700",children:[a,(0,s.jsx)("span",{className:V===t?"text-blue-600":"text-gray-300",children:V===t?"asc"===z?"▲":"▼":"↕"})]})},t)}),(0,s.jsx)("th",{className:"px-4 py-3 w-8"})]})}),(0,s.jsx)("tbody",{className:"bg-white divide-y divide-gray-200",children:0===es.length?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:5,className:"px-4 py-10 text-center text-sm text-gray-500",children:0===$.length?"No one released yet — raise the cap to admit the first eligible users.":"No applicants match your search or filter."})}):el.map(e=>{let t=u(e),a=D===e.customerId;return(0,s.jsxs)(l.Fragment,{children:[(0,s.jsxs)("tr",{onClick:()=>{var t;return t=e.customerId,void T(e=>e===t?null:t)},className:"cursor-pointer transition-colors ".concat(a?"bg-blue-50":"hover:bg-gray-50"),children:[(0,s.jsxs)("td",{className:"px-4 py-3",children:[(0,s.jsx)("span",{className:"block text-sm font-medium text-gray-900",children:x(e)||"—"}),(0,s.jsx)("span",{className:"block text-xs text-gray-500",children:e.email||"—"})]}),(0,s.jsx)("td",{className:"px-4 py-3",children:(0,s.jsx)("span",{className:"text-xs text-gray-600",children:o(e.claimedAt)})}),(0,s.jsx)("td",{className:"px-4 py-3",children:(0,s.jsx)("span",{className:"text-sm text-gray-900",children:e.formOpenCount>0?e.formOpenCount:"—"})}),(0,s.jsx)("td",{className:"px-4 py-3",children:(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)(w,{status:t}),"failed"===t.kind&&t.reason&&(0,s.jsx)("span",{className:"text-xs text-red-600",title:t.reason,children:m(t.reason)})]})}),(0,s.jsx)("td",{className:"px-4 py-3 text-right",children:(0,s.jsx)("span",{className:"inline-block text-gray-400 transition-transform ".concat(a?"rotate-180":""),"aria-hidden":!0,
1children:"▾"})})]}),a&&(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:5,className:"p-0",children:(0,s.jsx)(k,{user:e})})})]},e.customerId)})})]})}),es.length>0&&(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-3 border-t border-gray-200 text-sm text-gray-600 flex-wrap",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsxs)("label",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-gray-500",children:"Rows per page"}),(0,s.jsx)("select",{value:q,onChange:e=>H(parseInt(e.target.value,10)),className:"px-2 py-1.5 border border-gray-300 rounded-lg text-sm bg-white focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:b.map(e=>(0,s.jsx)("option",{value:e,children:e},e))})]}),(0,s.jsxs)("span",{children:["Showing ",(Y-1)*q+1,"–",Math.min(Y*q,es.length)," of"," ",es.length]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("button",{onClick:()=>Z(e=>Math.max(1,e-1)),disabled:Y<=1,className:"px-3 py-1.5 rounded-lg border border-gray-300 bg-white hover:bg-gray-50 disabled:opacity-40 disabled:cursor-not-allowed",children:"Prev"}),(0,s.jsxs)("span",{className:"text-gray-500",children:["Page ",Y," of ",er]}),(0,s.jsx)("button",{onClick:()=>Z(e=>Math.min(er,e+1)),disabled:Y>=er,className:"px-3 py-1.5 rounded-lg border border-gray-300 bg-white hover:bg-gray-50 disabled:opacity-40 disabled:cursor-not-allowed",children:"Next"})]})]})]})]}),I&&(0,s.jsx)("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:(0,s.jsxs)("div",{className:"bg-white rounded-xl shadow-2xl w-full max-w-md p-6",children:[(0,s.jsx)("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Lower the rollout cap?"}),(0,s.jsxs)("p",{className:"text-sm text-gray-600 mb-4",children:["You are lowering the cap to ",(0,s.jsx)("strong",{children:Math.round(R)}),", which is below the"," ",(0,s.jsx)("strong",{children:W})," slots already claimed. Existing users keep access; new claims stop until the cap is raised again."]}),(0,s.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,s.jsx)("button",{onClick:()=>E(!1),className:"px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 rounded-lg hover:bg-gray-200",children:"Cancel"}),(0,s.jsx)("button",{onClick:en,disabled:L,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 disabled:opacity-50",children:L?"Updating…":"Lower cap"})]})]})})]})})}},28e3:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/omf-loans",function(){return a(12984)}])}},e=>{e.O(0,[7497,636,6593,8792],()=>e(e.s=28e3)),_N_E=e.O()}]);

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.