@zeniai/web-components 4.4.0-beta0ND → 4.4.0-beta1MM

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 (34) hide show
  1. package/dist/{SessionTimeoutPopup-BuQSdIY7.cjs → SessionTimeoutPopup-h6LP0Cvm.cjs} +912 -740
  2. package/dist/SessionTimeoutPopup-h6LP0Cvm.cjs.map +4 -0
  3. package/dist/{SessionTimeoutPopup-aKB8G3Xe.js → SessionTimeoutPopup-wFuofhYk.js} +1413 -1251
  4. package/dist/SessionTimeoutPopup-wFuofhYk.js.map +4 -0
  5. package/dist/appLocale.d.ts +68 -2
  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 +6 -3
  11. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingListRow.d.ts +5 -2
  12. package/dist/components/expenseAutomation/sections/actualMatching/ActualMatchingMatchDetailPage.d.ts +18 -4
  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 +12 -23
  16. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingListConfig.d.ts +1 -1
  17. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingMatchDetailHelpers.d.ts +5 -1
  18. package/dist/components/expenseAutomation/sections/actualMatching/actualMatchingTypes.d.ts +15 -22
  19. package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewHelpers.d.ts +13 -0
  20. package/dist/components/expenseAutomation/sections/actualMatching/matchNewPreviewJeColumns.d.ts +9 -0
  21. package/dist/components/expenseAutomation/sections/jeSchedules/JESchedulePage.d.ts +1 -1
  22. package/dist/components/expenseAutomation/sections/jeSchedules/accrualDetail/JEAccrualFeedbackDialog.d.ts +3 -2
  23. package/dist/components/expenseAutomation/sections/jeSchedules/common/JEGroupSectionHeader.d.ts +6 -1
  24. package/dist/components/expenseAutomation/sections/jeSchedules/common/JEScheduleNewEntryButton.d.ts +7 -1
  25. package/dist/{index-b6EWuQqL.js → index-BdHbXF-y.js} +2 -2
  26. package/dist/{index-b6EWuQqL.js.map → index-BdHbXF-y.js.map} +1 -1
  27. package/dist/{index-BZhX3gUM.cjs → index-Cn0tV9rG.cjs} +2 -2
  28. package/dist/{index-BZhX3gUM.cjs.map → index-Cn0tV9rG.cjs.map} +1 -1
  29. package/dist/index.cjs.js +1 -1
  30. package/dist/index.esm.js +1 -1
  31. package/dist/strings/strings.d.ts +68 -2
  32. package/package.json +66 -3
  33. package/dist/SessionTimeoutPopup-BuQSdIY7.cjs.map +0 -4
  34. package/dist/SessionTimeoutPopup-aKB8G3Xe.js.map +0 -4
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/dist/SessionTimeoutPopup-wFuofhYk.js.map
3
+ size: 43474487 bytes
4
+ sha256: b449f4c42f4984367929ae8e861ce7f963be70448e4a869d5a70ee748972d832
@@ -1984,6 +1984,11 @@ declare class AppLocale {
1984
1984
  failed: string;
1985
1985
  notification: string;
1986
1986
  };
