@zeniai/web-components 4.3.76-beta2MM → 4.3.76-beta4MM

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 (29) hide show
  1. package/dist/{SessionTimeoutPopup-BtSiV_gn.cjs → SessionTimeoutPopup-CYVHra5n.cjs} +544 -492
  2. package/dist/SessionTimeoutPopup-CYVHra5n.cjs.map +4 -0
  3. package/dist/{SessionTimeoutPopup-PierPkNe.js → SessionTimeoutPopup-D4hx54Wu.js} +865 -818
  4. package/dist/SessionTimeoutPopup-D4hx54Wu.js.map +4 -0
  5. package/dist/appLocale.d.ts +33 -1
  6. package/dist/cockpit.cjs.js +1 -1
  7. package/dist/cockpit.esm.js +1 -1
  8. package/dist/components/common/Footer.d.ts +1 -0
  9. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingKpiStrip.d.ts +2 -3
  10. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingList.d.ts +5 -2
  11. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingListRow.d.ts +3 -2
  12. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchDetailPage.d.ts +19 -7
  13. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPage.d.ts +2 -3
  14. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingStatusFilterBar.d.ts +9 -0
  15. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.d.ts +10 -2
  16. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.d.ts +5 -0
  17. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingTypes.d.ts +9 -0
  18. package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +1 -1
  19. package/dist/components/expenseAutomation/sections/jeSchedules/common/JEGroupSectionHeader.d.ts +6 -1
  20. package/dist/{index-DBVA_6RH.js → index-BCxMklOW.js} +2 -2
  21. package/dist/{index-DBVA_6RH.js.map → index-BCxMklOW.js.map} +1 -1
  22. package/dist/{index-CqUxvxSC.cjs → index-By9FvrjI.cjs} +2 -2
  23. package/dist/{index-CqUxvxSC.cjs.map → index-By9FvrjI.cjs.map} +1 -1
  24. package/dist/index.cjs.js +1 -1
  25. package/dist/index.esm.js +1 -1
  26. package/dist/strings/strings.d.ts +33 -1
  27. package/package.json +3 -3
  28. package/dist/SessionTimeoutPopup-BtSiV_gn.cjs.map +0 -4
  29. package/dist/SessionTimeoutPopup-PierPkNe.js.map +0 -4
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/dist/SessionTimeoutPopup-D4hx54Wu.js.map
3
+ size: 43380590 bytes
4
+ sha256: d429c8ddcea0e7ce3d6f5d59bfae772b2c490c1e09dbe157cc2ae3b18a0ae56d
@@ -8452,7 +8452,7 @@ declare class AppLocale {
8452
8452
  actualMatching: {
8453
8453
  matchNew: string;
8454
8454
  undoReversal: string;
8455
- continueMatch: string;
8455
+ approveAndReverse: string;
8456
8456
  openBill: string;
8457
8457
  openCharge: string;
8458
8458
  openTransaction: string;
@@ -8467,8 +8467,20 @@ declare class AppLocale {
8467
8467
  estMinutesToClear: string;
8468
8468
  variance: string;
8469
8469
  varianceFooter: string;
8470
+ hover: {
8471
+ actualsReceived: string;
8472
+ pendingReview: string;
8473
+ autoReversed: string;
8474
+ variance: string;
8475
+ };
8476
+ };
8477
+ statusFilter: {
8478
+ all: string;
8479
+ pendingReview: string;
8480
+ autoReversed: string;
8470
8481
  };
8471
8482
  groups: {
8483
+ pendingReview: string;
8472
8484
  reversed: string;
8473
8485
  };
8474
8486
  groupSubtitles: {
@@ -8540,9 +8552,29 @@ declare class AppLocale {
8540
8552
  };
8541
8553
  matchDetail: {
8542
8554
  service: string;
8555
+ servicePeriod: string;
8556
+ billDate: string;
8557
+ matchMethod: string;
8558
+ source: string;
8559
+ sourceJeAgent: string;
8560
+ sourceAttribution: string;
8543
8561
  accrued: string;
8562
+ accruedAmount: string;
8544
8563
  actual: string;
8564
+ actualAmount: string;
8545
8565
  variance: string;
8566
+ whyThisMatched: string;
8567
+ whyExact: string;
8568
+ whyFuzzy: string;
8569
+ whyManual: string;
8570
+ whyAi: string;
8571
+ matchMethodExact: string;
8572
+ matchMethodFuzzy: string;
8573
+ matchMethodManual: string;
8574
+ matchMethodAi: string;
8575
+ jePostingDate: string;
8576
+ pendingReversalJe: string;
8577
+ reversedJe: string;
8546
8578
  accrualJes: string;
8547
8579
  leftovers: string;
8548
8580
  reversalFailed: string;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./SessionTimeoutPopup-BtSiV_gn.cjs"),t=require("react"),o=require("@emotion/styled"),n=require("@liveblocks/react"),r=require("@zeniai/client-epic-state"),i=require("@liveblocks/react-ui"),s=require("@emotion/react"),a=require("react-dom"),l=require("@liveblocks/react-ui/primitives"),d=require("@liveblocks/react/suspense");function c(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const o in e)if("default"!==o){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>e[o]})}return t.default=e,Object.freeze(t)}const p=c(t);const u=({inboxNotification:t,onNotificationClick:o})=>{const r=n.useInboxNotificationThread(t.id),s=r.metadata.entityType.split("."),a=r.metadata.isGlobalComment&&2===s.length;return e.jsxRuntimeExports.jsx(m,{isClickable:a,isUnRead:null==t.readAt,onClick:()=>{o(r.metadata,r.id)},children:e.jsxRuntimeExports.jsx(i.InboxNotification,{inboxNotification:t,kinds:{thread:t=>e.jsxRuntimeExports.jsx(i.InboxNotification.Thread,{...t,showRoomName:!0})}})})},m=o.div`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./SessionTimeoutPopup-CYVHra5n.cjs"),t=require("react"),o=require("@emotion/styled"),n=require("@liveblocks/react"),r=require("@zeniai/client-epic-state"),i=require("@liveblocks/react-ui"),s=require("@emotion/react"),a=require("react-dom"),l=require("@liveblocks/react-ui/primitives"),d=require("@liveblocks/react/suspense");function c(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const o in e)if("default"!==o){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>e[o]})}return t.default=e,Object.freeze(t)}const p=c(t);const u=({inboxNotification:t,onNotificationClick:o})=>{const r=n.useInboxNotificationThread(t.id),s=r.metadata.entityType.split("."),a=r.metadata.isGlobalComment&&2===s.length;return e.jsxRuntimeExports.jsx(m,{isClickable:a,isUnRead:null==t.readAt,onClick:()=>{o(r.metadata,r.id)},children:e.jsxRuntimeExports.jsx(i.InboxNotification,{inboxNotification:t,kinds:{thread:t=>e.jsxRuntimeExports.jsx(i.InboxNotification.Thread,{...t,showRoomName:!0})}})})},m=o.div`
2
2
  display: flex;
3
3
  width: 100%;
4
4
  cursor: ${e=>e.isClickable?"pointer":"initial"};
@@ -1,4 +1,4 @@
1
- import{iX as e,fq as t,jt as o,bt as n,m as r,hA as i,g0 as a,cb as s,a8 as l,g5 as d,i4 as c,ik as p,i5 as h,aT as m,i8 as u,fa as g,kf as y,jV as x,gD as f,aV as b,dK as w,F as C,gs as v,dF as $,g2 as k,gh as S,kh as j,bx as T,jZ as I,kd as P,fF as R,hR as D,fC as O,fz as A,ij as E,go as L,fb as M,dA as N,jI as z,dL as V,bv as F,bR as B,br as H,f_ as W,it as U,bF as _,U as G,iH as K,iI as q,iJ as Y,aU as Z,dY as Q,dy as X,g4 as J,e7 as ee,fQ as te,gm as oe,jq as ne,f3 as re,c2 as ie,i9 as ae,ia as se,jN as le,hQ as de,hL as ce,hS as pe,jr as he,a9 as me,i_ as ue,eD as ge,jQ as ye,h_ as xe,j4 as fe,hW as be,k8 as we,kc as Ce,jR as ve,kb as $e,j6 as ke,iS as Se,hw as je,j3 as Te,j7 as Ie,fh as Pe,fW as Re,eW as De,jY as Oe,iK as Ae,b8 as Ee,V as Le,ej as Me,ek as Ne,ei as ze,ce as Ve,dO as Fe,fL as Be,cf as He,fe as We,ch as Ue,en as _e,el as Ge,em as Ke,cg as qe,cd as Ye,ci as Ze,e8 as Qe,ju as Xe,eB as Je,fM as et,c6 as tt,fi as ot,fX as nt,aN as rt,bS as it,aS as at,iY as st,cc as lt,fY as dt,ge as ct,g9 as pt,hY as ht,gF as mt,fv as ut,dC as gt,dE as yt,f$ as xt,b4 as ft,b2 as bt,b3 as wt,bi as Ct,gl as vt,g6 as $t,fm as kt,jX as St,i1 as jt,il as Tt,c8 as It,hy as Pt,gZ as Rt,ht as Dt,gB as Ot,gC as At,q as Et,hO as Lt,fJ as Mt,dz as Nt,g3 as zt,dD as Vt,hP as Ft,fZ as Bt,g1 as Ht,S as Wt,h0 as Ut,iR as _t,bD as Gt,hs as Kt,iD as qt,ir as Yt,ix as Zt,g8 as Qt,cl as Xt,h$ as Jt,gr as eo,gq as to,fw as oo,fx as no,im as ro,j2 as io,g7 as ao,gd as so,gc as lo,bO as co,jk as po,ds as ho,dt as mo,dm as uo,dr as go,c7 as yo,bP as xo,gb as fo,aX as bo,id as wo,fn as Co,dq as vo,dw as $o,bN as ko,di as So,eX as jo,fV as To,fU as Io,fR as Po,dk as Ro,jT as Do,fc as Oo,dn as Ao,k3 as Eo,e9 as Lo,fO as Mo,i6 as No,dl as zo,bT as Vo,c4 as Fo,b6 as Bo,aK as Ho,gg as Wo,fD as Uo,dI as _o,gi as Go,d_ as Ko,fB as qo,b7 as Yo,iW as Zo,bX as Qo,ke as Xo,dv as Jo,bj as en,fd as tn,dp as on,du as nn,eI as rn,g as an,aM as sn,eb as ln,fS as dn,jH as cn,jO as pn,jW as hn,bW as mn,ad as un,ae as gn,j_ as yn,iy as xn,by as fn,dP as bn,iL as wn,e2 as Cn,e1 as vn,iE as $n,dT as kn,aL as Sn,dS as jn,t as Tn,dR as In,bC as Pn,dQ as Rn,io as Dn,c0 as On,hC as An,p as En,gz as Ln,c1 as Mn,G as Nn,c5 as zn,g_ as Vn,fu as Fn,jM as Bn,d$ as Hn,ja as Wn,jd as Un,jb as _n,jc as Gn,je as Kn,j8 as qn,j9 as Yn,ii as Zn,is as Qn,ip as Xn,a7 as Jn,eT as er,iw as tr,gp as or,iG as nr,e3 as rr,dB as ir,fA as ar,ga as sr,gf as lr,fT as dr,hK as cr,gk as pr,fo as hr,fj as mr,hX as ur,bE as gr,fE as yr,bQ as xr,bU as fr,fk as br,gj as wr,dx as Cr,gn as vr,fg as $r,fl as kr,fy as Sr,bV as jr,ff as Tr}from"./SessionTimeoutPopup-PierPkNe.js";import{A as Ir,a as Pr,b as Rr,c as Dr,d as Or,e as Ar,f as Er,h as Lr,i as Mr,j as Nr,k as zr,l as Vr,n as Fr,o as Br,r as Hr,s as Wr,u as Ur,v as _r,w as Gr,x as Kr,y as qr,z as Yr,B as Zr,C as Qr,D as Xr,E as Jr,H as ei,I as ti,J as oi,K as ni,L as ri,M as ii,N as ai,O as si,P as li,Q as di,R as ci,T as pi,W as hi,X as mi,Y as ui,Z as gi,_ as yi,$ as xi,a0 as fi,a1 as bi,a2 as wi,ft as Ci,a3 as vi,a4 as $i,a5 as ki,a6 as Si,aa as ji,ab as Ti,ac as Ii,af as Pi,ag as Ri,ah as Di,ai as Oi,aj as Ai,ak as Ei,al as Li,am as Mi,an as Ni,ao as zi,ap as Vi,aq as Fi,ar as Bi,as as Hi,at as Wi,au as Ui,av as _i,aw as Gi,ax as Ki,ay as qi,az as Yi,aA as Zi,aB as Qi,aC as Xi,aD as Ji,aE as ea,ft as ta,aF as oa,aG as na,aH as ra,aI as ia,aJ as aa,aO as sa,aP as la,aQ as da,aR as ca,aW as pa,aY as ha,aZ as ma,a_ as ua,a$ as ga,b0 as ya,b1 as xa,b5 as fa,b9 as ba,ba as wa,bb as Ca,bc as va,bd as $a,be as ka,bf as Sa,bg as ja,bh as Ta,bk as Ia,bl as Pa,bm as Ra,bn as Da,bo as Oa,bp as Aa,bq as Ea,bs as La,bw as Ma,bz as Na,bA as za,bB as Va,bG as Fa,bH as Ba,bI as Ha,bJ as Wa,bK as Ua,bL as _a,bM as Ga,bY as Ka,bZ as qa,b_ as Ya,b$ as Za,c3 as Qa,c9 as Xa,ca as Ja,cj as es,ck as ts,cm as os,cn as ns,co as rs,cp as is,cq as as,cr as ss,cs as ls,ct as ds,cu as cs,cv as ps,cw as hs,cx as ms,cy as us,cz as gs,cA as ys,cB as xs,cC as fs,cD as bs,cE as ws,cF as Cs,cG as vs,cH as $s,cI as ks,cJ as Ss,cK as js,cL as Ts,cM as Is,cN as Ps,cO as Rs,cP as Ds,cQ as Os,cR as As,cS as Es,cT as Ls,cU as Ms,cV as Ns,cW as zs,cX as Vs,cY as Fs,cZ as Bs,c_ as Hs,c$ as Ws,d0 as Us,d1 as _s,d2 as Gs,d3 as Ks,d4 as qs,d5 as Ys,d6 as Zs,d7 as Qs,d8 as Xs,d9 as Js,da as el,da as tl,db as ol,dc as nl,dd as rl,de as il,df as al,dg as sl,dh as ll,dj as dl,dG as cl,dH as pl,dJ as hl,dM as ml,dN as ul,dU as gl,dV as yl,dW as xl,dX as fl,dZ as bl,e0 as wl,e4 as Cl,e5 as vl,e6 as $l,ea as kl,ec as Sl,ed as jl,ee as Tl,ef as Il,eg as Pl,eh as Rl,eo as Dl,ep as Ol,eq as Al,er as El,es as Ll,et as Ml,eu as Nl,ev as zl,ew as Vl,ex as Fl,ey as Bl,ez as Hl,eA as Wl,eC as Ul,eE as _l,eF as Gl,eG as Kl,eH as ql,eJ as Yl,eK as Zl,bu as Ql,eL as Xl,eM as Jl,eN as ed,eO as td,eP as od,eQ as nd,eR as rd,ft as id,eU as ad,eS as sd,eV as ld,eY as dd,eZ as cd,e_ as pd,e$ as hd,f0 as md,f1 as ud,f2 as gd,f4 as yd,f5 as xd,f6 as fd,f7 as bd,f8 as wd,f9 as Cd,fp as vd,fr as $d,fs as kd,fG as Sd,fH as jd,fI as Td,fK as Id,fN as Pd,fP as Rd,gt as Dd,gu as Od,gv as Ad,gw as Ed,gx as Ld,gy as Md,gA as Nd,gE as zd,gG as Vd,gH as Fd,gI as Bd,gJ as Hd,gK as Wd,gL as Ud,gM as _d,gN as Gd,gO as Kd,gP as qd,gQ as Yd,gR as Zd,gS as Qd,gT as Xd,gU as Jd,gV as ec,gW as tc,gX as oc,gY as nc,g$ as rc,h1 as ic,h2 as ac,h3 as sc,h4 as lc,h5 as dc,h6 as cc,h7 as pc,h8 as hc,h9 as mc,ha as uc,hb as gc,hc as yc,hd as xc,he as fc,hf as bc,hg as wc,hh as Cc,hi as vc,hj as $c,hk as kc,hl as Sc,hm as jc,hn as Tc,ho as Ic,hp as Pc,hq as Rc,hr as Dc,hu as Oc,hv as Ac,hx as Ec,hz as Lc,hB as Mc,hD as Nc,hE as zc,hF as Vc,hG as Fc,hH as Bc,hI as Hc,hJ as Wc,hM as Uc,hN as _c,hT as Gc,hU as Kc,hV as qc,hZ as Yc,i3 as Zc,i0 as Qc,i2 as Xc,i7 as Jc,ib as ep,ic as tp,ie as op,ig as np,ih as rp,iq as ip,iu as ap,iv as sp,iz as lp,iA as dp,iB as cp,iC as pp,iF as hp,iM as mp,iN as up,iO as gp,iP as yp,iQ as xp,iT as fp,iU as bp,iV as wp,iZ as Cp,i$ as vp,j0 as $p,j1 as kp,j5 as Sp,jf as jp,jg as Tp,jh as Ip,ji as Pp,jj as Rp,jl as Dp,jm as Op,jn as Ap,jo as Ep,jp as Lp,js as Mp,jv as Np,jw as zp,jx as Vp,jy as Fp,jz as Bp,jA as Hp,jB as Wp,jC as Up,jD as _p,jE as Gp,jF as Kp,jG as qp,jJ as Yp,jK as Zp,jL as Qp,jP as Xp,jS as Jp,jU as eh,j$ as th,k0 as oh,k1 as nh,k2 as rh,k4 as ih,k5 as ah,k6 as sh,k7 as lh,k9 as dh,ka as ch,kg as ph,ki as hh,kj as mh}from"./SessionTimeoutPopup-PierPkNe.js";import*as uh from"react";import gh,{useEffect as yh,useState as xh,useMemo as fh,useCallback as bh,useContext as wh,useRef as Ch,forwardRef as vh,Fragment as $h,memo as kh,createContext as Sh,Suspense as jh,createElement as Th,Component as Ih}from"react";import Ph from"@emotion/styled";import{default as Rh}from"@emotion/styled";import{useInboxNotificationThread as Dh,useInboxNotifications as Oh,useMarkInboxNotificationAsRead as Ah,RoomProvider as Eh,useCreateThread as Lh}from"@liveblocks/react";import{zeniDate as Mh,stringToUnion as Nh,stringToUnionStrict as zh,isAllowedValueWithCode as Vh,dateNow as Fh,canSendMonthEndEmailReport as Bh,shouldEnableCalendarPickerForLastReportSent as Hh,toManagementSortKeyType as Wh,toUserRoleType as Uh,toTaskManagerSortKeyType as _h,allTaskPriority as Gh,allTaskStatus as Kh,getUserName as qh,toHealthSortKeyType as Yh,isCompanyRunwayInfinite as Zh,companyHealthMetricDropDownOptions as Qh,hasCompanyHealthMetricFormFieldChanged as Xh,toSubscriptionSortKeyType as Jh,toPortfolioSortKeyType as em,getAllowedOperationsForStatus as tm,toOnboardingSortKeyType as om,isTenantBankingOnly as nm,ALL_ACCOUNTING_CONNECTION_CREATION_MODES as rm,toProductTypeStrict as im,mapAttachmentFileToAttachmentFilePayload as am,SUPPORTED_ATTACHMENT_FILE_TYPES as sm,toSupportedAttachmentFileType as lm,getAttachmentFileIdByFileName as dm,dateFromYearMonthDate as cm,getBusinessDayOfDate as pm,toReviewColumnKeyType as hm,getAuditWarningsCount as mm,getUserFromAllUsers as um}from"@zeniai/client-epic-state";import{buildInvoicingEntityPath as gm,isInvoicingEntityLinkable as ym}from"@zeniai/client-epic-state";import{InboxNotification as xm}from"@liveblocks/react-ui";import{css as fm,keyframes as bm}from"@emotion/react";import{createPortal as wm}from"react-dom";import{Composer as Cm,useComposer as vm}from"@liveblocks/react-ui/primitives";import{useUser as $m}from"@liveblocks/react/suspense";const km=({inboxNotification:t,onNotificationClick:o})=>{const n=Dh(t.id),r=n.metadata.entityType.split("."),i=n.metadata.isGlobalComment&&2===r.length;/* @__PURE__ */
1
+ import{iX as e,fq as t,jt as o,bt as n,m as r,hA as i,g0 as a,cb as s,a8 as l,g5 as d,i4 as c,ik as p,i5 as h,aT as m,i8 as u,fa as g,kf as y,jV as x,gD as f,aV as b,dK as w,F as C,gs as v,dF as $,g2 as k,gh as S,kh as j,bx as T,jZ as I,kd as P,fF as R,hR as D,fC as O,fz as A,ij as E,go as L,fb as M,dA as N,jI as z,dL as V,bv as F,bR as B,br as H,f_ as W,it as U,bF as _,U as G,iH as K,iI as q,iJ as Y,aU as Z,dY as Q,dy as X,g4 as J,e7 as ee,fQ as te,gm as oe,jq as ne,f3 as re,c2 as ie,i9 as ae,ia as se,jN as le,hQ as de,hL as ce,hS as pe,jr as he,a9 as me,i_ as ue,eD as ge,jQ as ye,h_ as xe,j4 as fe,hW as be,k8 as we,kc as Ce,jR as ve,kb as $e,j6 as ke,iS as Se,hw as je,j3 as Te,j7 as Ie,fh as Pe,fW as Re,eW as De,jY as Oe,iK as Ae,b8 as Ee,V as Le,ej as Me,ek as Ne,ei as ze,ce as Ve,dO as Fe,fL as Be,cf as He,fe as We,ch as Ue,en as _e,el as Ge,em as Ke,cg as qe,cd as Ye,ci as Ze,e8 as Qe,ju as Xe,eB as Je,fM as et,c6 as tt,fi as ot,fX as nt,aN as rt,bS as it,aS as at,iY as st,cc as lt,fY as dt,ge as ct,g9 as pt,hY as ht,gF as mt,fv as ut,dC as gt,dE as yt,f$ as xt,b4 as ft,b2 as bt,b3 as wt,bi as Ct,gl as vt,g6 as $t,fm as kt,jX as St,i1 as jt,il as Tt,c8 as It,hy as Pt,gZ as Rt,ht as Dt,gB as Ot,gC as At,q as Et,hO as Lt,fJ as Mt,dz as Nt,g3 as zt,dD as Vt,hP as Ft,fZ as Bt,g1 as Ht,S as Wt,h0 as Ut,iR as _t,bD as Gt,hs as Kt,iD as qt,ir as Yt,ix as Zt,g8 as Qt,cl as Xt,h$ as Jt,gr as eo,gq as to,fw as oo,fx as no,im as ro,j2 as io,g7 as ao,gd as so,gc as lo,bO as co,jk as po,ds as ho,dt as mo,dm as uo,dr as go,c7 as yo,bP as xo,gb as fo,aX as bo,id as wo,fn as Co,dq as vo,dw as $o,bN as ko,di as So,eX as jo,fV as To,fU as Io,fR as Po,dk as Ro,jT as Do,fc as Oo,dn as Ao,k3 as Eo,e9 as Lo,fO as Mo,i6 as No,dl as zo,bT as Vo,c4 as Fo,b6 as Bo,aK as Ho,gg as Wo,fD as Uo,dI as _o,gi as Go,d_ as Ko,fB as qo,b7 as Yo,iW as Zo,bX as Qo,ke as Xo,dv as Jo,bj as en,fd as tn,dp as on,du as nn,eI as rn,g as an,aM as sn,eb as ln,fS as dn,jH as cn,jO as pn,jW as hn,bW as mn,ad as un,ae as gn,j_ as yn,iy as xn,by as fn,dP as bn,iL as wn,e2 as Cn,e1 as vn,iE as $n,dT as kn,aL as Sn,dS as jn,t as Tn,dR as In,bC as Pn,dQ as Rn,io as Dn,c0 as On,hC as An,p as En,gz as Ln,c1 as Mn,G as Nn,c5 as zn,g_ as Vn,fu as Fn,jM as Bn,d$ as Hn,ja as Wn,jd as Un,jb as _n,jc as Gn,je as Kn,j8 as qn,j9 as Yn,ii as Zn,is as Qn,ip as Xn,a7 as Jn,eT as er,iw as tr,gp as or,iG as nr,e3 as rr,dB as ir,fA as ar,ga as sr,gf as lr,fT as dr,hK as cr,gk as pr,fo as hr,fj as mr,hX as ur,bE as gr,fE as yr,bQ as xr,bU as fr,fk as br,gj as wr,dx as Cr,gn as vr,fg as $r,fl as kr,fy as Sr,bV as jr,ff as Tr}from"./SessionTimeoutPopup-D4hx54Wu.js";import{A as Ir,a as Pr,b as Rr,c as Dr,d as Or,e as Ar,f as Er,h as Lr,i as Mr,j as Nr,k as zr,l as Vr,n as Fr,o as Br,r as Hr,s as Wr,u as Ur,v as _r,w as Gr,x as Kr,y as qr,z as Yr,B as Zr,C as Qr,D as Xr,E as Jr,H as ei,I as ti,J as oi,K as ni,L as ri,M as ii,N as ai,O as si,P as li,Q as di,R as ci,T as pi,W as hi,X as mi,Y as ui,Z as gi,_ as yi,$ as xi,a0 as fi,a1 as bi,a2 as wi,ft as Ci,a3 as vi,a4 as $i,a5 as ki,a6 as Si,aa as ji,ab as Ti,ac as Ii,af as Pi,ag as Ri,ah as Di,ai as Oi,aj as Ai,ak as Ei,al as Li,am as Mi,an as Ni,ao as zi,ap as Vi,aq as Fi,ar as Bi,as as Hi,at as Wi,au as Ui,av as _i,aw as Gi,ax as Ki,ay as qi,az as Yi,aA as Zi,aB as Qi,aC as Xi,aD as Ji,aE as ea,ft as ta,aF as oa,aG as na,aH as ra,aI as ia,aJ as aa,aO as sa,aP as la,aQ as da,aR as ca,aW as pa,aY as ha,aZ as ma,a_ as ua,a$ as ga,b0 as ya,b1 as xa,b5 as fa,b9 as ba,ba as wa,bb as Ca,bc as va,bd as $a,be as ka,bf as Sa,bg as ja,bh as Ta,bk as Ia,bl as Pa,bm as Ra,bn as Da,bo as Oa,bp as Aa,bq as Ea,bs as La,bw as Ma,bz as Na,bA as za,bB as Va,bG as Fa,bH as Ba,bI as Ha,bJ as Wa,bK as Ua,bL as _a,bM as Ga,bY as Ka,bZ as qa,b_ as Ya,b$ as Za,c3 as Qa,c9 as Xa,ca as Ja,cj as es,ck as ts,cm as os,cn as ns,co as rs,cp as is,cq as as,cr as ss,cs as ls,ct as ds,cu as cs,cv as ps,cw as hs,cx as ms,cy as us,cz as gs,cA as ys,cB as xs,cC as fs,cD as bs,cE as ws,cF as Cs,cG as vs,cH as $s,cI as ks,cJ as Ss,cK as js,cL as Ts,cM as Is,cN as Ps,cO as Rs,cP as Ds,cQ as Os,cR as As,cS as Es,cT as Ls,cU as Ms,cV as Ns,cW as zs,cX as Vs,cY as Fs,cZ as Bs,c_ as Hs,c$ as Ws,d0 as Us,d1 as _s,d2 as Gs,d3 as Ks,d4 as qs,d5 as Ys,d6 as Zs,d7 as Qs,d8 as Xs,d9 as Js,da as el,da as tl,db as ol,dc as nl,dd as rl,de as il,df as al,dg as sl,dh as ll,dj as dl,dG as cl,dH as pl,dJ as hl,dM as ml,dN as ul,dU as gl,dV as yl,dW as xl,dX as fl,dZ as bl,e0 as wl,e4 as Cl,e5 as vl,e6 as $l,ea as kl,ec as Sl,ed as jl,ee as Tl,ef as Il,eg as Pl,eh as Rl,eo as Dl,ep as Ol,eq as Al,er as El,es as Ll,et as Ml,eu as Nl,ev as zl,ew as Vl,ex as Fl,ey as Bl,ez as Hl,eA as Wl,eC as Ul,eE as _l,eF as Gl,eG as Kl,eH as ql,eJ as Yl,eK as Zl,bu as Ql,eL as Xl,eM as Jl,eN as ed,eO as td,eP as od,eQ as nd,eR as rd,ft as id,eU as ad,eS as sd,eV as ld,eY as dd,eZ as cd,e_ as pd,e$ as hd,f0 as md,f1 as ud,f2 as gd,f4 as yd,f5 as xd,f6 as fd,f7 as bd,f8 as wd,f9 as Cd,fp as vd,fr as $d,fs as kd,fG as Sd,fH as jd,fI as Td,fK as Id,fN as Pd,fP as Rd,gt as Dd,gu as Od,gv as Ad,gw as Ed,gx as Ld,gy as Md,gA as Nd,gE as zd,gG as Vd,gH as Fd,gI as Bd,gJ as Hd,gK as Wd,gL as Ud,gM as _d,gN as Gd,gO as Kd,gP as qd,gQ as Yd,gR as Zd,gS as Qd,gT as Xd,gU as Jd,gV as ec,gW as tc,gX as oc,gY as nc,g$ as rc,h1 as ic,h2 as ac,h3 as sc,h4 as lc,h5 as dc,h6 as cc,h7 as pc,h8 as hc,h9 as mc,ha as uc,hb as gc,hc as yc,hd as xc,he as fc,hf as bc,hg as wc,hh as Cc,hi as vc,hj as $c,hk as kc,hl as Sc,hm as jc,hn as Tc,ho as Ic,hp as Pc,hq as Rc,hr as Dc,hu as Oc,hv as Ac,hx as Ec,hz as Lc,hB as Mc,hD as Nc,hE as zc,hF as Vc,hG as Fc,hH as Bc,hI as Hc,hJ as Wc,hM as Uc,hN as _c,hT as Gc,hU as Kc,hV as qc,hZ as Yc,i3 as Zc,i0 as Qc,i2 as Xc,i7 as Jc,ib as ep,ic as tp,ie as op,ig as np,ih as rp,iq as ip,iu as ap,iv as sp,iz as lp,iA as dp,iB as cp,iC as pp,iF as hp,iM as mp,iN as up,iO as gp,iP as yp,iQ as xp,iT as fp,iU as bp,iV as wp,iZ as Cp,i$ as vp,j0 as $p,j1 as kp,j5 as Sp,jf as jp,jg as Tp,jh as Ip,ji as Pp,jj as Rp,jl as Dp,jm as Op,jn as Ap,jo as Ep,jp as Lp,js as Mp,jv as Np,jw as zp,jx as Vp,jy as Fp,jz as Bp,jA as Hp,jB as Wp,jC as Up,jD as _p,jE as Gp,jF as Kp,jG as qp,jJ as Yp,jK as Zp,jL as Qp,jP as Xp,jS as Jp,jU as eh,j$ as th,k0 as oh,k1 as nh,k2 as rh,k4 as ih,k5 as ah,k6 as sh,k7 as lh,k9 as dh,ka as ch,kg as ph,ki as hh,kj as mh}from"./SessionTimeoutPopup-D4hx54Wu.js";import*as uh from"react";import gh,{useEffect as yh,useState as xh,useMemo as fh,useCallback as bh,useContext as wh,useRef as Ch,forwardRef as vh,Fragment as $h,memo as kh,createContext as Sh,Suspense as jh,createElement as Th,Component as Ih}from"react";import Ph from"@emotion/styled";import{default as Rh}from"@emotion/styled";import{useInboxNotificationThread as Dh,useInboxNotifications as Oh,useMarkInboxNotificationAsRead as Ah,RoomProvider as Eh,useCreateThread as Lh}from"@liveblocks/react";import{zeniDate as Mh,stringToUnion as Nh,stringToUnionStrict as zh,isAllowedValueWithCode as Vh,dateNow as Fh,canSendMonthEndEmailReport as Bh,shouldEnableCalendarPickerForLastReportSent as Hh,toManagementSortKeyType as Wh,toUserRoleType as Uh,toTaskManagerSortKeyType as _h,allTaskPriority as Gh,allTaskStatus as Kh,getUserName as qh,toHealthSortKeyType as Yh,isCompanyRunwayInfinite as Zh,companyHealthMetricDropDownOptions as Qh,hasCompanyHealthMetricFormFieldChanged as Xh,toSubscriptionSortKeyType as Jh,toPortfolioSortKeyType as em,getAllowedOperationsForStatus as tm,toOnboardingSortKeyType as om,isTenantBankingOnly as nm,ALL_ACCOUNTING_CONNECTION_CREATION_MODES as rm,toProductTypeStrict as im,mapAttachmentFileToAttachmentFilePayload as am,SUPPORTED_ATTACHMENT_FILE_TYPES as sm,toSupportedAttachmentFileType as lm,getAttachmentFileIdByFileName as dm,dateFromYearMonthDate as cm,getBusinessDayOfDate as pm,toReviewColumnKeyType as hm,getAuditWarningsCount as mm,getUserFromAllUsers as um}from"@zeniai/client-epic-state";import{buildInvoicingEntityPath as gm,isInvoicingEntityLinkable as ym}from"@zeniai/client-epic-state";import{InboxNotification as xm}from"@liveblocks/react-ui";import{css as fm,keyframes as bm}from"@emotion/react";import{createPortal as wm}from"react-dom";import{Composer as Cm,useComposer as vm}from"@liveblocks/react-ui/primitives";import{useUser as $m}from"@liveblocks/react/suspense";const km=({inboxNotification:t,onNotificationClick:o})=>{const n=Dh(t.id),r=n.metadata.entityType.split("."),i=n.metadata.isGlobalComment&&2===r.length;/* @__PURE__ */
2
2
  return e.jsx(Sm,{isClickable:i,isUnRead:null==t.readAt,onClick:()=>{o(n.metadata,n.id)},children:/* @__PURE__ */e.jsx(xm,{inboxNotification:t,kinds:{thread:t=>/* @__PURE__ */e.jsx(xm.Thread,{...t,showRoomName:!0})}})})},Sm=Ph.div`
