1import{d3 as P,j as t,ax as S,d4 as D,eE as E,eF as B,r as s,b4 as O,ao as $,bT as H,dG as Y,bf as R,b9 as y,aI as k}from"./index-CpeGhXo5.js";import{F as o}from"./FinanceKpiCard-CceklJE9.js";import{o as V}from"./financeMappers-CUv1G2pV.js";import{u as K}from"./useCurrencyHelpers-D5hUvgaW.js";import{F as G}from"./FilterBar-B_jdgGzl.js";import{u as W}from"./filters-DQMtevU2.js";import{C as q}from"./EntityPill-btGCy98_.js";import"./currency-CACMzR5Q.js";import"./mock-Ci00pIzy.js";function ie(){const l=P();return l||t.jsx(z,{})}function z(){const l=S(),c=D(),{fmtConv:d}=K(),n=W(),{data:b,isLoading:j,isFetching:N,refetch:v}=E({limit:500}),[p]=B(),[w,x]=s.useState([]),[C,h]=s.useState(!1),I=[{id:"liab-101",name:"HDFC Commercial Term Loan (8.5% Interest)",type:"Term Loan",principal:6e5,outstanding:45e4,ratePct:8.5,emi:18500,start:"2024-01-10",bank:"HDFC Bank",status:"Active"},{id:"liab-102",name:"ICICI Bank Overdraft & Working Capital Line",type:"Working Capital",principal:5e5,outstanding:168e3,ratePct:9.2,emi:0,start:"2025-04-01",bank:"ICICI Bank",status:"Active"},{id:"liab-103",name:"SBI Equipment & Hardware Lease",type:"Equipment Finance",principal:35e4,outstanding:12e4,ratePct:8,emi:11200,start:"2025-02-15",bank:"State Bank of India (SBI)",status:"Active"}],f=s.useMemo(()=>{const e=(b?.items??[]).map(V);return e.length>0?e:I},[b]),i=s.useMemo(()=>f.filter(e=>!(n.company&&n.company!=="All Companies"&&e.company&&e.company!==n.company)),[f,n.company]),L=s.useMemo(()=>i.reduce((e,a)=>e+(Number(a.outstanding)||0),0),[i]),A=s.useMemo(()=>i.reduce((e,a)=>e+(Number(a.principal)||0),0),[i]),M=s.useMemo(()=>i.reduce((e,a)=>e+(Number(a.emi)||0),0),[i]),T=s.useMemo(()=>i.filter(e=>e.status==="Active"||!e.status).length,[i]),F=s.useMemo(()=>i.map(e=>{const a=e.type==="Working Capital"||e.type==="Overdraft Line",u=a?e.principal*1.2:e.principal,g=e.outstanding,m=a&&u>0?g/u*100:0;let r="green";return a?m>90?r="red":m>70&&(r="yellow"):e.outstanding/(e.principal||1)<.2?r="green":e.outstanding/(e.principal||1)<.7?r="yellow":r="red",{...e,limit:u,utilized:g,utilPct:m,health:r,isDynamic:a}}),[i]);return t.jsxs("div",{className:"flex flex-col flex-1 h-full min-h-0 overflow-hidden bg-slate-50/50 dark:bg-slate-950/50",children:[t.jsx(O,{title:"Liabilities & Debt Facilities",subtitle:"Track commercial bank loans, overdraft lines, monthly EMIs, and debt obligations",accentVar:"--mod-finance",showMonthYearFilter:!1}),t.jsx("div",{className:"shrink-0 bg-white dark:bg-slate-900 border-b border-slate-200 dark:border-slate-800 px-4 py-2 flex items-center justify-between flex-wrap gap-2",children:t.jsx(G,{showMonths:!0,actions:t.jsx("div",{className:"flex items-center gap-2",children:t.jsxs("button",{type:"button",onClick:()=>l(`${c}/liabilities/new`),className:"h-8 px-3 rounded-md bg-blue-600 hover:bg-blue-700 text-white text-xs font-semibold inline-flex items-center gap-1.5 shadow-2xs transition-colors cursor-pointer",children:[t.jsx($,{className:"w-3.5 h-3.5"})," Add Facility"]})})})}),t.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 p-3 bg-white dark:bg-slate-900 border-b border-slate-200 dark:border-slate-800",children:[t.jsx(o,{label:"Total Outstanding Debt",value:L,trend:-3.8,accent:"mod-expense"}),t.jsx(o,{label:"Active Credit Facilities",value:T,trend:0,accent:"mod-finance",isCount:!0}),t.jsx(o,{label:"Monthly EMI Outflow",value:M,trend:-1.2,accent:"mod-cost"}),t.jsx(o,{label:"Sanctioned Credit Limit",value:A,trend:5,accent:"mod-budget"})]}),t.jsx("div",{className:"p-3 pb-3 flex-1 min-h-0 flex flex-col overflow-hidden",children:t.jsx(H,{selectable:!0,selectedIds:w,onSelectionChange:x,bulkActions:[{id:"delete",label:"Delete",icon:t.jsx(y,{className:"w-3.5 h-3.5 text-rose-600"}),variant:"destructive",onAction:async e=>{if(confirm(`Delete ${e.length} selected liability(ies)?`)){for(const a of e)try{await p(a.id).unwrap()}catch{}k.success(`Deleted ${e.length} liability(ies)`),x([])}}}],rows:F,rowKey:e=>e.id,searchKeys:["name","type","bank","status"],searchPlaceholder:"Search loans, facilities, lenders...",storageKey:"finance-liabilities-v2",initialPageSize:15,fetching:N||j||C,onRefresh:async()=>{h(!0),await v(),setTimeout(()=>h(!1),500)},fillHeight:!0,columns:[{key:"id",label:"FACILITY ID",width:"110px",sortable:!0},{key:"name",label:"LIABILITY / FACILITY NAME",sortable:!0,render:e=>t.jsxs("div",{className:"flex items-center gap-2 py-0.5",children:[t.jsx("div",{className:"w-7 h-7 rounded-md bg-blue-50 dark:bg-blue-950/60 border border-blue-200 dark:border-blue-800 text-blue-600 dar
1k:text-blue-400 flex items-center justify-center shrink-0",children:t.jsx(Y,{className:"w-3.5 h-3.5"})}),t.jsxs("div",{className:"flex flex-col min-w-0",children:[t.jsx("span",{className:"font-bold text-slate-800 dark:text-slate-200 text-xs truncate",children:e.name}),t.jsxs("span",{className:"text-[10px] text-slate-500 font-medium",children:["Lender: ",e.bank||"Scheduled Commercial Bank"]})]})]})},{key:"type",label:"TYPE",width:"150px",sortable:!0,render:e=>t.jsx(q,{name:e.type})},{key:"principal",label:"SANCTIONED LIMIT",align:"right",width:"140px",sortable:!0,sortValue:e=>e.isDynamic?e.limit:e.principal,render:e=>t.jsx("span",{className:"font-data font-semibold text-slate-800 dark:text-slate-200",children:d(e.isDynamic?e.limit:e.principal)})},{key:"outstanding",label:"OUTSTANDING",align:"right",width:"140px",sortable:!0,sortValue:e=>e.outstanding,render:e=>t.jsx("span",{className:"font-data font-bold text-rose-600 dark:text-rose-400",children:d(e.outstanding)})},{key:"emi",label:"MONTHLY EMI",align:"right",width:"120px",sortable:!0,sortValue:e=>e.emi??0,render:e=>e.emi?t.jsx("span",{className:"font-data font-medium text-slate-700 dark:text-slate-300",children:d(e.emi)}):t.jsx("span",{className:"text-slate-400 text-xs",children:"â"})},{key:"ratePct",label:"INTEREST",align:"right",width:"90px",sortable:!0,sortValue:e=>e.ratePct??0,render:e=>e.ratePct?t.jsxs("span",{className:"font-data font-semibold text-slate-800 dark:text-slate-200",children:[e.ratePct,"%"]}):t.jsx("span",{className:"text-slate-400",children:"â"})},{key:"status",label:"STATUS",width:"100px",align:"center",sortable:!0,render:e=>t.jsx("span",{className:"text-[10px] px-2.5 py-0.5 rounded-full bg-emerald-50 text-emerald-700 dark:bg-emerald-950/60 dark:text-emerald-300 border border-emerald-200 dark:border-emerald-800 font-bold",children:e.status||"Active"})},{key:"actions",label:"ACTIONS",width:"90px",align:"center",sortable:!1,fixed:"right",render:e=>t.jsxs("div",{className:"flex items-center gap-1 justify-center",onClick:a=>a.stopPropagation(),children:[t.jsx("button",{type:"button",onClick:()=>l(`${c}/liabilities/${e.id}/edit`),className:"p-1 rounded hover:bg-slate-100 dark:hover:bg-slate-800 text-slate-600 dark:text-slate-400 transition-colors cursor-pointer",title:"Edit Facility",children:t.jsx(R,{className:"w-3.5 h-3.5"})}),t.jsx("button",{type:"button",onClick:async()=>{confirm(`Are you sure you want to delete "${e.name}"?`)&&(await p(e.id).unwrap(),k.success("Liability deleted successfully"))},className:"p-1 rounded hover:bg-rose-50 dark:hover:bg-rose-950/50 text-rose-600 transition-colors cursor-pointer",title:"Delete Facility",children:t.jsx(y,{className:"w-3.5 h-3.5"})})]})}],onRowClick:e=>l(`${c}/liabilities/${e.id}/edit`)})})]})}export{ie as LiabilitiesLayout,z as LiabilitiesPage,ie 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.