@zeniai/web-app-ui 5.3.72-qa → 5.3.73-dev
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.
- package/dist/assets/{AccountMappingScreen-CJvl5JXJ.js → AccountMappingScreen-BMF0Tz3u.js} +2 -2
- package/dist/assets/{ActualMatchingMatchDetailScreen-BUq34KSF.js → ActualMatchingMatchDetailScreen-Rggm2rdO.js} +1 -1
- package/dist/assets/AddressRoutes-BZC_tHw2.js +1 -0
- package/dist/assets/AddressScreen-DFE2TJ9k.js +9 -0
- package/dist/assets/AiCfoScreen-B_p5VtI6.js +22 -0
- package/dist/assets/{AppDrawer-sYdSE7DV.js → AppDrawer-R5VCAsby.js} +2 -2
- package/dist/assets/{BillPayApprovalRoutes-BZEAdInR.js → BillPayApprovalRoutes-DEnTFgOn.js} +1 -1
- package/dist/assets/{BillPayRoutes-169K6hbL.js → BillPayRoutes-5mL9KAIs.js} +18 -18
- package/dist/assets/BusinessVerificationPageScreen-qcXHutsr.js +9 -0
- package/dist/assets/CardsAiCfoScreen-Dw7dZ_97.js +14 -0
- package/dist/assets/{ChargeCardRoutes-BwNBtpIG.js → ChargeCardRoutes-C2lrQn9u.js} +6 -6
- package/dist/assets/{CompanyPassportScreen-D45sXsrZ.js → CompanyPassportScreen-DEU4R8qu.js} +1 -1
- package/dist/assets/ConnectionAuthScreen-DVcYkdE2.js +11 -0
- package/dist/assets/CustomerOnboardingAuthScreen-ZpFTwhtd.js +1 -0
- package/dist/assets/{CustomerOnboardingRoutes-BFxNnHJO.js → CustomerOnboardingRoutes-Bf4kkdxH.js} +3 -3
- package/dist/assets/{DashboardRoutes-Co7U6uRf.js → DashboardRoutes-BsfGVh_g.js} +3 -3
- package/dist/assets/{DefaultTenantHome-CpT6ByaT.js → DefaultTenantHome-BIV3jYpV.js} +1 -1
- package/dist/assets/{DomesticWireDetailScreen-CdZcuM7h.js → DomesticWireDetailScreen-DyJdRubn.js} +4 -4
- package/dist/assets/{DrawerScreen-Crjhobh0.js → DrawerScreen-iM0qHGwt.js} +1 -1
- package/dist/assets/EntityDetailRoutes-BZi1PXPE.js +1 -0
- package/dist/assets/{ExpenseAutomationRoutes-DoAFvlJW.js → ExpenseAutomationRoutes-C_sek1OP.js} +3 -3
- package/dist/assets/FeaturePreviewScreen-BMIapAWv.js +1 -0
- package/dist/assets/HubSpotOAuthCallbackScreen-CNCXJJC-.js +1 -0
- package/dist/assets/{InboxNotificationsProvider-CH-l5W7V.js → InboxNotificationsProvider-Dho-IKGo.js} +1 -1
- package/dist/assets/InvoicingRoutes-DZfc_GJQ.js +2 -0
- package/dist/assets/{MagicLinkRoutes-D-AUoRWa.js → MagicLinkRoutes-qpf9fu2s.js} +8 -8
- package/dist/assets/MagicLinkSignInScreen-BJUai8Da.js +12 -0
- package/dist/assets/{MobileAppDrawer-DfT3Wv4q.js → MobileAppDrawer-OUkc6SS6.js} +1 -1
- package/dist/assets/NotFoundScreen-D6Ewfl9l.js +1 -0
- package/dist/assets/NotificationRoutes-Dq5J6WUt.js +1 -0
- package/dist/assets/OAuthConsentScreen-DZv3rpk0.js +1 -0
- package/dist/assets/PandLWithForecastRoutes-DosVgEtp.js +1 -0
- package/dist/assets/{PaymentLinkScreen-OFX6JRL7.js → PaymentLinkScreen-Nf5jY6jx.js} +5 -5
- package/dist/assets/PeopleRoutes-fi0bv8NG.js +22 -0
- package/dist/assets/PerformanceRoutes-d-Ak-y5B.js +1 -0
- package/dist/assets/{Preview-Ch5xsyMl.js → Preview-BkEDyesO.js} +1 -1
- package/dist/assets/{QBOConnectionScreen-BnxzdDn6.js → QBOConnectionScreen-3Q-D8A_V.js} +1 -1
- package/dist/assets/ReimbursementApprovalRoutes-KqZCzo-T.js +1 -0
- package/dist/assets/{ReimbursementApprovalRuleDetailScreen-DA2wxNvn.js → ReimbursementApprovalRuleDetailScreen-wJwhX9oS.js} +1 -1
- package/dist/assets/{ReimbursementRoutes-DtigAZux.js → ReimbursementRoutes-NsJfERMF.js} +7 -7
- package/dist/assets/{ReportsRoutes-IMfpdgLc.js → ReportsRoutes-BzSGYOeE.js} +1 -1
- package/dist/assets/RewardsRoutes-Dfq5a4nJ.js +1 -0
- package/dist/assets/{ScheduleDetailsPrepaidExpensesScreen-DVmtIBPW.js → ScheduleDetailsPrepaidExpensesScreen-Ch5YyOE1.js} +5 -5
- package/dist/assets/ScreenRoutes-Ct-XeoIp.js +2 -0
- package/dist/assets/{SettingsRoutes-CPIpAqIx.js → SettingsRoutes-BwbR1Hav.js} +6 -6
- package/dist/assets/SetupPagesScreen-CaUjvNzq.js +29 -0
- package/dist/assets/SignInScreen-lXlYsOPt.js +1 -0
- package/dist/assets/SignOutScreen-D7BxB8Kw.js +9 -0
- package/dist/assets/TaskListScreen-BEbbR5qA.js +9 -0
- package/dist/assets/TaskRoutes-BTpCvY45.js +9 -0
- package/dist/assets/TransactionDetailRoutes-BDtVKFcV.js +1 -0
- package/dist/assets/{TransactionDetailScreen-BWee1nGS.js → TransactionDetailScreen-DqTnN7lb.js} +2 -2
- package/dist/assets/TransactionListRoutes-D95fLm7G.js +1 -0
- package/dist/assets/{TreasuryRoutes-B_J15-lg.js → TreasuryRoutes-933b-w57.js} +6 -6
- package/dist/assets/{VendorsRoutes-5DKAWmAO.js → VendorsRoutes-DNocUq8r.js} +13 -13
- package/dist/assets/WiseConfirmationScreen-D26sFhH6.js +12 -0
- package/dist/assets/{ZeniAccountRoutes-C8P1BGhH.js → ZeniAccountRoutes-DqkD5Tj5.js} +11 -11
- package/dist/assets/{ZeniAccountStatementScreen-D7BQE1Xy.js → ZeniAccountStatementScreen-CCsR6oS6.js} +2 -2
- package/dist/assets/{accountMappingHelper-CnG-eRj3.js → accountMappingHelper-BCIxYvce.js} +1 -1
- package/dist/assets/{analytics-DlzSqyvZ.js → analytics-BPoZyeUe.js} +1 -1
- package/dist/assets/{analyticsHelper-BlLXbdz8.js → analyticsHelper-CLRmzZBe.js} +1 -1
- package/dist/assets/{core-D07hD3KT.js → core-DV1n0xnE.js} +1 -1
- package/dist/assets/{decodeURIComponentSafe-D3MFRtCF.js → decodeURIComponentSafe-DV_H_U9m.js} +1 -1
- package/dist/assets/{dnd-B-KpYfWT.js → dnd-DhK11Cna.js} +1 -1
- package/dist/assets/{empty-DRbThjIF.js → empty-CfvnUFQM.js} +1 -1
- package/dist/assets/{empty-aXh7noZx.js → empty-ClI4oFTo.js} +1 -1
- package/dist/assets/{emptyVideoElement-BZocj0UF.js → emptyVideoElement-2jnCmpFX.js} +1 -1
- package/dist/assets/epic-CC17XF7h.js +2 -0
- package/dist/assets/expenseAutomationHelper-DKDAgt14.js +1 -0
- package/dist/assets/{getLocaleForTenant-xajEPLim.js → getLocaleForTenant-DSuDxBKk.js} +1 -1
- package/dist/assets/{index-z9Fh-4S1.js → index-2jvQLAuX.js} +1 -1
- package/dist/assets/{index-YyHAbx34.js → index-BDemtU3L.js} +1 -1
- package/dist/assets/{index-BVdX_ubi.js → index-CNybyuHc.js} +2 -2
- package/dist/assets/{index-BXZoRXDS.js → index-CQb5WoEC.js} +16523 -16600
- package/dist/assets/{index-BIOOl02m.js → index-DPAuplgY.js} +1 -1
- package/dist/assets/{index-54OCX1PW.js → index-MBli9fvW.js} +1 -1
- package/dist/assets/{index-BxmwktwS.js → index-bS-O_x7p.js} +1 -1
- package/dist/assets/{index-D5s14gxd.js → index-dHB9hLbY.js} +1 -1
- package/dist/assets/{lexical-NIxvAmS2.js → lexical-Dm0ggfHI.js} +1 -1
- package/dist/assets/{liveblocks-CQOAuUNI.js → liveblocks-ByZ2hLlh.js} +1 -1
- package/dist/assets/{lottie-BIKpYE12.js → lottie-DLdOGyRC.js} +1 -1
- package/dist/assets/{mui-XiTT8YBC.js → mui-jYJOd_FH.js} +1 -1
- package/dist/assets/{pathToGoBack-RICxbZCJ.js → pathToGoBack-DU0I2V0d.js} +1 -1
- package/dist/assets/{pdf-Dli3mGO_.js → pdf-BNP0Aa3G.js} +4 -4
- package/dist/assets/{pdf-lib-D9XJLVoD.js → pdf-lib-Ghg8u77u.js} +1 -1
- package/dist/assets/{plaid-BG3pJamN.js → plaid-DlHdcMRS.js} +1 -1
- package/dist/assets/{pusher-D9DkHuMx.js → pusher-fCgL3t87.js} +1 -1
- package/dist/assets/{react-CrrxpEIc.js → react-0tUPWmny.js} +1 -1
- package/dist/assets/{react-C1d1ocIu.js → react-BGoKcGI1.js} +1 -1
- package/dist/assets/{react-DkT18Fv5.js → react-BNT2BnLs.js} +1 -1
- package/dist/assets/{react-D2I9LF0A.js → react-BfvxJ9E4.js} +1 -1
- package/dist/assets/{react-BLzCbojr.js → react-Dw9erbfr.js} +1 -1
- package/dist/assets/{react-C-5ZNsBH.js → react-yLaffN1I.js} +1 -1
- package/dist/assets/{recharts-CgYqsGTH.js → recharts-DzomOU1a.js} +1 -1
- package/dist/assets/{routePaths-D5u7Fiee.js → routePaths-BHNMdM_O.js} +1 -1
- package/dist/assets/{sentry-pp_6zWNc.js → sentry-DhrLg200.js} +1 -1
- package/dist/assets/{stripSplatSuffix-DA-gXJ77.js → stripSplatSuffix-vMLM3ll3.js} +1 -1
- package/dist/assets/{url-TK5h7pVR.js → url-C0FnX-Y1.js} +1 -1
- package/dist/assets/{url-yI9BET_f.js → url-DRLt9vS2.js} +1 -1
- package/dist/assets/useActualMatchingMatchDetail-DkjGGAdb.js +1 -0
- package/dist/assets/{useAiCfoDashboardSuggestedQuestionsChips-cfyM2Cui.js → useAiCfoDashboardSuggestedQuestionsChips-COl_xk2g.js} +1 -1
- package/dist/assets/useAskAiCfoHostNavButtonProps-Dz2Nti66.js +1 -0
- package/dist/assets/{useChargeCardPusherEvents-CS7T_ZQN.js → useChargeCardPusherEvents-Cl6UaMMU.js} +1 -1
- package/dist/assets/{useDeviceId-DCPRNX-s.js → useDeviceId-B0EeDKbI.js} +1 -1
- package/dist/assets/useEmailConnectResultRefresh-ClTbOAmR.js +1 -0
- package/dist/assets/{useInitialThreadRequest-COOzD5oF.js → useInitialThreadRequest-D99s7mit.js} +1 -1
- package/dist/assets/useTaskManagerAccess-B51fCe2G.js +1 -0
- package/dist/assets/{useTaskManagerPusherEvents-D8-vSEDU.js → useTaskManagerPusherEvents-D5Tw9apk.js} +1 -1
- package/dist/assets/{utils-CrOdvv6w.js → utils-CHwCuPu8.js} +1 -1
- package/dist/assets/{withTransactionSidePanel-eLmj1Ps-.js → withTransactionSidePanel-B8yI0Nfh.js} +4 -4
- package/dist/assets/{zeni-epic-state-B3TABHgO.js → zeni-epic-state-Cw9Z8Rxj.js} +6 -6
- package/dist/index.html +1 -1
- package/package.json +4 -4
- package/dist/assets/AddressRoutes-CRp3rVsa.js +0 -1
- package/dist/assets/AddressScreen-qpYsmNQj.js +0 -9
- package/dist/assets/AiCfoScreen-Cgg6z7vY.js +0 -22
- package/dist/assets/BusinessVerificationPageScreen-Bg2PTPOO.js +0 -9
- package/dist/assets/CardsAiCfoScreen-ClyuumNF.js +0 -14
- package/dist/assets/ConnectionAuthScreen-Ch3SMbL0.js +0 -11
- package/dist/assets/CustomerOnboardingAuthScreen-DUAU8WBE.js +0 -1
- package/dist/assets/EntityDetailRoutes-DBE0e8tk.js +0 -1
- package/dist/assets/FeaturePreviewScreen-WjMnw8KV.js +0 -1
- package/dist/assets/HubSpotOAuthCallbackScreen-Co1Efhtt.js +0 -1
- package/dist/assets/InvoicingRoutes-B-rSWSFX.js +0 -2
- package/dist/assets/MagicLinkSignInScreen-CRDcdldu.js +0 -12
- package/dist/assets/NotFoundScreen-CBsVugJE.js +0 -1
- package/dist/assets/NotificationRoutes-DXLsGRw8.js +0 -1
- package/dist/assets/OAuthConsentScreen-HPHCSEZf.js +0 -1
- package/dist/assets/PandLWithForecastRoutes-CFIV5ASt.js +0 -1
- package/dist/assets/PeopleRoutes-DMreo66A.js +0 -22
- package/dist/assets/PerformanceRoutes-BpHHBv6i.js +0 -1
- package/dist/assets/ReimbursementApprovalRoutes-Di_UQPZB.js +0 -1
- package/dist/assets/RewardsRoutes-QcnfJ0I2.js +0 -1
- package/dist/assets/ScreenRoutes-BLGmNmRV.js +0 -2
- package/dist/assets/SetupPagesScreen-DUwJ2VLm.js +0 -29
- package/dist/assets/SignInScreen-6knrOqTO.js +0 -1
- package/dist/assets/SignOutScreen-Yk4k3uR0.js +0 -9
- package/dist/assets/TaskListScreen-CjEfkJDx.js +0 -9
- package/dist/assets/TaskRoutes-lIMUyAfY.js +0 -9
- package/dist/assets/TransactionDetailRoutes-D7Rn2JsN.js +0 -1
- package/dist/assets/TransactionListRoutes-xPkgCyOq.js +0 -1
- package/dist/assets/WiseConfirmationScreen-Bor5L5ul.js +0 -12
- package/dist/assets/epic-Du2AdUHP.js +0 -2
- package/dist/assets/expenseAutomationHelper-CL7YOVzM.js +0 -1
- package/dist/assets/useActualMatchingMatchDetail-9njfwmJo.js +0 -1
- package/dist/assets/useAskAiCfoHostNavButtonProps-C9O3AmSz.js +0 -1
- package/dist/assets/useEmailConnectResultRefresh-50p1dphC.js +0 -1
- package/dist/assets/useTaskManagerAccess-Dvad4Vb6.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as o}from"./liveblocks-CQOAuUNI.js";import{u as le,j as d,h as ie,g as me,i as Ve,N as Qe,s as Dt,l as Pe,t as Dn,n as os,o as ne}from"./core-D07hD3KT.js";import{fV as _t,a05 as cs,g5 as Pt,bu as Fe,a06 as is,a07 as ds,fK as hn,a08 as _n,fT as Pn,a09 as wn,a0a as vn,a0b as Tn,a0c as Fn,fU as xn,g4 as Ln,a0d as Bn,a0e as ls,f_ as us,fZ as ms,a0f as Cs,Kf as Rn,g7 as ia,a0g as ps,a0h as hs,fM as fs,fL as gs,gk as We,g0 as On,f$ as Un,a0i as bs,g1 as Ss,JN as ys,JM as Is,JQ as ks,JS as Es,gd as As,fH as jn,a0j as Ds,a0k as _s,gi as Mn,a0l as Ps,gj as St,JY as ws,JV as vs,fI as ge,a0m as Za,d$ as xe,dj as Le,e0 as Be,h1 as da,cC as la,a0n as ua,a0o as wt,D4 as Ga,ma as $a,a0p as Ka,Kv as Ia,g8 as Je,Kx as vt,m0 as Nn,a0q as ma,Kj as Da,a0r as Ts,a0s as Fs,Km as qa,a0t as xs,Zi as Ja,g3 as Vn,Ks as ga,it as Ls,a0u as Hn,fW as Ca,br as Bs,a0v as Rs,gJ as Qa,gI as Xa,K$ as Os,gH as et,a0w as Gn,cv as $n,db as Us,Zh as Pa,LA as Kn,a0x as fn,La as _a,a0y as zn,LB as js,ZI as Ms,LC as Ns,MK as Vs,Ck as Hs,ME as Gs,a0z as $s,Kw as oa,a0A as Ks,a0B as zs,a0C as Ws,a0D as Ys,a0E as Zs,a0F as Tt,a0G as qs,KM as Wn,KF as Js,a0H as Qs,h3 as Xs,a0I as Yn,KV as Zn,KZ as qn,h2 as eo,a0J as ao,Lm as Jn,a0K as to,a0L as no,a0M as ro,KX as Qn,KI as Xn,Kp as er,KR as ar,KP as tr,KT as so,a0N as nr,a0O as oo,gf as co,gg as io,gh as lo,a0P as at,g9 as rr,dd as Ft,a0Q as uo,a0R as mo,a0S as Co,a0T as po,L5 as yt,Lt as ho,Lp as fo,L1 as go,Lr as bo,Lh as So,Lj as yo,a0U as sr,Lz as Ha,St as Io,a0V as ko,a0W as Eo,a0X as Ao,a0Y as or,a0Z as Do,LW as _o,L9 as cr,L4 as Ne,L8 as Po,a0_ as wo,a0$ as vo,Kg as To,a10 as ir,g2 as dr,a11 as Fo,Ki as xo,Kh as gn,a12 as Lo,a13 as Bo,a14 as Ro,VB as Oo,a15 as xt,a16 as Uo,xq as lr,mK as jo,ii as Mo,L$ as No,a17 as ur,fQ as Vo,fR as Ho,a18 as Go,dQ as $o,g6 as Ko,LR as zo,LL as qe,bq as Wo,bK as Yo,cH as Zo,bL as qo,Us as Jo}from"./zeni-epic-state-B3TABHgO.js";import{W as Re,de as mr,a4 as we,df as Cr,dg as pr,dh as Qo,G as aa,as as Lt,di as Xo,dj as ec,a as hr,d as fr,ar as gr,p as Ee,H as de,y as q,j as Sa,dk as br,dl as ac,dm as tc,z as te,a7 as wa,d3 as tt,dn as nc,dp as rc,dq as sc,a1 as va,bi as Xe,bF as Bt,dr as oc,ab as Ta,Z as nt,E as Rt,k as ee,w as rt,ds as cc,bR as ba,dt as It,du as ic,a8 as Ot,dv as dc,ae as Sr,av as kt,dw as lc,aq as yr,Q as Ir,U as kr,bn as uc,dx as mc,dy as Cc,dz as pc,dA as hc,dB as fc,dC as gc,N as za,dD as bc,dE as Sc,m as pt,D as yc,dF as Ic,dG as kc,dH as Ec,ai as Ac,dI as Dc,dJ as _c,g as Pc}from"./index-BXZoRXDS.js";import{n as He,D as Er,S as wc}from"./mui-XiTT8YBC.js";import{a as r}from"./sentry-pp_6zWNc.js";import{u as Fa}from"./useAskAiCfoHostNavButtonProps-C9O3AmSz.js";import{M as Ae}from"./MobileAppDrawer-DfT3Wv4q.js";import{d as Ut}from"./recharts-CgYqsGTH.js";import{g as _e,a as xa,b as Ar,c as Oe,d as Ue,e as ea,f as ta,h as na,A as vc,i as jt,P as Tc,j as Mt,s as ya,k as Dr,l as ca,m as _r,n as Fc,o as Pr,p as xc,S as bn}from"./SetupPagesScreen-DUwJ2VLm.js";import{u as wr}from"./useInitialThreadRequest-COOzD5oF.js";import st from"./NotFoundScreen-CBsVugJE.js";import{u as Nt}from"./useChargeCardPusherEvents-CS7T_ZQN.js";import{n as Sn}from"./utils-CrOdvv6w.js";import{t as Lc}from"./AddressScreen-qpYsmNQj.js";import"./analytics-DlzSqyvZ.js";import"./plaid-BG3pJamN.js";import"./dnd-B-KpYfWT.js";import"./stripe-cKAAJElX.js";import"./lottie-BIKpYE12.js";import"./lexical-NIxvAmS2.js";import"./pdf-Dli3mGO_.js";import"./InboxNotificationsProvider-CH-l5W7V.js";import"./useTaskManagerAccess-Dvad4Vb6.js";import"./BusinessVerificationPageScreen-Bg2PTPOO.js";import"./routePaths-D5u7Fiee.js";import"./analyticsHelper-BlLXbdz8.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="43e356b7-2782-4c4e-93b8-13ccde19be5f",e._sentryDebugIdIdentifier="sentry-dbid-43e356b7-2782-4c4e-93b8-13ccde19be5f")}catch{}})();const Bc=e=>{const a=e.cardHolderUser,n=`${a.firstName??""} ${a.lastName??""}`.trim()||a.email||a.userId;return{userId:a.userId,displayName:n,roleLabel:e.cardHolderRoles?.titleAtCompany}},vr=e=>({id:e.id,isChecked:!1,cardName:e.cardName,last4:e.accountLast4,limitAmount:e.limit?.amount??0,limitCadence:e.creditLimitFrequency?.code,owner:Bc(e),utilizationAmount:(e.limit?.amount??0)-(e.available?.amount??0)});function Tr(){const e=le(),a=d((t=>_t(t.cardPolicyState))),n=d((t=>cs(t.cardPolicyState)));r.useEffect((()=>{n!==""||a==="Completed"&&n===""||a==="In-Progress"||e(Pt())}),[e,a,n])}const{spendManagement:{chargeCard:{cardPolicyPage:yn}}}=aa.getLocalizedStrings(),Rc=e=>On(e,!1),Oc=e=>Un(e.name,!1);function Uc(){const e=ie(),a=me(),{tenantEmailDomain:n}=Ve(),t=le(),s=Re(),f=Fe(s?.loggedInUserRoleMap),[b,m]=r.useState(!1),A=r.useCallback((P=>{m(P)}),[]),u=r.useCallback((()=>{A(!0)}),[A]),{isAiCfoAccessEnabled:l,onAskAiCfoClick:B}=Fa({mobileExploreReferrer:"Card Policy"});r.useEffect((()=>()=>{t(is()),t(ds()),t(hn())}),[t]);const D=d((P=>_n(P.cardPolicyState))),C=d((P=>Pn(P.cardPolicyState))),O=d((P=>wn(P.cardPolicyState))),U=d((P=>vn(P.cardPolicyState))),S=d((P=>Tn(P.cardPolicyState))),c=d((P=>Fn(P.cardPolicyState))),p=d((P=>xn(P.cardPolicyState))),x=d((P=>_t(P.cardPolicyState))),E=d((P=>P.chargeCardConfigState.receiptRequiredAboveAmount.amount)),I=d((P=>P.chargeCardConfigState.fetchState));r.useEffect((()=>{D!=="Completed"&&D!=="In-Progress"&&t(Ln())}),[t,D]),Tr();const k=d((P=>Bn(P.createCardPolicyState))),V=d((P=>ls(P.createCardPolicyState))),w=d((P=>us(P.cardPolicyState))),y=d((P=>ms(P.cardPolicyState))),F=d((P=>Cs(P.createCardPolicyState))),i=d((P=>Rn(P)));r.useEffect((()=>{i.fetchState==="Not-Started"&&t(ia(!1,!1,!1))}),[i.fetchState,t]);const g=r.useMemo((()=>C.map(Rc)),[C]),R=r.useMemo((()=>p.map(Oc)),[p]),G=r.useMemo((()=>i.cards.filter((P=>!mr(P.status.code))).map(vr)),[i.cards]),M=D==="Completed"&&i.fetchState==="Completed"&&I==="Completed";r.useEffect((()=>{M&&F==null&&t(ps({cardsMasterList:G,defaultRequireReceiptAmount:E,suggestedAllowMerchants:O,suggestedBlockMerchants:U,suggestedAllowCategories:S,suggestedBlockCategories:c}))}),[I,t,M,F,G,E,O,U,S,c]);const L=r.useMemo((()=>Ut((P=>{t(Pt(P))}),250)),[t]);r.useEffect((()=>()=>{L.cancel()}),[L]);const z=r.useCallback((P=>{L(P)}),[L]),j=k.fetchState,h=n!=null?`/${n}/cards/policy`:"..",H=r.useCallback((()=>{const P=we(a.state?.pathnameStackToGoBack),ae=P.poppedPathname??h;e(ae,{state:{pathnameStackToGoBack:P.newStack}})}),[a.state,e,h]),W=r.useCallback((()=>{e(h)}),[e,h]),_=r.useCallback((P=>{t(hs(P))}),[t]),Z=r.useCallback((P=>{const ae=Cr(P);t(fs({templates:[ae]}))}),[t]),N=r.useCallback((P=>{P.length!==0&&t(gs(P))}),[t]),$=r.useCallback((()=>{t(hn())}),[t]),T=r.useRef(j);r.useEffect((()=>{const P=T.current;T.current=j,j==="Completed"&&P!=="Completed"&&V!=null&&(t(We({messageSection:"card_policy_created",messageText:"success",type:"success"})),e(h))}),[t,j,V,e,h]);const v=j==="Error"?k.error?.message??yn.createPolicyGenericErrorMessage:void 0;return f&&n!=null?F==null?o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(pr,{showUploadDocumentSection:!0,navBarTitle:yn.createPageTitle,onBackClick:H,onClickMenuIcon:u,isAiCfoAccessEnabled:l,onAskAiCfoClick:B})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(Qo,{formDraft:F,vendorSearchOptions:R,categorySearchOptions:g,isVendorSearchLoading:x==="In-Progress",onVendorSearchTextChange:z,submitState:j,submitErrorMessage:v,documentUploadState:w,uploadedFileName:y,isAiCfoAccessEnabled:l,onAskAiCfoClick:B,onBackClick:H,onCancelClick:W,onClickMenuIcon:u,onFormChange:_,onSubmit:Z,onUploadDocument:N,onRemoveDocument:$})]}):o.jsx(Qe,{to:"..",replace:!0})}const{spendManagement:{chargeCard:{cardPolicyPage:jc}}}=aa.getLocalizedStrings(),Mc=e=>On(e,!1),Nc=e=>Un(e.name,!1);function Vc(){const e=ie(),a=me(),{tenantEmailDomain:n,templateId:t}=Ve(),s=le(),f=Re(),b=Fe(f?.loggedInUserRoleMap),[m,A]=r.useState(!1),u=r.useCallback((v=>{A(v)}),[]),l=r.useCallback((()=>{u(!0)}),[u]),{isAiCfoAccessEnabled:B,onAskAiCfoClick:D}=Fa({mobileExploreReferrer:"Card Policy"}),C=d((v=>bs(v))),O=d((v=>_n(v.cardPolicyState))),U=d((v=>Pn(v.cardPolicyState))),S=d((v=>wn(v.cardPolicyState))),c=d((v=>vn(v.cardPolicyState))),p=d((v=>Tn(v.cardPolicyState))),x=d((v=>Fn(v.cardPolicyState))),E=d((v=>xn(v.cardPolicyState))),I=d((v=>_t(v.cardPolicyState))),k=d((v=>Rn(v))),V=d((v=>t!=null?Ss(v.cardPolicyState,t):void 0)),w=r.useMemo((()=>C.templateId===t&&C.formDraft!=null?C.formDraft:V!=null?ys(V):void 0),[C.templateId,C.formDraft,V,t]);r.useEffect((()=>{if(t==null)return;const v=C.detailFetchState.fetchState;C.templateId===t&&(v==="Completed"||v==="In-Progress")||V!=null||s(Is(t))}),[s,t,C.templateId,C.detailFetchState.fetchState,V]),r.useEffect((()=>{O!=="Completed"&&O!=="In-Progress"&&s(Ln())}),[s,O]),Tr();const y=d((v=>v.chargeCardConfigState.receiptRequiredAboveAmount.amount));r.useEffect((()=>{k.fetchState==="Not-Started"&&s(ia(!1,!1,!1))}),[k.fetchState,s]);const F=r.useMemo((()=>U.map(Mc)),[U]),i=r.useMemo((()=>E.map(Nc)),[E]),g=r.useMemo((()=>k.cards.filter((v=>!mr(v.status.code))).map(vr)),[k.cards]);Lt({isDataReady:w!=null});const R=r.useMemo((()=>{if(w!=null)return Xo({draft:w,cardRows:g,categorySearchOptions:F,vendorSearchOptions:i,defaultRequireReceiptAmount:y,suggestedAllowMerchants:S,suggestedBlockMerchants:c,suggestedAllowCategories:p,suggestedBlockCategories:x})}),[w,g,F,i,y,S,c,p,x]),[G,M]=r.useState(void 0),L=r.useRef(!1);r.useEffect((()=>{L.current||G!=null||R==null||(L.current=!0,M(R))}),[G,R]);const z=r.useCallback((v=>{M(v)}),[]),j=r.useMemo((()=>Ut((v=>{s(Pt(v))}),250)),[s]);r.useEffect((()=>()=>{j.cancel()}),[j]);const h=r.useCallback((v=>{j(v)}),[j]),H=C.updateFetchState.fetchState,W=n!=null?`/${n}/cards/policy`:"..",_=r.useCallback((()=>{const v=we(a.state?.pathnameStackToGoBack),P=v.poppedPathname??W;e(P,{state:{pathnameStackToGoBack:v.newStack}})}),[a.state,e,W]),Z=r.useCallback((()=>{e(W)}),[e,W]),N=r.useCallback((v=>{if(t==null)return;const P=Cr(v);s(ks(P)),s(Es(t))}),[s,t]),$=r.useRef(H);r.useEffect((()=>{const v=$.current;$.current=H,H==="Completed"&&v!=="Completed"&&(s(We({messageSection:"card_policy_updated",messageText:"success",type:"success"})),e(W))}),[s,H,e,W]);const T=H==="Error"?C.updateFetchState.error?.message??jc.updatePolicyGenericErrorMessage:void 0;return!b||n==null||t==null?o.jsx(Qe,{to:"..",replace:!0}):G!=null&&O==="Completed"&&k.fetchState==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:m,handleDrawerToggle:u}),o.jsx(ec,{templateName:C.template?.name??"",formDraft:G,vendorSearchOptions:i,categorySearchOptions:F,isVendorSearchLoading:I==="In-Progress",onVendorSearchTextChange:h,submitState:H,submitErrorMessage:T,isAiCfoAccessEnabled:B,onAskAiCfoClick:D,onBackClick:_,onCancelClick:Z,onClickMenuIcon:l,onFormChange:z,onSubmit:N})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:m,handleDrawerToggle:u}),o.jsx(pr,{showUploadDocumentSection:!1,navBarTitle:C.template?.name,onBackClick:_,onClickMenuIcon:l,isAiCfoAccessEnabled:B,onAskAiCfoClick:D})]})}function Fr(e,a,n){return a?e.filter((t=>t!=null&&t.trim().length>0)).slice(0,n):[]}function xr(e){return d((a=>e==null||e===""?{chips:ht,isResolved:!1}:(function(n){const t=n?.fetchState,s=t==="Completed"||t==="Error";return{chips:t==="Completed"?n?.suggestedQuestions??ht:ht,isResolved:s}})(As(a,e))),Dt)}const ht=[],{spendManagement:{chargeCard:{cardPolicyAiCfoHero:{headline:Hc,subheadline:Gc,pageTitle:$c}}}}=aa.getLocalizedStrings(),Kc=e=>{const a=e.cardsCount>0?e.cardsCount:e.appliedCards.length,n=e.allowedEntity.merchantNames.length+e.blockedEntity.merchantNames.length,t=e.allowedEntity.categoryCodes.length+e.blockedEntity.categoryCodes.length;return{templateId:e.templateId,name:e.name,description:e.description,mode:e.mode==="flexible"?"flexible":"strict",createdAtFormatted:e.createdAt.format("ll"),cardsCount:a,vendorRestrictionsCount:n,categoryRestrictionsCount:t}};function zc(){const e=ie(),a=me(),{tenantEmailDomain:n}=Ve(),t=le(),s=Re(),f=Fe(s?.loggedInUserRoleMap),[b,m]=r.useState(!1),A=r.useCallback((h=>{m(h)}),[]),u=r.useCallback((()=>{A(!0)}),[A]),{useFeatureGate:l}=de(),{isFeatureEnabled:B}=l(q.isAiCfoFileUploadEnabled),{isFeatureEnabled:D}=l(q.isCardPolicyEnabled),{isAiCfoAccessEnabled:C,onAskAiCfoClick:O}=Fa({mobileExploreReferrer:"Card Policy"}),U=d((h=>Ds(h))),S=d((h=>Bn(h.createCardPolicyState))),c=d((h=>_s(h.createCardPolicyState))),p=d((h=>c==null?[]:Mn(h.aiCfoState,c).filter((H=>H.kind==="creating_policy"))),Dt),x=S.fetchState==="In-Progress"?Math.max(p.length,1):0,E=d((h=>Ps(h.createCardPolicyState))),I=Sa(S.fetchState);r.useEffect((()=>{if(I==="In-Progress"&&S.fetchState==="Completed"&&c!=null)p.forEach((h=>{t(St({chatSessionId:c,id:h.id,entityIds:E,kind:"created_policy"}))}));else if(I==="In-Progress"&&S.fetchState==="Error"&&c!=null){p.forEach((H=>{t(St({chatSessionId:c,id:H.id,kind:"errored_policy"}))}));const h=S.error?.message!=null&&S.error.message.length>0?S.error.message:aa.getLocalizedStrings().common.errorMessage.somethingWentWrongPleaseTryAgain;t(We({messageSection:"card_policy_created",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:h}]}))}}),[S.error?.message,S.fetchState,t,c,E,p,I]);const k=U.fetchState.fetchState;r.useEffect((()=>{k!=="Not-Started"&&k!=="Error"||t(ws())}),[t,k]);const V=U.archiveFetchState.fetchState,w=Sa(V);r.useEffect((()=>{w==="In-Progress"&&V==="Completed"&&t(We({messageSection:"card_policy_deleted",messageText:"success",type:"success"}))}),[V,t,w]);const y=r.useMemo((()=>U.templates.map(Kc)),[U.templates]);Lt({isDataReady:U.fetchState.fetchState==="Completed"});const F=y.length>0||x>0,i=(function(h){const{hasAnyPolicies:H,isChargeCardAdmin:W,isFileUploadEnabled:_}=h,Z=ie(),N=me(),{tenantEmailDomain:$}=Ve(),{isAiCfoOpen:T,setIsAiCfoOpen:v}=hr(),P=fr(),ae=gr(),Ce=d((J=>jn(J))).createSessionAndSubmitState.fetchState==="In-Progress",{chips:X,isResolved:ve}=xr("card_policy"),Ie=r.useMemo((()=>Fr(X,ve,3)),[X,ve]),[re,be]=r.useState(""),pe=ae&&P&&$!=null&&!T,he=r.useCallback((J=>{if($==null)return;const Ge=Ee(N.state?.pathnameStackToGoBack,N.pathname);Z(`/${$}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Ge,referrer:"card_policy_hero",aiCfoInitialQuestion:J,aiCfoShouldSubmit:J!=null&&J.trim().length>0}})}),[N.pathname,N.state,Z,$]),oe=r.useCallback((J=>{J.trim().length!==0&&(be(""),he(J))}),[he]),Q=r.useCallback((()=>{const J=re.trim();J.length!==0&&(be(""),he(J))}),[re,he]),Se=r.useCallback((()=>{}),[]),De=r.useCallback((J=>{be(J)}),[]),fe=r.useCallback((()=>{v(!0)}),[v]),Te=r.useCallback((()=>{he(void 0)}),[he]);return r.useMemo((()=>{if(pe&&!H&&W)return{aiAgentName:$c,headline:Hc,subheadline:Gc,promptChips:Ie,composer:{currentInput:re,isSubmitting:Ce,isFileUploadEnabled:_,onInputChange:De,onSubmit:Q,onStopSubmit:Se},onPromptClick:oe,onOpenSidePanel:fe,onOpenFullView:Te,dataTestIdPrefix:"card-policy-ai-cfo-hero"}}),[re,H,pe,W,_,Ce,De,Te,fe,oe,Se,Q,Ie])})({hasAnyPolicies:F,isChargeCardAdmin:f,isFileUploadEnabled:B}),g=D&&i!=null?o.jsx(br,{...i}):null,R=C&&g==null,G=r.useCallback((()=>{const h=we(a.state?.pathnameStackToGoBack),H=h.poppedPathname??"..";e(H,{state:{pathnameStackToGoBack:h.newStack}})}),[a.state,e]),M=r.useCallback((()=>{n!=null&&e(`/${n}/cards/policy/new`)}),[e,n]),L=r.useCallback((h=>{n!=null&&e(`/${n}/cards/policy/${h}/edit`)}),[e,n]),z=r.useCallback((h=>{t(vs(h))}),[t]),j=U.fetchState.fetchState;return!F&&j!=="Completed"&&j!=="Error"?o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(ac,{onBackClick:G,onNewPolicyClick:M,onClickMenuIcon:u,isAiCfoAccessEnabled:C,onAskAiCfoClick:O})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(tc,{policies:y,archivingTemplateId:U.archiveTargetTemplateId,pendingCreationCount:x,onBackClick:G,onNewPolicyClick:M,onEditPolicyClick:L,onArchivePolicyClick:z,onClickMenuIcon:u,policyAiCfoHero:g,isAiCfoAccessEnabled:R,onAskAiCfoClick:O})]})}function Wc(){const e=ie(),{cardId:a}=Ve(),n=le(),t=te.getSignedInUser(),s=d((X=>ge(X))),f=Re(),b=Fe(f?.loggedInUserRoleMap),{useFeatureGate:m}=de();if(t==null)throw Error("Can't access Add To Wallet Page without signing in...");const[A,u]=r.useState(!1),l=d((X=>Za(X).firstViewAfterActivation));if(a==null)throw Error("Empty card id is not valid...");const B=s.userRole.includes("charge_card_user"),{isFeatureEnabled:D}=m(q.isChargeCardFeatureEnabled),C=!!s.companyChargeCardInfo?.info?.isChargeCardEnabled,{isFeatureEnabled:O}=m(q.isDebitCardFeatureEnabled),U=xe(s),S=Le(s),c=Be(O,s),p=s.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,x=Oe({isDebitCardFeatureEnabled:O,isBankingOnlyTenant:c}),E=Ue({isCardsOnlyTenant:U,isChargeCardFeatureEnabled:D,isBookKeepingTenant:S,isDebitCardProductVisible:x,chargeCardsCreditAccountLimit:p}),I=!!s.companyDebitCardInfo?.info?.isDebitCardEnabled,k=d((X=>da(X,s.companyId))),V=la(k.controllers),{creditAccount:w,creditAccountRepayment:y}=d((X=>ua(X))),F=d((X=>X.classListState.fetchState)),i=!B&&E&&C,g=d((X=>wt(X,a,i,E))),[R,G]=r.useState(!1),M=g.chargeCard,L=M?.cardCreatedByUser?.userId,z=d((X=>L!=null?Ga(X.userRoleState,L):void 0)),j=z?.accountingClassIDs[0],h=d((X=>j!=null?$a(X.classState,{classId:j,reportId:"class_list"}):void 0)),H=M?.cardHolderUser?.userId,W=d((X=>H!=null?Ga(X.userRoleState,H):void 0)),_=W?.accountingClassIDs[0],Z=d((X=>_!=null?$a(X.classState,{classId:_,reportId:"class_list"}):void 0)),N=M?.type.code==="business_physical_credit_card"||M?.type.code==="business_physical_debit_card",$=M?.type.code==="business_physical_debit_card";r.useEffect((()=>{l&&A===!1&&N&&(u(!0),setTimeout((()=>{n(Ka()),$&&n(We({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))}),5e3))}),[l,A,N,$]),r.useEffect((()=>{R||g.fetchState==="Completed"||g.fetchState==="In-Progress"||a==null||(G(!0),n(Ia(a,i,!1)))}),[R,g,a,n]),r.useEffect((()=>{if(g.fetchState==="Completed"&&(N===!1||N&&M?.status?.code!=="active"||M?.cardHolderUserId!==t.userId||l===!1&&A===!1||M?.type.code==="business_physical_debit_card"||M?.type.code==="business_virtual_debit_card")){const X=_e(s.tenantEmailDomain,a,t,M,l);e(X)}}),[g.fetchState,l,N]),r.useEffect((()=>{w.fetchState!=="Completed"&&w.fetchState!=="In-Progress"&&E&&C&&b&&n(Je()),y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&E&&C&&b&&n(vt()),F!=="Completed"&&F!=="In-Progress"&&n(Nn())}),[w.fetchState,y.fetchState,n,E,C,b,F]);const T=()=>{if(t!=null&&a!=null){n(Ka());const X=_e(s.tenantEmailDomain,a,t);e(X)}},v=M?.type.code==="business_physical_debit_card"||M?.type.code==="business_virtual_debit_card",P=ea(E,x,I,C),ae=xa(E,C,b,w,y),Ce=Ar(v,g);return g.fetchState!=="Completed"?o.jsx(wa,{fetchState:"In-Progress"}):o.jsxs(o.Fragment,{children:[o.jsx(tt,{showConfetti:l}),o.jsx(nc,{onGotItClick:T,isDebitCard:M?.type.code==="business_physical_debit_card",controllerEmails:V,isChargeCardFeatureEnabled:E,isDebitCardFeatureEnabled:x,isDebitCardSetupEnabled:I,isChargeCardSetupEnabled:C,productInformation:P,creditAccountInformation:ae,debitAccountInformation:Ce,chargeCardDetailView:g,creditAccount:w,classListFetchState:F,creditAccountRepayment:y,cardIssuedByRoles:z?.userRoles,cardIssuedByDepartmentName:h?.className,cardHolderRoles:W?.userRoles,cardHolderDepartmentName:Z?.className})]})}const Lr="charge-card-transaction-update",Br="charge-card-transaction-created",Rr="charge-card-transaction-declined",Or="charge-card-transaction-updated",Ur="charge-card-transaction-receipt-uploaded",pa="charge-card-status-update",Vt="charge-card-spending-updated",ot="credit-account-balance-updated",ct="charge-card-created",Ht="charge-card-limit-updated",Gt="charge-card-limit-reset",$t="charge-card-renamed",Yc="charge-card-department-updated",jr="charge-card-repayment-completed",Mr="charge-card-payment-date-updated",La="charge-card-cashback-redeemed",Ba="charge-card-cashback-earned",ha=(e,a)=>e==null||e===""?[]:a.map((n=>`private-encrypted-${e}.${n}`)),Zc=[Ba,La],qc=Pe((function(e){const a=ma(e);return{insightsData:a.insight,cashbackByPeriod:a.cashbackByPeriod,uiState:a.uiState,cashbackSummary:a.cashbackSummary}}),(function(e){return{onColumnSortConfigChanged:(a,n)=>{e(Ts({uiState:{sortKey:a,sortOrder:n}}))}}}))(sc);function Jc(){const e=ie(),a=le(),n=me(),t=te.getSignedInUser(),s=d((D=>ge(D))),[f,b]=r.useState(!1),m=d((D=>ma(D))),A=wr(s.companyId,{clearParams:m.fetchState==="Completed"}),u=r.useCallback((()=>{const D=we(n.state?.pathnameStackToGoBack),C=D.poppedPathname??Qc(s.tenantEmailDomain);e(C,{state:{pathnameStackToGoBack:D.newStack}})}),[e,n,s.tenantEmailDomain]),l=ta(s);if(Nt({events:ha(l,Zc),onEvent:D=>{switch(D){case Ba:case La:return void a(Da(!0))}},onSubscribed:()=>{a(Da(!0))}}),r.useEffect((()=>{f||m.fetchState==="Completed"||m.fetchState==="In-Progress"||(b(!0),a(Da()))}),[f,m,a]),t==null)throw Error("Can't access cashback detail page without signing in...");const B=m.cashbackSummary?.cashbackEarned?.amount!=null&&m.fetchState!=="Not-Started";return m.fetchState!=="In-Progress"||B?(m.cashbackSummary?.cashbackEarned?.amount??0)===0&&m.fetchState==="Completed"?o.jsx(st,{}):o.jsx(qc,{onBackClick:u,initialOpenThreadRequest:A}):o.jsx(rc,{onBackClick:u})}const Qc=e=>`/${e}/cards`,Xc={containerWidth:new Ta(100,58)},ei=({appContent:e})=>{const a=va(),n=le(),t=ie(),{cardId:s}=Ve(),f=me(),{useDynamicConfig:b}=de(),[m,A]=r.useState(!1),[u,l]=r.useState(!1),[B,D]=r.useState(!1),[C,O]=r.useState(!1),U=te.getSignedInUser();if(U==null)throw Error("Can't access onboarding card page without signing in...");const S=d((Z=>ge(Z)));if(s==null)throw Error("Empty card id is not valid...");const{configValue:c}=b(Xe.zeniCardsConfig),p=c.max_charge_card_activation_attempts_by_card_id,x=d((Z=>Fs(Z,s))),E=x.chargeCard,I=d((Z=>Z.chargeCardConfigState.fetchState)),{useFeatureGate:k}=de(),{isFeatureEnabled:V}=k(q.isChargeCardFeatureEnabled),{isFeatureEnabled:w}=k(q.isDebitCardFeatureEnabled),y=Be(w,S),F=Oe({isDebitCardFeatureEnabled:w,isBankingOnlyTenant:y}),i=!!S.companyChargeCardInfo?.info?.isChargeCardEnabled,g=S.userRole.includes("charge_card_user"),R=xe(S),G=Le(S),M=S.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,L=Ue({isCardsOnlyTenant:R,isChargeCardFeatureEnabled:V,isBookKeepingTenant:G,isDebitCardProductVisible:F,chargeCardsCreditAccountLimit:M}),z=!g&&L&&i;r.useEffect((()=>{m===!1&&I!=="In-Progress"&&I!=="Completed"&&(n(qa()),A(!0)),u===!1&&x.fetchState==="Not-Started"&&(l(!0),n(Ia(s,z,L)))}),[u,x.fetchState,m,I]);const j=E?.type.code==="business_physical_credit_card"||E?.type.code==="business_physical_debit_card";r.useEffect((()=>{if(x.fetchState==="Completed"){if(B===!1&&(j===!1||j&&E?.status?.code!=="inactive"||E?.cardHolderUserId!==U.userId)){const Z=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);t(Z,{state:{pathnameStackToGoBack:N}})}else if(B&&x.isRefreshingViewInBackground===!1&&E?.status?.code==="active"){n(xs({chargeCardId:s}));const Z=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);n(Ja()),t(Z,{state:{pathnameStackToGoBack:N}})}}}),[x.fetchState,E?.type.code,B,x.isRefreshingViewInBackground]);const h=te.getZeniOtpTokenForCardHolder(s),H=d((Z=>Vn(Z.userState,U.userId))),W=()=>{E?.status?.code!=="active"&&n(ga(s,!0))};r.useEffect((()=>{x.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&E?.cardActivationAttemptHistory.some((Z=>Z.statusCode==="success"))===!0&&B===!1&&(setTimeout(W,3e3),D(!0))}),[x.updatePhysicalChargeCardAttemptFetchState.fetchState,E?.cardActivationAttemptHistory]);const _=Z=>{O(Z)};if(I!=="Completed"||E==null)return o.jsx(wa,{fetchState:"In-Progress"});if(E.shippingAddressId==null)throw Error("Can't access shippingAddressId.");if(H?.phone==null)throw Error("Can't access user phone number.");return o.jsxs(ni,{children:[o.jsx(Ae,{isAppContentDrawerOpen:C,handleDrawerToggle:_}),o.jsx(ai,{cardId:s,card:E,shippingAddressId:E.shippingAddressId,phone:H.phone,signedInUser:U,isSandboxEnv:Bt(),chargeCardDetailState:x,signedInUserToken:h,navigate:t,currentTenant:S,location:f,maxChargeCardActivationAttempts:p[s]!=null?p[s]:c.default_max_charge_card_activation_attempts!=null?c.default_max_charge_card_activation_attempts:3,chargeCardCashbackRatePerTransaction:c.charge_card_cashback_rate_per_transaction!=null?c.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{_(!0)}}),e!=null?o.jsx(ti,{windowSize:a,children:e}):null]})},ai=Pe((function(e,{chargeCardDetailState:a,shippingAddressId:n,location:t,cardId:s}){const f=Ls(e.addressState,n);if(f==null)throw Error("Can't access shippingAddress.");const b=Hn(e,s),m=a.updateStatus,A=Ca(e,!1,!1,!1);let u=!1;A.fetchState==="Completed"&&A.cards.length<=1&&(u=!0);const l=t.state?.message==="comingFromV2UrlPath";return{showActivatePage:a.chargeCard?.providerCardCreateTime!=null&&a.chargeCard.providerCardCreateTime.add(24,"h").isBefore(Bs())||l,showMenuIcon:u,shippingAddress:f,vgsVaultId:nt.cardVaultId,twoFAView:b,activationWaitStatus:m,isRefreshingViewInBackground:a.isRefreshingViewInBackground}}),(function(e,a){const{navigate:n,cardId:t,location:s,currentTenant:f,chargeCardDetailState:b}=a,m=b.chargeCard?.cardProviderID,{tenantEmailDomain:A}=f;return{onGetOtp:u=>{m!=null&&e(et(u,"ChargeCardHolder",t))},onUpdatePhysicalChargeCardAttempt:u=>{e(Os(t,u))},onResendOtp:u=>{m!=null&&e(Xa(u,"ChargeCardHolder",t))},onVerifyOtp:(u,l)=>{m!=null&&e(Qa(u,l,"ChargeCardHolder",t))},onVerifyOtpSuccess:u=>{u!=null&&te.saveZeniOtpTokenForCardHolder(u,t)},onCVVActivateSuccess:()=>{e(Rs({chargeCardId:t}))},onBackClick:()=>{const u=we(s.state?.pathnameStackToGoBack),l=u.poppedPathname==null||u.poppedPathname.includes("onboard")===!0?na(A):u.poppedPathname;n(l,{state:{pathnameStackToGoBack:u.newStack}})}}}))(oc),ti=He.div`
|
|
1
|
+
import{j as o}from"./liveblocks-ByZ2hLlh.js";import{u as le,j as d,h as ie,g as me,i as Ve,N as Qe,s as Dt,l as Pe,t as Dn,n as os,o as ne}from"./core-DV1n0xnE.js";import{fV as _t,a01 as cs,g5 as Pt,bu as Fe,a02 as is,a03 as ds,fK as hn,a04 as _n,fT as Pn,a05 as wn,a06 as vn,a07 as Tn,a08 as Fn,fU as xn,g4 as Ln,a09 as Bn,a0a as ls,f_ as us,fZ as ms,a0b as Cs,Ke as Rn,g7 as ia,a0c as ps,a0d as hs,fM as fs,fL as gs,gk as Ye,g0 as On,f$ as Un,a0e as bs,g1 as Ss,JM as ys,JL as Is,JP as ks,JR as Es,gd as As,fH as jn,a0f as Ds,a0g as _s,gi as Mn,a0h as Ps,gj as St,JX as ws,JU as vs,fI as ge,a0i as Za,d$ as xe,dj as Le,e0 as Be,h1 as da,cC as la,a0j as ua,a0k as wt,D3 as Ga,ma as $a,a0l as Ka,Ku as Ia,g8 as Je,Kw as vt,m0 as Nn,a0m as ma,Ki as Da,a0n as Ts,a0o as Fs,Kl as qa,a0p as xs,Ze as Ja,g3 as Vn,Kr as ga,it as Ls,a0q as Hn,fW as Ca,br as Bs,a0r as Rs,gJ as Qa,gI as Xa,K_ as Os,gH as et,a0s as Gn,cv as $n,db as Us,Zd as Pa,Lz as Kn,a0t as fn,L9 as _a,a0u as zn,LA as js,ZD as Ms,LB as Ns,MG as Vs,Cj as Hs,MA as Gs,a0v as $s,Kv as oa,a0w as Ks,a0x as zs,a0y as Ys,a0z as Ws,a0A as Zs,a0B as Tt,a0C as qs,KL as Yn,KE as Js,a0D as Qs,h3 as Xs,a0E as Wn,KU as Zn,KY as qn,h2 as eo,a0F as ao,Ll as Jn,a0G as to,a0H as no,a0I as ro,KW as Qn,KH as Xn,Ko as er,KQ as ar,KO as tr,KS as so,a0J as nr,a0K as oo,gf as co,gg as io,gh as lo,a0L as at,g9 as rr,dd as Ft,a0M as uo,a0N as mo,a0O as Co,a0P as po,L4 as yt,Ls as ho,Lo as fo,L0 as go,Lq as bo,Lg as So,Li as yo,a0Q as sr,Ly as Ha,Sp as Io,a0R as ko,a0S as Eo,a0T as Ao,a0U as or,a0V as Do,LV as _o,L8 as cr,L3 as Ne,L7 as Po,a0W as wo,a0X as vo,Kf as To,a0Y as ir,g2 as dr,a0Z as Fo,Kh as xo,Kg as gn,a0_ as Lo,a0$ as Bo,a10 as Ro,Vx as Oo,a11 as xt,a12 as Uo,xp as lr,mK as jo,ii as Mo,L_ as No,a13 as ur,fQ as Vo,fR as Ho,a14 as Go,dQ as $o,g6 as Ko,LQ as zo,LK as qe,bq as Yo,bK as Wo,cH as Zo,bL as qo,Uo as Jo}from"./zeni-epic-state-Cw9Z8Rxj.js";import{O as Re,de as mr,a4 as we,df as Cr,dg as pr,dh as Qo,G as aa,as as Lt,di as Xo,dj as ec,a as hr,e as fr,ar as gr,p as Ee,_ as de,f as q,j as Sa,dk as br,dl as ac,dm as tc,z as te,a7 as wa,d3 as tt,dn as nc,dp as rc,dq as sc,a1 as va,bi as Xe,bF as Bt,dr as oc,ab as Ta,Y as nt,E as Rt,k as ee,w as rt,ds as cc,bR as ba,dt as It,du as ic,a8 as Ot,dv as dc,ae as Sr,av as kt,dw as lc,aq as yr,X as Ir,S as kr,bn as uc,dx as mc,dy as Cc,dz as pc,dA as hc,dB as fc,dC as gc,M as za,dD as bc,dE as Sc,m as pt,c as yc,dF as Ic,dG as kc,dH as Ec,ai as Ac,dI as Dc,dJ as _c,h as Pc}from"./index-CQb5WoEC.js";import{n as He,D as Er,S as wc}from"./mui-jYJOd_FH.js";import{a as r}from"./sentry-DhrLg200.js";import{u as Fa}from"./useAskAiCfoHostNavButtonProps-Dz2Nti66.js";import{M as Ae}from"./MobileAppDrawer-OUkc6SS6.js";import{d as Ut}from"./recharts-DzomOU1a.js";import{g as _e,a as xa,b as Ar,c as Oe,d as Ue,e as ea,f as ta,h as na,A as vc,i as jt,P as Tc,j as Mt,s as ya,k as Dr,l as ca,m as _r,n as Fc,o as Pr,p as xc,S as bn}from"./SetupPagesScreen-CaUjvNzq.js";import{u as wr}from"./useInitialThreadRequest-D99s7mit.js";import st from"./NotFoundScreen-D6Ewfl9l.js";import{u as Nt}from"./useChargeCardPusherEvents-Cl6UaMMU.js";import{n as Sn}from"./utils-CHwCuPu8.js";import{t as Lc}from"./AddressScreen-DFE2TJ9k.js";import"./analytics-BPoZyeUe.js";import"./plaid-DlHdcMRS.js";import"./dnd-DhK11Cna.js";import"./stripe-cKAAJElX.js";import"./lottie-DLdOGyRC.js";import"./lexical-Dm0ggfHI.js";import"./pdf-BNP0Aa3G.js";import"./InboxNotificationsProvider-Dho-IKGo.js";import"./useTaskManagerAccess-B51fCe2G.js";import"./BusinessVerificationPageScreen-qcXHutsr.js";import"./routePaths-BHNMdM_O.js";import"./analyticsHelper-CLRmzZBe.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="13cb7fda-9709-4220-b67f-de06746d8f22",e._sentryDebugIdIdentifier="sentry-dbid-13cb7fda-9709-4220-b67f-de06746d8f22")}catch{}})();const Bc=e=>{const a=e.cardHolderUser,n=`${a.firstName??""} ${a.lastName??""}`.trim()||a.email||a.userId;return{userId:a.userId,displayName:n,roleLabel:e.cardHolderRoles?.titleAtCompany}},vr=e=>({id:e.id,isChecked:!1,cardName:e.cardName,last4:e.accountLast4,limitAmount:e.limit?.amount??0,limitCadence:e.creditLimitFrequency?.code,owner:Bc(e),utilizationAmount:(e.limit?.amount??0)-(e.available?.amount??0)});function Tr(){const e=le(),a=d((t=>_t(t.cardPolicyState))),n=d((t=>cs(t.cardPolicyState)));r.useEffect((()=>{n!==""||a==="Completed"&&n===""||a==="In-Progress"||e(Pt())}),[e,a,n])}const{spendManagement:{chargeCard:{cardPolicyPage:yn}}}=aa.getLocalizedStrings(),Rc=e=>On(e,!1),Oc=e=>Un(e.name,!1);function Uc(){const e=ie(),a=me(),{tenantEmailDomain:n}=Ve(),t=le(),s=Re(),f=Fe(s?.loggedInUserRoleMap),[b,m]=r.useState(!1),A=r.useCallback((P=>{m(P)}),[]),u=r.useCallback((()=>{A(!0)}),[A]),{isAiCfoAccessEnabled:l,onAskAiCfoClick:B}=Fa({mobileExploreReferrer:"Card Policy"});r.useEffect((()=>()=>{t(is()),t(ds()),t(hn())}),[t]);const D=d((P=>_n(P.cardPolicyState))),C=d((P=>Pn(P.cardPolicyState))),O=d((P=>wn(P.cardPolicyState))),U=d((P=>vn(P.cardPolicyState))),S=d((P=>Tn(P.cardPolicyState))),c=d((P=>Fn(P.cardPolicyState))),p=d((P=>xn(P.cardPolicyState))),x=d((P=>_t(P.cardPolicyState))),E=d((P=>P.chargeCardConfigState.receiptRequiredAboveAmount.amount)),I=d((P=>P.chargeCardConfigState.fetchState));r.useEffect((()=>{D!=="Completed"&&D!=="In-Progress"&&t(Ln())}),[t,D]),Tr();const k=d((P=>Bn(P.createCardPolicyState))),V=d((P=>ls(P.createCardPolicyState))),w=d((P=>us(P.cardPolicyState))),y=d((P=>ms(P.cardPolicyState))),F=d((P=>Cs(P.createCardPolicyState))),i=d((P=>Rn(P)));r.useEffect((()=>{i.fetchState==="Not-Started"&&t(ia(!1,!1,!1))}),[i.fetchState,t]);const g=r.useMemo((()=>C.map(Rc)),[C]),R=r.useMemo((()=>p.map(Oc)),[p]),G=r.useMemo((()=>i.cards.filter((P=>!mr(P.status.code))).map(vr)),[i.cards]),M=D==="Completed"&&i.fetchState==="Completed"&&I==="Completed";r.useEffect((()=>{M&&F==null&&t(ps({cardsMasterList:G,defaultRequireReceiptAmount:E,suggestedAllowMerchants:O,suggestedBlockMerchants:U,suggestedAllowCategories:S,suggestedBlockCategories:c}))}),[I,t,M,F,G,E,O,U,S,c]);const L=r.useMemo((()=>Ut((P=>{t(Pt(P))}),250)),[t]);r.useEffect((()=>()=>{L.cancel()}),[L]);const z=r.useCallback((P=>{L(P)}),[L]),j=k.fetchState,h=n!=null?`/${n}/cards/policy`:"..",H=r.useCallback((()=>{const P=we(a.state?.pathnameStackToGoBack),ae=P.poppedPathname??h;e(ae,{state:{pathnameStackToGoBack:P.newStack}})}),[a.state,e,h]),Y=r.useCallback((()=>{e(h)}),[e,h]),_=r.useCallback((P=>{t(hs(P))}),[t]),Z=r.useCallback((P=>{const ae=Cr(P);t(fs({templates:[ae]}))}),[t]),N=r.useCallback((P=>{P.length!==0&&t(gs(P))}),[t]),$=r.useCallback((()=>{t(hn())}),[t]),T=r.useRef(j);r.useEffect((()=>{const P=T.current;T.current=j,j==="Completed"&&P!=="Completed"&&V!=null&&(t(Ye({messageSection:"card_policy_created",messageText:"success",type:"success"})),e(h))}),[t,j,V,e,h]);const v=j==="Error"?k.error?.message??yn.createPolicyGenericErrorMessage:void 0;return f&&n!=null?F==null?o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(pr,{showUploadDocumentSection:!0,navBarTitle:yn.createPageTitle,onBackClick:H,onClickMenuIcon:u,isAiCfoAccessEnabled:l,onAskAiCfoClick:B})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(Qo,{formDraft:F,vendorSearchOptions:R,categorySearchOptions:g,isVendorSearchLoading:x==="In-Progress",onVendorSearchTextChange:z,submitState:j,submitErrorMessage:v,documentUploadState:w,uploadedFileName:y,isAiCfoAccessEnabled:l,onAskAiCfoClick:B,onBackClick:H,onCancelClick:Y,onClickMenuIcon:u,onFormChange:_,onSubmit:Z,onUploadDocument:N,onRemoveDocument:$})]}):o.jsx(Qe,{to:"..",replace:!0})}const{spendManagement:{chargeCard:{cardPolicyPage:jc}}}=aa.getLocalizedStrings(),Mc=e=>On(e,!1),Nc=e=>Un(e.name,!1);function Vc(){const e=ie(),a=me(),{tenantEmailDomain:n,templateId:t}=Ve(),s=le(),f=Re(),b=Fe(f?.loggedInUserRoleMap),[m,A]=r.useState(!1),u=r.useCallback((v=>{A(v)}),[]),l=r.useCallback((()=>{u(!0)}),[u]),{isAiCfoAccessEnabled:B,onAskAiCfoClick:D}=Fa({mobileExploreReferrer:"Card Policy"}),C=d((v=>bs(v))),O=d((v=>_n(v.cardPolicyState))),U=d((v=>Pn(v.cardPolicyState))),S=d((v=>wn(v.cardPolicyState))),c=d((v=>vn(v.cardPolicyState))),p=d((v=>Tn(v.cardPolicyState))),x=d((v=>Fn(v.cardPolicyState))),E=d((v=>xn(v.cardPolicyState))),I=d((v=>_t(v.cardPolicyState))),k=d((v=>Rn(v))),V=d((v=>t!=null?Ss(v.cardPolicyState,t):void 0)),w=r.useMemo((()=>C.templateId===t&&C.formDraft!=null?C.formDraft:V!=null?ys(V):void 0),[C.templateId,C.formDraft,V,t]);r.useEffect((()=>{if(t==null)return;const v=C.detailFetchState.fetchState;C.templateId===t&&(v==="Completed"||v==="In-Progress")||V!=null||s(Is(t))}),[s,t,C.templateId,C.detailFetchState.fetchState,V]),r.useEffect((()=>{O!=="Completed"&&O!=="In-Progress"&&s(Ln())}),[s,O]),Tr();const y=d((v=>v.chargeCardConfigState.receiptRequiredAboveAmount.amount));r.useEffect((()=>{k.fetchState==="Not-Started"&&s(ia(!1,!1,!1))}),[k.fetchState,s]);const F=r.useMemo((()=>U.map(Mc)),[U]),i=r.useMemo((()=>E.map(Nc)),[E]),g=r.useMemo((()=>k.cards.filter((v=>!mr(v.status.code))).map(vr)),[k.cards]);Lt({isDataReady:w!=null});const R=r.useMemo((()=>{if(w!=null)return Xo({draft:w,cardRows:g,categorySearchOptions:F,vendorSearchOptions:i,defaultRequireReceiptAmount:y,suggestedAllowMerchants:S,suggestedBlockMerchants:c,suggestedAllowCategories:p,suggestedBlockCategories:x})}),[w,g,F,i,y,S,c,p,x]),[G,M]=r.useState(void 0),L=r.useRef(!1);r.useEffect((()=>{L.current||G!=null||R==null||(L.current=!0,M(R))}),[G,R]);const z=r.useCallback((v=>{M(v)}),[]),j=r.useMemo((()=>Ut((v=>{s(Pt(v))}),250)),[s]);r.useEffect((()=>()=>{j.cancel()}),[j]);const h=r.useCallback((v=>{j(v)}),[j]),H=C.updateFetchState.fetchState,Y=n!=null?`/${n}/cards/policy`:"..",_=r.useCallback((()=>{const v=we(a.state?.pathnameStackToGoBack),P=v.poppedPathname??Y;e(P,{state:{pathnameStackToGoBack:v.newStack}})}),[a.state,e,Y]),Z=r.useCallback((()=>{e(Y)}),[e,Y]),N=r.useCallback((v=>{if(t==null)return;const P=Cr(v);s(ks(P)),s(Es(t))}),[s,t]),$=r.useRef(H);r.useEffect((()=>{const v=$.current;$.current=H,H==="Completed"&&v!=="Completed"&&(s(Ye({messageSection:"card_policy_updated",messageText:"success",type:"success"})),e(Y))}),[s,H,e,Y]);const T=H==="Error"?C.updateFetchState.error?.message??jc.updatePolicyGenericErrorMessage:void 0;return!b||n==null||t==null?o.jsx(Qe,{to:"..",replace:!0}):G!=null&&O==="Completed"&&k.fetchState==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:m,handleDrawerToggle:u}),o.jsx(ec,{templateName:C.template?.name??"",formDraft:G,vendorSearchOptions:i,categorySearchOptions:F,isVendorSearchLoading:I==="In-Progress",onVendorSearchTextChange:h,submitState:H,submitErrorMessage:T,isAiCfoAccessEnabled:B,onAskAiCfoClick:D,onBackClick:_,onCancelClick:Z,onClickMenuIcon:l,onFormChange:z,onSubmit:N})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:m,handleDrawerToggle:u}),o.jsx(pr,{showUploadDocumentSection:!1,navBarTitle:C.template?.name,onBackClick:_,onClickMenuIcon:l,isAiCfoAccessEnabled:B,onAskAiCfoClick:D})]})}function Fr(e,a,n){return a?e.filter((t=>t!=null&&t.trim().length>0)).slice(0,n):[]}function xr(e){return d((a=>e==null||e===""?{chips:ht,isResolved:!1}:(function(n){const t=n?.fetchState,s=t==="Completed"||t==="Error";return{chips:t==="Completed"?n?.suggestedQuestions??ht:ht,isResolved:s}})(As(a,e))),Dt)}const ht=[],{spendManagement:{chargeCard:{cardPolicyAiCfoHero:{headline:Hc,subheadline:Gc,pageTitle:$c}}}}=aa.getLocalizedStrings(),Kc=e=>{const a=e.cardsCount>0?e.cardsCount:e.appliedCards.length,n=e.allowedEntity.merchantNames.length+e.blockedEntity.merchantNames.length,t=e.allowedEntity.categoryCodes.length+e.blockedEntity.categoryCodes.length;return{templateId:e.templateId,name:e.name,description:e.description,mode:e.mode==="flexible"?"flexible":"strict",createdAtFormatted:e.createdAt.format("ll"),cardsCount:a,vendorRestrictionsCount:n,categoryRestrictionsCount:t}};function zc(){const e=ie(),a=me(),{tenantEmailDomain:n}=Ve(),t=le(),s=Re(),f=Fe(s?.loggedInUserRoleMap),[b,m]=r.useState(!1),A=r.useCallback((h=>{m(h)}),[]),u=r.useCallback((()=>{A(!0)}),[A]),{useFeatureGate:l}=de(),{isFeatureEnabled:B}=l(q.isAiCfoFileUploadEnabled),{isFeatureEnabled:D}=l(q.isCardPolicyEnabled),{isAiCfoAccessEnabled:C,onAskAiCfoClick:O}=Fa({mobileExploreReferrer:"Card Policy"}),U=d((h=>Ds(h))),S=d((h=>Bn(h.createCardPolicyState))),c=d((h=>_s(h.createCardPolicyState))),p=d((h=>c==null?[]:Mn(h.aiCfoState,c).filter((H=>H.kind==="creating_policy"))),Dt),x=S.fetchState==="In-Progress"?Math.max(p.length,1):0,E=d((h=>Ps(h.createCardPolicyState))),I=Sa(S.fetchState);r.useEffect((()=>{if(I==="In-Progress"&&S.fetchState==="Completed"&&c!=null)p.forEach((h=>{t(St({chatSessionId:c,id:h.id,entityIds:E,kind:"created_policy"}))}));else if(I==="In-Progress"&&S.fetchState==="Error"&&c!=null){p.forEach((H=>{t(St({chatSessionId:c,id:H.id,kind:"errored_policy"}))}));const h=S.error?.message!=null&&S.error.message.length>0?S.error.message:aa.getLocalizedStrings().common.errorMessage.somethingWentWrongPleaseTryAgain;t(Ye({messageSection:"card_policy_created",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:h}]}))}}),[S.error?.message,S.fetchState,t,c,E,p,I]);const k=U.fetchState.fetchState;r.useEffect((()=>{k!=="Not-Started"&&k!=="Error"||t(ws())}),[t,k]);const V=U.archiveFetchState.fetchState,w=Sa(V);r.useEffect((()=>{w==="In-Progress"&&V==="Completed"&&t(Ye({messageSection:"card_policy_deleted",messageText:"success",type:"success"}))}),[V,t,w]);const y=r.useMemo((()=>U.templates.map(Kc)),[U.templates]);Lt({isDataReady:U.fetchState.fetchState==="Completed"});const F=y.length>0||x>0,i=(function(h){const{hasAnyPolicies:H,isChargeCardAdmin:Y,isFileUploadEnabled:_}=h,Z=ie(),N=me(),{tenantEmailDomain:$}=Ve(),{isAiCfoOpen:T,setIsAiCfoOpen:v}=hr(),P=fr(),ae=gr(),Ce=d((J=>jn(J))).createSessionAndSubmitState.fetchState==="In-Progress",{chips:X,isResolved:ve}=xr("card_policy"),Ie=r.useMemo((()=>Fr(X,ve,3)),[X,ve]),[re,be]=r.useState(""),pe=ae&&P&&$!=null&&!T,he=r.useCallback((J=>{if($==null)return;const Ge=Ee(N.state?.pathnameStackToGoBack,N.pathname);Z(`/${$}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Ge,referrer:"card_policy_hero",aiCfoInitialQuestion:J,aiCfoShouldSubmit:J!=null&&J.trim().length>0}})}),[N.pathname,N.state,Z,$]),oe=r.useCallback((J=>{J.trim().length!==0&&(be(""),he(J))}),[he]),Q=r.useCallback((()=>{const J=re.trim();J.length!==0&&(be(""),he(J))}),[re,he]),Se=r.useCallback((()=>{}),[]),De=r.useCallback((J=>{be(J)}),[]),fe=r.useCallback((()=>{v(!0)}),[v]),Te=r.useCallback((()=>{he(void 0)}),[he]);return r.useMemo((()=>{if(pe&&!H&&Y)return{aiAgentName:$c,headline:Hc,subheadline:Gc,promptChips:Ie,composer:{currentInput:re,isSubmitting:Ce,isFileUploadEnabled:_,onInputChange:De,onSubmit:Q,onStopSubmit:Se},onPromptClick:oe,onOpenSidePanel:fe,onOpenFullView:Te,dataTestIdPrefix:"card-policy-ai-cfo-hero"}}),[re,H,pe,Y,_,Ce,De,Te,fe,oe,Se,Q,Ie])})({hasAnyPolicies:F,isChargeCardAdmin:f,isFileUploadEnabled:B}),g=D&&i!=null?o.jsx(br,{...i}):null,R=C&&g==null,G=r.useCallback((()=>{const h=we(a.state?.pathnameStackToGoBack),H=h.poppedPathname??"..";e(H,{state:{pathnameStackToGoBack:h.newStack}})}),[a.state,e]),M=r.useCallback((()=>{n!=null&&e(`/${n}/cards/policy/new`)}),[e,n]),L=r.useCallback((h=>{n!=null&&e(`/${n}/cards/policy/${h}/edit`)}),[e,n]),z=r.useCallback((h=>{t(vs(h))}),[t]),j=U.fetchState.fetchState;return!F&&j!=="Completed"&&j!=="Error"?o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(ac,{onBackClick:G,onNewPolicyClick:M,onClickMenuIcon:u,isAiCfoAccessEnabled:C,onAskAiCfoClick:O})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(tc,{policies:y,archivingTemplateId:U.archiveTargetTemplateId,pendingCreationCount:x,onBackClick:G,onNewPolicyClick:M,onEditPolicyClick:L,onArchivePolicyClick:z,onClickMenuIcon:u,policyAiCfoHero:g,isAiCfoAccessEnabled:R,onAskAiCfoClick:O})]})}function Yc(){const e=ie(),{cardId:a}=Ve(),n=le(),t=te.getSignedInUser(),s=d((X=>ge(X))),f=Re(),b=Fe(f?.loggedInUserRoleMap),{useFeatureGate:m}=de();if(t==null)throw Error("Can't access Add To Wallet Page without signing in...");const[A,u]=r.useState(!1),l=d((X=>Za(X).firstViewAfterActivation));if(a==null)throw Error("Empty card id is not valid...");const B=s.userRole.includes("charge_card_user"),{isFeatureEnabled:D}=m(q.isChargeCardFeatureEnabled),C=!!s.companyChargeCardInfo?.info?.isChargeCardEnabled,{isFeatureEnabled:O}=m(q.isDebitCardFeatureEnabled),U=xe(s),S=Le(s),c=Be(O,s),p=s.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,x=Oe({isDebitCardFeatureEnabled:O,isBankingOnlyTenant:c}),E=Ue({isCardsOnlyTenant:U,isChargeCardFeatureEnabled:D,isBookKeepingTenant:S,isDebitCardProductVisible:x,chargeCardsCreditAccountLimit:p}),I=!!s.companyDebitCardInfo?.info?.isDebitCardEnabled,k=d((X=>da(X,s.companyId))),V=la(k.controllers),{creditAccount:w,creditAccountRepayment:y}=d((X=>ua(X))),F=d((X=>X.classListState.fetchState)),i=!B&&E&&C,g=d((X=>wt(X,a,i,E))),[R,G]=r.useState(!1),M=g.chargeCard,L=M?.cardCreatedByUser?.userId,z=d((X=>L!=null?Ga(X.userRoleState,L):void 0)),j=z?.accountingClassIDs[0],h=d((X=>j!=null?$a(X.classState,{classId:j,reportId:"class_list"}):void 0)),H=M?.cardHolderUser?.userId,Y=d((X=>H!=null?Ga(X.userRoleState,H):void 0)),_=Y?.accountingClassIDs[0],Z=d((X=>_!=null?$a(X.classState,{classId:_,reportId:"class_list"}):void 0)),N=M?.type.code==="business_physical_credit_card"||M?.type.code==="business_physical_debit_card",$=M?.type.code==="business_physical_debit_card";r.useEffect((()=>{l&&A===!1&&N&&(u(!0),setTimeout((()=>{n(Ka()),$&&n(Ye({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))}),5e3))}),[l,A,N,$]),r.useEffect((()=>{R||g.fetchState==="Completed"||g.fetchState==="In-Progress"||a==null||(G(!0),n(Ia(a,i,!1)))}),[R,g,a,n]),r.useEffect((()=>{if(g.fetchState==="Completed"&&(N===!1||N&&M?.status?.code!=="active"||M?.cardHolderUserId!==t.userId||l===!1&&A===!1||M?.type.code==="business_physical_debit_card"||M?.type.code==="business_virtual_debit_card")){const X=_e(s.tenantEmailDomain,a,t,M,l);e(X)}}),[g.fetchState,l,N]),r.useEffect((()=>{w.fetchState!=="Completed"&&w.fetchState!=="In-Progress"&&E&&C&&b&&n(Je()),y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&E&&C&&b&&n(vt()),F!=="Completed"&&F!=="In-Progress"&&n(Nn())}),[w.fetchState,y.fetchState,n,E,C,b,F]);const T=()=>{if(t!=null&&a!=null){n(Ka());const X=_e(s.tenantEmailDomain,a,t);e(X)}},v=M?.type.code==="business_physical_debit_card"||M?.type.code==="business_virtual_debit_card",P=ea(E,x,I,C),ae=xa(E,C,b,w,y),Ce=Ar(v,g);return g.fetchState!=="Completed"?o.jsx(wa,{fetchState:"In-Progress"}):o.jsxs(o.Fragment,{children:[o.jsx(tt,{showConfetti:l}),o.jsx(nc,{onGotItClick:T,isDebitCard:M?.type.code==="business_physical_debit_card",controllerEmails:V,isChargeCardFeatureEnabled:E,isDebitCardFeatureEnabled:x,isDebitCardSetupEnabled:I,isChargeCardSetupEnabled:C,productInformation:P,creditAccountInformation:ae,debitAccountInformation:Ce,chargeCardDetailView:g,creditAccount:w,classListFetchState:F,creditAccountRepayment:y,cardIssuedByRoles:z?.userRoles,cardIssuedByDepartmentName:h?.className,cardHolderRoles:Y?.userRoles,cardHolderDepartmentName:Z?.className})]})}const Lr="charge-card-transaction-update",Br="charge-card-transaction-created",Rr="charge-card-transaction-declined",Or="charge-card-transaction-updated",Ur="charge-card-transaction-receipt-uploaded",pa="charge-card-status-update",Vt="charge-card-spending-updated",ot="credit-account-balance-updated",ct="charge-card-created",Ht="charge-card-limit-updated",Gt="charge-card-limit-reset",$t="charge-card-renamed",Wc="charge-card-department-updated",jr="charge-card-repayment-completed",Mr="charge-card-payment-date-updated",La="charge-card-cashback-redeemed",Ba="charge-card-cashback-earned",ha=(e,a)=>e==null||e===""?[]:a.map((n=>`private-encrypted-${e}.${n}`)),Zc=[Ba,La],qc=Pe((function(e){const a=ma(e);return{insightsData:a.insight,cashbackByPeriod:a.cashbackByPeriod,uiState:a.uiState,cashbackSummary:a.cashbackSummary}}),(function(e){return{onColumnSortConfigChanged:(a,n)=>{e(Ts({uiState:{sortKey:a,sortOrder:n}}))}}}))(sc);function Jc(){const e=ie(),a=le(),n=me(),t=te.getSignedInUser(),s=d((D=>ge(D))),[f,b]=r.useState(!1),m=d((D=>ma(D))),A=wr(s.companyId,{clearParams:m.fetchState==="Completed"}),u=r.useCallback((()=>{const D=we(n.state?.pathnameStackToGoBack),C=D.poppedPathname??Qc(s.tenantEmailDomain);e(C,{state:{pathnameStackToGoBack:D.newStack}})}),[e,n,s.tenantEmailDomain]),l=ta(s);if(Nt({events:ha(l,Zc),onEvent:D=>{switch(D){case Ba:case La:return void a(Da(!0))}},onSubscribed:()=>{a(Da(!0))}}),r.useEffect((()=>{f||m.fetchState==="Completed"||m.fetchState==="In-Progress"||(b(!0),a(Da()))}),[f,m,a]),t==null)throw Error("Can't access cashback detail page without signing in...");const B=m.cashbackSummary?.cashbackEarned?.amount!=null&&m.fetchState!=="Not-Started";return m.fetchState!=="In-Progress"||B?(m.cashbackSummary?.cashbackEarned?.amount??0)===0&&m.fetchState==="Completed"?o.jsx(st,{}):o.jsx(qc,{onBackClick:u,initialOpenThreadRequest:A}):o.jsx(rc,{onBackClick:u})}const Qc=e=>`/${e}/cards`,Xc={containerWidth:new Ta(100,58)},ei=({appContent:e})=>{const a=va(),n=le(),t=ie(),{cardId:s}=Ve(),f=me(),{useDynamicConfig:b}=de(),[m,A]=r.useState(!1),[u,l]=r.useState(!1),[B,D]=r.useState(!1),[C,O]=r.useState(!1),U=te.getSignedInUser();if(U==null)throw Error("Can't access onboarding card page without signing in...");const S=d((Z=>ge(Z)));if(s==null)throw Error("Empty card id is not valid...");const{configValue:c}=b(Xe.zeniCardsConfig),p=c.max_charge_card_activation_attempts_by_card_id,x=d((Z=>Fs(Z,s))),E=x.chargeCard,I=d((Z=>Z.chargeCardConfigState.fetchState)),{useFeatureGate:k}=de(),{isFeatureEnabled:V}=k(q.isChargeCardFeatureEnabled),{isFeatureEnabled:w}=k(q.isDebitCardFeatureEnabled),y=Be(w,S),F=Oe({isDebitCardFeatureEnabled:w,isBankingOnlyTenant:y}),i=!!S.companyChargeCardInfo?.info?.isChargeCardEnabled,g=S.userRole.includes("charge_card_user"),R=xe(S),G=Le(S),M=S.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,L=Ue({isCardsOnlyTenant:R,isChargeCardFeatureEnabled:V,isBookKeepingTenant:G,isDebitCardProductVisible:F,chargeCardsCreditAccountLimit:M}),z=!g&&L&&i;r.useEffect((()=>{m===!1&&I!=="In-Progress"&&I!=="Completed"&&(n(qa()),A(!0)),u===!1&&x.fetchState==="Not-Started"&&(l(!0),n(Ia(s,z,L)))}),[u,x.fetchState,m,I]);const j=E?.type.code==="business_physical_credit_card"||E?.type.code==="business_physical_debit_card";r.useEffect((()=>{if(x.fetchState==="Completed"){if(B===!1&&(j===!1||j&&E?.status?.code!=="inactive"||E?.cardHolderUserId!==U.userId)){const Z=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);t(Z,{state:{pathnameStackToGoBack:N}})}else if(B&&x.isRefreshingViewInBackground===!1&&E?.status?.code==="active"){n(xs({chargeCardId:s}));const Z=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);n(Ja()),t(Z,{state:{pathnameStackToGoBack:N}})}}}),[x.fetchState,E?.type.code,B,x.isRefreshingViewInBackground]);const h=te.getZeniOtpTokenForCardHolder(s),H=d((Z=>Vn(Z.userState,U.userId))),Y=()=>{E?.status?.code!=="active"&&n(ga(s,!0))};r.useEffect((()=>{x.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&E?.cardActivationAttemptHistory.some((Z=>Z.statusCode==="success"))===!0&&B===!1&&(setTimeout(Y,3e3),D(!0))}),[x.updatePhysicalChargeCardAttemptFetchState.fetchState,E?.cardActivationAttemptHistory]);const _=Z=>{O(Z)};if(I!=="Completed"||E==null)return o.jsx(wa,{fetchState:"In-Progress"});if(E.shippingAddressId==null)throw Error("Can't access shippingAddressId.");if(H?.phone==null)throw Error("Can't access user phone number.");return o.jsxs(ni,{children:[o.jsx(Ae,{isAppContentDrawerOpen:C,handleDrawerToggle:_}),o.jsx(ai,{cardId:s,card:E,shippingAddressId:E.shippingAddressId,phone:H.phone,signedInUser:U,isSandboxEnv:Bt(),chargeCardDetailState:x,signedInUserToken:h,navigate:t,currentTenant:S,location:f,maxChargeCardActivationAttempts:p[s]!=null?p[s]:c.default_max_charge_card_activation_attempts!=null?c.default_max_charge_card_activation_attempts:3,chargeCardCashbackRatePerTransaction:c.charge_card_cashback_rate_per_transaction!=null?c.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{_(!0)}}),e!=null?o.jsx(ti,{windowSize:a,children:e}):null]})},ai=Pe((function(e,{chargeCardDetailState:a,shippingAddressId:n,location:t,cardId:s}){const f=Ls(e.addressState,n);if(f==null)throw Error("Can't access shippingAddress.");const b=Hn(e,s),m=a.updateStatus,A=Ca(e,!1,!1,!1);let u=!1;A.fetchState==="Completed"&&A.cards.length<=1&&(u=!0);const l=t.state?.message==="comingFromV2UrlPath";return{showActivatePage:a.chargeCard?.providerCardCreateTime!=null&&a.chargeCard.providerCardCreateTime.add(24,"h").isBefore(Bs())||l,showMenuIcon:u,shippingAddress:f,vgsVaultId:nt.cardVaultId,twoFAView:b,activationWaitStatus:m,isRefreshingViewInBackground:a.isRefreshingViewInBackground}}),(function(e,a){const{navigate:n,cardId:t,location:s,currentTenant:f,chargeCardDetailState:b}=a,m=b.chargeCard?.cardProviderID,{tenantEmailDomain:A}=f;return{onGetOtp:u=>{m!=null&&e(et(u,"ChargeCardHolder",t))},onUpdatePhysicalChargeCardAttempt:u=>{e(Os(t,u))},onResendOtp:u=>{m!=null&&e(Xa(u,"ChargeCardHolder",t))},onVerifyOtp:(u,l)=>{m!=null&&e(Qa(u,l,"ChargeCardHolder",t))},onVerifyOtpSuccess:u=>{u!=null&&te.saveZeniOtpTokenForCardHolder(u,t)},onCVVActivateSuccess:()=>{e(Rs({chargeCardId:t}))},onBackClick:()=>{const u=we(s.state?.pathnameStackToGoBack),l=u.poppedPathname==null||u.poppedPathname.includes("onboard")===!0?na(A):u.poppedPathname;n(l,{state:{pathnameStackToGoBack:u.newStack}})}}}))(oc),ti=He.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
width: ${e=>`${Xc.containerWidth.value(e.windowSize)}%`};
|
|
@@ -11,18 +11,18 @@ import{j as o}from"./liveblocks-CQOAuUNI.js";import{u as le,j as d,h as ie,g as
|
|
|
11
11
|
flex-direction: column;
|
|
12
12
|
align-items: center;
|
|
13
13
|
background-color: ${e=>e.theme.colors.grey4};
|
|
14
|
-
`,
|
|
14
|
+
`,Ya=aa.getLocalizedStrings().dateFormat,ri={overlayWidth:new Ta(100,100,58)},Nr=[jr,ot],si=new Set(Nr),oi=Pe((function(e,a){const n=a.currentTenant?.companyId;return{plaidConnectionDetails:Ms(e,n,"zeni_accounts","external_account").plaidConnectionDetails,depositAccountListView:Ns(e.depositAccountState,e.depositAccountListState)}}),(function(e,a){const{navigate:n,currentTenant:t,isCashbackInfoFetchStateCompleted:s,isCreditCardInfoFetchStateCompleted:f,isDebitCardInfoFetchStateCompleted:b,controllerEmails:m,paymentDetails:A,productInformation:u,cashbackInformation:l,paymentSourceInformation:B,creditAccountInformation:D,debitAccountInformation:C,paymentInitiatedDate:O,sourcePage:U}=a,{tenantEmailDomain:S}=t,c=()=>{e(Kn(!0));const p=ta(t);p!=null&&p!==""&&e(_a(p,!0,!0)),e(Je(!0))};return{onBackNavigation:()=>{if(s&&f&&b&&l!=null&&ee.trackCardsPayEarlyFormClick(m,u,l,"Back",A.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:A.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:A.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:A.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:A.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:O?.add(3,"day").format(Ya.visual.MMMDCommaYYYYformat),paymentInitiatedDate:O?.format(Ya.visual.MMMDCommaYYYYformat)},B,D,C),U==="cardPaymentHistory")a.closeDrawerHandler(!0),e(zn());else{const p=na(S);n(p)}},onUpdatePaymentAccountStatus:(p,x,E)=>{e(Gs(p,x,"bill_pay","bill_pay_detail",E))},onEstablishConnectionSuccess:()=>{e(_a(t.companyId,!0))},onFetchLinkTokenClick:p=>{e(Hs("external_account",p))},onEstablishConnectionClick:p=>{e(Vs(p,t.companyId,"charge_card_payment","charge_cards"))},onEventReceived:p=>{si.has(p)&&c()},onPusherSubscribed:c}}))(rt(cc)),Kt=({isPaymentDrawerOpen:e,closeDrawerHandler:a,pageName:n,creditAccountSpentAmount:t,productInformation:s,sourcePage:f,creditAccountInformation:b,debitAccountInformation:m,cashbackInformation:A,isDebitCardInfoFetchStateCompleted:u,isCreditCardInfoFetchStateCompleted:l,isCashbackInfoFetchStateCompleted:B,paymentInitiatedDate:D,retryRepayment:C})=>{const O=ie(),{useDynamicConfig:U}=de(),S=d(($=>Gn($))),{creditAccount:c}=d(($=>ua($))),p=d(($=>ge($))),x=Rt(),E=va(),I=le(),k=te.getSignedInUser(),V=Re(),[w,y]=r.useState(!1),[F,i]=r.useState(!1),{configValue:g}=U(Xe.zeniCardsConfig),R=g.credit_card_auto_pay_threshold_by_company_id?.[p.companyId]??g.default_credit_card_auto_pay_threshold??vc,G=$n(V?.loggedInUserRoleMap),M=Us(V?.loggedInUserRoleMap),L=d(($=>Pa($,p.companyId))),z=L.companyChargeCardInfo?.primaryFundingAccount,j=L.allFundingAccounts.find(($=>$.id===z?.accountId)),h=d(($=>da($,p.companyId))),H=la(h.controllers);r.useEffect((()=>{if(S.fetchState!=="Completed"&&S.fetchState!=="In-Progress"&&I(Kn()),S.fetchState==="Completed"&&!F){const $=p.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,T=S.transferFromAccounts.find((P=>P.id===$));let v;if(f==="cardPaymentHistory"&&C){const P=C.paymentAccountId!=null?S.transferFromAccounts.find((ae=>ae.id===C.paymentAccountId)):void 0;v={amount:C.amount,isAutoRepayment:p.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:Sn(),transferFrom:P??T}}else v={amount:{amount:c.balance.amount+c.hold.amount,currencyCode:c.balance.currencyCode,currencySymbol:c.balance.currencySymbol},isAutoRepayment:p.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:Sn(),transferFrom:T};I(fn(v)),i(!0)}}),[S.fetchState,F,f,C,S.transferFromAccounts,p.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,p.companyChargeCardInfo?.info?.isAutoPayEnabled,c.balance.amount,c.balance.currencyCode,c.balance.currencySymbol,c.hold.amount,I]);const Y={isZeniCheckingEnabled:p.companyZeniAccountInfo?.info?.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:j?.accType==="depositAccount",creditCardPaymentSourceAccountName:j?.label,creditCardPaymentSourceAccountType:j?.accType,creditCardPaymentSourceLastFourDigits:j?.accountLast4,creditCardPaymentSourceBalance:j?.accountBalance?.available?.amount??0};if(r.useEffect((()=>{L.fetchState!=="Completed"&&L.fetchState!=="In-Progress"&&I(_a(p.companyId,!0))}),[L.fetchState]),r.useEffect((()=>{S.updateStatus==="Completed"&&A!=null&&B&&l&&u&&ee.trackCardsPayEarlyPayNowClick(H,s,A,S.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:S.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:S.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:S.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:S.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:D?.add(3,"day").format(Ya.visual.MMMDCommaYYYYformat),paymentInitiatedDate:D?.format(Ya.visual.MMMDCommaYYYYformat)},Y,b,m)}),[S.updateStatus,A,B,l,u,D]),r.useEffect((()=>{S.fetchState==="Completed"&&A!=null&&B&&l&&u&&!w&&e&&F&&A!=null&&(ee.trackCardsPayEarlyFormView(H,s,A,n,p.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,c.balance.amount,Y,b,m),y(!0))}),[S,B,l,u,w,e,F]),k==null)throw Error("Can't access invite people page without signing in...");const _=()=>{a(!0),I(zn())},Z=ta(p),N={events:e?ha(Z,Nr):[],eventCallback:($,T,v)=>{v.onEventReceived($)},onSubscribed:$=>{$.onPusherSubscribed()}};return o.jsx(o.Fragment,{children:o.jsx(Er,{onClose:()=>{_()},anchor:"right",transitionDuration:250,open:e,PaperProps:{style:{width:ri.overlayWidth.valuePercentage(E),boxShadow:"none"}},slotProps:{backdrop:{style:{backgroundColor:x.colors.black,opacity:.75,cursor:"pointer"}}},children:o.jsx(ci,{onClick:$=>$.stopPropagation(),children:o.jsx(oi,{...N,closeDrawerHandler:a,navigate:O,paymentDetails:S,creditAccountSpentAmount:t,onTransferClick:()=>{B&&l&&u&&A!=null&&ee.trackCardsPayEarlyFormClick(H,s,A,"Pay Now",S.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:S.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:S.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:S.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:S.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:void 0,paymentInitiatedDate:void 0},Y,b,m),I(js({companyId:p.companyId}))},onDismissClick:_,onSaveChangesToLocalStore:$=>{I(fn($))},currentTenant:p,hasZeniAccountsAdminAccess:G,isZeniAccountsUser:M,productInformation:s,sourcePage:f,controllerEmails:H,autoPayThreshold:R,paymentSourceInformation:Y,creditAccountInformation:b,debitAccountInformation:m,cashbackInformation:A,isCashbackInfoFetchStateCompleted:B,isCreditCardInfoFetchStateCompleted:l,isDebitCardInfoFetchStateCompleted:u,paymentInitiatedDate:D})})})})},ci=He(wc)`
|
|
15
15
|
display: flex;
|
|
16
16
|
min-height: 100%;
|
|
17
17
|
flex-direction: column;
|
|
18
|
-
`,zt=e=>e!=null&&typeof e=="object"?e:null,ce=e=>typeof e=="string"?e:void 0,Me=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,Ya=e=>e!=null&&typeof e=="object"&&typeof e.code=="string"&&typeof e.name=="string",ft=e=>{if(e==null||typeof e!="object")return!1;const a=e;return typeof a.transaction_id=="string"&&typeof a.amount=="number"&&typeof a.currency_code=="string"&&typeof a.currency_symbol=="string"&&typeof a.direction=="string"&&!!Ya(a.transaction_status)&&!!Ya(a.transaction_type)},Wt=(e,a)=>{const n=e?.card_status;if(!Ya(n))return null;const t=e?.is_locked_by_admin;return{cardId:a,cardStatus:n,isLockedByAdmin:typeof t=="boolean"?t:void 0}},Et=[Lr,Br,Rr,Or,Ur,pa,Vt,ot,Ht,Gt,$t],Vr=[Ba,La],ii=new Set([...Et,...Vr]),gt=aa.getLocalizedStrings().dateFormat,di=Pe((function(e,a){const{includeCreditAccountInfo:n,cardId:t,signedInUserToken:s,isChargeCardFeatureEnabled:f}=a,b=te.getSignedInUser(),m=e.tenantState.currentTenantId,A={userId:b?.userId??"",sessionId:b?.zeniSessionId??"",tenantId:m??""},u=wt(e,t,n,f),l=Qs(e,t),B=Xs(e);return{chargeCardDetailView:u,chargeCardsRecurringExpensesState:l,vgsVaultId:nt.cardVaultId,transactionAttachmentsEndpointToFetch:`${kt}/card_transaction_attachments`,transactionAttachmentEndpointToDownload:`${kt}/card_transaction_attachment`,authParams:A,isSnackbarOpen:B.isSnackbarOpen,cardsEndPoint:`${Sr.cardMicroServiceBaseUrl}`,signedInUserToken:u.twoFAView.token??s,receiptsEmail:Yn(e.tenantState,m)}}),(function(e,a){const{cardId:n,currentTenant:t,navigate:s,location:f,cardProviderId:b,includeCreditAccountInfo:m,setIsPaymentOpen:A,controllerEmails:u,productInformation:l,cashbackInformation:B,primaryFundingAccountDetails:D,creditAccountInformation:C,debitAccountInformation:O,isChargeCardFeatureEnabled:U}=a,{tenantEmailDomain:S}=t;return{onEventReceived:(c,p)=>{(({event:x,data:E,cardId:I,dispatch:k,subscribedEvents:V})=>{const w=zt(E);switch(x){case Ba:case La:return void k(Da(!0));case Lr:{const y=ce(w?.card_id);if(y==null||y!==I)return;const F=ce(w?.transaction_id),i=w?.transaction_status;return F!=null&&Ya(i)?void k(qs({transactionId:F,transactionStatus:i})):void k(oa(I,null,null,!0))}case pa:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=Wt(w,y);return F!=null?void k(Tt(F)):void k(ga(I,!0))}case Vt:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=ce(w?.currency_code),i=ce(w?.currency_symbol),g=Me(w?.balance);return F!=null&&i!=null&&g!=null?(k(Zs({cardId:y,currencyCode:F,currencySymbol:i,balance:g,hold:Me(w?.hold),dailyPurchaseSpends:Me(w?.daily_purchase_spends),monthlyPurchaseSpends:Me(w?.monthly_purchase_spends),dailyWithdrawals:Me(w?.daily_withdrawals),monthlyWithdrawals:Me(w?.monthly_withdrawals)})),void k(Je(!0))):(k(ga(I,!0)),void k(Je(!0)))}case ot:{const y=ce(w?.currency_code),F=ce(w?.currency_symbol),i=Me(w?.available_amount),g=Me(w?.balance_amount);return y!=null&&F!=null&&i!=null&&g!=null?void k(Ys({currencyCode:y,currencySymbol:F,available:i,balance:g,hold:Me(w?.hold_amount),cashback:Me(w?.cashback_amount)})):void k(Je(!0))}case Br:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=w?.transaction;return ft(F)?void k(Ws({cardId:y,transaction:F})):void k(oa(I,null,null,!0))}case Rr:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=w?.transaction;return ft(F)?void k(zs({cardId:y,declineReason:ce(w?.decline_reason),transaction:F})):void k(oa(I,null,null,!0))}case Or:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=w?.transaction;return ft(F)?void k(Ks({cardId:y,transaction:F})):void k(oa(I,null,null,!0))}case Ur:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=ce(w?.transaction_id),i=w?.attachment_file_paths;return F!=null&&Array.isArray(i)&&i.every((g=>typeof g=="string"))?void k($s({cardId:y,transactionId:F,attachmentFilePaths:i})):void k(oa(I,null,null,!0))}case Ht:case Gt:case $t:{const y=ce(w?.card_id);if(y==null||y!==I)return;k(ga(I,!0))}}})({event:c,data:p,cardId:n,dispatch:e,subscribedEvents:ii})},onPusherSubscribed:()=>{e(ga(n,!0)),e(oa(n,null,null,!0)),e(Je(!0))},onReloadTransactions:()=>{e(Ia(n,m,U))},onFetchChargeCardTransactionList:(c,p)=>{e(oa(n,c,p))},onUpdateScrollYOffset:c=>{},onGetOtp:c=>{b!=null&&e(et(c,"ChargeCardHolder",n))},onResendOtp:c=>{b!=null&&e(Xa(c,"ChargeCardHolder",n))},onVerifyOtp:(c,p)=>{b!=null&&e(Qa(c,p,"ChargeCardHolder",n))},onVerifyOtpSuccess:c=>{c!=null&&te.saveZeniOtpTokenForCardHolder(c,n)},onColorCodeChange:c=>{e(so(n,c))},onLockChargeCard:(c,p)=>{e(tr(c,n,p))},onUnlockChargeCard:c=>{e(ar(c,n))},onCloseChargeCard:c=>{e(er(n,c))},onFetchChargeCardsRecurringExpenses:()=>{e(Xn([n]))},updateChargeCardName:(c,p)=>{e(Qn(c,n,p))},updateChargeCardTransactionAttachments:(c,p)=>{p!=null&&e(ro({transactionId:c,data:p}))},updateChargeCardTransactionUploadReceiptsFetchStatus:(c,p,x,E)=>{e(no({chargeCardId:p,transactionId:c,fetchState:x,error:E}))},updateChargeCardTransactionReceiptsShowTick:(c,p,x)=>{e(to({chargeCardId:p,transactionId:c,shouldShowTick:x}))},onChargeCardRevokeInviteClick:()=>{e(Jn(n))},updateChargeCardTransactionIsViewReceiptClicked:(c,p,x)=>{e(ao({chargeCardId:p,transactionId:c,isViewReceiptClicked:x}))},onChargeCardTransactionRowClick:(c,p)=>{const x=Ee(f.state?.pathnameStackToGoBack,f.pathname);s(`../../transaction/${c}/${p}`,{state:{pathnameStackToGoBack:x}})},onBackClick:()=>{const c=we(f.state?.pathnameStackToGoBack),p=na(S);s(p,{state:{pathnameStackToGoBack:c.newStack,message:"comingFromCardDetail"}})},removeSnackbar:()=>{e(eo())},onUpdateDebitCardPinAttempt:c=>{e(qn(n,c)),c==="success"&&e(We({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(c,p)=>{c?e(We({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):p!=null&&e(We({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:p.message}]}))},updateSpendLimit(c,p,x,E){e(Zn(c,p,x.code,E))},shouldOpenCreditCardPaymentDrawer(c){c&&B!=null&&ee.trackCardsPayEarlyClick(u,l,B,"Card Detail","Text Button","Pay Now",{isZeniCheckingEnabled:t.company?.companyZeniAccountInfo.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:D?.accType==="depositAccount",creditCardPaymentSourceAccountName:D?.label,creditCardPaymentSourceAccountType:D?.accType,creditCardPaymentSourceLastFourDigits:D?.accountLast4,creditCardPaymentSourceBalance:D?.accountBalance?.available?.amount??0},C,O),A(c)}}}))(rt(dc));function li(){const e=ie(),a=le(),n=me(),{cardId:t}=Ve(),[s,f]=r.useState(!1),[b,m]=r.useState(!1),{useDynamicConfig:A}=de(),u=te.getSignedInUser(),l=d((Y=>ge(Y))),B=d((Y=>Za(Y).firstViewAfterActivation)),D=d((Y=>Y.classListState.fetchState)),{configValue:C}=A(Xe.documentAiReceiptMaxSizeLimitBytesConfig),{configValue:O}=A(Xe.zeniCardsConfig),U=O.enable_card_controls_for_company_ids,S=O.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(U)&&U.includes(l.companyId),[c,p]=r.useState(!1),[x,E]=r.useState(!1),{useFeatureGate:I}=de(),{isFeatureEnabled:k}=I(q.isChargeCardFeatureEnabled),{isFeatureEnabled:V}=I(q.isDebitCardFeatureEnabled),w=Be(V,l),y=Oe({isDebitCardFeatureEnabled:V,isBankingOnlyTenant:w}),{isFeatureEnabled:F}=I(q.isEarlyPayFeatureEnabled),i=Le(l),g=xe(l),R=l.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,G=Ue({isCardsOnlyTenant:g,isChargeCardFeatureEnabled:k,isBookKeepingTenant:i,isDebitCardProductVisible:y,chargeCardsCreditAccountLimit:R}),M=!!l.companyDebitCardInfo?.info?.isDebitCardEnabled,L=!!l.companyChargeCardInfo?.info?.isChargeCardEnabled,z=!l.userRole.includes("charge_card_user")&&G&&L;if(t==null)throw Error("Empty card id is not valid...");const j=d((Y=>Pa(Y,l.companyId))),{creditAccount:h,creditAccountRepayment:H}=d((Y=>ua(Y))),W=te.getZeniOtpTokenForCardHolder(t),_=d((Y=>wt(Y,t,z,G))),{isAiCfoAccessEnabled:Z,onAskAiCfoClick:N}=Fa({mobileExploreReferrer:"Card Detail"});Lt({isDataReady:_.fetchState==="Completed"});const $=d((Y=>ma(Y))),T=_.chargeCard,v=Re(),P=Fe(v?.loggedInUserRoleMap),ae=T?.type.code==="business_physical_debit_card"||T?.type.code==="business_virtual_debit_card",Ce=T?.type.code==="business_physical_debit_card"||T?.type.code==="business_physical_credit_card",X=T?.type.code==="business_virtual_debit_card"||T?.type.code==="business_virtual_credit_card",ve=T?.type.code==="business_virtual_debit_card",Ie=xa(G,L,P,h,H),re=Ar(ae,_),be=jt(P,$),pe=ea(G,y,M,L),he=_.depositAccountLimitFetchState.fetchState!=="Completed"&&_.depositAccountLimitFetchState.fetchState!=="In-Progress",oe=d((Y=>da(Y,l.companyId))),Q=la(oe.controllers),Se=d((Y=>T?.cardCreatedByUser?.userId!=null?Ga(Y.userRoleState,T?.cardCreatedByUser?.userId):void 0)),De=d((Y=>Se?.accountingClassIDs[0]!=null?$a(Y.classState,{classId:Se?.accountingClassIDs[0],reportId:"class_list"}):void 0)),fe=d((Y=>T?.cardHolderUser?.userId!=null?Ga(Y.userRoleState,T?.cardHolderUser?.userId):void 0)),Te=d((Y=>fe?.accountingClassIDs[0]!=null?$a(Y.classState,{classId:fe?.accountingClassIDs[0],reportId:"class_list"}):void 0)),J=l?.userRole,Ge=d((Y=>Ca(Y,!1,y,k).revokeCardInvite)),Ra=Sa(Ge.saveStatus.fetchState);if(r.useEffect((()=>{if(Ra==="In-Progress"&&Ge.saveStatus.fetchState==="Completed"){const Y=na(l.tenantEmailDomain);e(Y)}}),[Ra,Ge.saveStatus.fetchState,e,l.tenantEmailDomain]),r.useEffect((()=>{B&&s===!1&&X&&(f(!0),setTimeout((()=>{a(Ka()),ve&&a(We({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))}),5e3))}),[B,s,X,ve]),r.useEffect((()=>{c||_.fetchState==="Completed"||_.fetchState==="In-Progress"||t==null||(p(!0),a(Ia(t,z,G,!1)))}),[c,_,t,a]),r.useEffect((()=>{!x&&_.fetchState==="Completed"&&_.chargeCard?.connectedAccountId!=null&&ae&&he&&P&&(E(!0),a(Wn({depositAccountId:_.chargeCard?.connectedAccountId})))}),[x,_,a,he,P]),r.useEffect((()=>{$.fetchState!=="Completed"&&$.fetchState!=="In-Progress"&&P&&a(Da()),D!=="Completed"&&D!=="In-Progress"&&a(Nn()),_.transactionStatistics.fetchState!=="Completed"&&_.transactionStatistics.fetchState!=="In-Progress"&&a(Js({chargeCardId:t})),j.fetchState!=="Completed"&&j.fetchState!=="In-Progress"&&a(_a(l.companyId,!0))}),[$.fetchState,a,P,D,_.transactionStatistics.fetchState,j.fetchState]),r.useEffect((()=>{if(!(_.fetchState!=="Completed"||G&&h.fetchState!=="Completed"||T==null||_.transactionStatistics.fetchState!=="Completed"||ae&&P&&_.depositAccountLimitFetchState.fetchState!=="Completed")){const Y=T.type.code.includes("physical"),ye=Y?T.cardActivationAttemptHistory[0]?.timestamp:T.createTime;ee.trackCardsCardDetailView(Q,pe,{cardId:t,cardName:T.cardName,cardType:T.type.code.includes("credit")?"credit":"debit",cardCategory:Y?"physical":"virtual",cardLimit:ba(T.limit.amount),cardLastFourDigits:T.accountLast4,cardStatus:T.status.code,cardAssignedDate:T.createTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardIssuedDate:T.providerCardCreateTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardActivatedDate:ye?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardLimitFrequency:T.creditLimitFrequency.name,cardSpentAmount:ba(T.balance.amount),cardAvailableLimit:ba(T.available.amount),cardUtilizationPercent:T.limit.amount>0?Math.round((T.limit.amount-T.available.amount)/T.limit.amount*100):0,cardUtilizationAmount:ba(T.limit.amount-T.available.amount),totalNumberOfDeclinedTransactions:_.transactionStatistics.statistics.totalNumberOfDeclinedTransactions,numberOfDeclinedTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfDeclinedTransactionsCurrentMonth,totalNumberOfPaidTransactions:_.transactionStatistics.statistics.totalNumberOfPaidTransactions,numberOfPaidTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfPaidTransactionsCurrentMonth,totalNumberOfCanceledTransactions:_.transactionStatistics.statistics.totalNumberOfCanceledTransactions,numberOfCanceledTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfCanceledTransactionsCurrentMonth,totalNumberOfAuthorizedTransactions:_.transactionStatistics.statistics.totalNumberOfAuthorizedTransactions,numberOfAuthorizedTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfAuthorizedTransactionsCurrentMonth,totalNumberOfTransactionsWithReceipts:_.transactionStatistics.statistics.totalNumberOfTransactionsWithReceipts,numberOfTransactionsWithReceiptsCurrentMonth:_.transactionStatistics.statistics.numberOfTransactionsWithReceiptsCurrentMonth},{cardIssuedByName:It(T.cardCreatedByUser,!1),cardIssuedByEmail:T.cardCreatedByUser?.email,cardIssuedByUserId:T.cardCreatedByUser?.userId,cardIssuedByRole:Se?.userRoles,cardIssuedByDepartment:De?.className},{cardholderName:It(T.cardHolderUser,!1),cardholderEmail:T.cardHolderUser?.email,cardholderRole:fe?.userRoles,cardholderUserId:T.cardHolderUser?.userId,cardholderDepartment:Te?.className},Ie,re)}}),[_.fetchState,_.depositAccountLimitFetchState.fetchState,_.transactionStatistics.fetchState,h.fetchState,P]),u==null)throw Error("Can't access card detail page without signing in...");const it=ta(l),ka=P?[...Et,...Vr]:Et,ra={events:ha(it,ka),eventCallback:(Y,ye,se)=>{se.onEventReceived(Y,ye)},onSubscribed:Y=>{Y.onPusherSubscribed()}},Ea=()=>{if(t!=null&&T!=null){const{ownerName:Y,cardName:ye,utilisation:se,limit:$e,frequency:Ye,cardColor:Ke}=bt(T),ze=T.cardHolderUserId===u.userId;ee.trackCardsDetailPageViewed(t,Y,ye,se,$e,Ye,Ke,ze)}};r.useEffect((()=>{if(_.fetchState==="Completed"){const Y=_.chargeCard;if(Y?.status.code==="inactive"||ae&&Y?.isPinSet===!1||Ce&&B){const ye=_e(l.tenantEmailDomain,t,u,T,B);e(ye)}}}),[_.fetchState]);const dt=(Y,ye)=>{if(t!=null&&T!=null){const{ownerName:se,cardName:$e,utilisation:Ye,limit:Ke,frequency:ze}=bt(T),sa=T.cardHolderUserId===u.userId;ee.trackCardsDetailPageClicked(t,se,$e,Ye,Ke,ze,Y,sa,ye)}},lt=(Y,ye)=>{if(t!=null&&T!=null){const{ownerName:se,cardName:$e,utilisation:Ye,limit:Ke,frequency:ze}=bt(T),sa=T.cardHolderUserId===u.userId;ee.trackCardsVerifyPopUpClick(t,se,$e,Ye,Ke,ze,Y,sa,ye)}},ue=h.balance.amount+h.hold.amount,Oa=l.companyChargeCardInfo?.info?.primaryFundingAccount,Aa=j.allFundingAccounts.find((Y=>Y.id===Oa?.accountId)),Ua=_.chargeCard!=null,ja=_.depositAccountLimit!=null;return _.fetchState!=="Error"||Ua?!Ua&&(_.fetchState==="In-Progress"||_.fetchState==="Not-Started")||Ge.saveStatus.fetchState==="In-Progress"||!ja&&ae&&P&&_.depositAccountLimitFetchState.fetchState!=="Completed"?o.jsx(ic,{}):o.jsxs(o.Fragment,{children:[o.jsx(tt,{showConfetti:B}),_.fetchState==="Completed"?o.jsx(Ot,{analytics:ee,onLoad:Ea}):null,b===!0?o.jsx(Kt,{closeDrawerHandler:()=>m(!1),isPaymentDrawerOpen:b,pageName:"Card Detail",sourcePage:"cardDetailPage",productInformation:pe,creditAccountInformation:Ie,debitAccountInformation:re,cashbackInformation:be,creditAccountSpentAmount:ue,isDebitCardInfoFetchStateCompleted:!ae||!P||_.depositAccountLimitFetchState.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!G||h.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!P||$.fetchState==="Completed",paymentInitiatedDate:H.initiatedRepaymentDate}):null,o.jsx(di,{...ra,hideSorting:!0,onColumnSortConfigChanged:()=>{},onFireVerifyPopOnClickAnalytics:lt,onFireOnClickAnalytics:dt,isSandboxEnv:Bt(),signedInUser:u,location:n,navigate:e,setIsPaymentOpen:m,cardIssuedByRoles:Se?.userRoles,cardIssuedByDepartmentName:De?.className,cardHolderRoles:fe?.userRoles,cardHolderDepartmentName:Te?.className,loggedInUserRole:J,isChargeCardFeatureEnabled:G,isDebitCardFeatureEnabled:y,isDebitCardSetupEnabled:M,isChargeCardSetupEnabled:L,isCardControlsEnabled:S,isEarlyPayEnabled:F,controllerEmails:Q,chargeCardCashbackDetailState:$,productInformation:pe,creditAccountInformation:Ie,debitAccountInformation:re,cashbackInformation:be,classListFetchState:D,primaryFundingAccountDetails:Aa,currentTenant:l,cardProviderId:_.chargeCard?.cardProviderID,cardId:t,creditAccount:h,creditAccountRepayment:H,includeCreditAccountInfo:z,signedInUserToken:W,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:C.documentAiReceiptMaxSizeLimitBytes!=null?C.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:Z,onAskAiCfoClick:N})]}):o.jsx(st,{})}const bt=e=>{const a=`${e.cardHolderUser?.firstName.toLowerCase()} ${e.cardHolderUser?.lastName.toLowerCase()}`,n=e.cardName,t=(e.limit.amount??0)-(e.available.amount??0),s=e.limit.amount,f=e.creditLimitFrequency.name;return{ownerName:a,cardName:n,utilisation:t,cardColor:e.cardColorCode??"",frequency:f,limit:s}},{spendManagement:{chargeCard:{cardsAiCfoHero:{headline:ui,subheadline:mi,pageTitle:Ci}}}}=aa.getLocalizedStrings(),Hr=[pa,ot,Mr,La,Ba,ct,$t,Yc,Ht,Gt,Vt],pi=new Set(Hr),At=Ut(((e,a,n,t)=>{e(ia(a,n,t,!0))}),400),hi=He.div`
|
|
18
|
+
`,zt=e=>e!=null&&typeof e=="object"?e:null,ce=e=>typeof e=="string"?e:void 0,Me=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,Wa=e=>e!=null&&typeof e=="object"&&typeof e.code=="string"&&typeof e.name=="string",ft=e=>{if(e==null||typeof e!="object")return!1;const a=e;return typeof a.transaction_id=="string"&&typeof a.amount=="number"&&typeof a.currency_code=="string"&&typeof a.currency_symbol=="string"&&typeof a.direction=="string"&&!!Wa(a.transaction_status)&&!!Wa(a.transaction_type)},Yt=(e,a)=>{const n=e?.card_status;if(!Wa(n))return null;const t=e?.is_locked_by_admin;return{cardId:a,cardStatus:n,isLockedByAdmin:typeof t=="boolean"?t:void 0}},Et=[Lr,Br,Rr,Or,Ur,pa,Vt,ot,Ht,Gt,$t],Vr=[Ba,La],ii=new Set([...Et,...Vr]),gt=aa.getLocalizedStrings().dateFormat,di=Pe((function(e,a){const{includeCreditAccountInfo:n,cardId:t,signedInUserToken:s,isChargeCardFeatureEnabled:f}=a,b=te.getSignedInUser(),m=e.tenantState.currentTenantId,A={userId:b?.userId??"",sessionId:b?.zeniSessionId??"",tenantId:m??""},u=wt(e,t,n,f),l=Qs(e,t),B=Xs(e);return{chargeCardDetailView:u,chargeCardsRecurringExpensesState:l,vgsVaultId:nt.cardVaultId,transactionAttachmentsEndpointToFetch:`${kt}/card_transaction_attachments`,transactionAttachmentEndpointToDownload:`${kt}/card_transaction_attachment`,authParams:A,isSnackbarOpen:B.isSnackbarOpen,cardsEndPoint:`${Sr.cardMicroServiceBaseUrl}`,signedInUserToken:u.twoFAView.token??s,receiptsEmail:Wn(e.tenantState,m)}}),(function(e,a){const{cardId:n,currentTenant:t,navigate:s,location:f,cardProviderId:b,includeCreditAccountInfo:m,setIsPaymentOpen:A,controllerEmails:u,productInformation:l,cashbackInformation:B,primaryFundingAccountDetails:D,creditAccountInformation:C,debitAccountInformation:O,isChargeCardFeatureEnabled:U}=a,{tenantEmailDomain:S}=t;return{onEventReceived:(c,p)=>{(({event:x,data:E,cardId:I,dispatch:k,subscribedEvents:V})=>{const w=zt(E);switch(x){case Ba:case La:return void k(Da(!0));case Lr:{const y=ce(w?.card_id);if(y==null||y!==I)return;const F=ce(w?.transaction_id),i=w?.transaction_status;return F!=null&&Wa(i)?void k(qs({transactionId:F,transactionStatus:i})):void k(oa(I,null,null,!0))}case pa:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=Yt(w,y);return F!=null?void k(Tt(F)):void k(ga(I,!0))}case Vt:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=ce(w?.currency_code),i=ce(w?.currency_symbol),g=Me(w?.balance);return F!=null&&i!=null&&g!=null?(k(Zs({cardId:y,currencyCode:F,currencySymbol:i,balance:g,hold:Me(w?.hold),dailyPurchaseSpends:Me(w?.daily_purchase_spends),monthlyPurchaseSpends:Me(w?.monthly_purchase_spends),dailyWithdrawals:Me(w?.daily_withdrawals),monthlyWithdrawals:Me(w?.monthly_withdrawals)})),void k(Je(!0))):(k(ga(I,!0)),void k(Je(!0)))}case ot:{const y=ce(w?.currency_code),F=ce(w?.currency_symbol),i=Me(w?.available_amount),g=Me(w?.balance_amount);return y!=null&&F!=null&&i!=null&&g!=null?void k(Ws({currencyCode:y,currencySymbol:F,available:i,balance:g,hold:Me(w?.hold_amount),cashback:Me(w?.cashback_amount)})):void k(Je(!0))}case Br:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=w?.transaction;return ft(F)?void k(Ys({cardId:y,transaction:F})):void k(oa(I,null,null,!0))}case Rr:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=w?.transaction;return ft(F)?void k(zs({cardId:y,declineReason:ce(w?.decline_reason),transaction:F})):void k(oa(I,null,null,!0))}case Or:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=w?.transaction;return ft(F)?void k(Ks({cardId:y,transaction:F})):void k(oa(I,null,null,!0))}case Ur:{const y=ce(w?.card_id)??I;if(y!==I)return;const F=ce(w?.transaction_id),i=w?.attachment_file_paths;return F!=null&&Array.isArray(i)&&i.every((g=>typeof g=="string"))?void k($s({cardId:y,transactionId:F,attachmentFilePaths:i})):void k(oa(I,null,null,!0))}case Ht:case Gt:case $t:{const y=ce(w?.card_id);if(y==null||y!==I)return;k(ga(I,!0))}}})({event:c,data:p,cardId:n,dispatch:e,subscribedEvents:ii})},onPusherSubscribed:()=>{e(ga(n,!0)),e(oa(n,null,null,!0)),e(Je(!0))},onReloadTransactions:()=>{e(Ia(n,m,U))},onFetchChargeCardTransactionList:(c,p)=>{e(oa(n,c,p))},onUpdateScrollYOffset:c=>{},onGetOtp:c=>{b!=null&&e(et(c,"ChargeCardHolder",n))},onResendOtp:c=>{b!=null&&e(Xa(c,"ChargeCardHolder",n))},onVerifyOtp:(c,p)=>{b!=null&&e(Qa(c,p,"ChargeCardHolder",n))},onVerifyOtpSuccess:c=>{c!=null&&te.saveZeniOtpTokenForCardHolder(c,n)},onColorCodeChange:c=>{e(so(n,c))},onLockChargeCard:(c,p)=>{e(tr(c,n,p))},onUnlockChargeCard:c=>{e(ar(c,n))},onCloseChargeCard:c=>{e(er(n,c))},onFetchChargeCardsRecurringExpenses:()=>{e(Xn([n]))},updateChargeCardName:(c,p)=>{e(Qn(c,n,p))},updateChargeCardTransactionAttachments:(c,p)=>{p!=null&&e(ro({transactionId:c,data:p}))},updateChargeCardTransactionUploadReceiptsFetchStatus:(c,p,x,E)=>{e(no({chargeCardId:p,transactionId:c,fetchState:x,error:E}))},updateChargeCardTransactionReceiptsShowTick:(c,p,x)=>{e(to({chargeCardId:p,transactionId:c,shouldShowTick:x}))},onChargeCardRevokeInviteClick:()=>{e(Jn(n))},updateChargeCardTransactionIsViewReceiptClicked:(c,p,x)=>{e(ao({chargeCardId:p,transactionId:c,isViewReceiptClicked:x}))},onChargeCardTransactionRowClick:(c,p)=>{const x=Ee(f.state?.pathnameStackToGoBack,f.pathname);s(`../../transaction/${c}/${p}`,{state:{pathnameStackToGoBack:x}})},onBackClick:()=>{const c=we(f.state?.pathnameStackToGoBack),p=na(S);s(p,{state:{pathnameStackToGoBack:c.newStack,message:"comingFromCardDetail"}})},removeSnackbar:()=>{e(eo())},onUpdateDebitCardPinAttempt:c=>{e(qn(n,c)),c==="success"&&e(Ye({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(c,p)=>{c?e(Ye({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):p!=null&&e(Ye({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:p.message}]}))},updateSpendLimit(c,p,x,E){e(Zn(c,p,x.code,E))},shouldOpenCreditCardPaymentDrawer(c){c&&B!=null&&ee.trackCardsPayEarlyClick(u,l,B,"Card Detail","Text Button","Pay Now",{isZeniCheckingEnabled:t.company?.companyZeniAccountInfo.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:D?.accType==="depositAccount",creditCardPaymentSourceAccountName:D?.label,creditCardPaymentSourceAccountType:D?.accType,creditCardPaymentSourceLastFourDigits:D?.accountLast4,creditCardPaymentSourceBalance:D?.accountBalance?.available?.amount??0},C,O),A(c)}}}))(rt(dc));function li(){const e=ie(),a=le(),n=me(),{cardId:t}=Ve(),[s,f]=r.useState(!1),[b,m]=r.useState(!1),{useDynamicConfig:A}=de(),u=te.getSignedInUser(),l=d((W=>ge(W))),B=d((W=>Za(W).firstViewAfterActivation)),D=d((W=>W.classListState.fetchState)),{configValue:C}=A(Xe.documentAiReceiptMaxSizeLimitBytesConfig),{configValue:O}=A(Xe.zeniCardsConfig),U=O.enable_card_controls_for_company_ids,S=O.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(U)&&U.includes(l.companyId),[c,p]=r.useState(!1),[x,E]=r.useState(!1),{useFeatureGate:I}=de(),{isFeatureEnabled:k}=I(q.isChargeCardFeatureEnabled),{isFeatureEnabled:V}=I(q.isDebitCardFeatureEnabled),w=Be(V,l),y=Oe({isDebitCardFeatureEnabled:V,isBankingOnlyTenant:w}),{isFeatureEnabled:F}=I(q.isEarlyPayFeatureEnabled),i=Le(l),g=xe(l),R=l.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,G=Ue({isCardsOnlyTenant:g,isChargeCardFeatureEnabled:k,isBookKeepingTenant:i,isDebitCardProductVisible:y,chargeCardsCreditAccountLimit:R}),M=!!l.companyDebitCardInfo?.info?.isDebitCardEnabled,L=!!l.companyChargeCardInfo?.info?.isChargeCardEnabled,z=!l.userRole.includes("charge_card_user")&&G&&L;if(t==null)throw Error("Empty card id is not valid...");const j=d((W=>Pa(W,l.companyId))),{creditAccount:h,creditAccountRepayment:H}=d((W=>ua(W))),Y=te.getZeniOtpTokenForCardHolder(t),_=d((W=>wt(W,t,z,G))),{isAiCfoAccessEnabled:Z,onAskAiCfoClick:N}=Fa({mobileExploreReferrer:"Card Detail"});Lt({isDataReady:_.fetchState==="Completed"});const $=d((W=>ma(W))),T=_.chargeCard,v=Re(),P=Fe(v?.loggedInUserRoleMap),ae=T?.type.code==="business_physical_debit_card"||T?.type.code==="business_virtual_debit_card",Ce=T?.type.code==="business_physical_debit_card"||T?.type.code==="business_physical_credit_card",X=T?.type.code==="business_virtual_debit_card"||T?.type.code==="business_virtual_credit_card",ve=T?.type.code==="business_virtual_debit_card",Ie=xa(G,L,P,h,H),re=Ar(ae,_),be=jt(P,$),pe=ea(G,y,M,L),he=_.depositAccountLimitFetchState.fetchState!=="Completed"&&_.depositAccountLimitFetchState.fetchState!=="In-Progress",oe=d((W=>da(W,l.companyId))),Q=la(oe.controllers),Se=d((W=>T?.cardCreatedByUser?.userId!=null?Ga(W.userRoleState,T?.cardCreatedByUser?.userId):void 0)),De=d((W=>Se?.accountingClassIDs[0]!=null?$a(W.classState,{classId:Se?.accountingClassIDs[0],reportId:"class_list"}):void 0)),fe=d((W=>T?.cardHolderUser?.userId!=null?Ga(W.userRoleState,T?.cardHolderUser?.userId):void 0)),Te=d((W=>fe?.accountingClassIDs[0]!=null?$a(W.classState,{classId:fe?.accountingClassIDs[0],reportId:"class_list"}):void 0)),J=l?.userRole,Ge=d((W=>Ca(W,!1,y,k).revokeCardInvite)),Ra=Sa(Ge.saveStatus.fetchState);if(r.useEffect((()=>{if(Ra==="In-Progress"&&Ge.saveStatus.fetchState==="Completed"){const W=na(l.tenantEmailDomain);e(W)}}),[Ra,Ge.saveStatus.fetchState,e,l.tenantEmailDomain]),r.useEffect((()=>{B&&s===!1&&X&&(f(!0),setTimeout((()=>{a(Ka()),ve&&a(Ye({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))}),5e3))}),[B,s,X,ve]),r.useEffect((()=>{c||_.fetchState==="Completed"||_.fetchState==="In-Progress"||t==null||(p(!0),a(Ia(t,z,G,!1)))}),[c,_,t,a]),r.useEffect((()=>{!x&&_.fetchState==="Completed"&&_.chargeCard?.connectedAccountId!=null&&ae&&he&&P&&(E(!0),a(Yn({depositAccountId:_.chargeCard?.connectedAccountId})))}),[x,_,a,he,P]),r.useEffect((()=>{$.fetchState!=="Completed"&&$.fetchState!=="In-Progress"&&P&&a(Da()),D!=="Completed"&&D!=="In-Progress"&&a(Nn()),_.transactionStatistics.fetchState!=="Completed"&&_.transactionStatistics.fetchState!=="In-Progress"&&a(Js({chargeCardId:t})),j.fetchState!=="Completed"&&j.fetchState!=="In-Progress"&&a(_a(l.companyId,!0))}),[$.fetchState,a,P,D,_.transactionStatistics.fetchState,j.fetchState]),r.useEffect((()=>{if(!(_.fetchState!=="Completed"||G&&h.fetchState!=="Completed"||T==null||_.transactionStatistics.fetchState!=="Completed"||ae&&P&&_.depositAccountLimitFetchState.fetchState!=="Completed")){const W=T.type.code.includes("physical"),ye=W?T.cardActivationAttemptHistory[0]?.timestamp:T.createTime;ee.trackCardsCardDetailView(Q,pe,{cardId:t,cardName:T.cardName,cardType:T.type.code.includes("credit")?"credit":"debit",cardCategory:W?"physical":"virtual",cardLimit:ba(T.limit.amount),cardLastFourDigits:T.accountLast4,cardStatus:T.status.code,cardAssignedDate:T.createTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardIssuedDate:T.providerCardCreateTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardActivatedDate:ye?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardLimitFrequency:T.creditLimitFrequency.name,cardSpentAmount:ba(T.balance.amount),cardAvailableLimit:ba(T.available.amount),cardUtilizationPercent:T.limit.amount>0?Math.round((T.limit.amount-T.available.amount)/T.limit.amount*100):0,cardUtilizationAmount:ba(T.limit.amount-T.available.amount),totalNumberOfDeclinedTransactions:_.transactionStatistics.statistics.totalNumberOfDeclinedTransactions,numberOfDeclinedTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfDeclinedTransactionsCurrentMonth,totalNumberOfPaidTransactions:_.transactionStatistics.statistics.totalNumberOfPaidTransactions,numberOfPaidTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfPaidTransactionsCurrentMonth,totalNumberOfCanceledTransactions:_.transactionStatistics.statistics.totalNumberOfCanceledTransactions,numberOfCanceledTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfCanceledTransactionsCurrentMonth,totalNumberOfAuthorizedTransactions:_.transactionStatistics.statistics.totalNumberOfAuthorizedTransactions,numberOfAuthorizedTransactionsCurrentMonth:_.transactionStatistics.statistics.numberOfAuthorizedTransactionsCurrentMonth,totalNumberOfTransactionsWithReceipts:_.transactionStatistics.statistics.totalNumberOfTransactionsWithReceipts,numberOfTransactionsWithReceiptsCurrentMonth:_.transactionStatistics.statistics.numberOfTransactionsWithReceiptsCurrentMonth},{cardIssuedByName:It(T.cardCreatedByUser,!1),cardIssuedByEmail:T.cardCreatedByUser?.email,cardIssuedByUserId:T.cardCreatedByUser?.userId,cardIssuedByRole:Se?.userRoles,cardIssuedByDepartment:De?.className},{cardholderName:It(T.cardHolderUser,!1),cardholderEmail:T.cardHolderUser?.email,cardholderRole:fe?.userRoles,cardholderUserId:T.cardHolderUser?.userId,cardholderDepartment:Te?.className},Ie,re)}}),[_.fetchState,_.depositAccountLimitFetchState.fetchState,_.transactionStatistics.fetchState,h.fetchState,P]),u==null)throw Error("Can't access card detail page without signing in...");const it=ta(l),ka=P?[...Et,...Vr]:Et,ra={events:ha(it,ka),eventCallback:(W,ye,se)=>{se.onEventReceived(W,ye)},onSubscribed:W=>{W.onPusherSubscribed()}},Ea=()=>{if(t!=null&&T!=null){const{ownerName:W,cardName:ye,utilisation:se,limit:$e,frequency:We,cardColor:Ke}=bt(T),ze=T.cardHolderUserId===u.userId;ee.trackCardsDetailPageViewed(t,W,ye,se,$e,We,Ke,ze)}};r.useEffect((()=>{if(_.fetchState==="Completed"){const W=_.chargeCard;if(W?.status.code==="inactive"||ae&&W?.isPinSet===!1||Ce&&B){const ye=_e(l.tenantEmailDomain,t,u,T,B);e(ye)}}}),[_.fetchState]);const dt=(W,ye)=>{if(t!=null&&T!=null){const{ownerName:se,cardName:$e,utilisation:We,limit:Ke,frequency:ze}=bt(T),sa=T.cardHolderUserId===u.userId;ee.trackCardsDetailPageClicked(t,se,$e,We,Ke,ze,W,sa,ye)}},lt=(W,ye)=>{if(t!=null&&T!=null){const{ownerName:se,cardName:$e,utilisation:We,limit:Ke,frequency:ze}=bt(T),sa=T.cardHolderUserId===u.userId;ee.trackCardsVerifyPopUpClick(t,se,$e,We,Ke,ze,W,sa,ye)}},ue=h.balance.amount+h.hold.amount,Oa=l.companyChargeCardInfo?.info?.primaryFundingAccount,Aa=j.allFundingAccounts.find((W=>W.id===Oa?.accountId)),Ua=_.chargeCard!=null,ja=_.depositAccountLimit!=null;return _.fetchState!=="Error"||Ua?!Ua&&(_.fetchState==="In-Progress"||_.fetchState==="Not-Started")||Ge.saveStatus.fetchState==="In-Progress"||!ja&&ae&&P&&_.depositAccountLimitFetchState.fetchState!=="Completed"?o.jsx(ic,{}):o.jsxs(o.Fragment,{children:[o.jsx(tt,{showConfetti:B}),_.fetchState==="Completed"?o.jsx(Ot,{analytics:ee,onLoad:Ea}):null,b===!0?o.jsx(Kt,{closeDrawerHandler:()=>m(!1),isPaymentDrawerOpen:b,pageName:"Card Detail",sourcePage:"cardDetailPage",productInformation:pe,creditAccountInformation:Ie,debitAccountInformation:re,cashbackInformation:be,creditAccountSpentAmount:ue,isDebitCardInfoFetchStateCompleted:!ae||!P||_.depositAccountLimitFetchState.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!G||h.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!P||$.fetchState==="Completed",paymentInitiatedDate:H.initiatedRepaymentDate}):null,o.jsx(di,{...ra,hideSorting:!0,onColumnSortConfigChanged:()=>{},onFireVerifyPopOnClickAnalytics:lt,onFireOnClickAnalytics:dt,isSandboxEnv:Bt(),signedInUser:u,location:n,navigate:e,setIsPaymentOpen:m,cardIssuedByRoles:Se?.userRoles,cardIssuedByDepartmentName:De?.className,cardHolderRoles:fe?.userRoles,cardHolderDepartmentName:Te?.className,loggedInUserRole:J,isChargeCardFeatureEnabled:G,isDebitCardFeatureEnabled:y,isDebitCardSetupEnabled:M,isChargeCardSetupEnabled:L,isCardControlsEnabled:S,isEarlyPayEnabled:F,controllerEmails:Q,chargeCardCashbackDetailState:$,productInformation:pe,creditAccountInformation:Ie,debitAccountInformation:re,cashbackInformation:be,classListFetchState:D,primaryFundingAccountDetails:Aa,currentTenant:l,cardProviderId:_.chargeCard?.cardProviderID,cardId:t,creditAccount:h,creditAccountRepayment:H,includeCreditAccountInfo:z,signedInUserToken:Y,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:C.documentAiReceiptMaxSizeLimitBytes!=null?C.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:Z,onAskAiCfoClick:N})]}):o.jsx(st,{})}const bt=e=>{const a=`${e.cardHolderUser?.firstName.toLowerCase()} ${e.cardHolderUser?.lastName.toLowerCase()}`,n=e.cardName,t=(e.limit.amount??0)-(e.available.amount??0),s=e.limit.amount,f=e.creditLimitFrequency.name;return{ownerName:a,cardName:n,utilisation:t,cardColor:e.cardColorCode??"",frequency:f,limit:s}},{spendManagement:{chargeCard:{cardsAiCfoHero:{headline:ui,subheadline:mi,pageTitle:Ci}}}}=aa.getLocalizedStrings(),Hr=[pa,ot,Mr,La,Ba,ct,$t,Wc,Ht,Gt,Vt],pi=new Set(Hr),At=Ut(((e,a,n,t)=>{e(ia(a,n,t,!0))}),400),hi=He.div`
|
|
19
19
|
display: flex;
|
|
20
20
|
width: 100%;
|
|
21
21
|
flex: 1 1 auto;
|
|
22
22
|
flex-direction: column;
|
|
23
23
|
align-items: center;
|
|
24
24
|
background-color: ${e=>e.theme.colors.grey4};
|
|
25
|
-
`,fi=Pe((function(e,a){const n=Ca(e,a.includeCreditAccountDebitSummaryAndCashbackInfo,a.isDebitCardFeatureEnabled&&a.isDebitCardSetupEnabled,a.isChargeCardFeatureEnabled&&a.isChargeCardSetupEnabled);return{chargeCardListView:n,rowActionView:uo(e),bulkActionView:mo(e),companyLegalName:a.currentTenant.companyName,admins:a.admins,searchText:n.searchText,uiState:n.uiState,signedInUser:a.signedInUser,receiptsEmail:Yn(e.tenantState,a.currentTenant.tenantId)}}),(function(e,a){const{navigateAndClearBulkSelection:n,currentTenant:t,location:s,signedInUser:f,chargeCardListState:b,includeCreditAccountDebitSummaryAndCashbackInfo:m,isChargeCardFeatureEnabled:A,isCreditCardProductVisibleForExpressInterest:u,isChargeCardSetupEnabled:l,isDebitCardFeatureEnabled:B,isDebitCardSetupEnabled:D,isDebitCardTOSAccepted:C,isChargeCardTOSAccepted:O,controllerEmails:U,depositAccountListWithDebitCardIssued:S,primaryFundingAccountDetails:c,chargeCardSetUpViewFetchState:p,productInformation:x,cashbackInformation:E,creditAccountInformation:I,debitAccountInformation:k,updatePayNowInfoTooltip:V,isUserHasCardsAdminLevelAccess:w}=a,{tenantEmailDomain:y}=t,{cards:F}=b;return{onChargeCardRowClick:(i,g)=>{const R=_r(F,i);let G;R!=null&&((L=>{const z=L.limit.amount-L.available.amount,j=`${L.cardHolderUser?.firstName.toLowerCase()} ${L.cardHolderUser?.lastName.toLowerCase()}`,h=L.cardName,H=L.department?.className??"",W=L.limit.amount,_=L.creditLimitFrequency.name;ee.trackCardsListRowClicked(j,h,H,z,W,_,f.userId===L.cardHolderUserId)})(R),ca(B,D,S)&&ee.trackCardsCardListRowClick(U,x,"Card Row Item","row_clicked",g+1,{cardOwner:It(R.cardHolderUser,!1),cardName:R.cardName,cardType:R.type.code.includes("credit")?"credit":"debit",cardStatus:R.status.code,cardUtilizationAmount:ba(R.limit.amount-R.available.amount),cardUtilizationPercent:R.limit.amount>0?Math.round((R.limit.amount-R.available.amount)/R.limit.amount*100):0,cardLimit:ba(R.limit.amount)},E,I,k)),G=R?.status.code==="request_on_hold"&&f.userId===R.cardHolderUserId?Pr(y):_e(y,i,f,R);const M=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(G,{state:{pathnameStackToGoBack:M}})},onFetchChargeCardsRecurringExpenses:i=>{e(Xn(i))},onFetchDepositAccountLimit:i=>{e(Wn({depositAccountId:i}))},onChargeCardResendInviteClick:i=>{e(yo(i))},onChargeCardRevokeInviteClick:i=>{e(Jn(i))},onLockChargeCardList:(i,g)=>{e(So(i,g))},onUnlockChargeCardList:i=>{e(bo(i))},onCloseChargeCardList:(i,g)=>{e(go(i,g))},onRevokeChargeCardList:i=>{e(fo(i))},updateChargeCardListSpendLimit(i,g,R){e(ho(i,g,R.code))},onLockChargeCard:(i,g)=>{e(tr(w,i,g))},onUnlockChargeCard:i=>{e(ar(w,i))},onCloseChargeCard:(i,g)=>{e(er(i,g))},onUpdateSpendLimit(i,g,R,G){e(Zn(i,g,R.code,G))},updateChargeCardName:(i,g)=>{e(Qn(w,i,g))},onClickSetupIcon:()=>{ee.trackCardsListPageClicked("settings"),ca(B,D,S)&&E!=null&&ee.trackCardsSettingsClick(U,x,E,I,k);const i=Fc(y),g=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:g}})},onIssueCardClick:()=>{ee.trackCardsListPageClicked("new card"),ca(B,D,S)&&E!=null&&ee.trackCardsNewCardClick(U,x,E,"New Button","card_creation_initiated","Card List",I,k);const i=gi(y),g=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:g}})},onColumnSortConfigChanged:(i,g)=>{ca(B,D,S)&&E!=null&&ee.trackCardsCardListSortClick(U,x,E,"Sort Icon","sort",i,g==="ascending"?"ASC":"DESC","Cards List",I,k),e(yt({uiState:{sortKey:i,sortOrder:g}}))},onSearchTextChanged:i=>{e(po(i))},onReloadCards:()=>{e(ia(m,B&&D,A&&l,!0))},onLetsGoClick:()=>{n("./onboard")},onBackClick:()=>{n("../../")},onTotalCashbackClick:()=>{ca(B,D,S)&&E!=null&&ee.trackCardsCashbackOverviewClick(U,x,E,"Cashback Overview","cashback_details_viewed",I,k),n("./cashback")},onClickStatementsIcon:()=>{ca(B,D,S)&&E!=null&&ee.trackCardsStatementsClick(U,x,E,I,k),n("./statements")},onCreateNowClick:i=>{ca(B,D,S)&&E!=null&&ee.trackCardsNewCardClick(U,x,E,"Promo Banner","card_creation_initiated","Card List",I,k),n(`./new?cardType=${i}`)},onPromoCardClick:i=>{n(i==="debit"&&B&&!C||i==="credit"&&u&&!O?`../promo?cardPromoType=${i}`:"./setup")},navigateToCreditCardPaymentPage:(i,g)=>{p==="Completed"&&t.company!=null&&E!=null&&ee.trackCardsPayEarlyClick(U,x,E,"Card List",i,g,{isZeniCheckingEnabled:t.company.companyZeniAccountInfo.isZeniAccountEnabled,isZeniCheckingPaymentSource:c?.accType==="depositAccount",creditCardPaymentSourceAccountName:c?.label,creditCardPaymentSourceAccountType:c?.accType,creditCardPaymentSourceLastFourDigits:c?.accountLast4,creditCardPaymentSourceBalance:c?.accountBalance?.available?.amount??0},I,k);const R=bi(y);n(R)},navigateToCreditCardPaymentHistoryPage:()=>{const i=Si(y),g=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:g}})},shouldShowPayNowInfoTooltip:V,onSetRowActionCardId:i=>{e(Co(i))},onSetBulkActionCardIds:i=>{e(nr(i))},onEventReceived:i=>{pi.has(i)&&At(e,m,B&&D,A&&l)},onPusherSubscribed:()=>{At(e,m,B&&D,A&&l)}}}))(rt(mc));function In({isPaymentDrawerOpen:e}){const a=ie(),n=le(),t=me(),s=r.useCallback(((K,je)=>{n(nr([])),a(K,je)}),[n,a]),[f,b]=r.useState(!1),[m,A]=r.useState(te.getPayNowInfoTooltip()??!1),u=K=>{te.savePayNowInfoTooltip(K),A(K)},[l,B]=r.useState(!1),D=te.getSignedInUser(),C=d((K=>ge(K))),[O,U]=r.useState(!1),[S,c]=r.useState(!1),{isAiCfoAccessEnabled:p,onAskAiCfoClick:x}=Fa({mobileExploreReferrer:"Cards"}),E=C.userRole.includes("charge_card_user"),I=!E,k=!!C.companyDebitCardInfo?.info?.isDebitCardEnabled,{useFeatureGate:V,useDynamicConfig:w}=de(),{isFeatureEnabled:y}=V(q.isCashbackFeatureEnabled),{isFeatureEnabled:F}=V(q.isChargeCardFeatureEnabled),{isFeatureEnabled:i}=V(q.isDebitCardFeatureEnabled),{isFeatureEnabled:g}=V(q.isEarlyPayFeatureEnabled),{isFeatureEnabled:R}=V(q.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:G}=V(q.isAiCfoFileUploadEnabled),{isFeatureEnabled:M}=V(q.isCardPolicyEnabled),{isFeatureEnabled:L}=V(q.isAiCardCreationEnabled),z=Be(i,C),j=Oe({isDebitCardFeatureEnabled:i,isBankingOnlyTenant:z}),h=xe(C),H=Le(C),W=C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:F,isBookKeepingTenant:H,isDebitCardProductVisible:j,chargeCardsCreditAccountLimit:W}),Z=Dr({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:F,isBookKeepingTenant:H}),{configValue:N}=w(Xe.zeniCardsConfig),$=Re(),T=Fe($?.loggedInUserRoleMap),v=d((K=>da(K,C.companyId))),P=la(v.controllers),ae=N.charge_card_cashback_rate_per_transaction!=null?N.charge_card_cashback_rate_per_transaction:.0175,Ce=N.credit_card_pay_now_threshold_by_company_id?.[C.companyId]??N.default_credit_card_pay_now_threshold??Tc,X=N.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(N.enable_card_controls_for_company_ids)&&N.enable_card_controls_for_company_ids.includes(C.companyId),ve=!!C.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,Ie=!!C.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,re=!!C.companyChargeCardInfo?.info?.isChargeCardEnabled,be=!!C.company?.companyChargeCardInfo?.isChargeCardEnabled,pe=!!C.company?.companyDebitCardInfo?.isDebitCardEnabled,he=d((K=>Gn(K))),oe=Sa(he.updateStatus),Q=d((K=>Ca(K,I,j&&k,_&&re))),Se=d((K=>oo(K))),De=d((K=>co(K))),fe=d((K=>io(K))),Te=d((K=>lo(K))),J=d((K=>fe==null?[]:Mn(K.aiCfoState,fe).filter((je=>je.kind==="creating_cards"))),Dt),Ge=Sa(De.fetchState);r.useEffect((()=>{Ge==="In-Progress"&&De.fetchState==="Completed"&&fe!=null&&J.forEach((K=>{n(St({chatSessionId:fe,id:K.id,entityIds:Te,kind:"created_cards"}))}))}),[n,De.fetchState,fe,Te,J,Ge]);const Ra=Q.cards.filter((K=>K.type.code.includes("debit"))).map((K=>K.connectedAccountId)),it=[...new Set(Ra)],ka=d((K=>ma(K))),ra=d((K=>at(K,it))),Ea=d((K=>Pa(K,C.companyId))),dt=Ea.companyChargeCardInfo?.primaryFundingAccount,lt=Ea.allFundingAccounts.find((K=>K.id===dt?.accountId)),ue=Q.fetchState,Oa=Q.creditAccount,Aa=r.useCallback((()=>T===!0&&M===!0&&ue==="Completed"&&te.getCardPolicyPopupSeen(C.tenantEmailDomain??"")!==!0),[T,M,ue,C.tenantEmailDomain]),[Ua,ja]=r.useState(Aa);r.useEffect((()=>{ja(Aa())}),[Aa]);const Y=()=>{te.saveCardPolicyPopupSeen(C.tenantEmailDomain??"",!0),ja(!1)},ye=ue==="Completed"&&!Q.hasCreditCard&&!Q.hasDebitCard;lc({isDataReady:ue==="Completed",pageContext:ye?"cards_creation":"cards"});const{creditAccountRepayment:se}=d((K=>ua(K))),$e=d((K=>Za(K).firstViewAfterActivation)),{areTenantIdsInSync:Ye}=yr(),Ke=jt(T,ka),ze=xa(_,re,T,Oa,se),sa=Mt(j,k,T,ra,Q.debitCardSummary),ut=ea(_,j,k,re),mt=Q.creditAccount.balance.amount+Q.creditAccount.hold.amount;if(r.useEffect((()=>{ue==="Completed"&&(te.getPayNowInfoTooltip()==null||mt<Ce*Q.creditAccount.limit.amount/100)&&u(!0)}),[ue,Ce,mt,Q.creditAccount.limit.amount]),r.useEffect((()=>{if(e!=null&&e===!0&&se.initiatedRepayments.amount===0&&se.fetchState==="Completed"||oe==="In-Progress"&&he.updateStatus==="Completed")u(!1),b(!0);else if(se.initiatedRepayments.amount>0&&se.fetchState==="Completed"){b(!1),document.body.style.overflow="auto";const K=na(C.tenantEmailDomain);s(K)}}),[e,se.initiatedRepayments.amount,se.fetchState,oe,he.updateStatus,s,C.tenantEmailDomain]),r.useEffect((()=>{!O&&(re||k)&&(be||pe)&&Ye&&(U(!0),n(ia(I,j&&k,_&&re,!1)))}),[O,I,n,Ye,be,pe]),r.useEffect((()=>{$e&&l===!1&&(B(!0),setTimeout((()=>{n(Ka())}),5e3))}),[$e,l]),r.useEffect((()=>()=>{At.flush()}),[]),r.useEffect((()=>{ue==="Completed"&&E&&Q.cards.length===1&&(Q.cards[0].status.code==="inactive"&&Q.cards[0].type.code==="business_physical_credit_card"?s(`./${Q.cards[0].id}/activate`):Q.cards[0].status.code!=="request_on_hold"&&(t.state?.message==="comingFromCardDetail"?s("../../"):s(`./${Q.cards[0].id}`)))}),[ue,E,t.state,s,Q.cards]),r.useEffect((()=>{if(ue==="Completed"&&E){const K=Q.cards.length,je=Q.cards.filter((Ze=>Ze.cardHolderUserId===D?.userId)).filter((Ze=>Ze.status.code==="request_on_hold"));je.length>0&&K===je.length&&s("./onboard")}}),[ue,Q.cards,E,s,D?.userId]),r.useEffect((()=>{ue!=="Completed"||_&&se.fetchState!=="Completed"||j&&k&&T&&ra.fetchState!=="Completed"||ee.trackCardsCardListView(P,ut,Ke,ze,sa)}),[ue,Oa,se.fetchState,ra.fetchState,T]),D==null)throw Error("Can't access charge card list page without signing in...");const zr=d((K=>rr(K.userState,K.userRoleState,K.userListViewState,"cardAdmin"))),Yt=Ft($?.loggedInUserRoleMap),Zt=K=>{c(K)},Wr=Q.creditAccount.limit,Yr=()=>{b(!1),s("..")},Zr=C.companyChargeCardInfo?.info!=null&&ya({cardInfo:C.companyChargeCardInfo.info,isProductVisible:_&&be,isTOSAccepted:ve,isSetupEnabled:re,isUserHasCardsAdminLevelAccess:T,isUserHasCardsAccess:Yt}),qr=C.companyDebitCardInfo?.info!=null&&ya({cardInfo:C.companyDebitCardInfo.info,isProductVisible:j&&pe,isTOSAccepted:Ie,isSetupEnabled:k,isUserHasCardsAdminLevelAccess:T,isUserHasCardsAccess:Yt}),Jr=Zr||qr,qt=(function(K){const{isEmptyCardsState:je,isChargeCardAdmin:Ze,isFileUploadEnabled:en}=K,an=ie(),Ma=me(),{tenantEmailDomain:Na}=Ve(),{isAiCfoOpen:ts,setIsAiCfoOpen:tn}=hr(),ns=fr(),rs=gr(),nn=d((ke=>jn(ke))).createSessionAndSubmitState.fetchState==="In-Progress",{chips:rn,isResolved:sn}=xr("cards_creation"),on=r.useMemo((()=>Fr(rn,sn,3)),[rn,sn]),[Va,Ct]=r.useState(""),cn=rs&&ns&&Na!=null&&!ts,fa=r.useCallback((ke=>{if(Na==null)return;const ss=Ee(Ma.state?.pathnameStackToGoBack,Ma.pathname);an(`/${Na}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:ss,referrer:"cards_hero",aiCfoInitialQuestion:ke,aiCfoShouldSubmit:ke!=null&&ke.trim().length>0}})}),[Ma.pathname,Ma.state,an,Na]),dn=r.useCallback((ke=>{ke.trim().length!==0&&(Ct(""),fa(ke))}),[fa]),ln=r.useCallback((()=>{const ke=Va.trim();ke.length!==0&&(Ct(""),fa(ke))}),[Va,fa]),un=r.useCallback((()=>{}),[]),mn=r.useCallback((ke=>{Ct(ke)}),[]),Cn=r.useCallback((()=>{tn(!0)}),[tn]),pn=r.useCallback((()=>{fa(void 0)}),[fa]);return r.useMemo((()=>{if(cn&&je&&Ze)return{aiAgentName:Ci,headline:ui,subheadline:mi,promptChips:on,composer:{currentInput:Va,isSubmitting:nn,isFileUploadEnabled:en,onInputChange:mn,onSubmit:ln,onStopSubmit:un},onPromptClick:dn,onOpenSidePanel:Cn,onOpenFullView:pn,dataTestIdPrefix:"cards-ai-cfo-hero"}}),[Va,cn,Ze,je,en,nn,mn,pn,Cn,dn,un,ln,on])})({isEmptyCardsState:ye,isChargeCardAdmin:T,isFileUploadEnabled:G}),Jt=L&&qt!=null?o.jsx(br,{...qt}):null,{isCardsShuttingDown:Qt,shutdownContent:Xt}=Ir(C.tenantId,C.company?.managementInfo?.receiverEmails),Qr=Qt===!0&&Xt!=null?o.jsx(uc,{shutdownContent:Xt}):null,Xr=p&&Jt==null,es=ta(C),as={events:ha(es,Hr),eventCallback:(K,je,Ze)=>{Ze.onEventReceived(K)},onSubscribed:K=>{K.onPusherSubscribed()}};return re||k?o.jsxs(o.Fragment,{children:[ue==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ot,{analytics:ee,onLoad:()=>{ee.trackPageLoaded(kr.Event.cardsListPage),(_&&!re||j&&!k)&&ee.trackCardsPromoView(P,{isCreditCardOffered:_,isDebitCardOffered:j,isDebitCardEnabled:k,isCreditCardEnabled:re},"Banner",j&&!k?"Debit Card":_&&!re?"Credit Card":"","Card List")}}),o.jsx(tt,{showConfetti:$e})]}):null,f===!0?o.jsx(Kt,{closeDrawerHandler:Yr,isPaymentDrawerOpen:f,pageName:"Card List",sourcePage:"cardListPage",creditAccountSpentAmount:mt,productInformation:ut,creditAccountInformation:ze,debitAccountInformation:sa,cashbackInformation:Ke,isDebitCardInfoFetchStateCompleted:!(j&&k&&T)||ra.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!_||se.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!T||ka.fetchState==="Completed",paymentInitiatedDate:se.initiatedRepaymentDate}):null,o.jsxs(hi,{children:[o.jsx(Ae,{isAppContentDrawerOpen:S,handleDrawerToggle:Zt}),o.jsx(fi,{...as,isCashbackFeatureEnabled:y,isChargeCardFeatureEnabled:_,isDebitCardFeatureEnabled:j,isCreditCardProductVisibleForExpressInterest:Z,updatePayNowInfoTooltip:u,showPayNowInfoTooltip:m,creditCardPayNowThreshold:Ce,signedInUser:D,chargeCardListState:Q,location:t,admins:zr.users,navigateAndClearBulkSelection:s,currentTenant:C,isCardControlsEnabled:X,companyChargeCardInfoCreditAccountLimit:C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,isCompanyInterestedInChargeCard:C.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,isUserHasCardsAdminLevelAccess:T,includeCreditAccountDebitSummaryAndCashbackInfo:I,onClickMenuIcon:()=>{Zt(!0)},creditLimit:Wr,isChargeCardSetupEnabled:re,isChargeCardEnabledOnCompany:be,isDebitCardSetupEnabled:k,isDebitCardEnabledOnCompany:pe,isEarlyPayEnabled:g,isChargeCardPaymentHistoryFeatureEnabled:R,cashbackRate:ae,controllerEmails:P,chargeCardCashbackDetailState:ka,depositAccountListWithDebitCardIssued:ra,isChargeCardTOSAccepted:ve,isDebitCardTOSAccepted:Ie,primaryFundingAccountDetails:lt,chargeCardSetUpViewFetchState:Ea.fetchState,productInformation:ut,creditAccountInformation:ze,debitAccountInformation:sa,cashbackInformation:Ke,isAiCfoAccessEnabled:Xr,onAskAiCfoClick:x,cardsAiCfoHero:Jt,cardsShutdownBanner:Qr,isCardsShuttingDown:Qt,onClickPolicyIcon:T&&M?()=>a(yi(C.tenantEmailDomain)):void 0,isPolicyIntroTooltipVisible:Ua,onPolicyIntroTooltipClose:Y,pendingCreationCount:Se})]})]}):(ve||Ie)&&T===!0?o.jsx(Qe,{to:"../setup"}):Jr?o.jsx(Qe,{to:"../promo"}):o.jsx(wa,{fetchState:ue})}const gi=e=>`/${e}/cards/new`,bi=e=>`/${e}/cards/payment`,Si=e=>`/${e}/cards/payment-history`,yi=e=>`/${e}/cards/policy`,Gr=[jr,Mr],Ii=new Set(Gr),ki=Pe((function(e){const a=te.getSignedInUser(),n=ge(e),t=e.tenantState.currentTenantId,s=sr(e),f={userId:a?.userId??"",sessionId:a?.zeniSessionId??"",tenantId:t??""},b=n?.companyName??"",m=e.chargeCardPaymentHistoryState.downloadUIState.downloadState;return{fetchState:s.fetchState,filters:s.filters,isZeniTenant:Io(n),repaymentList:s.repaymentHistory,searchText:s.searchText,repaymentHistoryUsers:s.repaymentHistoryUsers,sortConfig:{sortKey:s.uiState.sortKey,sortOrder:s.uiState.sortOrder},downloadParams:{authParams:f,companyName:b,spendManagementEndPoint:`${kt}/spendManagement`,isShowDeletedBillsEnabled:!1,isShowDeletedReimbursementEnabled:!1},downloadState:m}}),(function(e,a){const{location:n,navigate:t}=a;return{onBackClick:()=>{const s=we(n.state?.pathnameStackToGoBack),f=s.poppedPathname??"..";t(f,{state:{pathnameStackToGoBack:s.newStack}})},onColumnSortConfigChanged:(s,f)=>{e({type:"chargeCardPaymentHistory/updatePaymentHistoryUIState",payload:{uiState:{sortKey:s,sortOrder:f}}})},onFiltersChange:s=>{e(Eo({filters:s}))},onReloadPayments:()=>{e(Ha(!0))},onEventReceived:s=>{Ii.has(s)&&e(Ha(!0))},onPusherSubscribed:()=>{e(Ha(!0))},onSearchTextChanged:s=>{e({type:"chargeCardPaymentHistory/updatePaymentHistorySearchText",payload:s})},updateDownloadStateHandler:s=>{e(ko({uiState:{downloadState:s}}))}}}))(rt(Cc));function Ei(){const e=ie(),a=me(),n=le(),{areTenantIdsInSync:t}=yr(),{useFeatureGate:s}=de();if(te.getSignedInUser()==null)throw Error("Can't access payment history page without signing in...");const f=d((v=>ge(v))),b=d((v=>sr(v))),[m,A]=r.useState(!1),[u,l]=r.useState(!1),[B,D]=r.useState(!1),[C,O]=r.useState(null),U=!f.userRole.includes("charge_card_user"),S=!!f.companyDebitCardInfo?.info?.isDebitCardEnabled,{isFeatureEnabled:c}=s(q.isChargeCardFeatureEnabled),{isFeatureEnabled:p}=s(q.isDebitCardFeatureEnabled),x=Be(p,f),E=Oe({isDebitCardFeatureEnabled:p,isBankingOnlyTenant:x}),I=xe(f),k=Le(f),V=f.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,w=Ue({isCardsOnlyTenant:I,isChargeCardFeatureEnabled:c,isBookKeepingTenant:k,isDebitCardProductVisible:E,chargeCardsCreditAccountLimit:V}),y=!!f.companyChargeCardInfo?.info?.isChargeCardEnabled,F=Re(),i=Fe(F?.loggedInUserRoleMap),g=d((v=>Ca(v,U,E&&S,w&&y))),R=r.useMemo((()=>{const v=g.cards.filter((P=>P.type.code.includes("debit")));return[...new Set(v.map((P=>P.connectedAccountId)))]}),[g.cards]),G=d((v=>ma(v))),M=d((v=>at(v,R))),{creditAccountRepayment:L}=d((v=>ua(v))),z=r.useMemo((()=>jt(i,G)),[i,G]),j=r.useMemo((()=>xa(w,y,i,g.creditAccount,L)),[w,y,i,g.creditAccount,L]),h=r.useMemo((()=>Mt(E,S,i,M,g.debitCardSummary)),[E,S,i,M,g.debitCardSummary]),H=r.useMemo((()=>ea(w,E,S,y)),[w,E,S,y]),W=g.creditAccount.balance.amount+g.creditAccount.hold.amount,_=r.useMemo((()=>C!=null?b.repaymentHistory.find((v=>v.cardRepaymentId===C)):void 0),[C,b.repaymentHistory]),Z=r.useCallback((v=>{O(v),n(ia(U,E&&S,w&&y,!1)),D(!0)}),[n,U,E,S,w,y]),N=r.useCallback((()=>{D(!1),O(null),document.body.style.overflow="auto"}),[]);r.useEffect((()=>{m||b.fetchState==="Completed"||b.fetchState==="In-Progress"||(A(!0),n(Ha()))}),[m,n,b.fetchState]),r.useEffect((()=>{!u&&(y||S)&&t&&(l(!0),n(ia(U,!1,w&&y,!1)))}),[u,y,S,t,n,U,w]);const $=ta(f),T={events:ha($,Gr),eventCallback:(v,P,ae)=>{ae.onEventReceived(v)},onSubscribed:v=>{v.onPusherSubscribed()}};return o.jsxs(o.Fragment,{children:[B?o.jsx(Kt,{closeDrawerHandler:N,isPaymentDrawerOpen:B,pageName:"Payment History",sourcePage:"cardPaymentHistory",creditAccountSpentAmount:W,productInformation:H,creditAccountInformation:j,debitAccountInformation:h,cashbackInformation:z,isDebitCardInfoFetchStateCompleted:!(E&&S&&i)||M.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!w||L.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!i||G.fetchState==="Completed",paymentInitiatedDate:L.initiatedRepaymentDate,retryRepayment:_}):null,o.jsx(ki,{...T,location:a,navigate:e,accountInfoByAccountId:b.accountInfoByAccountId,onRetryPaymentClick:Z})]})}const kn=He.div`
|
|
25
|
+
`,fi=Pe((function(e,a){const n=Ca(e,a.includeCreditAccountDebitSummaryAndCashbackInfo,a.isDebitCardFeatureEnabled&&a.isDebitCardSetupEnabled,a.isChargeCardFeatureEnabled&&a.isChargeCardSetupEnabled);return{chargeCardListView:n,rowActionView:uo(e),bulkActionView:mo(e),companyLegalName:a.currentTenant.companyName,admins:a.admins,searchText:n.searchText,uiState:n.uiState,signedInUser:a.signedInUser,receiptsEmail:Wn(e.tenantState,a.currentTenant.tenantId)}}),(function(e,a){const{navigateAndClearBulkSelection:n,currentTenant:t,location:s,signedInUser:f,chargeCardListState:b,includeCreditAccountDebitSummaryAndCashbackInfo:m,isChargeCardFeatureEnabled:A,isCreditCardProductVisibleForExpressInterest:u,isChargeCardSetupEnabled:l,isDebitCardFeatureEnabled:B,isDebitCardSetupEnabled:D,isDebitCardTOSAccepted:C,isChargeCardTOSAccepted:O,controllerEmails:U,depositAccountListWithDebitCardIssued:S,primaryFundingAccountDetails:c,chargeCardSetUpViewFetchState:p,productInformation:x,cashbackInformation:E,creditAccountInformation:I,debitAccountInformation:k,updatePayNowInfoTooltip:V,isUserHasCardsAdminLevelAccess:w}=a,{tenantEmailDomain:y}=t,{cards:F}=b;return{onChargeCardRowClick:(i,g)=>{const R=_r(F,i);let G;R!=null&&((L=>{const z=L.limit.amount-L.available.amount,j=`${L.cardHolderUser?.firstName.toLowerCase()} ${L.cardHolderUser?.lastName.toLowerCase()}`,h=L.cardName,H=L.department?.className??"",Y=L.limit.amount,_=L.creditLimitFrequency.name;ee.trackCardsListRowClicked(j,h,H,z,Y,_,f.userId===L.cardHolderUserId)})(R),ca(B,D,S)&&ee.trackCardsCardListRowClick(U,x,"Card Row Item","row_clicked",g+1,{cardOwner:It(R.cardHolderUser,!1),cardName:R.cardName,cardType:R.type.code.includes("credit")?"credit":"debit",cardStatus:R.status.code,cardUtilizationAmount:ba(R.limit.amount-R.available.amount),cardUtilizationPercent:R.limit.amount>0?Math.round((R.limit.amount-R.available.amount)/R.limit.amount*100):0,cardLimit:ba(R.limit.amount)},E,I,k)),G=R?.status.code==="request_on_hold"&&f.userId===R.cardHolderUserId?Pr(y):_e(y,i,f,R);const M=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(G,{state:{pathnameStackToGoBack:M}})},onFetchChargeCardsRecurringExpenses:i=>{e(Xn(i))},onFetchDepositAccountLimit:i=>{e(Yn({depositAccountId:i}))},onChargeCardResendInviteClick:i=>{e(yo(i))},onChargeCardRevokeInviteClick:i=>{e(Jn(i))},onLockChargeCardList:(i,g)=>{e(So(i,g))},onUnlockChargeCardList:i=>{e(bo(i))},onCloseChargeCardList:(i,g)=>{e(go(i,g))},onRevokeChargeCardList:i=>{e(fo(i))},updateChargeCardListSpendLimit(i,g,R){e(ho(i,g,R.code))},onLockChargeCard:(i,g)=>{e(tr(w,i,g))},onUnlockChargeCard:i=>{e(ar(w,i))},onCloseChargeCard:(i,g)=>{e(er(i,g))},onUpdateSpendLimit(i,g,R,G){e(Zn(i,g,R.code,G))},updateChargeCardName:(i,g)=>{e(Qn(w,i,g))},onClickSetupIcon:()=>{ee.trackCardsListPageClicked("settings"),ca(B,D,S)&&E!=null&&ee.trackCardsSettingsClick(U,x,E,I,k);const i=Fc(y),g=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:g}})},onIssueCardClick:()=>{ee.trackCardsListPageClicked("new card"),ca(B,D,S)&&E!=null&&ee.trackCardsNewCardClick(U,x,E,"New Button","card_creation_initiated","Card List",I,k);const i=gi(y),g=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:g}})},onColumnSortConfigChanged:(i,g)=>{ca(B,D,S)&&E!=null&&ee.trackCardsCardListSortClick(U,x,E,"Sort Icon","sort",i,g==="ascending"?"ASC":"DESC","Cards List",I,k),e(yt({uiState:{sortKey:i,sortOrder:g}}))},onSearchTextChanged:i=>{e(po(i))},onReloadCards:()=>{e(ia(m,B&&D,A&&l,!0))},onLetsGoClick:()=>{n("./onboard")},onBackClick:()=>{n("../../")},onTotalCashbackClick:()=>{ca(B,D,S)&&E!=null&&ee.trackCardsCashbackOverviewClick(U,x,E,"Cashback Overview","cashback_details_viewed",I,k),n("./cashback")},onClickStatementsIcon:()=>{ca(B,D,S)&&E!=null&&ee.trackCardsStatementsClick(U,x,E,I,k),n("./statements")},onCreateNowClick:i=>{ca(B,D,S)&&E!=null&&ee.trackCardsNewCardClick(U,x,E,"Promo Banner","card_creation_initiated","Card List",I,k),n(`./new?cardType=${i}`)},onPromoCardClick:i=>{n(i==="debit"&&B&&!C||i==="credit"&&u&&!O?`../promo?cardPromoType=${i}`:"./setup")},navigateToCreditCardPaymentPage:(i,g)=>{p==="Completed"&&t.company!=null&&E!=null&&ee.trackCardsPayEarlyClick(U,x,E,"Card List",i,g,{isZeniCheckingEnabled:t.company.companyZeniAccountInfo.isZeniAccountEnabled,isZeniCheckingPaymentSource:c?.accType==="depositAccount",creditCardPaymentSourceAccountName:c?.label,creditCardPaymentSourceAccountType:c?.accType,creditCardPaymentSourceLastFourDigits:c?.accountLast4,creditCardPaymentSourceBalance:c?.accountBalance?.available?.amount??0},I,k);const R=bi(y);n(R)},navigateToCreditCardPaymentHistoryPage:()=>{const i=Si(y),g=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:g}})},shouldShowPayNowInfoTooltip:V,onSetRowActionCardId:i=>{e(Co(i))},onSetBulkActionCardIds:i=>{e(nr(i))},onEventReceived:i=>{pi.has(i)&&At(e,m,B&&D,A&&l)},onPusherSubscribed:()=>{At(e,m,B&&D,A&&l)}}}))(rt(mc));function In({isPaymentDrawerOpen:e}){const a=ie(),n=le(),t=me(),s=r.useCallback(((K,je)=>{n(nr([])),a(K,je)}),[n,a]),[f,b]=r.useState(!1),[m,A]=r.useState(te.getPayNowInfoTooltip()??!1),u=K=>{te.savePayNowInfoTooltip(K),A(K)},[l,B]=r.useState(!1),D=te.getSignedInUser(),C=d((K=>ge(K))),[O,U]=r.useState(!1),[S,c]=r.useState(!1),{isAiCfoAccessEnabled:p,onAskAiCfoClick:x}=Fa({mobileExploreReferrer:"Cards"}),E=C.userRole.includes("charge_card_user"),I=!E,k=!!C.companyDebitCardInfo?.info?.isDebitCardEnabled,{useFeatureGate:V,useDynamicConfig:w}=de(),{isFeatureEnabled:y}=V(q.isCashbackFeatureEnabled),{isFeatureEnabled:F}=V(q.isChargeCardFeatureEnabled),{isFeatureEnabled:i}=V(q.isDebitCardFeatureEnabled),{isFeatureEnabled:g}=V(q.isEarlyPayFeatureEnabled),{isFeatureEnabled:R}=V(q.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:G}=V(q.isAiCfoFileUploadEnabled),{isFeatureEnabled:M}=V(q.isCardPolicyEnabled),{isFeatureEnabled:L}=V(q.isAiCardCreationEnabled),z=Be(i,C),j=Oe({isDebitCardFeatureEnabled:i,isBankingOnlyTenant:z}),h=xe(C),H=Le(C),Y=C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:F,isBookKeepingTenant:H,isDebitCardProductVisible:j,chargeCardsCreditAccountLimit:Y}),Z=Dr({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:F,isBookKeepingTenant:H}),{configValue:N}=w(Xe.zeniCardsConfig),$=Re(),T=Fe($?.loggedInUserRoleMap),v=d((K=>da(K,C.companyId))),P=la(v.controllers),ae=N.charge_card_cashback_rate_per_transaction!=null?N.charge_card_cashback_rate_per_transaction:.0175,Ce=N.credit_card_pay_now_threshold_by_company_id?.[C.companyId]??N.default_credit_card_pay_now_threshold??Tc,X=N.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(N.enable_card_controls_for_company_ids)&&N.enable_card_controls_for_company_ids.includes(C.companyId),ve=!!C.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,Ie=!!C.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,re=!!C.companyChargeCardInfo?.info?.isChargeCardEnabled,be=!!C.company?.companyChargeCardInfo?.isChargeCardEnabled,pe=!!C.company?.companyDebitCardInfo?.isDebitCardEnabled,he=d((K=>Gn(K))),oe=Sa(he.updateStatus),Q=d((K=>Ca(K,I,j&&k,_&&re))),Se=d((K=>oo(K))),De=d((K=>co(K))),fe=d((K=>io(K))),Te=d((K=>lo(K))),J=d((K=>fe==null?[]:Mn(K.aiCfoState,fe).filter((je=>je.kind==="creating_cards"))),Dt),Ge=Sa(De.fetchState);r.useEffect((()=>{Ge==="In-Progress"&&De.fetchState==="Completed"&&fe!=null&&J.forEach((K=>{n(St({chatSessionId:fe,id:K.id,entityIds:Te,kind:"created_cards"}))}))}),[n,De.fetchState,fe,Te,J,Ge]);const Ra=Q.cards.filter((K=>K.type.code.includes("debit"))).map((K=>K.connectedAccountId)),it=[...new Set(Ra)],ka=d((K=>ma(K))),ra=d((K=>at(K,it))),Ea=d((K=>Pa(K,C.companyId))),dt=Ea.companyChargeCardInfo?.primaryFundingAccount,lt=Ea.allFundingAccounts.find((K=>K.id===dt?.accountId)),ue=Q.fetchState,Oa=Q.creditAccount,Aa=r.useCallback((()=>T===!0&&M===!0&&ue==="Completed"&&te.getCardPolicyPopupSeen(C.tenantEmailDomain??"")!==!0),[T,M,ue,C.tenantEmailDomain]),[Ua,ja]=r.useState(Aa);r.useEffect((()=>{ja(Aa())}),[Aa]);const W=()=>{te.saveCardPolicyPopupSeen(C.tenantEmailDomain??"",!0),ja(!1)},ye=ue==="Completed"&&!Q.hasCreditCard&&!Q.hasDebitCard;lc({isDataReady:ue==="Completed",pageContext:ye?"cards_creation":"cards"});const{creditAccountRepayment:se}=d((K=>ua(K))),$e=d((K=>Za(K).firstViewAfterActivation)),{areTenantIdsInSync:We}=yr(),Ke=jt(T,ka),ze=xa(_,re,T,Oa,se),sa=Mt(j,k,T,ra,Q.debitCardSummary),ut=ea(_,j,k,re),mt=Q.creditAccount.balance.amount+Q.creditAccount.hold.amount;if(r.useEffect((()=>{ue==="Completed"&&(te.getPayNowInfoTooltip()==null||mt<Ce*Q.creditAccount.limit.amount/100)&&u(!0)}),[ue,Ce,mt,Q.creditAccount.limit.amount]),r.useEffect((()=>{if(e!=null&&e===!0&&se.initiatedRepayments.amount===0&&se.fetchState==="Completed"||oe==="In-Progress"&&he.updateStatus==="Completed")u(!1),b(!0);else if(se.initiatedRepayments.amount>0&&se.fetchState==="Completed"){b(!1),document.body.style.overflow="auto";const K=na(C.tenantEmailDomain);s(K)}}),[e,se.initiatedRepayments.amount,se.fetchState,oe,he.updateStatus,s,C.tenantEmailDomain]),r.useEffect((()=>{!O&&(re||k)&&(be||pe)&&We&&(U(!0),n(ia(I,j&&k,_&&re,!1)))}),[O,I,n,We,be,pe]),r.useEffect((()=>{$e&&l===!1&&(B(!0),setTimeout((()=>{n(Ka())}),5e3))}),[$e,l]),r.useEffect((()=>()=>{At.flush()}),[]),r.useEffect((()=>{ue==="Completed"&&E&&Q.cards.length===1&&(Q.cards[0].status.code==="inactive"&&Q.cards[0].type.code==="business_physical_credit_card"?s(`./${Q.cards[0].id}/activate`):Q.cards[0].status.code!=="request_on_hold"&&(t.state?.message==="comingFromCardDetail"?s("../../"):s(`./${Q.cards[0].id}`)))}),[ue,E,t.state,s,Q.cards]),r.useEffect((()=>{if(ue==="Completed"&&E){const K=Q.cards.length,je=Q.cards.filter((Ze=>Ze.cardHolderUserId===D?.userId)).filter((Ze=>Ze.status.code==="request_on_hold"));je.length>0&&K===je.length&&s("./onboard")}}),[ue,Q.cards,E,s,D?.userId]),r.useEffect((()=>{ue!=="Completed"||_&&se.fetchState!=="Completed"||j&&k&&T&&ra.fetchState!=="Completed"||ee.trackCardsCardListView(P,ut,Ke,ze,sa)}),[ue,Oa,se.fetchState,ra.fetchState,T]),D==null)throw Error("Can't access charge card list page without signing in...");const zr=d((K=>rr(K.userState,K.userRoleState,K.userListViewState,"cardAdmin"))),Wt=Ft($?.loggedInUserRoleMap),Zt=K=>{c(K)},Yr=Q.creditAccount.limit,Wr=()=>{b(!1),s("..")},Zr=C.companyChargeCardInfo?.info!=null&&ya({cardInfo:C.companyChargeCardInfo.info,isProductVisible:_&&be,isTOSAccepted:ve,isSetupEnabled:re,isUserHasCardsAdminLevelAccess:T,isUserHasCardsAccess:Wt}),qr=C.companyDebitCardInfo?.info!=null&&ya({cardInfo:C.companyDebitCardInfo.info,isProductVisible:j&&pe,isTOSAccepted:Ie,isSetupEnabled:k,isUserHasCardsAdminLevelAccess:T,isUserHasCardsAccess:Wt}),Jr=Zr||qr,qt=(function(K){const{isEmptyCardsState:je,isChargeCardAdmin:Ze,isFileUploadEnabled:en}=K,an=ie(),Ma=me(),{tenantEmailDomain:Na}=Ve(),{isAiCfoOpen:ts,setIsAiCfoOpen:tn}=hr(),ns=fr(),rs=gr(),nn=d((ke=>jn(ke))).createSessionAndSubmitState.fetchState==="In-Progress",{chips:rn,isResolved:sn}=xr("cards_creation"),on=r.useMemo((()=>Fr(rn,sn,3)),[rn,sn]),[Va,Ct]=r.useState(""),cn=rs&&ns&&Na!=null&&!ts,fa=r.useCallback((ke=>{if(Na==null)return;const ss=Ee(Ma.state?.pathnameStackToGoBack,Ma.pathname);an(`/${Na}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:ss,referrer:"cards_hero",aiCfoInitialQuestion:ke,aiCfoShouldSubmit:ke!=null&&ke.trim().length>0}})}),[Ma.pathname,Ma.state,an,Na]),dn=r.useCallback((ke=>{ke.trim().length!==0&&(Ct(""),fa(ke))}),[fa]),ln=r.useCallback((()=>{const ke=Va.trim();ke.length!==0&&(Ct(""),fa(ke))}),[Va,fa]),un=r.useCallback((()=>{}),[]),mn=r.useCallback((ke=>{Ct(ke)}),[]),Cn=r.useCallback((()=>{tn(!0)}),[tn]),pn=r.useCallback((()=>{fa(void 0)}),[fa]);return r.useMemo((()=>{if(cn&&je&&Ze)return{aiAgentName:Ci,headline:ui,subheadline:mi,promptChips:on,composer:{currentInput:Va,isSubmitting:nn,isFileUploadEnabled:en,onInputChange:mn,onSubmit:ln,onStopSubmit:un},onPromptClick:dn,onOpenSidePanel:Cn,onOpenFullView:pn,dataTestIdPrefix:"cards-ai-cfo-hero"}}),[Va,cn,Ze,je,en,nn,mn,pn,Cn,dn,un,ln,on])})({isEmptyCardsState:ye,isChargeCardAdmin:T,isFileUploadEnabled:G}),Jt=L&&qt!=null?o.jsx(br,{...qt}):null,{isCardsShuttingDown:Qt,shutdownContent:Xt}=Ir(C.tenantId,C.company?.managementInfo?.receiverEmails),Qr=Qt===!0&&Xt!=null?o.jsx(uc,{shutdownContent:Xt}):null,Xr=p&&Jt==null,es=ta(C),as={events:ha(es,Hr),eventCallback:(K,je,Ze)=>{Ze.onEventReceived(K)},onSubscribed:K=>{K.onPusherSubscribed()}};return re||k?o.jsxs(o.Fragment,{children:[ue==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ot,{analytics:ee,onLoad:()=>{ee.trackPageLoaded(kr.Event.cardsListPage),(_&&!re||j&&!k)&&ee.trackCardsPromoView(P,{isCreditCardOffered:_,isDebitCardOffered:j,isDebitCardEnabled:k,isCreditCardEnabled:re},"Banner",j&&!k?"Debit Card":_&&!re?"Credit Card":"","Card List")}}),o.jsx(tt,{showConfetti:$e})]}):null,f===!0?o.jsx(Kt,{closeDrawerHandler:Wr,isPaymentDrawerOpen:f,pageName:"Card List",sourcePage:"cardListPage",creditAccountSpentAmount:mt,productInformation:ut,creditAccountInformation:ze,debitAccountInformation:sa,cashbackInformation:Ke,isDebitCardInfoFetchStateCompleted:!(j&&k&&T)||ra.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!_||se.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!T||ka.fetchState==="Completed",paymentInitiatedDate:se.initiatedRepaymentDate}):null,o.jsxs(hi,{children:[o.jsx(Ae,{isAppContentDrawerOpen:S,handleDrawerToggle:Zt}),o.jsx(fi,{...as,isCashbackFeatureEnabled:y,isChargeCardFeatureEnabled:_,isDebitCardFeatureEnabled:j,isCreditCardProductVisibleForExpressInterest:Z,updatePayNowInfoTooltip:u,showPayNowInfoTooltip:m,creditCardPayNowThreshold:Ce,signedInUser:D,chargeCardListState:Q,location:t,admins:zr.users,navigateAndClearBulkSelection:s,currentTenant:C,isCardControlsEnabled:X,companyChargeCardInfoCreditAccountLimit:C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,isCompanyInterestedInChargeCard:C.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,isUserHasCardsAdminLevelAccess:T,includeCreditAccountDebitSummaryAndCashbackInfo:I,onClickMenuIcon:()=>{Zt(!0)},creditLimit:Yr,isChargeCardSetupEnabled:re,isChargeCardEnabledOnCompany:be,isDebitCardSetupEnabled:k,isDebitCardEnabledOnCompany:pe,isEarlyPayEnabled:g,isChargeCardPaymentHistoryFeatureEnabled:R,cashbackRate:ae,controllerEmails:P,chargeCardCashbackDetailState:ka,depositAccountListWithDebitCardIssued:ra,isChargeCardTOSAccepted:ve,isDebitCardTOSAccepted:Ie,primaryFundingAccountDetails:lt,chargeCardSetUpViewFetchState:Ea.fetchState,productInformation:ut,creditAccountInformation:ze,debitAccountInformation:sa,cashbackInformation:Ke,isAiCfoAccessEnabled:Xr,onAskAiCfoClick:x,cardsAiCfoHero:Jt,cardsShutdownBanner:Qr,isCardsShuttingDown:Qt,onClickPolicyIcon:T&&M?()=>a(yi(C.tenantEmailDomain)):void 0,isPolicyIntroTooltipVisible:Ua,onPolicyIntroTooltipClose:W,pendingCreationCount:Se})]})]}):(ve||Ie)&&T===!0?o.jsx(Qe,{to:"../setup"}):Jr?o.jsx(Qe,{to:"../promo"}):o.jsx(wa,{fetchState:ue})}const gi=e=>`/${e}/cards/new`,bi=e=>`/${e}/cards/payment`,Si=e=>`/${e}/cards/payment-history`,yi=e=>`/${e}/cards/policy`,Gr=[jr,Mr],Ii=new Set(Gr),ki=Pe((function(e){const a=te.getSignedInUser(),n=ge(e),t=e.tenantState.currentTenantId,s=sr(e),f={userId:a?.userId??"",sessionId:a?.zeniSessionId??"",tenantId:t??""},b=n?.companyName??"",m=e.chargeCardPaymentHistoryState.downloadUIState.downloadState;return{fetchState:s.fetchState,filters:s.filters,isZeniTenant:Io(n),repaymentList:s.repaymentHistory,searchText:s.searchText,repaymentHistoryUsers:s.repaymentHistoryUsers,sortConfig:{sortKey:s.uiState.sortKey,sortOrder:s.uiState.sortOrder},downloadParams:{authParams:f,companyName:b,spendManagementEndPoint:`${kt}/spendManagement`,isShowDeletedBillsEnabled:!1,isShowDeletedReimbursementEnabled:!1},downloadState:m}}),(function(e,a){const{location:n,navigate:t}=a;return{onBackClick:()=>{const s=we(n.state?.pathnameStackToGoBack),f=s.poppedPathname??"..";t(f,{state:{pathnameStackToGoBack:s.newStack}})},onColumnSortConfigChanged:(s,f)=>{e({type:"chargeCardPaymentHistory/updatePaymentHistoryUIState",payload:{uiState:{sortKey:s,sortOrder:f}}})},onFiltersChange:s=>{e(Eo({filters:s}))},onReloadPayments:()=>{e(Ha(!0))},onEventReceived:s=>{Ii.has(s)&&e(Ha(!0))},onPusherSubscribed:()=>{e(Ha(!0))},onSearchTextChanged:s=>{e({type:"chargeCardPaymentHistory/updatePaymentHistorySearchText",payload:s})},updateDownloadStateHandler:s=>{e(ko({uiState:{downloadState:s}}))}}}))(rt(Cc));function Ei(){const e=ie(),a=me(),n=le(),{areTenantIdsInSync:t}=yr(),{useFeatureGate:s}=de();if(te.getSignedInUser()==null)throw Error("Can't access payment history page without signing in...");const f=d((v=>ge(v))),b=d((v=>sr(v))),[m,A]=r.useState(!1),[u,l]=r.useState(!1),[B,D]=r.useState(!1),[C,O]=r.useState(null),U=!f.userRole.includes("charge_card_user"),S=!!f.companyDebitCardInfo?.info?.isDebitCardEnabled,{isFeatureEnabled:c}=s(q.isChargeCardFeatureEnabled),{isFeatureEnabled:p}=s(q.isDebitCardFeatureEnabled),x=Be(p,f),E=Oe({isDebitCardFeatureEnabled:p,isBankingOnlyTenant:x}),I=xe(f),k=Le(f),V=f.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,w=Ue({isCardsOnlyTenant:I,isChargeCardFeatureEnabled:c,isBookKeepingTenant:k,isDebitCardProductVisible:E,chargeCardsCreditAccountLimit:V}),y=!!f.companyChargeCardInfo?.info?.isChargeCardEnabled,F=Re(),i=Fe(F?.loggedInUserRoleMap),g=d((v=>Ca(v,U,E&&S,w&&y))),R=r.useMemo((()=>{const v=g.cards.filter((P=>P.type.code.includes("debit")));return[...new Set(v.map((P=>P.connectedAccountId)))]}),[g.cards]),G=d((v=>ma(v))),M=d((v=>at(v,R))),{creditAccountRepayment:L}=d((v=>ua(v))),z=r.useMemo((()=>jt(i,G)),[i,G]),j=r.useMemo((()=>xa(w,y,i,g.creditAccount,L)),[w,y,i,g.creditAccount,L]),h=r.useMemo((()=>Mt(E,S,i,M,g.debitCardSummary)),[E,S,i,M,g.debitCardSummary]),H=r.useMemo((()=>ea(w,E,S,y)),[w,E,S,y]),Y=g.creditAccount.balance.amount+g.creditAccount.hold.amount,_=r.useMemo((()=>C!=null?b.repaymentHistory.find((v=>v.cardRepaymentId===C)):void 0),[C,b.repaymentHistory]),Z=r.useCallback((v=>{O(v),n(ia(U,E&&S,w&&y,!1)),D(!0)}),[n,U,E,S,w,y]),N=r.useCallback((()=>{D(!1),O(null),document.body.style.overflow="auto"}),[]);r.useEffect((()=>{m||b.fetchState==="Completed"||b.fetchState==="In-Progress"||(A(!0),n(Ha()))}),[m,n,b.fetchState]),r.useEffect((()=>{!u&&(y||S)&&t&&(l(!0),n(ia(U,!1,w&&y,!1)))}),[u,y,S,t,n,U,w]);const $=ta(f),T={events:ha($,Gr),eventCallback:(v,P,ae)=>{ae.onEventReceived(v)},onSubscribed:v=>{v.onPusherSubscribed()}};return o.jsxs(o.Fragment,{children:[B?o.jsx(Kt,{closeDrawerHandler:N,isPaymentDrawerOpen:B,pageName:"Payment History",sourcePage:"cardPaymentHistory",creditAccountSpentAmount:Y,productInformation:H,creditAccountInformation:j,debitAccountInformation:h,cashbackInformation:z,isDebitCardInfoFetchStateCompleted:!(E&&S&&i)||M.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!w||L.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!i||G.fetchState==="Completed",paymentInitiatedDate:L.initiatedRepaymentDate,retryRepayment:_}):null,o.jsx(ki,{...T,location:a,navigate:e,accountInfoByAccountId:b.accountInfoByAccountId,onRetryPaymentClick:Z})]})}const kn=He.div`
|
|
26
26
|
display: flex;
|
|
27
27
|
height: 100vh;
|
|
28
28
|
width: 100%;
|
|
@@ -31,7 +31,7 @@ import{j as o}from"./liveblocks-CQOAuUNI.js";import{u as le,j as d,h as ie,g as
|
|
|
31
31
|
overflow: auto;
|
|
32
32
|
align-items: center;
|
|
33
33
|
background-color: ${e=>e.theme.colors.grey4};
|
|
34
|
-
`,En=aa.getLocalizedStrings().months;function Ai(){const e=ie(),a=le(),n=me(),{creditAccount:t,creditAccountRepayment:s}=d((h=>ua(h))),f=`${Sr.cardMicroServiceBaseUrl}/1.0/credit-accounts/${t.id}`,[b,m]=r.useState(!1),[A,u]=r.useState(!1),l=d((h=>Ao(h))),{useFeatureGate:B}=de(),D=d((h=>ge(h))),{isFeatureEnabled:C}=B(q.isChargeCardFeatureEnabled),{isFeatureEnabled:O}=B(q.isDebitCardFeatureEnabled),U=wr(D.companyId,{clearParams:l.fetchState==="Completed"}),S=Be(O,D),c=Oe({isDebitCardFeatureEnabled:O,isBankingOnlyTenant:S}),p=xe(D),x=Le(D),E=D.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,I=Ue({isCardsOnlyTenant:p,isChargeCardFeatureEnabled:C,isBookKeepingTenant:x,isDebitCardProductVisible:c,chargeCardsCreditAccountLimit:E}),k=!!D.companyDebitCardInfo?.info?.isDebitCardEnabled,V=!!D.companyChargeCardInfo?.info?.isChargeCardEnabled,w=d((h=>da(h,D.companyId))),y=la(w.controllers),F=d((h=>or(h))),i=F.cards.filter((h=>h.type.code.includes("debit"))).map((h=>h.connectedAccountId)),g=[...new Set(i)],R=d((h=>at(h,g))),G=d((h=>Do(h)));r.useEffect((()=>{A||t.fetchState==="Completed"||t.fetchState==="In-Progress"||(m(!0),a(Je()))}),[b,a,t.fetchState]),r.useEffect((()=>{A||t.fetchState!=="Completed"||t.id==null||l.fetchState==="Completed"||l.fetchState==="In-Progress"||(u(!0),a(_o(t.id)))}),[A,a,t.fetchState,t.id,l.fetchState]),r.useEffect((()=>{R.fetchState!=="Completed"&&R.fetchState!=="In-Progress"&&c&&k&&a(cr()),F.fetchState!=="Completed"&&F.fetchState!=="In-Progress"&&a(Ne()),G.fetchState!=="Completed"&&G.fetchState!=="In-Progress"&&c&&k&&a(Po()),s.fetchState!=="Completed"&&s.fetchState!=="In-Progress"&&I&&V&&a(vt())}),[R.fetchState,c,k,F.fetchState,G.fetchState,s.fetchState,I,V]),r.useEffect((()=>{if(l.fetchState==="Completed"&&t.fetchState==="Completed"&&s.fetchState==="Completed"&&F.fetchState==="Completed"&&(!c||!k||R.fetchState==="Completed"&&G.fetchState==="Completed")){let h="",H="";if(l.statements.length>0){const N=l.statements[l.statements.length-1].period,[$,T]=N.split("-"),v=l.statements[0].period,[P,ae]=v.split("-");h=`${En[parseInt(T)-1]} ${$}`,H=`${En[parseInt(ae)-1]} ${P}`}const
|
|
34
|
+
`,En=aa.getLocalizedStrings().months;function Ai(){const e=ie(),a=le(),n=me(),{creditAccount:t,creditAccountRepayment:s}=d((h=>ua(h))),f=`${Sr.cardMicroServiceBaseUrl}/1.0/credit-accounts/${t.id}`,[b,m]=r.useState(!1),[A,u]=r.useState(!1),l=d((h=>Ao(h))),{useFeatureGate:B}=de(),D=d((h=>ge(h))),{isFeatureEnabled:C}=B(q.isChargeCardFeatureEnabled),{isFeatureEnabled:O}=B(q.isDebitCardFeatureEnabled),U=wr(D.companyId,{clearParams:l.fetchState==="Completed"}),S=Be(O,D),c=Oe({isDebitCardFeatureEnabled:O,isBankingOnlyTenant:S}),p=xe(D),x=Le(D),E=D.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,I=Ue({isCardsOnlyTenant:p,isChargeCardFeatureEnabled:C,isBookKeepingTenant:x,isDebitCardProductVisible:c,chargeCardsCreditAccountLimit:E}),k=!!D.companyDebitCardInfo?.info?.isDebitCardEnabled,V=!!D.companyChargeCardInfo?.info?.isChargeCardEnabled,w=d((h=>da(h,D.companyId))),y=la(w.controllers),F=d((h=>or(h))),i=F.cards.filter((h=>h.type.code.includes("debit"))).map((h=>h.connectedAccountId)),g=[...new Set(i)],R=d((h=>at(h,g))),G=d((h=>Do(h)));r.useEffect((()=>{A||t.fetchState==="Completed"||t.fetchState==="In-Progress"||(m(!0),a(Je()))}),[b,a,t.fetchState]),r.useEffect((()=>{A||t.fetchState!=="Completed"||t.id==null||l.fetchState==="Completed"||l.fetchState==="In-Progress"||(u(!0),a(_o(t.id)))}),[A,a,t.fetchState,t.id,l.fetchState]),r.useEffect((()=>{R.fetchState!=="Completed"&&R.fetchState!=="In-Progress"&&c&&k&&a(cr()),F.fetchState!=="Completed"&&F.fetchState!=="In-Progress"&&a(Ne()),G.fetchState!=="Completed"&&G.fetchState!=="In-Progress"&&c&&k&&a(Po()),s.fetchState!=="Completed"&&s.fetchState!=="In-Progress"&&I&&V&&a(vt())}),[R.fetchState,c,k,F.fetchState,G.fetchState,s.fetchState,I,V]),r.useEffect((()=>{if(l.fetchState==="Completed"&&t.fetchState==="Completed"&&s.fetchState==="Completed"&&F.fetchState==="Completed"&&(!c||!k||R.fetchState==="Completed"&&G.fetchState==="Completed")){let h="",H="";if(l.statements.length>0){const N=l.statements[l.statements.length-1].period,[$,T]=N.split("-"),v=l.statements[0].period,[P,ae]=v.split("-");h=`${En[parseInt(T)-1]} ${$}`,H=`${En[parseInt(ae)-1]} ${P}`}const Y=ea(I,c,k,V),_=xa(I,V,!0,t,s),Z=Mt(c,k,!0,R,G);ee.trackCardsCreditCardStatementsView(y,Y,{numberOfStatements:l.statements.length,oldestStatementMonthYear:h,latestStatementMonthYear:H},_,Z)}}),[l.fetchState,t.fetchState,s.fetchState,R.fetchState,F.fetchState,G.fetchState]);const M=()=>{const h=we(n.state?.pathnameStackToGoBack),H=h.poppedPathname??"..";e(H,{state:{pathnameStackToGoBack:h.newStack}})},L=d((h=>ma(h))),z=te.getSignedInUser(),j={userId:z?.userId??"",sessionId:z?.zeniSessionId??"",tenantId:D.tenantId??""};if(z==null)throw Error("Can't access address page without signing in...");if(l.fetchState!=="Completed")return o.jsx(kn,{children:o.jsx(pc,{onBackClick:M})});{const h=ea(I,c,k,V);return o.jsx(kn,{children:o.jsx(hc,{currentTenantCompanyName:D.companyName,statementListView:l,productInformation:h,onBackClick:M,authParams:j,controllerEmails:y,isChargeCardFeatureEnabled:I,isDebitCardFeatureEnabled:c,isDebitCardSetupEnabled:k,isChargeCardSetupEnabled:V,initialOpenThreadRequest:U,chargeCardCashbackDetailState:L,creditAccount:t,creditAccountRepayment:s,depositAccountListWithDebitCardIssued:R,debitCardSummary:G,downloadEndPoint:f})})}}const $r=[pa,ct],Di=new Set($r),_i={containerWidth:new Ta(100,58)},Pi=({appContent:e})=>{const a=va(),n=le(),t=ie(),s=me(),{useDynamicConfig:f}=de(),[b,m]=r.useState(!1),[A,u]=r.useState(!1),[l,B]=r.useState(!1),[D,C]=r.useState(!1),O=r.useRef(!1),U=r.useRef(null);r.useEffect((()=>()=>{U.current!=null&&(clearTimeout(U.current),U.current=null)}),[]);const[S,c]=r.useState(!1),[p,x]=r.useState(!1),E=te.getSignedInUser();if(E==null)throw Error("Can't access onboarding card page without signing in...");const I=d((N=>ge(N))),{configValue:k}=f(Xe.zeniCardsConfig),V=d((N=>wo(N))),{tenantEmailDomain:w}=I,y=d((N=>N.settingsViewState.profile.fetchState)),F=d((N=>N.chargeCardListState.fetchState)),i=d((N=>N.settingsViewState.profile.userId)),g=d((N=>N.chargeCardConfigState.fetchState));r.useEffect((()=>{b===!1&&y!=="In-Progress"&&y!=="Completed"&&(n(vo()),m(!0)),A===!1&&g!=="In-Progress"&&g!=="Completed"&&(n(qa()),u(!0)),l===!1&&F==="Not-Started"&&(B(!0),n(Ne()))}),[b,l,F,A,g]),r.useEffect((()=>{y==="Completed"&&S===!1&&i!=null&&F==="Completed"&&V.cards.length>0&&(n(To({userId:i})),n(ir({cardId:V.cards[V.cards.length-1].id})),c(!0))}),[y,S,i,F]),r.useEffect((()=>{if(!D&&V.fetchState==="Completed"&&V.cards.length===0){const N=we(s.state?.pathnameStackToGoBack),$=N.poppedPathname??na(w);t($,{state:{pathnameStackToGoBack:N.newStack}})}}),[V.fetchState,V.cards,D]);const R=d((N=>Za(N))),G=Sa(R.updateStatus.fetchState),M=R.currentDisplayedCardId,{useFeatureGate:L}=de(),{isFeatureEnabled:z}=L(q.isChargeCardFeatureEnabled),j=!!I.companyChargeCardInfo?.info?.isChargeCardEnabled,h=!I.userRole.includes("charge_card_user")&&z&&j,H=d((N=>M!=null?dr(N.chargeCardState,M):null)),Y=()=>{M!=null&&(O.current=!0,U.current!=null&&clearTimeout(U.current),U.current=setTimeout((()=>{O.current=!1,U.current=null}),5e3),n(Ia(M,h,!0)),n(Ne(!0)),C(!0))},_=ta(I);Nt({events:ha(_,$r),onSubscribed:()=>{n(Ne(!0))},onEvent:(N,$)=>{if(!Di.has(N))return;const T=zt($),v=O.current;if(N===pa){const ae=ce(T?.card_id)??M;if(ae!=null){const Ce=Yt(T,ae);if(Ce!=null)return n(Tt(Ce)),void(ae!==M||v||Y())}}if(N===ct)return void n(Ne(!0));const P=ce(T?.card_id)??M;(M==null||P===M)&&M!=null?v||Y():n(Ne(!0))}}),r.useEffect((()=>{if(D&&M!=null&&H!=null&&H.status.code!=="request_on_hold"){const N=_e(I.tenantEmailDomain,M,E,H),$=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(Fo()),H?.type.code==="business_virtual_credit_card"&&n(Ja()),t(N,{state:{pathnameStackToGoBack:$},replace:!0}),O.current=!1,U.current!=null&&(clearTimeout(U.current),U.current=null)}}),[D,H?.status.code]),r.useEffect((()=>{G==="In-Progress"&&R.updateStatus.fetchState==="Completed"&&setTimeout(Y,3e3)}),[G,R.updateStatus.fetchState]);const Z=N=>{x(N)};if(y!=="Completed"||V.cards.length===0)return o.jsxs(An,{children:[o.jsx(Ae,{isAppContentDrawerOpen:p,handleDrawerToggle:Z}),o.jsx(fc,{})]});if(i==null)throw Error("Can't access my userId.");return o.jsxs(An,{children:[o.jsx(Ae,{isAppContentDrawerOpen:p,handleDrawerToggle:Z}),o.jsx(wi,{chargeCardListView:V,cardUserOnboardingView:R,navigate:t,currentTenant:I,myUserId:i,location:s,chargeCardCashbackRatePerTransaction:k.charge_card_cashback_rate_per_transaction!=null?k.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{Z(!0)}}),e!=null?o.jsx(vi,{windowSize:a,children:e}):null]})},wi=Pe((function(e,{currentTenant:a,cardUserOnboardingView:n,chargeCardListView:t,myUserId:s}){const f=Ca(e,!1,!1,!1);let b=!1;return f.fetchState==="Completed"&&f.cards.length<=1&&(b=!0),{cards:t.cards,showMenuIcon:b,companyLegalName:a.companyName,twoFAView:n.twoFAView,cardUserOnboardingLocalData:n.cardUserOnboardingLocalData??{userId:s},isDOBDisabled:n.isDOBPresent,onboardingProgressStatus:n.onboardingProgressStatus}}),(function(e,a){const{navigate:n,cardUserOnboardingView:t,location:s,currentTenant:f}=a,{tenantEmailDomain:b}=f;return{updateCardUserOnboardingLocalData:m=>{e(gn({localData:m}))},onGetOtp:m=>{if(t.cardUserOnboardingLocalData!=null){const A={...t.cardUserOnboardingLocalData,phone:m};e(gn({localData:A}))}e(et(m,"CardUserOnboarding"))},onResendOtp:m=>{e(Xa(m,"CardUserOnboarding"))},onVerifyOtp:(m,A)=>{e(Qa(m,A,"CardUserOnboarding"))},onVerifyOtpSuccess:m=>{e(xo()),m!=null&&te.saveZeniOtpToken(m)},setCurrentDisplayedCardId:m=>{e(ir({cardId:m}))},onBackClick:()=>{const m=we(s.state?.pathnameStackToGoBack),A=m.poppedPathname??na(b);n(A,{state:{pathnameStackToGoBack:m.newStack}})}}}))(gc),vi=He.div`
|
|
35
35
|
display: flex;
|
|
36
36
|
flex-direction: column;
|
|
37
37
|
width: ${e=>`${_i.containerWidth.value(e.windowSize)}%`};
|
|
@@ -68,4 +68,4 @@ import{j as o}from"./liveblocks-CQOAuUNI.js";import{u as le,j as d,h as ie,g as
|
|
|
68
68
|
overflow: auto;
|
|
69
69
|
align-items: center;
|
|
70
70
|
background-color: ${e=>e.theme.colors.grey4};
|
|
71
|
-
`,Hi=Pe((function(e,a){const{myPendingActivationChargeCardListState:n}=a;return{myPendingActivationChargeCardListView:n,uiState:n.uiState,signedInUser:a.signedInUser}}),(function(e,a){const{navigate:n,currentTenant:t,location:s,signedInUser:f,myPendingActivationChargeCardListState:b}=a,{tenantEmailDomain:m}=t,{cards:A}=b;return{onChargeCardRowClick:u=>{const l=_r(A,u),B=_e(m,u,f,l),D=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(B,{state:{pathnameStackToGoBack:D}})},onColumnSortConfigChanged:(u,l)=>{e(yt({uiState:{sortKey:u,sortOrder:l}}))},onReloadCards:()=>{e(Ne())},onBackClick:()=>{const u=t.userRole.includes("charge_card_user");e(yt({uiState:{sortKey:u?"cardName":"owner",sortOrder:"ascending"}})),n("../")}}}))(Ec);function Gi(){const e=ie(),a=le(),n=me(),t=Rt(),[s,f]=r.useState(!1),b=d((L=>Go(L))),m=d((L=>ge(L))),A=d((L=>da(L,m.companyId))),u=la(A.controllers),{useFeatureGate:l}=de(),{isFeatureEnabled:B}=l(q.isChargeCardFeatureEnabled),{isFeatureEnabled:D}=l(q.isDebitCardFeatureEnabled),C=Be(D,m),O=Oe({isDebitCardFeatureEnabled:D,isBankingOnlyTenant:C}),U=!!m.companyDebitCardInfo?.info?.isDebitCardEnabled,S=!!m.companyChargeCardInfo?.info?.isChargeCardEnabled,c=Re(),p=xe(m),x=Le(m),E=m.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,I=Ue({isCardsOnlyTenant:p,isChargeCardFeatureEnabled:B,isBookKeepingTenant:x,isDebitCardProductVisible:O,chargeCardsCreditAccountLimit:E}),k=Fe(c?.loggedInUserRoleMap),V=d((L=>ma(L))),{creditAccount:w,creditAccountRepayment:y}=d((L=>ua(L))),F=d((L=>or(L))).cards.filter((L=>L.type.code.includes("debit"))).map((L=>L.connectedAccountId)),i=[...new Set(F)],g=d((L=>at(L,i)));r.useEffect((()=>{s||b.fetchState==="Completed"||b.fetchState==="In-Progress"||(f(!0),a(Ne()),a(qa()))}),[s,a,b.fetchState]),r.useEffect((()=>{if(b.fetchState==="Completed"&&b.cards.length===1&&R!=null){const L=_e(m.tenantEmailDomain,b.cards[0].id,R,b.cards[0]);e(L,{state:{message:n.state?.message}})}}),[b.fetchState,b.cards]);const R=te.getSignedInUser();r.useEffect((()=>{w.fetchState!=="Completed"&&w.fetchState!=="In-Progress"&&I&&S&&k&&a(Je()),y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&k&&a(vt()),g.fetchState!=="Completed"&&g.fetchState!=="In-Progress"&&O&&U&&k&&a(cr())}),[w.fetchState,y.fetchState,a,g.fetchState,O,U,k,I,S]);const G=ta(m);if(Nt({events:ha(G,Kr),onEvent:(L,z)=>{if(!Ni.has(L))return;const j=zt(z);if(L===pa){const h=ce(j?.card_id);if(h!=null){const H=Wt(j,h);if(H!=null)return void a(Tt(H))}}a(Ne(!0))},onSubscribed:()=>{a(Ne(!0))}}),R==null)throw Error("Can't access address page without signing in...");const M=b.cards!=null&&b.cards.length>0;if(b.fetchState==="Completed"||M){const L=ea(I,O,U,S);return o.jsx(Vi,{children:o.jsx(Hi,{navigate:e,currentTenant:m,signedInUser:R,productInformation:L,myPendingActivationChargeCardListState:b,isChargeCardFeatureEnabled:I,isDebitCardFeatureEnabled:O,isDebitCardSetupEnabled:U,isChargeCardSetupEnabled:S,chargeCardCashbackDetailState:V,creditAccount:w,creditAccountRepayment:y,depositAccountListWithDebitCardIssued:g,controllerEmails:u,location:n})})}return o.jsx(wa,{fetchState:"In-Progress",style:{backgroundColor:t.colors.grey5}})}const $i=Pe((function(e,a){const{companyId:n,companyLegalName:t}=a;return{chargeCardSetupView:Pa(e,n),admins:a.adminList,companyLegalName:t}}),(function(e,a){const{navigate:n,companyId:t,isCompanyBusinessVerificationAndPaymentSetUpDone:s,isDebitCardSetupEnabled:f,isChargeCardSetupEnabled:b,signedInUser:m,location:A,productInformation:u,isEarlyPayEnabled:l,controllerEmails:B,chargeCardsCreditAccountLimit:D}=a;return{onSetupButtonClick:C=>{if(m!=null&&ee.trackCardsPromoPageClicked("enable cards"),s)switch(ee.trackCardsEnableCardsClick(B,u,"Cards Promo"),C){case"credit":e(qe(t,!0,"charge_cards",l,!1));break;case"debit":e(qe(t,!0,"debit_cards",l,!1));break;case"debit_and_credit":e(D===0?qe(t,!0,"debit_cards",l,!0):qe(t,!0,"charge_cards__debit_cards",l,!1))}else switch(ee.trackCardsSetupCardsClick(B,u,"Cards Promo"),C){case"credit":e(qe(t,!1,"charge_cards",l,!1));break;case"debit":e(qe(t,!1,"debit_cards",l,!1));break;case"debit_and_credit":e(D===0?qe(t,!1,"debit_cards",l,!0):qe(t,!1,"charge_cards__debit_cards",l,!1))}},onBackClick:()=>{const C=we(A.state?.pathnameStackToGoBack);let O=C.poppedPathname;O==null&&(O=f||b?"..":"../.."),n(O,{state:{pathnameStackToGoBack:C.newStack}})},onLetsGoClick:()=>{n("./onboard")},onSetupChargeCardSuccess:()=>{s?(e(Ja()),n("../",{relative:"path"})):n("../setup",{relative:"path"})},onExpressInterestClick:()=>{e(zo(t))}}}))(_c),Ki=()=>{const e=Ac(),a=ie(),{tenantEmailDomain:n}=Ve(),[t]=Dn(),s=t.get("cardPromoType"),f=le(),{useDynamicConfig:b,useFeatureGate:m}=de(),[A,u]=r.useState(!1),{isFeatureEnabled:l}=m(q.isDebitCardFeatureEnabled),{isFeatureEnabled:B}=m(q.isEarlyPayFeatureEnabled),{isFeatureEnabled:D}=m(q.isChargeCardFeatureEnabled),{configValue:C}=b(Xe.zeniCardsConfig),O=d((J=>ge(J))),U=d((J=>da(J,O.companyId))),S=la(U.controllers),c=C.charge_card_cashback_rate_per_transaction!=null?C.charge_card_cashback_rate_per_transaction:.0175,p=me(),x=te.getSignedInUserTenant(n)?.companyId??O.companyId,E=d((J=>Pa(J,x))),I=E.primaryFundingAccount,k=O.companyBillPayInfo?.info,V=xe(O),w=Le(O),y=Be(l,O),F=O.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,i=Oe({isDebitCardFeatureEnabled:l,isBankingOnlyTenant:y}),g=Ue({isCardsOnlyTenant:V,isChargeCardFeatureEnabled:D,isBookKeepingTenant:w,isDebitCardProductVisible:i,chargeCardsCreditAccountLimit:F}),R=Dr({isCardsOnlyTenant:V,isChargeCardFeatureEnabled:D,isBookKeepingTenant:w}),G=i&&g===!1,M=k?.businessVerificationStatus?.code==="verified"&&(G||I?.accType==="depositAccount"||$o(I?.providerVerificationStatus?.code??"")),L=te.getSignedInUser(),z=!!O.companyZeniAccountInfo?.info?.isZeniAccountEnabled,j=!!O.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,h=!!O.company?.companyChargeCardInfo?.isChargeCardEnabled,H=!!O.company?.companyDebitCardInfo?.isDebitCardEnabled,W=!!O.companyChargeCardInfo?.info?.isChargeCardEnabled,_=!!O.companyDebitCardInfo?.info?.isDebitCardEnabled,Z=!!O.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,N=J=>{u(J)},$=d((J=>J.chargeCardSetupViewState.fetchState));if(L==null)throw Error("Can't access Charge Card promo page without signing in...");const T=Re(),v=Fe(T?.loggedInUserRoleMap),P=Ft(T?.loggedInUserRoleMap),[ae,Ce]=r.useState(!1),[X,ve]=r.useState(!1),[Ie,re]=r.useState(!1);r.useEffect((()=>{ae===!1&&p.state?.message==="activation"&&Ce(!0)}),[p.state]),r.useEffect((()=>{X||$!=="Not-Started"||x==null||(ve(!0),f(_a(x,!0)))}),[X,$,x,f]);const be=O.companyChargeCardInfo?.info!=null&&ya({cardInfo:O.companyChargeCardInfo.info,isProductVisible:R&&h,isTOSAccepted:j,isSetupEnabled:W,isUserHasCardsAdminLevelAccess:v,isUserHasCardsAccess:P}),pe=O.companyDebitCardInfo?.info!=null&&ya({cardInfo:O.companyDebitCardInfo.info,isProductVisible:i&&H,isTOSAccepted:Z,isSetupEnabled:_,isUserHasCardsAdminLevelAccess:v,isUserHasCardsAccess:P}),he=i&&pe&&R&&F>=0&&be?"debit_and_credit":i&&pe?"debit":"credit",oe=xc(s,he),Q=E?.chargeCardTermsDetails?.fetchStatus?.fetchState,Se=r.useRef(null);r.useEffect((()=>{Q==="In-Progress"?Se.current=oe:Q!=="Error"&&Q!=="Not-Started"||(Se.current=null)}),[Q,oe]);const De=Q!=="In-Progress"&&Q!=="Completed"||Se.current==null?oe:Se.current;r.useEffect((()=>{oe==="credit"&&(W||R===!1&&_)||oe==="debit"&&_||oe==="debit_and_credit"&&_&&W?a("../"):(oe==="debit_and_credit"&&j===!0&&Z===!0||oe==="credit"&&(j===!0||R===!1&&Z===!0)||oe==="debit"&&Z===!0)&&v===!0&&a("../setup")}),[M,W,_,oe,j,Z]),r.useEffect((()=>{Ie||(f(Ko("cardAdmin")),re(!0))}),[Ie]);const fe=d((J=>rr(J.userState,J.userRoleState,J.userListViewState,"cardAdmin"))),Te=ea(R,i,_,W);return(J=>{switch(J){case"credit":return h;case"debit":return H;case"debit_and_credit":return h&&H;default:return!1}})(De)?(be||pe)&&$==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ot,{analytics:ee,onLoad:()=>{if(ee.trackPageLoaded(kr.Event.cardsPromoPage),!!R&&!W||!!i&&!_||!!R&&!!i&&!_&&!W){const J=zi({isDebitCardSetupEnabled:_,isChargeCardSetupEnabled:W,isCreditCardProductVisibleForExpressInterest:R,isDebitCardProductVisible:i});ee.trackCardsPromoView(S,Te,"Page",J,"Promo Page")}}}),o.jsx(tt,{showConfetti:ae}),o.jsx(Ae,{isAppContentDrawerOpen:A,handleDrawerToggle:N}),o.jsx($i,{signedInUser:L,location:p,meetingUrl:e("charge_card_promo"),showEnableCardButton:M,isCompanyBusinessVerificationAndPaymentSetUpDone:M,isChargeCardSetupEnabled:W,isDebitCardSetupEnabled:_,companyLegalName:O.companyName,adminList:fe.users,isCheckingEnabled:z,navigate:a,companyId:x,cardPromoType:De,controllerEmails:S,productInformation:Te,isCreditCardProductVisible:g,isDebitCardFeatureEnabled:l,isEarlyPayEnabled:B,cashbackRate:c,chargeCardsCreditAccountLimit:F,onClickMenuIcon:()=>{N(!0)}})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:A,handleDrawerToggle:N}),o.jsx(Dc,{})]}):o.jsx(Qe,{to:"../",replace:!0})},zi=({isDebitCardSetupEnabled:e,isChargeCardSetupEnabled:a,isCreditCardProductVisibleForExpressInterest:n,isDebitCardProductVisible:t})=>n&&t&&!e&&!a?"Credit & Debit Card":n&&!a?"Credit Card":t&&!e?"Debit Card":"";function yd(){const e=me(),a=d((T=>ge(T))),{useFeatureGate:n}=de(),{isFeatureEnabled:t}=n(q.isChargeCardFeatureEnabled),{isFeatureEnabled:s}=n(q.isDebitCardFeatureEnabled),{isFeatureEnabled:f}=n(q.isEarlyPayFeatureEnabled),{isFeatureEnabled:b}=n(q.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:m}=n(q.isCardPolicyEnabled),A=Be(s,a),u=Oe({isDebitCardFeatureEnabled:s,isBankingOnlyTenant:A}),l=Pc(a,t,s),B=!!a.company?.companyChargeCardInfo.isChargeCardTOSAccepted,D=!!a.company?.companyDebitCardInfo.isDebitCardTOSAccepted,C=!!a.company?.companyChargeCardInfo?.isChargeCardEnabled,O=!!a.company?.companyDebitCardInfo?.isDebitCardEnabled,U=!!a.companyChargeCardInfo?.info?.isChargeCardEnabled,S=!!a.companyDebitCardInfo?.info?.isDebitCardEnabled,c=Re(),p=Fe(c?.loggedInUserRoleMap),{isCardsShuttingDown:x}=Ir(a.tenantId,a.company?.managementInfo?.receiverEmails),E=Ft(c?.loggedInUserRoleMap),{isFeatureEnabled:I}=n(q.isCashbackFeatureEnabled),k=a.userRole.includes("charge_card_user"),V=!k,w=!k&&U,y=a?.userRole!=null&&Wo(a?.userRole),F=(a?.company==null||a.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!y)&&Yo(c?.loggedInUserRoleMap),i=Zo(c?.loggedInUserRoleMap),g=(a?.company==null||a.company.featuresActivationInfo?.isReimbursementFeatureEnabled&&!y)&&qo(c?.loggedInUserRoleMap),{isFeatureEnabled:R}=n(q.isDepositAccountsFeatureEnabled),G=R&&!y&&$n(c?.loggedInUserRoleMap),M=U&&C&&!y,L=S&&O&&!y,z=l&&!y&&Fe(c?.loggedInUserRoleMap),j=Jo(c?.loggedInUserRoleMap),h=xe(a),H=Le(a),W=a.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:t,isBookKeepingTenant:H,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:W}),Z=a.companyChargeCardInfo?.info!=null&&ya({cardInfo:a.companyChargeCardInfo.info,isProductVisible:_&&C,isTOSAccepted:B,isSetupEnabled:U,isUserHasCardsAdminLevelAccess:p,isUserHasCardsAccess:E}),N=a.companyDebitCardInfo?.info!=null&&ya({cardInfo:a.companyDebitCardInfo.info,isProductVisible:u&&O,isTOSAccepted:D,isSetupEnabled:S,isUserHasCardsAdminLevelAccess:p,isUserHasCardsAccess:E}),$=Z||N;return o.jsxs(os,{children:[p?o.jsx(ne,{path:"setup",element:o.jsx(bn,{isBillPayAdminLevelAccess:F,isReimbursementAdminLevelAccess:g,isZeniAccountAdminLevelAccess:G,isChargeCardAdminLevelAccess:z,isUserHasOnlyCardAccess:j,isUserHasOnlyBillPayAccess:i,productType:"charge_cards",type:"setup"})}):null,p?o.jsx(ne,{path:"verification",element:o.jsx(bn,{isBillPayAdminLevelAccess:F,isUserHasOnlyBillPayAccess:i,isReimbursementAdminLevelAccess:g,isZeniAccountAdminLevelAccess:G,isChargeCardAdminLevelAccess:z,isUserHasOnlyCardAccess:j,productType:"charge_cards",type:"verification"})}):null,p&&m?o.jsxs(o.Fragment,{children:[o.jsx(ne,{path:"policy",element:o.jsx(zc,{})}),o.jsx(ne,{path:"policy/new",element:o.jsx(Uc,{})}),o.jsx(ne,{path:"policy/:templateId/edit",element:o.jsx(Vc,{})})]}):null,o.jsx(ne,{path:"promo",element:o.jsx(Ki,{})}),M||L?o.jsxs(o.Fragment,{children:[o.jsx(ne,{path:"/",element:o.jsx(In,{isPaymentDrawerOpen:!1})}),z&&f?o.jsx(ne,{path:"payment",element:o.jsx(In,{isPaymentDrawerOpen:!0})}):null,o.jsx(ne,{path:"activate",element:o.jsx(Gi,{})}),o.jsx(ne,{path:"onboard",element:o.jsx(Pi,{})}),p&&x!==!0?o.jsx(ne,{path:"new",element:o.jsx(Mi,{})}):p?o.jsx(ne,{path:"new",element:o.jsx(Qe,{to:"..",replace:!0})}):null,I&&V?o.jsx(ne,{path:"cashback",element:o.jsx(Jc,{})}):null,w?o.jsx(ne,{path:"statements",element:o.jsx(Ai,{})}):null,z&&b&&U?o.jsx(ne,{path:"payment-history",element:o.jsx(Ei,{})}):null,o.jsx(ne,{path:":cardId/activate",element:o.jsx(ei,{})}),o.jsx(ne,{path:":cardId/setPin",element:o.jsx(Fi,{})}),o.jsx(ne,{path:":cardId/addToWallet",element:o.jsx(Wc,{})}),o.jsx(ne,{path:":cardId/*",element:o.jsx(li,{})}),o.jsx(ne,{path:"*",element:o.jsx(st,{})})]}):(B||D)&&p?o.jsx(ne,{path:"*",element:o.jsx(Qe,{to:"../setup"})}):$?o.jsx(ne,{path:"*",element:o.jsx(Qe,{to:"../promo",state:e.state})}):o.jsx(ne,{path:"*",element:null})]})}export{yd as default};
|
|
71
|
+
`,Hi=Pe((function(e,a){const{myPendingActivationChargeCardListState:n}=a;return{myPendingActivationChargeCardListView:n,uiState:n.uiState,signedInUser:a.signedInUser}}),(function(e,a){const{navigate:n,currentTenant:t,location:s,signedInUser:f,myPendingActivationChargeCardListState:b}=a,{tenantEmailDomain:m}=t,{cards:A}=b;return{onChargeCardRowClick:u=>{const l=_r(A,u),B=_e(m,u,f,l),D=Ee(s.state?.pathnameStackToGoBack,s.pathname);n(B,{state:{pathnameStackToGoBack:D}})},onColumnSortConfigChanged:(u,l)=>{e(yt({uiState:{sortKey:u,sortOrder:l}}))},onReloadCards:()=>{e(Ne())},onBackClick:()=>{const u=t.userRole.includes("charge_card_user");e(yt({uiState:{sortKey:u?"cardName":"owner",sortOrder:"ascending"}})),n("../")}}}))(Ec);function Gi(){const e=ie(),a=le(),n=me(),t=Rt(),[s,f]=r.useState(!1),b=d((L=>Go(L))),m=d((L=>ge(L))),A=d((L=>da(L,m.companyId))),u=la(A.controllers),{useFeatureGate:l}=de(),{isFeatureEnabled:B}=l(q.isChargeCardFeatureEnabled),{isFeatureEnabled:D}=l(q.isDebitCardFeatureEnabled),C=Be(D,m),O=Oe({isDebitCardFeatureEnabled:D,isBankingOnlyTenant:C}),U=!!m.companyDebitCardInfo?.info?.isDebitCardEnabled,S=!!m.companyChargeCardInfo?.info?.isChargeCardEnabled,c=Re(),p=xe(m),x=Le(m),E=m.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,I=Ue({isCardsOnlyTenant:p,isChargeCardFeatureEnabled:B,isBookKeepingTenant:x,isDebitCardProductVisible:O,chargeCardsCreditAccountLimit:E}),k=Fe(c?.loggedInUserRoleMap),V=d((L=>ma(L))),{creditAccount:w,creditAccountRepayment:y}=d((L=>ua(L))),F=d((L=>or(L))).cards.filter((L=>L.type.code.includes("debit"))).map((L=>L.connectedAccountId)),i=[...new Set(F)],g=d((L=>at(L,i)));r.useEffect((()=>{s||b.fetchState==="Completed"||b.fetchState==="In-Progress"||(f(!0),a(Ne()),a(qa()))}),[s,a,b.fetchState]),r.useEffect((()=>{if(b.fetchState==="Completed"&&b.cards.length===1&&R!=null){const L=_e(m.tenantEmailDomain,b.cards[0].id,R,b.cards[0]);e(L,{state:{message:n.state?.message}})}}),[b.fetchState,b.cards]);const R=te.getSignedInUser();r.useEffect((()=>{w.fetchState!=="Completed"&&w.fetchState!=="In-Progress"&&I&&S&&k&&a(Je()),y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&k&&a(vt()),g.fetchState!=="Completed"&&g.fetchState!=="In-Progress"&&O&&U&&k&&a(cr())}),[w.fetchState,y.fetchState,a,g.fetchState,O,U,k,I,S]);const G=ta(m);if(Nt({events:ha(G,Kr),onEvent:(L,z)=>{if(!Ni.has(L))return;const j=zt(z);if(L===pa){const h=ce(j?.card_id);if(h!=null){const H=Yt(j,h);if(H!=null)return void a(Tt(H))}}a(Ne(!0))},onSubscribed:()=>{a(Ne(!0))}}),R==null)throw Error("Can't access address page without signing in...");const M=b.cards!=null&&b.cards.length>0;if(b.fetchState==="Completed"||M){const L=ea(I,O,U,S);return o.jsx(Vi,{children:o.jsx(Hi,{navigate:e,currentTenant:m,signedInUser:R,productInformation:L,myPendingActivationChargeCardListState:b,isChargeCardFeatureEnabled:I,isDebitCardFeatureEnabled:O,isDebitCardSetupEnabled:U,isChargeCardSetupEnabled:S,chargeCardCashbackDetailState:V,creditAccount:w,creditAccountRepayment:y,depositAccountListWithDebitCardIssued:g,controllerEmails:u,location:n})})}return o.jsx(wa,{fetchState:"In-Progress",style:{backgroundColor:t.colors.grey5}})}const $i=Pe((function(e,a){const{companyId:n,companyLegalName:t}=a;return{chargeCardSetupView:Pa(e,n),admins:a.adminList,companyLegalName:t}}),(function(e,a){const{navigate:n,companyId:t,isCompanyBusinessVerificationAndPaymentSetUpDone:s,isDebitCardSetupEnabled:f,isChargeCardSetupEnabled:b,signedInUser:m,location:A,productInformation:u,isEarlyPayEnabled:l,controllerEmails:B,chargeCardsCreditAccountLimit:D}=a;return{onSetupButtonClick:C=>{if(m!=null&&ee.trackCardsPromoPageClicked("enable cards"),s)switch(ee.trackCardsEnableCardsClick(B,u,"Cards Promo"),C){case"credit":e(qe(t,!0,"charge_cards",l,!1));break;case"debit":e(qe(t,!0,"debit_cards",l,!1));break;case"debit_and_credit":e(D===0?qe(t,!0,"debit_cards",l,!0):qe(t,!0,"charge_cards__debit_cards",l,!1))}else switch(ee.trackCardsSetupCardsClick(B,u,"Cards Promo"),C){case"credit":e(qe(t,!1,"charge_cards",l,!1));break;case"debit":e(qe(t,!1,"debit_cards",l,!1));break;case"debit_and_credit":e(D===0?qe(t,!1,"debit_cards",l,!0):qe(t,!1,"charge_cards__debit_cards",l,!1))}},onBackClick:()=>{const C=we(A.state?.pathnameStackToGoBack);let O=C.poppedPathname;O==null&&(O=f||b?"..":"../.."),n(O,{state:{pathnameStackToGoBack:C.newStack}})},onLetsGoClick:()=>{n("./onboard")},onSetupChargeCardSuccess:()=>{s?(e(Ja()),n("../",{relative:"path"})):n("../setup",{relative:"path"})},onExpressInterestClick:()=>{e(zo(t))}}}))(_c),Ki=()=>{const e=Ac(),a=ie(),{tenantEmailDomain:n}=Ve(),[t]=Dn(),s=t.get("cardPromoType"),f=le(),{useDynamicConfig:b,useFeatureGate:m}=de(),[A,u]=r.useState(!1),{isFeatureEnabled:l}=m(q.isDebitCardFeatureEnabled),{isFeatureEnabled:B}=m(q.isEarlyPayFeatureEnabled),{isFeatureEnabled:D}=m(q.isChargeCardFeatureEnabled),{configValue:C}=b(Xe.zeniCardsConfig),O=d((J=>ge(J))),U=d((J=>da(J,O.companyId))),S=la(U.controllers),c=C.charge_card_cashback_rate_per_transaction!=null?C.charge_card_cashback_rate_per_transaction:.0175,p=me(),x=te.getSignedInUserTenant(n)?.companyId??O.companyId,E=d((J=>Pa(J,x))),I=E.primaryFundingAccount,k=O.companyBillPayInfo?.info,V=xe(O),w=Le(O),y=Be(l,O),F=O.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,i=Oe({isDebitCardFeatureEnabled:l,isBankingOnlyTenant:y}),g=Ue({isCardsOnlyTenant:V,isChargeCardFeatureEnabled:D,isBookKeepingTenant:w,isDebitCardProductVisible:i,chargeCardsCreditAccountLimit:F}),R=Dr({isCardsOnlyTenant:V,isChargeCardFeatureEnabled:D,isBookKeepingTenant:w}),G=i&&g===!1,M=k?.businessVerificationStatus?.code==="verified"&&(G||I?.accType==="depositAccount"||$o(I?.providerVerificationStatus?.code??"")),L=te.getSignedInUser(),z=!!O.companyZeniAccountInfo?.info?.isZeniAccountEnabled,j=!!O.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,h=!!O.company?.companyChargeCardInfo?.isChargeCardEnabled,H=!!O.company?.companyDebitCardInfo?.isDebitCardEnabled,Y=!!O.companyChargeCardInfo?.info?.isChargeCardEnabled,_=!!O.companyDebitCardInfo?.info?.isDebitCardEnabled,Z=!!O.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,N=J=>{u(J)},$=d((J=>J.chargeCardSetupViewState.fetchState));if(L==null)throw Error("Can't access Charge Card promo page without signing in...");const T=Re(),v=Fe(T?.loggedInUserRoleMap),P=Ft(T?.loggedInUserRoleMap),[ae,Ce]=r.useState(!1),[X,ve]=r.useState(!1),[Ie,re]=r.useState(!1);r.useEffect((()=>{ae===!1&&p.state?.message==="activation"&&Ce(!0)}),[p.state]),r.useEffect((()=>{X||$!=="Not-Started"||x==null||(ve(!0),f(_a(x,!0)))}),[X,$,x,f]);const be=O.companyChargeCardInfo?.info!=null&&ya({cardInfo:O.companyChargeCardInfo.info,isProductVisible:R&&h,isTOSAccepted:j,isSetupEnabled:Y,isUserHasCardsAdminLevelAccess:v,isUserHasCardsAccess:P}),pe=O.companyDebitCardInfo?.info!=null&&ya({cardInfo:O.companyDebitCardInfo.info,isProductVisible:i&&H,isTOSAccepted:Z,isSetupEnabled:_,isUserHasCardsAdminLevelAccess:v,isUserHasCardsAccess:P}),he=i&&pe&&R&&F>=0&&be?"debit_and_credit":i&&pe?"debit":"credit",oe=xc(s,he),Q=E?.chargeCardTermsDetails?.fetchStatus?.fetchState,Se=r.useRef(null);r.useEffect((()=>{Q==="In-Progress"?Se.current=oe:Q!=="Error"&&Q!=="Not-Started"||(Se.current=null)}),[Q,oe]);const De=Q!=="In-Progress"&&Q!=="Completed"||Se.current==null?oe:Se.current;r.useEffect((()=>{oe==="credit"&&(Y||R===!1&&_)||oe==="debit"&&_||oe==="debit_and_credit"&&_&&Y?a("../"):(oe==="debit_and_credit"&&j===!0&&Z===!0||oe==="credit"&&(j===!0||R===!1&&Z===!0)||oe==="debit"&&Z===!0)&&v===!0&&a("../setup")}),[M,Y,_,oe,j,Z]),r.useEffect((()=>{Ie||(f(Ko("cardAdmin")),re(!0))}),[Ie]);const fe=d((J=>rr(J.userState,J.userRoleState,J.userListViewState,"cardAdmin"))),Te=ea(R,i,_,Y);return(J=>{switch(J){case"credit":return h;case"debit":return H;case"debit_and_credit":return h&&H;default:return!1}})(De)?(be||pe)&&$==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ot,{analytics:ee,onLoad:()=>{if(ee.trackPageLoaded(kr.Event.cardsPromoPage),!!R&&!Y||!!i&&!_||!!R&&!!i&&!_&&!Y){const J=zi({isDebitCardSetupEnabled:_,isChargeCardSetupEnabled:Y,isCreditCardProductVisibleForExpressInterest:R,isDebitCardProductVisible:i});ee.trackCardsPromoView(S,Te,"Page",J,"Promo Page")}}}),o.jsx(tt,{showConfetti:ae}),o.jsx(Ae,{isAppContentDrawerOpen:A,handleDrawerToggle:N}),o.jsx($i,{signedInUser:L,location:p,meetingUrl:e("charge_card_promo"),showEnableCardButton:M,isCompanyBusinessVerificationAndPaymentSetUpDone:M,isChargeCardSetupEnabled:Y,isDebitCardSetupEnabled:_,companyLegalName:O.companyName,adminList:fe.users,isCheckingEnabled:z,navigate:a,companyId:x,cardPromoType:De,controllerEmails:S,productInformation:Te,isCreditCardProductVisible:g,isDebitCardFeatureEnabled:l,isEarlyPayEnabled:B,cashbackRate:c,chargeCardsCreditAccountLimit:F,onClickMenuIcon:()=>{N(!0)}})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ae,{isAppContentDrawerOpen:A,handleDrawerToggle:N}),o.jsx(Dc,{})]}):o.jsx(Qe,{to:"../",replace:!0})},zi=({isDebitCardSetupEnabled:e,isChargeCardSetupEnabled:a,isCreditCardProductVisibleForExpressInterest:n,isDebitCardProductVisible:t})=>n&&t&&!e&&!a?"Credit & Debit Card":n&&!a?"Credit Card":t&&!e?"Debit Card":"";function yd(){const e=me(),a=d((T=>ge(T))),{useFeatureGate:n}=de(),{isFeatureEnabled:t}=n(q.isChargeCardFeatureEnabled),{isFeatureEnabled:s}=n(q.isDebitCardFeatureEnabled),{isFeatureEnabled:f}=n(q.isEarlyPayFeatureEnabled),{isFeatureEnabled:b}=n(q.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:m}=n(q.isCardPolicyEnabled),A=Be(s,a),u=Oe({isDebitCardFeatureEnabled:s,isBankingOnlyTenant:A}),l=Pc(a,t,s),B=!!a.company?.companyChargeCardInfo.isChargeCardTOSAccepted,D=!!a.company?.companyDebitCardInfo.isDebitCardTOSAccepted,C=!!a.company?.companyChargeCardInfo?.isChargeCardEnabled,O=!!a.company?.companyDebitCardInfo?.isDebitCardEnabled,U=!!a.companyChargeCardInfo?.info?.isChargeCardEnabled,S=!!a.companyDebitCardInfo?.info?.isDebitCardEnabled,c=Re(),p=Fe(c?.loggedInUserRoleMap),{isCardsShuttingDown:x}=Ir(a.tenantId,a.company?.managementInfo?.receiverEmails),E=Ft(c?.loggedInUserRoleMap),{isFeatureEnabled:I}=n(q.isCashbackFeatureEnabled),k=a.userRole.includes("charge_card_user"),V=!k,w=!k&&U,y=a?.userRole!=null&&Yo(a?.userRole),F=(a?.company==null||a.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!y)&&Wo(c?.loggedInUserRoleMap),i=Zo(c?.loggedInUserRoleMap),g=(a?.company==null||a.company.featuresActivationInfo?.isReimbursementFeatureEnabled&&!y)&&qo(c?.loggedInUserRoleMap),{isFeatureEnabled:R}=n(q.isDepositAccountsFeatureEnabled),G=R&&!y&&$n(c?.loggedInUserRoleMap),M=U&&C&&!y,L=S&&O&&!y,z=l&&!y&&Fe(c?.loggedInUserRoleMap),j=Jo(c?.loggedInUserRoleMap),h=xe(a),H=Le(a),Y=a.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:t,isBookKeepingTenant:H,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:Y}),Z=a.companyChargeCardInfo?.info!=null&&ya({cardInfo:a.companyChargeCardInfo.info,isProductVisible:_&&C,isTOSAccepted:B,isSetupEnabled:U,isUserHasCardsAdminLevelAccess:p,isUserHasCardsAccess:E}),N=a.companyDebitCardInfo?.info!=null&&ya({cardInfo:a.companyDebitCardInfo.info,isProductVisible:u&&O,isTOSAccepted:D,isSetupEnabled:S,isUserHasCardsAdminLevelAccess:p,isUserHasCardsAccess:E}),$=Z||N;return o.jsxs(os,{children:[p?o.jsx(ne,{path:"setup",element:o.jsx(bn,{isBillPayAdminLevelAccess:F,isReimbursementAdminLevelAccess:g,isZeniAccountAdminLevelAccess:G,isChargeCardAdminLevelAccess:z,isUserHasOnlyCardAccess:j,isUserHasOnlyBillPayAccess:i,productType:"charge_cards",type:"setup"})}):null,p?o.jsx(ne,{path:"verification",element:o.jsx(bn,{isBillPayAdminLevelAccess:F,isUserHasOnlyBillPayAccess:i,isReimbursementAdminLevelAccess:g,isZeniAccountAdminLevelAccess:G,isChargeCardAdminLevelAccess:z,isUserHasOnlyCardAccess:j,productType:"charge_cards",type:"verification"})}):null,p&&m?o.jsxs(o.Fragment,{children:[o.jsx(ne,{path:"policy",element:o.jsx(zc,{})}),o.jsx(ne,{path:"policy/new",element:o.jsx(Uc,{})}),o.jsx(ne,{path:"policy/:templateId/edit",element:o.jsx(Vc,{})})]}):null,o.jsx(ne,{path:"promo",element:o.jsx(Ki,{})}),M||L?o.jsxs(o.Fragment,{children:[o.jsx(ne,{path:"/",element:o.jsx(In,{isPaymentDrawerOpen:!1})}),z&&f?o.jsx(ne,{path:"payment",element:o.jsx(In,{isPaymentDrawerOpen:!0})}):null,o.jsx(ne,{path:"activate",element:o.jsx(Gi,{})}),o.jsx(ne,{path:"onboard",element:o.jsx(Pi,{})}),p&&x!==!0?o.jsx(ne,{path:"new",element:o.jsx(Mi,{})}):p?o.jsx(ne,{path:"new",element:o.jsx(Qe,{to:"..",replace:!0})}):null,I&&V?o.jsx(ne,{path:"cashback",element:o.jsx(Jc,{})}):null,w?o.jsx(ne,{path:"statements",element:o.jsx(Ai,{})}):null,z&&b&&U?o.jsx(ne,{path:"payment-history",element:o.jsx(Ei,{})}):null,o.jsx(ne,{path:":cardId/activate",element:o.jsx(ei,{})}),o.jsx(ne,{path:":cardId/setPin",element:o.jsx(Fi,{})}),o.jsx(ne,{path:":cardId/addToWallet",element:o.jsx(Yc,{})}),o.jsx(ne,{path:":cardId/*",element:o.jsx(li,{})}),o.jsx(ne,{path:"*",element:o.jsx(st,{})})]}):(B||D)&&p?o.jsx(ne,{path:"*",element:o.jsx(Qe,{to:"../setup"})}):$?o.jsx(ne,{path:"*",element:o.jsx(Qe,{to:"../promo",state:e.state})}):o.jsx(ne,{path:"*",element:null})]})}export{yd as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as m}from"./liveblocks-
|
|
1
|
+
import{j as m}from"./liveblocks-ByZ2hLlh.js";import{a as g}from"./sentry-DhrLg200.js";import{h as w,u as k,g as x,i as T,j as O,l as E}from"./core-DV1n0xnE.js";import{z as N,bs as F,a8 as P,k as V,S as L,o as b,bt as j,ae as A,aG as U,p as B}from"./index-CQb5WoEC.js";import{fI as D,gL as G,BK as M,gG as R,c9 as _,Yn as Y,bn as z,v1 as H,uR as K,mC as Z,ob as S,Yo as $,bF as q,cF as C,om as J,ow as Q}from"./zeni-epic-state-Cw9Z8Rxj.js";import"./mui-jYJOd_FH.js";import{d as W}from"./routePaths-BHNMdM_O.js";import{M as X}from"./MobileAppDrawer-OUkc6SS6.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new t.Error().stack;a&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[a]="09579973-59e9-4af5-88b2-d9cb00586082",t._sentryDebugIdIdentifier="sentry-dbid-09579973-59e9-4af5-88b2-d9cb00586082")}catch{}})();const ee=E((function(t){const a=R(t),i=N.getSignedInUser(),p=D(t),c=p.tenantId,l={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:c??""},f=_(p?.userRole??[])&&a.localData.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",e=Y(t.companyConfigState),n=t.countryListState?.byCountryListCode?.nationalityCountryList?.countries??[];return{isCompanyVerified:a.companyView?.company?.company?.companyBillPayInfo?.companyVerificationStatus?.code==="verified",companyPassportView:a,allIndustries:e.companyIndustries??[],allNationalityCountries:n,isDisabled:f,authParams:l,filesEndPoint:`${A.fileMicroServiceBaseUrl}`,isZeniUser:z(i)}}),(function(t,a){const{companyId:i,currentTenant:p,navigate:c,location:l}=a,{tenantEmailDomain:f}=p;return{onScheduleClick:e=>{let n=e.href;n.includes("http")||(n="https://".concat(n)),window.open(n,"_blank")},onSaveAll:()=>{t(Q())},onAddressClick:e=>{const n=W(f,e),o=B(l.state?.pathnameStackToGoBack,l.pathname);c(n,{state:{pathnameStackToGoBack:o}})},onResetClick:()=>{t(J({companyId:i}))},onBackClick:()=>{c("../")},onCompanyDetailsChanged:e=>{const{companyInfo:n,incInfo:o,taxDetails:r,zeniFinanceTeam:d}=e,{website:u}=n,{meetingLink:y}=d,{incDate:s}=o,{taxesFiledYears:h}=r,v={companyInfo:{...n,website:u!=""&&u!=null?C(u):void 0,meetingLink:y!=""&&y!=null?C(y):void 0,industry:n.industry.selectedOption,companyIndustryType:n.companyIndustryType?.selectedOption??void 0,companySubIndustry:n.companySubIndustry?.selectedOption??void 0,businessModel:n.businessModel.selectedOption??"",companySourceOfFunds:n.companySourceOfFunds?.selectedOption,companySourceOfFundsDescription:n.companySourceOfFundsDescription??void 0,countriesOfOperations:n.countriesOfOperations?.selectedOptions?.map((I=>I.length===2?I:U(I)))??[],transactionVolume:n.transactionVolume?.selectedOption??void 0,transactionVolumeDescription:n.transactionVolumeDescription??void 0,regulatedStatus:n.regulatedStatus??void 0,regulatedStatusDescription:n.regulatedStatusDescription??void 0,usNexus:n.usNexus??void 0,usNexusTypes:n.usNexusTypes?.selectedOptions??[],purposeOfAccount:n.purposeOfAccount?.selectedOption??void 0,purposeOfAccountDescription:n.purposeOfAccountDescription??void 0},incInfo:{typeOfInc:o.typeOfInc.selectedOption??"",stateOfInc:o.stateOfInc.selectedOption??"",incDate:s!=null?q(s?.toString()):s,fileId:o.fileIds[0]},taxDetails:{taxIdOrEIN:r.taxIdOrEIN,sicCode:r.sicCode,naicsCode:r.naicsCode,dunsNumber:r.dunsNumber,taxesFiledYears:h.selectedOptions.map((I=>parseInt(I))),fileId:r.fileIds[0]}};t(S({companyDetails:v}))},onPrimaryContactDetailsUpdated:e=>{t(S({primaryContact:{userId:e.userId,email:e.email.trim(),firstName:e.name.firstName,lastName:e.name.lastName}}))},onNewCompanyOfficerAdded:e=>{t(S({officers:[{officerType:e.officerType,email:e.email.trim(),phone:e.phone,firstName:e.name.firstName,lastName:e.name.lastName,userId:void 0}]}))},onNewCompanyOfficerRemoved:e=>{t($(e))},onCompanyOfficerUpdated:e=>{t(S({officers:[{officerType:e.officerType,email:e.email.trim(),phone:e.phone,firstName:e.name.firstName,lastName:e.name.lastName,userId:e.userId}]}))},updateFilesEntity:e=>{t(Z({files:e}))},onDeleteFile:e=>{t(K(e))},onEditFileName:(e,n)=>{t(H(e,n.split(".")[0]))}}}))(j);function de(){const t=w(),a=k(),i=x(),{tenantEmailDomain:p}=T(),[c,l]=g.useState(!1),[f,e]=g.useState(!1),n=O((s=>s.companyViewState.passportView.fetchState)),o=O((s=>s.companyConfigState.fetchState)),r=O((s=>D(s))),d=r.companyId??N.getSignedInUserTenant(p)?.companyId;if(N.getSignedInUser()==null)throw Error("Can't access company details page without signing in...");g.useEffect((()=>{c||n!=="Not-Started"||d==null||(l(!0),a(G(d)))}),[c,n,d,a]),g.useEffect((()=>{o==="Not-Started"&&a(M())}),[o,a]);const u=s=>{e(s)},y=n==="Not-Started"||n==="In-Progress"||o==="Not-Started"||o==="In-Progress";return d!=null&&n==="Error"?m.jsx(F,{onGoHome:()=>t("../",{replace:!0}),onReload:()=>window.location.reload()}):m.jsxs(m.Fragment,{children:[m.jsx(P,{analytics:V,onLoad:s=>s.trackPageLoaded(L.Event.companyPassport,b(i)?"Settings":"Company Passport")}),b(i)?m.jsx(X,{isAppContentDrawerOpen:f,handleDrawerToggle:u}):null,m.jsx(ee,{companyId:d,navigate:t,location:i,isLoading:y,currentTenant:r,isSettings:b(i),onClickMenuIcon:()=>{u(!0)}})]})}export{de as C};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{j as I}from"./liveblocks-ByZ2hLlh.js";import{a as o}from"./sentry-DhrLg200.js";import{u as F,h as R,g as H,j as C,N as w}from"./core-DV1n0xnE.js";import{U1 as q,fI as z,go as G,pV as V,gP as U,gn as M,gl as Q,Ur as B,gk as A}from"./zeni-epic-state-Cw9Z8Rxj.js";import{u as J,z as E,L as T,G as K,M as W}from"./index-CQb5WoEC.js";import{n as X}from"./mui-jYJOd_FH.js";import{P as h,a as _}from"./AccountMappingScreen-BMF0Tz3u.js";import{t as Y}from"./getLocaleForTenant-DSuDxBKk.js";import{g as Z,Q as ee}from"./QBOConnectionScreen-3Q-D8A_V.js";import"./recharts-DzomOU1a.js";import"./analytics-BPoZyeUe.js";import"./plaid-DlHdcMRS.js";import"./dnd-DhK11Cna.js";import"./stripe-cKAAJElX.js";import"./lottie-DLdOGyRC.js";import"./lexical-Dm0ggfHI.js";import"./pdf-BNP0Aa3G.js";import"./utils-CHwCuPu8.js";import"./MobileAppDrawer-OUkc6SS6.js";import"./InboxNotificationsProvider-Dho-IKGo.js";import"./useTaskManagerAccess-B51fCe2G.js";import"./accountMappingHelper-BCIxYvce.js";import"./empty-CfvnUFQM.js";import"./pdf-lib-Ghg8u77u.js";import"./index-dHB9hLbY.js";import"./url-C0FnX-Y1.js";import"./index-2jvQLAuX.js";import"./decodeURIComponentSafe-DV_H_U9m.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new t.Error().stack;i&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[i]="763a13dc-2c3c-4656-a8ee-82fc55014cce",t._sentryDebugIdIdentifier="sentry-dbid-763a13dc-2c3c-4656-a8ee-82fc55014cce")}catch{}})();const te=X.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex: 1 1 auto;
|
|
4
|
+
flex-direction: row;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
width: 100%;
|
|
8
|
+
height: 100vh;
|
|
9
|
+
background-color: ${t=>t.theme.colors.background};
|
|
10
|
+
box-shadow: ${t=>`0px 2px ${W.sp1} ${t.theme.colors.dropShadowNormal}`};
|
|
11
|
+
`;function we(){const t=F(),i=R(),v=H(),{setLoading:d,clearAllLoading:m}=J(),S=o.useRef(!1),x=o.useRef(!1),N=o.useRef(!1),p=o.useRef(!1),{code:O,realmId:$,state:L}=Z(v.search),f=O!==""&&$!==""&&L!=="";f&&(N.current=!0);const j=sessionStorage.getItem(h),u=j===_.pending,P=j===_.ready,y=C((s=>q(s))),e=C((s=>z(s))),n=C((s=>s.tenantState.fetchState)),r=C((s=>s.tenantState.activeTenantFetchState.fetchState)),a=E.getSignedInUser(),g=E.getActiveTenantForUser()?.tenantId,l=e?.externalConnections?.fetchState,c=e?.externalConnections?.saveConnectionState,b=e.externalConnections?.accounting[0]?.isValid;o.useLayoutEffect((()=>{d(T.CONNECTION_AUTH)}),[d]),o.useEffect((()=>{S.current||a==null||g==null||(S.current=!0,n==="Completed"||r!=="Not-Started"&&r!=="Error"||(d(T.TENANT_FETCHING),t(G(a.userId,g))))}),[S,n,d]),o.useEffect((()=>{e.tenantId==null&&!x.current&&a!=null&&(x.current=!0,!(g==null||g!=null&&(r==="Completed"||r==="Error"))||n!=="Not-Started"&&n!=="Error"||t(V(a.userId)))}),[x,n,r]),o.useEffect((()=>{a==null||e?.tenantId==null||e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||l==="In-Progress"||c!=="Error"||(d(T.CONNECTION_AUTH),t(U(a.userId,e.tenantId)))}),[c]),o.useEffect((()=>{n!=="Completed"&&r!=="Completed"||a==null||e?.tenantId==null||(t(M(e.tenantId)),E.saveActiveTenantDomainForUser(e.tenantEmailDomain),Q(a?.userId,a?.zeniSessionId,e.tenantId),K.updateAppLocaleID(Y(B(e))),e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||l==="In-Progress"||a==null||e==null||t(U(a.userId,e.tenantId)))}),[n,r,l]),o.useEffect((()=>{y.tenantsCoreDetailsInOrder.length>0&&n==="Completed"&&E.saveSignedInUserTenants(y.tenantsCoreDetailsInOrder)}),[y.tenantsCoreDetailsInOrder.length,n]);const D=e==null||n!=="Completed"&&r!=="Completed"||l!=="Completed";if(o.useEffect((()=>{n!=="Completed"&&n!=="Error"||r!=="Completed"&&r!=="Error"||l!=="Completed"&&l!=="Error"||m()}),[n,r,l]),o.useEffect((()=>{u&&c==="In-Progress"&&(p.current=!0)}),[u,c]),o.useEffect((()=>{if(!u||D)return;const s=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return p.current&&c==="Completed"?(sessionStorage.setItem(h,_.ready),m(),void i(s,{replace:!0})):p.current&&c==="Error"?(sessionStorage.removeItem(h),t(A({messageSection:"accounting_projects_qbo_reconnect_failed",messageText:"failed",type:"error"})),m(),void i(s,{replace:!0})):void(f||N.current||p.current||b!==!0||(sessionStorage.removeItem(h),t(A({messageSection:"accounting_projects_qbo_reconnect_failed",messageText:"failed",type:"error"})),m(),i(s,{replace:!0})))}),[u,D,c,f,b,e.tenantEmailDomain,m,t,i]),D)return null;if(f||b!==!0)return I.jsx(te,{children:I.jsx(ee,{})});if(u)return null;const k=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return P?I.jsx(w,{to:k,replace:!0}):I.jsx(w,{to:"/",replace:!0})}export{we as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./liveblocks-ByZ2hLlh.js";import{z as m}from"./index-CQb5WoEC.js";import{g as n}from"./QBOConnectionScreen-3Q-D8A_V.js";import"./sentry-DhrLg200.js";import{g as p,N as a}from"./core-DV1n0xnE.js";import"./zeni-epic-state-Cw9Z8Rxj.js";import"./recharts-DzomOU1a.js";import"./mui-jYJOd_FH.js";import"./analytics-BPoZyeUe.js";import"./plaid-DlHdcMRS.js";import"./dnd-DhK11Cna.js";import"./stripe-cKAAJElX.js";import"./lottie-DLdOGyRC.js";import"./lexical-Dm0ggfHI.js";import"./pdf-BNP0Aa3G.js";import"./utils-CHwCuPu8.js";import"./empty-CfvnUFQM.js";import"./pdf-lib-Ghg8u77u.js";import"./index-dHB9hLbY.js";import"./url-C0FnX-Y1.js";import"./index-2jvQLAuX.js";import"./decodeURIComponentSafe-DV_H_U9m.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new t.Error().stack;o&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[o]="a1205b81-d106-415b-bd92-85aeae53ace3",t._sentryDebugIdIdentifier="sentry-dbid-a1205b81-d106-415b-bd92-85aeae53ace3")}catch{}})();const U=()=>{const t=p(),{code:o,realmId:r,state:e}=n(t.search),s=m.getSignedInUser()?.userId??"";if(f(o,r,e,s)===!0){const d=`../../${e}/onboarding?code=${o}&realmId=${r}&state=auth_flow`;return i.jsx(a,{to:d})}return i.jsx(a,{to:"../../"})},f=(t,o,r,e)=>t!=""&&o!=""&&r!=""&&e!=null&&e!="";export{U as default,f as hasValidParams};
|