3
3
  display: flex;
4
4
  width: 100%;
@@ -17,6 +17,7 @@ export interface PrimaryBtnProps {
17
17
  isDisabled?: boolean;
18
18
  isLoading?: boolean;
19
19
  prefixIcon?: JSX.Element;
20
+ reverseSpinnerColor?: boolean;
20
21
  size?: ButtonSize;
21
22
  style?: React.CSSProperties;
22
23
  suffixIcon?: JSX.Element;
@@ -1,9 +1,8 @@
1
- import { Amount, MonthYearPeriod } from '@zeniai/client-epic-state';
1
+ import { Amount } from '@zeniai/client-epic-state';
2
2
  import { ActualMatchingKpiSummary } from './actualMatchingTypes';
3
3
  export interface ActualMatchingKpiStripProps {
4
4
  displayCurrency: Amount;
5
5
  kpiSummary: ActualMatchingKpiSummary;
6
- selectedPeriod: MonthYearPeriod;
7
6
  }
8
- declare function ActualMatchingKpiStrip({ displayCurrency, kpiSummary, selectedPeriod, }: Readonly<ActualMatchingKpiStripProps>): import("react/jsx-runtime").JSX.Element;
7
+ declare function ActualMatchingKpiStrip({ displayCurrency, kpiSummary, }: Readonly<ActualMatchingKpiStripProps>): import("react/jsx-runtime").JSX.Element;
9
8
  export default ActualMatchingKpiStrip;
@@ -8,10 +8,13 @@ export interface ActualMatchingListProps {
8
8
  reversed: ActualMatchingRow[];
9
9
  sortKey?: ActualMatchingSortKey;
10
10
  sortOrder?: SortOrder;
11
+ undoStatusByMatchId?: Record<string, {
12
+ fetchState: string;
13
+ }>;
11
14
  onIgnoreMatchSuggestion?: (matchId: string) => void;
12
15
  onOpenMatch: (matchId: string) => void;
13
- onOpenMatchNewModal?: (matchId: string) => void;
16
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
14
17
  onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
15
18
  }
16
- declare function ActualMatchingList({ ignoreStatusByMatchId, pendingReview, reversed, onIgnoreMatchSuggestion, onOpenMatch, onOpenMatchNewModal, onUpdateActualMatchingUIState, sortKey, sortOrder, }: Readonly<ActualMatchingListProps>): import("react/jsx-runtime").JSX.Element;
19
+ declare function ActualMatchingList({ ignoreStatusByMatchId, pendingReview, reversed, onIgnoreMatchSuggestion, onOpenMatch, onUndoReversal, onUpdateActualMatchingUIState, sortKey, sortOrder, undoStatusByMatchId, }: Readonly<ActualMatchingListProps>): import("react/jsx-runtime").JSX.Element;
17
20
  export default ActualMatchingList;
@@ -4,10 +4,11 @@ export interface ActualMatchingListRowProps {
4
4
  columns: ActualMatchingColumnKey[];
5
5
  gridTemplateColumns: string;
6
6
  isIgnoring?: boolean;
7
+ isUndoing?: boolean;
7
8
  row: ActualMatchingRow;
8
9
  onIgnoreMatchSuggestion?: (matchId: string) => void;
9
10
  onOpenMatch: (matchId: string) => void;
10
- onOpenMatchNewModal?: (matchId: string) => void;
11
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
11
12
  }
12
- declare function ActualMatchingListRow({ columns, gridTemplateColumns, isIgnoring, row, onIgnoreMatchSuggestion, onOpenMatch, onOpenMatchNewModal, }: Readonly<ActualMatchingListRowProps>): import("react/jsx-runtime").JSX.Element;
13
+ declare function ActualMatchingListRow({ columns, gridTemplateColumns, isIgnoring, isUndoing, row, onIgnoreMatchSuggestion, onOpenMatch, onUndoReversal, }: Readonly<ActualMatchingListRowProps>): import("react/jsx-runtime").JSX.Element;
13
14
  export default ActualMatchingListRow;
@@ -1,23 +1,35 @@
1
- import { FetchState, MatchAndReverseResult, UndoReversalResult } from '@zeniai/client-epic-state';
1
+ import { FetchState, MatchAndReverseAccrualsParams, MatchAndReverseResult, UndoReversalResult } from '@zeniai/client-epic-state';
2
2
  import { ActualMatchingIgnoreReasonType, ActualMatchingMatch } from './actualMatchingTypes';
3
3
  export interface ActualMatchingMatchDetailPageProps {
4
4
  detailFetchState: FetchState;
5
5
  refreshStatus: FetchState;
6
- isRenderedInPanel?: boolean;
7
6
  isIgnoreInFlight?: boolean;
7
+ isRenderedInPanel?: boolean;
8
8
  isUndoInFlight?: boolean;
9
+ lastMatchResults?: MatchAndReverseResult[];
10
+ lastUndoResults?: UndoReversalResult[];
9
11
  match?: ActualMatchingMatch;
10
12
  onNavigateBack: () => void;
11
13
  onRefresh: () => void;
14
+ isApproveInFlight?: boolean;
15
+ onApproveAndReverse?: (params: MatchAndReverseAccrualsParams) => void;
16
+ onIgnoreMatchSuggestion?: (reason: ActualMatchingIgnoreReasonType, note?: string) => void;
12
17
  onOpenBill?: (txn: {
13
18
  id: string;
14
19
  type: string;
15
20
  }) => void;
16
- onContinueMatch?: () => void;
17
- onIgnoreMatchSuggestion?: (reason: ActualMatchingIgnoreReasonType, note?: string) => void;
18
21
  onUndoReversal?: (accrualIds: string[]) => void;
19
- lastMatchResults?: MatchAndReverseResult[];
20
- lastUndoResults?: UndoReversalResult[];
21
22
  }
22
- declare function ActualMatchingMatchDetailPage({ detailFetchState, isRenderedInPanel, isIgnoreInFlight, isUndoInFlight, match, onNavigateBack, onRefresh, onOpenBill, onContinueMatch, onIgnoreMatchSuggestion, onUndoReversal, lastMatchResults, lastUndoResults, refreshStatus, }: Readonly<ActualMatchingMatchDetailPageProps>): import("react/jsx-runtime").JSX.Element;
23
+ export declare function ActualMatchingOpenBillActionButton({ match, transaction, onOpenBill, }: Readonly<{
24
+ match?: ActualMatchingMatch;
25
+ transaction?: {
26
+ id: string;
27
+ type: string;
28
+ };
29
+ onOpenBill?: (txn: {
30
+ id: string;
31
+ type: string;
32
+ }) => void;
33
+ }>): import("react/jsx-runtime").JSX.Element | null;
34
+ declare function ActualMatchingMatchDetailPage({ detailFetchState, isRenderedInPanel, isApproveInFlight, isIgnoreInFlight, isUndoInFlight, match, onNavigateBack, onRefresh, onOpenBill, onApproveAndReverse, onIgnoreMatchSuggestion, onUndoReversal, lastMatchResults, lastUndoResults, refreshStatus, }: Readonly<ActualMatchingMatchDetailPageProps>): import("react/jsx-runtime").JSX.Element;
23
35
  export default ActualMatchingMatchDetailPage;
@@ -14,9 +14,8 @@ export interface ActualMatchingPageProps extends ActualMatchingActionProps {
14
14
  isMatchPanelOpen?: boolean;
15
15
  matchPanelContent?: ReactNode;
16
16
  }
17
- export declare function ActualMatchingPageKpis({ actualMatching, selectedPeriod, }: Readonly<{
17
+ export declare function ActualMatchingPageKpis({ actualMatching, }: Readonly<{
18
18
  actualMatching: ExpenseAutomationActualMatchingViewSelector;
19
- selectedPeriod: MonthYearPeriod;
20
19
  }>): import("react/jsx-runtime").JSX.Element;
21
- declare function ActualMatchingPage({ actualMatching, isMatchPanelOpen, matchPanelContent, onClearMatchNewModal, onCloseMatchNewModal, onIgnoreMatchSuggestion, onMatchAndReverse, onOpenMatch, onOpenMatchNewModal, onSearchMatchAccruals, onSearchMatchTransactions, onUpdateActualMatchingUIState, selectedPeriod, }: Readonly<ActualMatchingPageProps>): import("react/jsx-runtime").JSX.Element;
20
+ declare function ActualMatchingPage({ actualMatching, isMatchPanelOpen, matchPanelContent, onClearMatchNewModal, onCloseMatchNewModal, onIgnoreMatchSuggestion, onMatchAndReverse, onOpenBill, onOpenMatch, onSearchMatchAccruals, onSearchMatchTransactions, onUndoReversal, onUpdateActualMatchingUIState, }: Readonly<ActualMatchingPageProps>): import("react/jsx-runtime").JSX.Element;
22
21
  export default ActualMatchingPage;
@@ -0,0 +1,9 @@
1
+ import { ActualMatchingStatusFilter } from './actualMatchingTypes';
2
+ export interface ActualMatchingStatusFilterBarProps {
3
+ pendingReviewCount: number;
4
+ autoReversedCount: number;
5
+ selectedFilter: ActualMatchingStatusFilter;
6
+ onFilterChange: (filter: ActualMatchingStatusFilter) => void;
7
+ }
8
+ declare function ActualMatchingStatusFilterBar({ pendingReviewCount, autoReversedCount, selectedFilter, onFilterChange, }: Readonly<ActualMatchingStatusFilterBarProps>): import("react/jsx-runtime").JSX.Element;
9
+ export default ActualMatchingStatusFilterBar;
@@ -1,7 +1,7 @@
1
1
  import { Amount, ExpenseAutomationViewSelector, MonthYearPeriod, SortOrder } from '@zeniai/client-epic-state';
2
2
  import { StyledCapsuleThemeType } from '../../../common/StyledCapsule';
3
3
  import { ActualMatchingColumnKey } from './actualMatchingListConfig';
4
- import { ActualMatchingGroupedAccrual, ActualMatchingKpiSummary, ActualMatchingMatch, ActualMatchingRow, ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ExpenseAutomationActualMatchingViewSelector } from './actualMatchingTypes';
4
+ import { ActualMatchingGroupedAccrual, ActualMatchingKpiSummary, ActualMatchingMatch, ActualMatchingRow, ActualMatchingSortKey, ActualMatchingStatusFilter, ActualMatchingTransactionSearchResult, ActualMatchingViewUIState, ExpenseAutomationActualMatchingViewSelector, MatchAndReverseAccrualsParams } from './actualMatchingTypes';
5
5
  export declare const EMPTY_ACTUAL_MATCHING_KPI_SUMMARY: ActualMatchingKpiSummary;
6
6
  export declare const EMPTY_ACTUAL_MATCHING_VIEW: ExpenseAutomationActualMatchingViewSelector;
7
7
  export declare function getActualMatchingFromSelector(selector: ExpenseAutomationViewSelector): ExpenseAutomationActualMatchingViewSelector;
@@ -49,11 +49,19 @@ export declare function getColumnKeyForActualMatchingSortKey(sortKey: ActualMatc
49
49
  export declare function getActualMatchingColumnSortValue(row: ActualMatchingRow, columnKey: ActualMatchingColumnKey): string | number | null;
50
50
  export declare function sortActualMatchingRowsByColumn(rows: ActualMatchingRow[], columnKey: ActualMatchingColumnKey, sortOrder: SortOrder): ActualMatchingRow[];
51
51
  export declare function getUndoReversalAccrualIds(row: Pick<ActualMatchingRow, "accrualId" | "groupedMembers">): string[];
52
- export declare function getMatchedBillTransaction(match: Pick<ActualMatchingMatch, "members" | "transactionType">): {
52
+ export declare function getActualMatchingStatusFilter(uiState: ActualMatchingViewUIState): ActualMatchingStatusFilter;
53
+ export declare function getMatchedBillTransaction(match: Pick<ActualMatchingMatch, "members" | "transactionType"> & {
54
+ leftovers?: ActualMatchingMatch["leftovers"];
55
+ }): {
53
56
  id: string;
54
57
  type: string;
55
58
  } | null;
56
59
  export declare function getUndoReversalAccrualIdsFromMatch(match: Pick<ActualMatchingMatch, "members">): string[];
60
+ /**
61
+ * Confirm the AI suggestion in place: same match-and-reverse body Match New
62
+ * posts, taken from the pending-review stamp instead of a picker.
63
+ */
64
+ export declare function getApproveAndReverseParams(match: Pick<ActualMatchingMatch, "members" | "transactionIntegrationId" | "transactionType">): MatchAndReverseAccrualsParams | null;
57
65
  export declare function getLeftoverWarningTooltip(row: ActualMatchingRow): string;
58
66
  export declare function pruneSelectionToVisibleResults(currentKeys: string[], visibleKeys: ReadonlySet<string>, searchFetchState: string): string[];
59
67
  export declare function nextSelectedTransactionLines(currentKeys: string[], clickedKey: string, results: ActualMatchingTransactionSearchResult[]): string[];
@@ -1,6 +1,11 @@
1
1
  import { FetchState, JEOneTimeAccrual } from '@zeniai/client-epic-state';
2
2
  import { ActualMatchingMatch, ActualMatchingRowKind } from './actualMatchingTypes';
3
+ export type ActualMatchingMatchMethod = "exact" | "fuzzy" | "manual" | "ai";
3
4
  export declare function getMatchServiceMonthsLabel(members: readonly JEOneTimeAccrual[]): string;
5
+ export declare function getMatchMethodKey(match: ActualMatchingMatch): ActualMatchingMatchMethod;
6
+ export declare function getMatchMethodLabel(match: ActualMatchingMatch): string;
7
+ export declare function getWhyThisMatchedCopy(match: ActualMatchingMatch): string;
8
+ export declare function getMatchJeSectionTitle(kind: ActualMatchingRowKind): string;
4
9
  export declare function getMatchSubtitle(match: ActualMatchingMatch): string;
5
10
  export declare function getMatchStatusLabel(kind: ActualMatchingRowKind, labels: {
6
11
  statusAutoReversed: string;
@@ -1,5 +1,7 @@
1
1
  import { ExpenseAutomationActualMatchingSortKey as ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ExpenseAutomationActualMatchingViewUIState as ActualMatchingViewUIState, Amount, FetchStateAndError, ID, JEOneTimeAccrual, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, ZeniDate } from '@zeniai/client-epic-state';
2
2
  export type { ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ActualMatchingViewUIState, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, };
3
+ /** Keep in sync with CES `ActualMatchingStatusFilter`. */
4
+ export type ActualMatchingStatusFilter = "all" | "pending_review" | "auto_reversed";
3
5
  /** Keep in sync with CES `ALL_ACTUAL_MATCHING_IGNORE_REASONS`. */
4
6
  export declare const ALL_ACTUAL_MATCHING_IGNORE_REASONS: readonly ["wrong_bill", "wrong_period", "amount_off", "already_handled", "other_ignore"];
5
7
  export type ActualMatchingIgnoreReasonType = (typeof ALL_ACTUAL_MATCHING_IGNORE_REASONS)[number];
@@ -33,6 +35,7 @@ export type ActualMatchingRow = JEOneTimeAccrual & {
33
35
  leftovers?: ActualMatchingGroupedAccrual[];
34
36
  matchShape?: string;
35
37
  matchSuggestion?: JEOneTimeAccrual["matchSuggestion"] & {
38
+ consumedLineIds?: string[];
36
39
  matchedLineId?: string;
37
40
  matchTier?: string;
38
41
  };
@@ -99,6 +102,7 @@ export interface ExpenseAutomationActualMatchingViewSelector {
99
102
  pendingReview: ActualMatchingRow[];
100
103
  refreshStatus: FetchStateAndError;
101
104
  ignoreStatusByMatchId?: Record<string, FetchStateAndError>;
105
+ undoReversalStatusByMatchId?: Record<string, FetchStateAndError>;
102
106
  reversed: ActualMatchingRow[];
103
107
  uiState: ActualMatchingViewUIState;
104
108
  error?: FetchStateAndError["error"];
@@ -124,9 +128,14 @@ export interface ActualMatchingActionProps {
124
128
  onIgnoreMatchSuggestion: (matchId: string, reason: ActualMatchingIgnoreReasonType, note?: string) => void;
125
129
  onMatchAndReverse: (params: MatchAndReverseAccrualsParams) => void;
126
130
  onOpenMatch: (matchId: string) => void;
131
+ onOpenBill?: (txn: {
132
+ id: string;
133
+ type: string;
134
+ }) => void;
127
135
  onOpenMatchNewModal: (matchId?: string) => void;
128
136
  onSearchMatchAccruals: (query: string, pageToken?: string) => void;
129
137
  onSearchMatchTransactions: (query: string, pageToken?: string) => void;
138
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
130
139
  onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
131
140
  }
132
141
  export declare const MATCH_NEW_FORM = "expenseAutomationMatchNew";
@@ -59,5 +59,5 @@ export interface JESchedulePageProps extends Omit<JESchedulesSectionProps, "jeSc
59
59
  setResetJeAccountSettingsForm: (resetFn: () => void) => void;
60
60
  onNewScheduleFormChange?: (scheduleType: string, formValues: NewScheduleSaveFormValues) => void;
61
61
  }
62
- declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, closeMonth, initialScheduleDetailsMode, initialScheduleType, newAccrualAccountsView, onCreateAccruedSchedule, onCreateOneTimeAccrual, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, onSaveSchedule, onScheduleTypeChange, onSearchBaseTransaction, onViewTransaction, newScheduleLocalData, initialSelectedBaseTransaction, isAccrualEnabled, onNewScheduleFormChange, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, isMatchPanelOpen, isSchedulePanelOpen, matchPanelContent, schedulePanelContent, schedulePendingDiscardConfirmation, setCurrentFooterFormId, setIsCreatingNewSchedule, setIsJeAccountSettingsOpened, onRevertJeSchedule, onToggleCreatedGroupCollapsed, onTogglePendingGroupCollapsed, onUpdateJEScheduleTypeFilter, onUpdateJESchedulesUIState, onClearMatchNewModal, onCloseMatchNewModal, onIgnoreMatchSuggestion, onMatchAndReverse, onOpenMatch, onOpenMatchNewModal, onSearchMatchAccruals, onSearchMatchTransactions, onUpdateActualMatchingUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
62
+ declare function JESchedulePage({ accountListNestedAccountHierarchy, baseTransactionSearchFetchState, baseTransactionSearchResults, classListNestedAccountHierarchy, expenseAutomationViewSelector, currentFooterFormId, isAccountingClassesEnabled, isCreatingNewSchedule, newScheduleSaveStatus, allDepreciationAccountListNestedAccountHierarchy, closeMonth, initialScheduleDetailsMode, initialScheduleType, newAccrualAccountsView, onCreateAccruedSchedule, onCreateOneTimeAccrual, setResetJeAccountSettingsForm, vendorSearchAutoCompleteData, onJESchedulesFormDataChange, onPostJESchedule, handleJeScheduleClick, onOneTimeAccrualClick, onOneTimeAccrualFeedback, onJeAccountSettingsChange, onSaveJeAccountSettingsClick, onSaveSchedule, onScheduleTypeChange, onSearchBaseTransaction, onViewTransaction, newScheduleLocalData, initialSelectedBaseTransaction, isAccrualEnabled, onNewScheduleFormChange, ignoreRecommendedJeSchedule, vendorSearchAutoCompleteActions, isMatchPanelOpen, isSchedulePanelOpen, matchPanelContent, schedulePanelContent, schedulePendingDiscardConfirmation, setCurrentFooterFormId, setIsCreatingNewSchedule, setIsJeAccountSettingsOpened, onRevertJeSchedule, onToggleCreatedGroupCollapsed, onTogglePendingGroupCollapsed, onUpdateJEScheduleTypeFilter, onUpdateJESchedulesUIState, onClearMatchNewModal, onCloseMatchNewModal, onIgnoreMatchSuggestion, onMatchAndReverse, onOpenBill, onOpenMatch, onOpenMatchNewModal, onSearchMatchAccruals, onSearchMatchTransactions, onUndoReversal, onUpdateActualMatchingUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
63
63
  export default JESchedulePage;
@@ -3,7 +3,12 @@ export interface JEGroupSectionHeaderProps {
3
3
  isCollapsed: boolean;
4
4
  title: string;
5
5
  onToggle: () => void;
6
+ /**
7
+ * `badge` is the Review Schedules circle. Matching Design puts the count
8
+ * inline after the title with no ring.
9
+ */
10
+ countAppearance?: "badge" | "plain";
6
11
  subtitle?: string;
7
12
  }
8
- declare function JEGroupSectionHeader({ title, count, isCollapsed, onToggle, subtitle, }: Readonly<JEGroupSectionHeaderProps>): import("react/jsx-runtime").JSX.Element;
13
+ declare function JEGroupSectionHeader({ title, count, countAppearance, isCollapsed, onToggle, subtitle, }: Readonly<JEGroupSectionHeaderProps>): import("react/jsx-runtime").JSX.Element;
9
14
  export default JEGroupSectionHeader;