PageSourceSearch

https://portal.chip-in.asia/build/routes/_app/advance/repayments/_index/route-J2NXJP7P.js

js chip-in.asia collected 2026-09-24 08:54:37 UTC 10,894 bytes, 1 lines download raw bytes

1import{a as H}from"/build/_shared/chunk-QL5OZGUM.js";import{a as ue}from"/build/_shared/chunk-V5UC4JVV.js";import{a as B}from"/build/_shared/chunk-OIL7BHFR.js";import{c as O}from"/build/_shared/chunk-62AJVCSC.js";import"/build/_shared/chunk-3RKN6HFN.js";import{a as me}from"/build/_shared/chunk-YNXIJMD2.js";import{a as pe}from"/build/_shared/chunk-WNS7H6YP.js";import"/build/_shared/chunk-KFJ6Y4LO.js";import{f as ce,i as de}from"/build/_shared/chunk-NGZY4SNM.js";import{a as De}from"/build/_shared/chunk-UIBGULCG.js";import"/build/_shared/chunk-AIRXGVP3.js";import{a as re,g as ne,j as T,r as ie}from"/build/_shared/chunk-WSSHVIMB.js";import{u as oe}from"/build/_shared/chunk-WMIPC762.js";import"/build/_shared/chunk-BJ4RFIBQ.js";import"/build/_shared/chunk-YTWJGXMQ.js";import"/build/_shared/chunk-EGXYMZPM.js";import{b as q}from"/build/_shared/chunk-3RN4ZVR6.js";import"/build/_shared/chunk-HYYMZHF4.js";import{f as le}from"/build/_shared/chunk-RWX2RI66.js";import{Aa as J,Ba as X,C as G,Ca as Z,Da as ee,Ea as te,Fa as ae,Zb as se,a as z,b as V,hb as F,ka as w,la as P,ma as R,na as C,pa as A,ya as $}from"/build/_shared/chunk-EOJS7VXF.js";import"/build/_shared/chunk-LHPP46I3.js";import"/build/_shared/chunk-I7IIOYZ4.js";import"/build/_shared/chunk-L327ZUMW.js";import"/build/_shared/chunk-7YZTNJBA.js";import{d as b}from"/build/_shared/chunk-TY43B2WU.js";import"/build/_shared/chunk-RSV5R2LB.js";import{A as h,a as Y,l as j}from"/build/_shared/chunk-X4AHNLAR.js";import{d as c}from"/build/_shared/chunk-DTKMK5PW.js";var xe=c(Y());var Se="/resources/advance/repayments",W=({...s}={})=>ie({...s,link:Se});var _=c(De()),fe=c(Y());var o=c(h()),k=new Date,N=(0,_.default)(),u={pastYear:N.subtract(1,"year").add(1,"day").toDate(),pastThreeMonths:N.subtract(3,"months").add(1,"day").toDate(),pastOneMonth:N.subtract(1,"month").add(1,"day").toDate(),past4Weeks:N.subtract(4,"week").add(1,"day").toDate(),pastWeek:N.subtract(1,"week").add(1,"day").toDate()},ye={from:u.pastYear,to:k},Ne="allTime",M=[{label:"Today",value:"today",startDate:k},{label:"Last 7 days",value:"last7Days",startDate:u.pastWeek},{label:"Last 4 weeks",value:"last4Weeks",startDate:u.past4Weeks},{label:"Last 3 months",value:"last3Months",startDate:u.pastThreeMonths},{label:"Last 12 months",value:"last12Months",startDate:u.pastYear},{label:"All time",value:"allTime",startDate:u.pastYear},{label:"Custom",value:"custom",disabled:!0}],ve=({range:s,setRange:r,companyCreatedAt:i})=>{let[d,p]=(0,fe.useState)(Ne),D=a=>{p(a);let n=M.find(I=>I.value===a);if(ue(n,"Invalid selection"),a==="custom")return;let m=a==="allTime"&&i?new Date(i):n.startDate;r({from:m,to:k})},f=a=>{if(!a)return;r(m=>(m?.from&&m?.to&&(a.from=a.to===m.to?a.from:a.to,a.to=void 0),a));let n=M.find(m=>m.startDate&&(0,_.default)(m.startDate).isSame(a.from,"day")&&a.to&&(0,_.default)(a.to).isSame(k,"day"));p(n?.value||"custom")};return(0,o.jsx)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5",children:(0,o.jsxs)("div",{className:"flex",children:[(0,o.jsxs)(w,{value:d,onValueChange:D,children:[(0,o.jsx)(R,{asChild:!0,children:(0,o.jsxs)(b,{variant:"tertiary",className:"relative pr-8 rounded-r-none max-sm:h-9 font-medium",children:[(0,o.jsx)(P,{placeholder:"Select duration",children:M.find(a=>a.value===d)?.label}),(0,o.jsx)(G,{className:"absolute right-2 top-0 bottom-0 my-auto h-[calc(100%-16px)] max-h-5 opacity-50 text-black"})]})}),(0,o.jsx)(C,{align:"center",children:M.map(a=>(0,o.jsx)(A,{value:a.value,disabled:!!a.disabled,children:a.label},a.value))})]}),(0,o.jsx)(se,{triggerClassName:"rounded-l-none -ml-[1px] pl-2.5 max-sm:h-9",defaultMonth:i??u.pastYear,selected:s??{from:i??u.pastYear,to:k},onSelect:f,align:"center"})]})})};var x=c(Y()),t=c(h()),ge=({advanceIds:s})=>{let[r,i]=j(),[d,p]=(0,x.useState)(!1),D=q(),f=[{value:"xlsx",label:"Excel"}],[a,n]=(0,x.useState)(!1),m=(0,x.useMemo)(()=>s?[...new Set(s.filter(Boolean))].map(l=>({key:l,label:l})):[],[s]),I=l=>{i(y=>{let v=new URLSearchParams(y);return l?v.set("advance_id",l):v.delete("advance_id"),v},{replace:!0})},Q=r.get("advance_id"),{mutate:U,isPending:be}=le({mutationFn:async()=>{let l=`/resources/advance/repayments/download/${Q}`,y=new FormData;return y.append("csrf",D),p(!0),fetch(l,{method:"POST",body:y}
1).then(g=>g.status!==200?g.json().then(E=>{throw F.error(E.message),n(!0),new Error}):g).finally(()=>{p(!1)})},onSuccess:async l=>{let y,v,g;try{y=await l.json();let S=l.headers.get("content-disposition");if(!S)throw new Error("Missing filename");if(v=S.split("filename=")[1],!S)throw new Error("Missing filename");if(g=y?.data,!g)throw new Error("Missing encoding")}catch(S){console.log(S);return}let E=`data:application/vnd.ms-excel;base64,${g}`,L=document.createElement("a");L.href=E,L.download=v,L.click()}}),K=(0,x.useCallback)(async l=>{if(l.preventDefault(),d){F.error("A download is currently in progress. Please try again once it is complete.");return}if(!a){n(!0);return}if(d){F.error("A download is currently in progress. Please try again once it is complete.");return}U()},[U,a,d]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("form",{className:"contents",onSubmit:K,children:[(0,t.jsx)(b,{loading:be,type:"submit",className:"pl-2 max-sm:h-9",label:"Download"}),(0,t.jsx)("input",{readOnly:!0,type:"hidden",name:"_method",value:"create"})]}),(0,t.jsx)($,{open:a,onOpenChange:n,children:(0,t.jsxs)(X,{className:"max-w-[500px]",children:[(0,t.jsxs)(Z,{className:"space-y-2 px-6 pt-6 pb-6",children:[(0,t.jsx)(te,{className:"font-semibold sm:text-lg",children:"Download Repayments"}),(0,t.jsx)(ae,{className:"text-danger",children:(0,t.jsxs)("div",{className:"text-dim space-y-2",children:[(0,t.jsx)("p",{className:"text-sm",children:"Select advance ID repayments to download"}),(0,t.jsxs)(w,{value:Q??"",onValueChange:I,children:[(0,t.jsx)(R,{className:"pr-7 w-fit text-left text-black-1 pt-2",autoFocus:!0,children:(0,t.jsx)(P,{placeholder:"Select advance ID"})}),(0,t.jsx)(C,{position:"popper",align:"start",className:"z-10 max-h-72",children:m.map(l=>(0,t.jsx)(A,{value:l.key,children:l.label},l.key))})]})]})})]}),(0,t.jsx)(z,{}),(0,t.jsxs)(ee,{className:"gap-2.5 px-6 pt-[18px] pb-[18px] justify-between",children:[(0,t.jsx)(oe,{defaultValue:f[0].value,itemsWithLabel:f}),(0,t.jsxs)("div",{className:"flex gap-2.5",children:[(0,t.jsx)(J,{asChild:!0,children:(0,t.jsx)(b,{type:"button",variant:"tertiary",children:(0,t.jsxs)("span",{className:"flex items-center h-5",children:["Cancel",(0,t.jsx)("kbd",{className:"inline-block max-lg:hidden bg-outline/90 -mr-0.5 ml-2.5 px-1 rounded font-sans font-semibold text-dim text-xs leading-[18px]",children:"Esc"})]})})}),(0,t.jsx)(b,{type:"button",variant:"primary",onClick:l=>{n(!1),K(l)},children:(0,t.jsx)("span",{className:"flex items-center h-5",children:"Download"})})]})]})]})})]})};var e=c(h()),ke=()=>[{title:"CHIP Advance | Repayments"}],we={breadcrumb:[{label:"Repayments",link:"/advance/repayments"},{label:"",link:""}],activeSidebarLink:"/advance/repayments"},Pe=[{status:"completed",variant:"green",label:"Created"},{status:"remitted",variant:"grey",label:"Sent"}],he=s=>Pe.find(r=>r.status===s)?.variant||"grey",Re=[{accessorKey:"advance_id",cell:({row:s})=>(0,e.jsx)("div",{className:"w-[150px]",children:s.advance_id??"\uFF0D"})},{accessorKey:"amount",header:()=>"Repayment amount",cell:({row:s})=>(0,e.jsx)("div",{className:"w-[150px]",children:O({currency:"MYR"}).format(s.amount??0)})},{accessorKey:"status",header:()=>"Status",cell:({row:s})=>(0,e.jsx)("div",{className:"w-[150px]",children:(0,e.jsx)(V,{variant:he(s.status),className:"px-2 rounded-lg text-xs capitalize",children:B(s.status)})})},{accessorKey:"remit_date",tableHeaderCellProps:{className:"w-32 pr-40"},header:()=>"Payment date",align:"left",tableCellProps:{className:"text-[#60646C]"},cell:({row:s})=>(0,e.jsx)(e.Fragment,{children:ce(new Date(s.remit_date),"DD/MM/YYYY")})}],Ce=s=>s?.length?s.map(r=>({id:r.id,left:(0,e.jsxs)("div",{className:"flex flex-col space-y-1 w-full overflow-hidden",children:[(0,e.jsx)("div",{className:"inline-flex",children:(0,e.jsxs)("div",{className:"inline-flex flex-wrap flex-1 items-center gap-x-1.5 gap-y-0.5",children:[(0,e.jsx)("div",{className:"flex font-medium text-base truncate leading-5",children:(0,e.jsx)("span",{className:"font-medium",children:O({currency:"MYR"}).format(r.amount??0)})}),(0,e.jsx)("p",{className:"-ml-0.5 pt-0.5 w-8 max-w-8 tabular-nums text-black-3 tracking-normal",children:"MYR"}),(0,e.jsx)("div",{className:"flex items-center gap-x-1.5 text-[13px]",children:(0,e.jsx)(V,{variant:he(r.status),className:"px-2 rounded-lg text-xs capitalize",children:B(r.status)})})]})}),(0,e.jsxs)("div",{className:"inline-flex gap-x-1.5 text-[13px] text-dim leading-4",children:[(0,e.jsx)("div",{className:"flex-grow 
1space-y-1 overflow-hidden",children:(0,e.jsxs)("div",{className:"flex items-center gap-x-[3px] text-ellipsis",children:[(0,e.jsx)("span",{className:"text-dim",children:"Advance ID :"}),(0,e.jsx)("p",{className:"truncate",children:r.advance_id})]})}),(0,e.jsx)("div",{className:"flex-shrink-0 text-dim text-xs leading-4",children:(0,e.jsx)("p",{className:"truncate",children:de(new Date(r.remit_date))})})]})]}),data:r})):[];function Ae(){let[s,r]=(0,xe.useState)(ye),{data:i,isFetching:d,isLoading:p}=W({query:{...s?.from&&{"remit_date.gte":H(s.from)},...s?.to&&{"remit_date.lte":H(s.to)}}}),{data:D}=W({ignoredParams:["advance_id"]}),f=D?.data?.map(n=>n.advance_id),a=[{label:"All",value:""},...[...new Set(f?.filter(Boolean)??[])].map(n=>({label:n,value:n}))];return(0,e.jsxs)("div",{children:[(0,e.jsx)(me,{title:"Repayment History",childrenRight:(0,e.jsx)(ge,{advanceIds:f})}),(0,e.jsxs)("div",{className:"flex sm:flex-row flex-col justify-between space-y-2 lg:pb-2",children:[(0,e.jsx)(T,{filters:[{key:"advance_id",type:"select",options:a,label:"Advance ID",title:"Filter by Advance ID"},{key:"amount",label:"Repayment amount",type:"number",variant:"price",numberVariant:"v1"},{key:"status",type:"select",options:[{label:"All",value:""},{label:"Completed",value:"completed"},{label:"Remitted",value:"remitted"}],label:"Status",title:"Filter by Status"},{key:"remit_date",type:"date",label:"Payment date",title:"Filter by Payment date",dateVariant:"v1"}],children:(0,e.jsxs)("div",{className:"inline-flex md:flex md:flex-row gap-x-2",children:[(0,e.jsx)(T.ButtonFilters,{}),(0,e.jsx)(T.ButtonClear,{})]})}),(0,e.jsx)("div",{className:"pb-4",children:(0,e.jsx)(ve,{range:s,setRange:r})})]}),(0,e.jsx)("div",{className:"sm:hidden mt-2 border-slate-200 border-y w-full",children:(0,e.jsx)(pe,{isLoading:p,rows:Ce(i?.data),rowClass:"h-auto py-3",showChevron:!0})}),(0,e.jsx)(re,{tableHeaderProps:{className:"border-slate-300"},columns:Re,isLoading:p,isFetching:d,data:i?.data,rightShadowPadding:37}),i?.meta?.pagination&&(0,e.jsx)(ne,{pagination:i.meta.pagination})]})}var Fe=Ae;export{Fe as default,we as handle,ke as meta};

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.