@zeniai/web-app-ui 5.3.63-dev → 5.3.64-dev-beta0KB
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-BRZHYOUR.js → AccountMappingScreen-C_GVFaoh.js} +2 -2
- package/dist/assets/ActualMatchingMatchDetailScreen-Br9CFUye.js +1 -0
- package/dist/assets/AddressRoutes-Bw_nh--O.js +1 -0
- package/dist/assets/AddressScreen-CvhZrOl1.js +9 -0
- package/dist/assets/AiCfoScreen-enlKpZc4.js +22 -0
- package/dist/assets/{AppDrawer-DZIMVdFc.js → AppDrawer-BvDyxQG-.js} +1 -1
- package/dist/assets/BillPayApprovalRoutes-D18TxHMc.js +1 -0
- package/dist/assets/{BillPayRoutes-CUUjBefv.js → BillPayRoutes-CloKoO0m.js} +6 -6
- package/dist/assets/{BusinessVerificationPageScreen-DFamYzxa.js → BusinessVerificationPageScreen-wzhfqwbN.js} +2 -2
- package/dist/assets/{CardsAiCfoScreen-Cx5KkOYw.js → CardsAiCfoScreen-CsPjsbB8.js} +2 -2
- package/dist/assets/{ChargeCardRoutes-DzIBuJeY.js → ChargeCardRoutes-CeG2_2Iv.js} +9 -9
- package/dist/assets/CompanyPassportScreen-CTdU0eT4.js +1 -0
- package/dist/assets/ConnectionAuthScreen-tQkR0Qdq.js +11 -0
- package/dist/assets/CustomerOnboardingAuthScreen-Cfna6QXU.js +1 -0
- package/dist/assets/{CustomerOnboardingRoutes-CjmJGGJm.js → CustomerOnboardingRoutes-C2PIK8CC.js} +3 -3
- package/dist/assets/{DashboardRoutes-ByHBLKcB.js → DashboardRoutes-B6PQcDII.js} +4 -4
- package/dist/assets/DefaultTenantHome-R8lvjrth.js +1 -0
- package/dist/assets/DomesticWireDetailScreen-BOXpXEFg.js +18 -0
- package/dist/assets/{DrawerScreen-B5BqRZEJ.js → DrawerScreen-kd-vUIOU.js} +1 -1
- package/dist/assets/EntityDetailRoutes-CKVztcFF.js +1 -0
- package/dist/assets/ExpenseAutomationRoutes-CZBhc5OO.js +38 -0
- package/dist/assets/FeaturePreviewScreen-DlYWStt_.js +1 -0
- package/dist/assets/HubSpotOAuthCallbackScreen-BiVfvVOh.js +1 -0
- package/dist/assets/{InboxNotificationsProvider-x0fdv66l.js → InboxNotificationsProvider-jZPrqdDf.js} +1 -1
- package/dist/assets/InvoicingRoutes-CTeBd6HD.js +2 -0
- package/dist/assets/{MagicLinkRoutes-C5BKMtwW.js → MagicLinkRoutes-DBawNNk_.js} +20 -20
- package/dist/assets/MagicLinkSignInScreen-CKyZ86AC.js +12 -0
- package/dist/assets/MobileAppDrawer-thURFqdR.js +1 -0
- package/dist/assets/NotFoundScreen-CjcmfT5h.js +1 -0
- package/dist/assets/{NotificationRoutes-DICT3yoM.js → NotificationRoutes-B5kGRr3c.js} +1 -1
- package/dist/assets/OAuthConsentScreen-DKPtywIw.js +1 -0
- package/dist/assets/PandLWithForecastRoutes-DuKFzXpp.js +1 -0
- package/dist/assets/{PaymentLinkScreen-Cz1wlNqO.js → PaymentLinkScreen-DgjfMeF_.js} +9 -9
- package/dist/assets/PeopleRoutes-BFFXxsrW.js +22 -0
- package/dist/assets/PerformanceRoutes-DlDpAJN4.js +1 -0
- package/dist/assets/{Preview-Dz6yJNce.js → Preview-CFep9b6s.js} +1 -1
- package/dist/assets/{QBOConnectionScreen-D8eeXRWb.js → QBOConnectionScreen-zn7s2M2b.js} +1 -1
- package/dist/assets/ReimbursementApprovalRoutes-h6pN24Dd.js +1 -0
- package/dist/assets/ReimbursementApprovalRuleDetailScreen-La5bMk76.js +1 -0
- package/dist/assets/ReimbursementRoutes-DpjqJ1j9.js +68 -0
- package/dist/assets/{ReportsRoutes-CqUKv9Uh.js → ReportsRoutes-Tu97hQPr.js} +1 -1
- package/dist/assets/RewardsRoutes-C7-L_VuA.js +1 -0
- package/dist/assets/{ScheduleDetailsPrepaidExpensesScreen-CLEogplJ.js → ScheduleDetailsPrepaidExpensesScreen-BNVCc0tE.js} +5 -5
- package/dist/assets/ScreenRoutes-DUiJb0LC.js +2 -0
- package/dist/assets/{SettingsRoutes-QcMcR-j3.js → SettingsRoutes-BVrPYY3-.js} +6 -6
- package/dist/assets/{SetupPagesScreen-fuvb0IYd.js → SetupPagesScreen-Cx3OOUGr.js} +4 -4
- package/dist/assets/SignInScreen-BXBlASFY.js +1 -0
- package/dist/assets/SignOutScreen-BN1O2qGb.js +9 -0
- package/dist/assets/{TaskListScreen-C2urPjKT.js → TaskListScreen-DrflApgr.js} +2 -2
- package/dist/assets/{TaskRoutes-BuzkCbPW.js → TaskRoutes-BxW92Ol2.js} +2 -2
- package/dist/assets/TransactionDetailRoutes-CUdtnWL8.js +1 -0
- package/dist/assets/{TransactionDetailScreen-CQr1YyP0.js → TransactionDetailScreen-C2qhnA5b.js} +2 -2
- package/dist/assets/TransactionListRoutes-Bt_C_073.js +1 -0
- package/dist/assets/{TreasuryRoutes-CbD79DO8.js → TreasuryRoutes-DJK_7z5t.js} +5 -5
- package/dist/assets/{VendorsRoutes-CCYu89Uf.js → VendorsRoutes-dr-KQ_Nk.js} +13 -13
- package/dist/assets/WiseConfirmationScreen-BjSMumPA.js +12 -0
- package/dist/assets/{ZeniAccountRoutes-CoRmS3Mc.js → ZeniAccountRoutes-mpb2ppPH.js} +11 -11
- package/dist/assets/ZeniAccountStatementScreen-C6P6WNnP.js +9 -0
- package/dist/assets/{accountMappingHelper-tmyjt9rr.js → accountMappingHelper-D5I8xPpR.js} +1 -1
- package/dist/assets/analytics-CVpLIXYS.js +68 -0
- package/dist/assets/{analyticsHelper-BEL0ra9X.js → analyticsHelper-DIAaX2E9.js} +1 -1
- package/dist/assets/{core-CHD8T-IM.js → core-BmXpopk3.js} +1 -1
- package/dist/assets/{decodeURIComponentSafe-p_nrn8Pg.js → decodeURIComponentSafe-CmNiiSLm.js} +1 -1
- package/dist/assets/{dnd-Dwi6R-ey.js → dnd-CFbFq_On.js} +1 -1
- package/dist/assets/{empty-CeRjDJvl.js → empty-0E71-pkh.js} +1 -1
- package/dist/assets/{empty-CZC5CrVC.js → empty-IUpx8pFE.js} +1 -1
- package/dist/assets/{emptyVideoElement-BQ5qxpg6.js → emptyVideoElement-DvAsJwe7.js} +1 -1
- package/dist/assets/epic-Dp0UOOW0.js +2 -0
- package/dist/assets/expenseAutomationHelper-wsi-w_Qs.js +1 -0
- package/dist/assets/{getLocaleForTenant-D-or0iZO.js → getLocaleForTenant-CLcFXXBi.js} +1 -1
- package/dist/assets/{index-DKH4PK2B.js → index-BH7Z90Ry.js} +16554 -16011
- package/dist/assets/{index-BMy5YH8G.js → index-BwG9RDJd.js} +1 -1
- package/dist/assets/{index-yiW1aZfy.js → index-DaYn0dIv.js} +2 -2
- package/dist/assets/{index-CKiMoeFX.js → index-Diiw4rJ6.js} +1 -1
- package/dist/assets/{index-BVHBHjSe.js → index-_EB0AYfG.js} +1 -1
- package/dist/assets/{index-XRUedCJ0.js → index-n9iskFtR.js} +1 -1
- package/dist/assets/{index-C1KaIuMT.js → index-nMXCGK26.js} +1 -1
- package/dist/assets/{index-w09kaOHP.js → index-xAn5v5dB.js} +1 -1
- package/dist/assets/{lexical-CMNdypK6.js → lexical-CUqOWG_f.js} +1 -1
- package/dist/assets/{liveblocks-e6rGc1UF.js → liveblocks-2F3ER8H4.js} +1 -1
- package/dist/assets/{lottie-B778bt56.js → lottie-Do5BYuHO.js} +1 -1
- package/dist/assets/{mui-NTaF3UaY.js → mui-DpZKsKJ-.js} +1 -1
- package/dist/assets/{pathToGoBack-3T3qt1CN.js → pathToGoBack-IYhrTF3T.js} +1 -1
- package/dist/assets/{pdf-Bx92ZlM_.js → pdf-CaVqV5T4.js} +3 -3
- package/dist/assets/{pdf-lib-CSbJ_JNk.js → pdf-lib-DgpGz3__.js} +1 -1
- package/dist/assets/{plaid-DdTo7m1-.js → plaid-B0sfsJHV.js} +1 -1
- package/dist/assets/{pusher-TnSBrmnt.js → pusher-BZ4RRfso.js} +1 -1
- package/dist/assets/{react-BRi8TcMI.js → react-B40uyjvd.js} +1 -1
- package/dist/assets/{react-COkaiBQo.js → react-BlQV6oEC.js} +1 -1
- package/dist/assets/{react-Ba46BK4D.js → react-CM6JlJfX.js} +1 -1
- package/dist/assets/{react-Ci1ltUcy.js → react-CVdpmzlC.js} +1 -1
- package/dist/assets/{react-DJOUavGZ.js → react-Cx2vmGsH.js} +1 -1
- package/dist/assets/{react-B75Gnqob.js → react-cC2pOmRW.js} +1 -1
- package/dist/assets/{recharts-C6xUtcdL.js → recharts-lgPPofcu.js} +1 -1
- package/dist/assets/routePaths-DuFLBwyX.js +1 -0
- package/dist/assets/{sentry-DsyKtMW2.js → sentry-Dwi3Xpu2.js} +1 -1
- package/dist/assets/{stripSplatSuffix-CKrdD9MQ.js → stripSplatSuffix-Cm_Bj9mb.js} +1 -1
- package/dist/assets/{url-Zl9uXQ4e.js → url-B3IdPeRD.js} +1 -1
- package/dist/assets/{url-ClJewK9Y.js → url-CuCw2GYz.js} +1 -1
- package/dist/assets/useActualMatchingMatchDetail-CTL9QRWv.js +1 -0
- package/dist/assets/useAiCfoDashboardSuggestedQuestionsChips-B1hI9_5p.js +1 -0
- package/dist/assets/useAskAiCfoHostNavButtonProps-B82QOIYm.js +1 -0
- package/dist/assets/{useChargeCardPusherEvents-BWi4_PP5.js → useChargeCardPusherEvents-CNgbxhoK.js} +1 -1
- package/dist/assets/{useDeviceId-VsdzmSZI.js → useDeviceId-Dklpg4lb.js} +1 -1
- package/dist/assets/useEmailConnectResultRefresh-BfOhSDOo.js +1 -0
- package/dist/assets/useEnsureVendorListLoaded-BtOYIHPo.js +1 -0
- package/dist/assets/{useInitialThreadRequest-DDr_z_RH.js → useInitialThreadRequest-DagpMHc1.js} +1 -1
- package/dist/assets/useTaskManagerAccess-DvrYqbN3.js +1 -0
- package/dist/assets/{useTaskManagerPusherEvents-DCIopLVZ.js → useTaskManagerPusherEvents-Be2DL4pK.js} +1 -1
- package/dist/assets/{utils-CCA3F0sZ.js → utils-DAgs23EZ.js} +1 -1
- package/dist/assets/withTransactionSidePanel-Dn8x-lme.js +25 -0
- package/dist/assets/{zeni-epic-state-BO3zdDfL.js → zeni-epic-state-DtY6MD5C.js} +6 -6
- package/dist/index.html +1 -1
- package/package.json +4 -4
- package/dist/assets/ActualMatchingMatchDetailScreen-CT_TfQgQ.js +0 -1
- package/dist/assets/AddressRoutes-CisWqyoC.js +0 -1
- package/dist/assets/AddressScreen-CrINuapd.js +0 -9
- package/dist/assets/AiCfoScreen-BXw0LDjo.js +0 -22
- package/dist/assets/BillPayApprovalRoutes-Dp_PkbIk.js +0 -1
- package/dist/assets/CompanyPassportScreen-CENbDnLW.js +0 -1
- package/dist/assets/ConnectionAuthScreen-DTyZxcME.js +0 -11
- package/dist/assets/CustomerOnboardingAuthScreen-zLmHJyqv.js +0 -1
- package/dist/assets/DefaultTenantHome-Dm9FOXup.js +0 -1
- package/dist/assets/DomesticWireDetailScreen-086WQWRB.js +0 -18
- package/dist/assets/EntityDetailRoutes-BuN3sXNp.js +0 -1
- package/dist/assets/ExpenseAutomationRoutes-Ce3IicTe.js +0 -38
- package/dist/assets/FeaturePreviewScreen-D54Nwanb.js +0 -1
- package/dist/assets/HubSpotOAuthCallbackScreen-BRUwb2B6.js +0 -1
- package/dist/assets/InvoicingRoutes-IQsFojD0.js +0 -2
- package/dist/assets/MagicLinkSignInScreen-9LYlxmop.js +0 -12
- package/dist/assets/MobileAppDrawer-DX2JnkbM.js +0 -1
- package/dist/assets/NotFoundScreen-CtgFRYZy.js +0 -1
- package/dist/assets/OAuthConsentScreen-BmiLDdxn.js +0 -1
- package/dist/assets/PandLWithForecastRoutes-DAq9XRB1.js +0 -1
- package/dist/assets/PeopleRoutes-DgYtveDU.js +0 -22
- package/dist/assets/PerformanceRoutes-B6iTINLg.js +0 -1
- package/dist/assets/ReimbursementApprovalRoutes-CE6y6IwA.js +0 -1
- package/dist/assets/ReimbursementApprovalRuleDetailScreen-BT_O_PEv.js +0 -1
- package/dist/assets/ReimbursementRoutes-BmOT-3C-.js +0 -68
- package/dist/assets/RewardsRoutes-D5CR9NnI.js +0 -1
- package/dist/assets/ScreenRoutes-xDjhbdP1.js +0 -2
- package/dist/assets/SignInScreen-ekGlkjLH.js +0 -1
- package/dist/assets/SignOutScreen-9NJIr2hr.js +0 -9
- package/dist/assets/TransactionDetailRoutes-D99Yv6kv.js +0 -1
- package/dist/assets/TransactionListRoutes-BTidVr9Z.js +0 -1
- package/dist/assets/WiseConfirmationScreen-B0HeU8Sh.js +0 -12
- package/dist/assets/ZeniAccountStatementScreen-BnpFJ5jB.js +0 -9
- package/dist/assets/analytics-C3e3An3a.js +0 -68
- package/dist/assets/epic-BW8jUHg5.js +0 -2
- package/dist/assets/expenseAutomationHelper-kGR6VZFG.js +0 -1
- package/dist/assets/routePaths-CGyE-cU7.js +0 -1
- package/dist/assets/useActualMatchingMatchDetail-Cc17Q5Tv.js +0 -1
- package/dist/assets/useAiCfoDashboardSuggestedQuestionsChips-CHbHmZzx.js +0 -1
- package/dist/assets/useAskAiCfoHostNavButtonProps-BcCbRGDK.js +0 -1
- package/dist/assets/useEmailConnectResultRefresh-ClXdZp-6.js +0 -1
- package/dist/assets/useTaskManagerAccess-CUv6a62x.js +0 -1
- package/dist/assets/withTransactionSidePanel-B_xgLNm6.js +0 -25
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as o}from"./liveblocks-e6rGc1UF.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-CHD8T-IM.js";import{fS as _t,$X as cs,g2 as Pt,bt as Fe,$Y as is,$Z as ds,fH as hn,$_ as _n,fQ as Pn,$$ as wn,a00 as vn,a01 as Tn,a02 as Fn,fR as xn,g1 as Ln,a03 as Bn,a04 as ls,fX as us,fW as ms,a05 as Cs,K8 as Rn,g4 as ia,a06 as ps,a07 as hs,fJ as fs,fI as gs,gh as Ze,fZ as On,fY as Un,a08 as bs,f_ as Ss,JG as ys,JF as Is,JJ as ks,JL as Es,ga as As,fE as jn,a09 as Ds,a0a as _s,gf as Mn,a0b as Ps,gg as St,JR as ws,JO as vs,fF as ge,a0c as Wa,dZ as xe,di as Le,d_ as Be,g_ as da,cB as la,a0d as ua,a0e as wt,CZ as Ga,m7 as $a,a0f as Ka,Ko as Ia,g5 as Je,Kq as vt,lZ as Nn,a0g as ma,Kc as Da,a0h as Ts,a0i as Fs,Kf as qa,a0j as xs,Z8 as Ja,g0 as Vn,Kl as ga,iq as Ls,a0k as Hn,fT as Ca,br as Bs,a0l as Rs,gG as Qa,gF as Xa,KU as Os,gE as et,a0m as Gn,cu as $n,da as Us,Z7 as Pa,Lt as Kn,a0n as fn,L3 as _a,a0o as zn,Lu as js,Zx as Ms,Lv as Ns,MA as Vs,Cd as Hs,Mu as Gs,a0p as $s,Kp as oa,a0q as Ks,a0r as zs,a0s as Zs,a0t as Ys,a0u as Ws,a0v as Tt,a0w as qs,KF as Zn,Ky as Js,a0x as Qs,h0 as Xs,a0y as Yn,KO as Wn,KS as qn,g$ as eo,a0z as ao,Lf as Jn,a0A as to,a0B as no,a0C as ro,KQ as Qn,KB as Xn,Ki as er,KK as ar,KI as tr,KM as so,a0D as nr,a0E as oo,gc as co,gd as io,ge as lo,a0F as at,g6 as rr,dc as Ft,a0G as uo,a0H as mo,a0I as Co,a0J as po,K_ as yt,Lm as ho,Li as fo,KW as go,Lk as bo,La as So,Lc as yo,a0K as sr,Ls as Ha,Sj as Io,a0L as ko,a0M as Eo,a0N as Ao,a0O as or,a0P as Do,LP as _o,L2 as cr,KZ as Ne,L1 as Po,a0Q as wo,a0R as vo,K9 as To,a0S as ir,f$ as dr,a0T as Fo,Kb as xo,Ka as gn,a0U as Lo,a0V as Bo,a0W as Ro,Vr as Oo,a0X as xt,a0Y as Uo,xj as lr,mH as jo,ie as Mo,LU as No,a0Z as ur,fN as Vo,fO as Ho,a0_ as Go,dO as $o,g3 as Ko,LK as zo,LE as qe,bq as Zo,bJ as Yo,cG as Wo,bK as qo,Ui as Jo}from"./zeni-epic-state-BO3zdDfL.js";import{W as Re,df as mr,a5 as we,dg as Cr,dh as pr,di as Qo,G as aa,at as Lt,dj as Xo,dk as ec,a as hr,d as fr,as as gr,p as Ee,N as de,f as q,l as Sa,dl as br,dm as ac,dn as tc,z as te,a8 as wa,d4 as tt,dp as nc,dq as rc,dr as sc,a2 as va,bj as Xe,bG as Bt,ds as oc,ac as Ta,_ as nt,E as Rt,k as ee,w as rt,dt as cc,bS as ba,du as It,dv as ic,a9 as Ot,dw as dc,af as Sr,aw as kt,dx as lc,ar as yr,X as Ir,U as kr,bo as uc,dy as mc,dz as Cc,dA as pc,dB as hc,dC as fc,dD as gc,J as za,dE as bc,dF as Sc,m as pt,F as yc,dG as Ic,dH as kc,dI as Ec,aj as Ac,dJ as Dc,dK as _c,g as Pc}from"./index-DKH4PK2B.js";import{n as He,D as Er,S as wc}from"./mui-NTaF3UaY.js";import{a as r}from"./sentry-DsyKtMW2.js";import{u as Fa}from"./useAskAiCfoHostNavButtonProps-BcCbRGDK.js";import{M as Ae}from"./MobileAppDrawer-DX2JnkbM.js";import{d as Ut}from"./recharts-C6xUtcdL.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-fuvb0IYd.js";import{u as wr}from"./useInitialThreadRequest-DDr_z_RH.js";import st from"./NotFoundScreen-CtgFRYZy.js";import{u as Nt}from"./useChargeCardPusherEvents-BWi4_PP5.js";import{n as Sn}from"./utils-CCA3F0sZ.js";import{t as Lc}from"./AddressScreen-CrINuapd.js";import"./analytics-C3e3An3a.js";import"./plaid-DdTo7m1-.js";import"./dnd-Dwi6R-ey.js";import"./stripe-cKAAJElX.js";import"./lottie-B778bt56.js";import"./lexical-CMNdypK6.js";import"./pdf-Bx92ZlM_.js";import"./InboxNotificationsProvider-x0fdv66l.js";import"./useTaskManagerAccess-CUv6a62x.js";import"./BusinessVerificationPageScreen-DFamYzxa.js";import"./routePaths-CGyE-cU7.js";import"./analyticsHelper-BEL0ra9X.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]="1dd766ba-8dda-4e47-9090-5f12acbb2d06",e._sentryDebugIdIdentifier="sentry-dbid-1dd766ba-8dda-4e47-9090-5f12acbb2d06")}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]),Z=r.useCallback((()=>{e(h)}),[e,h]),_=r.useCallback((P=>{t(hs(P))}),[t]),W=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(Ze({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:Z,onClickMenuIcon:u,onFormChange:_,onSubmit:W,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,Z=n!=null?`/${n}/cards/policy`:"..",_=r.useCallback((()=>{const v=we(a.state?.pathnameStackToGoBack),P=v.poppedPathname??Z;e(P,{state:{pathnameStackToGoBack:v.newStack}})}),[a.state,e,Z]),W=r.useCallback((()=>{e(Z)}),[e,Z]),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(Ze({messageSection:"card_policy_updated",messageText:"success",type:"success"})),e(Z))}),[s,H,e,Z]);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:W,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(Ze({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(Ze({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:Z,isFileUploadEnabled:_}=h,W=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);W(`/${$}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Ge,referrer:"card_policy_hero",aiCfoInitialQuestion:J,aiCfoShouldSubmit:J!=null&&J.trim().length>0}})}),[N.pathname,N.state,W,$]),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&&Z)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,Z,_,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 Zc(){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=>Wa(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,Z=d((X=>H!=null?Ga(X.userRoleState,H):void 0)),_=Z?.accountingClassIDs[0],W=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(Ze({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:Z?.userRoles,cardHolderDepartmentName:W?.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}`)),Wc=[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,Wc),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((W=>ge(W)));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((W=>Fs(W,s))),E=x.chargeCard,I=d((W=>W.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 W=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);t(W,{state:{pathnameStackToGoBack:N}})}else if(B&&x.isRefreshingViewInBackground===!1&&E?.status?.code==="active"){n(xs({chargeCardId:s}));const W=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);n(Ja()),t(W,{state:{pathnameStackToGoBack:N}})}}}),[x.fetchState,E?.type.code,B,x.isRefreshingViewInBackground]);const h=te.getZeniOtpTokenForCardHolder(s),H=d((W=>Vn(W.userState,U.userId))),Z=()=>{E?.status?.code!=="active"&&n(ga(s,!0))};r.useEffect((()=>{x.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&E?.cardActivationAttemptHistory.some((W=>W.statusCode==="success"))===!0&&B===!1&&(setTimeout(Z,3e3),D(!0))}),[x.updatePhysicalChargeCardAttemptFetchState.fetchState,E?.cardActivationAttemptHistory]);const _=W=>{O(W)};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-2F3ER8H4.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-BmXpopk3.js";import{fS as _t,a0a as cs,g2 as Pt,bt as Fe,a0b as is,a0c as ds,fH as hn,a0d as _n,fQ as Pn,a0e as wn,a0f as Tn,a0g as vn,a0h as Fn,fR as xn,g1 as Ln,a0i as Bn,a0j as ls,fX as us,fW as ms,a0k as Cs,K8 as Rn,g4 as ia,a0l as ps,a0m as hs,fJ as fs,fI as gs,gh as Ze,fZ as On,fY as Un,a0n as bs,f_ as Ss,JG as ys,JF as Is,JJ as ks,JL as Es,ga as As,fE as jn,a0o as Ds,a0p as _s,gf as Mn,a0q as Ps,gg as St,JR as ws,JO as Ts,fF as ge,a0r as Wa,dZ as xe,di as Le,d_ as Be,g_ as da,cB as la,a0s as ua,a0t as wt,CZ as Ga,m7 as $a,a0u as Ka,Ko as Ia,g5 as Je,Kq as Tt,lZ as Nn,a0v as ma,Kc as Da,a0w as vs,a0x as Fs,Kf as qa,a0y as xs,Zn as Ja,g0 as Vn,Kl as ga,iq as Ls,a0z as Hn,fT as Ca,br as Bs,a0A as Rs,gG as Qa,gF as Xa,KU as Os,gE as et,a0B as Gn,cu as $n,da as Us,Zm as Pa,Lt as Kn,a0C as fn,L3 as _a,a0D as zn,Lu as js,ZM as Ms,Lv as Ns,MA as Vs,Cd as Hs,Mu as Gs,a0E as $s,Kp as oa,a0F as Ks,a0G as zs,a0H as Zs,a0I as Ys,a0J as Ws,a0K as vt,a0L as qs,KF as Zn,Ky as Js,a0M as Qs,h0 as Xs,a0N as Yn,KO as Wn,KS as qn,g$ as eo,a0O as ao,Lf as Jn,a0P as to,a0Q as no,a0R as ro,KQ as Qn,KB as Xn,Ki as er,KK as ar,KI as tr,KM as so,a0S as nr,a0T as oo,gc as co,gd as io,ge as lo,a0U as at,g6 as rr,dc as Ft,a0V as uo,a0W as mo,a0X as Co,a0Y as po,K_ as yt,Lm as ho,Li as fo,KW as go,Lk as bo,La as So,Lc as yo,a0Z as sr,Ls as Ha,St as Io,a0_ as ko,a0$ as Eo,a10 as Ao,a11 as or,a12 as Do,LP as _o,L2 as cr,KZ as Ne,L1 as Po,a13 as wo,a14 as To,K9 as vo,a15 as ir,f$ as dr,a16 as Fo,Kb as xo,Ka as gn,a17 as Lo,a18 as Bo,a19 as Ro,VB as Oo,a1a as xt,a1b as Uo,xj as lr,mH as jo,ie as Mo,LU as No,a1c as ur,fN as Vo,fO as Ho,a1d as Go,dO as $o,g3 as Ko,LK as zo,LE as qe,bq as Zo,bJ as Yo,cG as Wo,bK as qo,Us as Jo}from"./zeni-epic-state-DtY6MD5C.js";import{O as Re,dg as mr,a5 as we,dh as Cr,di as pr,dj as Qo,G as aa,at as Lt,dk as Xo,dl as ec,a as hr,f as fr,as as gr,p as Ee,d as de,$ as q,k as Sa,dm as br,dn as ac,dp as tc,z as te,a8 as wa,d5 as tt,dq as nc,dr as rc,ds as sc,a2 as Ta,bk as Xe,bH as Bt,dt as oc,ac as va,X as nt,E as Rt,m as ee,w as rt,du as cc,bT as ba,dv as It,dw as ic,a9 as Ot,dx as dc,af as Sr,aw as kt,dy as lc,ar as yr,N as Ir,U as kr,bp as uc,dz as mc,dA as Cc,dB as pc,dC as hc,dD as fc,dE as gc,I as za,dF as bc,dG as Sc,n as pt,c as yc,dH as Ic,dI as kc,dJ as Ec,aj as Ac,dK as Dc,dL as _c,h as Pc}from"./index-BH7Z90Ry.js";import{n as He,D as Er,S as wc}from"./mui-DpZKsKJ-.js";import{a as r}from"./sentry-Dwi3Xpu2.js";import{u as Fa}from"./useAskAiCfoHostNavButtonProps-B82QOIYm.js";import{M as Ae}from"./MobileAppDrawer-thURFqdR.js";import{d as Ut}from"./recharts-lgPPofcu.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 Tc,i as jt,P as vc,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-Cx3OOUGr.js";import{u as wr}from"./useInitialThreadRequest-DagpMHc1.js";import st from"./NotFoundScreen-CjcmfT5h.js";import{u as Nt}from"./useChargeCardPusherEvents-CNgbxhoK.js";import{n as Sn}from"./utils-DAgs23EZ.js";import{t as Lc}from"./AddressScreen-CvhZrOl1.js";import"./analytics-CVpLIXYS.js";import"./plaid-B0sfsJHV.js";import"./dnd-CFbFq_On.js";import"./stripe-cKAAJElX.js";import"./lottie-Do5BYuHO.js";import"./lexical-CUqOWG_f.js";import"./pdf-CaVqV5T4.js";import"./InboxNotificationsProvider-jZPrqdDf.js";import"./useTaskManagerAccess-DvrYqbN3.js";import"./BusinessVerificationPageScreen-wzhfqwbN.js";import"./routePaths-DuFLBwyX.js";import"./analyticsHelper-DIAaX2E9.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]="392bb956-3f88-42ef-9ec7-ef96245062fc",e._sentryDebugIdIdentifier="sentry-dbid-392bb956-3f88-42ef-9ec7-ef96245062fc")}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}},Tr=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 vr(){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=>Tn(P.cardPolicyState))),S=d((P=>vn(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]),vr();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(Tr)),[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]),Z=r.useCallback((()=>{e(h)}),[e,h]),_=r.useCallback((P=>{t(hs(P))}),[t]),W=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]),v=r.useRef(j);r.useEffect((()=>{const P=v.current;v.current=j,j==="Completed"&&P!=="Completed"&&V!=null&&(t(Ze({messageSection:"card_policy_created",messageText:"success",type:"success"})),e(h))}),[t,j,V,e,h]);const T=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:T,documentUploadState:w,uploadedFileName:y,isAiCfoAccessEnabled:l,onAskAiCfoClick:B,onBackClick:H,onCancelClick:Z,onClickMenuIcon:u,onFormChange:_,onSubmit:W,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((T=>{A(T)}),[]),l=r.useCallback((()=>{u(!0)}),[u]),{isAiCfoAccessEnabled:B,onAskAiCfoClick:D}=Fa({mobileExploreReferrer:"Card Policy"}),C=d((T=>bs(T))),O=d((T=>_n(T.cardPolicyState))),U=d((T=>Pn(T.cardPolicyState))),S=d((T=>wn(T.cardPolicyState))),c=d((T=>Tn(T.cardPolicyState))),p=d((T=>vn(T.cardPolicyState))),x=d((T=>Fn(T.cardPolicyState))),E=d((T=>xn(T.cardPolicyState))),I=d((T=>_t(T.cardPolicyState))),k=d((T=>Rn(T))),V=d((T=>t!=null?Ss(T.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 T=C.detailFetchState.fetchState;C.templateId===t&&(T==="Completed"||T==="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]),vr();const y=d((T=>T.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((T=>!mr(T.status.code))).map(Tr)),[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((T=>{M(T)}),[]),j=r.useMemo((()=>Ut((T=>{s(Pt(T))}),250)),[s]);r.useEffect((()=>()=>{j.cancel()}),[j]);const h=r.useCallback((T=>{j(T)}),[j]),H=C.updateFetchState.fetchState,Z=n!=null?`/${n}/cards/policy`:"..",_=r.useCallback((()=>{const T=we(a.state?.pathnameStackToGoBack),P=T.poppedPathname??Z;e(P,{state:{pathnameStackToGoBack:T.newStack}})}),[a.state,e,Z]),W=r.useCallback((()=>{e(Z)}),[e,Z]),N=r.useCallback((T=>{if(t==null)return;const P=Cr(T);s(ks(P)),s(Es(t))}),[s,t]),$=r.useRef(H);r.useEffect((()=>{const T=$.current;$.current=H,H==="Completed"&&T!=="Completed"&&(s(Ze({messageSection:"card_policy_updated",messageText:"success",type:"success"})),e(Z))}),[s,H,e,Z]);const v=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:v,isAiCfoAccessEnabled:B,onAskAiCfoClick:D,onBackClick:_,onCancelClick:W,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(Ze({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(Ze({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:Z,isFileUploadEnabled:_}=h,W=ie(),N=me(),{tenantEmailDomain:$}=Ve(),{isAiCfoOpen:v,setIsAiCfoOpen:T}=hr(),P=fr(),ae=gr(),Ce=d((J=>jn(J))).createSessionAndSubmitState.fetchState==="In-Progress",{chips:X,isResolved:Te}=xr("card_policy"),Ie=r.useMemo((()=>Fr(X,Te,3)),[X,Te]),[re,be]=r.useState(""),pe=ae&&P&&$!=null&&!v,he=r.useCallback((J=>{if($==null)return;const Ge=Ee(N.state?.pathnameStackToGoBack,N.pathname);W(`/${$}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Ge,referrer:"card_policy_hero",aiCfoInitialQuestion:J,aiCfoShouldSubmit:J!=null&&J.trim().length>0}})}),[N.pathname,N.state,W,$]),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((()=>{T(!0)}),[T]),ve=r.useCallback((()=>{he(void 0)}),[he]);return r.useMemo((()=>{if(pe&&!H&&Z)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:ve,dataTestIdPrefix:"card-policy-ai-cfo-hero"}}),[re,H,pe,Z,_,Ce,De,ve,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(Ts(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 Zc(){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=>Wa(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,Z=d((X=>H!=null?Ga(X.userRoleState,H):void 0)),_=Z?.accountingClassIDs[0],W=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(Ze({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(Tt()),F!=="Completed"&&F!=="In-Progress"&&n(Nn())}),[w.fetchState,y.fetchState,n,E,C,b,F]);const v=()=>{if(t!=null&&a!=null){n(Ka());const X=_e(s.tenantEmailDomain,a,t);e(X)}},T=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(T,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:v,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:Z?.userRoles,cardHolderDepartmentName:W?.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}`)),Wc=[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(vs({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,Wc),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 va(100,58)},ei=({appContent:e})=>{const a=Ta(),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((W=>ge(W)));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((W=>Fs(W,s))),E=x.chargeCard,I=d((W=>W.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 W=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);t(W,{state:{pathnameStackToGoBack:N}})}else if(B&&x.isRefreshingViewInBackground===!1&&E?.status?.code==="active"){n(xs({chargeCardId:s}));const W=_e(S.tenantEmailDomain,s,U,E,!0),N=Ee(f.state?.pathnameStackToGoBack,f.pathname);n(Ja()),t(W,{state:{pathnameStackToGoBack:N}})}}}),[x.fetchState,E?.type.code,B,x.isRefreshingViewInBackground]);const h=te.getZeniOtpTokenForCardHolder(s),H=d((W=>Vn(W.userState,U.userId))),Z=()=>{E?.status?.code!=="active"&&n(ga(s,!0))};r.useEffect((()=>{x.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&E?.cardActivationAttemptHistory.some((W=>W.statusCode==="success"))===!0&&B===!1&&(setTimeout(Z,3e3),D(!0))}),[x.updatePhysicalChargeCardAttemptFetchState.fetchState,E?.cardActivationAttemptHistory]);const _=W=>{O(W)};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-e6rGc1UF.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
|
-
`,Za=aa.getLocalizedStrings().dateFormat,ri={overlayWidth:new
|
|
14
|
+
`,Za=aa.getLocalizedStrings().dateFormat,ri={overlayWidth:new va(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(Za.visual.MMMDCommaYYYYformat),paymentInitiatedDate:O?.format(Za.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=Ta(),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??Tc,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,v=S.transferFromAccounts.find((P=>P.id===$));let T;if(f==="cardPaymentHistory"&&C){const P=C.paymentAccountId!=null?S.transferFromAccounts.find((ae=>ae.id===C.paymentAccountId)):void 0;T={amount:C.amount,isAutoRepayment:p.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:Sn(),transferFrom:P??v}}else T={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:v};I(fn(T)),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 Z={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(Za.visual.MMMDCommaYYYYformat),paymentInitiatedDate:D?.format(Za.visual.MMMDCommaYYYYformat)},Z,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,Z,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())},W=ta(p),N={events:e?ha(W,Nr):[],eventCallback:($,v,T)=>{T.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},Z,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:Z,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)},Zt=(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=Zt(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(Ws({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(Zs({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(Ze({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(c,p)=>{c?e(Ze({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):p!=null&&e(Ze({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:p.message}]}))},updateSpendLimit(c,p,x,E){e(Wn(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=>Wa(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))),Z=te.getZeniOtpTokenForCardHolder(t),_=d((Y=>wt(Y,t,z,G))),{isAiCfoAccessEnabled:W,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(Ze({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(Zn({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:Z,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:C.documentAiReceiptMaxSizeLimitBytes!=null?C.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:W,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,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)},Zt=(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=Zt(w,y);return F!=null?void k(vt(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(Ws({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(Zs({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(Ze({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(c,p)=>{c?e(Ze({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):p!=null&&e(Ze({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:p.message}]}))},updateSpendLimit(c,p,x,E){e(Wn(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=>Wa(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))),Z=te.getZeniOtpTokenForCardHolder(t),_=d((Y=>wt(Y,t,z,G))),{isAiCfoAccessEnabled:W,onAskAiCfoClick:N}=Fa({mobileExploreReferrer:"Card Detail"});Lt({isDataReady:_.fetchState==="Completed"});const $=d((Y=>ma(Y))),v=_.chargeCard,T=Re(),P=Fe(T?.loggedInUserRoleMap),ae=v?.type.code==="business_physical_debit_card"||v?.type.code==="business_virtual_debit_card",Ce=v?.type.code==="business_physical_debit_card"||v?.type.code==="business_physical_credit_card",X=v?.type.code==="business_virtual_debit_card"||v?.type.code==="business_virtual_credit_card",Te=v?.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=>v?.cardCreatedByUser?.userId!=null?Ga(Y.userRoleState,v?.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=>v?.cardHolderUser?.userId!=null?Ga(Y.userRoleState,v?.cardHolderUser?.userId):void 0)),ve=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()),Te&&a(Ze({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))}),5e3))}),[B,s,X,Te]),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(Zn({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"||v==null||_.transactionStatistics.fetchState!=="Completed"||ae&&P&&_.depositAccountLimitFetchState.fetchState!=="Completed")){const Y=v.type.code.includes("physical"),ye=Y?v.cardActivationAttemptHistory[0]?.timestamp:v.createTime;ee.trackCardsCardDetailView(Q,pe,{cardId:t,cardName:v.cardName,cardType:v.type.code.includes("credit")?"credit":"debit",cardCategory:Y?"physical":"virtual",cardLimit:ba(v.limit.amount),cardLastFourDigits:v.accountLast4,cardStatus:v.status.code,cardAssignedDate:v.createTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardIssuedDate:v.providerCardCreateTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardActivatedDate:ye?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardLimitFrequency:v.creditLimitFrequency.name,cardSpentAmount:ba(v.balance.amount),cardAvailableLimit:ba(v.available.amount),cardUtilizationPercent:v.limit.amount>0?Math.round((v.limit.amount-v.available.amount)/v.limit.amount*100):0,cardUtilizationAmount:ba(v.limit.amount-v.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(v.cardCreatedByUser,!1),cardIssuedByEmail:v.cardCreatedByUser?.email,cardIssuedByUserId:v.cardCreatedByUser?.userId,cardIssuedByRole:Se?.userRoles,cardIssuedByDepartment:De?.className},{cardholderName:It(v.cardHolderUser,!1),cardholderEmail:v.cardHolderUser?.email,cardholderRole:fe?.userRoles,cardholderUserId:v.cardHolderUser?.userId,cardholderDepartment:ve?.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&&v!=null){const{ownerName:Y,cardName:ye,utilisation:se,limit:$e,frequency:Ye,cardColor:Ke}=bt(v),ze=v.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,v,B);e(ye)}}}),[_.fetchState]);const dt=(Y,ye)=>{if(t!=null&&v!=null){const{ownerName:se,cardName:$e,utilisation:Ye,limit:Ke,frequency:ze}=bt(v),sa=v.cardHolderUserId===u.userId;ee.trackCardsDetailPageClicked(t,se,$e,Ye,Ke,ze,Y,sa,ye)}},lt=(Y,ye)=>{if(t!=null&&v!=null){const{ownerName:se,cardName:$e,utilisation:Ye,limit:Ke,frequency:ze}=bt(v),sa=v.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:ve?.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:Z,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:C.documentAiReceiptMaxSizeLimitBytes!=null?C.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:W,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`
|
|
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??"",Z=L.limit.amount,_=L.creditLimitFrequency.name;ee.trackCardsListRowClicked(j,h,H,z,Z,_,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(Zn({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(Wn(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),Z=C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:F,isBookKeepingTenant:H,isDebitCardProductVisible:j,chargeCardsCreditAccountLimit:Z}),W=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=>Wa(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((We=>We.cardHolderUserId===D?.userId)).filter((We=>We.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),Wt=K=>{c(K)},Zr=Q.creditAccount.limit,Yr=()=>{b(!1),s("..")},Wr=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=Wr||qr,qt=(function(K){const{isEmptyCardsState:je,isChargeCardAdmin:We,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&&We)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,We,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,We)=>{We.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:Wt}),o.jsx(fi,{...as,isCashbackFeatureEnabled:y,isChargeCardFeatureEnabled:_,isDebitCardFeatureEnabled:j,isCreditCardProductVisibleForExpressInterest:W,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:()=>{Wt(!0)},creditLimit:Zr,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]),Z=g.creditAccount.balance.amount+g.creditAccount.hold.amount,_=r.useMemo((()=>C!=null?b.repaymentHistory.find((v=>v.cardRepaymentId===C)):void 0),[C,b.repaymentHistory]),W=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:Z,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:W})]})}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: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??"",Z=L.limit.amount,_=L.creditLimitFrequency.name;ee.trackCardsListRowClicked(j,h,H,z,Z,_,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(Zn({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(Wn(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),Z=C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:F,isBookKeepingTenant:H,isDebitCardProductVisible:j,chargeCardsCreditAccountLimit:Z}),W=Dr({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:F,isBookKeepingTenant:H}),{configValue:N}=w(Xe.zeniCardsConfig),$=Re(),v=Fe($?.loggedInUserRoleMap),T=d((K=>da(K,C.companyId))),P=la(T.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??vc,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),Te=!!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))),ve=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:ve,kind:"created_cards"}))}))}),[n,De.fetchState,fe,ve,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((()=>v===!0&&M===!0&&ue==="Completed"&&te.getCardPolicyPopupSeen(C.tenantEmailDomain??"")!==!0),[v,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=>Wa(K).firstViewAfterActivation)),{areTenantIdsInSync:Ye}=yr(),Ke=jt(v,ka),ze=xa(_,re,v,Oa,se),sa=Mt(j,k,v,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((We=>We.cardHolderUserId===D?.userId)).filter((We=>We.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&&v&&ra.fetchState!=="Completed"||ee.trackCardsCardListView(P,ut,Ke,ze,sa)}),[ue,Oa,se.fetchState,ra.fetchState,v]),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),Wt=K=>{c(K)},Zr=Q.creditAccount.limit,Yr=()=>{b(!1),s("..")},Wr=C.companyChargeCardInfo?.info!=null&&ya({cardInfo:C.companyChargeCardInfo.info,isProductVisible:_&&be,isTOSAccepted:Te,isSetupEnabled:re,isUserHasCardsAdminLevelAccess:v,isUserHasCardsAccess:Yt}),qr=C.companyDebitCardInfo?.info!=null&&ya({cardInfo:C.companyDebitCardInfo.info,isProductVisible:j&&pe,isTOSAccepted:Ie,isSetupEnabled:k,isUserHasCardsAdminLevelAccess:v,isUserHasCardsAccess:Yt}),Jr=Wr||qr,qt=(function(K){const{isEmptyCardsState:je,isChargeCardAdmin:We,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&&We)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,We,je,en,nn,mn,pn,Cn,dn,un,ln,on])})({isEmptyCardsState:ye,isChargeCardAdmin:v,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,We)=>{We.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&&v)||ra.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!_||se.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!v||ka.fetchState==="Completed",paymentInitiatedDate:se.initiatedRepaymentDate}):null,o.jsxs(hi,{children:[o.jsx(Ae,{isAppContentDrawerOpen:S,handleDrawerToggle:Wt}),o.jsx(fi,{...as,isCashbackFeatureEnabled:y,isChargeCardFeatureEnabled:_,isDebitCardFeatureEnabled:j,isCreditCardProductVisibleForExpressInterest:W,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:v,includeCreditAccountDebitSummaryAndCashbackInfo:I,onClickMenuIcon:()=>{Wt(!0)},creditLimit:Zr,isChargeCardSetupEnabled:re,isChargeCardEnabledOnCompany:be,isDebitCardSetupEnabled:k,isDebitCardEnabledOnCompany:pe,isEarlyPayEnabled:g,isChargeCardPaymentHistoryFeatureEnabled:R,cashbackRate:ae,controllerEmails:P,chargeCardCashbackDetailState:ka,depositAccountListWithDebitCardIssued:ra,isChargeCardTOSAccepted:Te,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:v&&M?()=>a(yi(C.tenantEmailDomain)):void 0,isPolicyIntroTooltipVisible:Ua,onPolicyIntroTooltipClose:Y,pendingCreationCount:Se})]})]}):(Te||Ie)&&v===!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((T=>ge(T))),b=d((T=>sr(T))),[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((T=>Ca(T,U,E&&S,w&&y))),R=r.useMemo((()=>{const T=g.cards.filter((P=>P.type.code.includes("debit")));return[...new Set(T.map((P=>P.connectedAccountId)))]}),[g.cards]),G=d((T=>ma(T))),M=d((T=>at(T,R))),{creditAccountRepayment:L}=d((T=>ua(T))),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]),Z=g.creditAccount.balance.amount+g.creditAccount.hold.amount,_=r.useMemo((()=>C!=null?b.repaymentHistory.find((T=>T.cardRepaymentId===C)):void 0),[C,b.repaymentHistory]),W=r.useCallback((T=>{O(T),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),v={events:ha($,Gr),eventCallback:(T,P,ae)=>{ae.onEventReceived(T)},onSubscribed:T=>{T.onPusherSubscribed()}};return o.jsxs(o.Fragment,{children:[B?o.jsx(Kt,{closeDrawerHandler:N,isPaymentDrawerOpen:B,pageName:"Payment History",sourcePage:"cardPaymentHistory",creditAccountSpentAmount:Z,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,{...v,location:a,navigate:e,accountInfoByAccountId:b.accountInfoByAccountId,onRetryPaymentClick:W})]})}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-e6rGc1UF.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(
|
|
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(Tt())}),[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,[$,v]=N.split("-"),T=l.statements[0].period,[P,ae]=T.split("-");h=`${En[parseInt(v)-1]} ${$}`,H=`${En[parseInt(ae)-1]} ${P}`}const Z=ea(I,c,k,V),_=xa(I,V,!0,t,s),W=Mt(c,k,!0,R,G);ee.trackCardsCreditCardStatementsView(y,Z,{numberOfStatements:l.statements.length,oldestStatementMonthYear:h,latestStatementMonthYear:H},_,W)}}),[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 va(100,58)},Pi=({appContent:e})=>{const a=Ta(),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(To()),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(vo({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=>Wa(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)),Z=()=>{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 v=zt($),T=O.current;if(N===pa){const ae=ce(v?.card_id)??M;if(ae!=null){const Ce=Zt(v,ae);if(Ce!=null)return n(vt(Ce)),void(ae!==M||T||Z())}}if(N===ct)return void n(Ne(!0));const P=ce(v?.card_id)??M;(M==null||P===M)&&M!=null?T||Z():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(Z,3e3)}),[G,R.updateStatus.fetchState]);const W=N=>{x(N)};if(y!=="Completed"||V.cards.length===0)return o.jsxs(An,{children:[o.jsx(Ae,{isAppContentDrawerOpen:p,handleDrawerToggle:W}),o.jsx(fc,{})]});if(i==null)throw Error("Can't access my userId.");return o.jsxs(An,{children:[o.jsx(Ae,{isAppContentDrawerOpen:p,handleDrawerToggle:W}),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:()=>{W(!0)}}),e!=null?o.jsx(Ti,{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),Ti=He.div`
|
|
35
35
|
display: flex;
|
|
36
36
|
flex-direction: column;
|
|
37
37
|
width: ${e=>`${_i.containerWidth.value(e.windowSize)}%`};
|
|
@@ -44,10 +44,10 @@ import{j as o}from"./liveblocks-e6rGc1UF.js";import{u as le,j as d,h as ie,g as
|
|
|
44
44
|
flex-direction: column;
|
|
45
45
|
align-items: center;
|
|
46
46
|
background-color: ${e=>e.theme.colors.grey4};
|
|
47
|
-
`,
|
|
47
|
+
`,vi={containerWidth:new va(100,58)},Fi=({appContent:e})=>{const a=Ta(),n=le(),t=ie(),{cardId:s}=Ve(),f=me(),{useDynamicConfig:b,useFeatureGate:m}=de(),[A,u]=r.useState(!1),[l,B]=r.useState(!1),[D,C]=r.useState(!1),[O,U]=r.useState(!1),S=te.getSignedInUser();if(S==null)throw Error("Can't access onboarding card page without signing in...");const c=d((h=>ge(h)));if(s==null)throw Error("Empty card id is not valid...");const{configValue:p}=b(Xe.zeniCardsConfig),x=d((h=>Lo(h,s))),{isFeatureEnabled:E}=m(q.isChargeCardFeatureEnabled),{isFeatureEnabled:I}=m(q.isDebitCardFeatureEnabled),k=Be(I,c),V=Oe({isDebitCardFeatureEnabled:I,isBankingOnlyTenant:k}),w=xe(c),y=Le(c),F=c.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,i=Ue({isCardsOnlyTenant:w,isChargeCardFeatureEnabled:E,isBookKeepingTenant:y,isDebitCardProductVisible:V,chargeCardsCreditAccountLimit:F}),g=x.chargeCard,R=d((h=>h.chargeCardConfigState.fetchState));r.useEffect((()=>{A===!1&&R!=="In-Progress"&&R!=="Completed"&&(n(qa()),u(!0)),l===!1&&x.fetchState==="Not-Started"&&(B(!0),n(Ia(s,!1,i)))}),[l,x.fetchState,A,R]);const G=g?.type.code==="business_physical_debit_card"||g?.type.code==="business_virtual_debit_card";r.useEffect((()=>{if(x.fetchState==="Completed"){if(D===!1&&(G===!1||G&&g.status?.code!=="active"||G&&g.status.code==="active"&&g.isPinSet||g.cardHolderUserId!==S.userId)){const h=_e(c.tenantEmailDomain,s,S,g,!0),H=Ee(f.state?.pathnameStackToGoBack,f.pathname);t(h,{state:{pathnameStackToGoBack:H}})}else if(D&&x.isRefreshingViewInBackground===!1&&g?.isPinSet===!0){n(Bo({chargeCardId:s}));const h=_e(c.tenantEmailDomain,s,S,g,!0),H=Ee(f.state?.pathnameStackToGoBack,f.pathname);n(Ja()),t(h,{state:{pathnameStackToGoBack:H}})}}}),[x.fetchState,g?.type.code,D,x.isRefreshingViewInBackground]);const M=te.getZeniOtpTokenForCardHolder(s),L=d((h=>Vn(h.userState,S.userId))),z=()=>{g?.isPinSet!==!0&&n(ga(s,!0))};r.useEffect((()=>{x.updateDebitCardPinAttemptFetchState.fetchState==="Completed"&&(setTimeout(z,3e3),C(!0))}),[x.updateDebitCardPinAttemptFetchState.fetchState]);const j=h=>{U(h)};if(R!=="Completed"||g==null)return o.jsx(wa,{fetchState:"In-Progress"});if(L?.phone==null)throw Error("Can't access user phone number.");return o.jsxs(Bi,{children:[o.jsx(Ae,{isAppContentDrawerOpen:O,handleDrawerToggle:j}),o.jsx(xi,{cardId:s,card:g,phone:L.phone,signedInUser:S,isSandboxEnv:Bt(),debitCardDetailState:x,signedInUserToken:M,navigate:t,currentTenant:c,location:f,chargeCardCashbackRatePerTransaction:p.charge_card_cashback_rate_per_transaction!=null?p.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{j(!0)}}),e!=null?o.jsx(Li,{windowSize:a,children:e}):null]})},xi=Pe((function(e,{debitCardDetailState:a,cardId:n}){const t=Hn(e,n),s=a.updateStatus,f=Ca(e,!1,!1,!1);let b=!1;return f.fetchState==="Completed"&&f.cards.length<=1&&(b=!0),{showMenuIcon:b,vgsVaultId:nt.cardVaultId,twoFAView:t,setPinWaitStatus:s}}),(function(e,a){const{navigate:n,cardId:t,location:s,currentTenant:f,debitCardDetailState:b}=a,m=b.chargeCard?.cardProviderID,{tenantEmailDomain:A}=f;return{onGetOtp:u=>{m!=null&&e(et(u,"ChargeCardHolder",t))},onUpdateDebitCardPinAttempt:u=>{e(qn(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)},onSetPinSuccess:()=>{e(Ro({chargeCardId:t}))},onBackClick:()=>{const u=we(s.state?.pathnameStackToGoBack),l=u.poppedPathname==null||u.poppedPathname.includes("activate")===!0?na(A):u.poppedPathname;n(l,{state:{pathnameStackToGoBack:u.newStack}})}}}))(bc),Li=He.div`
|
|
48
48
|
display: flex;
|
|
49
49
|
flex-direction: column;
|
|
50
|
-
width: ${e=>`${
|
|
50
|
+
width: ${e=>`${vi.containerWidth.value(e.windowSize)}%`};
|
|
51
51
|
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
52
52
|
box-shadow: ${e=>`${za.sp0} 2px ${za.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
53
53
|
`,Bi=He.div`
|
|
@@ -59,7 +59,7 @@ import{j as o}from"./liveblocks-e6rGc1UF.js";import{u as le,j as d,h as ie,g as
|
|
|
59
59
|
align-items: center;
|
|
60
60
|
background-color: ${e=>e.theme.colors.grey4};
|
|
61
61
|
box-shadow: ${e=>`${za.sp0} 2px ${za.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
62
|
-
`,Ri={overlayWidth:new
|
|
62
|
+
`,Ri={overlayWidth:new va(pt[12],pt[12],pt[9])},Oi=Pe((function(e,a){const n=xt(e,!1,!1),t=a.lineId,s=n.customAddress[t],f=n.customAddressStatus[t]??{fetchState:"Not-Started",error:void 0};return{googleAPIKey:a.googleAPIKey,customAddress:s,customAddressStatus:f,lineId:t}}),(function(e,a){const{newCustomAddressId:n,lineId:t,chargeCardTypeOption:s}=a;return{onSubmitHandler:f=>{n!=null&&e(lr(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`));const b=Lc(f);e(jo({addressType:`${s==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`,addressToCreate:b})),e(Mo(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`))},onDismissClick:()=>{a.onDismissClick(),n!=null&&e(Uo({addressId:n,cardLineId:t,cardType:s==="creditCard"?"business_physical_credit_card":"business_physical_debit_card"}))}}}))(Sc),Ui=({lineId:e,closeDrawerHandler:a,chargeCardTypeOption:n})=>{const t=Rt(),s=Ta(),f=()=>{a()},b=d((m=>Oo(`${n==="creditCard"?"credit":"debit"}_custom_shipping_${e}_address`,m)))?.newAddressId;return o.jsx(Er,{anchor:"right",open:e.length>0,PaperProps:{style:{minWidth:Ri.overlayWidth.valuePercentage(s),boxShadow:"none",zIndex:8}},slotProps:{backdrop:{style:{opacity:.75,backgroundColor:t.colors.black,cursor:"pointer"}}},onClose:(m,A)=>(A==="backdropClick"||A==="escapeKeyDown")&&f(),children:o.jsx(Oi,{googleAPIKey:nt.googleMapsAPIKey,onDismissClick:f,lineId:e,chargeCardTypeOption:n,newCustomAddressId:b})})},ji=Pe((function(e,a){const{isChargeCardFeatureEnabled:n,isDebitCardFeatureEnabled:t,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:f,isChargeCardSetupEnabled:b,isDebitCardSetupEnabled:m}=a,A=xt(e,n&&b,t&&m);return{issueChargeCards:A,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:f,isDebitCardFeatureEnabled:t,isChargeCardFeatureEnabled:n,isChargeCardSetupEnabled:b,isDebitCardSetupEnabled:m,cardHolderCandidates:A.userList.map((u=>u.user)).filter(Boolean),allRoles:A.userList.map((u=>u.userRole)),allAccountingClasses:A.allAccountingClasses,userList:A.userList}}),(function(e,a){return{onIssueCardClick:()=>{e(Ho())},onSaveChangesToLocalStore:n=>{e(Vo(n))},onDismissClick:()=>{e(ur()),a.navigate("../")},resetCustomAddressByLineID:(n,t)=>{e(lr(`${t==="creditCard"?"credit":"debit"}_custom_shipping_${n}_address`))},openAddAddressDrawerHandler:a.openAddAddressDrawerHandler}}))(kc);function Mi(){const e=te.getSignedInUser(),a=ie(),n=le(),t=yc(),[s]=Dn(),f=s.get("cardType"),{useFeatureGate:b}=de(),{isFeatureEnabled:m}=b(q.isIssuePhysicalCardEnabled),{isFeatureEnabled:A}=b(q.isIssuePhysicalDebitCardEnabled),{isFeatureEnabled:u}=b(q.isDebitCardFeatureEnabled),{isFeatureEnabled:l}=b(q.isChargeCardFeatureEnabled),B=d((z=>ge(z))),D=Be(u,B),C=Oe({isDebitCardFeatureEnabled:u,isBankingOnlyTenant:D}),O=xe(B),U=Le(B),S=B.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,c=Ue({isCardsOnlyTenant:O,isChargeCardFeatureEnabled:l,isBookKeepingTenant:U,isDebitCardProductVisible:C,chargeCardsCreditAccountLimit:S}),[p,x]=r.useState(!1);if(e==null)throw Error("Can't access issue card page without signing in...");r.useEffect((()=>{p||(x(!0),n(No(C&&I,c&&E,!1)))}),[p,x,n]);const E=!!B.companyChargeCardInfo?.info?.isChargeCardEnabled,I=!!B.companyDebitCardInfo?.info?.isDebitCardEnabled,k=d((z=>xt(z,c&&E,C&&I))),V=k.fetchState,w=k.issueCardStatus.fetchState,y=k.lastSelfIssuedDebitCardId,F=d((z=>y!=null?dr(z.chargeCardState,y):void 0)),[i,g]=r.useState(null),[R,G]=r.useState(null),M=()=>{g(null)},L=(z,j)=>{g(z),G(j)};return r.useEffect((()=>{if(w==="Completed"){if(y!=null&&F?.type.code==="business_virtual_debit_card"){let z;z=F?.status.code==="request_on_hold"&&e.userId===F.cardHolderUserId?Pr(B.tenantEmailDomain):_e(B.tenantEmailDomain,y,e,F),a(z)}else a("../");n(ur())}}),[w,y]),V==="Completed"?o.jsxs(o.Fragment,{children:[i!==null&&R!==null?o.jsx(Ui,{closeDrawerHandler:M,lineId:i,chargeCardTypeOption:R}):null,o.jsx(ji,{themeState:t,isIssuePhysicalCardEnabled:m,isIssuePhysicalDebitCardEnabled:A,isDebitCardFeatureEnabled:C,isChargeCardFeatureEnabled:c,isChargeCardSetupEnabled:E,isDebitCardSetupEnabled:I,navigate:a,fetchState:k.fetchState,openAddAddressDrawerHandler:L,defaultCardType:f==="creditCard"||f==="debitCard"?f:void 0})]}):V==="Error"?o.jsx(st,{}):o.jsx(Ic,{})}const Kr=[pa,ct],Ni=new Set(Kr),Vi=He.div`
|
|
63
63
|
display: flex;
|
|
64
64
|
height: 100vh;
|
|
65
65
|
width: 100%;
|
|
@@ -68,4 +68,4 @@ import{j as o}from"./liveblocks-e6rGc1UF.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=Zt(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,Z=!!O.companyChargeCardInfo?.info?.isChargeCardEnabled,_=!!O.companyDebitCardInfo?.info?.isDebitCardEnabled,W=!!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:Z,isUserHasCardsAdminLevelAccess:v,isUserHasCardsAccess:P}),pe=O.companyDebitCardInfo?.info!=null&&ya({cardInfo:O.companyDebitCardInfo.info,isProductVisible:i&&H,isTOSAccepted:W,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"&&(Z||R===!1&&_)||oe==="debit"&&_||oe==="debit_and_credit"&&_&&Z?a("../"):(oe==="debit_and_credit"&&j===!0&&W===!0||oe==="credit"&&(j===!0||R===!1&&W===!0)||oe==="debit"&&W===!0)&&v===!0&&a("../setup")}),[M,Z,_,oe,j,W]),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,_,Z);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&&!Z||!!i&&!_||!!R&&!!i&&!_&&!Z){const J=zi({isDebitCardSetupEnabled:_,isChargeCardSetupEnabled:Z,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:Z,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&&Zo(a?.userRole),F=(a?.company==null||a.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!y)&&Yo(c?.loggedInUserRoleMap),i=Wo(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),Z=a.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:t,isBookKeepingTenant:H,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:Z}),W=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}),$=W||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(Zc,{})}),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(Tt()),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=Zt(j,h);if(H!=null)return void a(vt(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,Z=!!O.companyChargeCardInfo?.info?.isChargeCardEnabled,_=!!O.companyDebitCardInfo?.info?.isDebitCardEnabled,W=!!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 v=Re(),T=Fe(v?.loggedInUserRoleMap),P=Ft(v?.loggedInUserRoleMap),[ae,Ce]=r.useState(!1),[X,Te]=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||(Te(!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:Z,isUserHasCardsAdminLevelAccess:T,isUserHasCardsAccess:P}),pe=O.companyDebitCardInfo?.info!=null&&ya({cardInfo:O.companyDebitCardInfo.info,isProductVisible:i&&H,isTOSAccepted:W,isSetupEnabled:_,isUserHasCardsAdminLevelAccess:T,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"&&(Z||R===!1&&_)||oe==="debit"&&_||oe==="debit_and_credit"&&_&&Z?a("../"):(oe==="debit_and_credit"&&j===!0&&W===!0||oe==="credit"&&(j===!0||R===!1&&W===!0)||oe==="debit"&&W===!0)&&T===!0&&a("../setup")}),[M,Z,_,oe,j,W]),r.useEffect((()=>{Ie||(f(Ko("cardAdmin")),re(!0))}),[Ie]);const fe=d((J=>rr(J.userState,J.userRoleState,J.userListViewState,"cardAdmin"))),ve=ea(R,i,_,Z);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&&!Z||!!i&&!_||!!R&&!!i&&!_&&!Z){const J=zi({isDebitCardSetupEnabled:_,isChargeCardSetupEnabled:Z,isCreditCardProductVisibleForExpressInterest:R,isDebitCardProductVisible:i});ee.trackCardsPromoView(S,ve,"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:Z,isDebitCardSetupEnabled:_,companyLegalName:O.companyName,adminList:fe.users,isCheckingEnabled:z,navigate:a,companyId:x,cardPromoType:De,controllerEmails:S,productInformation:ve,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((v=>ge(v))),{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&&Zo(a?.userRole),F=(a?.company==null||a.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!y)&&Yo(c?.loggedInUserRoleMap),i=Wo(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),Z=a.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Ue({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:t,isBookKeepingTenant:H,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:Z}),W=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}),$=W||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(Zc,{})}),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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as m}from"./liveblocks-2F3ER8H4.js";import{a as g}from"./sentry-Dwi3Xpu2.js";import{h as w,u as x,g as T,i as k,j as O,l as E}from"./core-BmXpopk3.js";import{z as D,bu as F,a9 as P,m as V,U as j,s as C,bv as L,af as A,aH as U,p as B}from"./index-BH7Z90Ry.js";import{fF as b,gI as M,BE as _,gD as z,c8 as R,Yw as Y,bn as G,uX as H,uL as X,mz as Z,o8 as S,Yx as $,bE as q,cE as N,oj as J,ot as K}from"./zeni-epic-state-DtY6MD5C.js";import"./mui-DpZKsKJ-.js";import{d as Q}from"./routePaths-DuFLBwyX.js";import{M as W}from"./MobileAppDrawer-thURFqdR.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]="f2e6e0b0-facc-41d8-86d1-09999569a143",t._sentryDebugIdIdentifier="sentry-dbid-f2e6e0b0-facc-41d8-86d1-09999569a143")}catch{}})();const ee=E((function(t){const a=z(t),i=D.getSignedInUser(),p=b(t),c=p.tenantId,l={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:c??""},f=R(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:G(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(K())},onAddressClick:e=>{const n=Q(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?N(u):void 0,meetingLink:y!=""&&y!=null?N(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(X(e))},onEditFileName:(e,n)=>{t(H(e,n.split(".")[0]))}}}))(L);function de(){const t=w(),a=x(),i=T(),{tenantEmailDomain:p}=k(),[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=>b(s))),d=r.companyId??D.getSignedInUserTenant(p)?.companyId;if(D.getSignedInUser()==null)throw Error("Can't access company details page without signing in...");g.useEffect((()=>{c||n!=="Not-Started"||d==null||(l(!0),a(M(d)))}),[c,n,d,a]),g.useEffect((()=>{o==="Not-Started"&&a(_())}),[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(j.Event.companyPassport,C(i)?"Settings":"Company Passport")}),C(i)?m.jsx(W,{isAppContentDrawerOpen:f,handleDrawerToggle:u}):null,m.jsx(ee,{companyId:d,navigate:t,location:i,isLoading:y,currentTenant:r,isSettings:C(i),onClickMenuIcon:()=>{u(!0)}})]})}export{de as C};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{j as I}from"./liveblocks-2F3ER8H4.js";import{a as o}from"./sentry-Dwi3Xpu2.js";import{u as P,h as R,g as H,j as C,N as w}from"./core-BmXpopk3.js";import{U5 as q,fF as z,gl as G,pS as M,gM as U,gk as Q,gi as V,Uv as B,gh as A}from"./zeni-epic-state-DtY6MD5C.js";import{u as J,z as E,L as D,G as K,I as W}from"./index-BH7Z90Ry.js";import{n as X}from"./mui-DpZKsKJ-.js";import{P as h,a as T}from"./AccountMappingScreen-C_GVFaoh.js";import{t as Y}from"./getLocaleForTenant-CLcFXXBi.js";import{g as Z,Q as ee}from"./QBOConnectionScreen-zn7s2M2b.js";import"./recharts-lgPPofcu.js";import"./analytics-CVpLIXYS.js";import"./plaid-B0sfsJHV.js";import"./dnd-CFbFq_On.js";import"./stripe-cKAAJElX.js";import"./lottie-Do5BYuHO.js";import"./lexical-CUqOWG_f.js";import"./pdf-CaVqV5T4.js";import"./utils-DAgs23EZ.js";import"./MobileAppDrawer-thURFqdR.js";import"./InboxNotificationsProvider-jZPrqdDf.js";import"./useTaskManagerAccess-DvrYqbN3.js";import"./accountMappingHelper-D5I8xPpR.js";import"./empty-0E71-pkh.js";import"./pdf-lib-DgpGz3__.js";import"./index-_EB0AYfG.js";import"./url-CuCw2GYz.js";import"./index-Diiw4rJ6.js";import"./decodeURIComponentSafe-CmNiiSLm.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]="c2dd8f52-80f1-44c3-86b5-d3a892695ecc",t._sentryDebugIdIdentifier="sentry-dbid-c2dd8f52-80f1-44c3-86b5-d3a892695ecc")}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=P(),i=R(),_=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:F}=Z(_.search),f=O!==""&&$!==""&&F!=="";f&&(N.current=!0);const j=sessionStorage.getItem(h),u=j===T.pending,L=j===T.ready,b=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,y=e.externalConnections?.accounting[0]?.isValid;o.useLayoutEffect((()=>{d(D.CONNECTION_AUTH)}),[d]),o.useEffect((()=>{S.current||a==null||g==null||(S.current=!0,n==="Completed"||r!=="Not-Started"&&r!=="Error"||(d(D.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(M(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(D.CONNECTION_AUTH),t(U(a.userId,e.tenantId)))}),[c]),o.useEffect((()=>{n!=="Completed"&&r!=="Completed"||a==null||e?.tenantId==null||(t(Q(e.tenantId)),E.saveActiveTenantDomainForUser(e.tenantEmailDomain),V(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((()=>{b.tenantsCoreDetailsInOrder.length>0&&n==="Completed"&&E.saveSignedInUserTenants(b.tenantsCoreDetailsInOrder)}),[b.tenantsCoreDetailsInOrder.length,n]);const v=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||v)return;const s=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return p.current&&c==="Completed"?(sessionStorage.setItem(h,T.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||y!==!0||(sessionStorage.removeItem(h),t(A({messageSection:"accounting_projects_qbo_reconnect_failed",messageText:"failed",type:"error"})),m(),i(s,{replace:!0})))}),[u,v,c,f,y,e.tenantEmailDomain,m,t,i]),v)return null;if(f||y!==!0)return I.jsx(te,{children:I.jsx(ee,{})});if(u)return null;const k=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return L?I.jsx(w,{to:k,replace:!0}):I.jsx(w,{to:"/",replace:!0})}export{we as default};
|