@accounter/client
Version:
Accounter client application
1 lines • 7.6 kB
JavaScript
import{s as e}from"./dist-ypP48_Ax.js";import{i as t,o as n}from"./utils-CbS-oR5I.js";import{i as r,n as i}from"./routes-D0AKaVmS.js";import{t as a}from"./loader-circle-CfW9jOIr.js";import{H as o,Jt as s,Qn as c,b as l,gt as u,ir as d,nn as f,ot as p,p as m,r as h,wt as g,y as _,yt as v}from"./common-3blB_OGJ.js";import{s as y}from"./select-Bp1lD5cE.js";import{c as b,d as x,h as S,l as C,u as w}from"./separator-5ROkkkxt.js";import{t as T}from"./funnel-BrJTCiKR.js";import{t as E}from"./button-DUNsVBiu.js";import{$c as D,Gc as O,Hc as k,Kc as A,Ul as j,Vc as M,Wc as N,Xc as P,jl as F,qc as I}from"./table-B6QCIQQv.js";import{ar as L,ls as R,nr as z}from"./graphql-lcoKwSC9.js";import{t as B}from"./sub-QWlHO21t.js";import{t as V}from"./MultiSelect-BIfGhTOl.js";import{t as H}from"./use-url-query-v8OHvuc2.js";import{t as U}from"./page-layout-Dg61gTWe.js";var W=e(n(),1),G=e(F(),1),K=t(),q=[{name:`unmatched`,label:`Unmatched only`},{name:`missingInfo`,label:`Invalid documents only`},{name:`missingCounterparty`,label:`Missing counterparty`}],J=Object.values(z).map(e=>({value:e,label:c(e)}));function Y({filter:e,setFilter:t,closeModal:n}){let{userContext:r}=(0,W.useContext)(D),i=P({defaultValues:{ownerIDs:r?.context.adminBusinessId?[r.context.adminBusinessId]:void 0,toDate:j(new Date,`yyyy-MM-dd`),fromDate:j(B(new Date,{years:1}),`yyyy-MM-dd`),...e}}),{control:a,handleSubmit:o}=i,{selectableFinancialEntities:c,fetching:l}=u(),f=e=>{let{freeText:r,...i}=e;t(r?.trim()?{...i,freeText:r.trim()}:i),n()};function m(){t({}),n()}return(0,K.jsxs)(K.Fragment,{children:[l?(0,K.jsx)(`div`,{children:`Loading...`}):(0,K.jsx)(`div`,{}),(0,K.jsx)(M,{...i,children:(0,K.jsxs)(`form`,{onSubmit:o(f),children:[(0,K.jsxs)(s,{cols:2,children:[(0,K.jsx)(N,{name:`ownerIDs`,control:a,defaultValue:e.ownerIDs,render:({field:e,fieldState:t})=>(0,K.jsxs)(O,{children:[(0,K.jsx)(A,{children:`Owners`}),(0,K.jsx)(k,{children:(0,K.jsx)(V,{...e,data:c,value:e.value??[],disabled:l,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,error:t.error?.message,withinPortal:!0})}),(0,K.jsx)(I,{})]})}),(0,K.jsx)(N,{name:`businessIDs`,control:a,defaultValue:e.businessIDs,render:({field:e,fieldState:t})=>(0,K.jsxs)(O,{children:[(0,K.jsx)(A,{children:`Counterparty`}),(0,K.jsx)(k,{children:(0,K.jsx)(V,{...e,data:c,value:e.value??[],disabled:l,placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,error:t.error?.message,withinPortal:!0})}),(0,K.jsx)(I,{})]})}),(0,K.jsx)(N,{name:`fromDate`,control:a,defaultValue:e.fromDate,rules:{pattern:{value:d,message:`Date must be in format yyyy-mm-dd`}},render:({field:e,fieldState:t})=>(0,K.jsxs)(O,{children:[(0,K.jsx)(A,{htmlFor:`documents-from-date`,children:`From Date`}),(0,K.jsx)(k,{children:(0,K.jsx)(p,{id:`documents-from-date`,onChange:t=>{t!==e.value&&e.onChange(t)},value:e.value??void 0,"aria-invalid":!!t.error})}),(0,K.jsx)(I,{})]})}),(0,K.jsx)(N,{name:`toDate`,control:a,defaultValue:e.toDate,rules:{pattern:{value:d,message:`Date must be in format yyyy-mm-dd`}},render:({field:e,fieldState:t})=>(0,K.jsxs)(O,{children:[(0,K.jsx)(A,{htmlFor:`documents-to-date`,children:`To Date`}),(0,K.jsx)(k,{children:(0,K.jsx)(p,{id:`documents-to-date`,onChange:t=>{t!==e.value&&e.onChange(t)},value:e.value??void 0,"aria-invalid":!!t.error})}),(0,K.jsx)(I,{})]})}),(0,K.jsx)(N,{name:`type`,control:a,defaultValue:e.type,render:({field:e,fieldState:t})=>(0,K.jsxs)(O,{children:[(0,K.jsx)(A,{children:`Document Type`}),(0,K.jsx)(k,{children:(0,K.jsx)(V,{...e,data:J,value:e.value??[],placeholder:`Scroll to see all options`,maxDropdownHeight:160,searchable:!0,error:t.error?.message,withinPortal:!0})}),(0,K.jsx)(I,{})]})}),(0,K.jsx)(N,{name:`freeText`,control:a,defaultValue:e.freeText,rules:{minLength:{value:2,message:`Must be at least 2 characters`}},render:({field:e,fieldState:t})=>(0,K.jsxs)(O,{children:[(0,K.jsx)(A,{htmlFor:`documents-free-text`,children:`Free Text`}),(0,K.jsx)(k,{children:(0,K.jsx)(y,{id:`documents-free-text`,placeholder:`Serial, amount, description, remarks, counterparty`,...e,value:e.value??``,"aria-invalid":!!t.error})}),(0,K.jsx)(I,{})]})})]}),(0,K.jsxs)(`div`,{className:`mt-5 rounded-lg border p-3 shadow-sm`,children:[(0,K.jsx)(`p`,{className:`mb-3 text-sm font-medium`,children:`Missing Information`}),(0,K.jsx)(s,{cols:2,children:q.map(({name:e,label:t})=>(0,K.jsx)(N,{name:e,control:a,render:({field:e})=>(0,K.jsxs)(O,{className:`flex flex-row items-center justify-between rounded-lg border p-3 shadow-sm`,children:[(0,K.jsx)(`div`,{className:`space-y-0.5`,children:(0,K.jsx)(A,{children:t})}),(0,K.jsx)(k,{children:(0,K.jsx)(v,{checked:e.value??!1,onCheckedChange:e.onChange})})]})},e))})]}),(0,K.jsxs)(`div`,{className:`flex justify-center mt-5 gap-3`,children:[(0,K.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,K.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,K.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 X({filter:e={},setFilter:t,initiallyOpened:n=!1}){let[a,o]=(0,W.useState)(n),[s,c]=(0,W.useState)(!r(e)),{get:l,set:u}=H();(0,W.useEffect)(()=>{let t=i(e);t!==l(`documentsFilters`)&&u(`documentsFilters`,t)},[e,l,u]);let d=(0,W.useCallback)(n=>{(0,G.default)(n,e)||(t(n),c(!r(n)))},[e,t]);return(0,K.jsxs)(`div`,{className:`flex flex-row gap-5 items-center`,children:[(0,K.jsx)(m,{opened:a,onClose:()=>o(!1),content:(0,K.jsx)(Y,{filter:e,setFilter:d,closeModal:()=>o(!1)}),modalSize:`xl`}),(0,K.jsx)(f,{inline:!0,size:16,disabled:!s,children:(0,K.jsx)(E,{variant:`outline`,size:`icon`,className:`size-7.5`,onClick:()=>o(!0),children:(0,K.jsx)(T,{className:`size-5`})})})]})}var Z=()=>{let[e,t]=(0,W.useState)(!1),{get:n}=H(),r=n(`documentsFilters`),i=(0,W.useMemo)(()=>{if(r)try{return JSON.parse(decodeURIComponent(r))}catch{return}},[r]),[s,c]=(0,W.useState)(i),{setFiltersContext:u}=(0,W.useContext)(b),[{data:d,fetching:f},p]=R({query:L,variables:{filters:s??{}},pause:!0});(0,W.useEffect)(()=>{s&&p()},[s,p]);let m=(0,W.useMemo)(()=>d?.documentsByFilters??[],[d?.documentsByFilters]),v=(0,W.useCallback)(()=>p({requestPolicy:`network-only`}),[p]),{table:y,editDocumentId:T,closeEditDocument:D}=_({documentsProps:m,onChange:v,withChargeLink:!0}),{pageIndex:O,pageSize:k}=y.state.pagination,A=y.getPageCount();return(0,W.useEffect)(()=>{u((0,K.jsxs)(`div`,{className:`flex flex-row gap-x-5`,children:[(0,K.jsx)(g,{table:y}),(0,K.jsx)(X,{filter:s,setFilter:c,initiallyOpened:!s})]}))},[f,s,u,c,O,k,A]),(0,K.jsxs)(U,{title:`Documents`,description:`All documents`,headerActions:(0,K.jsxs)(`div`,{className:`flex items-center py-4 gap-4`,children:[(0,K.jsxs)(C,{children:[(0,K.jsx)(S,{asChild:!0,children:(0,K.jsx)(E,{className:`ml-auto`,children:`Columns`})}),(0,K.jsx)(x,{align:`end`,children:y.getAllColumns().filter(e=>e.getCanHide()).map(e=>(0,K.jsx)(w,{className:`capitalize`,checked:e.getIsVisible(),onCheckedChange:t=>e.toggleVisibility(!!t),children:e.id},e.id))})]}),(0,K.jsx)(E,{onClick:()=>t(!0),children:`Upload Documents`})]}),children:[(0,K.jsx)(h,{open:e,onOpenChange:t,onChange:p}),(0,K.jsx)(o,{documentId:T,onDone:D,onChange:v}),f?(0,K.jsx)(a,{className:`h-10 w-10 animate-spin mr-2 self-center`}):(0,K.jsx)(l,{table:y})]})};export{Z as DocumentsReport};