UNPKG

@accounter/client

Version:
1 lines โ€ข 8.89 kB
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{r}from"./error-handling-CKe_iwSC.js";import{s as i,t as a}from"./routes-D0AKaVmS.js";import{Ct as o,Et as s,Lt as c,M as l,R as u,Vt as d,Zn as f,dt as p,k as m,n as h,tt as g}from"./common-3blB_OGJ.js";import{n as _,r as v,t as y}from"./similar-transactions-modal-BX9gAFrJ.js";import{dt as b,mt as x,pt as S}from"./select-Bp1lD5cE.js";import{t as C}from"./button-DUNsVBiu.js";import{$c as w,Bc as T,Ul as E,Zc as D,a as O,c as k,d as A,i as j,n as M,o as N,r as P,s as F,t as I}from"./table-B6QCIQQv.js";import{M as L,Va as R,ls as z}from"./graphql-lcoKwSC9.js";var B=e(n(),1),V=t(),H=({transaction:e})=>{let t=`effectiveDate`in e?e.effectiveDate:void 0;return(0,V.jsxs)(`div`,{className:`flex flex-col justify-center`,children:[(0,V.jsx)(`div`,{children:t&&E(new Date(t),`dd/MM/yy`)}),e.sourceEffectiveDate&&(0,V.jsxs)(`div`,{className:`text-xs text-gray-500`,children:[`(Originally `,E(new Date(e.sourceEffectiveDate),`dd/MM/yy`),`)`]})]})},U=({transaction:e})=>{let t=`eventDate`in e?e.eventDate:void 0;return(0,V.jsx)(`div`,{className:`flex flex-col justify-center`,children:t&&E(new Date(t),`dd/MM/yy`)})},W=({transaction:e})=>{let t=`amount`in e?e.amount:void 0,{isFee:n}=e;return(0,V.jsxs)(`div`,{style:{color:Number(t?.raw)>0?`green`:`red`,whiteSpace:`nowrap`},children:[t?.formatted,n&&(0,V.jsx)(T,{variant:`secondary`,className:`ml-2 text-xs font-semibold`,children:`Fee`}),(0,V.jsx)(`br`,{}),e.cryptoExchangeRate&&(0,V.jsxs)(`span`,{style:{color:`gray`,marginLeft:`0.5rem`},children:[`(Rate: ${e.cryptoExchangeRate.rate})`,(0,V.jsx)(`br`,{}),t?.raw?`${f(t.raw*e.cryptoExchangeRate.rate)}$`:null]})]})},G=({transaction:e})=>{let{account:t}=e,n=_(t.type),r=v(t.type),i=t.name;return(0,V.jsxs)(`div`,{className:`flex flex-col justify-center`,children:[(0,V.jsx)(`p`,{children:(0,V.jsx)(o,{content:r,children:n})}),(0,V.jsx)(`p`,{children:i})]})},K=({transaction:e})=>{let t=`sourceDescription`in e?e.sourceDescription:`Missing`;return(0,V.jsx)(`div`,{className:`flex flex-wrap`,children:(0,V.jsx)(`div`,{className:`flex flex-col justify-center`,children:t})})},q=({transaction:e})=>(0,V.jsx)(`div`,{className:`flex flex-wrap`,children:(0,V.jsx)(`div`,{className:`flex flex-col justify-center`,children:e.referenceKey})}),J=({pause:e}={})=>{let[{data:t,fetching:n,error:i},a]=z({query:L,pause:e});(0,B.useEffect)(()=>{i&&(console.error(`Error fetching security businesses: ${i}`),r.error(`Error`,{description:`Unable to fetch security businesses`}))},[i]);let o=(0,B.useMemo)(()=>t?.allSecurityBusinesses?.slice().sort((e,t)=>e.name.localeCompare(t.name))??[],[t]);return{fetching:n,refresh:()=>a(),securityBusinesses:o,selectableSecurityBusinesses:(0,B.useMemo)(()=>o.map(e=>({value:e.id,label:e.securityInfo?.isin?`${e.name} ยท ${e.securityInfo.isin}`:e.name})),[o])}};function Y({transaction:e,onChange:t}){let{id:n,counterparty:r,missingInfoSuggestions:c,id:u,sourceDescription:d,enableEdit:f,isFee:m,chargeType:h}=e,_=h===`ForeignSecuritiesCharge`&&!m,v=!!c?.business&&f,b=v?c?.business?.name:`Missing`,S=v?c?.business?.id:null,T=r?.name??b,[E,D]=(0,B.useState)(!1),{updateTransaction:O,fetching:k}=s(),A=(0,B.useCallback)(async e=>{await O({transactionId:u,fields:{counterpartyId:e}}),D(!0)},[u,O]),j=(0,B.useCallback)(async e=>{await A(e),t?.()},[A,t]),{selectableBusinesses:M,fetching:N}=p(),{selectableSecurityBusinesses:P,fetching:F}=J({pause:!_}),{userContext:I}=(0,B.useContext)(w),L=I?.context.foreignSecuritiesBusinessId??null,R=(0,B.useMemo)(()=>{if(!_)return M;let e=M.find(e=>e.value===L);return e?[...P,e]:P},[_,M,P,L]),[z,H]=(0,B.useState)(S??null),[U,W]=(0,B.useState)(d);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{className:`flex flex-wrap flex-col justify-center`,children:r?.id?(0,V.jsx)(i,{to:a.BUSINESSES.DETAIL(r.id),target:`_blank`,rel:`noreferrer`,onClick:e=>e.stopPropagation(),className:`inline-flex items-center font-semibold`,children:T}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(g,{options:R,value:z,onChange:H,search:U,onSearchChange:W,placeholder:`Choose or create a business`,empty:U?(0,V.jsx)(l,{description:U,onAdd:j}):null}),(0,V.jsx)(o,{content:`Approve`,children:(0,V.jsx)(C,{variant:`outline`,size:`icon`,onClick:()=>z&&A(z),disabled:k||N||_&&F||!z,children:(0,V.jsx)(x,{className:`size-4`})})})]})}),(0,V.jsx)(y,{transactionId:n,counterpartyId:r?.id??z,open:E,onOpenChange:D,onClose:t})]})}var X=[{accessorKey:`counterparty.name`,header:({column:e})=>(0,V.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Counterparty`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,V.jsx)(b,{className:`ml-2 h-4 w-4`}):(0,V.jsx)(S,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,V.jsx)(Y,{transaction:e.original})},{accessorKey:`eventDate`,sortFn:e=>`eventDate`in e.original&&e.original.eventDate?new Date(e.original.eventDate).getTime():0,header:({column:e})=>(0,V.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Event Date`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,V.jsx)(b,{className:`ml-2 h-4 w-4`}):(0,V.jsx)(S,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,V.jsx)(U,{transaction:e.original})},{accessorKey:`effectiveDate`,sortFn:e=>`effectiveDate`in e.original&&e.original.effectiveDate?new Date(e.original.effectiveDate).getTime():0,header:({column:e})=>(0,V.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Debit Date`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,V.jsx)(b,{className:`ml-2 h-4 w-4`}):(0,V.jsx)(S,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,V.jsx)(H,{transaction:e.original})},{accessorKey:`amount.raw`,header:({column:e})=>(0,V.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Amount`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,V.jsx)(b,{className:`ml-2 h-4 w-4`}):(0,V.jsx)(S,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,V.jsx)(W,{transaction:e.original})},{accessorKey:`account.name`,header:({column:e})=>(0,V.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Account`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,V.jsx)(b,{className:`ml-2 h-4 w-4`}):(0,V.jsx)(S,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,V.jsx)(G,{transaction:e.original})},{accessorKey:`sourceDescription`,header:({column:e})=>(0,V.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Description`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,V.jsx)(b,{className:`ml-2 h-4 w-4`}):(0,V.jsx)(S,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,V.jsx)(K,{transaction:e.original})},{accessorKey:`referenceKey`,header:({column:e})=>(0,V.jsxs)(C,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[`Reference#`,e.getIsSorted()&&(e.getIsSorted()===`asc`?(0,V.jsx)(b,{className:`ml-2 h-4 w-4`}):(0,V.jsx)(S,{className:`ml-2 h-4 w-4`}))]}),cell:({row:e})=>(0,V.jsx)(q,{transaction:e.original})}],Z={accessorKey:`id`,header:`Actions`,cell:({row:e})=>e.original.enableEdit?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(c,{onClick:()=>e.original.editTransaction(e.original.id),tooltip:`Edit Transaction`}),(0,V.jsx)(m,{chargeId:e.original.chargeId,transactionId:e.original.id,onDone:e.original.onUpdate})]}):e.original.enableChargeLink?(0,V.jsx)(d,{chargeId:e.original.chargeId}):null},Q=({transactionsProps:e,onChange:t,enableEdit:n,enableChargeLink:r,chargeType:i})=>{let[a,o]=(0,B.useState)(void 0),[s,c]=(0,B.useState)([]),l=(0,B.useMemo)(()=>e.map(e=>D(R,e)),[e]),d=(0,B.useMemo)(()=>l.map(e=>({...e,editTransaction:o,onUpdate:t||(()=>{}),enableEdit:n,enableChargeLink:r,chargeType:i})),[l,n,r,i,t]),f=(0,B.useMemo)(()=>n||r?[...X,Z]:X,[n,r]),p=k({features:F,data:d,columns:f,onSortingChange:c,state:{sorting:s},initialState:{pagination:{pageIndex:0,pageSize:100},sorting:[{id:`eventDate`,desc:!0}]}});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(I,{children:[(0,V.jsx)(O,{children:p.getHeaderGroups().map(e=>(0,V.jsx)(N,{children:e.headers.map(e=>(0,V.jsx)(j,{colSpan:e.colSpan,children:e.isPlaceholder?null:A(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,V.jsx)(M,{children:p.getRowModel().rows?.length?p.getRowModel().rows.map(e=>(0,V.jsx)(N,{children:e.getVisibleCells().map(e=>(0,V.jsx)(P,{children:A(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,V.jsx)(N,{children:(0,V.jsx)(P,{colSpan:X.length,className:`h-24 text-center`,children:`No results.`})})})]}),p.getPageCount()>1&&(0,V.jsx)(`div`,{className:`flex items-center justify-end space-x-2 py-4`,children:(0,V.jsx)(h,{currentPageIndex:p.state.pagination.pageIndex,totalPages:p.getPageCount(),onChange:e=>p.setPageIndex(e)})}),(0,V.jsx)(u,{transactionID:a,close:()=>o(void 0),onChange:t??(()=>{})})]})};export{G as a,H as c,K as i,Y as n,W as o,q as r,U as s,Q as t};