@accounter/client 0.0.8-alpha-20251028123619-bcce9ab485db2997b6b76ff0df765834d86f30e7 → 0.0.8-alpha-20251028124234-328844c99a42b68aa9e2f32fd86da80b4832f631

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/dist/assets/{Checkbox-BZ680-Kk.js → Checkbox-BR6kGuhg.js} +2 -2
  3. package/dist/assets/MultiSelect-BqcJrWnD.js +1 -0
  4. package/dist/assets/Pagination-6Sv5LXxl.js +1 -0
  5. package/dist/assets/{Progress-DembKoIO.js → Progress-7xtiFwK3.js} +1 -1
  6. package/dist/assets/Table-C5zxD95i.js +1 -0
  7. package/dist/assets/Typography-CMzSQZKD.js +1 -0
  8. package/dist/assets/YearPickerInput-CllwSjcn.js +1 -0
  9. package/dist/assets/accordion-CMR2fANH.js +1 -0
  10. package/dist/assets/accountant-approvals-BHFXpHHc.js +1 -0
  11. package/dist/assets/accounter-table-CpeQD4PG.js +1 -0
  12. package/dist/assets/addDays-DvwuJbUs.js +1 -0
  13. package/dist/assets/all-charges-At7WJXuW.js +1 -0
  14. package/dist/assets/{arrow-up-down-J9wnXx-h.js → arrow-up-down-DPG1l9S1.js} +1 -1
  15. package/dist/assets/{building-2-1saARtmG.js → building-2-BgvPBt2Z.js} +1 -1
  16. package/dist/assets/business-DKvbSnga.js +32 -0
  17. package/dist/assets/business-extended-info-7CM8px2e.js +13 -0
  18. package/dist/assets/{business-header-SAnNK6FP.js → business-header-u2sfE_d8.js} +1 -1
  19. package/dist/assets/business-transactions-filters-DmpO9Bwo.js +1 -0
  20. package/dist/assets/business-transactions-single-rF6JbAL7.js +1 -0
  21. package/dist/assets/business-trip-BGrp09N7.js +1 -0
  22. package/dist/assets/charge-C-EaA1Xc.js +1 -0
  23. package/dist/assets/charges-filters-Dq-8QHH-.js +1 -0
  24. package/dist/assets/charges-ledger-validation-DlkzVow7.js +1 -0
  25. package/dist/assets/charges-table-Cncs1HLi.js +62 -0
  26. package/dist/assets/{chart-Dq5fMHeT.js → chart-ByngRufj.js} +6 -6
  27. package/dist/assets/create-event-handler-BiA-1lGu.js +1 -0
  28. package/dist/assets/{data-table-pagination-4YqSgXqX.js → data-table-pagination-D4OEFmX_.js} +1 -1
  29. package/dist/assets/download-csv-button-Df5rDeDc.js +1 -0
  30. package/dist/assets/editable-business-trip-Bav24z0u.js +16 -0
  31. package/dist/assets/funnel-BJ71hzoq.js +6 -0
  32. package/dist/assets/index-BRv0JZw4.js +1 -0
  33. package/dist/assets/index-BXlS8oD_.js +1 -0
  34. package/dist/assets/{index-BYoh_mMo.js → index-BetG0HVN.js} +3 -3
  35. package/dist/assets/index-BplSRMAq.css +1 -0
  36. package/dist/assets/{index-B4-_AJ5N.js → index-Bsl7tJp_.js} +16 -16
  37. package/dist/assets/{index-sA_45leD.js → index-CLUhAJ3t.js} +3 -3
  38. package/dist/assets/index-Cix5qjA-.js +2 -0
  39. package/dist/assets/index-CizLtiES.js +1 -0
  40. package/dist/assets/index-DKBzv0gc.js +1 -0
  41. package/dist/assets/index-DR_5jpS4.js +6 -0
  42. package/dist/assets/index-DTmtILfq.js +1 -0
  43. package/dist/assets/index-DU0G7FZm.js +1 -0
  44. package/dist/assets/index-DUWRgLfu.js +9 -0
  45. package/dist/assets/index-DYZPWG4k.js +2 -0
  46. package/dist/assets/index-DdUE2_44.js +1 -0
  47. package/dist/assets/index-De5dvO0S.js +1 -0
  48. package/dist/assets/index-Des3eR4f.js +1 -0
  49. package/dist/assets/index-DpYwi5kf.js +6 -0
  50. package/dist/assets/index-GzyQZkbY.js +1 -0
  51. package/dist/assets/index-HzLXi-qB.js +1 -0
  52. package/dist/assets/index-Ji28AZwq.js +1 -0
  53. package/dist/assets/{index-AxUq37Ea.js → index-UMFH47hN.js} +2 -2
  54. package/dist/assets/index-fuT9duEO.js +1 -0
  55. package/dist/assets/{index-CBQNwu37.js → index-vChLJwSt.js} +2 -2
  56. package/dist/assets/index-wck8Xuay.js +1 -0
  57. package/dist/assets/index-wyU9I4Kz.js +768 -0
  58. package/dist/assets/{index.es-Dwfw0glc.js → index.es-NphQjU3m.js} +1 -1
  59. package/dist/assets/insert-business-trip-modal-vS1QrUJz.js +6 -0
  60. package/dist/assets/issue-document-pIswc_8i.js +1 -0
  61. package/dist/assets/list-plus-Dy3vzJVy.js +6 -0
  62. package/dist/assets/login-page-YXRfklK1.js +1 -0
  63. package/dist/assets/match-document-modal-BPG_hljb.js +16 -0
  64. package/dist/assets/missing-info-charges-D8dUfChs.js +1 -0
  65. package/dist/assets/modal-D47umnak.js +1 -0
  66. package/dist/assets/page-layout-BG0XvWfD.js +1 -0
  67. package/dist/assets/page-not-found-Cy6oIIb1.js +1 -0
  68. package/dist/assets/panel-top-open-B1rhJYjQ.js +11 -0
  69. package/dist/assets/{pencil-CYypGy_s.js → pencil-tV0FsM6V.js} +1 -1
  70. package/dist/assets/report-commentary-row-BL2RkIHq.js +1 -0
  71. package/dist/assets/{save-BE7zhMeq.js → save-Czmh3tvC.js} +1 -1
  72. package/dist/assets/similar-transactions-modal-MQeC2gtu.js +1 -0
  73. package/dist/assets/sub-B4_VmmF9.js +1 -0
  74. package/dist/assets/subMonths-DG7w6bCY.js +1 -0
  75. package/dist/assets/summary-DvHtnArZ.js +1 -0
  76. package/dist/assets/switch-GSloW_Ey.js +1 -0
  77. package/dist/assets/toggle-expansion-button-lwJYTklN.js +1 -0
  78. package/dist/assets/tooltip-BbKSwLCX.js +1 -0
  79. package/dist/assets/use-url-query-CUVSXgm0.js +1 -0
  80. package/dist/index.html +2 -2
  81. package/package.json +1 -1
  82. package/src/components/business/contracts-section.tsx +0 -7
  83. package/src/components/business-transactions/business-extended-info.tsx +5 -5
  84. package/src/components/business-transactions/index.tsx +1 -28
  85. package/src/components/businesses/index.tsx +6 -2
  86. package/src/components/charges/cells/business-trip.tsx +6 -1
  87. package/src/components/charges/cells/counterparty.tsx +4 -28
  88. package/src/components/clients/contracts/modify-contract-dialog.tsx +3 -7
  89. package/src/components/common/business-trip-report/parts/core-expense-row.tsx +2 -2
  90. package/src/components/common/business-trip-report/parts/report-header.tsx +2 -1
  91. package/src/components/common/business-trip-report/parts/uncategorized-transactions.tsx +2 -2
  92. package/src/components/common/buttons/charge-navigate-button.tsx +12 -11
  93. package/src/components/common/modals/edit-charge-modal.tsx +2 -2
  94. package/src/components/common/modals/insert-document-modal.tsx +2 -2
  95. package/src/components/common/modals/match-document-modal.tsx +2 -2
  96. package/src/components/common/new-documents-list.tsx +2 -2
  97. package/src/components/documents-table/cells/creditor.tsx +2 -11
  98. package/src/components/documents-table/cells/debtor.tsx +2 -11
  99. package/src/components/ledger-table/counterparty-cell.tsx +4 -33
  100. package/src/components/reports/conto/index.tsx +1 -18
  101. package/src/components/reports/trial-balance-report/index.tsx +1 -17
  102. package/src/components/screens/businesses/business.tsx +0 -4
  103. package/src/components/screens/charges/all-charges.tsx +1 -17
  104. package/src/components/screens/charges/charge.tsx +0 -4
  105. package/src/components/screens/reports/balance-report/index.tsx +0 -14
  106. package/src/components/screens/reports/depreciation-report/index.tsx +0 -14
  107. package/src/components/transactions-table/cells/counterparty.tsx +2 -23
  108. package/src/components/transactions-table/cells-legacy/counterparty.tsx +3 -26
  109. package/src/gql/gql.ts +3 -3
  110. package/src/gql/graphql.ts +2 -5
  111. package/src/providers/urql.tsx +2 -2
  112. package/dist/assets/Typography-DPXB3hIS.js +0 -1
  113. package/dist/assets/accordion-UZwiz3fM.js +0 -1
  114. package/dist/assets/accountant-approvals-DDxSuMql.js +0 -1
  115. package/dist/assets/all-charges-BCP7OG1d.js +0 -1
  116. package/dist/assets/business-CBRlGy9p.js +0 -32
  117. package/dist/assets/business-transactions-single-DvPZFvmH.js +0 -1
  118. package/dist/assets/business-trip-g2hB76cn.js +0 -1
  119. package/dist/assets/charges-filters-T9c4RGLH.js +0 -1
  120. package/dist/assets/charges-ledger-validation-DaD8DCN4.js +0 -1
  121. package/dist/assets/editable-business-trip-B95j7iAh.js +0 -16
  122. package/dist/assets/index-5Fl36gjg.js +0 -1
  123. package/dist/assets/index-BDKAR_k1.js +0 -1
  124. package/dist/assets/index-BKXeyD9a.js +0 -1
  125. package/dist/assets/index-BPSZWRv9.js +0 -9
  126. package/dist/assets/index-BVetJA6_.js +0 -6
  127. package/dist/assets/index-BXp9NrWt.js +0 -1
  128. package/dist/assets/index-Br0-IMSG.js +0 -1
  129. package/dist/assets/index-Bw6OrQ7c.js +0 -1
  130. package/dist/assets/index-C3bFFbEz.js +0 -1
  131. package/dist/assets/index-CDIzaROV.js +0 -2
  132. package/dist/assets/index-CgQ4Qjvh.js +0 -886
  133. package/dist/assets/index-D4O5HA1y.js +0 -1
  134. package/dist/assets/index-DAbvR7_s.js +0 -1
  135. package/dist/assets/index-DkwmPZgt.js +0 -1
  136. package/dist/assets/index-DpsNoHLd.js +0 -2
  137. package/dist/assets/index-DtE5Y1ZB.css +0 -1
  138. package/dist/assets/index-k-cHMsFi.js +0 -1
  139. package/dist/assets/index-vkYxo-Uq.js +0 -1
  140. package/dist/assets/index-vstSRm8a.js +0 -1
  141. package/dist/assets/issue-document-umUFIxCu.js +0 -1
  142. package/dist/assets/login-page-Ck61EC35.js +0 -1
  143. package/dist/assets/missing-info-charges-aak-KkPt.js +0 -1
  144. package/dist/assets/page-not-found-Dzg-czJK.js +0 -1
  145. package/dist/assets/report-commentary-row-B479zk-x.js +0 -1
  146. package/dist/assets/sub-BxFupCKS.js +0 -1
  147. package/dist/assets/subMonths-DskeQPiN.js +0 -1
  148. package/src/components/charges/helpers.ts +0 -15