1987
+ actual_matching_ignore_suggestion: {
1988
+ success: string;
1989
+ failed: string;
1990
+ notification: string;
1991
+ };
1987
1992
  ignore_schedule: {
1988
1993
  success: string;
1989
1994
  failed: string;
@@ -8471,8 +8476,9 @@ declare class AppLocale {
8471
8476
  };
8472
8477
  actualMatching: {
8473
8478
  matchNew: string;
8479
+ matchNewDescription: string;
8474
8480
  undoReversal: string;
8475
- continueMatch: string;
8481
+ approveAndReverse: string;
8476
8482
  openBill: string;
8477
8483
  openCharge: string;
8478
8484
  openTransaction: string;
@@ -8487,8 +8493,20 @@ declare class AppLocale {
8487
8493
  estMinutesToClear: string;
8488
8494
  variance: string;
8489
8495
  varianceFooter: string;
8496
+ hover: {
8497
+ actualsReceived: string;
8498
+ pendingReview: string;
8499
+ autoReversed: string;
8500
+ variance: string;
8501
+ };
8502
+ };
8503
+ statusFilter: {
8504
+ all: string;
8505
+ pendingReview: string;
8506
+ autoReversed: string;
8490
8507
  };
8491
8508
  groups: {
8509
+ pendingReview: string;
8492
8510
  reversed: string;
8493
8511
  };
8494
8512
  groupSubtitles: {
@@ -8506,6 +8524,7 @@ declare class AppLocale {
8506
8524
  accrued: string;
8507
8525
  actual: string;
8508
8526
  variance: string;
8527
+ action: string;
8509
8528
  };
8510
8529
  reversedBy: {
8511
8530
  aiAccountant: string;
@@ -8534,6 +8553,7 @@ declare class AppLocale {
8534
8553
  leftTitle: string;
8535
8554
  rightTitle: string;
8536
8555
  selectedLabel: string;
8556
+ selectedCount: string;
8537
8557
  leftSearchPlaceholder: string;
8538
8558
  rightSearchPlaceholder: string;
8539
8559
  emptyLeft: string;
@@ -8542,10 +8562,21 @@ declare class AppLocale {
8542
8562
  maxAccruals: string;
8543
8563
  conflict: string;
8544
8564
  vendorLock: string;
8545
- selectLineHint: string;
8565
+ accrualSingular: string;
8566
+ accrualPlural: string;
8567
+ accrualToClear: string;
8568
+ noMatchingAccrual: string;
8569
+ stepAccruals: string;
8570
+ stepReview: string;
8571
+ guidePickTxnSubtitle: string;
8572
+ guidePickAccrualTitle: string;
8573
+ guidePickAccrualSubtitle: string;
8574
+ footerPickAccrual: string;
8546
8575
  previewEmpty: string;
8547
8576
  accrualJeTitle: string;
8577
+ accrualJeTitlePlural: string;
8548
8578
  reversalJeTitle: string;
8579
+ reversalJeTitlePlural: string;
8549
8580
  reversalJeNote: string;
8550
8581
  transactionMatchedTitle: string;
8551
8582
  columnDate: string;
@@ -8555,13 +8586,34 @@ declare class AppLocale {
8555
8586
  lastDayOfMonth: string;
8556
8587
  reversesLabel: string;
8557
8588
  vsAccrued: string;
8589
+ vsAccruedSplitNote: string;
8558
8590
  accruedExpensesFallback: string;
8559
8591
  };
8560
8592
  matchDetail: {
8561
8593
  service: string;
8594
+ servicePeriod: string;
8595
+ billDate: string;
8596
+ matchMethod: string;
8597
+ source: string;
8598
+ sourceJeAgent: string;
8599
+ sourceAttribution: string;
8562
8600
  accrued: string;
8601
+ accruedAmount: string;
8563
8602
  actual: string;
8603
+ actualAmount: string;
8564
8604
  variance: string;
8605
+ whyThisMatched: string;
8606
+ whyExact: string;
8607
+ whyFuzzy: string;
8608
+ whyManual: string;
8609
+ whyAi: string;
8610
+ matchMethodExact: string;
8611
+ matchMethodFuzzy: string;
8612
+ matchMethodManual: string;
8613
+ matchMethodAi: string;
8614
+ jePostingDate: string;
8615
+ pendingReversalJe: string;
8616
+ reversedJe: string;
8565
8617
  accrualJes: string;
8566
8618
  leftovers: string;
8567
8619
  reversalFailed: string;
@@ -8576,6 +8628,20 @@ declare class AppLocale {
8576
8628
  statusPendingReview: string;
8577
8629
  statusManuallyReversed: string;
8578
8630
  };
8631
+ feedback: {
8632
+ ignoreMatch: {
8633
+ title: string;
8634
+ subtitle: string;
8635
+ submit: string;
8636
+ reasons: {
8637
+ wrong_bill: string;
8638
+ wrong_period: string;
8639
+ amount_off: string;
8640
+ already_handled: string;
8641
+ other_ignore: string;
8642
+ };
8643
+ };
8644
+ };
8579
8645
  };
8580
8646
  newSchedule: {
8581
8647
  title: string;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./SessionTimeoutPopup-BuQSdIY7.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-h6LP0Cvm.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{iY as e,fq as t,ju 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,kh as y,jX 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,kj as j,bx as T,j$ as I,kf 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,jK 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,jr as ne,f3 as re,c2 as ie,i9 as ae,ia as se,jP as le,hQ as de,hL as ce,hS as pe,js as he,a9 as me,i$ as ue,eD as ge,jS as ye,h_ as xe,j5 as fe,hW as be,ka as we,ke as Ce,jT as ve,kd as $e,j7 as ke,iT as Se,hw as je,j4 as Te,j8 as Ie,fh as Pe,fW as Re,eW as De,j_ 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,jv 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,iZ 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,jZ 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,iS 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,j3 as io,g7 as ao,gd as so,gc as lo,bO as co,jl 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,jV as Do,fc as Oo,dn as Ao,k5 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,iX as Zo,bX as Qo,kg 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,jJ as cn,jQ as pn,jY as hn,bW as mn,ad as un,ae as gn,k0 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,jO as Bn,d$ as Hn,jb as Wn,je as Un,jc as _n,jd as Gn,jf as Kn,j9 as qn,ja 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-aKB8G3Xe.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,iR as fp,iU as bp,iV as wp,iW as Cp,i_ as vp,j0 as $p,j1 as kp,j2 as Sp,j6 as jp,jg as Tp,jh as Ip,ji as Pp,jj as Rp,jk as Dp,jm as Op,jn as Ap,jo as Ep,jp as Lp,jq as Mp,jt 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,jH as Yp,jI as Zp,jL as Qp,jM as Xp,jN as Jp,jR as eh,jU as th,jW as oh,k1 as nh,k2 as rh,k3 as ih,k4 as ah,k6 as sh,k7 as lh,k8 as dh,k9 as ch,kb as ph,kc as hh,ki as mh,kk as uh,kl as gh}from"./SessionTimeoutPopup-aKB8G3Xe.js";import*as yh from"react";import xh,{useEffect as fh,useState as bh,useMemo as wh,useCallback as Ch,useContext as vh,useRef as $h,forwardRef as kh,Fragment as Sh,memo as jh,createContext as Th,Suspense as Ih,createElement as Ph,Component as Rh}from"react";import Dh from"@emotion/styled";import{default as Oh}from"@emotion/styled";import{useInboxNotificationThread as Ah,useInboxNotifications as Eh,useMarkInboxNotificationAsRead as Lh,RoomProvider as Mh,useCreateThread as Nh}from"@liveblocks/react";import{zeniDate as zh,stringToUnion as Vh,stringToUnionStrict as Fh,isAllowedValueWithCode as Bh,dateNow as Hh,canSendMonthEndEmailReport as Wh,shouldEnableCalendarPickerForLastReportSent as Uh,toManagementSortKeyType as _h,toUserRoleType as Gh,toTaskManagerSortKeyType as Kh,allTaskPriority as qh,allTaskStatus as Yh,getUserName as Zh,toHealthSortKeyType as Qh,isCompanyRunwayInfinite as Xh,companyHealthMetricDropDownOptions as Jh,hasCompanyHealthMetricFormFieldChanged as em,toSubscriptionSortKeyType as tm,toPortfolioSortKeyType as om,getAllowedOperationsForStatus as nm,toOnboardingSortKeyType as rm,isTenantBankingOnly as im,ALL_ACCOUNTING_CONNECTION_CREATION_MODES as am,toProductTypeStrict as sm,mapAttachmentFileToAttachmentFilePayload as lm,SUPPORTED_ATTACHMENT_FILE_TYPES as dm,toSupportedAttachmentFileType as cm,getAttachmentFileIdByFileName as pm,dateFromYearMonthDate as hm,getBusinessDayOfDate as mm,toReviewColumnKeyType as um,getAuditWarningsCount as gm,getUserFromAllUsers as ym}from"@zeniai/client-epic-state";import{buildInvoicingEntityPath as xm,isInvoicingEntityLinkable as fm}from"@zeniai/client-epic-state";import{InboxNotification as bm}from"@liveblocks/react-ui";import{css as wm,keyframes as Cm}from"@emotion/react";import{createPortal as vm}from"react-dom";import{Composer as $m,useComposer as km}from"@liveblocks/react-ui/primitives";import{useUser as Sm}from"@liveblocks/react/suspense";const jm=({inboxNotification:t,onNotificationClick:o})=>{const n=Ah(t.id),r=n.metadata.entityType.split("."),i=n.metadata.isGlobalComment&&2===r.length;/* @__PURE__ */
1
+ import{iY as e,fq as t,ju 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,kh as y,jX 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,kj as j,bx as T,j$ as I,kf 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,jK 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,jr as ne,f3 as re,c2 as ie,i9 as ae,ia as se,jP as le,hQ as de,hL as ce,hS as pe,js as he,a9 as me,i$ as ue,eD as ge,jS as ye,h_ as xe,j5 as fe,hW as be,ka as we,ke as Ce,jT as ve,kd as $e,j7 as ke,iT as Se,hw as je,j4 as Te,j8 as Ie,fh as Pe,fW as Re,eW as De,j_ 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,jv 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,iZ 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,jZ 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,iS 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,j3 as io,g7 as ao,gd as so,gc as lo,bO as co,jl 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,jV as Do,fc as Oo,dn as Ao,k5 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,iX as Zo,bX as Qo,kg 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,jJ as cn,jQ as pn,jY as hn,bW as mn,ad as un,ae as gn,k0 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,jO as Bn,d$ as Hn,jb as Wn,je as Un,jc as _n,jd as Gn,jf as Kn,j9 as qn,ja 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-wFuofhYk.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,iR as fp,iU as bp,iV as wp,iW as Cp,i_ as vp,j0 as $p,j1 as kp,j2 as Sp,j6 as jp,jg as Tp,jh as Ip,ji as Pp,jj as Rp,jk as Dp,jm as Op,jn as Ap,jo as Ep,jp as Lp,jq as Mp,jt 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,jH as Yp,jI as Zp,jL as Qp,jM as Xp,jN as Jp,jR as eh,jU as th,jW as oh,k1 as nh,k2 as rh,k3 as ih,k4 as ah,k6 as sh,k7 as lh,k8 as dh,k9 as ch,kb as ph,kc as hh,ki as mh,kk as uh,kl as gh}from"./SessionTimeoutPopup-wFuofhYk.js";import*as yh from"react";import xh,{useEffect as fh,useState as bh,useMemo as wh,useCallback as Ch,useContext as vh,useRef as $h,forwardRef as kh,Fragment as Sh,memo as jh,createContext as Th,Suspense as Ih,createElement as Ph,Component as Rh}from"react";import Dh from"@emotion/styled";import{default as Oh}from"@emotion/styled";import{useInboxNotificationThread as Ah,useInboxNotifications as Eh,useMarkInboxNotificationAsRead as Lh,RoomProvider as Mh,useCreateThread as Nh}from"@liveblocks/react";import{zeniDate as zh,stringToUnion as Vh,stringToUnionStrict as Fh,isAllowedValueWithCode as Bh,dateNow as Hh,canSendMonthEndEmailReport as Wh,shouldEnableCalendarPickerForLastReportSent as Uh,toManagementSortKeyType as _h,toUserRoleType as Gh,toTaskManagerSortKeyType as Kh,allTaskPriority as qh,allTaskStatus as Yh,getUserName as Zh,toHealthSortKeyType as Qh,isCompanyRunwayInfinite as Xh,companyHealthMetricDropDownOptions as Jh,hasCompanyHealthMetricFormFieldChanged as em,toSubscriptionSortKeyType as tm,toPortfolioSortKeyType as om,getAllowedOperationsForStatus as nm,toOnboardingSortKeyType as rm,isTenantBankingOnly as im,ALL_ACCOUNTING_CONNECTION_CREATION_MODES as am,toProductTypeStrict as sm,mapAttachmentFileToAttachmentFilePayload as lm,SUPPORTED_ATTACHMENT_FILE_TYPES as dm,toSupportedAttachmentFileType as cm,getAttachmentFileIdByFileName as pm,dateFromYearMonthDate as hm,getBusinessDayOfDate as mm,toReviewColumnKeyType as um,getAuditWarningsCount as gm,getUserFromAllUsers as ym}from"@zeniai/client-epic-state";import{buildInvoicingEntityPath as xm,isInvoicingEntityLinkable as fm}from"@zeniai/client-epic-state";import{InboxNotification as bm}from"@liveblocks/react-ui";import{css as wm,keyframes as Cm}from"@emotion/react";import{createPortal as vm}from"react-dom";import{Composer as $m,useComposer as km}from"@liveblocks/react-ui/primitives";import{useUser as Sm}from"@liveblocks/react/suspense";const jm=({inboxNotification:t,onNotificationClick:o})=>{const n=Ah(t.id),r=n.metadata.entityType.split("."),i=n.metadata.isGlobalComment&&2===r.length;/* @__PURE__ */
2
2
  return e.jsx(Tm,{isClickable:i,isUnRead:null==t.readAt,onClick:()=>{o(n.metadata,n.id)},children:/* @__PURE__ */e.jsx(bm,{inboxNotification:t,kinds:{thread:t=>/* @__PURE__ */e.jsx(bm.Thread,{...t,showRoomName:!0})}})})},Tm=Dh.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;
@@ -1,13 +1,16 @@
1
- import { SortOrder } from '@zeniai/client-epic-state';
1
+ import { FetchStateAndError, SortOrder } from '@zeniai/client-epic-state';
2
2
  import { ActualMatchingRow, ActualMatchingSortKey, ActualMatchingViewUIState } from './actualMatchingTypes';
3
3
  export interface ActualMatchingListProps {
4
4
  pendingReview: ActualMatchingRow[];
5
5
  reversed: ActualMatchingRow[];
6
+ ignoreStatusByMatchId?: Record<string, FetchStateAndError>;
6
7
  sortKey?: ActualMatchingSortKey;
7
8
  sortOrder?: SortOrder;
9
+ undoStatusByMatchId?: Record<string, FetchStateAndError>;
8
10
  onOpenMatch: (matchId: string) => void;
9
- onOpenMatchNewModal?: (matchId: string) => void;
11
+ onIgnoreMatchSuggestion?: (matchId: string) => void;
12
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
10
13
  onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
11
14
  }
12
- declare function ActualMatchingList({ pendingReview, reversed, onOpenMatch, onOpenMatchNewModal, onUpdateActualMatchingUIState, sortKey, sortOrder, }: Readonly<ActualMatchingListProps>): import("react/jsx-runtime").JSX.Element;
15
+ declare function ActualMatchingList({ ignoreStatusByMatchId, pendingReview, reversed, onIgnoreMatchSuggestion, onOpenMatch, onUndoReversal, onUpdateActualMatchingUIState, sortKey, sortOrder, undoStatusByMatchId, }: Readonly<ActualMatchingListProps>): import("react/jsx-runtime").JSX.Element;
13
16
  export default ActualMatchingList;
@@ -4,8 +4,11 @@ export interface ActualMatchingListRowProps {
4
4
  columns: ActualMatchingColumnKey[];
5
5
  gridTemplateColumns: string;
6
6
  row: ActualMatchingRow;
7
+ isIgnoring?: boolean;
8
+ isUndoing?: boolean;
7
9
  onOpenMatch: (matchId: string) => void;
8
- onOpenMatchNewModal?: (matchId: string) => void;
10
+ onIgnoreMatchSuggestion?: (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,8 +1,10 @@
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
+ isApproveInFlight?: boolean;
7
+ isIgnoreInFlight?: boolean;
6
8
  isRenderedInPanel?: boolean;
7
9
  isUndoInFlight?: boolean;
8
10
  lastMatchResults?: MatchAndReverseResult[];
@@ -10,12 +12,24 @@ export interface ActualMatchingMatchDetailPageProps {
10
12
  match?: ActualMatchingMatch;
11
13
  onNavigateBack: () => void;
12
14
  onRefresh: () => void;
13
- onContinueMatch?: () => void;
15
+ onApproveAndReverse?: (params: MatchAndReverseAccrualsParams) => void;
16
+ onIgnoreMatchSuggestion?: (reason: ActualMatchingIgnoreReasonType, note?: string) => void;
14
17
  onOpenBill?: (txn: {
15
18
  id: string;
16
19
  type: string;
17
20
  }) => void;
18
21
  onUndoReversal?: (accrualIds: string[]) => void;
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
+ 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;
21
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, 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
+ reversedCount: number;
5
+ selectedFilter: ActualMatchingStatusFilter;
6
+ onFilterChange: (filter: ActualMatchingStatusFilter) => void;
7
+ }
8
+ declare function ActualMatchingStatusFilterBar({ pendingReviewCount, reversedCount, selectedFilter, onFilterChange, }: Readonly<ActualMatchingStatusFilterBarProps>): import("react/jsx-runtime").JSX.Element;
9
+ export default ActualMatchingStatusFilterBar;
@@ -1,7 +1,7 @@
1
- import { Amount, ExpenseAutomationViewSelector, MonthYearPeriod, SortOrder } from '@zeniai/client-epic-state';
1
+ import { Amount, ExpenseAutomationViewSelector, 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;
@@ -36,11 +36,8 @@ export declare function isSameMatchVendor(transaction: {
36
36
  }): boolean;
37
37
  export declare function getAccruedDisplayAmount(row: ActualMatchingRow): Amount;
38
38
  export declare function getActualDisplayAmount(row: ActualMatchingRow): Amount | undefined;
39
- export declare function sumRowDisplayAmount(rows: ActualMatchingRow[]): Amount;
40
39
  export declare function getActualMatchingDisplayCurrency(rows: ActualMatchingRow[]): Amount;
41
40
  export declare function formatKpiAmount(amount: number, currency: Amount): string;
42
- export declare function formatActualMatchingKpiMonth(period: MonthYearPeriod): string;
43
- export declare function formatGroupAmountSubtitle(template: string, amount: Amount): string;
44
41
  export declare function isAiCreatedAccrual(row: ActualMatchingRow): boolean;
45
42
  export declare function isHumanReversedRow(row: ActualMatchingRow): boolean;
46
43
  export declare function isAiReversedBy(row: ActualMatchingRow): boolean;
@@ -49,28 +46,20 @@ export declare function getColumnKeyForActualMatchingSortKey(sortKey: ActualMatc
49
46
  export declare function getActualMatchingColumnSortValue(row: ActualMatchingRow, columnKey: ActualMatchingColumnKey): string | number | null;
50
47
  export declare function sortActualMatchingRowsByColumn(rows: ActualMatchingRow[], columnKey: ActualMatchingColumnKey, sortOrder: SortOrder): ActualMatchingRow[];
51
48
  export declare function getUndoReversalAccrualIds(row: Pick<ActualMatchingRow, "accrualId" | "groupedMembers">): string[];
52
- export declare function getMatchedBillTransaction(match: Pick<ActualMatchingMatch, "members" | "transactionType">): {
49
+ export declare function getActualMatchingStatusFilter(uiState: ActualMatchingViewUIState): ActualMatchingStatusFilter;
50
+ export declare function getMatchedBillTransaction(match: Pick<ActualMatchingMatch, "members" | "transactionType"> & {
51
+ leftovers?: ActualMatchingMatch["leftovers"];
52
+ transactionIntegrationId?: string;
53
+ }): {
53
54
  id: string;
54
55
  type: string;
55
56
  } | null;
56
57
  export declare function getUndoReversalAccrualIdsFromMatch(match: Pick<ActualMatchingMatch, "members">): string[];
58
+ /**
59
+ * Confirm the AI suggestion in place: same match-and-reverse body Match New
60
+ * posts, taken from the pending-review stamp instead of a picker.
61
+ */
62
+ export declare function getApproveAndReverseParams(match: Pick<ActualMatchingMatch, "members" | "transactionIntegrationId" | "transactionType">): MatchAndReverseAccrualsParams | null;
57
63
  export declare function getLeftoverWarningTooltip(row: ActualMatchingRow): string;
58
64
  export declare function pruneSelectionToVisibleResults(currentKeys: string[], visibleKeys: ReadonlySet<string>, searchFetchState: string): string[];
59
65
  export declare function nextSelectedTransactionLines(currentKeys: string[], clickedKey: string, results: ActualMatchingTransactionSearchResult[]): string[];
60
- export declare function pickPrefillTransactionLines(results: ActualMatchingTransactionSearchResult[], prefill?: {
61
- actualAmount?: number;
62
- consumedLineIds?: string[];
63
- matchedLineId?: string;
64
- matchedTransactionId?: string;
65
- }): string[];
66
- export declare function pickPrefillTransactionLine(results: ActualMatchingTransactionSearchResult[], prefill?: {
67
- actualAmount?: number;
68
- matchedLineId?: string;
69
- matchedTransactionId?: string;
70
- }): string | null;
71
- export declare function shouldPromptSelectMatchLine({ isTxnSearchComplete, lineCount, openedFromMatchId, selectedLineKey, }: {
72
- isTxnSearchComplete: boolean;
73
- lineCount: number;
74
- selectedLineKey: string | null;
75
- openedFromMatchId?: string;
76
- }): boolean;
@@ -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,7 +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;
4
- export declare function getMatchSubtitle(match: ActualMatchingMatch): 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;
5
9
  export declare function getMatchStatusLabel(kind: ActualMatchingRowKind, labels: {
6
10
  statusAutoReversed: string;
7
11
  statusManuallyReversed: string;
@@ -1,36 +1,29 @@
1
- import { ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingRow, ActualMatchingRowKind, ExpenseAutomationActualMatchingSortKey as ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ExpenseAutomationActualMatchingViewUIState as ActualMatchingViewUIState, Amount, ExpenseAutomationActualMatchingViewSelector, ID, JEOneTimeAccrual, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus } from '@zeniai/client-epic-state';
2
- export type { ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingRow, ActualMatchingRowKind, ActualMatchingSortKey, ActualMatchingTransactionSearchResult, ActualMatchingViewUIState, ExpenseAutomationActualMatchingViewSelector, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, };
1
+ import { ActualMatchingIgnoreReasonType, ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingMatchView, ActualMatchingRow, ActualMatchingRowKind, ActualMatchingTransactionSearchResult, ExpenseAutomationActualMatchingSortKey as ActualMatchingSortKey, ExpenseAutomationActualMatchingStatusFilter as ActualMatchingStatusFilter, ExpenseAutomationActualMatchingViewSelector, ExpenseAutomationActualMatchingViewUIState as ActualMatchingViewUIState, FetchStateAndError, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, ALL_ACTUAL_MATCHING_IGNORE_REASONS, parseActualMatchingMatchId, toActualMatchingIgnoreReasonType } from '@zeniai/client-epic-state';
2
+ export type { ActualMatchingIgnoreReasonType, ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingRow, ActualMatchingRowKind, ActualMatchingSortKey, ActualMatchingStatusFilter, ActualMatchingTransactionSearchResult, ActualMatchingViewUIState, ExpenseAutomationActualMatchingViewSelector, FetchStateAndError, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, };
3
+ export type ActualMatchingMatch = ActualMatchingMatchView;
4
+ export type ActualMatchingGroupedAccrual = NonNullable<ActualMatchingRow["groupedMembers"]>[number];
5
+ export { ALL_ACTUAL_MATCHING_IGNORE_REASONS, parseActualMatchingMatchId, toActualMatchingIgnoreReasonType, };
3
6
  /**
4
- * WC-only Actual Matching types (page tab, list row extras, form, handlers).
5
- * CES owns the view selector, row, KPI, and match-modal shapes — re-exported
6
- * above so stories/mocks stay assignable to `ExpenseAutomationViewSelector`.
7
+ * WC-only Actual Matching types (page tab, form, handlers).
8
+ * CES-owned row / KPI / modal / ignore types are re-exported from
9
+ * `@zeniai/client-epic-state`.
7
10
  */
8
11
  export declare const ACTUAL_MATCHING_PAGE_TAB: "actual_matching";
9
12
  export type ActualMatchingPageTab = typeof ACTUAL_MATCHING_PAGE_TAB;
10
- export type ActualMatchingGroupedAccrual = NonNullable<ActualMatchingRow["groupedMembers"]>[number];
11
- export interface ActualMatchingMatch {
12
- accruedAmount: Amount;
13
- actualAmount: Amount;
14
- kind: ActualMatchingRowKind;
15
- matchId: string;
16
- members: JEOneTimeAccrual[];
17
- transactionIntegrationId: ID;
18
- transactionType: string;
19
- leftovers?: JEOneTimeAccrual[];
20
- matchShape?: string;
21
- matchTier?: string;
22
- transactionDate?: string;
23
- vendorId?: ID;
24
- vendorName?: string;
25
- }
26
13
  export interface ActualMatchingActionProps {
27
14
  onClearMatchNewModal: () => void;
28
15
  onCloseMatchNewModal: () => void;
16
+ onIgnoreMatchSuggestion: (matchId: string, reason: ActualMatchingIgnoreReasonType, note?: string) => void;
29
17
  onMatchAndReverse: (params: MatchAndReverseAccrualsParams) => void;
30
18
  onOpenMatch: (matchId: string) => void;
31
- onOpenMatchNewModal: (matchId?: string) => void;
19
+ onOpenMatchNewModal: () => void;
32
20
  onSearchMatchAccruals: (query: string, pageToken?: string) => void;
33
21
  onSearchMatchTransactions: (query: string, pageToken?: string) => void;
22
+ onOpenBill?: (txn: {
23
+ id: string;
24
+ type: string;
25
+ }) => void;
26
+ onUndoReversal?: (matchId: string, accrualIds: string[]) => void;
34
27
  onUpdateActualMatchingUIState?: (uiState: Partial<ActualMatchingViewUIState>) => void;
35
28
  }
36
29
  export declare const MATCH_NEW_FORM = "expenseAutomationMatchNew";
@@ -4,9 +4,22 @@ export declare function formatServiceMonthLabel(serviceMonth: string): string;
4
4
  export declare function formatAccrualJeDate(serviceMonth: string, lastDayLabel: string): string;
5
5
  export declare function formatJeShortDate(dateValue: string): string;
6
6
  export declare function formatReversalJeDate(reversalPostingDate?: ZeniDate): string;
7
+ /** Intended or posted QBO TxnDate of the reversal JE — not the matched bill date. */
8
+ export declare function reversalJeDateFromAccrual(accrual: Pick<JEOneTimeAccrual, "actualReversalPostDate" | "expectedReversalDate" | "reversalPostingDate">): ZeniDate | undefined;
7
9
  export declare function sumAccruedAmount(accruals: readonly JEOneTimeAccrual[]): number;
8
10
  export declare function variancePercent(transactionAmount: number, accruedAmount: number): number | null;
9
11
  export declare function uniqueServiceMonthLabel(accruals: readonly JEOneTimeAccrual[]): string | null;
12
+ export declare function transactionListMeta(transaction: Pick<ActualMatchingTransactionSearchResult, "transactionDate" | "transactionMemo">, dateLabel: string): {
13
+ dateLabel: string;
14
+ memo: string;
15
+ monthLabel: string;
16
+ };
10
17
  export declare function transactionMatchLabel(transaction: ActualMatchingTransactionSearchResult, accruals: readonly JEOneTimeAccrual[]): string;
11
18
  export declare function creditAccountName(accrual: JEOneTimeAccrual, fallback: string): string;
12
19
  export declare function debitAccountName(accrual: JEOneTimeAccrual, fallback: string): string;
20
+ /** Preview-only DocNumber: cron reversal shape without the random NN suffix. */
21
+ export declare function reversalJeGroupTitle(accrual: Pick<JEOneTimeAccrual, "vendorName" | "serviceMonth">): string;
22
+ export declare function varianceAccountSplit(accruals: readonly JEOneTimeAccrual[], varianceAmount: number, fallbackAccount: string): {
23
+ account: string;
24
+ amount: number;
25
+ }[];
@@ -0,0 +1,9 @@
1
+ export type MatchNewPreviewJeColumnKey = "date" | "account" | "debit" | "credit";
2
+ export interface MatchNewPreviewJeHeaderItem {
3
+ key: MatchNewPreviewJeColumnKey;
4
+ value: string;
5
+ width: number;
6
+ }
7
+ export declare function isMatchNewPreviewJeNumericColumn(key: MatchNewPreviewJeColumnKey): boolean;
8
+ export declare function getMatchNewPreviewJeColumns(): MatchNewPreviewJeHeaderItem[];
9
+ export declare function buildMatchNewPreviewJeGridTemplate(columns: MatchNewPreviewJeHeaderItem[]): string;
@@ -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, onOpenBill, 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;
@@ -4,6 +4,11 @@ export interface JEGroupSectionHeaderProps {
4
4
  title: string;
5
5
  subtitle?: string;
6
6
  onToggle: () => void;
7
+ /**
8
+ * `badge` is the Review Schedules circle. Matching Design puts the count
9
+ * inline after the title with no ring.
10
+ */
11
+ countAppearance?: "badge" | "plain";
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;
@@ -13,7 +13,13 @@ export interface JEScheduleNewEntryButtonProps {
13
13
  * been typed, and the form now opens in a drawer that leaves this button reachable behind it.
14
14
  */
15
15
  isDisabled?: boolean;
16
+ /**
17
+ * Actual Matching only: label the primary button Match new, prepend that option in the menu, and
18
+ * make the primary click open that workspace instead of a one-time accrual.
19
+ */
20
+ showMatchNew?: boolean;
16
21
  onSelect: (selection: JEScheduleNewEntrySelection) => void;
22
+ onMatchNew?: () => void;
17
23
  }
18
- declare function JEScheduleNewEntryButton({ onSelect, isAccrualEnabled, isDisabled, }: Readonly<JEScheduleNewEntryButtonProps>): import("react/jsx-runtime").JSX.Element;
24
+ declare function JEScheduleNewEntryButton({ onSelect, isAccrualEnabled, isDisabled, onMatchNew, showMatchNew, }: Readonly<JEScheduleNewEntryButtonProps>): import("react/jsx-runtime").JSX.Element;
19
25
  export default JEScheduleNewEntryButton;