@zeniai/web-components 4.3.76-beta1MM → 4.3.76-beta3MM

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 (30) hide show
  1. package/dist/{SessionTimeoutPopup-BFuVJadQ.js → SessionTimeoutPopup-B2lRt_Ae.js} +582 -520
  2. package/dist/SessionTimeoutPopup-B2lRt_Ae.js.map +4 -0
  3. package/dist/{SessionTimeoutPopup-aSJLklKt.cjs → SessionTimeoutPopup-SXc6pDEX.cjs} +382 -318
  4. package/dist/SessionTimeoutPopup-SXc6pDEX.cjs.map +4 -0
  5. package/dist/appLocale.d.ts +53 -1
  6. package/dist/cockpit.cjs.js +1 -1
  7. package/dist/cockpit.esm.js +1 -1
  8. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingKpiStrip.d.ts +2 -3
  9. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingList.d.ts +9 -2
  10. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingListRow.d.ts +5 -2
  11. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchDetailPage.d.ts +9 -6
  12. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingPage.d.ts +2 -3
  13. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingStatusFilterBar.d.ts +9 -0
  14. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingHelpers.d.ts +10 -2
  15. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingListConfig.d.ts +1 -1
  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/accrualDetail/JEAccrualFeedbackDialog.d.ts +3 -2
  20. package/dist/components/expenseAutomation/sections/jeSchedules/common/JEGroupSectionHeader.d.ts +6 -1
  21. package/dist/{index-mkcKhCKF.js → index-B4OS9zN1.js} +2 -2
  22. package/dist/{index-mkcKhCKF.js.map → index-B4OS9zN1.js.map} +1 -1
  23. package/dist/{index-lqWp98Z3.cjs → index-BgQJAw4w.cjs} +2 -2
  24. package/dist/{index-lqWp98Z3.cjs.map → index-BgQJAw4w.cjs.map} +1 -1
  25. package/dist/index.cjs.js +1 -1
  26. package/dist/index.esm.js +1 -1
  27. package/dist/strings/strings.d.ts +53 -1
  28. package/package.json +3 -3
  29. package/dist/SessionTimeoutPopup-BFuVJadQ.js.map +0 -4
  30. package/dist/SessionTimeoutPopup-aSJLklKt.cjs.map +0 -4
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/dist/SessionTimeoutPopup-SXc6pDEX.cjs.map
3
+ size: 43410028 bytes
4
+ sha256: 0b580fd9f504a75e05391fe943494fd86a9e17719d7d0bf2da11388cf91c86ad
@@ -1978,6 +1978,11 @@ declare class AppLocale {
1978
1978
  failed: string;
1979
1979
  notification: string;
1980
1980
  };