@@ -0,0 +1 @@
1
+ import{g as v,hy as q,r as u,t as m,i as F,aB as H,j as e,W as C,X as j,Y as f,Z as p,I as L,_ as y,$ as S,bm as z,bp as V,aF as Q,D,af as E,B as h,z as M,ah as R,ai as A,G as $,Q as k,hz as _,bR as G,u as O,hA as K,L as P,F as W,cN as X,cQ as Y,cR as Z,cS as T,cT as J,cU as b,cV as ee,cW as w,hB as se,d0 as te,d1 as ae,d2 as re}from"./index-wyU9I4Kz.js";import{D as oe}from"./data-table-pagination-D4OEFmX_.js";import{S as ne}from"./switch-GSloW_Ey.js";import{P as ie}from"./page-layout-BG0XvWfD.js";import{A as N}from"./arrow-up-down-DPG1l9S1.js";const de="insertTaxCategory",ce=()=>{const[{fetching:s},n]=v(q),t=u.useCallback(async a=>{const d="Error creating tax category",r=de;m.loading("Adding Tax Category",{id:r});try{const i=await n(a),l=F(i,d,r);if(l)return m.success("Success",{id:r,description:`${l.insertTaxCategory.name} was created`}),l.insertTaxCategory}catch(i){console.error(`${d}: ${i}`),m.error("Error",{id:r,description:d,duration:1e5,closeButton:!0})}},[n]);return{fetching:s,insertTaxCategory:t}};function B({formManager:s,setFetching:n,isInsert:t}){const{control:a,watch:d,setValue:r}=s,{selectableSortCodes:i,fetching:l,sortCodes:x}=H();u.useEffect(()=>{n(l)},[n,l]);const c=d("sortCode");return u.useEffect(()=>{if(c){const o=x.find(g=>g.key===c);o?.defaultIrsCode&&r("irsCode",o.defaultIrsCode,{shouldDirty:!0})}},[c,x,r]),e.jsxs(e.Fragment,{children:[e.jsx(C,{name:"name",control:a,rules:{required:"Required",minLength:{value:2,message:"Must be at least 2 characters"}},render:({field:o,fieldState:g})=>e.jsxs(j,{children:[e.jsx(f,{children:"Name"}),e.jsx(p,{children:e.jsx(L,{...o,value:o.value??void 0,required:!0,className:t?"":y(g)})}),e.jsx(S,{})]})}),e.jsx(z,{name:"sortCode",control:a,render:({field:o,fieldState:g})=>e.jsx(V,{...o,onChange:U=>{o.onChange(Number(U))},data:i,value:o.value?.toString(),disabled:l,label:"Sort Code",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,className:t?"":y(g)})}),e.jsx(C,{name:"irsCode",control:a,render:({field:o,fieldState:g})=>e.jsxs(j,{children:[e.jsx(f,{children:"IRS Code"}),e.jsx(p,{children:e.jsx(Q,{...o,className:t?"":y(g),value:o.value??void 0,hideControls:!0,decimalScale:0})}),e.jsx(S,{})]})}),e.jsx(C,{control:a,name:"taxExcluded",render:({field:o})=>e.jsxs(j,{className:"flex flex-row items-center justify-between",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(f,{children:"Tax excluded category"})}),e.jsx(p,{children:e.jsx(ne,{onCheckedChange:o.onChange,checked:o.value??void 0})})]})})]})}function le({onAdd:s}){const[n,t]=u.useState(!1);return e.jsxs(D,{open:n,onOpenChange:t,children:[e.jsx(E,{asChild:!0,children:e.jsx(h,{children:"Add Tax Category"})}),e.jsxs(M,{className:"w-[90vw] max-w-screen-md",children:[e.jsx(R,{children:e.jsx(A,{children:"Add New Tax Category"})}),e.jsx(xe,{close:()=>t(!1),onAdd:s})]})]})}function xe({close:s,onAdd:n}){const t=$({}),{handleSubmit:a}=t,[d,r]=u.useState(!1),{insertTaxCategory:i,fetching:l}=ce(),x=c=>{c.sortCode&&=parseInt(c.sortCode.toString()),i({fields:c}).then(o=>{o?.id&&(n?.(o.id),s())})};return e.jsx(k,{...t,children:e.jsxs("form",{onSubmit:a(x),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(B,{isInsert:!0,formManager:t,setFetching:r})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(h,{type:"submit",disabled:l||d,children:"Add Tax Category"})})]})})}const ue="updateTaxCategory",ge=()=>{const[{fetching:s},n]=v(_),t=u.useCallback(async a=>{const d="Error updating tax category",r=`${ue}-${a.taxCategoryId}`;m.loading("Uploading Tax Category",{id:r});try{const i=await n(a),l=F(i,d,r,"updateTaxCategory");if(l)return m.success("Success",{id:r,description:`${l.updateTaxCategory.name} was updated`}),l.updateTaxCategory}catch(i){console.error(`${d}: ${i}`),m.error("Error",{id:r,description:d,duration:1e5,closeButton:!0})}},[n]);return{fetching:s,updateTaxCategory:t}};function me({taxCategoryId:s,onAdd:n}){const[t,a]=u.useState(!1);return e.jsxs(D,{open:t,onOpenChange:a,children:[e.jsx(E,{asChild:!0,children:e.jsx(h,{variant:"outline",size:"icon",children:e.jsx(G,{})})}),e.jsxs(M,{className:"w-[400px] max-w-screen-md",children:[e.jsx(R,{children:e.jsx(A,{children:"Edit Tax Category"})}),e.jsx(he,{taxCategoryId:s,close:()=>a(!1),onAdd:n})]})]})}function he({taxCategoryId:s,close:n,onAdd:t}){const[{data:a,fetching:d}]=O({query:K,variables:{id:s}}),r=a?.taxCategory;return!r&&!d&&m.error("Error",{description:"Couldn'nt find tax category"}),d?e.jsx(P,{className:"h-10 w-10 animate-spin"}):e.jsx(Ce,{taxCategory:r,close:n,onAdd:t})}function Ce({taxCategory:s,close:n,onAdd:t}){const a=$({defaultValues:{sortCode:s.sortCode?.key,name:s.name,irsCode:s.irsCode}}),{handleSubmit:d}=a,[r,i]=u.useState(!1),{updateTaxCategory:l,fetching:x}=ge(),c=o=>{o.sortCode&&=parseInt(o.sortCode.toString()),l({fields:o,taxCategoryId:s.id}).then(g=>{g?.id&&(t?.(g.id),n())})};return e.jsx(k,{...a,children:e.jsxs("form",{onSubmit:d(c),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(B,{isInsert:!1,formManager:a,setFetching:i})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(h,{type:"submit",disabled:x||r,children:"Update"})})]})})}const je=({data:s})=>e.jsx("td",{children:s.name}),fe=({data:s})=>e.jsx("td",{children:s.sortCode?e.jsxs("span",{children:[s.sortCode?.name," (",s.sortCode?.id,")"]}):"N/A"}),I=[{id:"name",accessorKey:"name",cell:({row:s})=>e.jsx(je,{data:s.original}),header:({column:s})=>e.jsxs(h,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Name",e.jsx(N,{})]})},{id:"sortCode",accessorKey:"sortCode.key",cell:({row:s})=>e.jsx(fe,{data:s.original}),header:({column:s})=>e.jsxs(h,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Sort Code",e.jsx(N,{})]})},{id:"edit",cell:({row:s})=>e.jsx(me,{taxCategoryId:s.original.id})}],we=()=>{const[{data:s,fetching:n,error:t},a]=O({query:se}),{setFiltersContext:d}=u.useContext(W),r=s?.taxCategories??[],i=X({data:r,columns:I,getCoreRowModel:re(),getPaginationRowModel:ae(),getSortedRowModel:te(),initialState:{pagination:{pageSize:30}}}),l=i.getPageOptions();return u.useEffect(()=>{d(e.jsx("div",{className:"flex items-center justify-end gap-10 space-x-2 py-4",children:e.jsx("div",{className:"flex items-center justify-between px-2",children:e.jsx(oe,{table:i})})}))},[d,i,l]),u.useEffect(()=>{t&&m.error("Error",{description:"Error fetching tax categories"})},[t]),e.jsx(ie,{title:`Tax Categories (${r.length})`,description:"All tax categories",headerActions:e.jsx(le,{onAdd:()=>a()}),children:n?e.jsx("div",{className:"flex flex-row justify-center",children:e.jsx(P,{className:"h-10 w-10 animate-spin mr-2"})}):e.jsx("div",{className:"flex flex-col gap-4 rounded-md border",children:e.jsxs(Y,{children:[e.jsx(Z,{children:i.getHeaderGroups().map(x=>e.jsx(T,{children:x.headers.map(c=>e.jsx(J,{children:c.isPlaceholder?null:b(c.column.columnDef.header,c.getContext())},c.id))},x.id))}),e.jsx(ee,{children:i.getRowModel().rows.length===0?e.jsx(T,{children:e.jsx(w,{colSpan:I.length,className:"text-center py-8",children:"No tax categories found"})}):i.getRowModel().rows.map(x=>e.jsx(T,{children:x.getVisibleCells().map(c=>e.jsx(w,{children:b(c.column.columnDef.cell,c.getContext())},c.id))},x.id))})]})})})};export{we as TaxCategories};
@@ -0,0 +1,6 @@
1
+ import{v as fn,gm as te,fD as A,fB as ye,gn as Ae,go as hn,j as i,T as ut,bP as ft,R as ht,B as H,m as E,bN as mn,gp as yn,e3 as gn,u as mt,gq as pn,G as yt,r as S,cL as gt,d as vn,Q as pt,e4 as xn,W as se,X as re,Y as oe,am as bn,Z as he,an as Dn,ao as kn,ap as Mn,aq as wn,$ as ie,bn as vt,x as le,a3 as Cn,g as Sn,gr as On,t as Te,i as Nn,L as jn,aD as Je,bm as Qe,bH as Tn,bo as Wn,gs as En,I as xt,gt as _n,gu as In,fC as Fn,gv as Yn,gw as Bn,gx as Pn,gy as Rn,gz as An,gA as zn,gB as qn,gC as bt,a9 as m,gD as Hn,gE as $n,dk as ne,gF as Xe,gG as Zn,gH as Un,aY as Kn,gI as Ln,ds as Gn,e9 as Vn,ea as Jn,gJ as Qn,D as Xn,af as es,z as ts,ah as ns,ai as ss,cr as rs,bl as os,cm as as,q as is,e as cs,dj as ae,fy as ls,J as ds,fl as us,cN as fs,d0 as hs,d2 as ms,cQ as ys,cR as gs,cS as We,cT as ps,cU as et,cV as vs,cW as tt}from"./index-wyU9I4Kz.js";import{u as qe,S as xs}from"./similar-transactions-modal-MQeC2gtu.js";import{S as bs}from"./switch-GSloW_Ey.js";import{a as Dt}from"./addDays-DvwuJbUs.js";import{L as Ds}from"./list-plus-Dy3vzJVy.js";import{T as ks}from"./tooltip-BbKSwLCX.js";/**
2
+ * @license lucide-react v0.546.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const Ms=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],ws=fn("external-link",Ms);function Cs(e,t,s){return Dt(e,t*7,s)}function Ss(e,t){let s,n=t?.in;return e.forEach(r=>{!n&&typeof r=="object"&&(n=te.bind(null,r));const a=A(r,n);(!s||s<a||isNaN(+a))&&(s=a)}),te(n,s||NaN)}function Os(e,t){let s,n=t?.in;return e.forEach(r=>{!n&&typeof r=="object"&&(n=te.bind(null,r));const a=A(r,n);(!s||s>a||isNaN(+a))&&(s=a)}),te(n,s||NaN)}function Ns(e,t,s){const[n,r]=ye(s?.in,e,t);return+Ae(n)==+Ae(r)}function js(e,t,s){const[n,r]=ye(s?.in,e,t),a=n.getFullYear()-r.getFullYear(),c=n.getMonth()-r.getMonth();return a*12+c}function Ts(e,t){const s=A(e,t?.in),n=s.getMonth();return s.setFullYear(s.getFullYear(),n+1,0),s.setHours(23,59,59,999),s}function kt(e,t){const[s,n]=ye(e,t.start,t.end);return{start:s,end:n}}function Ws(e,t){const{start:s,end:n}=kt(t?.in,e);let r=+s>+n;const a=r?+s:+n,c=r?n:s;c.setHours(0,0,0,0),c.setDate(1);let o=1;const l=[];for(;+c<=a;)l.push(te(s,c)),c.setMonth(c.getMonth()+o);return r?l.reverse():l}function Es(e,t){const s=A(e,t?.in);return s.setDate(1),s.setHours(0,0,0,0),s}function _s(e,t){const{start:s,end:n}=kt(t?.in,e);let r=+s>+n;const a=r?+s:+n,c=r?n:s;c.setHours(0,0,0,0),c.setMonth(0,1);let o=1;const l=[];for(;+c<=a;)l.push(te(s,c)),c.setFullYear(c.getFullYear()+o);return r?l.reverse():l}function Mt(e,t){const s=hn(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0,r=A(e,t?.in),a=r.getDay(),c=(a<n?-7:0)+6-(a-n);return r.setDate(r.getDate()+c),r.setHours(23,59,59,999),r}function Is(e,t){return Mt(e,{...t,weekStartsOn:1})}function Fs(e,t){const s=A(e,t?.in),n=s.getFullYear(),r=s.getMonth(),a=te(s,0);return a.setFullYear(n,r+1,0),a.setHours(0,0,0,0),a.getDate()}function Ys(e,t){return A(e,t?.in).getMonth()}function Bs(e,t){return A(e,t?.in).getFullYear()}function Ps(e,t){return+A(e)>+A(t)}function Rs(e,t){return+A(e)<+A(t)}function As(e,t,s){const[n,r]=ye(s?.in,e,t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()}function zs(e,t,s){const[n,r]=ye(s?.in,e,t);return n.getFullYear()===r.getFullYear()}function qs(e,t,s){const n=A(e,s?.in),r=n.getFullYear(),a=n.getDate(),c=te(e,0);c.setFullYear(r,t,15),c.setHours(0,0,0,0);const o=Fs(c);return n.setMonth(t,Math.min(a,o)),n}function Hs(e,t,s){const n=A(e,s?.in);return isNaN(+n)?te(e,NaN):(n.setFullYear(t),n)}function $s(e){return i.jsx(ut,{label:"To Charge",children:i.jsx(ft,{to:ht.CHARGES.DETAIL(e.chargeId),target:"_blank",rel:"noreferrer",onClick:t=>t.stopPropagation(),className:"inline-block",children:i.jsx(H,{...e,className:E("size-7.5",e.className),variant:"ghost",children:i.jsx(ws,{className:"size-5"})})})})}function Zs({transactionId:e}){const{updateTransaction:t}=qe();function s(){t({transactionId:e,fields:{chargeId:gn}})}return i.jsx(mn,{onConfirm:s,title:"Are you sure you want to unlink this transaction from the charge?",children:i.jsx(H,{variant:"ghost",size:"icon",className:"size-7.5",children:i.jsx(yn,{className:"size-5"})})})}const Us=({transactionID:e,onDone:t,onChange:s})=>{const[{data:n,fetching:r}]=mt({query:pn,variables:{transactionIDs:[e]}}),a=n?.transactionsByIDs?.[0],c=yt({defaultValues:a??{}});S.useEffect(()=>{a&&c.reset(a)},[a,c]);const{control:o,handleSubmit:l,formState:{dirtyFields:d}}=c,{updateTransaction:f,fetching:u}=qe(),h=x=>{if(!a)return;const g=Cn(x,d);t?.(),g&&Object.keys(g).length>0&&f({transactionId:a.id,fields:g}).then(s)},{selectableFinancialEntities:y,fetching:C}=gt();return i.jsxs(i.Fragment,{children:[r&&i.jsx(vn,{className:"flex self-center my-5",color:"dark",size:"xl",variant:"dots"}),!r&&a&&i.jsx(pt,{...c,children:i.jsxs("form",{onSubmit:l(h),children:[i.jsx("div",{className:"flex-row px-10 h-max justify-start block",children:i.jsxs(xn,{cols:3,children:[i.jsx(se,{name:"counterpartyId",control:o,defaultValue:a.counterparty?.id,rules:{minLength:{value:2,message:"Minimum 2 characters"}},render:({field:x})=>i.jsxs(re,{children:[i.jsx(oe,{children:"Counterparty"}),i.jsxs(bn,{onValueChange:x.onChange,value:x.value??void 0,disabled:C,children:[i.jsx(he,{children:i.jsx(Dn,{className:"w-full truncate",children:i.jsx(kn,{placeholder:"Scroll to see all options"})})}),i.jsx(Mn,{onClick:g=>g.stopPropagation(),children:y.map(({value:g,label:k})=>i.jsx(wn,{value:g,children:k},g))})]}),i.jsx(ie,{})]})}),a?.account.__typename==="CardFinancialAccount"?i.jsx(se,{name:"effectiveDate",control:o,rules:{pattern:{value:vt,message:"Date must be im format yyyy-mm-dd"}},render:({field:x})=>i.jsxs(re,{children:[i.jsx(oe,{children:"Effective Date"}),i.jsx(he,{children:i.jsx(Bo,{...x,onChange:g=>{const k=g?le(g,"yyyy-MM-dd"):void 0;k!==x.value&&x.onChange(k)},value:x.value?new Date(x.value):void 0})}),i.jsx(ie,{})]})}):i.jsx(i.Fragment,{}),i.jsx(se,{name:"isFee",control:o,defaultValue:a.isFee,render:({field:x})=>i.jsxs(re,{className:"flex flex-row items-center justify-between rounded-lg border p-3 shadow-sm",children:[i.jsx("div",{className:"space-y-0.5",children:i.jsx(oe,{children:"Fee Transaction"})}),i.jsx(he,{children:i.jsx(bs,{checked:x.value===!0,onCheckedChange:x.onChange})})]})})]})}),i.jsxs("div",{className:"mt-10 mb-5 flex justify-center gap-5",children:[i.jsx("button",{type:"submit",onClick:()=>l(h),className:"mt-8 text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg",disabled:u||Object.keys(d).length===0,children:"Accept"}),i.jsx("button",{type:"button",className:"mt-8 text-white bg-rose-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-rose-600 rounded-sm text-lg",onClick:t,children:"Cancel"})]})]})})]})},Ks="insertMiscExpense",Ls=()=>{const[{fetching:e},t]=Sn(On),s=S.useCallback(async n=>{const r="Error creating misc expense",a=`${Ks}-${n.chargeId}`;Te.loading("Creating misc expense",{id:a});try{const c=await t(n),o=Nn(c,r,a);if(o)return Te.success("Success",{id:a,description:"Misc expense was created"}),o.insertMiscExpense}catch(c){console.error(`${r}: ${c}`),Te.error("Error",{id:a,description:r,duration:1e5,closeButton:!0})}},[t]);return{fetching:e,insertMiscExpense:s}},Gs=({onDone:e,defaultValues:t={},chargeId:s})=>{const{insertMiscExpense:n,fetching:r}=Ls(),a=S.useCallback(async c=>{await n({chargeId:s,fields:c}),e()},[n,s,e]);return i.jsx(Vs,{defaultValues:t,onInsertDone:a,fetching:r})},Vs=({onInsertDone:e,defaultValues:t,fetching:s})=>{const n=o=>{o&&Object.keys(o).length>0&&e(o)},r=yt({defaultValues:{...t}}),{handleSubmit:a,formState:{dirtyFields:c}}=r;return i.jsx(pt,{...r,children:i.jsx("form",{onSubmit:a(n),noValidate:!0,children:i.jsxs("div",{className:"px-5 flex flex-col gap-5 relative",children:[s&&i.jsx("div",{className:"absolute bg-white/60 z-10 h-full w-full flex items-center justify-center",children:i.jsx("div",{className:"flex items-center",children:i.jsx("span",{className:"text-3xl mr-4",children:i.jsx(jn,{className:"h-10 w-10 animate-spin mr-2 self-center"})})})}),i.jsx(Js,{formManager:r,isInsert:!0}),i.jsx("div",{className:"flex justify-right gap-5 mt-5",children:i.jsx("button",{type:"submit",className:"text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg",disabled:s||Object.keys(c).length===0,children:"Accept"})})]})})})},Js=({formManager:e,isInsert:t})=>{const{control:s,setValue:n}=e,{selectableFinancialEntities:r,fetching:a}=gt();return i.jsxs(i.Fragment,{children:[i.jsx(se,{name:"creditorId",control:s,rules:{required:t?"Required":void 0},render:({field:c})=>i.jsxs(re,{children:[i.jsx(oe,{children:"Creditor"}),i.jsx(Je,{...c,data:r,value:c.value??void 0,disabled:a,placeholder:"Select creditor",formPart:!0}),i.jsx(ie,{})]})}),i.jsx(se,{name:"debtorId",control:s,rules:{required:t?"Required":void 0},render:({field:c})=>i.jsxs(re,{children:[i.jsx(oe,{children:"Debtor"}),i.jsx(Je,{...c,data:r,value:c.value??void 0,disabled:a,placeholder:"Select debtor",formPart:!0}),i.jsx(ie,{})]})}),i.jsx(Qe,{name:"amount",control:s,rules:{required:t?"Required":void 0},render:({field:c,fieldState:o})=>i.jsx(Qe,{name:"currency",control:s,rules:{required:t?"Required":void 0},render:({field:l,fieldState:d})=>i.jsx(Tn,{...c,required:t,value:c.value??void 0,error:o.error?.message||d.error?.message,label:"Amount",currencyCodeProps:{...l,required:t,label:"Currency"}})})}),i.jsx(se,{name:"invoiceDate",control:s,rules:{...t?{required:"Required"}:{},pattern:{value:vt,message:"Date must be im format yyyy-mm-dd"}},render:({field:c})=>{const o=c.value?new Date(c.value):void 0;return i.jsxs(re,{children:[i.jsx(oe,{children:"Invoice Date"}),i.jsx(he,{children:i.jsx(Wn,{...c,required:t,onChange:l=>{const d=l?typeof l=="string"?l:le(l,"yyyy-MM-dd"):void 0;d!==c.value&&(n("invoiceDate",d),c.onChange(d))},value:o,valueFormat:"DD/MM/YYYY"})}),i.jsx(ie,{})]})}}),i.jsx(se,{name:"valueDate",control:s,rules:{...t?{required:"Required"}:{},validate:c=>c?!Number.isNaN(c.getTime())||"Invalid date and time format":!0},render:({field:c})=>i.jsxs(re,{children:[i.jsx(oe,{children:"Value Date"}),i.jsx(he,{children:i.jsx(En,{...c,onChange:o=>{n("valueDate",o),c.onChange(o)},onPointerEnterCapture:()=>{},onPointerLeaveCapture:()=>{},required:t,placeholder:"Pick date and time",valueFormat:"DD/MM/YYYY HH:mm:ss",withSeconds:!0})}),i.jsx(ie,{})]})}),i.jsx(se,{name:"description",control:s,rules:{required:t?"Required":void 0},render:({field:c})=>i.jsxs(re,{children:[i.jsx(oe,{children:"Description"}),i.jsx(he,{children:i.jsx(xt,{...c,required:t,value:c.value??void 0})}),i.jsx(ie,{})]})})]})};function Qs(e,t,s="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:s}).format(t).split(/\s/g).slice(2).join(" ")}const Xs={},me={};function ce(e,t){try{const n=(Xs[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return n in me?me[n]:nt(n,n.split(":"))}catch{if(e in me)return me[e];const s=e?.match(er);return s?nt(e,s.slice(1)):NaN}}const er=/([+-]\d\d):?(\d\d)?/;function nt(e,t){const s=+(t[0]||0),n=+(t[1]||0),r=+(t[2]||0)/60;return me[e]=s*60+n>0?s*60+n+r:s*60-n-r}class V extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(ce(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),wt(this),ze(this)):this.setTime(Date.now())}static tz(t,...s){return s.length?new V(...s,t):new V(Date.now(),t)}withTimeZone(t){return new V(+this,t)}getTimezoneOffset(){const t=-ce(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),ze(this),+this}[Symbol.for("constructDateFrom")](t){return new V(+new Date(t),this.timeZone)}}const st=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!st.test(e))return;const t=e.replace(st,"$1UTC");V.prototype[t]&&(e.startsWith("get")?V.prototype[e]=function(){return this.internal[t]()}:(V.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),tr(this),+this},V.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),ze(this),+this}))});function ze(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-ce(e.timeZone,e)*60))}function tr(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),wt(e)}function wt(e){const t=ce(e.timeZone,e),s=t>0?Math.floor(t):Math.ceil(t),n=new Date(+e);n.setUTCHours(n.getUTCHours()-1);const r=-new Date(+e).getTimezoneOffset(),a=-new Date(+n).getTimezoneOffset(),c=r-a,o=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();c&&o&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+c);const l=r-s;l&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+l);const d=new Date(+e);d.setUTCSeconds(0);const f=r>0?d.getSeconds():(d.getSeconds()-60)%60,u=Math.round(-(ce(e.timeZone,e)*60))%60;(u||f)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+u),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+u+f));const h=ce(e.timeZone,e),y=h>0?Math.floor(h):Math.ceil(h),x=-new Date(+e).getTimezoneOffset()-y,g=y!==s,k=x-l;if(g&&k){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+k);const T=ce(e.timeZone,e),b=T>0?Math.floor(T):Math.ceil(T),j=y-b;j&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+j),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+j))}}class B extends V{static tz(t,...s){return s.length?new B(...s,t):new B(Date.now(),t)}toISOString(){const[t,s,n]=this.tzComponents(),r=`${t}${s}:${n}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,s,n,r]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${n} ${s} ${r}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[s,n,r]=this.tzComponents();return`${t} GMT${s}${n}${r} (${Qs(this.timeZone,this)})`}toLocaleString(t,s){return Date.prototype.toLocaleString.call(this,t,{...s,timeZone:s?.timeZone||this.timeZone})}toLocaleDateString(t,s){return Date.prototype.toLocaleDateString.call(this,t,{...s,timeZone:s?.timeZone||this.timeZone})}toLocaleTimeString(t,s){return Date.prototype.toLocaleTimeString.call(this,t,{...s,timeZone:s?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),s=t>0?"-":"+",n=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),r=String(Math.abs(t)%60).padStart(2,"0");return[s,n,r]}withTimeZone(t){return new B(+this,t)}[Symbol.for("constructDateFrom")](t){return new B(+new Date(t),this.timeZone)}}const rt=5,nr=4;function sr(e,t){const s=t.startOfMonth(e),n=s.getDay()>0?s.getDay():7,r=t.addDays(e,-n+1),a=t.addDays(r,rt*7-1);return t.getMonth(e)===t.getMonth(a)?rt:nr}function Ct(e,t){const s=t.startOfMonth(e),n=s.getDay();return n===1?s:n===0?t.addDays(s,-6):t.addDays(s,-1*(n-1))}function rr(e,t){const s=Ct(e,t),n=sr(e,t);return t.addDays(s,n*7-1)}class ${constructor(t,s){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?B.tz(this.options.timeZone):new this.Date,this.newDate=(n,r,a)=>this.overrides?.newDate?this.overrides.newDate(n,r,a):this.options.timeZone?new B(n,r,a,this.options.timeZone):new Date(n,r,a),this.addDays=(n,r)=>this.overrides?.addDays?this.overrides.addDays(n,r):Dt(n,r),this.addMonths=(n,r)=>this.overrides?.addMonths?this.overrides.addMonths(n,r):_n(n,r),this.addWeeks=(n,r)=>this.overrides?.addWeeks?this.overrides.addWeeks(n,r):Cs(n,r),this.addYears=(n,r)=>this.overrides?.addYears?this.overrides.addYears(n,r):In(n,r),this.differenceInCalendarDays=(n,r)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(n,r):Fn(n,r),this.differenceInCalendarMonths=(n,r)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(n,r):js(n,r),this.eachMonthOfInterval=n=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(n):Ws(n),this.eachYearOfInterval=n=>{const r=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(n):_s(n),a=new Set(r.map(o=>this.getYear(o)));if(a.size===r.length)return r;const c=[];return a.forEach(o=>{c.push(new Date(o,0,1))}),c},this.endOfBroadcastWeek=n=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(n):rr(n,this),this.endOfISOWeek=n=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(n):Is(n),this.endOfMonth=n=>this.overrides?.endOfMonth?this.overrides.endOfMonth(n):Ts(n),this.endOfWeek=(n,r)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(n,r):Mt(n,this.options),this.endOfYear=n=>this.overrides?.endOfYear?this.overrides.endOfYear(n):Yn(n),this.format=(n,r,a)=>{const c=this.overrides?.format?this.overrides.format(n,r,this.options):le(n,r,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(c):c},this.getISOWeek=n=>this.overrides?.getISOWeek?this.overrides.getISOWeek(n):Bn(n),this.getMonth=(n,r)=>this.overrides?.getMonth?this.overrides.getMonth(n,this.options):Ys(n,this.options),this.getYear=(n,r)=>this.overrides?.getYear?this.overrides.getYear(n,this.options):Bs(n,this.options),this.getWeek=(n,r)=>this.overrides?.getWeek?this.overrides.getWeek(n,this.options):Pn(n,this.options),this.isAfter=(n,r)=>this.overrides?.isAfter?this.overrides.isAfter(n,r):Ps(n,r),this.isBefore=(n,r)=>this.overrides?.isBefore?this.overrides.isBefore(n,r):Rs(n,r),this.isDate=n=>this.overrides?.isDate?this.overrides.isDate(n):Rn(n),this.isSameDay=(n,r)=>this.overrides?.isSameDay?this.overrides.isSameDay(n,r):Ns(n,r),this.isSameMonth=(n,r)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(n,r):As(n,r),this.isSameYear=(n,r)=>this.overrides?.isSameYear?this.overrides.isSameYear(n,r):zs(n,r),this.max=n=>this.overrides?.max?this.overrides.max(n):Ss(n),this.min=n=>this.overrides?.min?this.overrides.min(n):Os(n),this.setMonth=(n,r)=>this.overrides?.setMonth?this.overrides.setMonth(n,r):qs(n,r),this.setYear=(n,r)=>this.overrides?.setYear?this.overrides.setYear(n,r):Hs(n,r),this.startOfBroadcastWeek=(n,r)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(n,this):Ct(n,this),this.startOfDay=n=>this.overrides?.startOfDay?this.overrides.startOfDay(n):Ae(n),this.startOfISOWeek=n=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(n):An(n),this.startOfMonth=n=>this.overrides?.startOfMonth?this.overrides.startOfMonth(n):Es(n),this.startOfWeek=(n,r)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(n,this.options):zn(n,this.options),this.startOfYear=n=>this.overrides?.startOfYear?this.overrides.startOfYear(n):qn(n),this.options={locale:bt,...t},this.overrides=s}getDigitMap(){const{numerals:t="latn"}=this.options,s=new Intl.NumberFormat("en-US",{numberingSystem:t}),n={};for(let r=0;r<10;r++)n[r.toString()]=s.format(r);return n}replaceDigits(t){const s=this.getDigitMap();return t.replace(/\d/g,n=>s[n]||n)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&$.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:s,timeZone:n,numerals:r}=this.options,a=s?.code;if(a&&$.yearFirstLocales.has(a))try{return new Intl.DateTimeFormat(a,{month:"long",year:"numeric",timeZone:n,numberingSystem:r}).format(t)}catch{}const c=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,c)}}$.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const J=new $;class St{constructor(t,s,n=J){this.date=t,this.displayMonth=s,this.outside=!!(s&&!n.isSameMonth(t,s)),this.dateLib=n}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class or{constructor(t,s){this.date=t,this.weeks=s}}class ar{constructor(t,s){this.days=s,this.weekNumber=t}}function ir(e){return m.createElement("button",{...e})}function cr(e){return m.createElement("span",{...e})}function lr(e){const{size:t=24,orientation:s="left",className:n}=e;return m.createElement("svg",{className:n,width:t,height:t,viewBox:"0 0 24 24"},s==="up"&&m.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),s==="down"&&m.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),s==="left"&&m.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),s==="right"&&m.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function dr(e){const{day:t,modifiers:s,...n}=e;return m.createElement("td",{...n})}function ur(e){const{day:t,modifiers:s,...n}=e,r=m.useRef(null);return m.useEffect(()=>{s.focused&&r.current?.focus()},[s.focused]),m.createElement("button",{ref:r,...n})}var p;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(p||(p={}));var F;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(F||(F={}));var L;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(L||(L={}));var q;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(q||(q={}));function fr(e){const{options:t,className:s,components:n,classNames:r,...a}=e,c=[r[p.Dropdown],s].join(" "),o=t?.find(({value:l})=>l===a.value);return m.createElement("span",{"data-disabled":a.disabled,className:r[p.DropdownRoot]},m.createElement(n.Select,{className:c,...a},t?.map(({value:l,label:d,disabled:f})=>m.createElement(n.Option,{key:l,value:l,disabled:f},d))),m.createElement("span",{className:r[p.CaptionLabel],"aria-hidden":!0},o?.label,m.createElement(n.Chevron,{orientation:"down",size:18,className:r[p.Chevron]})))}function hr(e){return m.createElement("div",{...e})}function mr(e){return m.createElement("div",{...e})}function yr(e){const{calendarMonth:t,displayIndex:s,...n}=e;return m.createElement("div",{...n},e.children)}function gr(e){const{calendarMonth:t,displayIndex:s,...n}=e;return m.createElement("div",{...n})}function pr(e){return m.createElement("table",{...e})}function vr(e){return m.createElement("div",{...e})}const Ot=S.createContext(void 0);function ge(){const e=S.useContext(Ot);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function xr(e){const{components:t}=ge();return m.createElement(t.Dropdown,{...e})}function br(e){const{onPreviousClick:t,onNextClick:s,previousMonth:n,nextMonth:r,...a}=e,{components:c,classNames:o,labels:{labelPrevious:l,labelNext:d}}=ge(),f=S.useCallback(h=>{r&&s?.(h)},[r,s]),u=S.useCallback(h=>{n&&t?.(h)},[n,t]);return m.createElement("nav",{...a},m.createElement(c.PreviousMonthButton,{type:"button",className:o[p.PreviousMonthButton],tabIndex:n?void 0:-1,"aria-disabled":n?void 0:!0,"aria-label":l(n),onClick:u},m.createElement(c.Chevron,{disabled:n?void 0:!0,className:o[p.Chevron],orientation:"left"})),m.createElement(c.NextMonthButton,{type:"button",className:o[p.NextMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:f},m.createElement(c.Chevron,{disabled:r?void 0:!0,orientation:"right",className:o[p.Chevron]})))}function Dr(e){const{components:t}=ge();return m.createElement(t.Button,{...e})}function kr(e){return m.createElement("option",{...e})}function Mr(e){const{components:t}=ge();return m.createElement(t.Button,{...e})}function wr(e){const{rootRef:t,...s}=e;return m.createElement("div",{...s,ref:t})}function Cr(e){return m.createElement("select",{...e})}function Sr(e){const{week:t,...s}=e;return m.createElement("tr",{...s})}function Or(e){return m.createElement("th",{...e})}function Nr(e){return m.createElement("thead",{"aria-hidden":!0},m.createElement("tr",{...e}))}function jr(e){const{week:t,...s}=e;return m.createElement("th",{...s})}function Tr(e){return m.createElement("th",{...e})}function Wr(e){return m.createElement("tbody",{...e})}function Er(e){const{components:t}=ge();return m.createElement(t.Dropdown,{...e})}const _r=Object.freeze(Object.defineProperty({__proto__:null,Button:ir,CaptionLabel:cr,Chevron:lr,Day:dr,DayButton:ur,Dropdown:fr,DropdownNav:hr,Footer:mr,Month:yr,MonthCaption:gr,MonthGrid:pr,Months:vr,MonthsDropdown:xr,Nav:br,NextMonthButton:Dr,Option:kr,PreviousMonthButton:Mr,Root:wr,Select:Cr,Week:Sr,WeekNumber:jr,WeekNumberHeader:Tr,Weekday:Or,Weekdays:Nr,Weeks:Wr,YearsDropdown:Er},Symbol.toStringTag,{value:"Module"}));function X(e,t,s=!1,n=J){let{from:r,to:a}=e;const{differenceInCalendarDays:c,isSameDay:o}=n;return r&&a?(c(a,r)<0&&([r,a]=[a,r]),c(t,r)>=(s?1:0)&&c(a,t)>=(s?1:0)):!s&&a?o(a,t):!s&&r?o(r,t):!1}function Nt(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function He(e){return!!(e&&typeof e=="object"&&"from"in e)}function jt(e){return!!(e&&typeof e=="object"&&"after"in e)}function Tt(e){return!!(e&&typeof e=="object"&&"before"in e)}function Wt(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function Et(e,t){return Array.isArray(e)&&e.every(t.isDate)}function ee(e,t,s=J){const n=Array.isArray(t)?t:[t],{isSameDay:r,differenceInCalendarDays:a,isAfter:c}=s;return n.some(o=>{if(typeof o=="boolean")return o;if(s.isDate(o))return r(e,o);if(Et(o,s))return o.includes(e);if(He(o))return X(o,e,!1,s);if(Wt(o))return Array.isArray(o.dayOfWeek)?o.dayOfWeek.includes(e.getDay()):o.dayOfWeek===e.getDay();if(Nt(o)){const l=a(o.before,e),d=a(o.after,e),f=l>0,u=d<0;return c(o.before,o.after)?u&&f:f||u}return jt(o)?a(e,o.after)>0:Tt(o)?a(o.before,e)>0:typeof o=="function"?o(e):!1})}function Ir(e,t,s,n,r){const{disabled:a,hidden:c,modifiers:o,showOutsideDays:l,broadcastCalendar:d,today:f}=t,{isSameDay:u,isSameMonth:h,startOfMonth:y,isBefore:C,endOfMonth:x,isAfter:g}=r,k=s&&y(s),T=n&&x(n),b={[F.focused]:[],[F.outside]:[],[F.disabled]:[],[F.hidden]:[],[F.today]:[]},j={};for(const v of e){const{date:D,displayMonth:M}=v,N=!!(M&&!h(D,M)),Y=!!(k&&C(D,k)),P=!!(T&&g(D,T)),R=!!(a&&ee(D,a,r)),Z=!!(c&&ee(D,c,r))||Y||P||!d&&!l&&N||d&&l===!1&&N,de=u(D,f??r.today());N&&b.outside.push(v),R&&b.disabled.push(v),Z&&b.hidden.push(v),de&&b.today.push(v),o&&Object.keys(o).forEach(ue=>{const fe=o?.[ue];fe&&ee(D,fe,r)&&(j[ue]?j[ue].push(v):j[ue]=[v])})}return v=>{const D={[F.focused]:!1,[F.disabled]:!1,[F.hidden]:!1,[F.outside]:!1,[F.today]:!1},M={};for(const N in b){const Y=b[N];D[N]=Y.some(P=>P===v)}for(const N in j)M[N]=j[N].some(Y=>Y===v);return{...D,...M}}}function Fr(e,t,s={}){return Object.entries(e).filter(([,r])=>r===!0).reduce((r,[a])=>(s[a]?r.push(s[a]):t[F[a]]?r.push(t[F[a]]):t[L[a]]&&r.push(t[L[a]]),r),[t[p.Day]])}function Yr(e){return{..._r,...e}}function Br(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([s,n])=>{s.startsWith("data-")&&(t[s]=n)}),t}function $e(){const e={};for(const t in p)e[p[t]]=`rdp-${p[t]}`;for(const t in F)e[F[t]]=`rdp-${F[t]}`;for(const t in L)e[L[t]]=`rdp-${L[t]}`;for(const t in q)e[q[t]]=`rdp-${q[t]}`;return e}function _t(e,t,s){return(s??new $(t)).formatMonthYear(e)}const Pr=_t;function Rr(e,t,s){return(s??new $(t)).format(e,"d")}function Ar(e,t=J){return t.format(e,"LLLL")}function zr(e,t,s){return(s??new $(t)).format(e,"cccccc")}function qr(e,t=J){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function Hr(){return""}function It(e,t=J){return t.format(e,"yyyy")}const $r=It,Zr=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:_t,formatDay:Rr,formatMonthCaption:Pr,formatMonthDropdown:Ar,formatWeekNumber:qr,formatWeekNumberHeader:Hr,formatWeekdayName:zr,formatYearCaption:$r,formatYearDropdown:It},Symbol.toStringTag,{value:"Module"}));function Ur(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Zr,...e}}function Kr(e,t,s,n,r){const{startOfMonth:a,startOfYear:c,endOfYear:o,eachMonthOfInterval:l,getMonth:d}=r;return l({start:c(e),end:o(e)}).map(h=>{const y=n.formatMonthDropdown(h,r),C=d(h),x=t&&h<a(t)||s&&h>a(s)||!1;return{value:C,label:y,disabled:x}})}function Lr(e,t={},s={}){let n={...t?.[p.Day]};return Object.entries(e).filter(([,r])=>r===!0).forEach(([r])=>{n={...n,...s?.[r]}}),n}function Gr(e,t,s){const n=e.today(),r=t?e.startOfISOWeek(n):e.startOfWeek(n),a=[];for(let c=0;c<7;c++){const o=e.addDays(r,c);a.push(o)}return a}function Vr(e,t,s,n,r=!1){if(!e||!t)return;const{startOfYear:a,endOfYear:c,eachYearOfInterval:o,getYear:l}=n,d=a(e),f=c(t),u=o({start:d,end:f});return r&&u.reverse(),u.map(h=>{const y=s.formatYearDropdown(h,n);return{value:l(h),label:y,disabled:!1}})}function Ft(e,t,s,n){let r=(n??new $(s)).format(e,"PPPP");return t.today&&(r=`Today, ${r}`),t.selected&&(r=`${r}, selected`),r}const Jr=Ft;function Yt(e,t,s){return(s??new $(t)).formatMonthYear(e)}const Qr=Yt;function Xr(e,t,s,n){let r=(n??new $(s)).format(e,"PPPP");return t?.today&&(r=`Today, ${r}`),r}function eo(e){return"Choose the Month"}function to(){return""}function no(e){return"Go to the Next Month"}function so(e){return"Go to the Previous Month"}function ro(e,t,s){return(s??new $(t)).format(e,"cccc")}function oo(e,t){return`Week ${e}`}function ao(e){return"Week Number"}function io(e){return"Choose the Year"}const co=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:Qr,labelDay:Jr,labelDayButton:Ft,labelGrid:Yt,labelGridcell:Xr,labelMonthDropdown:eo,labelNav:to,labelNext:no,labelPrevious:so,labelWeekNumber:oo,labelWeekNumberHeader:ao,labelWeekday:ro,labelYearDropdown:io},Symbol.toStringTag,{value:"Module"})),pe=e=>e instanceof HTMLElement?e:null,Ee=e=>[...e.querySelectorAll("[data-animated-month]")??[]],lo=e=>pe(e.querySelector("[data-animated-month]")),_e=e=>pe(e.querySelector("[data-animated-caption]")),Ie=e=>pe(e.querySelector("[data-animated-weeks]")),uo=e=>pe(e.querySelector("[data-animated-nav]")),fo=e=>pe(e.querySelector("[data-animated-weekdays]"));function ho(e,t,{classNames:s,months:n,focused:r,dateLib:a}){const c=S.useRef(null),o=S.useRef(n),l=S.useRef(!1);S.useLayoutEffect(()=>{const d=o.current;if(o.current=n,!t||!e.current||!(e.current instanceof HTMLElement)||n.length===0||d.length===0||n.length!==d.length)return;const f=a.isSameMonth(n[0].date,d[0].date),u=a.isAfter(n[0].date,d[0].date),h=u?s[q.caption_after_enter]:s[q.caption_before_enter],y=u?s[q.weeks_after_enter]:s[q.weeks_before_enter],C=c.current,x=e.current.cloneNode(!0);if(x instanceof HTMLElement?(Ee(x).forEach(b=>{if(!(b instanceof HTMLElement))return;const j=lo(b);j&&b.contains(j)&&b.removeChild(j);const v=_e(b);v&&v.classList.remove(h);const D=Ie(b);D&&D.classList.remove(y)}),c.current=x):c.current=null,l.current||f||r)return;const g=C instanceof HTMLElement?Ee(C):[],k=Ee(e.current);if(k?.every(T=>T instanceof HTMLElement)&&g&&g.every(T=>T instanceof HTMLElement)){l.current=!0,e.current.style.isolation="isolate";const T=uo(e.current);T&&(T.style.zIndex="1"),k.forEach((b,j)=>{const v=g[j];if(!v)return;b.style.position="relative",b.style.overflow="hidden";const D=_e(b);D&&D.classList.add(h);const M=Ie(b);M&&M.classList.add(y);const N=()=>{l.current=!1,e.current&&(e.current.style.isolation=""),T&&(T.style.zIndex=""),D&&D.classList.remove(h),M&&M.classList.remove(y),b.style.position="",b.style.overflow="",b.contains(v)&&b.removeChild(v)};v.style.pointerEvents="none",v.style.position="absolute",v.style.overflow="hidden",v.setAttribute("aria-hidden","true");const Y=fo(v);Y&&(Y.style.opacity="0");const P=_e(v);P&&(P.classList.add(u?s[q.caption_before_exit]:s[q.caption_after_exit]),P.addEventListener("animationend",N));const R=Ie(v);R&&R.classList.add(u?s[q.weeks_before_exit]:s[q.weeks_after_exit]),b.insertBefore(v,b.firstChild)})}})}function mo(e,t,s,n){const r=e[0],a=e[e.length-1],{ISOWeek:c,fixedWeeks:o,broadcastCalendar:l}=s??{},{addDays:d,differenceInCalendarDays:f,differenceInCalendarMonths:u,endOfBroadcastWeek:h,endOfISOWeek:y,endOfMonth:C,endOfWeek:x,isAfter:g,startOfBroadcastWeek:k,startOfISOWeek:T,startOfWeek:b}=n,j=l?k(r,n):c?T(r):b(r),v=l?h(a):c?y(C(a)):x(C(a)),D=f(v,j),M=u(a,r)+1,N=[];for(let R=0;R<=D;R++){const Z=d(j,R);if(t&&g(Z,t))break;N.push(Z)}const P=(l?35:42)*M;if(o&&N.length<P){const R=P-N.length;for(let Z=0;Z<R;Z++){const de=d(N[N.length-1],1);N.push(de)}}return N}function yo(e){const t=[];return e.reduce((s,n)=>{const r=n.weeks.reduce((a,c)=>a.concat(c.days.slice()),t.slice());return s.concat(r.slice())},t.slice())}function go(e,t,s,n){const{numberOfMonths:r=1}=s,a=[];for(let c=0;c<r;c++){const o=n.addMonths(e,c);if(t&&o>t)break;a.push(o)}return a}function ot(e,t,s,n){const{month:r,defaultMonth:a,today:c=n.today(),numberOfMonths:o=1}=e;let l=r||a||c;const{differenceInCalendarMonths:d,addMonths:f,startOfMonth:u}=n;if(s&&d(s,l)<o-1){const h=-1*(o-1);l=f(s,h)}return t&&d(l,t)<0&&(l=t),u(l)}function po(e,t,s,n){const{addDays:r,endOfBroadcastWeek:a,endOfISOWeek:c,endOfMonth:o,endOfWeek:l,getISOWeek:d,getWeek:f,startOfBroadcastWeek:u,startOfISOWeek:h,startOfWeek:y}=n,C=e.reduce((x,g)=>{const k=s.broadcastCalendar?u(g,n):s.ISOWeek?h(g):y(g),T=s.broadcastCalendar?a(g):s.ISOWeek?c(o(g)):l(o(g)),b=t.filter(M=>M>=k&&M<=T),j=s.broadcastCalendar?35:42;if(s.fixedWeeks&&b.length<j){const M=t.filter(N=>{const Y=j-b.length;return N>T&&N<=r(T,Y)});b.push(...M)}const v=b.reduce((M,N)=>{const Y=s.ISOWeek?d(N):f(N),P=M.find(Z=>Z.weekNumber===Y),R=new St(N,g,n);return P?P.days.push(R):M.push(new ar(Y,[R])),M},[]),D=new or(g,v);return x.push(D),x},[]);return s.reverseMonths?C.reverse():C}function vo(e,t){let{startMonth:s,endMonth:n}=e;const{startOfYear:r,startOfDay:a,startOfMonth:c,endOfMonth:o,addYears:l,endOfYear:d,newDate:f,today:u}=t,{fromYear:h,toYear:y,fromMonth:C,toMonth:x}=e;!s&&C&&(s=C),!s&&h&&(s=t.newDate(h,0,1)),!n&&x&&(n=x),!n&&y&&(n=f(y,11,31));const g=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return s?s=c(s):h?s=f(h,0,1):!s&&g&&(s=r(l(e.today??u(),-100))),n?n=o(n):y?n=f(y,11,31):!n&&g&&(n=d(e.today??u())),[s&&a(s),n&&a(n)]}function xo(e,t,s,n){if(s.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:a=1}=s,{startOfMonth:c,addMonths:o,differenceInCalendarMonths:l}=n,d=r?a:1,f=c(e);if(!t)return o(f,d);if(!(l(t,e)<a))return o(f,d)}function bo(e,t,s,n){if(s.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:a}=s,{startOfMonth:c,addMonths:o,differenceInCalendarMonths:l}=n,d=r?a??1:1,f=c(e);if(!t)return o(f,-d);if(!(l(f,t)<=0))return o(f,-d)}function Do(e){const t=[];return e.reduce((s,n)=>s.concat(n.weeks.slice()),t.slice())}function De(e,t){const[s,n]=S.useState(e);return[t===void 0?s:t,n]}function ko(e,t){const[s,n]=vo(e,t),{startOfMonth:r,endOfMonth:a}=t,c=ot(e,s,n,t),[o,l]=De(c,e.month?c:void 0);S.useEffect(()=>{const D=ot(e,s,n,t);l(D)},[e.timeZone]);const d=go(o,n,e,t),f=mo(d,e.endMonth?a(e.endMonth):void 0,e,t),u=po(d,f,e,t),h=Do(u),y=yo(u),C=bo(o,s,e,t),x=xo(o,n,e,t),{disableNavigation:g,onMonthChange:k}=e,T=D=>h.some(M=>M.days.some(N=>N.isEqualTo(D))),b=D=>{if(g)return;let M=r(D);s&&M<r(s)&&(M=r(s)),n&&M>r(n)&&(M=r(n)),l(M),k?.(M)};return{months:u,weeks:h,days:y,navStart:s,navEnd:n,previousMonth:C,nextMonth:x,goToMonth:b,goToDay:D=>{T(D)||b(D.date)}}}var G;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(G||(G={}));function at(e){return!e[F.disabled]&&!e[F.hidden]&&!e[F.outside]}function Mo(e,t,s,n){let r,a=-1;for(const c of e){const o=t(c);at(o)&&(o[F.focused]&&a<G.FocusedModifier?(r=c,a=G.FocusedModifier):n?.isEqualTo(c)&&a<G.LastFocused?(r=c,a=G.LastFocused):s(c.date)&&a<G.Selected?(r=c,a=G.Selected):o[F.today]&&a<G.Today&&(r=c,a=G.Today))}return r||(r=e.find(c=>at(t(c)))),r}function wo(e,t,s,n,r,a,c){const{ISOWeek:o,broadcastCalendar:l}=a,{addDays:d,addMonths:f,addWeeks:u,addYears:h,endOfBroadcastWeek:y,endOfISOWeek:C,endOfWeek:x,max:g,min:k,startOfBroadcastWeek:T,startOfISOWeek:b,startOfWeek:j}=c;let D={day:d,week:u,month:f,year:h,startOfWeek:M=>l?T(M,c):o?b(M):j(M),endOfWeek:M=>l?y(M):o?C(M):x(M)}[e](s,t==="after"?1:-1);return t==="before"&&n?D=g([n,D]):t==="after"&&r&&(D=k([r,D])),D}function Bt(e,t,s,n,r,a,c,o=0){if(o>365)return;const l=wo(e,t,s.date,n,r,a,c),d=!!(a.disabled&&ee(l,a.disabled,c)),f=!!(a.hidden&&ee(l,a.hidden,c)),u=l,h=new St(l,u,c);return!d&&!f?h:Bt(e,t,h,n,r,a,c,o+1)}function Co(e,t,s,n,r){const{autoFocus:a}=e,[c,o]=S.useState(),l=Mo(t.days,s,n||(()=>!1),c),[d,f]=S.useState(a?l:void 0);return{isFocusTarget:x=>!!l?.isEqualTo(x),setFocused:f,focused:d,blur:()=>{o(d),f(void 0)},moveFocus:(x,g)=>{if(!d)return;const k=Bt(x,g,d,t.navStart,t.navEnd,e,r);k&&(e.disableNavigation&&!t.days.some(b=>b.isEqualTo(k))||(t.goToDay(k),f(k)))}}}function So(e,t){const{selected:s,required:n,onSelect:r}=e,[a,c]=De(s,r?s:void 0),o=r?s:a,{isSameDay:l}=t,d=y=>o?.some(C=>l(C,y))??!1,{min:f,max:u}=e;return{selected:o,select:(y,C,x)=>{let g=[...o??[]];if(d(y)){if(o?.length===f||n&&o?.length===1)return;g=o?.filter(k=>!l(k,y))}else o?.length===u?g=[y]:g=[...g,y];return r||c(g),r?.(g,y,C,x),g},isSelected:d}}function Oo(e,t,s=0,n=0,r=!1,a=J){const{from:c,to:o}=t||{},{isSameDay:l,isAfter:d,isBefore:f}=a;let u;if(!c&&!o)u={from:e,to:s>0?void 0:e};else if(c&&!o)l(c,e)?s===0?u={from:c,to:e}:r?u={from:c,to:void 0}:u=void 0:f(e,c)?u={from:e,to:c}:u={from:c,to:e};else if(c&&o)if(l(c,e)&&l(o,e))r?u={from:c,to:o}:u=void 0;else if(l(c,e))u={from:c,to:s>0?void 0:e};else if(l(o,e))u={from:e,to:s>0?void 0:e};else if(f(e,c))u={from:e,to:o};else if(d(e,c))u={from:c,to:e};else if(d(e,o))u={from:c,to:e};else throw new Error("Invalid range");if(u?.from&&u?.to){const h=a.differenceInCalendarDays(u.to,u.from);n>0&&h>n?u={from:e,to:void 0}:s>1&&h<s&&(u={from:e,to:void 0})}return u}function No(e,t,s=J){const n=Array.isArray(t)?t:[t];let r=e.from;const a=s.differenceInCalendarDays(e.to,e.from),c=Math.min(a,6);for(let o=0;o<=c;o++){if(n.includes(r.getDay()))return!0;r=s.addDays(r,1)}return!1}function it(e,t,s=J){return X(e,t.from,!1,s)||X(e,t.to,!1,s)||X(t,e.from,!1,s)||X(t,e.to,!1,s)}function jo(e,t,s=J){const n=Array.isArray(t)?t:[t];if(n.filter(o=>typeof o!="function").some(o=>typeof o=="boolean"?o:s.isDate(o)?X(e,o,!1,s):Et(o,s)?o.some(l=>X(e,l,!1,s)):He(o)?o.from&&o.to?it(e,{from:o.from,to:o.to},s):!1:Wt(o)?No(e,o.dayOfWeek,s):Nt(o)?s.isAfter(o.before,o.after)?it(e,{from:s.addDays(o.after,1),to:s.addDays(o.before,-1)},s):ee(e.from,o,s)||ee(e.to,o,s):jt(o)||Tt(o)?ee(e.from,o,s)||ee(e.to,o,s):!1))return!0;const c=n.filter(o=>typeof o=="function");if(c.length){let o=e.from;const l=s.differenceInCalendarDays(e.to,e.from);for(let d=0;d<=l;d++){if(c.some(f=>f(o)))return!0;o=s.addDays(o,1)}}return!1}function To(e,t){const{disabled:s,excludeDisabled:n,selected:r,required:a,onSelect:c}=e,[o,l]=De(r,c?r:void 0),d=c?r:o;return{selected:d,select:(h,y,C)=>{const{min:x,max:g}=e,k=h?Oo(h,d,x,g,a,t):void 0;return n&&s&&k?.from&&k.to&&jo({from:k.from,to:k.to},s,t)&&(k.from=h,k.to=void 0),c||l(k),c?.(k,h,y,C),k},isSelected:h=>d&&X(d,h,!1,t)}}function Wo(e,t){const{selected:s,required:n,onSelect:r}=e,[a,c]=De(s,r?s:void 0),o=r?s:a,{isSameDay:l}=t;return{selected:o,select:(u,h,y)=>{let C=u;return!n&&o&&o&&l(u,o)&&(C=void 0),r||c(C),r?.(C,u,h,y),C},isSelected:u=>o?l(o,u):!1}}function Eo(e,t){const s=Wo(e,t),n=So(e,t),r=To(e,t);switch(e.mode){case"single":return s;case"multiple":return n;case"range":return r;default:return}}function _o(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new B(t.today,t.timeZone)),t.month&&(t.month=new B(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new B(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new B(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new B(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new B(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(O=>new B(O,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new B(t.selected.from,t.timeZone):void 0,to:t.selected.to?new B(t.selected.to,t.timeZone):void 0}));const{components:s,formatters:n,labels:r,dateLib:a,locale:c,classNames:o}=S.useMemo(()=>{const O={...bt,...t.locale};return{dateLib:new $({locale:O,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:Yr(t.components),formatters:Ur(t.formatters),labels:{...co,...t.labels},locale:O,classNames:{...$e(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:l,mode:d,navLayout:f,numberOfMonths:u=1,onDayBlur:h,onDayClick:y,onDayFocus:C,onDayKeyDown:x,onDayMouseEnter:g,onDayMouseLeave:k,onNextClick:T,onPrevClick:b,showWeekNumber:j,styles:v}=t,{formatCaption:D,formatDay:M,formatMonthDropdown:N,formatWeekNumber:Y,formatWeekNumberHeader:P,formatWeekdayName:R,formatYearDropdown:Z}=n,de=ko(t,a),{days:ue,months:fe,navStart:ve,navEnd:ke,previousMonth:U,nextMonth:K,goToMonth:Q}=de,Me=Ir(ue,t,ve,ke,a),{isSelected:we,select:Ce,selected:xe}=Eo(t,a)??{},{blur:Ze,focused:Ue,isFocusTarget:Pt,moveFocus:Ke,setFocused:be}=Co(t,de,Me,we??(()=>!1),a),{labelDayButton:Rt,labelGridcell:At,labelGrid:zt,labelMonthDropdown:qt,labelNav:Le,labelPrevious:Ht,labelNext:$t,labelWeekday:Zt,labelWeekNumber:Ut,labelWeekNumberHeader:Kt,labelYearDropdown:Lt}=r,Gt=S.useMemo(()=>Gr(a,t.ISOWeek),[a,t.ISOWeek]),Ge=d!==void 0||y!==void 0,Se=S.useCallback(()=>{U&&(Q(U),b?.(U))},[U,Q,b]),Oe=S.useCallback(()=>{K&&(Q(K),T?.(K))},[Q,K,T]),Vt=S.useCallback((O,I)=>w=>{w.preventDefault(),w.stopPropagation(),be(O),Ce?.(O.date,I,w),y?.(O.date,I,w)},[Ce,y,be]),Jt=S.useCallback((O,I)=>w=>{be(O),C?.(O.date,I,w)},[C,be]),Qt=S.useCallback((O,I)=>w=>{Ze(),h?.(O.date,I,w)},[Ze,h]),Xt=S.useCallback((O,I)=>w=>{const _={ArrowLeft:[w.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[w.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[w.shiftKey?"year":"week","after"],ArrowUp:[w.shiftKey?"year":"week","before"],PageUp:[w.shiftKey?"year":"month","before"],PageDown:[w.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(_[w.key]){w.preventDefault(),w.stopPropagation();const[z,W]=_[w.key];Ke(z,W)}x?.(O.date,I,w)},[Ke,x,t.dir]),en=S.useCallback((O,I)=>w=>{g?.(O.date,I,w)},[g]),tn=S.useCallback((O,I)=>w=>{k?.(O.date,I,w)},[k]),nn=S.useCallback(O=>I=>{const w=Number(I.target.value),_=a.setMonth(a.startOfMonth(O),w);Q(_)},[a,Q]),sn=S.useCallback(O=>I=>{const w=Number(I.target.value),_=a.setYear(a.startOfMonth(O),w);Q(_)},[a,Q]),{className:rn,style:on}=S.useMemo(()=>({className:[o[p.Root],t.className].filter(Boolean).join(" "),style:{...v?.[p.Root],...t.style}}),[o,t.className,t.style,v]),an=Br(t),Ve=S.useRef(null);ho(Ve,!!t.animate,{classNames:o,months:fe,focused:Ue,dateLib:a});const cn={dayPickerProps:t,selected:xe,select:Ce,isSelected:we,months:fe,nextMonth:K,previousMonth:U,goToMonth:Q,getModifiers:Me,components:s,classNames:o,styles:v,labels:r,formatters:n};return m.createElement(Ot.Provider,{value:cn},m.createElement(s.Root,{rootRef:t.animate?Ve:void 0,className:rn,style:on,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...an},m.createElement(s.Months,{className:o[p.Months],style:v?.[p.Months]},!t.hideNavigation&&!f&&m.createElement(s.Nav,{"data-animated-nav":t.animate?"true":void 0,className:o[p.Nav],style:v?.[p.Nav],"aria-label":Le(),onPreviousClick:Se,onNextClick:Oe,previousMonth:U,nextMonth:K}),fe.map((O,I)=>m.createElement(s.Month,{"data-animated-month":t.animate?"true":void 0,className:o[p.Month],style:v?.[p.Month],key:I,displayIndex:I,calendarMonth:O},f==="around"&&!t.hideNavigation&&I===0&&m.createElement(s.PreviousMonthButton,{type:"button",className:o[p.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":Ht(U),onClick:Se,"data-animated-button":t.animate?"true":void 0},m.createElement(s.Chevron,{disabled:U?void 0:!0,className:o[p.Chevron],orientation:t.dir==="rtl"?"right":"left"})),m.createElement(s.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:o[p.MonthCaption],style:v?.[p.MonthCaption],calendarMonth:O,displayIndex:I},l?.startsWith("dropdown")?m.createElement(s.DropdownNav,{className:o[p.Dropdowns],style:v?.[p.Dropdowns]},(()=>{const w=l==="dropdown"||l==="dropdown-months"?m.createElement(s.MonthsDropdown,{key:"month",className:o[p.MonthsDropdown],"aria-label":qt(),classNames:o,components:s,disabled:!!t.disableNavigation,onChange:nn(O.date),options:Kr(O.date,ve,ke,n,a),style:v?.[p.Dropdown],value:a.getMonth(O.date)}):m.createElement("span",{key:"month"},N(O.date,a)),_=l==="dropdown"||l==="dropdown-years"?m.createElement(s.YearsDropdown,{key:"year",className:o[p.YearsDropdown],"aria-label":Lt(a.options),classNames:o,components:s,disabled:!!t.disableNavigation,onChange:sn(O.date),options:Vr(ve,ke,n,a,!!t.reverseYears),style:v?.[p.Dropdown],value:a.getYear(O.date)}):m.createElement("span",{key:"year"},Z(O.date,a));return a.getMonthYearOrder()==="year-first"?[_,w]:[w,_]})(),m.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},D(O.date,a.options,a))):m.createElement(s.CaptionLabel,{className:o[p.CaptionLabel],role:"status","aria-live":"polite"},D(O.date,a.options,a))),f==="around"&&!t.hideNavigation&&I===u-1&&m.createElement(s.NextMonthButton,{type:"button",className:o[p.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":$t(K),onClick:Oe,"data-animated-button":t.animate?"true":void 0},m.createElement(s.Chevron,{disabled:K?void 0:!0,className:o[p.Chevron],orientation:t.dir==="rtl"?"left":"right"})),I===u-1&&f==="after"&&!t.hideNavigation&&m.createElement(s.Nav,{"data-animated-nav":t.animate?"true":void 0,className:o[p.Nav],style:v?.[p.Nav],"aria-label":Le(),onPreviousClick:Se,onNextClick:Oe,previousMonth:U,nextMonth:K}),m.createElement(s.MonthGrid,{role:"grid","aria-multiselectable":d==="multiple"||d==="range","aria-label":zt(O.date,a.options,a)||void 0,className:o[p.MonthGrid],style:v?.[p.MonthGrid]},!t.hideWeekdays&&m.createElement(s.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:o[p.Weekdays],style:v?.[p.Weekdays]},j&&m.createElement(s.WeekNumberHeader,{"aria-label":Kt(a.options),className:o[p.WeekNumberHeader],style:v?.[p.WeekNumberHeader],scope:"col"},P()),Gt.map(w=>m.createElement(s.Weekday,{"aria-label":Zt(w,a.options,a),className:o[p.Weekday],key:String(w),style:v?.[p.Weekday],scope:"col"},R(w,a.options,a)))),m.createElement(s.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:o[p.Weeks],style:v?.[p.Weeks]},O.weeks.map(w=>m.createElement(s.Week,{className:o[p.Week],key:w.weekNumber,style:v?.[p.Week],week:w},j&&m.createElement(s.WeekNumber,{week:w,style:v?.[p.WeekNumber],"aria-label":Ut(w.weekNumber,{locale:c}),className:o[p.WeekNumber],scope:"row",role:"rowheader"},Y(w.weekNumber,a)),w.days.map(_=>{const{date:z}=_,W=Me(_);if(W[F.focused]=!W.hidden&&!!Ue?.isEqualTo(_),W[L.selected]=we?.(z)||W.selected,He(xe)){const{from:Ne,to:je}=xe;W[L.range_start]=!!(Ne&&je&&a.isSameDay(z,Ne)),W[L.range_end]=!!(Ne&&je&&a.isSameDay(z,je)),W[L.range_middle]=X(xe,z,!0,a)}const ln=Lr(W,v,t.modifiersStyles),dn=Fr(W,o,t.modifiersClassNames),un=!Ge&&!W.hidden?At(z,W,a.options,a):void 0;return m.createElement(s.Day,{key:`${a.format(z,"yyyy-MM-dd")}_${a.format(_.displayMonth,"yyyy-MM")}`,day:_,modifiers:W,className:dn.join(" "),style:ln,role:"gridcell","aria-selected":W.selected||void 0,"aria-label":un,"data-day":a.format(z,"yyyy-MM-dd"),"data-month":_.outside?a.format(z,"yyyy-MM"):void 0,"data-selected":W.selected||void 0,"data-disabled":W.disabled||void 0,"data-hidden":W.hidden||void 0,"data-outside":_.outside||void 0,"data-focused":W.focused||void 0,"data-today":W.today||void 0},!W.hidden&&Ge?m.createElement(s.DayButton,{className:o[p.DayButton],style:v?.[p.DayButton],type:"button",day:_,modifiers:W,disabled:W.disabled||void 0,tabIndex:Pt(_)?0:-1,"aria-label":Rt(z,W,a.options,a),onClick:Vt(_,W),onBlur:Qt(_,W),onFocus:Jt(_,W),onKeyDown:Xt(_,W),onMouseEnter:en(_,W),onMouseLeave:tn(_,W)},M(z,a.options,a)):!W.hidden&&M(_.date,a.options,a))})))))))),t.footer&&m.createElement(s.Footer,{className:o[p.Footer],style:v?.[p.Footer],role:"status","aria-live":"polite"},t.footer)))}function Io({className:e,classNames:t,showOutsideDays:s=!0,captionLayout:n="label",buttonVariant:r="ghost",formatters:a,components:c,...o}){const l=$e();return i.jsx(_o,{showOutsideDays:s,className:E("bg-white group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent dark:bg-gray-950",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:n,formatters:{formatMonthDropdown:d=>d.toLocaleString("default",{month:"short"}),...a},classNames:{root:E("w-fit",l.root),months:E("flex gap-4 flex-col md:flex-row relative",l.months),month:E("flex flex-col w-full gap-4",l.month),nav:E("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",l.nav),button_previous:E(Xe({variant:r}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",l.button_previous),button_next:E(Xe({variant:r}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",l.button_next),month_caption:E("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",l.month_caption),dropdowns:E("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",l.dropdowns),dropdown_root:E("relative has-focus:border-gray-950 border border-gray-200 shadow-xs has-focus:ring-gray-950/50 has-focus:ring-[3px] rounded-md dark:has-focus:border-gray-300 dark:border-gray-800 dark:has-focus:ring-gray-300/50",l.dropdown_root),dropdown:E("absolute bg-white inset-0 opacity-0 dark:bg-gray-950",l.dropdown),caption_label:E("select-none font-medium",n==="label"?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-gray-500 [&>svg]:size-3.5 dark:[&>svg]:text-gray-400",l.caption_label),table:"w-full border-collapse",weekdays:E("flex",l.weekdays),weekday:E("text-gray-500 rounded-md flex-1 font-normal text-[0.8rem] select-none dark:text-gray-400",l.weekday),week:E("flex w-full mt-2",l.week),week_number_header:E("select-none w-(--cell-size)",l.week_number_header),week_number:E("text-[0.8rem] select-none text-gray-500 dark:text-gray-400",l.week_number),day:E("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",l.day),range_start:E("rounded-l-md bg-gray-100 dark:bg-gray-800",l.range_start),range_middle:E("rounded-none",l.range_middle),range_end:E("rounded-r-md bg-gray-100 dark:bg-gray-800",l.range_end),today:E("bg-gray-100 text-gray-900 rounded-md data-[selected=true]:rounded-none dark:bg-gray-800 dark:text-gray-50",l.today),outside:E("text-gray-500 aria-selected:text-gray-500 dark:text-gray-400 dark:aria-selected:text-gray-400",l.outside),disabled:E("text-gray-500 opacity-50 dark:text-gray-400",l.disabled),hidden:E("invisible",l.hidden),...t},components:{Root:({className:d,rootRef:f,...u})=>i.jsx("div",{"data-slot":"calendar",ref:f,className:E(d),...u}),Chevron:({className:d,orientation:f,...u})=>f==="left"?i.jsx(Hn,{className:E("size-4",d),...u}):f==="right"?i.jsx($n,{className:E("size-4",d),...u}):i.jsx(ne,{className:E("size-4",d),...u}),DayButton:Fo,WeekNumber:({children:d,...f})=>i.jsx("td",{...f,children:i.jsx("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:d})}),...c},...o})}function Fo({className:e,day:t,modifiers:s,...n}){const r=$e(),a=m.useRef(null);return m.useEffect(()=>{s.focused&&a.current?.focus()},[s.focused]),i.jsx(H,{ref:a,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":s.selected&&!s.range_start&&!s.range_end&&!s.range_middle,"data-range-start":s.range_start,"data-range-end":s.range_end,"data-range-middle":s.range_middle,className:E("data-[selected-single=true]:bg-gray-900 data-[selected-single=true]:text-gray-50 data-[range-middle=true]:bg-gray-100 data-[range-middle=true]:text-gray-900 data-[range-start=true]:bg-gray-900 data-[range-start=true]:text-gray-50 data-[range-end=true]:bg-gray-900 data-[range-end=true]:text-gray-50 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-gray-900 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70 dark:data-[selected-single=true]:bg-gray-50 dark:data-[selected-single=true]:text-gray-900 dark:data-[range-middle=true]:bg-gray-800 dark:data-[range-middle=true]:text-gray-50 dark:data-[range-start=true]:bg-gray-50 dark:data-[range-start=true]:text-gray-900 dark:data-[range-end=true]:bg-gray-50 dark:data-[range-end=true]:text-gray-900 dark:dark:hover:text-gray-50",r.day,e),...n})}function Fe(e){return e?le(e,"yyyy-MM-dd"):""}function Yo(e){return e?!Number.isNaN(e.getTime()):!1}function Bo({value:e,onChange:t,disabled:s,...n}){const[r,a]=m.useState(!1),[c,o]=m.useState(e),[l,d]=m.useState(Fe(e));return S.useEffect(()=>{e&&d(Fe(e))},[e]),i.jsxs("div",{className:"relative flex gap-2",children:[i.jsx(xt,{...n,disabled:s,value:l,onChange:f=>{d(f.target.value);const u=f.target.value?new Date(f.target.value):void 0;Yo(u)&&(t?.(u),o(u))},onKeyDown:f=>{f.key==="ArrowDown"&&(f.preventDefault(),a(!0))}}),i.jsxs(Zn,{open:r,onOpenChange:a,children:[i.jsx(Un,{asChild:!0,children:i.jsxs(H,{id:"date-picker",variant:"ghost",className:"absolute top-1/2 right-2 size-6 -translate-y-1/2",disabled:s,children:[i.jsx(Kn,{className:"size-3.5"}),i.jsx("span",{className:"sr-only",children:"Select date"})]})}),i.jsx(Ln,{className:"w-auto overflow-hidden p-0",align:"end",alignOffset:-8,sideOffset:10,children:i.jsx(Io,{mode:"single",selected:e,captionLayout:"dropdown",month:c,onMonthChange:o,onSelect:f=>{t?.(f),d(Fe(f??void 0)),a(!1)}})})]})]})}var Ye={exports:{}},Be,ct;function Po(){if(ct)return Be;ct=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Be=e,Be}var Pe,lt;function Ro(){if(lt)return Pe;lt=1;var e=Po();function t(){}function s(){}return s.resetWarningCache=t,Pe=function(){function n(c,o,l,d,f,u){if(u!==e){var h=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw h.name="Invariant Violation",h}}n.isRequired=n;function r(){return n}var a={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:r,element:n,elementType:n,instanceOf:r,node:n,objectOf:r,oneOf:r,oneOfType:r,shape:r,exact:r,checkPropTypes:s,resetWarningCache:t};return a.PropTypes=a,a},Pe}var dt;function Ao(){return dt||(dt=1,Ye.exports=Ro()()),Ye.exports}var zo=Ao();const ra=Gn(zo),qo=({close:e,transactionID:t,onChange:s})=>t?i.jsx(Vn,{modalSize:"fit-content",position:"bottom",title:i.jsxs("div",{className:"flex flex-row mx-3 pt-3 sm:text-1xl gap-10",children:[i.jsx("h1",{className:"sm:text-2xl font-small text-gray-900",children:"Edit Transaction:"}),i.jsxs("div",{className:"flex flex-row gap-2",children:["ID: ",t,i.jsx(Jn,{content:t}),i.jsx(Zs,{transactionId:t})]})]}),opened:!!t,onClose:e,children:i.jsx(Us,{transactionID:t,onDone:e,onChange:s})}):null,Ho=({onDone:e,transactionId:t,chargeId:s})=>{const[n,r]=S.useState(!1),[{data:a,fetching:c}]=mt({query:Qn,pause:!t,variables:{transactionId:t}}),o=a?.transactionsByIDs[0];function l(){r(!1),e?.()}return i.jsxs(Xn,{open:n,onOpenChange:r,children:[i.jsx(es,{asChild:!0,children:i.jsx(ut,{label:"Insert Related Misc Expense",children:i.jsx(H,{variant:"ghost",size:"icon",className:"size-7.5",disabled:c,children:i.jsx(Ds,{className:"size-5"})})})}),i.jsxs(ts,{className:"sm:max-w-[425px]",children:[i.jsx(ns,{children:i.jsx(ss,{children:"Insert Misc Expense"})}),o&&i.jsx(Gs,{onDone:l,chargeId:s,defaultValues:{amount:o?.amount.raw?Math.abs(o?.amount.raw):void 0,currency:o?.amount.currency,invoiceDate:o?.eventDate,valueDate:o?.exactEffectiveDate||o?.effectiveDate?new Date(o.exactEffectiveDate??o.effectiveDate):void 0,creditorId:(o?.amount.raw??0)>0?o?.counterparty?.id:void 0,debtorId:(o?.amount.raw??0)<0?o?.counterparty?.id:void 0}})]})]})},$o=({transaction:e})=>{const t="effectiveDate"in e?e.effectiveDate:void 0;return i.jsxs("div",{className:"flex flex-col justify-center",children:[i.jsx("div",{children:t&&le(new Date(t),"dd/MM/yy")}),e.sourceEffectiveDate&&i.jsxs("div",{className:"text-xs text-gray-500",children:["(Originally ",le(new Date(e.sourceEffectiveDate),"dd/MM/yy"),")"]})]})},Zo=({transaction:e})=>{const t="eventDate"in e?e.eventDate:void 0;return i.jsx("div",{className:"flex flex-col justify-center",children:t&&le(new Date(t),"dd/MM/yy")})},Uo=({transaction:e})=>{const t="amount"in e?e.amount:void 0;return i.jsxs("div",{style:{color:Number(t?.raw)>0?"green":"red",whiteSpace:"nowrap"},children:[t?.formatted,i.jsx("br",{}),e.cryptoExchangeRate&&i.jsxs("span",{style:{color:"gray",marginLeft:"0.5rem"},children:[`(Rate: ${e.cryptoExchangeRate.rate})`,i.jsx("br",{}),t?.raw?`${rs(t.raw*e.cryptoExchangeRate.rate)}$`:null]})]})},Ko=({transaction:e})=>{const{account:t}=e,s=t.type,n=t.name;return i.jsxs("div",{className:"flex flex-col justify-center",children:[i.jsx("p",{children:s}),i.jsx("p",{children:n})]})},Lo=({transaction:e})=>{const t="sourceDescription"in e?e.sourceDescription:"Missing";return i.jsx("div",{className:"flex flex-wrap",children:i.jsx("div",{className:"flex flex-col justify-center",children:t})})},Go=({transaction:e})=>i.jsx("div",{className:"flex flex-wrap",children:i.jsx("div",{className:"flex flex-col justify-center",children:e.referenceKey})});function Vo({transaction:e,onChange:t}){const{id:s,counterparty:n,missingInfoSuggestions:r,id:a,sourceDescription:c,enableEdit:o}=e,l=!!r?.business&&o,d=l?r?.business?.name:"Missing",f=l?r?.business?.id:null,u=n?.name??d,[h,y]=S.useState(!1),{updateTransaction:C,fetching:x}=qe(),g=S.useCallback(async N=>{await C({transactionId:a,fields:{counterpartyId:N}}),y(!0)},[a,C]),k=S.useCallback(async N=>{await g(N),t?.()},[g,t]),{selectableBusinesses:T,fetching:b}=os(),[j,v]=S.useState(f??null),[D,M]=S.useState(c);return i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"flex flex-wrap flex-col justify-center",children:n?.id?i.jsx(ft,{to:ht.BUSINESSES.DETAIL(n.id),target:"_blank",rel:"noreferrer",onClick:N=>N.stopPropagation(),className:"inline-flex items-center font-semibold",children:u}):i.jsxs(i.Fragment,{children:[i.jsx(as,{options:T,value:j,onChange:v,search:D,onSearchChange:M,placeholder:"Choose or create a business",empty:D?i.jsx(is,{description:D,onAdd:k}):null}),i.jsx(ks,{content:"Approve",children:i.jsx(H,{variant:"outline",size:"icon",onClick:()=>j&&g(j),disabled:x||b||!j,children:i.jsx(cs,{className:"size-4"})})})]})}),i.jsx(xs,{transactionId:s,counterpartyId:n?.id??j,open:h,onOpenChange:y,onClose:t})]})}const Re=[{accessorKey:"counterparty.name",header:({column:e})=>i.jsxs(H,{variant:"ghost",children:["Counterparty",e.getIsSorted()&&(e.getIsSorted()==="asc"?i.jsx(ae,{className:"ml-2 h-4 w-4"}):i.jsx(ne,{className:"ml-2 h-4 w-4"}))]}),cell:({row:e})=>i.jsx(Vo,{transaction:e.original})},{accessorKey:"eventDate",sortingFn:e=>"eventDate"in e.original&&e.original.eventDate?new Date(e.original.eventDate).getTime():0,header:({column:e})=>i.jsxs(H,{variant:"ghost",children:["Event Date",e.getIsSorted()&&(e.getIsSorted()==="asc"?i.jsx(ae,{className:"ml-2 h-4 w-4"}):i.jsx(ne,{className:"ml-2 h-4 w-4"}))]}),cell:({row:e})=>i.jsx(Zo,{transaction:e.original})},{accessorKey:"effectiveDate",sortingFn:e=>"effectiveDate"in e.original&&e.original.effectiveDate?new Date(e.original.effectiveDate).getTime():0,header:({column:e})=>i.jsxs(H,{variant:"ghost",children:["Debit Date",e.getIsSorted()&&(e.getIsSorted()==="asc"?i.jsx(ae,{className:"ml-2 h-4 w-4"}):i.jsx(ne,{className:"ml-2 h-4 w-4"}))]}),cell:({row:e})=>i.jsx($o,{transaction:e.original})},{accessorKey:"amount.raw",header:({column:e})=>i.jsxs(H,{variant:"ghost",children:["Amount",e.getIsSorted()&&(e.getIsSorted()==="asc"?i.jsx(ae,{className:"ml-2 h-4 w-4"}):i.jsx(ne,{className:"ml-2 h-4 w-4"}))]}),cell:({row:e})=>i.jsx(Uo,{transaction:e.original})},{accessorKey:"account.name",header:({column:e})=>i.jsxs(H,{variant:"ghost",children:["Account",e.getIsSorted()&&(e.getIsSorted()==="asc"?i.jsx(ae,{className:"ml-2 h-4 w-4"}):i.jsx(ne,{className:"ml-2 h-4 w-4"}))]}),cell:({row:e})=>i.jsx(Ko,{transaction:e.original})},{accessorKey:"sourceDescription",header:({column:e})=>i.jsxs(H,{variant:"ghost",children:["Description",e.getIsSorted()&&(e.getIsSorted()==="asc"?i.jsx(ae,{className:"ml-2 h-4 w-4"}):i.jsx(ne,{className:"ml-2 h-4 w-4"}))]}),cell:({row:e})=>i.jsx(Lo,{transaction:e.original})},{accessorKey:"referenceKey",header:({column:e})=>i.jsxs(H,{variant:"ghost",children:["Reference#",e.getIsSorted()&&(e.getIsSorted()==="asc"?i.jsx(ae,{className:"ml-2 h-4 w-4"}):i.jsx(ne,{className:"ml-2 h-4 w-4"}))]}),cell:({row:e})=>i.jsx(Go,{transaction:e.original})}],Jo={accessorKey:"id",header:"Actions",cell:({row:e})=>e.original.enableEdit?i.jsxs(i.Fragment,{children:[i.jsx(ls,{onClick:e.original.editTransaction}),i.jsx(Ho,{chargeId:e.original.chargeId,transactionId:e.original.id,onDone:e.original.onUpdate})]}):e.original.enableChargeLink?i.jsx($s,{chargeId:e.original.chargeId}):null},oa=({transactionsProps:e,onChange:t=()=>{},enableEdit:s,enableChargeLink:n})=>{const[r,a]=S.useState(void 0),[c,o]=S.useState([]),l=S.useMemo(()=>e.map(h=>ds(us,h)),[e]),d=S.useMemo(()=>l?.map(h=>({...h,editTransaction:()=>a(h.id),onUpdate:t,enableEdit:s,enableChargeLink:n})),[l,t,s,n]),f=S.useMemo(()=>s||n?[...Re,Jo]:Re,[s,n]),u=fs({data:d,columns:f,getCoreRowModel:ms(),onSortingChange:o,getSortedRowModel:hs(),state:{sorting:c}});return i.jsxs(i.Fragment,{children:[i.jsxs(ys,{children:[i.jsx(gs,{children:u.getHeaderGroups().map(h=>i.jsx(We,{children:h.headers.map(y=>i.jsx(ps,{colSpan:y.colSpan,children:y.isPlaceholder?null:et(y.column.columnDef.header,y.getContext())},y.id))},h.id))}),i.jsx(vs,{children:u.getRowModel().rows?.length?u.getRowModel().rows.map(h=>i.jsx(We,{children:h.getVisibleCells().map(y=>i.jsx(tt,{children:et(y.column.columnDef.cell,y.getContext())},y.id))},h.id)):i.jsx(We,{children:i.jsx(tt,{colSpan:Re.length,className:"h-24 text-center",children:"No results."})})})]}),i.jsx(qo,{transactionID:r,close:()=>a(void 0),onChange:t})]})};export{Uo as A,Vo as C,$o as D,ws as E,Gs as I,Js as M,ra as P,Go as S,oa as T,Zo as a,Ko as b,Lo as c,$s as d};
@@ -0,0 +1 @@
1
+ import{r as c,j as e,B as u,a as y,F as g,u as P,L as D,fQ as w}from"./index-wyU9I4Kz.js";import{d as R}from"./graphql-document-dedupe-fragments-ByT8-wlV.js";import{P as E}from"./page-layout-BG0XvWfD.js";import{R as d}from"./report-commentary-row-BL2RkIHq.js";import{P as v}from"./modal-D47umnak.js";import{Y as p}from"./YearPickerInput-CllwSjcn.js";import{F}from"./funnel-BJ71hzoq.js";import{T as C}from"./Table-C5zxD95i.js";import"./toggle-expansion-button-lwJYTklN.js";import"./panel-top-open-B1rhJYjQ.js";function A({year:l,setYear:h,referenceYears:o,setReferenceYears:j}){const[m,x]=c.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx(v,{opened:m,onClose:()=>x(!1),withCloseButton:!0,content:e.jsxs(e.Fragment,{children:[e.jsx(p,{label:"Change report year",value:new Date(l,0,1),onChange:n=>n&&h(n?.getFullYear()),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date}),e.jsx(p,{type:"multiple",label:"Pick reference years",value:o?.map(n=>new Date(n,0,1)),onChange:n=>j(n.map(i=>i.getFullYear()).filter(i=>l!==i)),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date})]})}),e.jsx(u,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>x(!0),children:e.jsx(F,{className:"size-5"})})]})}const I=()=>{const{year:l}=y(),{setFiltersContext:h}=c.useContext(g),[o,j]=c.useState(l?Number(l):new Date().getFullYear()),[m,x]=c.useState([]),[{data:n,fetching:i}]=P({query:R(w),variables:{reportYear:o,referenceYears:m}});c.useEffect(()=>{h(e.jsx("div",{className:"flex flex-row gap-2",children:e.jsx(A,{year:o,setYear:j,referenceYears:m,setReferenceYears:x})}))},[o,i,h,m,x]);const f=n?.profitAndLossReport,r=f?.report,s=f?.reference??[];return e.jsx(E,{title:"Profit and Loss Report",children:i?e.jsx(D,{className:"h-10 w-10 animate-spin mr-2 self-center"}):e.jsx("div",{className:"flex flex-col gap-4",children:r&&e.jsxs(C,{highlightOnHover:!0,fontSize:"md",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{}),e.jsx("th",{children:o},o),e.jsx("th",{}),s.map(t=>e.jsx("th",{children:t.year},t.year))]})}),e.jsxs("tbody",{children:[e.jsx(d,{dataRow:t=>e.jsxs("tr",{children:[e.jsx("th",{children:"Revenue"}),e.jsx("th",{children:r.revenue.amount.formatted}),e.jsx("th",{children:t}),s.map(a=>e.jsx("th",{children:a.revenue.amount.formatted},a.year))]}),commentaryData:r.revenue}),e.jsx(d,{dataRow:t=>e.jsxs("tr",{children:[e.jsx("td",{children:"Cost of Sales"}),e.jsx("td",{children:r.costOfSales.amount.formatted}),e.jsx("th",{children:t}),s.map(a=>e.jsx("td",{children:a.costOfSales.amount.formatted},a.year))]}),commentaryData:r.costOfSales}),e.jsxs("tr",{children:[e.jsx("th",{children:"Gross Profit"}),e.jsx("th",{children:r.grossProfit.formatted}),e.jsx("th",{}),s.map(t=>e.jsx("th",{children:t.grossProfit.formatted},t.year))]}),e.jsx(d,{dataRow:t=>e.jsxs("tr",{children:[e.jsx("td",{children:"R&D Expenses"}),e.jsx("td",{children:r.researchAndDevelopmentExpenses.amount.formatted}),e.jsx("th",{children:t}),s.map(a=>e.jsx("td",{children:a.researchAndDevelopmentExpenses.amount.formatted},a.year))]}),commentaryData:r.researchAndDevelopmentExpenses}),e.jsx(d,{dataRow:t=>e.jsxs("tr",{children:[e.jsx("td",{children:"Marketing Expenses"}),e.jsx("td",{children:r.marketingExpenses.amount.formatted}),e.jsx("th",{children:t}),s.map(a=>e.jsx("td",{children:a.marketingExpenses.amount.formatted},a.year))]}),commentaryData:r.marketingExpenses}),e.jsx(d,{dataRow:t=>e.jsxs("tr",{children:[e.jsx("td",{children:"Management and General Expenses"}),e.jsx("td",{children:r.managementAndGeneralExpenses.amount.formatted}),e.jsx("th",{children:t}),s.map(a=>e.jsx("td",{children:a.managementAndGeneralExpenses.amount.formatted},a.year))]}),commentaryData:r.managementAndGeneralExpenses}),e.jsxs("tr",{children:[e.jsx("th",{children:"Operating Profit"}),e.jsx("th",{children:r.operatingProfit.formatted}),e.jsx("th",{}),s.map(t=>e.jsx("th",{children:t.operatingProfit.formatted},t.year))]}),e.jsx(d,{dataRow:t=>e.jsxs("tr",{children:[e.jsx("td",{children:"Financial Expenses"}),e.jsx("td",{children:r.financialExpenses.amount.formatted}),e.jsx("th",{children:t}),s.map(a=>e.jsx("td",{children:a.financialExpenses.amount.formatted},a.year))]}),commentaryData:r.financialExpenses}),e.jsx(d,{dataRow:t=>e.jsxs("tr",{children:[e.jsx("td",{children:"Other Income"}),e.jsx("td",{children:r.otherIncome.amount.formatted}),e.jsx("th",{children:t}),s.map(a=>e.jsx("td",{children:a.otherIncome.amount.formatted},a.year))]}),commentaryData:r.otherIncome}),e.jsxs("tr",{children:[e.jsx("th",{children:"Profit Before Tax"}),e.jsx("th",{children:r.profitBeforeTax.formatted}),e.jsx("th",{}),s.map(t=>e.jsx("th",{children:t.profitBeforeTax.formatted},t.year))]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Tax"}),e.jsx("td",{children:r.tax.formatted}),e.jsx("td",{}),s.map(t=>e.jsx("td",{children:t.tax.formatted},t.year))]})]}),e.jsx("tfoot",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Net Profit"}),e.jsx("th",{children:r.netProfit.formatted}),e.jsx("th",{}),s.map(t=>e.jsx("th",{children:t.netProfit.formatted},t.year))]})})]})})})};export{I as ProfitAndLossReport};
@@ -0,0 +1 @@
1
+ import{u as x,br as h,J as g,r,j as s,bk as T,bs as j,F as B,T as w,L as C,ag as b,bt as v}from"./index-wyU9I4Kz.js";import{E,P,C as y}from"./editable-business-trip-Bav24z0u.js";import{S as L}from"./switch-GSloW_Ey.js";import{I as S}from"./insert-business-trip-modal-vS1QrUJz.js";import{P as F}from"./page-layout-BG0XvWfD.js";import{A as m}from"./summary-DvHtnArZ.js";import"./list-plus-Dy3vzJVy.js";import"./Table-C5zxD95i.js";import"./toggle-expansion-button-lwJYTklN.js";import"./panel-top-open-B1rhJYjQ.js";import"./MultiSelect-BqcJrWnD.js";import"./similar-transactions-modal-MQeC2gtu.js";import"./tooltip-BbKSwLCX.js";import"./create-event-handler-BiA-1lGu.js";const I=({data:c,isOpened:o,shouldValidate:l})=>{const e=g(j,c),[{data:i,fetching:a}]=x({pause:!l,query:h,variables:{id:e.id}}),d=r.useMemo(()=>l?i?.businessTrip&&(i.businessTrip.uncategorizedTransactions?.length||i?.businessTrip.summary?.errors?.length):!1,[i]),u=d||e?.accountantApproval!=="APPROVED";return s.jsxs(m.Item,{value:e.id,children:[s.jsx(m.Control,{children:s.jsx(T,{inline:!0,size:12,processing:a,disabled:!u,color:d?"red":"yellow",zIndex:"auto",children:e.name})}),s.jsx(m.Panel,{children:o&&s.jsx(E,{tripId:e.id,isExtended:!0},e.id)})]})},G=()=>{const{setFiltersContext:c}=r.useContext(B),[o,l]=r.useState([]),[e,i]=r.useState(!1),[{data:a,fetching:d}]=x({query:v});r.useEffect(()=>{if(!a?.allBusinessTrips?.length){l([]);return}const t=a.allBusinessTrips.sort((n,p)=>n.dates?.start&&p.dates?.start?n.dates.start<p.dates.start?1:-1:n.dates?.start?-1:p.dates?.start?1:n.name.toLocaleLowerCase()<p.name.toLocaleLowerCase()?-1:1);l(t)},[a?.allBusinessTrips]);const[u,f]=r.useState([]);return r.useEffect(()=>{c(s.jsxs("div",{className:"flex flex-row gap-x-5",children:[s.jsx(S,{}),s.jsx(w,{label:"Toggle business trips validation",children:s.jsxs("div",{className:"flex flex-row items-center gap-x-2",children:[s.jsx(L,{checked:e??!1,onCheckedChange:t=>i(t)}),s.jsx("span",{className:"text-sm text-gray-500",children:"Validate"})]})}),s.jsx(P,{filename:"business_trips"})]}))},[a,d,c,e]),s.jsx(F,{title:"Business Trips",description:"Manage business trips",children:o.length===0&&d?s.jsx(C,{className:"h-10 w-10 animate-spin mr-2 self-center"}):s.jsx(y,{children:s.jsx(m,{className:"w-full",multiple:!0,value:u,onChange:f,chevron:s.jsx(b,{size:"1rem"}),styles:{chevron:{"&[data-rotate]":{transform:"rotate(45deg)"}}},children:o?.map(t=>s.jsx(I,{data:o.find(n=>n.id===t.id),shouldValidate:e,isOpened:u.includes(t.id)},t.id))})})})};export{G as BusinessTrips};
@@ -0,0 +1,9 @@
1
+ import{r as h,bj as S,j as e,bk as N,B as y,G as k,bl as $,a6 as R,Q as O,bm as f,bn as D,bo as C,x as F,W as A,X as E,Y as z,Z as P,bq as M,bg as w,T as B,aZ as j,aU as p,J as L,di as V,cr as v,F as _,u as G,dj as q,dk as U,L as Z,dl as H}from"./index-wyU9I4Kz.js";import{u as I}from"./use-url-query-CUVSXgm0.js";import{P as J}from"./page-layout-BG0XvWfD.js";import{S as Q}from"./switch-GSloW_Ey.js";import{P as W}from"./modal-D47umnak.js";import{F as X}from"./funnel-BJ71hzoq.js";import{M as T}from"./MultiSelect-BqcJrWnD.js";import{D as K}from"./download-csv-button-Df5rDeDc.js";import{B as Y}from"./business-extended-info-7CM8px2e.js";import{P as ee,a as te}from"./panel-top-open-B1rhJYjQ.js";import{T as se}from"./Table-C5zxD95i.js";function re({filter:t,setFilter:s,closeModal:i}){const n=k({defaultValues:{...t}}),{control:a,handleSubmit:o}=n,{selectableBusinesses:r,fetching:u}=$(),{userContext:m}=h.useContext(R),c=l=>{l.fromDate?.trim()===""&&(l.fromDate=void 0),l.toDate?.trim()===""&&(l.toDate=void 0),s(l),i()};function d(){s({}),i()}return e.jsxs(e.Fragment,{children:[u?e.jsx("div",{children:"Loading..."}):e.jsx("div",{}),e.jsx(O,{...n,children:e.jsxs("form",{onSubmit:o(c),className:"space-y-2",children:[e.jsx(f,{name:"ownerIds",control:a,defaultValue:void 0,render:({field:l,fieldState:b})=>e.jsx(T,{...l,data:r,value:l.value??(m?.context.adminBusinessId?[m?.context.adminBusinessId]:void 0),disabled:u,label:"Owners",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:b.error?.message})}),e.jsx(f,{name:"businessIDs",control:a,defaultValue:void 0,render:({field:l,fieldState:b})=>e.jsx(T,{...l,data:r,value:l.value??void 0,disabled:u,label:"Businesses",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:b.error?.message})}),e.jsx(f,{name:"fromDate",control:a,defaultValue:t.fromDate,rules:{required:"Required",pattern:{value:D,message:"Date must be im format yyyy-mm-dd"}},render:({field:l,fieldState:b})=>e.jsx(C,{...l,onChange:x=>{const g=x?typeof x=="string"?x:F(x,"yyyy-MM-dd"):void 0;g!==l.value&&l.onChange(g)},value:l.value?new Date(l.value):void 0,label:"From Date",error:b.error?.message,required:!0,popoverProps:{withinPortal:!0}})}),e.jsx(f,{name:"toDate",control:a,defaultValue:t.toDate,rules:{pattern:{value:D,message:"Date must be im format yyyy-mm-dd"}},render:({field:l,fieldState:b})=>e.jsx(C,{...l,onChange:x=>{const g=x?typeof x=="string"?x:F(x,"yyyy-MM-dd"):void 0;g!==l.value&&l.onChange(g)},value:l.value?new Date(l.value):void 0,label:"To Date",error:b.error?.message,required:!0,popoverProps:{withinPortal:!0}})}),e.jsx(A,{name:"isShowZeroedAccounts",control:a,render:({field:l})=>e.jsxs(E,{className:"flex flex-row items-center justify-between rounded-lg border p-3 shadow-sm",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(z,{children:"Show zeroed accounts"})}),e.jsxs("div",{className:"flex flex-row items-center gap-1",children:[e.jsx(P,{children:e.jsx(Q,{defaultChecked:t.isShowZeroedAccounts??!1,onCheckedChange:l.onChange,checked:l.value===!0})}),e.jsx("span",{children:l.value?"show":"remove"})]})]})}),e.jsxs("div",{className:"flex justify-center mt-5 gap-3",children:[e.jsx("button",{type:"submit",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"}),e.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:d,children:"Clear"}),e.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:i,children:"Cancel"})]})]})})]})}function ae({filter:t,setFilter:s}){const[i,n]=h.useState(!1),[a,o]=h.useState(!S(t)),{get:r,set:u}=I();function m(d){return Object.entries(d??{}).filter(([b,x])=>x!==void 0&&Array.isArray(x)&&x.length>0).length>0}function c(d){M(d,t)||(s(d),o(m(d)))}return h.useEffect(()=>{const d=S(t)?null:encodeURIComponent(JSON.stringify(t)),l=r("trialBalanceReportFilters");d!==l&&u("trialBalanceReportFilters",d)},[t,r,u]),e.jsxs(e.Fragment,{children:[e.jsx(W,{opened:i,onClose:()=>n(!1),content:e.jsx(re,{filter:t,setFilter:c,closeModal:()=>n(!1)})}),e.jsx(N,{inline:!0,size:16,disabled:!a,children:e.jsx(y,{variant:"outline",onClick:()=>n(!0),className:"p-2",children:e.jsx(X,{size:20})})})]})}const ne=({data:t,fromDate:s,toDate:i})=>{const n=h.useCallback(async()=>{const a=oe(t),o=`trial_balance_report${s?`_${s}`:""}${i?`_${i}`:""}`;return{fileContent:a,fileName:o}},[t,s,i]);return e.jsx(K,{createFileVariables:n})},oe=t=>{let s="";s+=`Sort Code,Account Name,Debit,Credit,Balance\r
2
+ `;for(const[i,n]of Object.entries(t)){const a=ie(i,n);s+=a}return s+=`Report total:,,${Object.values(t).reduce((i,n)=>i+n.totalDebit,0)},${Object.values(t).reduce((i,n)=>i+n.totalCredit,0)},${Object.values(t).reduce((i,n)=>i+n.sum,0)}\r
3
+ `,s};function ie(t,s){let i="";return Object.values(s.sortCodes).sort((n,a)=>n.key-a.key).map(n=>{const a=le(n);i+=a}),i+=`${t.replaceAll("0","*")},Group Total:,${s.totalDebit??""},${s.totalCredit??""},${s.sum}\r
4
+ `,i}function le(t){let s="";s+=`${t.name}\r
5
+ `,t.records.sort((o,r)=>o.business.name.localeCompare(r.business.name)).map(o=>{const r=o?.total?.raw??0,u=o?.debit?.raw??0,m=o?.credit?.raw??0,c=`${t.key},${o.business.name?`"${ce(o.business.name)}"`:""},${u?o?.debit?.raw:void 0},${m?o?.credit?.raw:void 0},${r>.001||r<-.001?o?.total?.raw??"":""}\r
6
+ `;s+=c});const i=`${t.key},Group total:,${t.totalDebit??""},${t.totalCredit??""},${t.sum}\r
7
+ `;s+=i;const n=t.debit?`,,,Total Debit Balances:,${t.debit}\r
8
+ `:"";s+=n;const a=t.credit?`,,,Total Credit Balances:,${t.credit}\r
9
+ `:"";return s+=a,s}function ce(t){let s="";return s=t.replace(/"/g,'""'),s}const de=({record:t,sortCodeKey:s,filter:i,isAllOpened:n})=>{const[a,o]=h.useState(n),r=t?.total?.raw??0,u=t?.debit?.raw??0,m=t?.credit?.raw??0;return e.jsxs(e.Fragment,{children:[e.jsxs("tr",{children:[e.jsx("td",{children:s}),e.jsx("td",{children:t.business.id}),e.jsx("td",{children:t.business.name??void 0}),e.jsx("td",{children:u?t?.debit?.formatted:void 0}),e.jsx("td",{children:m?t?.credit?.formatted:void 0}),e.jsx("td",{children:(r>.001||r<-.001)&&e.jsx(w,{color:r>0?"green":"red",children:t?.total?.formatted})}),e.jsx("td",{children:e.jsx(B,{label:"Detailed records",children:e.jsx(y,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>o(c=>!c),children:a||n?e.jsx(ee,{className:"size-5"}):e.jsx(te,{className:"size-5"})})})})]},t.business.id),(a||n)&&e.jsx("tr",{children:e.jsx("td",{colSpan:7,children:e.jsx(Y,{businessID:t.business?.id,filter:i})})})]})},ue=({sortCode:t,filter:s,isAllOpened:i})=>t.records.length>0?e.jsxs(e.Fragment,{children:[e.jsx("tr",{children:e.jsx("td",{colSpan:7,children:e.jsx("span",{className:"font-bold",children:t.name})})}),t.records.sort((n,a)=>n.business.name.localeCompare(a.business.name)).map(n=>e.jsx(de,{record:n,sortCodeKey:t.key,filter:s,isAllOpened:i},n.business.id)),e.jsx("tr",{className:"bg-gray-100",children:t.records.length>1?e.jsxs(e.Fragment,{children:[e.jsx("td",{colSpan:2,children:"Group total:"}),e.jsx("td",{colSpan:1,children:t.key}),e.jsx("td",{colSpan:1,children:!!t.totalDebit&&j(t.totalDebit,p.Ils)}),e.jsx("td",{colSpan:1,children:!!t.totalCredit&&j(t.totalCredit,p.Ils)}),e.jsxs("td",{colSpan:1,children:[e.jsx(w,{c:t.sum>0?"green":t.sum<0?"red":void 0,children:j(t.sum,p.Ils)}),!!t.debit&&e.jsxs(e.Fragment,{children:[e.jsx("br",{}),"Total Debit Balances: ",j(t.debit,p.Ils)]}),!!t.credit&&e.jsxs(e.Fragment,{children:[e.jsx("br",{}),"Total Credit Balances: ",j(t.credit,p.Ils)]})]})]}):void 0})]}):null,me=({group:t,data:s,filter:i,isAllOpened:n})=>e.jsxs(e.Fragment,{children:[Object.values(s.sortCodes).sort((a,o)=>a.key-o.key).map((a,o)=>e.jsx(ue,{sortCode:a,filter:i,isAllOpened:n},`${a.key} ${o}`)),e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("td",{colSpan:2,children:"Group total:"}),e.jsx("td",{colSpan:1,children:t.replaceAll("0","*")}),e.jsx("td",{colSpan:1,children:!!s.totalDebit&&j(s.totalDebit,p.Ils)}),e.jsx("td",{colSpan:1,children:!!s.totalCredit&&j(s.totalCredit,p.Ils)}),e.jsx("td",{colSpan:1,children:e.jsx(w,{fw:700,c:s.sum>0?"green":s.sum<0?"red":void 0,children:j(s.sum,p.Ils)})})]},"group"+t)]});function xe(t){return Math.floor(t/100)*100}const he=({data:t,filter:s,isAllOpened:i})=>{const{businessTransactionsSum:n}=L(V,t),a=h.useMemo(()=>{const o={};for(const r of n){r.business.sortCode??={id:"-999",key:-999,name:"Misc"};const u=!r.total.raw||r.total.raw<.001&&r.total.raw>-.001;if(!s.isShowZeroedAccounts&&u)continue;const m=xe(r.business.sortCode.key);o[m]??={sortCodes:{},totalCredit:0,totalDebit:0,credit:0,debit:0,sum:0};const c=o[m];c.sortCodes[r.business.sortCode.key]??={...r.business.sortCode,totalCredit:0,totalDebit:0,records:[],credit:0,debit:0,sum:0};const d=c.sortCodes[r.business.sortCode.key];d.totalCredit+=r.credit.raw,d.totalDebit+=r.debit.raw,d.sum+=r.total.raw,c.totalCredit+=r.credit.raw,c.totalDebit+=r.debit.raw,c.sum+=r.total.raw,r.total.raw>0?(d.credit+=r.total.raw,c.credit+=r.total.raw):(d.debit+=r.total.raw,c.debit+=r.total.raw),d.records.push(r)}return o},[n,s.isShowZeroedAccounts]);return e.jsxs(se,{highlightOnHover:!0,children:[e.jsx("thead",{style:{position:"sticky",top:0,zIndex:20},children:e.jsxs("tr",{className:"bg-gray-300",children:[e.jsx("th",{children:"Sort Code"}),e.jsx("th",{children:"Account"}),e.jsx("th",{children:"Account Name"}),e.jsx("th",{children:"Total Debit"}),e.jsx("th",{children:"Total Credit"}),e.jsx("th",{children:"Balance"}),e.jsx("th",{children:e.jsx(ne,{data:a,fromDate:s.fromDate??void 0,toDate:s.toDate??void 0})})]})}),e.jsxs("tbody",{children:[Object.entries(a).map(([o,r])=>e.jsx(me,{data:r,group:o,filter:s,isAllOpened:i},o)),e.jsxs("tr",{className:"bg-gray-100",children:[e.jsx("td",{colSpan:2,children:"Report total:"}),e.jsx("td",{}),e.jsxs("td",{children:["(",v(Object.values(a).reduce((o,r)=>o+r.totalDebit,0)),")"]}),e.jsxs("td",{children:["(",v(Object.values(a).reduce((o,r)=>o+r.totalCredit,0)),")"]}),e.jsx("td",{colSpan:1,children:v(Object.values(a).reduce((o,r)=>o+r.sum,0))})]})]})]})},Fe=()=>{const[t,s]=h.useState(!1),{get:i}=I(),{setFiltersContext:n}=h.useContext(_),[a,o]=h.useState(i("trialBalanceReportFilters")?JSON.parse(decodeURIComponent(i("trialBalanceReportFilters"))):{}),[{data:r,fetching:u}]=G({query:H,variables:{filters:{fromDate:a?.fromDate,toDate:a?.toDate,ownerIds:a?.ownerIds,businessIDs:a?.businessIDs}}});h.useEffect(()=>{n(e.jsxs("div",{className:"flex flex-row gap-2",children:[e.jsx(B,{label:"Expand all accounts",children:e.jsx(y,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>s(c=>!c),children:t?e.jsx(q,{className:"size-5"}):e.jsx(U,{className:"size-5"})})}),e.jsx(ae,{filter:a,setFilter:o})]}))},[a,t,n]);const m=h.useMemo(()=>r?.businessTransactionsSumFromLedgerRecords.__typename==="CommonError"?void 0:r?.businessTransactionsSumFromLedgerRecords,[r?.businessTransactionsSumFromLedgerRecords]);return e.jsx(J,{title:"Trial Balance Report",description:"Trial balance report for all businesses",children:u||!m?e.jsx(Z,{className:"h-10 w-10 animate-spin mr-2 self-center"}):e.jsx(he,{data:m,filter:a,isAllOpened:t})})};export{Fe as TrialBalanceReport};
@@ -0,0 +1,2 @@
1
+ import{r as u,j as e,x as v,J as R,g8 as M,F as $,u as k,cN as B,L as P,cQ as T,cR as V,cS as d,cT as L,cU as C,cV as S,cW as t,g9 as Y,d1 as K,d2 as O,dB as H,aU as z}from"./index-wyU9I4Kz.js";import{D as A}from"./data-table-pagination-D4OEFmX_.js";import{P as Q}from"./page-layout-BG0XvWfD.js";import{D as U}from"./download-csv-button-Df5rDeDc.js";import{Y as q}from"./YearPickerInput-CllwSjcn.js";const J=({data:a,year:s})=>{const n=u.useCallback(async()=>{if(!a)return{fileContent:"",fileName:""};const x=R(M,a),m=W(x),l=`${s}_ledger`;return{fileContent:m,fileName:l}},[a,s]);return a?e.jsx(U,{createFileVariables:n}):e.jsx("div",{})},F=[{key:"",valueFn:()=>""},{key:"",valueFn:()=>""},{key:"Counterparty",valueFn:a=>j(a.counterParty?.name??"")},{key:"Invoice Date",valueFn:a=>v(a.invoiceDate,"yyyy-MM-dd")},{key:"Value Date",valueFn:a=>v(a.valueDate,"yyyy-MM-dd")},{key:"Reference",valueFn:a=>a.reference?`"${j(a.reference)}"`:""},{key:"Description",valueFn:a=>a.description?`"${j(a.description)}"`:""},{key:"Debit Amount",valueFn:a=>a.amount.raw<0?Math.abs(a.amount.raw).toFixed(2):""},{key:"Credit Amount",valueFn:a=>a.amount.raw>=0?a.amount.raw.toFixed(2):""},{key:"Balance",valueFn:a=>a.balance.toFixed(2)}],W=a=>{const s=[F.map(({key:n})=>n).join(",")];return a.financialEntitiesInfo.map(n=>{const x=`${j(n.entity.name)},${n.entity.sortCode?.key}`,m=`,Opening Balance,,,,,,,,${n.openingBalance.raw.toFixed(2)}`,l=`Total,${j(n.entity.name)},,,,,,,${Math.abs(n.totalDebit.raw).toFixed(2)} Debit,`,g=`,,,,,,,,${n.totalCredit.raw.toFixed(2)} Credit,${n.closingBalance.raw.toFixed(2)}`,D=`,,,,,,,,${(n.totalCredit.raw-n.totalDebit.raw).toFixed(2)} Diff,`;s.push(x,m,...n.records.map(o=>F.map(({valueFn:b})=>b(o)).join(",")),l,g,D)}),s.join(`\r
2
+ `)};function j(a){return a.replace(/"/g,'""').replace(/,/g,".")}const c=H(z.Ils),_=[{id:"placeholder",header:"",cell:()=>null},{id:"counterparty",accessorKey:"counterparty",header:"Counterparty",cell:({row:a})=>e.jsx("div",{className:"font-medium",children:a.original.counterParty?.name})},{id:"invoiceDate",accessorKey:"invoiceDate",header:"Invoice Date",cell:({row:a})=>{const s=new Date(a.getValue("invoiceDate")),n=v(s,"yyyy-MM-dd");return e.jsx("div",{className:"font-medium",children:n})}},{id:"valueDate",accessorKey:"valueDate",header:"Value Date",cell:({row:a})=>{const s=new Date(a.getValue("valueDate")),n=v(s,"yyyy-MM-dd");return e.jsx("div",{className:"font-medium",children:n})}},{id:"reference",accessorKey:"reference",header:"Reference"},{id:"description",accessorKey:"description",header:"Description"},{id:"debit",header:"Debit",cell:({row:a})=>{const s=a.original.amount.raw;return s<0?e.jsx("div",{className:"font-medium",children:c.format(s*-1)}):null}},{id:"credit",header:"Credit",cell:({row:a})=>{const s=a.original.amount.raw;return s>=0?e.jsx("div",{className:"font-medium",children:c.format(s)}):null}},{id:"balance",accessorKey:"balance",header:"Balance",cell:({row:a})=>e.jsx("div",{className:"font-medium",children:c.format(a.getValue("balance"))})}],te=()=>{const{setFiltersContext:a}=u.useContext($),[s,n]=u.useState(new Date().getFullYear()-1),[{data:x,fetching:m}]=k({query:Y,variables:{year:s}}),l=x?.yearlyLedgerReport,{financialEntitiesInfo:g}=l??{},D=u.useMemo(()=>g?.flatMap(r=>{const{entity:i,openingBalance:y,closingBalance:h,totalCredit:p,totalDebit:w}=r;return r.records.map(N=>({entity:i,openingBalance:y,closingBalance:h,totalCredit:p,totalDebit:w,...N}))})??[],[g]),o=B({data:D,columns:_,getCoreRowModel:O(),getPaginationRowModel:K(),initialState:{pagination:{pageSize:100}}}),b=o.getState().pagination.pageIndex;return u.useEffect(()=>{a(e.jsxs("div",{className:"flex items-center justify-end gap-10 space-x-2 py-4",children:[e.jsx("div",{className:"flex items-center justify-between px-2",children:e.jsx(A,{table:o})}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(q,{value:new Date(s,0,1),onChange:r=>r&&n(r?.getFullYear()),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date}),e.jsx(J,{data:l,year:s})]})]}))},[s,m,a,l,o,b]),e.jsx(Q,{title:"Yearly Ledger Report",children:m?e.jsx(P,{className:"h-10 w-10 animate-spin mr-2 self-center"}):l?e.jsx("div",{className:"flex flex-col gap-4 rounded-md border",children:e.jsxs(T,{children:[e.jsx(V,{children:o.getHeaderGroups().map(r=>e.jsx(d,{children:r.headers.map(i=>e.jsx(L,{children:i.isPlaceholder?null:C(i.column.columnDef.header,i.getContext())},i.id))},r.id))}),e.jsx(S,{children:o.getRowModel().rows.map((r,i)=>{const y=o.getRowModel().rows[i-1],h=o.getRowModel().rows[i+1],p=!y||y.original.entity.id!==r.original.entity.id,w=!h||h.original.entity.id!==r.original.entity.id;return e.jsxs(e.Fragment,{children:[p&&i!==0&&e.jsx(d,{className:"border-y-2 border-t-gray-300 border-b-gray-500",children:e.jsx(t,{})}),p&&e.jsx(E,{row:r}),e.jsx(d,{children:r.getVisibleCells().map(f=>e.jsx(t,{children:C(f.column.columnDef.cell,f.getContext())},f.id))},r.id),w&&e.jsx(G,{row:r})]})})})]})}):e.jsx("div",{className:"rounded-md border h-24 text-center",children:"No results."})})};function E({row:a}){return e.jsxs(e.Fragment,{children:[e.jsxs(d,{className:"bg-gray-300",children:[e.jsx(t,{children:e.jsx("div",{className:"font-medium",children:a.original.entity.name})}),e.jsx(t,{children:e.jsx("div",{className:"font-medium",children:a.original.entity.sortCode?.key})}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{})]},`${a.id}-opening1`),e.jsxs(d,{className:"bg-gray-200",children:[e.jsx(t,{}),e.jsx(t,{children:e.jsx("div",{className:"font-medium",children:"Opening Balance"})}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{children:e.jsx("div",{className:"font-medium",children:c.format(a.original.openingBalance.raw)})})]},`${a.id}-opening2`)]})}function G({row:a}){return e.jsxs(e.Fragment,{children:[e.jsxs(d,{className:"bg-gray-200",children:[e.jsx(t,{children:e.jsx("div",{className:"font-medium",children:"Total"})}),e.jsx(t,{children:e.jsx("div",{className:"font-medium",children:a.original.entity.name})}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{children:e.jsxs("div",{className:"font-medium",children:[c.format(a.original.totalDebit.raw)," Debit"]})}),e.jsx(t,{})]},`${a.id}-totals1`),e.jsxs(d,{className:"bg-gray-200",children:[e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{children:e.jsxs("div",{className:"font-medium",children:[c.format(a.original.totalCredit.raw)," Credit"]})}),e.jsx(t,{children:e.jsx("div",{className:"font-medium",children:c.format(a.original.closingBalance.raw)})})]},`${a.id}-totals2`),e.jsxs(d,{className:"bg-gray-200",children:[e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{}),e.jsx(t,{children:e.jsxs("div",{className:"font-medium",children:[c.format(a.original.totalCredit.raw-a.original.totalDebit.raw)," Diff"]})}),e.jsx(t,{})]},`${a.id}-totals3`)]})}export{te as YearlyLedgerReport};
@@ -0,0 +1 @@
1
+ import{j as e,W as C,X as p,Y as S,Z as y,aF as w,$ as I,I as H,g as k,hE as L,r as u,t as m,i as R,D as E,af as M,B as x,bR as z,z as T,ah as A,ai as $,u as P,hF as Q,L as O,G as q,Q as K,a3 as V,hG as _,F as G,cN as W,cQ as X,cR as Y,cS as b,cT as Z,cU as v,cV as J,cW as g,hH as ee,d0 as se,d1 as te,d2 as oe}from"./index-wyU9I4Kz.js";import{D as re}from"./data-table-pagination-D4OEFmX_.js";import{P as ne}from"./page-layout-BG0XvWfD.js";import{A as F}from"./arrow-up-down-DPG1l9S1.js";function U({isInsert:s,formManager:n}){const{control:o}=n;return e.jsxs(e.Fragment,{children:[e.jsx(C,{name:"key",control:o,disabled:!s,rules:{required:"Required",validate:{positive:t=>Number(t)>0||"Key must be a positive number",integer:t=>Number.isInteger(Number(t))||"Key must be an integer"}},render:({field:t})=>e.jsxs(p,{children:[e.jsx(S,{children:"Key"}),e.jsx(y,{children:e.jsx(w,{...t,value:t.value??void 0,hideControls:!0,decimalScale:0,thousandSeparator:"",required:!0})}),e.jsx(I,{})]})}),e.jsx(C,{name:"name",control:o,rules:{required:"Required",minLength:{value:2,message:"Must be at least 2 characters"}},render:({field:t})=>e.jsxs(p,{children:[e.jsx(S,{children:"Name"}),e.jsx(y,{children:e.jsx(H,{...t,value:t.value??void 0,required:!0})}),e.jsx(I,{})]})}),e.jsx(C,{name:"defaultIrsCode",control:o,render:({field:t})=>e.jsxs(p,{children:[e.jsx(S,{children:"Default IRS Code"}),e.jsx(y,{children:e.jsx(w,{...t,value:t.value??void 0,hideControls:!0,decimalScale:0})}),e.jsx(I,{})]})})]})}const ae="updateSortCode",de=()=>{const[{fetching:s},n]=k(L),o=u.useCallback(async t=>{const d=`Error updating sort code ID [${t.key}]`,r=`${ae}-${t.key}`;m.loading("Updating Sort Code...",{id:r});try{const a=await n(t),i=R(a,d,r,"updateSortCode");if(i)return m.success("Success",{id:r,description:"SortCode updated"}),i.updateSortCode}catch(a){console.error(`${d}: ${a}`),m.error("Error",{id:r,description:d,duration:1e5,closeButton:!0})}return!1},[n]);return{fetching:s,updateSortCode:o}};function ie({sortCodeKey:s,onAdd:n}){const[o,t]=u.useState(!1);return e.jsxs(E,{open:o,onOpenChange:t,children:[e.jsx(M,{asChild:!0,children:e.jsx(x,{variant:"outline",size:"icon",children:e.jsx(z,{})})}),e.jsxs(T,{className:"w-[400px] max-w-screen-md",children:[e.jsx(A,{children:e.jsx($,{children:"Edit Sort Code"})}),e.jsx(ce,{sortCodeKey:s,close:()=>t(!1),onAdd:n})]})]})}function ce({sortCodeKey:s,close:n,onAdd:o}){const[{data:t,fetching:d}]=P({query:Q,variables:{key:s}}),r=t?.sortCode;return!r&&!d&&m.error("Error",{description:"Couldn't find sort code"}),d?e.jsx(O,{className:"h-10 w-10 animate-spin"}):r?e.jsx(le,{sortCode:r,close:n,onAdd:o}):e.jsx("div",{children:"Sort code not found"})}function le({sortCode:s,close:n,onAdd:o}){const t=q({defaultValues:s}),{handleSubmit:d,formState:{dirtyFields:r}}=t,{updateSortCode:a,fetching:i}=de(),c=({key:l,...B})=>{const h=V(B,r);if(h&&Object.keys(h).length>0){let N;if(h.defaultIrsCode){const f=h.defaultIrsCode,j=Number(f);if(!Number.isInteger(j)||j<2||j>9999)throw new Error(`Invalid IRS code: ${f}`);N=j}a({fields:{...h,defaultIrsCode:N},key:s.key}).then(f=>{f&&(o?.(s.key),n())})}};return e.jsx(K,{...t,children:e.jsxs("form",{onSubmit:d(c),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(U,{isInsert:!1,formManager:t})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(x,{type:"submit",disabled:i,children:"Update"})})]})})}const ue="addSortCode",me=()=>{const[{fetching:s},n]=k(_),o=u.useCallback(async t=>{const d=`Error adding new sort code [${t.name}]`,r=`${ue}-${t.name}`;m.loading("Adding sort code",{id:r});try{const a=await n(t);R(a,d,r)&&m.success("Success",{id:r,description:`"${t.name}" sort code was successfully added`})}catch(a){console.error(`${d}: ${a}`),m.error("Error",{id:r,description:d,duration:1e5,closeButton:!0})}},[n]);return{fetching:s,addSortCode:o}};function xe({onAdd:s}){const[n,o]=u.useState(!1);return e.jsxs(E,{open:n,onOpenChange:o,children:[e.jsx(M,{asChild:!0,children:e.jsx(x,{children:"Add Sort Code"})}),e.jsxs(T,{className:"w-[90vw] max-w-screen-md",children:[e.jsx(A,{children:e.jsx($,{children:"Add New Sort Code"})}),e.jsx(he,{close:()=>o(!1),onAdd:s})]})]})}function he({close:s,onAdd:n}){const o=q({}),{handleSubmit:t}=o,{addSortCode:d,fetching:r}=me(),a=i=>{i.key&&=parseInt(i.key.toString()),i.defaultIrsCode&&=parseInt(i.defaultIrsCode.toString()),d(i).then(()=>{s(),n?.()})};return e.jsx(K,{...o,children:e.jsxs("form",{onSubmit:t(a),children:[e.jsx("div",{className:"flex flex-col gap-4 my-4",children:e.jsx(U,{isInsert:!0,formManager:o})}),e.jsx("div",{className:"flex justify-end mt-4",children:e.jsx(x,{type:"submit",disabled:r,children:"Add Sort Code"})})]})})}const D=[{id:"key",accessorKey:"key",cell:({row:s})=>e.jsx(g,{children:s.original.key}),header:({column:s})=>e.jsxs(x,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Key",e.jsx(F,{})]})},{id:"name",accessorKey:"name",cell:({row:s})=>e.jsx(g,{children:s.original.name}),header:({column:s})=>e.jsxs(x,{variant:"ghost",onClick:()=>s.toggleSorting(s.getIsSorted()==="asc"),children:["Name",e.jsx(F,{})]})},{id:"defaultIrsCode",accessorKey:"defaultIrsCode",cell:({row:s})=>e.jsx(g,{className:"flex flex-wrap gap-1 p-1",children:s.original.defaultIrsCode&&e.jsx(x,{variant:"outline",disabled:!0,className:"p-1 w-15",children:s.original.defaultIrsCode})}),header:"Default IRS Code"},{id:"edit",cell:({row:s})=>e.jsx(ie,{sortCodeKey:s.original.key,onAdd:s.original.refetchSortCodes})}],pe=()=>{const[{data:s,fetching:n,error:o},t]=P({query:ee}),{setFiltersContext:d}=u.useContext(G),r=u.useMemo(()=>s?.allSortCodes?.map(c=>({...c,refetchSortCodes:t}))??[],[s?.allSortCodes,t]),a=W({data:r,columns:D,getCoreRowModel:oe(),getPaginationRowModel:te(),getSortedRowModel:se(),initialState:{pagination:{pageSize:100}}}),i=a.getPageOptions();return u.useEffect(()=>{d(e.jsx("div",{className:"flex items-center justify-end gap-10 space-x-2 py-4",children:e.jsx(re,{table:a})}))},[d,a,i]),u.useEffect(()=>{o&&(console.error("Error fetching sort codes",o),m.error("Error",{description:"Error fetching sort codes"}))},[o]),e.jsx(ne,{title:`Sort Codes (${r.length})`,description:"All sort codes",headerActions:e.jsx(xe,{onAdd:()=>t()}),children:n?e.jsx("div",{className:"flex flex-row justify-center",children:e.jsx(O,{className:"h-10 w-10 animate-spin mr-2"})}):e.jsx("div",{className:"flex flex-col gap-4 rounded-md border",children:e.jsxs(X,{children:[e.jsx(Y,{children:a.getHeaderGroups().map(c=>e.jsx(b,{children:c.headers.map(l=>e.jsx(Z,{children:l.isPlaceholder?null:v(l.column.columnDef.header,l.getContext())},l.id))},c.id))}),e.jsx(J,{children:a.getRowModel().rows.length===0?e.jsx(b,{children:e.jsx(g,{colSpan:D.length,className:"text-center py-8",children:"No sort codes found"})}):a.getRowModel().rows.map(c=>e.jsx(b,{children:c.getVisibleCells().map(l=>e.jsx(g,{children:v(l.column.columnDef.cell,l.getContext())},l.id))},c.id))})]})})})};export{pe as SortCodes};
@@ -0,0 +1 @@
1
+ import{j as e,T as se,B as q,ag as ae,bl as ne,u as I,h2 as te,r as x,a6 as H,h3 as oe,h4 as z,G,t as f,Q as le,e4 as ie,cF as V,bm as u,bp as k,W as de,h5 as ce,X as me,Y as ue,Z as xe,I as ye,$ as pe,bH as g,bF as S,x as E,a3 as ge,g as W,h6 as he,i as Y,h7 as je,e9 as J,d as fe,h8 as ve,gB as be,bj as Ne,bq as Se,J as w,h9 as Ee,ha as we,hb as Fe,hc as Ce,hd as Ie,fy as De,he as Ae,hf as Pe,hg as Re,F as Te,L as ke,hh as Me}from"./index-wyU9I4Kz.js";import{u as Q}from"./use-url-query-CUVSXgm0.js";import{P as Be}from"./page-layout-BG0XvWfD.js";import{P as Le}from"./modal-D47umnak.js";import{F as Ze}from"./funnel-BJ71hzoq.js";import{M as $e}from"./MultiSelect-BqcJrWnD.js";function _(t){return e.jsx(se,{disabled:!t.tooltip,label:t.tooltip,children:e.jsx(q,{variant:"ghost",size:"icon",className:"size-7.5",...t,children:e.jsx(ae,{className:"size-5"})})})}const X=({isNewInsert:t=!0,defaultValues:s,month:l,onDone:d,isModifying:o})=>{const{selectableBusinesses:i,fetching:n}=ne(),[{data:c,fetching:y,error:j}]=I({query:te}),{userContext:v}=x.useContext(H),[{data:b,fetching:F,error:R}]=I({query:oe}),[{data:D,fetching:M,error:C}]=I({query:z,variables:{employerId:v?.context.adminBusinessId??""}}),[p,N]=x.useState([]),[A,T]=x.useState([]),[K,ee]=x.useState([]),P=s?.month??l,Z=G({defaultValues:{...s,month:P}}),{control:m,handleSubmit:$,formState:{dirtyFields:O},setValue:B}=Z;x.useEffect(()=>{j&&f.error("Error",{description:"Oh no!, we have an error fetching pension funds! 🤥"})},[j]),x.useEffect(()=>{R&&f.error("Error",{description:"Oh no!, we have an error fetching training funds! 🤥"})},[R]),x.useEffect(()=>{C&&f.error("Error",{description:"Oh no!, we have an error employees! 🤥"})},[C]),x.useEffect(()=>{c?.allPensionFunds?.length&&N(c.allPensionFunds.map(r=>({value:r.id,label:r.name})).sort((r,a)=>r.label>a.label?1:-1))},[c,T]),x.useEffect(()=>{b?.allTrainingFunds?.length&&T(b.allTrainingFunds.map(r=>({value:r.id,label:r.name})).sort((r,a)=>r.label>a.label?1:-1))},[b,T]),x.useEffect(()=>{D?.employeesByEmployerId.length&&ee(D.employeesByEmployerId.filter(r=>!r.name.toLocaleLowerCase().includes("batched")).map(r=>({value:r.id,label:r.name})).sort((r,a)=>r.label>a.label?1:-1))},[D,T]),x.useEffect(()=>{!s?.employer&&v?.context.adminBusinessId&&B("employer",v.context.adminBusinessId,{shouldDirty:!0,shouldTouch:!0})},[B,s?.employer,v?.context.adminBusinessId]);const U=r=>{const a=ge(r,O);if(!(t&&(!a?.directPaymentAmount||!a?.employeeId||!a?.employer||!a?.month)))if(a&&Object.keys(a).length>0){if(!t){if(!s)return;a.employeeId??=s.employeeId,a.month??=s.month}d(a)}else d()};function re(r){B("month",E(r,"yyyy-MM-dd"),{shouldDirty:!0,shouldTouch:!0})}return e.jsx(le,{...Z,children:e.jsxs("form",{onSubmit:$(U),children:[e.jsx("div",{className:"flex-row px-10 h-max justify-start block",children:e.jsxs(ie,{cols:4,children:[e.jsxs("div",{className:"flex-column h-max justify-start block",children:[e.jsx(V,{defaultDate:P?new Date(P):void 0,defaultValue:P?new Date(P):void 0,onChange:re,popoverProps:{withinPortal:!0}}),e.jsx(u,{name:"employer",control:m,defaultValue:s?.employer,rules:{required:"Required"},render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:i,value:r.value,disabled:n,label:"Employer",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})}),e.jsx(de,{name:"chargeId",control:m,defaultValue:s?.chargeId,rules:{pattern:{value:ce,message:"Invalid UUID"}},render:({field:r})=>e.jsxs(me,{children:[e.jsx(ue,{children:"Charge ID"}),e.jsx(xe,{children:e.jsx(ye,{...r,value:r.value??void 0})}),e.jsx(pe,{})]})}),e.jsx(u,{name:"employeeId",control:m,defaultValue:s?.employeeId,rules:{required:"Required"},render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:K,value:r.value,disabled:M,label:"Employee",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"baseSalary",control:m,defaultValue:s?.baseSalary,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Base Salary",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"globalAdditionalHours",control:m,defaultValue:s?.globalAdditionalHours,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Global Additional Hours",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"bonus",control:m,defaultValue:s?.bonus,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Bonus",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"gift",control:m,defaultValue:s?.gift,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Gift",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"travelAndSubsistence",control:m,defaultValue:s?.travelAndSubsistence,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Travel and Subsistence",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"recovery",control:m,defaultValue:s?.recovery,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Recovery",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency"}})}),e.jsx(u,{name:"vacationTakeout",control:m,defaultValue:s?.vacationTakeout,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Vacation Takeout",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"directPaymentAmount",control:m,defaultValue:s?.directPaymentAmount,rules:{required:"Required"},render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Direct Payment",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"pensionFundId",control:m,defaultValue:s?.pensionFundId,render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:p,value:r.value,disabled:y,label:"Pension Fund",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})}),e.jsx(u,{name:"pensionEmployeeAmount",control:m,defaultValue:s?.pensionEmployeeAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Pension Employee Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"pensionEmployeePercentage",control:m,defaultValue:s?.pensionEmployeePercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Pension Employee Percentage"})}),e.jsx(u,{name:"pensionEmployerAmount",control:m,defaultValue:s?.pensionEmployerAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Pension Employer Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"pensionEmployerPercentage",control:m,defaultValue:s?.pensionEmployerPercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Pension Employer Percentage"})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"compensationsEmployerAmount",control:m,defaultValue:s?.compensationsEmployerAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Compensations Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"compensationsEmployerPercentage",control:m,defaultValue:s?.compensationsEmployerPercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Compensations Percentage"})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"trainingFundId",control:m,defaultValue:s?.trainingFundId,render:({field:r,fieldState:a})=>e.jsx(k,{...r,data:A,value:r.value,disabled:F,label:"Training Fund",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:a.error?.message})}),e.jsx(u,{name:"trainingFundEmployeeAmount",control:m,defaultValue:s?.trainingFundEmployeeAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Training Employee Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"trainingFundEmployeePercentage",control:m,defaultValue:s?.trainingFundEmployeePercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Training Employee Percentage"})}),e.jsx(u,{name:"trainingFundEmployerAmount",control:m,defaultValue:s?.trainingFundEmployerAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Training Employer Amount",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"trainingFundEmployerPercentage",control:m,defaultValue:s?.trainingFundEmployerPercentage,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,rightSection:"%",value:r??void 0,error:h.error?.message,label:"Training Employer Percentage"})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"socialSecurityAmountEmployee",control:m,defaultValue:s?.socialSecurityAmountEmployee,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Social Security - Employee",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"socialSecurityAmountEmployer",control:m,defaultValue:s?.socialSecurityAmountEmployer,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Social Security - Employer",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"healthPaymentAmount",control:m,defaultValue:s?.healthPaymentAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Health Insurance",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"taxAmount",control:m,defaultValue:s?.taxAmount,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,label:"Income Tax",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})}),e.jsx(u,{name:"zkufot",control:m,defaultValue:s?.zkufot,render:({field:r,fieldState:a})=>e.jsx(g,{...r,value:r.value??void 0,error:a.error?.message,precision:0,label:"Notional Expense",removeTrailingZeros:!0,currencyCodeProps:{value:"ILS",label:"Currency",disabled:!0}})})]}),e.jsxs("div",{className:"flex-row px-10 h-max justify-start block",children:[e.jsx(u,{name:"workDays",control:m,defaultValue:s?.workDays,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Work Days"})}),e.jsx(u,{name:"addedVacationDays",control:m,defaultValue:s?.addedVacationDays,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Added Vacation Days"})}),e.jsx(u,{name:"vacationDaysBalance",control:m,defaultValue:s?.vacationDaysBalance,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Vacation Days Balance"})}),e.jsx(u,{name:"sicknessDaysBalance",control:m,defaultValue:s?.sicknessDaysBalance,render:({field:{value:r,...a},fieldState:h})=>e.jsx(S,{...a,hideControls:!0,precision:2,removeTrailingZeros:!0,value:r??void 0,error:h.error?.message,label:"Sickness Days Balance"})})]})]})}),e.jsxs("div",{className:"mt-10 mb-5 flex justify-center gap-5",children:[e.jsx("button",{type:"submit",onClick:()=>$(U),className:"mt-8 text-white bg-indigo-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-indigo-600 rounded-sm text-lg",disabled:o||Object.keys(O).length===0,children:"Accept"}),e.jsx("button",{type:"button",className:"mt-8 text-white bg-rose-500 border-0 py-2 px-8 focus:outline-hidden hover:bg-rose-600 rounded-sm text-lg",onClick:()=>d(),children:"Cancel"})]})]})})},Oe="updateSalaryRecord",Ue=()=>{const[{fetching:t},s]=W(he),l=x.useCallback(async d=>{const o=`Error updating salary record [${d.salaryRecord.month}] employee [${d.salaryRecord.employeeId}]`,i=Oe;f.loading("Updating Salary Record",{id:i});try{const n=await s(d),c=Y(n,o,i,"updateSalaryRecord");if(c)return f.success("Success",{id:i,description:"Salary record was updated"}),c.updateSalaryRecord.salaryRecord}catch(n){console.error(`${o}: ${n}`),f.error("Error",{id:i,description:o,duration:1e5,closeButton:!0})}},[s]);return{fetching:t,updateSalaryRecord:l}},qe=({recordVariables:t,onDone:s})=>t?e.jsx(He,{recordVariables:t,onDone:s}):null,He=({recordVariables:t,onDone:s})=>{const{updateSalaryRecord:l,fetching:d}=Ue(),[{data:o,fetching:i}]=I({query:je,variables:{employeeIDs:[t.employeeId],month:E(new Date(t.month),"yyyy-MM-dd")}}),n=o?.salaryRecordsByDates?.[0],c=x.useCallback(j=>{s(),j&&l({salaryRecord:j})},[s,l]);if(!n?.employer?.id||!n?.employee?.id)return e.jsx(e.Fragment,{});const y={addedVacationDays:n?.vacationDays?.added,baseSalary:n?.baseAmount?.raw,bonus:n?.bonus?.raw,chargeId:n?.charge?.id,compensationsEmployerAmount:n?.compensationsAmount?.raw,compensationsEmployerPercentage:n?.compensationsPercentage,directPaymentAmount:n?.directAmount?.raw,employer:n.employer.id,employeeId:n.employee.id,gift:n?.gift?.raw,globalAdditionalHours:n?.globalAdditionalHoursAmount?.raw,healthPaymentAmount:n?.healthInsuranceAmount?.raw,month:n?.month,pensionEmployeeAmount:n?.pensionEmployeeAmount?.raw,pensionEmployeePercentage:n?.pensionEmployeePercentage,pensionEmployerAmount:n?.pensionEmployerAmount?.raw,pensionEmployerPercentage:n?.pensionEmployerPercentage,pensionFundId:n?.pensionFund?.id,recovery:n?.recovery?.raw,sicknessDaysBalance:n?.sicknessDays?.balance,socialSecurityAmountEmployee:n?.socialSecurityEmployeeAmount?.raw,socialSecurityAmountEmployer:n?.socialSecurityEmployerAmount?.raw,taxAmount:n?.incomeTaxAmount?.raw,trainingFundEmployeeAmount:n?.trainingFundEmployeeAmount?.raw,trainingFundEmployeePercentage:n?.trainingFundEmployeePercentage,trainingFundEmployerAmount:n?.trainingFundEmployerAmount?.raw,trainingFundEmployerPercentage:n?.trainingFundEmployerPercentage,trainingFundId:n?.trainingFund?.id,travelAndSubsistence:n?.travelAndSubsistence?.raw,vacationDaysBalance:n?.vacationDays?.balance,vacationTakeout:n?.vacationTakeout?.raw,workDays:n?.workDays,zkufot:n?.notionalExpense?.raw};return e.jsx(J,{modalSize:"fit-content",position:"bottom",title:e.jsxs("div",{className:"flex flex-row mx-3 pt-3 sm:text-1xl gap-10",children:[e.jsx("h1",{className:"sm:text-2xl font-small text-gray-900",children:"Edit Salary Record:"}),e.jsxs("div",{className:"flex flex-row gap-2",children:["month: ",t.month," employeeId: ",t.employeeId]})]}),opened:!!t,onClose:s,children:i||!n?e.jsx(fe,{className:"flex self-center my-5",color:"dark",size:"xl",variant:"dots"}):e.jsx(X,{isNewInsert:!1,defaultValues:y,onDone:c,isModifying:d})})},ze="insertSalaryRecords",Ge=()=>{const[{fetching:t},s]=W(ve),l=x.useCallback(async d=>{const o=ze;if(f.loading("Adding salary record",{id:o}),!d.salaryRecords||Array.isArray(d.salaryRecords)&&d.salaryRecords.length===0){f.error("Error",{id:o,description:"No salary records to insert",duration:1e5,closeButton:!0});return}const i=Array.isArray(d.salaryRecords)?d.salaryRecords[0]:d.salaryRecords;if(!i?.directPaymentAmount||!i?.employeeId||!i?.employer||!i?.month){f.error("Error",{id:o,description:"Missing required salary record fields",duration:1e5,closeButton:!0});return}const n=`Error adding salary record [${i.month}] employee [${i.employeeId}]`;try{const c=await s(d),y=Y(c,n,o,"insertSalaryRecords");if(y)return f.success("Success",{id:o,description:"Salary record was added"}),y.insertSalaryRecords.salaryRecords[0]}catch(c){console.error(`${n}: ${c}`),f.error("Error",{id:o,description:n,duration:1e5,closeButton:!0})}},[s]);return{fetching:t,insertSalaryRecord:l}},Ve=({insertSalaryRecordParams:t,setInsertSalaryRecord:s})=>{const{insertSalaryRecord:l,fetching:d}=Ge(),o=x.useCallback(i=>{i&&l({salaryRecords:[i]}),s(void 0)},[s,l]);return e.jsx(J,{modalSize:"40%",position:"bottom",title:e.jsx("div",{className:"flex flex-row mx-3 pt-3 sm:text-1xl gap-10",children:e.jsx("h1",{className:"sm:text-2xl font-small text-gray-900",children:"Insert Salary Record:"})}),opened:!!t,onClose:()=>s(void 0),children:e.jsx(X,{isNewInsert:!0,onDone:o,isModifying:d,month:t.month})})};function L(){const t=new Date,s=E(t,"yyyy-MM-dd"),l=E(be(t),"yyyy-MM-dd");return{fromDate:s,toDate:l}}function We({filter:t,setFilter:s,closeModal:l}){const{control:d,handleSubmit:o,setValue:i}=G({defaultValues:{...t}}),[n,c]=x.useState([]),{userContext:y}=x.useContext(H),[{data:j,fetching:v,error:b},F]=I({query:z,variables:{employerId:y?.context.adminBusinessId??""},pause:!0});x.useEffect(()=>{F()},[y?.context.adminBusinessId,F]),x.useEffect(()=>{b&&f.error("Error",{description:"Oh no!, we have an error fetching employees! 🤥"})},[b]);const R=p=>{p.employeeIDs?.length===0&&delete p.employeeIDs,s(p),l()};function D(){s({...L()}),l()}x.useEffect(()=>{j?.employeesByEmployerId.length&&c(j.employeesByEmployerId.filter(p=>!p.name.toLocaleLowerCase().includes("batched")).map(p=>({value:p.id,label:p.name})).sort((p,N)=>p.label>N.label?1:-1))},[j,c]);function M([p,N]){if(N){const A=new Date(N.getFullYear(),N.getMonth()+1,0);i("toDate",E(A,"yyyy-MM-dd"))}if(p){const A=new Date(p.getFullYear(),p.getMonth(),1);i("fromDate",E(A,"yyyy-MM-dd"))}}const C=L();return e.jsxs(e.Fragment,{children:[v?e.jsx("div",{children:"Loading..."}):e.jsx("div",{}),e.jsxs("form",{onSubmit:o(R),children:[e.jsx(V,{type:"range",numberOfColumns:2,defaultValue:[new Date(t?.fromDate??C.fromDate),new Date(t?.toDate??C.toDate)],defaultDate:new Date(t?.fromDate??C.fromDate),onChange:M,popoverProps:{withinPortal:!0}}),e.jsx(u,{name:"employeeIDs",control:d,defaultValue:t.employeeIDs,render:({field:p,fieldState:N})=>e.jsx($e,{...p,data:n,value:p.value??[],disabled:v,label:"Employees",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:N.error?.message})}),e.jsxs("div",{className:"flex justify-center mt-5 gap-3",children:[e.jsx("button",{type:"submit",disabled:v,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"}),e.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:D,children:"Clear"}),e.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:l,children:"Cancel"})]})]})]})}function Ye({filter:t,setFilter:s}){const[l,d]=x.useState(!1),{get:o,set:i}=Q();x.useEffect(()=>{const c=Ne(t)?null:encodeURIComponent(JSON.stringify(t)),y=o("salariesFilters");c!==y&&i("salariesFilters",c)},[t,o,i]);const n=x.useCallback(c=>{Se(c,t)||s(c)},[t,s]);return e.jsxs("div",{className:"flex flex-row gap-5 items-center",children:[e.jsx(Le,{opened:l,onClose:()=>d(!1),content:e.jsx(We,{filter:t,setFilter:n,closeModal:()=>d(!1)}),modalSize:"xl"}),e.jsx(q,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>d(!0),children:e.jsx(Ze,{className:"size-5"})})]})}const Je=({month:t,setInsertSalaryRecord:s})=>{const l=E(new Date(t),"MMMM yyyy");return e.jsx("tr",{tabIndex:0,className:"h-16 rounded-sm",children:e.jsx("td",{colSpan:100,children:e.jsxs("div",{className:"flex justify-between pl-5",children:[e.jsx("p",{className:"text-lg font-bold text-gray-800",children:l}),e.jsx("div",{className:"flex items-center",children:e.jsx("div",{className:"flex flex-col",children:e.jsx(_,{onClick:s})})})]})})})},Qe=({data:t})=>{const{employee:s,month:l}=w(Ee,t),d=E(new Date(l),"MMMM yyyy");return e.jsx("td",{className:"",children:e.jsx("div",{className:"flex items-center pl-5",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-base font-bold text-gray-800",children:s?.name}),e.jsx("p",{className:"text-base font-medium text-gray-800",children:d})]})})})},_e=({data:t})=>{const{pensionEmployeeAmount:s,pensionEmployeePercentage:l,pensionEmployerAmount:d,pensionEmployerPercentage:o,compensationsAmount:i,compensationsPercentage:n,pensionFund:c,trainingFund:y,trainingFundEmployeeAmount:j,trainingFundEmployeePercentage:v,trainingFundEmployerAmount:b,trainingFundEmployerPercentage:F}=w(we,t);return e.jsx("td",{className:"pl-5",children:e.jsx("div",{className:"flex items-center",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-md font-bold text-gray-800",children:"Pension Fund"}),e.jsx("p",{className:"text-md font-medium text-gray-800",children:c?.name}),!!s?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employee Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[s?.formatted,l&&` (${l}%)`]})]}),!!d?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employer Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[d?.formatted,o&&` (${o}%)`]})]}),!!i?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Compensations Amount:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[i?.formatted,n&&` (${n}%)`]})]}),e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Training Fund"}),e.jsx("p",{className:"text-md font-medium text-gray-800",children:y?.name}),!!j?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employee Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[j?.formatted,v&&` (${v}%)`]})]}),!!b?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employer Part:"}),e.jsxs("p",{className:"text-sm leading-none text-gray-600 ml-2",children:[b?.formatted,F&&` (${F}%)`]})]})]})})})},Xe=({data:t})=>{const{healthInsuranceAmount:s,socialSecurityEmployeeAmount:l,socialSecurityEmployerAmount:d,incomeTaxAmount:o,notionalExpense:i}=w(Fe,t),n=!!l||!!d;return e.jsx("td",{className:"pl-5",children:e.jsx("div",{className:"flex items-center pl-5",children:e.jsxs("div",{className:"flex flex-col",children:[n&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md font-bold text-gray-800",children:"Social Security"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employee Part:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:l?.formatted})]}),e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Pension Fund"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Employer Part:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:d?.formatted})]})]}),!!s?.raw&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Health Insurance"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Amount:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:s?.formatted})]})]}),(!!o?.raw||!!i?.raw)&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md font-bold text-gray-800 mt-2",children:"Taxes"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Income Tax:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:o?.formatted})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Notional Expense:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:i?.formatted})]})]})]})})})},Ke=({data:t})=>{const{baseAmount:s,directAmount:l,globalAdditionalHoursAmount:d,bonus:o,gift:i,recovery:n,vacationTakeout:c}=w(Ce,t);return e.jsx("td",{className:"pl-24",children:e.jsx("div",{className:"flex items-center",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Base Amount:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:s?.formatted})]}),e.jsxs("div",{className:"flex justify-between mb-2",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Global Extra Hours:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:d?.formatted})]}),!!o?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Bonus:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:o?.formatted})]}),!!i?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Gift:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:i?.formatted})]}),!!n?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Recovery:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:n?.formatted})]}),!!c?.raw&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Vacation Takeout:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:c?.formatted})]}),e.jsxs("div",{className:"flex justify-between mt-2",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Direct Amount:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:l?.formatted})]})]})})})},er=({data:t})=>{const{vacationDays:s,workDays:l,sicknessDays:d}=w(Ie,t),{added:o,taken:i,balance:n}=s??{},{balance:c}=d??{},y=!!o||!!i||!!n;return e.jsx("td",{className:"pl-5",children:e.jsx("div",{className:"flex items-center",children:e.jsxs("div",{className:"flex flex-col",children:[!!l&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md leading-none text-gray-800",children:"Work Days:"}),e.jsx("div",{className:"flex justify-between",children:e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:l})})]}),y&&e.jsxs("div",{className:"flex flex-col",children:[e.jsx("p",{className:"text-md leading-none text-gray-800 mt-2",children:"Vacation Days:"}),!!o&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Added:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:o})]}),!!i&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Taken:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:i})]}),!!n&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:"Balance:"}),e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:n})]})]}),!!c&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-md leading-none text-gray-800 mt-2",children:"Sickness Days:"}),e.jsx("div",{className:"flex justify-between",children:e.jsx("p",{className:"text-sm leading-none text-gray-600 ml-2",children:c})})]})]})})})},rr=({setEditSalaryRecord:t,data:s})=>{const l=w(Ae,s);return e.jsxs(e.Fragment,{children:[e.jsxs("tr",{tabIndex:0,className:"h-16 border border-gray-100 hover:bg-gray-100 rounded-sm",children:[e.jsx(Qe,{data:l}),e.jsx(Ke,{data:l}),e.jsx(_e,{data:l}),e.jsx(Xe,{data:l}),e.jsx(er,{data:l}),e.jsx("td",{className:"pl-2",children:e.jsx("div",{className:"flex items-center",children:e.jsx("div",{className:"flex flex-col",children:e.jsx(De,{onClick:t})})})})]}),e.jsx("tr",{className:"h-3"})]})},sr=({setEditSalaryRecord:t,setInsertSalaryRecord:s,data:l})=>{const d=l?.map(o=>w(Pe,o))??[];return e.jsxs(e.Fragment,{children:[e.jsx("tr",{className:"h-3"}),e.jsx(Je,{month:d[0].month,setInsertSalaryRecord:s}),e.jsx("tr",{className:"h-3"}),d.map(o=>e.jsx(rr,{data:o,setEditSalaryRecord:()=>t(o.employee?.id)},`${o.month} ${o.employee?.id}`))]})},ar=({setEditSalaryRecord:t,setInsertSalaryRecord:s,data:l})=>{const d=x.useMemo(()=>{const o=l?.map(n=>w(Re,n))??[],i=new Map;return o.map(n=>{const{month:c}=n,y=i.get(c)??[];i.set(c,[...y,n])}),i},[l]);return e.jsx("div",{className:"sm:px-6 w-full",children:e.jsxs("div",{className:"bg-white py-4 md:py-7 px-4 md:px-8 xl:px-10",children:[e.jsxs("div",{className:"sm:flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"rounded-full focus:outline-hidden focus:ring-2 focus:bg-indigo-50 focus:ring-indigo-800",children:e.jsx("div",{className:"py-2 px-8 bg-indigo-100 text-indigo-700 rounded-full",children:e.jsx("p",{children:"All"})})}),e.jsx("div",{className:"rounded-full focus:outline-hidden focus:ring-2 focus:bg-indigo-50 focus:ring-indigo-800 ml-4 sm:ml-8",children:e.jsx("div",{className:"py-2 px-8 text-gray-600 hover:text-indigo-700 hover:bg-indigo-100 rounded-full ",children:e.jsx("p",{children:"Done"})})}),e.jsx("div",{className:"rounded-full focus:outline-hidden focus:ring-2 focus:bg-indigo-50 focus:ring-indigo-800 ml-4 sm:ml-8",children:e.jsx("div",{className:"py-2 px-8 text-gray-600 hover:text-indigo-700 hover:bg-indigo-100 rounded-full ",children:e.jsx("p",{children:"Pending"})})})]}),e.jsx("button",{className:"focus:ring-2 focus:ring-offset-2 focus:ring-indigo-600 mt-4 sm:mt-0 inline-flex items-start justify-start px-6 py-3 bg-indigo-700 hover:bg-indigo-600 focus:outline-hidden rounded-sm",children:e.jsx("p",{className:"text-sm font-medium leading-none text-white",children:"Add Task"})})]}),e.jsx("div",{className:"mt-7 overflow-x-auto",children:e.jsx("table",{className:"w-full whitespace-nowrap",children:e.jsx("tbody",{children:Array.from(d).map(([o,i])=>e.jsx(sr,{data:i,setEditSalaryRecord:n=>t(n?{month:o,employeeId:n}:void 0),setInsertSalaryRecord:()=>s({month:o})},o))})})})]})})},cr=()=>{const{setFiltersContext:t}=x.useContext(Te),[s,l]=x.useState(void 0),[d,o]=x.useState(void 0),{get:i}=Q(),[n,c]=x.useState(i("salariesFilters")?JSON.parse(decodeURIComponent(i("salariesFilters"))):{...L()}),[{data:y,fetching:j}]=I({query:Me,variables:{...n}});return x.useEffect(()=>{t(e.jsxs("div",{className:"flex flex-row gap-x-5",children:[e.jsx(Ye,{filter:n,setFilter:c}),e.jsx(_,{variant:"default",onClick:()=>o({})})]}))},[y,j,n,t,c]),e.jsxs(Be,{title:"Salaries",description:"View and manage salaries of employees.",children:[j?e.jsx(ke,{className:"h-10 w-10 animate-spin mr-2 self-center"}):e.jsx(ar,{setEditSalaryRecord:l,setInsertSalaryRecord:o,data:y?.salaryRecordsByDates}),e.jsx(qe,{recordVariables:s,onDone:()=>l(void 0)}),d&&e.jsx(Ve,{insertSalaryRecordParams:d,setInsertSalaryRecord:o})]})};export{cr as Salaries};
@@ -0,0 +1 @@
1
+ import{r,bj as S,bq as A,j as e,bk as U,B as c,a6 as K,G as z,x as b,cL as _,Q as L,cM as B,bm as D,bn as M,bo as I,W as H,X as G,Y as Q,Z as q,F as X,u as J,cN as W,L as Y,cO as Z,cP as $,cQ as ee,cR as te,cS as w,cT as se,cU as T,cV as ae,cW as k,cX as ne,cY as re,cZ as ie,c_ as le,c$ as oe,d0 as ce,d1 as de,d2 as me}from"./index-wyU9I4Kz.js";import{u as P}from"./use-url-query-CUVSXgm0.js";import{a as ue}from"./accounter-table-CpeQD4PG.js";import{D as ge}from"./data-table-pagination-D4OEFmX_.js";import{P as V}from"./modal-D47umnak.js";import{P as xe}from"./page-layout-BG0XvWfD.js";import{S as he}from"./switch-GSloW_Ey.js";import{F as pe}from"./funnel-BJ71hzoq.js";import{M as R}from"./MultiSelect-BqcJrWnD.js";import{s as je}from"./sub-B4_VmmF9.js";import{A as v}from"./arrow-up-down-DPG1l9S1.js";import"./Pagination-6Sv5LXxl.js";import"./create-event-handler-BiA-1lGu.js";import"./Table-C5zxD95i.js";import"./addDays-DvwuJbUs.js";import"./subMonths-DG7w6bCY.js";function fe({filter:t,setFilter:s,closeModal:h}){const{userContext:p}=r.useContext(K),x=z({defaultValues:{ownerIDs:p?.context.adminBusinessId?[p.context.adminBusinessId]:void 0,toDate:b(new Date,"yyyy-MM-dd"),fromDate:b(je(new Date,{years:1}),"yyyy-MM-dd"),...t}}),{control:o,handleSubmit:y}=x,{selectableFinancialEntities:i,fetching:d}=_(),C=a=>{s(a),h()};function m(){s({}),h()}return e.jsxs(e.Fragment,{children:[d?e.jsx("div",{children:"Loading..."}):e.jsx("div",{}),e.jsx(L,{...x,children:e.jsxs("form",{onSubmit:y(C),children:[e.jsxs(B,{cols:2,children:[e.jsx(D,{name:"ownerIDs",control:o,defaultValue:t.ownerIDs,render:({field:a,fieldState:g})=>e.jsx(R,{...a,data:i,value:a.value??[],disabled:d,label:"Owners",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:g.error?.message,withinPortal:!0})}),e.jsx(D,{name:"businessIDs",control:o,defaultValue:t.businessIDs,render:({field:a,fieldState:g})=>e.jsx(R,{...a,data:i,value:a.value??[],disabled:d,label:"Financial Entities",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:g.error?.message,withinPortal:!0})}),e.jsx(D,{name:"fromDate",control:o,defaultValue:t.fromDate,rules:{pattern:{value:M,message:"Date must be im format yyyy-mm-dd"}},render:({field:a,fieldState:g})=>e.jsx(I,{...a,onChange:l=>{const j=l?typeof l=="string"?l:b(l,"yyyy-MM-dd"):void 0;j!==a.value&&a.onChange(j)},value:a.value?new Date(a.value):void 0,error:g.error?.message,label:"From Date",popoverProps:{withinPortal:!0}})}),e.jsx(D,{name:"toDate",control:o,defaultValue:t.toDate,rules:{pattern:{value:M,message:"Date must be im format yyyy-mm-dd"}},render:({field:a,fieldState:g})=>e.jsx(I,{...a,onChange:l=>{const j=l?typeof l=="string"?l:b(l,"yyyy-MM-dd"):void 0;j!==a.value&&a.onChange(j)},value:a.value?new Date(a.value):void 0,error:g.error?.message,label:"To Date",popoverProps:{withinPortal:!0}})}),e.jsx(H,{name:"unmatched",control:o,render:({field:a})=>e.jsxs(G,{className:"flex flex-row items-center justify-between rounded-lg border p-3 shadow-sm",children:[e.jsx("div",{className:"space-y-0.5",children:e.jsx(Q,{children:"Unmatched only"})}),e.jsx(q,{children:e.jsx(he,{defaultChecked:t.unmatched??!1,onCheckedChange:a.onChange})})]})})]}),e.jsxs("div",{className:"flex justify-center mt-5 gap-3",children:[e.jsx("button",{type:"submit",disabled:d,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"}),e.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"}),e.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:h,children:"Cancel"})]})]})})]})}function ve({filter:t={},setFilter:s,initiallyOpened:h=!1}){const[p,x]=r.useState(h),[o,y]=r.useState(!S(t)),{get:i,set:d}=P();r.useEffect(()=>{const m=S(t)?null:encodeURIComponent(JSON.stringify(t)),a=i("documentsFilters");m!==a&&d("documentsFilters",m)},[t,i,d]);const C=r.useCallback(m=>{A(m,t)||(s(m),y(!S(m)))},[t,s]);return e.jsxs("div",{className:"flex flex-row gap-5 items-center",children:[e.jsx(V,{opened:p,onClose:()=>x(!1),content:e.jsx(fe,{filter:t,setFilter:C,closeModal:()=>x(!1)}),modalSize:"xl"}),e.jsx(U,{inline:!0,size:16,disabled:!o,children:e.jsx(c,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>x(!0),children:e.jsx(pe,{className:"size-5"})})})]})}const E=[{accessorKey:"__typename",header:({column:t})=>e.jsxs(c,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),children:[e.jsx("div",{className:"text-left",children:"Type"}),e.jsx(v,{className:"ml-2 h-4 w-4"})]}),cell:({row:t})=>{const{__typename:s}=t.original;return e.jsx("div",{className:"text-left font-medium",children:s})}},{accessorKey:"image",header:()=>e.jsx("div",{className:"text-left",children:"Image"}),cell:({row:t})=>{const{image:s}=t.original;return e.jsx("div",{className:"text-left font-medium",children:s?e.jsx("img",{alt:"missing img",src:s?.toString(),height:80,width:80}):"No image"})}},{accessorKey:"file",header:()=>e.jsx("div",{className:"text-left",children:"File"}),cell:({row:t})=>{const{file:s}=t.original;return e.jsx("div",{className:"text-left font-medium",children:s&&e.jsx(c,{variant:"outline",size:"sm",asChild:!0,children:e.jsx("a",{target:"_blank",rel:"noreferrer",href:s?.toString(),children:"Open"})})})}},{accessorKey:"date",header:({column:t})=>e.jsxs(c,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),children:[e.jsx("div",{className:"text-left",children:"Date"}),e.jsx(v,{className:"ml-2 h-4 w-4"})]}),cell:({row:t})=>"date"in t.original&&t.original.date?e.jsx("div",{className:"text-left font-medium",children:b(new Date(t.original.date),"dd/MM/yy")}):null},{accessorKey:"serialNumber",header:({column:t})=>e.jsxs(c,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),children:[e.jsx("div",{className:"text-left",children:"Serial Number"}),e.jsx(v,{className:"ml-2 h-4 w-4"})]}),cell:({row:t})=>"serialNumber"in t.original&&t.original.serialNumber?e.jsx("div",{className:"text-left font-medium",children:t.original.serialNumber}):null},{accessorKey:"vat.raw",header:({column:t})=>e.jsxs(c,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),children:[e.jsx("div",{className:"text-left",children:"VAT"}),e.jsx(v,{className:"ml-2 h-4 w-4"})]}),cell:({row:t})=>"vat"in t.original&&t.original.vat?.formatted?e.jsx("div",{className:"text-left font-medium whitespace-nowrap",children:t.original.vat.formatted}):null},{accessorKey:"amount.raw",header:({column:t})=>e.jsxs(c,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),children:[e.jsx("div",{className:"text-left",children:"Amount"}),e.jsx(v,{className:"ml-2 h-4 w-4"})]}),cell:({row:t})=>"amount"in t.original&&t.original.amount?.formatted?e.jsx("div",{className:"text-left font-medium whitespace-nowrap",children:t.original.amount.formatted}):null},{accessorKey:"creditor.name",header:({column:t})=>e.jsxs(c,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),children:[e.jsx("div",{className:"text-left",children:"Creditor"}),e.jsx(v,{className:"ml-2 h-4 w-4"})]}),cell:({row:t})=>"creditor"in t.original&&t.original.creditor?.name?e.jsx("div",{className:"text-left font-medium whitespace-nowrap",children:t.original.creditor.name}):null},{accessorKey:"debtor.name",header:({column:t})=>e.jsxs(c,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),children:[e.jsx("div",{className:"text-left",children:"Debtor"}),e.jsx(v,{className:"ml-2 h-4 w-4"})]}),cell:({row:t})=>"debtor"in t.original&&t.original.debtor?.name?e.jsx("div",{className:"text-left font-medium whitespace-nowrap",children:t.original.debtor.name}):null},{accessorKey:"charge.transactions[0].id",header:()=>e.jsx("div",{className:"text-left",children:"Related Transaction"}),cell:({row:t})=>t.original.charge?.transactions?.[0]?.id?e.jsx(ue,{items:t.original.charge?.transactions??[],columns:[{title:"Transaction Amount",value:s=>s?.amount.formatted},{title:"Transaction Created At",value:s=>s?.eventDate?b(new Date(s.eventDate),"dd/MM/yy"):null},{title:"Transaction Effective Date",value:s=>s?.effectiveDate?b(new Date(s.effectiveDate),"dd/MM/yy"):null},{title:"Transaction Description",value:s=>s?.sourceDescription}]}):"No Related Transaction"}],Oe=()=>{const[t,s]=r.useState(null),[h,p]=r.useState(!1),{get:x}=P(),o=x("documentsFilters"),y=r.useMemo(()=>{if(o)try{return JSON.parse(decodeURIComponent(o))}catch{return}},[o]),[i,d]=r.useState(y),[C,m]=r.useState([]),[a,g]=r.useState({}),{setFiltersContext:l}=r.useContext(X),[{data:j,fetching:F},N]=J({query:oe,variables:{filters:i??{}},pause:!0});r.useEffect(()=>{i&&N()},[i,N]);const f=W({data:j?.documentsByFilters??[],columns:E,getCoreRowModel:me(),getPaginationRowModel:de(),onSortingChange:m,getSortedRowModel:ce(),onColumnVisibilityChange:g,state:{sorting:C,columnVisibility:a}}),O=f.getState().pagination.pageIndex;return r.useEffect(()=>{l(e.jsxs("div",{className:"flex flex-row gap-x-5",children:[e.jsx(ge,{table:f}),e.jsx(ve,{filter:i,setFilter:d,initiallyOpened:!i})]}))},[f,F,i,l,d,y,O]),e.jsx(xe,{title:"Documents",description:"All documents",headerActions:e.jsxs("div",{className:"flex items-center py-4 gap-4",children:[e.jsxs(ne,{children:[e.jsx(re,{asChild:!0,children:e.jsx(c,{className:"ml-auto",children:"Columns"})}),e.jsx(ie,{align:"end",children:f.getAllColumns().filter(n=>n.getCanHide()).map(n=>e.jsx(le,{className:"capitalize",checked:n.getIsVisible(),onCheckedChange:u=>n.toggleVisibility(!!u),children:n.id},n.id))})]}),e.jsx(c,{onClick:()=>p(!0),children:"Upload Documents"})]}),children:F?e.jsx(Y,{className:"h-10 w-10 animate-spin mr-2 self-center"}):e.jsxs(e.Fragment,{children:[e.jsx(Z,{open:h,onOpenChange:p,onChange:N}),t&&e.jsx(V,{modalSize:"45%",content:e.jsx($,{src:t}),opened:!!t,onClose:()=>s(null)}),e.jsxs(ee,{children:[e.jsx(te,{children:f.getHeaderGroups().map(n=>e.jsx(w,{children:n.headers.map(u=>e.jsx(se,{children:u.isPlaceholder?null:T(u.column.columnDef.header,u.getContext())},u.id))},n.id))}),e.jsx(ae,{children:f.getRowModel().rows?.length?f.getRowModel().rows.map(n=>e.jsx(w,{"data-state":n.getIsSelected()&&"selected",children:n.getVisibleCells().map(u=>e.jsx(k,{children:T(u.column.columnDef.cell,u.getContext())},u.id))},n.id)):e.jsx(w,{children:e.jsx(k,{colSpan:E.length,className:"h-24 text-center",children:"No results."})})})]})]})})};export{Oe as DocumentsReport,E as columns};
@@ -0,0 +1,6 @@
1
+ import{v as G,r as d,j as e,J as p,B as g,dO as q,dP as H,dQ as _,cr as F,dR as M,dS as Q,dT as J,dU as $,dV as Y,dW as W,dX as X,u as T,t as Z,dY as K,T as ee,dZ as te,a6 as E,bj as se,G as ae,cL as ne,bm as S,bp as A,d_ as N,cF as re,x as D,bq as oe,F as ie,L as ce,d$ as le}from"./index-wyU9I4Kz.js";import{d as R}from"./graphql-document-dedupe-fragments-ByT8-wlV.js";import{u as V}from"./use-url-query-CUVSXgm0.js";import{M as de}from"./index-UMFH47hN.js";import{E as he,I as me,M as xe}from"./match-document-modal-BPG_hljb.js";import{P as ue}from"./page-layout-BG0XvWfD.js";import{C as I,u as pe,a as z,b as O}from"./charges-table-Cncs1HLi.js";import{P as w,a as y}from"./panel-top-open-B1rhJYjQ.js";import{T as k}from"./toggle-expansion-button-lwJYTklN.js";import{T as P}from"./Table-C5zxD95i.js";import{c as ge}from"./charges-filters-Dq-8QHH-.js";import{P as je}from"./modal-D47umnak.js";import{F as fe}from"./funnel-BJ71hzoq.js";import"./Checkbox-BR6kGuhg.js";import"./switch-GSloW_Ey.js";import"./YearPickerInput-CllwSjcn.js";import"./list-plus-Dy3vzJVy.js";import"./insert-business-trip-modal-vS1QrUJz.js";import"./accounter-table-CpeQD4PG.js";import"./Pagination-6Sv5LXxl.js";import"./create-event-handler-BiA-1lGu.js";import"./index-DR_5jpS4.js";import"./similar-transactions-modal-MQeC2gtu.js";import"./addDays-DvwuJbUs.js";import"./tooltip-BbKSwLCX.js";import"./summary-DvHtnArZ.js";import"./sub-B4_VmmF9.js";import"./subMonths-DG7w6bCY.js";import"./MultiSelect-BqcJrWnD.js";/**
2
+ * @license lucide-react v0.546.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const ve=[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["rect",{width:"4",height:"6",x:"2",y:"12",rx:"2",key:"jm304g"}],["path",{d:"M10 12h2v6",key:"12zw74"}],["path",{d:"M10 18h4",key:"1ulq68"}]],we=G("file-digit",ve),ye=({data:a,setEditCharge:c,setInsertDocument:l,setMatchDocuments:r,toggleMergeCharge:o,mergeSelectedCharges:n})=>{const s=p(q,a),[t,i]=d.useState(!0);return e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-lg font-semibold whitespace-nowrap flex flex-row gap-4",children:[e.jsx(g,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>i(h=>!h),children:t?e.jsx(w,{className:"size-5"}):e.jsx(y,{className:"size-5"})}),"Business Trips"]}),t&&s&&e.jsx(I,{setEditChargeId:c,setInsertDocument:l,setMatchDocuments:r,data:s.businessTrips,isAllOpened:!1,toggleMergeCharge:o,mergeSelectedCharges:n})]})};function B({data:a}){const{chargeId:c,chargeAccountantStatus:l}=p(H,a),{updateChargeAccountantApproval:r}=pe();return e.jsx("td",{children:e.jsx(_,{value:l??void 0,onChange:o=>r({chargeId:c,status:o})})})}const be=({data:a,toggleMergeCharge:c,mergeSelectedCharges:l,cumulativeVat:r,cumulativeAmount:o})=>{const[n,s]=d.useState(!1),t=p(Q,a);return e.jsxs(e.Fragment,{children:[e.jsxs("tr",{className:"bg-gray-100",children:[e.jsxs("td",{className:"flex flex-col gap-1",children:[t.business?.name,t.vatNumber&&e.jsx("span",{style:{fontSize:"10px",color:"darkGray"},children:t.vatNumber})]}),e.jsx("td",{children:t.image&&e.jsx("a",{href:t.image,target:"_blank",rel:"noreferrer",children:e.jsx("img",{alt:"missing img",src:t.image,height:80,width:80})})}),e.jsx("td",{children:t.documentSerial}),e.jsx("td",{children:t.documentDate}),e.jsx("td",{children:t.chargeDate}),e.jsx("td",{className:"whitespace-nowrap",children:t.amount.formatted}),e.jsx("td",{className:"whitespace-nowrap",children:t.localAmount?.formatted}),e.jsx("td",{className:"whitespace-nowrap",children:t.localVat?.formatted}),e.jsx("td",{className:"whitespace-nowrap",children:t.localVatAfterDeduction?.formatted}),e.jsx("td",{className:"whitespace-nowrap",children:t.foreignVatAfterDeduction?.formatted}),e.jsx("td",{className:"whitespace-nowrap",children:t.roundedLocalVatAfterDeduction?.formatted}),e.jsxs("td",{className:"whitespace-nowrap",children:["₪ ",F(r,0)]}),e.jsxs("td",{className:"whitespace-nowrap",children:["₪ ",F(o,0)]}),e.jsx(B,{data:t}),e.jsx("td",{children:e.jsx("div",{className:"flex flex-col gap-2",children:e.jsx(k,{toggleExpansion:s,isExpanded:n})})}),e.jsx("td",{children:e.jsx(z,{toggleMergeSelected:()=>c(t.chargeId),mergeSelected:l.includes(t.chargeId)})})]}),n&&e.jsx("tr",{children:e.jsx("td",{colSpan:17,children:e.jsx(M,{style:{width:"100%"},withBorder:!0,shadow:"lg",children:e.jsx(O,{chargeID:t.chargeId,fetching:!!t})})})})]})},Ce=({data:a,toggleMergeCharge:c,mergeSelectedCharges:l})=>{const{expenses:r}=p(J,a)??{expenses:[]},[o,n]=d.useState(!0);let s=0,t=0;return e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-lg font-semibold whitespace-nowrap flex flex-row gap-4",children:[e.jsx(g,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>n(i=>!i),children:o?e.jsx(w,{className:"size-5"}):e.jsx(y,{className:"size-5"})}),"Expenses"]}),o&&e.jsxs(P,{highlightOnHover:!0,children:[e.jsx("thead",{style:{position:"sticky",top:0,zIndex:20},children:e.jsxs("tr",{className:"bg-gray-300",children:[e.jsx("th",{children:"Business"}),e.jsx("th",{children:"Invoice"}),e.jsx("th",{children:"Invoice Serial#"}),e.jsx("th",{children:"Invoice Date"}),e.jsx("th",{children:"Transaction Date"}),e.jsx("th",{children:"Amount"}),e.jsx("th",{children:"Amount ₪"}),e.jsx("th",{children:"VAT"}),e.jsx("th",{children:"VAT ₪"}),e.jsx("th",{children:"Actual VAT"}),e.jsx("th",{children:"Rounded VAT"}),e.jsx("th",{children:"Cumulative VAT"}),e.jsx("th",{children:"Amount without VAT ₪"}),e.jsx("th",{children:"Cumulative Amount without VAT ₪"}),e.jsx("th",{children:"Accountant Approval"}),e.jsx("th",{colSpan:2,children:"Edit"})]})}),e.jsx("tbody",{children:r.map((i,h)=>{s+=i.taxReducedLocalAmount?.raw??0;const u=s;t+=i.roundedLocalVatAfterDeduction?.raw??0;const m=t;return e.jsx(be,{data:i,toggleMergeCharge:c,mergeSelectedCharges:l,cumulativeVat:m,cumulativeAmount:u},h)})})]})]})},Fe=({data:a,toggleMergeCharge:c,mergeSelectedCharges:l,cumulativeAmount:r})=>{const[o,n]=d.useState(!1),s=p($,a);return e.jsxs(e.Fragment,{children:[e.jsxs("tr",{className:"bg-gray-100",children:[e.jsxs("td",{className:"flex flex-col gap-1",children:[s.business?.name,s.vatNumber&&e.jsx("span",{style:{fontSize:"10px",color:"darkGray"},children:s.vatNumber})]}),e.jsx("td",{children:s.image&&e.jsx("a",{href:s.image,target:"_blank",rel:"noreferrer",children:e.jsx("img",{alt:"missing img",src:s.image,height:80,width:80})})}),e.jsx("td",{children:s.documentSerial}),e.jsx("td",{children:s.documentDate}),e.jsx("td",{children:s.chargeDate}),e.jsx("td",{children:s.taxReducedForeignAmount?.formatted}),e.jsx("td",{children:s.taxReducedLocalAmount?.formatted}),e.jsx("td",{children:"₪ "+F(r,0)}),e.jsx(B,{data:s}),e.jsx("td",{children:e.jsx("div",{className:"flex flex-col gap-2",children:e.jsx(k,{toggleExpansion:n,isExpanded:o})})}),e.jsx("td",{children:e.jsx(z,{toggleMergeSelected:()=>c(s.chargeId),mergeSelected:l.includes(s.chargeId)})})]}),o&&e.jsx("tr",{children:e.jsx("td",{colSpan:11,children:e.jsx(M,{style:{width:"100%"},withBorder:!0,shadow:"lg",children:e.jsx(O,{chargeID:s.chargeId,fetching:!!s})})})})]})},Ne=({data:a,toggleMergeCharge:c,mergeSelectedCharges:l})=>{const{income:r}=p(Y,a)??{income:[]},[o,n]=d.useState(!0);let s=0;return e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-lg font-semibold whitespace-nowrap flex flex-row gap-4",children:[e.jsx(g,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>n(t=>!t),children:o?e.jsx(w,{className:"size-5"}):e.jsx(y,{className:"size-5"})}),"Income"]}),o&&e.jsxs(P,{highlightOnHover:!0,children:[e.jsx("thead",{style:{position:"sticky",top:0,zIndex:20},children:e.jsxs("tr",{className:"bg-gray-300",children:[e.jsx("th",{children:"Business"}),e.jsx("th",{children:"Invoice"}),e.jsx("th",{children:"Invoice Serial#"}),e.jsx("th",{children:"Invoice Date"}),e.jsx("th",{children:"Transaction Date"}),e.jsx("th",{children:"Amount"}),e.jsx("th",{children:"Amount ₪"}),e.jsx("th",{children:"Cumulative Amount ₪"}),e.jsx("th",{children:"Accountant Approval"}),e.jsx("th",{colSpan:2,children:"Edit"})]})}),e.jsx("tbody",{children:r.map((t,i)=>{s+=t.taxReducedLocalAmount?.raw??0;const h=s;return e.jsx(Fe,{data:t,toggleMergeCharge:c,mergeSelectedCharges:l,cumulativeAmount:h},i)})})]})]})},De=({data:a,setEditCharge:c,setInsertDocument:l,setMatchDocuments:r,toggleMergeCharge:o,mergeSelectedCharges:n})=>{const s=p(W,a),[t,i]=d.useState(!0);return e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-lg font-semibold whitespace-nowrap flex flex-row gap-4",children:[e.jsx(g,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>i(h=>!h),children:t?e.jsx(w,{className:"size-5"}):e.jsx(y,{className:"size-5"})}),"Misc Charges (which are not on the above tables)"]}),t&&s&&e.jsx(I,{setEditChargeId:c,setInsertDocument:l,setMatchDocuments:r,data:s.differentMonthDoc,isAllOpened:!1,toggleMergeCharge:o,mergeSelectedCharges:n})]})},Ie=({data:a,setEditCharge:c,setInsertDocument:l,setMatchDocuments:r,toggleMergeCharge:o,mergeSelectedCharges:n})=>{const s=p(X,a),[t,i]=d.useState(!0);return e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-lg font-semibold whitespace-nowrap flex flex-row gap-4",children:[e.jsx(g,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>i(h=>!h),children:t?e.jsx(w,{className:"size-5"}):e.jsx(y,{className:"size-5"})}),"Missing Info"]}),t&&s&&e.jsx(I,{setEditChargeId:c,setInsertDocument:l,setMatchDocuments:r,data:s.missingInfo,isAllOpened:!1,toggleMergeCharge:o,mergeSelectedCharges:n})]})},Se=({filter:{monthDate:a,financialEntityId:c},isLoading:l})=>{const[{data:r,fetching:o,error:n},s]=T({query:R(te),pause:!0,variables:{monthDate:a,financialEntityId:c}});return d.useEffect(()=>{if(n){const t="Error generating PCN874 file";console.error(`${t}: ${n}`),Z.error("Error",{description:t,duration:5e3,closeButton:!0})}},[n]),d.useEffect(()=>{if(r){const t=new File([r.pcnFile.reportContent],"pcn874.txt",{type:"text/plain"});K(t)}},[r]),e.jsx(ee,{label:"Generate and Download PCN874 File",children:e.jsx(g,{disabled:o||l,variant:"outline",size:"icon",className:"size-7.5",onClick:s,children:e.jsx(we,{className:"size-5"})})})};function Ae({filter:a,setFilter:c,closeModal:l}){const{control:r,handleSubmit:o,setValue:n}=ae({defaultValues:{...a}}),{selectableFinancialEntities:s,fetching:t}=ne(),i=m=>{c(m),l()};function h(){c(),l()}function u(m){const x=new Date(m.getFullYear(),m.getMonth(),15);n("monthDate",D(x,"yyyy-MM-dd"))}return e.jsxs(e.Fragment,{children:[t?e.jsx("div",{children:"Loading..."}):e.jsx("div",{}),e.jsxs("form",{onSubmit:o(i),children:[e.jsx(S,{name:"financialEntityId",control:r,defaultValue:void 0,render:({field:m,fieldState:x})=>e.jsx(A,{...m,data:s,value:m.value,disabled:t,label:"Financial Entities",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:x.error?.message})}),e.jsx(S,{name:"chargesType",control:r,defaultValue:a.chargesType,render:({field:m,fieldState:x})=>e.jsx(A,{...m,data:ge,value:m.value??N.All,label:"Charge Type",placeholder:"Filter income/expense",maxDropdownHeight:160,error:x.error?.message})}),e.jsx(re,{defaultValue:a?.monthDate?new Date(a.monthDate):new Date,defaultDate:a?.monthDate?new Date(a.monthDate):new Date,onChange:u,popoverProps:{withinPortal:!0}}),e.jsxs("div",{className:"flex justify-center mt-5 gap-3",children:[e.jsx("button",{type:"submit",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"}),e.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:h,children:"Clear"}),e.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:l,children:"Cancel"})]})]})]})}function Me({filter:a,setFilter:c}){const[l,r]=d.useState(!1),{get:o,set:n}=V(),{userContext:s}=d.useContext(E);function t(i){i||={financialEntityId:s?.context.adminBusinessId??a.financialEntityId,monthDate:D(new Date,"yyyy-MM-15")},oe(i,a)||c(i)}return d.useEffect(()=>{const i=se(a??{})?null:encodeURIComponent(JSON.stringify(a)),h=o("vatMonthlyReportFilters");i!==h&&n("vatMonthlyReportFilters",i)},[a,o,n]),e.jsxs(e.Fragment,{children:[e.jsx(je,{opened:l,onClose:()=>r(!1),content:e.jsx(Ae,{filter:a,setFilter:t,closeModal:()=>r(!1)})}),e.jsx(g,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>r(!0),children:e.jsx(fe,{className:"size-5"})})]})}const ot=()=>{const{get:a}=V(),{setFiltersContext:c}=d.useContext(ie),{userContext:l}=d.useContext(E),[r,o]=d.useState(a("vatMonthlyReportFilters")?JSON.parse(decodeURIComponent(a("vatMonthlyReportFilters"))):{financialEntityId:l?.context.adminBusinessId??"",monthDate:D(new Date,"yyyy-MM-15")}),[n,s]=d.useState([]),[t,i]=d.useState(void 0),[h,u]=d.useState(void 0),[m,x]=d.useState(void 0),[{data:j,fetching:b}]=T({query:R(le),variables:{filters:r}}),f=d.useCallback(v=>{n.includes(v)?s(n.filter(U=>U!==v)):s([...n,v])},[n]);function L(){s([])}d.useEffect(()=>{c(e.jsxs("div",{className:"flex flex-row gap-2",children:[e.jsx(Se,{filter:r,isLoading:b}),e.jsx(Me,{filter:{...r},setFilter:o}),e.jsx(de,{selected:n.map(v=>({id:v,onChange:()=>{}})),resetMerge:L})]}))},[j,r,b,c,n]);const C=d.useMemo(()=>new Set(n),[n]);return e.jsx(ue,{title:"VAT Monthly Report",children:b?e.jsx(ce,{className:"h-10 w-10 animate-spin mr-2 self-center"}):e.jsxs("div",{className:"flex flex-col gap-4",children:[r.chargesType!==N.Expense&&e.jsx(Ne,{data:j?.vatReport,toggleMergeCharge:f,mergeSelectedCharges:n}),r.chargesType!==N.Income&&e.jsx(Ce,{data:j?.vatReport,toggleMergeCharge:f,mergeSelectedCharges:n}),e.jsx(Ie,{data:j?.vatReport,setEditCharge:x,setInsertDocument:i,setMatchDocuments:u,toggleMergeCharge:f,mergeSelectedCharges:C}),e.jsx(ye,{data:j?.vatReport,setEditCharge:x,setInsertDocument:i,setMatchDocuments:u,toggleMergeCharge:f,mergeSelectedCharges:C}),e.jsx(De,{data:j?.vatReport,setEditCharge:x,setInsertDocument:i,setMatchDocuments:u,toggleMergeCharge:f,mergeSelectedCharges:C}),m&&e.jsx(he,{chargeId:m.id,close:()=>x(void 0)}),t&&e.jsx(me,{chargeId:t.id,close:()=>i(void 0)}),h&&e.jsx(xe,{chargeId:h.id,ownerId:h.ownerId,setMatchDocuments:()=>u(void 0)})]})})};export{ot as VatMonthlyReport};
@@ -0,0 +1 @@
1
+ import{j as e,cS as D,cW as a,x as f,cr as n,J as N,fU as v,r as d,bq as E,D as T,af as A,B as S,z as I,bj as O,G as V,cL as L,Q as M,W as y,X as F,Y as C,Z as P,aF as B,$ as R,aD as U,as as q,F as Q,a6 as k,u as _,c as $,cQ as z,cR as G,cT as o,cV as J,fV as H}from"./index-wyU9I4Kz.js";import{u as w}from"./use-url-query-CUVSXgm0.js";import{P as W}from"./page-layout-BG0XvWfD.js";import{F as X}from"./funnel-BJ71hzoq.js";const Z=({record:s})=>{const t=N(v,s);return e.jsxs(D,{children:[e.jsx(a,{children:s.description}),e.jsx(a,{children:f(new Date(s.purchaseDate),"dd/MM/yyyy")}),e.jsx(a,{children:s.activationDate?f(new Date(s.activationDate),"dd/MM/yyyy"):void 0}),e.jsx(a,{children:t.originalCost?n(t.originalCost,0):void 0}),e.jsx(a,{children:t.reportYearDelta?n(t.reportYearDelta,0):void 0}),e.jsx(a,{children:n(t.totalDepreciableCosts,0)}),e.jsxs(a,{children:[n(s.statutoryDepreciationRate,0),"%"]}),e.jsx(a,{children:s.claimedDepreciationRate?`${n(s.claimedDepreciationRate,1)}%`:"-"}),e.jsx(a,{children:t.reportYearClaimedDepreciation?n(t.reportYearClaimedDepreciation,0):"-"}),e.jsx(a,{children:t.pastYearsAccumulatedDepreciation?n(t.pastYearsAccumulatedDepreciation,0):"-"}),e.jsx(a,{children:t.totalDepreciation?n(t.totalDepreciation,0):"-"}),e.jsx(a,{children:t.netValue?n(t.netValue,0):"-"})]})};function K(s){return!s||O(s)?null:encodeURIComponent(JSON.stringify(s))}const b="depreciationReportFilters";function ee({filter:s,setFilter:t,close:r}){const m=V({defaultValues:{...s}}),{control:c,handleSubmit:x}=m,{selectableFinancialEntities:u,fetching:l}=L(),j=i=>{t({...i,year:Number(i.year)}),r()};return e.jsx(M,{...m,children:e.jsxs("form",{onSubmit:x(j),className:"space-y-4",children:[e.jsx(y,{name:"year",control:c,rules:{required:"Year is required",validate:i=>{const p=Number(i);return Number.isNaN(p)||p<2e3||p>2100?"Invalid year":!0}},render:({field:i})=>e.jsxs(F,{children:[e.jsx(C,{children:"Year"}),e.jsx(P,{children:e.jsx(B,{...i,hideControls:!0,decimalScale:0})}),e.jsx(R,{})]})}),e.jsx(y,{name:"financialEntityId",defaultValue:s?.financialEntityId,control:c,render:({field:i})=>e.jsxs(F,{children:[e.jsx(C,{children:"Owner"}),e.jsx(U,{...i,data:u,value:i.value??void 0,disabled:l,placeholder:"Select a financial entity",formPart:!0}),e.jsx(R,{})]})}),e.jsx(q,{children:e.jsx(S,{type:"submit",disabled:l,children:"Filter"})})]})})}function ae({filter:s,setFilter:t}){const[r,m]=d.useState(!1),{get:c,set:x}=w();d.useEffect(()=>{const l=K(s),j=c(b);l!==j&&x(b,l)},[s,c,x]);const u=d.useCallback(l=>{E(l,s)||t(l)},[s,t]);return e.jsxs(T,{open:r,onOpenChange:m,children:[e.jsx(A,{asChild:!0,children:e.jsx(S,{variant:"outline",size:"icon",children:e.jsx(X,{size:20})})}),e.jsx(I,{className:"sm:max-w-[425px]",children:e.jsx(ee,{filter:s,setFilter:u,close:()=>m(!1)})})]})}const g=({data:s,groupName:t})=>{const r=N(v,s);return e.jsxs(D,{className:"font-bold border-b border-black",children:[e.jsx(a,{children:t?"Group Total":"Overall Total"}),e.jsx(a,{colSpan:2,children:t}),e.jsx(a,{children:r.originalCost?n(r.originalCost,0):void 0}),e.jsx(a,{children:r.reportYearDelta?n(r.reportYearDelta,0):void 0}),e.jsx(a,{children:r.totalDepreciableCosts?n(r.totalDepreciableCosts,0):void 0}),e.jsx(a,{}),e.jsx(a,{}),e.jsx(a,{children:r.reportYearClaimedDepreciation?n(r.reportYearClaimedDepreciation,0):void 0}),e.jsx(a,{children:r.pastYearsAccumulatedDepreciation?n(r.pastYearsAccumulatedDepreciation,0):void 0}),e.jsx(a,{children:r.totalDepreciation?n(r.totalDepreciation,0):void 0}),e.jsx(a,{children:r.netValue?n(r.netValue,0):void 0})]})},ne=()=>{const{setFiltersContext:s}=d.useContext(Q),{userContext:t}=d.useContext(k),{get:r}=w(),m=d.useMemo(()=>{const i={financialEntityId:t?.context.adminBusinessId,year:new Date().getFullYear()},p=r(b);if(p)try{return JSON.parse(decodeURIComponent(p))}catch(h){console.error("Failed to parse depreciation report filters from URL",h)}return i},[t?.context.adminBusinessId]),[c,x]=d.useState(m),[{data:u,fetching:l}]=_({query:H,variables:{filters:c}});d.useEffect(()=>{s(e.jsx("div",{className:"flex flex-row gap-x-5",children:e.jsx(ae,{filter:c,setFilter:x})}))},[c,s,x]);const j=d.useMemo(()=>`Depreciation Report for ${c.year}`,[c.year]);return e.jsx(W,{title:"Depreciation Report",description:j,children:l?e.jsx($,{}):e.jsxs(z,{children:[e.jsxs(G,{children:[e.jsxs(D,{className:"font-bold text-xl",children:[e.jsx(o,{colSpan:6,className:"text-center border-x",children:"List of Assets and Costs"}),e.jsx(o,{colSpan:5,className:"text-center border-x",children:"Depreciation"}),e.jsx(o,{className:"text-center border-x",children:"Remaining"})]}),e.jsxs(D,{className:"border-b border-black",children:[e.jsx(o,{className:"whitespace-normal",children:"Assets List and Descriptions"}),e.jsx(o,{className:"whitespace-normal",children:"Date of Purchase"}),e.jsx(o,{className:"whitespace-normal",children:"Activation Date"}),e.jsx(o,{className:"whitespace-normal",children:"Original Cost"}),e.jsx(o,{className:"whitespace-normal",children:"Changes During the Year"}),e.jsx(o,{className:"whitespace-normal",children:"Total Depreciable Assets"}),e.jsx(o,{className:"whitespace-normal",children:"Statutory Depreciation Rate"}),e.jsx(o,{className:"whitespace-normal",children:"Claimed Depreciation Rate"}),e.jsx(o,{className:"whitespace-normal",children:"Depreciation Claimed This Year"}),e.jsx(o,{className:"whitespace-normal",children:"Previous Tax Years Accumulated Depreciation"}),e.jsx(o,{className:"whitespace-normal",children:"Total Depreciation"}),e.jsx(o,{className:"whitespace-normal",children:"Net Book Value"})]})]}),e.jsx(J,{children:u?.depreciationReport&&e.jsxs(e.Fragment,{children:[u.depreciationReport.categories.map((i,p)=>e.jsxs(d.Fragment,{children:[e.jsxs(D,{className:"font-bold",children:[e.jsx(a,{children:`Category ${p+1}`}),e.jsx(a,{colSpan:2,children:i.category.name}),e.jsx(a,{colSpan:3}),e.jsxs(a,{children:[n(i.category.percentage,0),"%"]}),e.jsx(a,{colSpan:5})]}),i.records.sort((h,Y)=>h.purchaseDate.localeCompare(Y.purchaseDate)).map(h=>e.jsx(Z,{record:h},h.id)),e.jsx(g,{data:i.summary,groupName:i.category.name})]},i.id)),e.jsx(g,{data:u.depreciationReport.summary})]})})]})})};export{ne as DepreciationReport};
@@ -0,0 +1 @@
1
+ import{r as m,bq as k,j as e,bk as _,B as I,bj as V,G,bl as Q,cL as q,aC as K,cM as z,bm as y,bp as A,bn as F,bo as B,x as S,u as R,gj as X,K as P,c as U,N as $,O as J,al as W,V as Y,F as Z,a6 as ee,aG as ae,P as se,dB as te,gk as re,aU as ne}from"./index-wyU9I4Kz.js";import{u as O}from"./use-url-query-CUVSXgm0.js";import{P as oe}from"./page-layout-BG0XvWfD.js";import{k as ie,B as w,X as H,Y as le,l as ce,m as de,n as ue,o as me,p as pe,q as xe,r as ge}from"./chart-ByngRufj.js";import{P as he}from"./modal-D47umnak.js";import{F as fe}from"./funnel-BJ71hzoq.js";import{M as L}from"./MultiSelect-BqcJrWnD.js";import{T as be}from"./index-DR_5jpS4.js";import{s as je}from"./sub-B4_VmmF9.js";import"./sequential-CAnleQny.js";import"./similar-transactions-modal-MQeC2gtu.js";import"./switch-GSloW_Ey.js";import"./addDays-DvwuJbUs.js";import"./list-plus-Dy3vzJVy.js";import"./tooltip-BbKSwLCX.js";import"./subMonths-DG7w6bCY.js";var ye=ie({chartName:"BarChart",GraphicalChild:w,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:H},{axisType:"yAxis",AxisComp:le}],formatAxisMap:ce});function ve(s){return!s||V(s)?null:encodeURIComponent(JSON.stringify(s))}const E="balanceReportFilters",x={MONTHLY:"Monthly",BI_MONTHLY:"Bi-monthly",QUARTERLY:"Quarterly",SEMI_ANNUALLY:"Semi-Annually",ANNUALLY:"Annually"};function Ce({filter:s,setFilter:i,closeModal:c}){const{control:t,handleSubmit:r,watch:g}=G({defaultValues:{...s}}),{selectableBusinesses:b,fetching:h}=Q(),{selectableFinancialEntities:f,fetching:v}=q(),{selectableTags:p,fetching:j}=K(),M=a=>{i(a),c()},C=g("excludedTags"),o=m.useMemo(()=>p.filter(a=>!C.includes(a.value)),[C,p]),d=g("includedTags"),n=m.useMemo(()=>p.filter(a=>!d.includes(a.value)),[d,p]);return e.jsxs("form",{onSubmit:r(M),children:[e.jsxs(z,{cols:2,children:[e.jsx(y,{name:"ownerId",control:t,defaultValue:s?.ownerId,render:({field:a,fieldState:l})=>e.jsx(A,{...a,data:b,value:a.value,disabled:h,label:"Owners",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:l.error?.message,withinPortal:!0})}),e.jsx(y,{name:"fromDate",control:t,defaultValue:s?.fromDate,rules:{pattern:{value:F,message:"Date must be im format yyyy-mm-dd"}},render:({field:a,fieldState:l})=>e.jsx(B,{...a,onChange:u=>{const T=u?typeof u=="string"?u:S(u,"yyyy-MM-dd"):void 0;T!==a.value&&a.onChange(T)},value:a.value?new Date(a.value):void 0,error:l.error?.message,label:"From Date",popoverProps:{withinPortal:!0}})}),e.jsx(y,{name:"toDate",control:t,defaultValue:s?.toDate,rules:{pattern:{value:F,message:"Date must be im format yyyy-mm-dd"}},render:({field:a,fieldState:l})=>e.jsx(B,{...a,onChange:u=>{const T=u?typeof u=="string"?u:S(u,"yyyy-MM-dd"):void 0;T!==a.value&&a.onChange(T)},value:a.value?new Date(a.value):void 0,error:l.error?.message,label:"To Date",popoverProps:{withinPortal:!0}})}),e.jsx(y,{name:"period",control:t,defaultValue:x.MONTHLY,render:({field:a,fieldState:l})=>e.jsx(A,{...a,data:Object.values(x).map(u=>({value:u,label:u})),value:a.value,label:"Period",maxDropdownHeight:160,error:l.error?.message,withinPortal:!0})}),e.jsx(y,{name:"excludedCounterparties",control:t,defaultValue:s.excludedCounterparties,render:({field:a,fieldState:l})=>e.jsx(L,{...a,data:f,value:a.value??[],disabled:v,label:"Excluded Counterparties",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:l.error?.message,withinPortal:!0})}),e.jsx(y,{name:"includedTags",control:t,defaultValue:s.includedTags,render:({field:a,fieldState:l})=>e.jsx(L,{...a,data:o,value:a.value??[],disabled:j,label:"Included Tags",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:l.error?.message,withinPortal:!0})}),e.jsx(y,{name:"excludedTags",control:t,defaultValue:s.excludedTags,render:({field:a,fieldState:l})=>e.jsx(L,{...a,data:n,value:a.value??[],disabled:j,label:"Excluded Tags",placeholder:"Scroll to see all options",maxDropdownHeight:160,searchable:!0,error:l.error?.message,withinPortal:!0})})]}),e.jsxs("div",{className:"flex justify-center mt-5 gap-3",children:[e.jsx("button",{type:"submit",disabled:h,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"}),e.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:c,children:"Cancel"})]})]})}function Te({filter:s,setFilter:i,initiallyOpened:c=!1}){const[t,r]=m.useState(c),[g,b]=m.useState(!!s),{get:h,set:f}=O();m.useEffect(()=>{const p=ve(s),j=h(E);p!==j&&f(E,p)},[s,h,f]);const v=m.useCallback(p=>{k(p,s)||(i(p),b(!!p))},[s,i]);return e.jsxs("div",{className:"flex flex-row gap-5 items-center",children:[e.jsx(he,{opened:t,onClose:()=>r(!1),content:e.jsx(Ce,{filter:s,setFilter:v,closeModal:()=>r(!1)}),modalSize:"xl"}),e.jsx(_,{inline:!0,size:16,disabled:!g,children:e.jsx(I,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>r(!0),children:e.jsx(fe,{className:"size-5"})})})]})}const Ne=({period:s,transactionIDs:i,onCloseExtendedTransactions:c})=>{const[{data:t,fetching:r}]=R({query:X,variables:{transactionIDs:i}}),g=m.useMemo(()=>t?.transactionsByIDs?i.map(b=>t?.transactionsByIDs.find(h=>h.id===b)).filter(Boolean):[],[t,i]);return e.jsx(P,{className:"mt-5 w-full",children:r?e.jsx(U,{}):e.jsxs(e.Fragment,{children:[e.jsx($,{children:e.jsxs(J,{className:"flex justify-between",children:[e.jsxs("span",{children:[s," Transactions"]}),e.jsx(I,{variant:"link",onClick:c,children:e.jsx(W,{className:"h-4 w-4"})})]})}),e.jsx(Y,{children:e.jsx(be,{transactionsProps:g})})]})})},N={income:{label:"Income",color:"rgba(0, 255, 50, 0.5)"},expense:{label:"Expense",color:"rgba(255, 0, 0, 0.5)"},delta:{label:"Delta",color:"rgba(0, 30, 255, 0.5)"},cumulative:{label:"Cumulative Balance",color:"rgba(100, 0, 255, 0.5)"}};function we(s,i,c){switch(c){case x.MONTHLY:{const t=String(i).padStart(2,"0");return`${s}-${t}`}case x.BI_MONTHLY:{const t=i%2===0?i-1:i,r=String(t).padStart(2,"0");return`${s}-${r}`}case x.QUARTERLY:{const t=Math.ceil(i/3);return`${s}-Q${t}`}case x.SEMI_ANNUALLY:{const t=i>6?2:1;return`${s}-H${t}`}case x.ANNUALLY:return String(s)}}function Me(s,i){switch(i){case x.MONTHLY:{const[c,t]=s.split("-");return`${t}/${c}`}case x.BI_MONTHLY:{const[c,t]=s.split("-"),r=Number(t)+1,g=String(r).padStart(2,"0");return`${t}-${g}/${c}`}case x.QUARTERLY:{const[c,t]=s.split("-");return`${t}, ${c}`}case x.SEMI_ANNUALLY:{const[c,t]=s.split("-");return`${t}, ${c}`}case x.ANNUALLY:return s}}const D=te(ne.Usd),_e=()=>{const{setFiltersContext:s}=m.useContext(Z),{userContext:i}=m.useContext(ee),{get:c}=O(),t=m.useMemo(()=>{const o={ownerId:i?.context.adminBusinessId,toDate:S(new Date,"yyyy-MM-dd"),period:x.MONTHLY,fromDate:S(je(new Date,{years:1}),"yyyy-MM-dd"),excludedCounterparties:[],includedTags:[],excludedTags:[]},d=c(E);if(d)try{return JSON.parse(decodeURIComponent(d))}catch(n){console.log("Error parsing balance report filters from URL:",n)}return o},[i?.context.adminBusinessId,c]),[r,g]=m.useState(t),[b,h]=m.useState(void 0),[f,v]=m.useState(Object.keys(N)),p=m.useMemo(()=>{const{ownerId:o,fromDate:d,toDate:n}=r;return{ownerId:o,fromDate:d,toDate:n}},[r]),[{data:j,fetching:M}]=R({query:re,variables:p,pause:!r});m.useEffect(()=>{s(e.jsxs("div",{className:"flex flex-row gap-x-5",children:[e.jsx(Te,{filter:r,setFilter:g,initiallyOpened:!r}),e.jsx(ae,{options:Object.entries(N).map(([o,d])=>({label:d.label,value:o})),onValueChange:v,defaultValue:f,placeholder:"Select Data Sets",variant:"default",maxCount:1})]})),h(void 0)},[j,M,r,s,g,f]),m.useEffect(()=>{g(o=>({...o,ownerId:i?.context.adminBusinessId}))},[i]);const C=m.useMemo(()=>{if(!j?.transactionsForBalanceReport)return[];const o=new Map;j.transactionsForBalanceReport.map(n=>{if(n.counterparty?.id&&(!n.isFee&&i?.context.financialAccountsBusinessesIds?.includes(n.counterparty.id)||r.excludedCounterparties?.includes(n.counterparty.id))||r.includedTags.length>0&&(!n.charge?.tags||n.charge.tags.length===0||!n.charge.tags.some(u=>r.includedTags.includes(u.id)))||r.excludedTags.length>0&&n.charge?.tags.length&&n.charge.tags.some(u=>r.excludedTags.includes(u.id)))return;const a=we(n.year,n.month,r.period);o.has(a)||o.set(a,{income:0,expense:0,delta:0,transactions:[]});const l=o.get(a);n.amountUsd.raw>0?l.income+=n.amountUsd.raw:l.expense+=n.amountUsd.raw,l.delta+=n.amountUsd.raw,l.transactions.push(n)});let d=0;return Array.from(o.entries()).sort((n,a)=>n[0].localeCompare(a[0])).map(([n,a])=>(d+=a.delta,{period:n,income:a.income,expense:a.expense,delta:a.delta,cumulative:d,transactions:a.transactions.sort((l,u)=>Math.abs(u.amountUsd.raw)-Math.abs(l.amountUsd.raw))}))},[j,r.period,r.excludedCounterparties,i?.context.financialAccountsBusinessesIds,r.includedTags,r.excludedTags]);return e.jsx(oe,{title:"Balance Report",description:"Accounts periodical balance",children:M?e.jsx(U,{}):e.jsxs(e.Fragment,{children:[e.jsxs(P,{className:"w-full",children:[e.jsx($,{children:e.jsx(se,{children:"Click specific period to expand it's transactions data"})}),e.jsx(Y,{children:e.jsx(de,{config:N,className:"h-150 w-full",children:e.jsxs(ye,{accessibilityLayer:!0,data:C,onClick:o=>h(o.activeLabel),children:[e.jsx(ue,{vertical:!1}),e.jsx(H,{dataKey:"period",tickLine:!1,tickMargin:10,axisLine:!1,tickFormatter:o=>Me(o,r.period)}),e.jsx(me,{content:e.jsx(pe,{formatter:(o,d,n,a)=>{const l=`bg-[var(--color-${d})]`;return a<2?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`${l} h-2.5 w-2.5 shrink-0 rounded-[2px]`}),N[d]?.label||d,e.jsx("div",{className:"ml-auto flex items-baseline gap-0.5 font-mono font-medium tabular-nums text-foreground",children:D.format(Number(o))})]}):e.jsxs("div",{className:"mt-1.5 flex basis-full items-center border-t pt-1.5 text-xs font-medium text-foreground",children:[e.jsx("div",{className:`h-2.5 w-2.5 shrink-0 rounded-[2px] mr-2 ${l}`}),N[d]?.label||d,e.jsx("div",{className:"ml-auto flex items-baseline gap-0.5 font-mono font-medium tabular-nums text-foreground",children:D.format(Number(o))})]})}})}),e.jsx(xe,{content:e.jsx(ge,{})}),f.includes("income")&&e.jsx(w,{dataKey:"income",fill:"var(--color-income)",radius:4}),f.includes("expense")&&e.jsx(w,{dataKey:"expense",fill:"var(--color-expense)",radius:4}),f.includes("delta")&&e.jsx(w,{dataKey:"delta",fill:"var(--color-delta)",radius:4}),f.includes("cumulative")&&e.jsx(w,{dataKey:"cumulative",fill:"var(--color-cumulative)",radius:4})]})})})]}),b&&e.jsx(Ne,{period:b,onCloseExtendedTransactions:()=>h(void 0),transactionIDs:C.find(o=>o.period===b)?.transactions.map(o=>o.id)??[]})]})})};export{_e as BalanceReport};
@@ -0,0 +1 @@
1
+ import{j as n,r as x,B as g,J as h,gb as j,a as v,F as D,u as R,L as E,bk as y,dB as T,T as u,gc as w}from"./index-wyU9I4Kz.js";import{d as C}from"./graphql-document-dedupe-fragments-ByT8-wlV.js";import{P as b}from"./page-layout-BG0XvWfD.js";import{P as A}from"./modal-D47umnak.js";import{Y as F}from"./YearPickerInput-CllwSjcn.js";import{F as I}from"./funnel-BJ71hzoq.js";import{T as N}from"./Table-C5zxD95i.js";const i=({originalAmount:a,diffAmount:t})=>!t||a===t?n.jsx("td",{children:a}):n.jsx("td",{children:n.jsxs("div",{className:"flex flex-col",children:[n.jsx("p",{className:t?"line-through":"",children:a}),t&&n.jsx("div",{className:"border-2 border-yellow-500 rounded-md",children:t})]})});function P({years:a,setYears:t}){const[r,l]=x.useState(!1);return n.jsxs(n.Fragment,{children:[n.jsx(A,{opened:r,onClose:()=>l(!1),withCloseButton:!0,content:n.jsx(F,{type:"multiple",label:"Pick years",value:a?.map(c=>new Date(c,0,1)),onChange:c=>t(c.map(p=>p.getFullYear())),popoverProps:{withinPortal:!0},minDate:new Date(2010,0,1),maxDate:new Date})}),n.jsx(g,{variant:"outline",size:"icon",className:"size-7.5",onClick:()=>l(!0),children:n.jsx(I,{className:"size-5"})})]})}const f=({originalRuleData:a,diffRuleData:t})=>{const r=h(j,a),l=h(j,t),c=l?.isCompliant!==r.isCompliant||l?.percentage.formatted!==r.percentage.formatted;return!l||!c?n.jsx("td",{className:r.isCompliant?"text-green-500":"text-red-500",children:r.percentage.formatted}):n.jsx("td",{className:r.isCompliant?"text-green-500":"text-red-500",children:n.jsxs("div",{className:"flex flex-col",children:[n.jsx("p",{className:"line-through ".concat(r.isCompliant?"text-green-500":"text-red-500"),children:r.percentage.formatted}),l&&n.jsx("div",{className:"border-2 border-yellow-500 rounded-md ".concat(l.isCompliant?"text-green-500":"text-red-500"),children:l.percentage.formatted})]})})},d=(a,t)=>T(t).format(a);function m(a,t){if(a.length!==0)return d(a.reduce((r,l)=>r+l,0),t)}const U=()=>{const{year:a}=v(),{setFiltersContext:t}=x.useContext(D),[r,l]=x.useState(a?[Number(a)]:[new Date().getFullYear()]),[{data:c,fetching:p}]=R({query:C(w),variables:{years:r}});x.useEffect(()=>{t(n.jsx("div",{className:"flex flex-row gap-2",children:n.jsx(P,{years:r,setYears:l})}))},[r,p,t]);const s=c?.corporateTaxRulingComplianceReport??[];return n.jsx(b,{title:"Corporate Tax Ruling Compliance Report",children:p?n.jsx(E,{className:"h-10 w-10 animate-spin mr-2 self-center"}):n.jsx("div",{className:"flex flex-col gap-4",children:s&&n.jsxs(N,{highlightOnHover:!0,fontSize:"md",children:[n.jsx("thead",{children:n.jsxs("tr",{children:[n.jsx("th",{}),r.map(e=>n.jsx("th",{children:n.jsx(y,{inline:!0,size:12,processing:!s.find(o=>o.year===e)?.differences,disabled:!!s.find(o=>o.year===e)?.differences,color:"orange",zIndex:"auto",children:e})},e)),n.jsx("th",{children:"Summary"},"sum")]})}),n.jsxs("tbody",{children:[n.jsxs("tr",{children:[n.jsx("td",{children:"Total Income"}),s.map(e=>n.jsx(i,{originalAmount:e.totalIncome.formatted,diffAmount:e.differences?.totalIncome?.formatted??void 0},e.year)),n.jsx(i,{originalAmount:d(s.map(e=>e.totalIncome.raw).reduce((e,o)=>e+o,0),s[0].totalIncome.currency),diffAmount:m(s.map(e=>e.differences?.totalIncome?.raw??e.totalIncome.raw).filter(e=>!!e),s[0].totalIncome.currency)},"sum")]}),n.jsxs("tr",{children:[n.jsx("td",{children:"Total R&D Expensess"}),s.map(e=>n.jsx(i,{originalAmount:e.researchAndDevelopmentExpenses.formatted,diffAmount:e.differences?.researchAndDevelopmentExpenses?.formatted??void 0},e.year)),n.jsx(i,{originalAmount:d(s.map(e=>e.researchAndDevelopmentExpenses.raw).reduce((e,o)=>e+o,0),s[0].researchAndDevelopmentExpenses.currency),diffAmount:m(s.map(e=>e.differences?.researchAndDevelopmentExpenses?.raw??e.researchAndDevelopmentExpenses.raw).filter(e=>!!e),s[0].researchAndDevelopmentExpenses.currency)},"sum")]}),n.jsxs("tr",{children:[n.jsx("th",{children:n.jsx(u,{multiline:!0,width:220,transitionProps:{duration:200},label:s[0]?.rndRelativeToIncome.rule,children:n.jsx("p",{children:"R&D Expenses out of Income"})})}),s.map(e=>n.jsx(f,{originalRuleData:e.rndRelativeToIncome,diffRuleData:e.differences?.rndRelativeToIncome??void 0},e.year)),n.jsx("td",{})]}),n.jsxs("tr",{children:[n.jsx("td",{children:"Local Development Expenses"}),s.map(e=>n.jsx(i,{originalAmount:e.localDevelopmentExpenses.formatted,diffAmount:e.differences?.localDevelopmentExpenses?.formatted??void 0},e.year)),n.jsx(i,{originalAmount:d(s.map(e=>e.localDevelopmentExpenses.raw).reduce((e,o)=>e+o,0),s[0].localDevelopmentExpenses.currency),diffAmount:m(s.map(e=>e.differences?.localDevelopmentExpenses?.raw??e.localDevelopmentExpenses.raw).filter(e=>!!e),s[0].localDevelopmentExpenses.currency)},"sum")]}),n.jsxs("tr",{children:[n.jsx("th",{children:n.jsx(u,{multiline:!0,width:220,transitionProps:{duration:200},label:s[0]?.localDevelopmentRelativeToRnd.rule,children:n.jsx("p",{children:"Local Development out of R&D"})})}),s.map(e=>n.jsx(f,{originalRuleData:e.localDevelopmentRelativeToRnd,diffRuleData:e.differences?.localDevelopmentRelativeToRnd??void 0},e.year)),n.jsx("td",{})]}),n.jsxs("tr",{children:[n.jsx("td",{children:"Foreign Development Expenses"}),s.map(e=>n.jsx(i,{originalAmount:e.foreignDevelopmentExpenses.formatted,diffAmount:e.differences?.foreignDevelopmentExpenses?.formatted??void 0},e.year)),n.jsx(i,{originalAmount:d(s.map(e=>e.foreignDevelopmentExpenses.raw).reduce((e,o)=>e+o,0),s[0].foreignDevelopmentExpenses.currency),diffAmount:m(s.map(e=>e.differences?.foreignDevelopmentExpenses?.raw??e.foreignDevelopmentExpenses.raw).filter(e=>!!e),s[0].foreignDevelopmentExpenses.currency)},"sum")]}),n.jsxs("tr",{children:[n.jsx("th",{children:n.jsx(u,{multiline:!0,width:220,transitionProps:{duration:200},label:s[0]?.foreignDevelopmentRelativeToRnd.rule,children:n.jsx("p",{children:"Foreign Development out of R&D"})})}),s.map(e=>n.jsx(f,{originalRuleData:e.foreignDevelopmentRelativeToRnd,diffRuleData:e.differences?.foreignDevelopmentRelativeToRnd??void 0},e.year)),n.jsx("td",{})]}),n.jsxs("tr",{children:[n.jsx("td",{children:"R&D Business Trips Expenses"}),s.map(e=>n.jsx(i,{originalAmount:e.businessTripRndExpenses.formatted,diffAmount:e.differences?.businessTripRndExpenses?.formatted??void 0},e.year)),n.jsx(i,{originalAmount:d(s.map(e=>e.businessTripRndExpenses.raw).reduce((e,o)=>e+o,0),s[0].businessTripRndExpenses.currency),diffAmount:m(s.map(e=>e.differences?.businessTripRndExpenses?.raw??e.businessTripRndExpenses.raw).filter(e=>!!e),s[0].businessTripRndExpenses.currency)},"sum")]})]})]})})})};export{U as CorporateTaxRulingComplianceReport};