@accounter/client
Version:
Accounter client application
1 lines • 11.1 kB
JavaScript
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{Xo as r,sr as i}from"./error-handling-4e5czINv.js";import{i as a,n as o}from"./routes-BB3QY9SQ.js";import{dt as s}from"./select-CBL38KW3.js";import{Kt as c,St as l,Ut as u,ht as d,ir as f,it as p,p as m,r as h,tn as g,vt as _}from"./common-GyBLHXtP.js";import{t as v}from"./arrow-up-down-DdozU_OU.js";import{c as y,d as b,h as x,l as S,u as C}from"./separator-CewkthSK.js";import{t as w}from"./funnel-L6xwt0TI.js";import{t as T}from"./button-DUNsVBiu.js";import{$c as E,Gc as D,Hc as O,Kc as k,Ul as A,Vc as j,Wc as M,Xc as N,a as P,c as ee,d as F,i as I,jl as L,n as R,nl as z,o as B,qc as V,r as H,s as U,t as W}from"./table-HMkVegx0.js";import{t as G}from"./sub-BufEc88I.js";import{t as K}from"./MultiSelect-Ca5e7qcI.js";import{t as q}from"./use-url-query-BH1w9BvL.js";import{t as J}from"./page-layout-Dzb0muId.js";var Y=e(n(),1),X=e(L(),1),Z=t();function Q({filter:e,setFilter:t,closeModal:n}){let{userContext:r}=(0,Y.useContext)(E),i=N({defaultValues:{ownerIDs:r?.context.adminBusinessId?[r.context.adminBusinessId]:void 0,toDate:A(new Date,`yyyy-MM-dd`),fromDate:A(G(new Date,{years:1}),`yyyy-MM-dd`),...e}}),{control:a,handleSubmit:o}=i,{selectableFinancialEntities:s,fetching:l}=d(),u=e=>{t(e),n()};function m(){t({}),n()}return(0,Z.jsxs)(Z.Fragment,{children:[l?(0,Z.jsx)(`div`,{children:`Loading...`}):(0,Z.jsx)(`div`,{}),(0,Z.jsx)(j,{...i,children:(0,Z.jsxs)(`form`,{onSubmit:o(u),children:[(0,Z.jsxs)(c,{cols:2,children:[(0,Z.jsx)(M,{name:`ownerIDs`,control:a,defaultValue:e.ownerIDs,render:({field:e,fieldState:t})=>(0,Z.jsxs)(D,{children:[(0,Z.jsx)(k,{children:`Owners`}),(0,Z.jsx)(O,{children:(0,Z.jsx)(K,{...e,data:s,value:e.value??[],disabled:l,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,error:t.error?.message,withinPortal:!0})}),(0,Z.jsx)(V,{})]})}),(0,Z.jsx)(M,{name:`businessIDs`,control:a,defaultValue:e.businessIDs,render:({field:e,fieldState:t})=>(0,Z.jsxs)(D,{children:[(0,Z.jsx)(k,{children:`Financial Entities`}),(0,Z.jsx)(O,{children:(0,Z.jsx)(K,{...e,data:s,value:e.value??[],disabled:l,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,error:t.error?.message,withinPortal:!0})}),(0,Z.jsx)(V,{})]})}),(0,Z.jsx)(M,{name:`fromDate`,control:a,defaultValue:e.fromDate,rules:{pattern:{value:f,message:`Date must be in format yyyy-mm-dd`}},render:({field:e,fieldState:t})=>(0,Z.jsxs)(D,{children:[(0,Z.jsx)(k,{htmlFor:`documents-from-date`,children:`From Date`}),(0,Z.jsx)(O,{children:(0,Z.jsx)(p,{id:`documents-from-date`,onChange:t=>{t!==e.value&&e.onChange(t)},value:e.value??void 0,"aria-invalid":!!t.error})}),(0,Z.jsx)(V,{})]})}),(0,Z.jsx)(M,{name:`toDate`,control:a,defaultValue:e.toDate,rules:{pattern:{value:f,message:`Date must be in format yyyy-mm-dd`}},render:({field:e,fieldState:t})=>(0,Z.jsxs)(D,{children:[(0,Z.jsx)(k,{htmlFor:`documents-to-date`,children:`To Date`}),(0,Z.jsx)(O,{children:(0,Z.jsx)(p,{id:`documents-to-date`,onChange:t=>{t!==e.value&&e.onChange(t)},value:e.value??void 0,"aria-invalid":!!t.error})}),(0,Z.jsx)(V,{})]})}),(0,Z.jsx)(M,{name:`unmatched`,control:a,render:({field:t})=>(0,Z.jsxs)(D,{className:`flex flex-row items-center justify-between rounded-lg border p-3 shadow-sm`,children:[(0,Z.jsx)(`div`,{className:`space-y-0.5`,children:(0,Z.jsx)(k,{children:`Unmatched only`})}),(0,Z.jsx)(O,{children:(0,Z.jsx)(_,{defaultChecked:e.unmatched??!1,onCheckedChange:t.onChange})})]})})]}),(0,Z.jsxs)(`div`,{className:`flex justify-center mt-5 gap-3`,children:[(0,Z.jsx)(`button`,{type:`submit`,disabled:l,className:`text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg`,children:`Filter`}),(0,Z.jsx)(`button`,{type:`button`,className:`text-white bg-orange-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-orange-600 rounded-sm text-lg`,onClick:m,children:`Clear`}),(0,Z.jsx)(`button`,{type:`button`,className:`text-white bg-rose-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-rose-600 rounded-sm text-lg`,onClick:n,children:`Cancel`})]})]})})]})}function te({filter:e={},setFilter:t,initiallyOpened:n=!1}){let[r,i]=(0,Y.useState)(n),[s,c]=(0,Y.useState)(!a(e)),{get:l,set:u}=q();(0,Y.useEffect)(()=>{let t=o(e);t!==l(`documentsFilters`)&&u(`documentsFilters`,t)},[e,l,u]);let d=(0,Y.useCallback)(n=>{(0,X.default)(n,e)||(t(n),c(!a(n)))},[e,t]);return(0,Z.jsxs)(`div`,{className:`flex flex-row gap-5 items-center`,children:[(0,Z.jsx)(m,{opened:r,onClose:()=>i(!1),content:(0,Z.jsx)(Q,{filter:e,setFilter:d,closeModal:()=>i(!1)}),modalSize:`xl`}),(0,Z.jsx)(g,{inline:!0,size:16,disabled:!s,children:(0,Z.jsx)(T,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>i(!0),children:(0,Z.jsx)(w,{className:`size-5`})})})]})}var $=[{accessorKey:`__typename`,header:({column:e})=>(0,Z.jsxs)(T,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[(0,Z.jsx)(`div`,{className:`text-left`,children:`Type`}),(0,Z.jsx)(v,{className:`ml-2 h-4 w-4`})]}),cell:({row:e})=>{let{__typename:t}=e.original;return(0,Z.jsx)(`div`,{className:`text-left font-medium`,children:t})}},{accessorKey:`image`,header:()=>(0,Z.jsx)(`div`,{className:`text-left`,children:`Image`}),cell:({row:e})=>{let{image:t}=e.original;return(0,Z.jsx)(`div`,{className:`text-left font-medium`,children:t?(0,Z.jsx)(`img`,{alt:`missing img`,src:t?.toString(),height:80,width:80}):`No image`})}},{accessorKey:`file`,header:()=>(0,Z.jsx)(`div`,{className:`text-left`,children:`File`}),cell:({row:e})=>{let{file:t}=e.original;return(0,Z.jsx)(`div`,{className:`text-left font-medium`,children:t&&(0,Z.jsx)(T,{variant:`outline`,size:`sm`,asChild:!0,children:(0,Z.jsx)(`a`,{target:`_blank`,rel:`noreferrer`,href:t?.toString(),children:`Open`})})})}},{accessorKey:`date`,header:({column:e})=>(0,Z.jsxs)(T,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[(0,Z.jsx)(`div`,{className:`text-left`,children:`Date`}),(0,Z.jsx)(v,{className:`ml-2 h-4 w-4`})]}),cell:({row:e})=>`date`in e.original&&e.original.date?(0,Z.jsx)(`div`,{className:`text-left font-medium`,children:A(new Date(e.original.date),`dd/MM/yy`)}):null},{accessorKey:`serialNumber`,header:({column:e})=>(0,Z.jsxs)(T,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[(0,Z.jsx)(`div`,{className:`text-left`,children:`Serial Number`}),(0,Z.jsx)(v,{className:`ml-2 h-4 w-4`})]}),cell:({row:e})=>`serialNumber`in e.original&&e.original.serialNumber?(0,Z.jsx)(`div`,{className:`text-left font-medium`,children:e.original.serialNumber}):null},{accessorKey:`vat.raw`,header:({column:e})=>(0,Z.jsxs)(T,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[(0,Z.jsx)(`div`,{className:`text-left`,children:`VAT`}),(0,Z.jsx)(v,{className:`ml-2 h-4 w-4`})]}),cell:({row:e})=>`vat`in e.original&&e.original.vat?.formatted?(0,Z.jsx)(`div`,{className:`text-left font-medium whitespace-nowrap`,children:e.original.vat.formatted}):null},{accessorKey:`amount.raw`,header:({column:e})=>(0,Z.jsxs)(T,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[(0,Z.jsx)(`div`,{className:`text-left`,children:`Amount`}),(0,Z.jsx)(v,{className:`ml-2 h-4 w-4`})]}),cell:({row:e})=>`amount`in e.original&&e.original.amount?.formatted?(0,Z.jsx)(`div`,{className:`text-left font-medium whitespace-nowrap`,children:e.original.amount.formatted}):null},{accessorKey:`creditor.name`,header:({column:e})=>(0,Z.jsxs)(T,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[(0,Z.jsx)(`div`,{className:`text-left`,children:`Creditor`}),(0,Z.jsx)(v,{className:`ml-2 h-4 w-4`})]}),cell:({row:e})=>`creditor`in e.original&&e.original.creditor?.name?(0,Z.jsx)(`div`,{className:`text-left font-medium whitespace-nowrap`,children:e.original.creditor.name}):null},{accessorKey:`debtor.name`,header:({column:e})=>(0,Z.jsxs)(T,{variant:`ghost`,onClick:()=>e.toggleSorting(e.getIsSorted()===`asc`),children:[(0,Z.jsx)(`div`,{className:`text-left`,children:`Debtor`}),(0,Z.jsx)(v,{className:`ml-2 h-4 w-4`})]}),cell:({row:e})=>`debtor`in e.original&&e.original.debtor?.name?(0,Z.jsx)(`div`,{className:`text-left font-medium whitespace-nowrap`,children:e.original.debtor.name}):null},{accessorKey:`charge.transactions[0].id`,header:()=>(0,Z.jsx)(`div`,{className:`text-left`,children:`Related Transaction`}),cell:({row:e})=>e.original.charge?.transactions?.[0]?.id?(0,Z.jsx)(u,{items:e.original.charge?.transactions??[],columns:[{title:`Transaction Amount`,value:e=>e?.amount.formatted},{title:`Transaction Created At`,value:e=>e?.eventDate?A(new Date(e.eventDate),`dd/MM/yy`):null},{title:`Transaction Effective Date`,value:e=>e?.effectiveDate?A(new Date(e.effectiveDate),`dd/MM/yy`):null},{title:`Transaction Description`,value:e=>e?.sourceDescription}]}):`No Related Transaction`}],ne=()=>{let[e,t]=(0,Y.useState)(null),[n,a]=(0,Y.useState)(!1),{get:o}=q(),c=o(`documentsFilters`),u=(0,Y.useMemo)(()=>{if(c)try{return JSON.parse(decodeURIComponent(c))}catch{return}},[c]),[d,f]=(0,Y.useState)(u),[p,g]=(0,Y.useState)([]),[_,v]=(0,Y.useState)({}),{setFiltersContext:w}=(0,Y.useContext)(y),[{data:E,fetching:D},O]=r({query:i,variables:{filters:d??{}},pause:!0});(0,Y.useEffect)(()=>{d&&O()},[d,O]);let k=ee({features:U,data:E?.documentsByFilters??[],columns:$,onSortingChange:g,onColumnVisibilityChange:v,state:{sorting:p,columnVisibility:_}}),A=k.state.pagination.pageIndex;return(0,Y.useEffect)(()=>{w((0,Z.jsxs)(`div`,{className:`flex flex-row gap-x-5`,children:[(0,Z.jsx)(l,{table:k}),(0,Z.jsx)(te,{filter:d,setFilter:f,initiallyOpened:!d})]}))},[k,D,d,w,f,u,A]),(0,Z.jsx)(J,{title:`Documents`,description:`All documents`,headerActions:(0,Z.jsxs)(`div`,{className:`flex items-center py-4 gap-4`,children:[(0,Z.jsxs)(S,{children:[(0,Z.jsx)(x,{asChild:!0,children:(0,Z.jsx)(T,{className:`ml-auto`,children:`Columns`})}),(0,Z.jsx)(b,{align:`end`,children:k.getAllColumns().filter(e=>e.getCanHide()).map(e=>(0,Z.jsx)(C,{className:`capitalize`,checked:e.getIsVisible(),onCheckedChange:t=>e.toggleVisibility(!!t),children:e.id},e.id))})]}),(0,Z.jsx)(T,{onClick:()=>a(!0),children:`Upload Documents`})]}),children:D?(0,Z.jsx)(s,{className:`h-10 w-10 animate-spin mr-2 self-center`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(h,{open:n,onOpenChange:a,onChange:O}),e&&(0,Z.jsx)(m,{modalSize:`45%`,content:(0,Z.jsx)(z,{src:e}),opened:!!e,onClose:()=>t(null)}),(0,Z.jsxs)(W,{children:[(0,Z.jsx)(P,{children:k.getHeaderGroups().map(e=>(0,Z.jsx)(B,{children:e.headers.map(e=>(0,Z.jsx)(I,{children:e.isPlaceholder?null:F(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,Z.jsx)(R,{children:k.getRowModel().rows?.length?k.getRowModel().rows.map(e=>(0,Z.jsx)(B,{"data-state":e.getIsSelected()&&`selected`,children:e.getVisibleCells().map(e=>(0,Z.jsx)(H,{children:F(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,Z.jsx)(B,{children:(0,Z.jsx)(H,{colSpan:$.length,className:`h-24 text-center`,children:`No results.`})})})]})]})})};export{ne as DocumentsReport};