1981
+ actual_matching_ignore_suggestion: {
1982
+ success: string;
1983
+ failed: string;
1984
+ notification: string;
1985
+ };
1981
1986
  ignore_schedule: {
1982
1987
  success: string;
1983
1988
  failed: string;
@@ -8447,7 +8452,7 @@ declare class AppLocale {
8447
8452
  actualMatching: {
8448
8453
  matchNew: string;
8449
8454
  undoReversal: string;
8450
- continueMatch: string;
8455
+ approveAndReverse: string;
8451
8456
  openBill: string;
8452
8457
  openCharge: string;
8453
8458
  openTransaction: string;
@@ -8462,8 +8467,20 @@ declare class AppLocale {
8462
8467
  estMinutesToClear: string;
8463
8468
  variance: string;
8464
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;
8465
8481
  };
8466
8482
  groups: {
8483
+ pendingReview: string;
8467
8484
  reversed: string;
8468
8485
  };
8469
8486
  groupSubtitles: {
@@ -8481,6 +8498,7 @@ declare class AppLocale {
8481
8498
  accrued: string;
8482
8499
  actual: string;
8483
8500
  variance: string;
8501
+ action: string;
8484
8502
  };
8485
8503
  reversedBy: {
8486
8504
  aiAccountant: string;
@@ -8534,9 +8552,29 @@ declare class AppLocale {
8534
8552
  };
8535
8553
  matchDetail: {
8536
8554
  service: string;
8555
+ servicePeriod: string;
8556
+ billDate: string;
8557
+ matchMethod: string;
8558
+ source: string;
8559
+ sourceJeAgent: string;
8560
+ sourceAttribution: string;
8537
8561
  accrued: string;
8562
+ accruedAmount: string;
8538
8563
  actual: string;
8564
+ actualAmount: string;
8539
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;
8540
8578
  accrualJes: string;
8541
8579
  leftovers: string;
8542
8580
  reversalFailed: string;
@@ -8551,6 +8589,20 @@ declare class AppLocale {
8551
8589
  statusPendingReview: string;
8552
8590
  statusManuallyReversed: string;
8553
8591
  };
8592
+ feedback: {
8593
+ ignoreMatch: {
8594
+ title: string;
8595
+ subtitle: string;
8596
+ submit: string;
8597
+ reasons: {
8598
+ wrong_bill: string;
8599
+ wrong_period: string;
8600
+ amount_off: string;
8601
+ already_handled: string;
8602
+ other_ignore: string;
8603
+ };
8604
+ };
8605
+ };
8554
8606
  };
8555
8607
  newSchedule: {
8556
8608
  title: string;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./SessionTimeoutPopup-aSJLklKt.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-SXc6pDEX.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-BFuVJadQ.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-BFuVJadQ.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-B2lRt_Ae.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-B2lRt_Ae.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%;
@@ -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;
@@ -1,13 +1,20 @@
1
1
  import { SortOrder } from '@zeniai/client-epic-state';
2
2
  import { ActualMatchingRow, ActualMatchingSortKey, ActualMatchingViewUIState } from './actualMatchingTypes';
3
3
  export interface ActualMatchingListProps {
4
+ ignoreStatusByMatchId?: Record<string, {
5
+ fetchState: string;
6
+ }>;
4
7
  pendingReview: ActualMatchingRow[];
5
8
  reversed: ActualMatchingRow[];
6
9
  sortKey?: ActualMatchingSortKey;
7
10
  sortOrder?: SortOrder;
11
+ undoStatusByMatchId?: Record<string, {
12
+ fetchState: string;
13
+ }>;
14
+ onIgnoreMatchSuggestion?: (matchId: string) => void;
8
15
  onOpenMatch: (matchId: string) => void;
9
- onOpenMatchNewModal?: (matchId: string) => void;
16
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
10
17
  onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
11
18
  }
12
- declare function ActualMatchingList({ pendingReview, reversed, 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;
13
20
  export default ActualMatchingList;
@@ -3,9 +3,12 @@ import { ActualMatchingRow } from './actualMatchingTypes';
3
3
  export interface ActualMatchingListRowProps {
4
4
  columns: ActualMatchingColumnKey[];
5
5
  gridTemplateColumns: string;
6
+ isIgnoring?: boolean;
7
+ isUndoing?: boolean;
6
8
  row: ActualMatchingRow;
9
+ onIgnoreMatchSuggestion?: (matchId: string) => void;
7
10
  onOpenMatch: (matchId: string) => void;
8
- onOpenMatchNewModal?: (matchId: string) => void;
11
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
9
12
  }
10
- declare function ActualMatchingListRow({ columns, gridTemplateColumns, row, 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;
11
14
  export default ActualMatchingListRow;
@@ -1,21 +1,24 @@
1
- import { FetchState, MatchAndReverseResult, UndoReversalResult } from '@zeniai/client-epic-state';
2
- import { ActualMatchingMatch } from './actualMatchingTypes';
1
+ import { FetchState, MatchAndReverseAccrualsParams, MatchAndReverseResult, UndoReversalResult } from '@zeniai/client-epic-state';
2
+ import { ActualMatchingIgnoreReasonType, ActualMatchingMatch } from './actualMatchingTypes';
3
3
  export interface ActualMatchingMatchDetailPageProps {
4
4
  detailFetchState: FetchState;
5
5
  refreshStatus: FetchState;
6
+ isIgnoreInFlight?: boolean;
6
7
  isRenderedInPanel?: boolean;
7
8
  isUndoInFlight?: boolean;
9
+ lastMatchResults?: MatchAndReverseResult[];
10
+ lastUndoResults?: UndoReversalResult[];
8
11
  match?: ActualMatchingMatch;
9
12
  onNavigateBack: () => void;
10
13
  onRefresh: () => void;
14
+ isApproveInFlight?: boolean;
15
+ onApproveAndReverse?: (params: MatchAndReverseAccrualsParams) => void;
16
+ onIgnoreMatchSuggestion?: (reason: ActualMatchingIgnoreReasonType, note?: string) => void;
11
17
  onOpenBill?: (txn: {
12
18
  id: string;
13
19
  type: string;
14
20
  }) => void;
15
- onContinueMatch?: () => void;
16
21
  onUndoReversal?: (accrualIds: string[]) => void;
17
- lastMatchResults?: MatchAndReverseResult[];
18
- lastUndoResults?: UndoReversalResult[];
19
22
  }
20
- declare function ActualMatchingMatchDetailPage({ detailFetchState, isRenderedInPanel, isUndoInFlight, match, onNavigateBack, onRefresh, onOpenBill, onContinueMatch, onUndoReversal, lastMatchResults, lastUndoResults, refreshStatus, }: Readonly<ActualMatchingMatchDetailPageProps>): import("react/jsx-runtime").JSX.Element;
23
+ 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;
21
24
  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, 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, 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,5 +1,5 @@
1
1
  import { ActualMatchingSortKey } from './actualMatchingTypes';
2
- export type ActualMatchingColumnKey = "received" | "vendor" | "type" | "reversedBy" | "service" | "reverses" | "matchTier" | "accrued" | "actual" | "variance";
2
+ export type ActualMatchingColumnKey = "received" | "vendor" | "type" | "reversedBy" | "service" | "reverses" | "matchTier" | "accrued" | "actual" | "variance" | "action";
3
3
  export interface ActualMatchingHeaderItem {
4
4
  key: ActualMatchingColumnKey;
5
5
  sortable: boolean;
@@ -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,10 @@
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";
5
+ /** Keep in sync with CES `ALL_ACTUAL_MATCHING_IGNORE_REASONS`. */
6
+ export declare const ALL_ACTUAL_MATCHING_IGNORE_REASONS: readonly ["wrong_bill", "wrong_period", "amount_off", "already_handled", "other_ignore"];
7
+ export type ActualMatchingIgnoreReasonType = (typeof ALL_ACTUAL_MATCHING_IGNORE_REASONS)[number];
3
8
  /**
4
9
  * WC-only Actual Matching types (page tab, list row extensions, form, handlers).
5
10
  * CES-owned result/params types are imported from `@zeniai/client-epic-state`.
@@ -95,6 +100,8 @@ export interface ExpenseAutomationActualMatchingViewSelector {
95
100
  matchModal: ActualMatchingMatchModalView;
96
101
  pendingReview: ActualMatchingRow[];
97
102
  refreshStatus: FetchStateAndError;
103
+ ignoreStatusByMatchId?: Record<string, FetchStateAndError>;
104
+ undoReversalStatusByMatchId?: Record<string, FetchStateAndError>;
98
105
  reversed: ActualMatchingRow[];
99
106
  uiState: ActualMatchingViewUIState;
100
107
  error?: FetchStateAndError["error"];
@@ -117,11 +124,13 @@ export interface ActualMatchingMatch {
117
124
  export interface ActualMatchingActionProps {
118
125
  onClearMatchNewModal: () => void;
119
126
  onCloseMatchNewModal: () => void;
127
+ onIgnoreMatchSuggestion: (matchId: string, reason: ActualMatchingIgnoreReasonType, note?: string) => void;
120
128
  onMatchAndReverse: (params: MatchAndReverseAccrualsParams) => void;
121
129
  onOpenMatch: (matchId: string) => void;
122
130
  onOpenMatchNewModal: (matchId?: string) => void;
123
131
  onSearchMatchAccruals: (query: string, pageToken?: string) => void;
124
132
  onSearchMatchTransactions: (query: string, pageToken?: string) => void;
133
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
125
134
  onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
126
135
  }
127
136
  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, 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, onOpenMatch, onOpenMatchNewModal, onSearchMatchAccruals, onSearchMatchTransactions, onUndoReversal, onUpdateActualMatchingUIState, }: Readonly<JESchedulePageProps>): import("react/jsx-runtime").JSX.Element;
63
63
  export default JESchedulePage;
@@ -1,6 +1,7 @@
1
1
  import { JEScheduleIgnoreReasonType, JEScheduleRevertReasonType, OneTimeAccrualIgnoreReasonType, OneTimeAccrualRevertReasonType } from '@zeniai/client-epic-state';
2
- export type JEAccrualFeedbackMode = "skip" | "revert" | "ignoreSchedule" | "revertSchedule";
3
- export type JEAccrualFeedbackReason = JEScheduleIgnoreReasonType | JEScheduleRevertReasonType | OneTimeAccrualIgnoreReasonType | OneTimeAccrualRevertReasonType;
2
+ import { ActualMatchingIgnoreReasonType } from '../../actualMatching/actualMatchingTypes';
3
+ export type JEAccrualFeedbackMode = "skip" | "revert" | "ignoreSchedule" | "revertSchedule" | "ignoreMatchSuggestion";
4
+ export type JEAccrualFeedbackReason = JEScheduleIgnoreReasonType | JEScheduleRevertReasonType | OneTimeAccrualIgnoreReasonType | OneTimeAccrualRevertReasonType | ActualMatchingIgnoreReasonType;
4
5
  export interface JEAccrualFeedbackDialogProps {
5
6
  /** Already formatted — interpolated into the subtitle. */
6
7
  amount: string;
@@ -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;