@zeniai/web-app-ui 5.1.58-qa → 5.1.59-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AddressRoutes-1t80Lwwm.js +1 -0
- package/dist/assets/AddressScreen-fWJCm4zs.js +9 -0
- package/dist/assets/AiCfoScreen-RA-P0Ele.js +22 -0
- package/dist/assets/BillPayApprovalRoutes-Bv9HP5Ed.js +1 -0
- package/dist/assets/BillPayRoutes-DM71-NMQ.js +119 -0
- package/dist/assets/BusinessVerificationPageScreen-9FWcKpyL.js +9 -0
- package/dist/assets/CardsAiCfoScreen-CJUAzHrT.js +14 -0
- package/dist/assets/ChargeCardRoutes-BKCoQWOu.js +71 -0
- package/dist/assets/CompanyPassportScreen-Z-knYrxv.js +1 -0
- package/dist/assets/ConnectionAuthScreen-Cev1gkS_.js +11 -0
- package/dist/assets/CustomerOnboardingAuthScreen-GZfWR-j7.js +1 -0
- package/dist/assets/CustomerOnboardingRoutes-BTm1Abhx.js +30 -0
- package/dist/assets/DashboardRoutes-wMhkTYla.js +20 -0
- package/dist/assets/DefaultTenantHome-ClYhyRXO.js +1 -0
- package/dist/assets/DomesticWireDetailScreen-Cl_7XBwW.js +18 -0
- package/dist/assets/DrawerScreen-DqnvN1tq.js +1 -0
- package/dist/assets/EntityDetailRoutes-Dy54l33K.js +1 -0
- package/dist/assets/ExpenseAutomationRoutes-BAwf_5XR.js +25 -0
- package/dist/assets/FeaturePreviewScreen-DCDhII3I.js +1 -0
- package/dist/assets/HubSpotOAuthCallbackScreen-rLAbttjN.js +1 -0
- package/dist/assets/MagicLinkRoutes-B-PPv0PR.js +72 -0
- package/dist/assets/MagicLinkSignInScreen-DlEpGGzi.js +12 -0
- package/dist/assets/MobileAppDrawer-CDYOk1Tu.js +1 -0
- package/dist/assets/NotFoundScreen-DTvgxtkb.js +1 -0
- package/dist/assets/NotificationRoutes-ye5VX3PS.js +1 -0
- package/dist/assets/OAuthConsentScreen-DF7q2wgy.js +1 -0
- package/dist/assets/PandLWithForecastRoutes-DZnjcm2C.js +1 -0
- package/dist/assets/PeopleRoutes-Cshc61GL.js +22 -0
- package/dist/assets/PerformanceRoutes-UE1AlGRc.js +1 -0
- package/dist/assets/{Preview-KE8R1SN3.js → Preview-COCp1vn_.js} +1 -1
- package/dist/assets/{QBOConnectionScreen-CGgBpuke.js → QBOConnectionScreen-ClD_YrtC.js} +1 -1
- package/dist/assets/ReferralListScreen-BQiDRb4Q.js +5 -0
- package/dist/assets/ReimbursementApprovalRoutes-B02Z7OIU.js +1 -0
- package/dist/assets/ReimbursementApprovalRuleDetailScreen-CrNxSCRL.js +1 -0
- package/dist/assets/{ReimbursementRoutes-MbRZIHuu.js → ReimbursementRoutes-BDTp98VH.js} +12 -12
- package/dist/assets/ReportsRoutes-utyUVcdp.js +1 -0
- package/dist/assets/RewardsRoutes-B0tydv2M.js +1 -0
- package/dist/assets/ScreenRoutes-C_5gtCcR.js +2 -0
- package/dist/assets/SettingsRoutes-CItpcp8o.js +57 -0
- package/dist/assets/SetupPagesScreen-Cb_h1N2q.js +29 -0
- package/dist/assets/SignInScreen-DayaVPul.js +1 -0
- package/dist/assets/SignOutScreen-DfnourF6.js +9 -0
- package/dist/assets/TaskListScreen-DVU-iHmP.js +9 -0
- package/dist/assets/TaskRoutes-DECOOPQm.js +9 -0
- package/dist/assets/TransactionDetailRoutes-Ln9HzXsS.js +1 -0
- package/dist/assets/TransactionDetailScreen-qgLSqSNT.js +5 -0
- package/dist/assets/TransactionListRoutes-BqwHG3AV.js +1 -0
- package/dist/assets/TreasuryRoutes-DxBKr4aJ.js +37 -0
- package/dist/assets/{VendorsRoutes-BjMVmZbA.js → VendorsRoutes-BvKCtUVO.js} +26 -26
- package/dist/assets/WiseConfirmationScreen-DGdciAcq.js +12 -0
- package/dist/assets/ZeniAccountRoutes-4nzGey-r.js +73 -0
- package/dist/assets/ZeniAccountStatementScreen-C-juTt6c.js +9 -0
- package/dist/assets/{accountMappingHelper-B_qiWmeW.js → accountMappingHelper-BFxOrTVK.js} +1 -1
- package/dist/assets/{analytics-BUNQWYXz.js → analytics-BToIaEuE.js} +1 -1
- package/dist/assets/{analyticsHelper-DNuTbD5B.js → analyticsHelper-DE1SyLO3.js} +1 -1
- package/dist/assets/{core-C8Y7fm3n.js → core-CJUY0MOY.js} +2 -2
- package/dist/assets/{decodeURIComponentSafe-pK1yrQsS.js → decodeURIComponentSafe-BXzU7C-M.js} +1 -1
- package/dist/assets/dnd-LV5QvpgJ.js +6 -0
- package/dist/assets/{empty-CTn7RkAu.js → empty-BrON4VTN.js} +1 -1
- package/dist/assets/{index-DhPN3gNQ.js → empty-DZsqgfyL.js} +1 -1
- package/dist/assets/{emptyVideoElement-BE2d8kYR.js → emptyVideoElement-D28OtmxE.js} +1 -1
- package/dist/assets/epic-DUxvu9Sx.js +2 -0
- package/dist/assets/getLocaleForTenant-BxE1cnSw.js +1 -0
- package/dist/assets/index-3T7v0Kjw.js +1 -0
- package/dist/assets/{index-CyWBxegb.js → index-6y2Ha7q4.js} +1 -1
- package/dist/assets/{index-C_oqefR-.js → index-7lEXxVMw.js} +1 -1
- package/dist/assets/{index-C3-objML.js → index-B2ukUPdb.js} +44600 -39007
- package/dist/assets/{index-DjeTRCsF.js → index-BUVIqiRA.js} +1 -1
- package/dist/assets/{index-R6GjjTB3.css → index-BUmr5maU.css} +1 -1
- package/dist/assets/{index-eBlD3uTi.js → index-CQBukgOK.js} +1 -1
- package/dist/assets/index-LSEqxgWI.js +1 -0
- package/dist/assets/{index-Cv6pmWIm.js → index-N--zv7t4.js} +2 -2
- package/dist/assets/{lexical-CPmqnx9k.js → lexical-Cmpx8sPR.js} +1 -1
- package/dist/assets/{liveblocks-fDjf6Tur.js → liveblocks-qa_6WStS.js} +1 -1
- package/dist/assets/{lottie-DmArr_jQ.js → lottie-zGjtu-Uw.js} +1 -1
- package/dist/assets/{mui-Ky-KJxLh.js → mui-CkYYTJAV.js} +1 -1
- package/dist/assets/{pathToGoBack-9QBEItSt.js → pathToGoBack-BPCNomFS.js} +1 -1
- package/dist/assets/{pdf-NvioK7wV.js → pdf-CZjXUklc.js} +3 -3
- package/dist/assets/{pdf-lib-6uw_qC-k.js → pdf-lib-1-yXS4qt.js} +1 -1
- package/dist/assets/{plaid-D50ZkdQf.js → plaid-1xV6OFdB.js} +1 -1
- package/dist/assets/{pusher-CAUUsTgW.js → pusher-D2ak7eHg.js} +1 -1
- package/dist/assets/{react-C7YWBeDO.js → react-BQ9185Ee.js} +1 -1
- package/dist/assets/{react-CzlxEg73.js → react-BSs2nIas.js} +1 -1
- package/dist/assets/{react-CHUA3ysh.js → react-BihdrB0K.js} +1 -1
- package/dist/assets/{react-BX04XLg-.js → react-CBo1BYNF.js} +1 -1
- package/dist/assets/{react-DsRQdKTx.js → react-COkOWomn.js} +1 -1
- package/dist/assets/{react-BzVo9cuE.js → react-CVnQTP0R.js} +1 -1
- package/dist/assets/{recharts-CgIjuHOA.js → recharts-D3JK2Byj.js} +3 -3
- package/dist/assets/{routePaths-B8EWQXPr.js → routePaths-DbnM8jAc.js} +1 -1
- package/dist/assets/{sentry-DjzU4p1F.js → sentry-BTf2Dtmp.js} +1 -1
- package/dist/assets/{url-mCw4Y0mb.js → url-CnoP6Bkx.js} +1 -1
- package/dist/assets/{url-DBETAWzw.js → url-DbiWYN-9.js} +1 -1
- package/dist/assets/useAiCfoDashboardSuggestedQuestionsChips-C9aknKEV.js +1 -0
- package/dist/assets/{useAskAiCfoHostNavButtonProps-DDzinN2F.js → useAskAiCfoHostNavButtonProps-DUCZkKew.js} +1 -1
- package/dist/assets/useCashManagementBanner-Bqm1UKHq.js +1 -0
- package/dist/assets/useChargeCardPusherEvents-Bxg7wg9x.js +1 -0
- package/dist/assets/{useDeviceId-DBHwhChu.js → useDeviceId-D5q7Ex2B.js} +1 -1
- package/dist/assets/useEmailConnectResultRefresh-BGSh8M-E.js +1 -0
- package/dist/assets/useInitialThreadRequest-CcPLE3h6.js +1 -0
- package/dist/assets/{utils-Djk4rnCT.js → utils-Bd6aVUzu.js} +2 -2
- package/dist/assets/withTransactionSidePanel-RlHJMQ4A.js +21 -0
- package/dist/assets/zeni-epic-state-Da9EwYbz.js +13 -0
- package/dist/index.html +1 -1
- package/package.json +4 -4
- package/dist/assets/AddressRoutes-CPX14XSj.js +0 -1
- package/dist/assets/AddressScreen-V8qhbu9d.js +0 -9
- package/dist/assets/AiCfoScreen-B2v4oX4h.js +0 -22
- package/dist/assets/BillPayApprovalRoutes-B6jqtEYg.js +0 -1
- package/dist/assets/BillPayRoutes-CKtJupU-.js +0 -119
- package/dist/assets/BusinessVerificationPageScreen-DO1Qhw6D.js +0 -9
- package/dist/assets/ChargeCardRoutes-BHdVO9a5.js +0 -71
- package/dist/assets/CompanyPassportScreen-DkvfpbMw.js +0 -1
- package/dist/assets/ConnectionAuthScreen-DaGPpRPO.js +0 -11
- package/dist/assets/CustomerOnboardingAuthScreen-CD5LwsDH.js +0 -1
- package/dist/assets/CustomerOnboardingRoutes-CTpQNO2Q.js +0 -23
- package/dist/assets/DashboardRoutes-jRDsqXRC.js +0 -20
- package/dist/assets/DefaultTenantHome-_pdrgccv.js +0 -1
- package/dist/assets/DomesticWireDetailScreen-CCXVWOri.js +0 -18
- package/dist/assets/DrawerScreen-B7V2OyqL.js +0 -1
- package/dist/assets/EntityDetailRoutes-DfRfi9XQ.js +0 -1
- package/dist/assets/ExpenseAutomationRoutes-cFT1NB2O.js +0 -25
- package/dist/assets/FeaturePreviewScreen-2R9FJdWJ.js +0 -1
- package/dist/assets/HubSpotOAuthCallbackScreen-rd4Kj3vC.js +0 -1
- package/dist/assets/MagicLinkRoutes-BO0Lexxe.js +0 -72
- package/dist/assets/MagicLinkSignInScreen-BAuy3KLO.js +0 -12
- package/dist/assets/MobileAppDrawer-DIls_BW2.js +0 -1
- package/dist/assets/NotFoundScreen-D4Av36kV.js +0 -1
- package/dist/assets/NotificationRoutes-lCQFJz0z.js +0 -1
- package/dist/assets/OAuthConsentScreen-COgy1n70.js +0 -1
- package/dist/assets/PandLWithForecastRoutes-Bkidve9i.js +0 -1
- package/dist/assets/PeopleRoutes-B7wvEYYp.js +0 -22
- package/dist/assets/PerformanceRoutes-CjXTt9vm.js +0 -1
- package/dist/assets/ReferralListScreen-BA5RvLF7.js +0 -5
- package/dist/assets/ReimbursementApprovalRoutes-BGkN9M7Q.js +0 -1
- package/dist/assets/ReimbursementApprovalRuleDetailScreen-6mUow2wt.js +0 -1
- package/dist/assets/ReportsRoutes-BBKUYNc0.js +0 -1
- package/dist/assets/RewardsRoutes-BbXQsLmk.js +0 -1
- package/dist/assets/ScreenRoutes-BxoMc-Es.js +0 -2
- package/dist/assets/SettingsRoutes-DLxDXOLE.js +0 -57
- package/dist/assets/SetupPagesScreen-DLtasQoq.js +0 -29
- package/dist/assets/SignInScreen-CJnKhy_P.js +0 -1
- package/dist/assets/SignOutScreen-DNLOQn_i.js +0 -9
- package/dist/assets/TaskListScreen-G6lL0uD5.js +0 -9
- package/dist/assets/TaskRoutes-DQA7zeTW.js +0 -9
- package/dist/assets/TransactionDetailRoutes-yWhhHCBD.js +0 -1
- package/dist/assets/TransactionDetailScreen-gAhskOIn.js +0 -5
- package/dist/assets/TransactionListRoutes-CzgCZLFm.js +0 -1
- package/dist/assets/TreasuryRoutes-BmIGoFg4.js +0 -37
- package/dist/assets/WiseConfirmationScreen-Co4RuLhn.js +0 -12
- package/dist/assets/ZeniAccountRoutes-C_Otg4hI.js +0 -57
- package/dist/assets/ZeniAccountStatementScreen-BbupcIsJ.js +0 -9
- package/dist/assets/dnd-RzzQg6oJ.js +0 -6
- package/dist/assets/empty-Bs_WirIs.js +0 -1
- package/dist/assets/epic-CPnluZX0.js +0 -2
- package/dist/assets/getLocaleForTenant-CYgluMQL.js +0 -1
- package/dist/assets/index-BCOcxjVj.js +0 -1
- package/dist/assets/useAiCfoDashboardSuggestedQuestionsChips-DN1K5TAQ.js +0 -1
- package/dist/assets/useInitialThreadRequest-X7WpfR49.js +0 -1
- package/dist/assets/withTransactionSidePanel-BvWwtSm-.js +0 -21
- package/dist/assets/zeni-epic-state-DvHgUD1-.js +0 -13
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import{j as c}from"./liveblocks-qa_6WStS.js";import{h as de,g as Ce,i as Me,u as pe,j as o,N as ba,s as Dt,n as De,t as In,o as es,p as se}from"./core-CJUY0MOY.js";import{bt as Pe,RQ as as,RR as ts,eX as un,RS as kn,f4 as En,RT as An,RU as Dn,RV as _n,RW as Pn,f5 as wn,f6 as vn,RX as Tn,fg as Fn,fh as $a,RY as xn,RZ as ns,fa as rs,f9 as ss,R_ as cs,B_ as Bn,fj as ca,R$ as os,S0 as is,eZ as ds,eY as ls,fv as ze,fc as Rn,fb as Ln,S1 as us,fd as ms,Bv as Cs,Bu as ps,By as hs,BA as fs,fo as gs,eU as Un,S2 as Ss,S3 as bs,ft as On,S4 as ys,fu as bt,BG as Is,BD as ks,eV as fe,S5 as Qa,fy as we,fz as ve,fA as Te,gt as oa,cv as ia,S6 as da,S7 as _t,uN as za,kC as Ya,S8 as Za,Ce as ka,Cg as Qe,Ch as Pt,ks as jn,S9 as la,C2 as _a,Sa as Es,Sb as As,C5 as Ja,Sc as Ds,Qb as Xa,ff as Mn,Cb as ga,hS as _s,Sd as Nn,Se as ua,bo as Ps,Sf as ws,ge as et,gd as at,CL as vs,gc as tt,PT as Ts,Sg as Vn,co as Hn,cQ as Fs,Qa as wa,Dk as Gn,Sh as mn,CW as Pa,Si as $n,Dl as xs,QA as Bs,Dm as Rs,Er as Ls,u8 as Us,El as Os,Sj as js,Cf as ra,Sk as Ms,Sl as Ns,Sm as Vs,Sn as Hs,So as Gs,Sp as wt,Sq as $s,Cw as zn,Cp as zs,Sr as Ys,gv as Zs,CF as Yn,CJ as Zn,gu as Ks,Ss as Ws,D6 as Kn,St as qs,Su as Qs,Sv as Js,CH as Wn,Cs as qn,C8 as Qn,CB as Jn,Cz as Xn,CD as Xs,Sw as er,Sx as ec,fq as ac,fr as tc,fs as nc,Sy as nt,fk as ar,cR as vt,Sz as rc,SA as sc,SB as cc,SC as oc,CR as yt,Dd as ic,D9 as dc,CN as lc,Db as uc,D1 as mc,D3 as Cc,SD as tr,Dj as Ga,Ka as pc,SE as hc,SF as fc,SG as gc,SH as nr,SI as Sc,DG as bc,CV as rr,CQ as je,CU as yc,SJ as Ic,SK as kc,B$ as Ec,SL as sr,fe as cr,SM as Ac,C1 as Dc,C0 as Cn,SN as _c,SO as Pc,SP as wc,MH as vc,SQ as Tt,SR as Tc,xN as or,la as Fc,hI as xc,DL as Bc,SS as ir,f1 as Rc,f2 as Lc,ST as Uc,dh as Oc,fi as jc,DB as Mc,Dv as qe,bs as Nc,bJ as Vc,cA as Hc,bK as Gc,LU as $c}from"./zeni-epic-state-Da9EwYbz.js";import{I as Fe,cp as dr,k as _e,cq as lr,cr as ur,cs as zc,a as Xe,Z as Ft,ct as Yc,cu as Zc,Q as mr,c as Cr,X as pr,s as ye,W as le,U as K,ar as ya,cv as hr,cw as Kc,cx as Wc,z as re,w as va,ce as rt,cy as qc,cz as Qc,cA as Jc,q as Ta,aQ as Ye,br as xt,cB as Xc,y as Fa,i as st,m as Bt,d as J,a7 as ct,cC as eo,bE as Sa,cD as It,cE as ao,x as Rt,cF as to,au as fr,a2 as kt,cG as no,V as gr,f as Sr,cH as ro,cI as so,cJ as co,cK as oo,cL as io,cM as lo,o as Ka,cN as uo,cO as mo,cP as pt,$ as Co,cQ as po,cR as ho,cS as fo,cT as go,cU as So,a9 as bo}from"./index-B2ukUPdb.js";import{n as Ne,D as br,S as yo}from"./mui-CkYYTJAV.js";import{a as r}from"./sentry-BTf2Dtmp.js";import{u as xa}from"./useAskAiCfoHostNavButtonProps-DUCZkKew.js";import{M as Ie}from"./MobileAppDrawer-CDYOk1Tu.js";import{d as Lt}from"./recharts-D3JK2Byj.js";import{g as Ae,a as Ba,b as yr,c as xe,d as Be,e as Je,f as ea,h as aa,A as Io,i as Ut,P as ko,j as Ot,s as Ia,k as Ir,l as sa,m as kr,n as Eo,o as Er,p as Ao,S as pn}from"./SetupPagesScreen-Cb_h1N2q.js";import{u as Ar}from"./useInitialThreadRequest-CcPLE3h6.js";import ot from"./NotFoundScreen-DTvgxtkb.js";import{u as jt}from"./useChargeCardPusherEvents-Bxg7wg9x.js";import{n as hn}from"./utils-Bd6aVUzu.js";import{t as Do}from"./AddressScreen-fWJCm4zs.js";import"./analytics-BToIaEuE.js";import"./plaid-1xV6OFdB.js";import"./dnd-LV5QvpgJ.js";import"./stripe-DMRn4zHo.js";import"./lottie-zGjtu-Uw.js";import"./lexical-Cmpx8sPR.js";import"./pdf-CZjXUklc.js";import"./analyticsHelper-DE1SyLO3.js";import"./routePaths-DbnM8jAc.js";import"./BusinessVerificationPageScreen-9FWcKpyL.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a5636aca-02b8-4823-96dc-0cc560dadd01",e._sentryDebugIdIdentifier="sentry-dbid-a5636aca-02b8-4823-96dc-0cc560dadd01")}catch{}})();const _o=e=>{const n=e.cardHolderUser,t=`${n.firstName??""} ${n.lastName??""}`.trim()||n.email||n.userId;return{userId:n.userId,displayName:t,roleLabel:e.cardHolderRoles?.titleAtCompany}},Dr=e=>({id:e.id,isChecked:!1,cardName:e.cardName,last4:e.accountLast4,limitAmount:e.limit?.amount??0,limitCadence:e.creditLimitFrequency?.code,owner:_o(e),utilizationAmount:(e.limit?.amount??0)-(e.available?.amount??0)}),{spendManagement:{chargeCard:{cardPolicyPage:fn}}}=Xe.getLocalizedStrings(),Po=e=>Rn(e,!1),wo=e=>Ln(e.name,!1);function vo(){const e=de(),n=Ce(),{tenantEmailDomain:t}=Me(),a=pe(),s=Fe(),y=Pe(s?.loggedInUserRoleMap),[f,S]=r.useState(!1),w=r.useCallback(P=>{S(P)},[]),l=r.useCallback(()=>{w(!0)},[w]),{isAiCfoAccessEnabled:m,onAskAiCfoClick:R}=xa({mobileExploreReferrer:"Card Policy"});r.useEffect(()=>()=>{a(as()),a(ts()),a(un())},[a]);const v=o(P=>kn(P.cardPolicyState)),u=o(P=>En(P.cardPolicyState)),M=o(P=>An(P.cardPolicyState)),x=o(P=>Dn(P.cardPolicyState)),B=o(P=>_n(P.cardPolicyState)),p=o(P=>Pn(P.cardPolicyState)),h=o(P=>wn(P.cardPolicyState)),D=o(P=>vn(P.cardPolicyState)),d=o(P=>Tn(P.cardPolicyState)),_=o(P=>P.chargeCardConfigState.receiptRequiredAboveAmount.amount),k=o(P=>P.chargeCardConfigState.fetchState);r.useEffect(()=>{v!=="Completed"&&v!=="In-Progress"&&a(Fn())},[a,v]),r.useEffect(()=>{D==="Completed"&&d===""||D==="In-Progress"||a($a())},[a,D,d]);const j=o(P=>xn(P.createCardPolicyState)),A=o(P=>ns(P.createCardPolicyState)),I=o(P=>rs(P.cardPolicyState)),L=o(P=>ss(P.cardPolicyState)),i=o(P=>cs(P.createCardPolicyState)),C=o(P=>Bn(P));r.useEffect(()=>{C.fetchState==="Not-Started"&&a(ca(!1,!1,!1))},[C.fetchState,a]);const N=r.useMemo(()=>u.map(Po),[u]),G=r.useMemo(()=>h.map(wo),[h]),U=r.useMemo(()=>C.cards.filter(P=>!dr(P.status.code)).map(Dr),[C.cards]),O=v==="Completed"&&C.fetchState==="Completed"&&k==="Completed";r.useEffect(()=>{O&&i==null&&a(os({cardsMasterList:U,defaultRequireReceiptAmount:_,suggestedAllowMerchants:M,suggestedBlockMerchants:x,suggestedAllowCategories:B,suggestedBlockCategories:p}))},[k,a,O,i,U,_,M,x,B,p]);const z=r.useMemo(()=>Lt(P=>{a($a(P))},250),[a]);r.useEffect(()=>()=>{z.cancel()},[z]);const Y=r.useCallback(P=>{z(P)},[z]),b=j.fetchState,T=t!=null?`/${t}/cards/policy`:"..",Z=r.useCallback(()=>{const P=_e(n.state?.pathnameStackToGoBack),ee=P.poppedPathname??T;e(ee,{state:{pathnameStackToGoBack:P.newStack}})},[n.state,e,T]),q=r.useCallback(()=>{e(T)},[e,T]),E=r.useCallback(P=>{a(is(P))},[a]),V=r.useCallback(P=>{const ee=lr(P);a(ds({templates:[ee]}))},[a]),Q=r.useCallback(P=>{P.length!==0&&a(ls(P))},[a]),X=r.useCallback(()=>{a(un())},[a]),g=r.useRef(b);r.useEffect(()=>{const P=g.current;g.current=b,b==="Completed"&&P!=="Completed"&&A!=null&&(a(ze({messageSection:"card_policy_created",messageText:"success",type:"success"})),e(T))},[a,b,A,e,T]);const F=b==="Error"?j.error?.message??fn.createPolicyGenericErrorMessage:void 0;return y&&t!=null?i==null?c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:w}),c.jsx(ur,{showUploadDocumentSection:!0,navBarTitle:fn.createPageTitle,onBackClick:Z,onClickMenuIcon:l,isAiCfoAccessEnabled:m,onAskAiCfoClick:R})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:w}),c.jsx(zc,{formDraft:i,vendorSearchOptions:G,categorySearchOptions:N,isVendorSearchLoading:D==="In-Progress",onVendorSearchTextChange:Y,submitState:b,submitErrorMessage:F,documentUploadState:I,uploadedFileName:L,isAiCfoAccessEnabled:m,onAskAiCfoClick:R,onBackClick:Z,onCancelClick:q,onClickMenuIcon:l,onFormChange:E,onSubmit:V,onUploadDocument:Q,onRemoveDocument:X})]}):c.jsx(ba,{to:"..",replace:!0})}const{spendManagement:{chargeCard:{cardPolicyPage:To}}}=Xe.getLocalizedStrings(),Fo=e=>Rn(e,!1),xo=e=>Ln(e.name,!1);function Bo(){const e=de(),n=Ce(),{tenantEmailDomain:t,templateId:a}=Me(),s=pe(),y=Fe(),f=Pe(y?.loggedInUserRoleMap),[S,w]=r.useState(!1),l=r.useCallback(F=>{w(F)},[]),m=r.useCallback(()=>{l(!0)},[l]),{isAiCfoAccessEnabled:R,onAskAiCfoClick:v}=xa({mobileExploreReferrer:"Card Policy"}),u=o(F=>us(F)),M=o(F=>kn(F.cardPolicyState)),x=o(F=>En(F.cardPolicyState)),B=o(F=>An(F.cardPolicyState)),p=o(F=>Dn(F.cardPolicyState)),h=o(F=>_n(F.cardPolicyState)),D=o(F=>Pn(F.cardPolicyState)),d=o(F=>wn(F.cardPolicyState)),_=o(F=>vn(F.cardPolicyState)),k=o(F=>Tn(F.cardPolicyState)),j=o(F=>Bn(F)),A=o(F=>a!=null?ms(F.cardPolicyState,a):void 0),I=r.useMemo(()=>u.templateId===a&&u.formDraft!=null?u.formDraft:A!=null?Cs(A):void 0,[u.templateId,u.formDraft,A,a]);r.useEffect(()=>{if(a==null)return;const F=u.detailFetchState.fetchState;u.templateId===a&&(F==="Completed"||F==="In-Progress")||A!=null||s(ps(a))},[s,a,u.templateId,u.detailFetchState.fetchState,A]),r.useEffect(()=>{M!=="Completed"&&M!=="In-Progress"&&s(Fn())},[s,M]),r.useEffect(()=>{_==="Completed"&&k===""||_==="In-Progress"||s($a())},[s,_,k]);const L=o(F=>F.chargeCardConfigState.receiptRequiredAboveAmount.amount);r.useEffect(()=>{j.fetchState==="Not-Started"&&s(ca(!1,!1,!1))},[j.fetchState,s]);const i=r.useMemo(()=>x.map(Fo),[x]),C=r.useMemo(()=>d.map(xo),[d]),N=r.useMemo(()=>j.cards.filter(F=>!dr(F.status.code)).map(Dr),[j.cards]);Ft({isDataReady:I!=null});const G=r.useMemo(()=>{if(I!=null)return Yc({draft:I,cardRows:N,categorySearchOptions:i,vendorSearchOptions:C,defaultRequireReceiptAmount:L,suggestedAllowMerchants:B,suggestedBlockMerchants:p,suggestedAllowCategories:h,suggestedBlockCategories:D})},[I,N,i,C,L,B,p,h,D]),[U,O]=r.useState(void 0),z=r.useRef(!1);r.useEffect(()=>{z.current||U!=null||G==null||(z.current=!0,O(G))},[U,G]);const Y=r.useCallback(F=>{O(F)},[]),b=r.useMemo(()=>Lt(F=>{s($a(F))},250),[s]);r.useEffect(()=>()=>{b.cancel()},[b]);const T=r.useCallback(F=>{b(F)},[b]),Z=u.updateFetchState.fetchState,q=t!=null?`/${t}/cards/policy`:"..",E=r.useCallback(()=>{const F=_e(n.state?.pathnameStackToGoBack),P=F.poppedPathname??q;e(P,{state:{pathnameStackToGoBack:F.newStack}})},[n.state,e,q]),V=r.useCallback(()=>{e(q)},[e,q]),Q=r.useCallback(F=>{if(a==null)return;const P=lr(F);s(hs(P)),s(fs(a))},[s,a]),X=r.useRef(Z);r.useEffect(()=>{const F=X.current;X.current=Z,Z==="Completed"&&F!=="Completed"&&(s(ze({messageSection:"card_policy_updated",messageText:"success",type:"success"})),e(q))},[s,Z,e,q]);const g=Z==="Error"?u.updateFetchState.error?.message??To.updatePolicyGenericErrorMessage:void 0;return!f||t==null||a==null?c.jsx(ba,{to:"..",replace:!0}):U!=null&&M==="Completed"&&j.fetchState==="Completed"?c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:S,handleDrawerToggle:l}),c.jsx(Zc,{templateName:u.template?.name??"",formDraft:U,vendorSearchOptions:C,categorySearchOptions:i,isVendorSearchLoading:_==="In-Progress",onVendorSearchTextChange:T,submitState:Z,submitErrorMessage:g,isAiCfoAccessEnabled:R,onAskAiCfoClick:v,onBackClick:E,onCancelClick:V,onClickMenuIcon:m,onFormChange:Y,onSubmit:Q})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:S,handleDrawerToggle:l}),c.jsx(ur,{showUploadDocumentSection:!1,navBarTitle:u.template?.name,onBackClick:E,onClickMenuIcon:m,isAiCfoAccessEnabled:R,onAskAiCfoClick:v})]})}function _r(e,n,t){return n?e.filter(a=>a!=null&&a.trim().length>0).slice(0,t):[]}function Pr(e){return o(n=>e==null||e===""?{chips:ht,isResolved:!1}:function(t){const a=t?.fetchState,s=a==="Completed"||a==="Error";return{chips:a==="Completed"?t?.suggestedQuestions??ht:ht,isResolved:s}}(gs(n,e)),Dt)}const ht=[],{spendManagement:{chargeCard:{cardPolicyAiCfoHero:{headline:Ro,subheadline:Lo,pageTitle:Uo}}}}=Xe.getLocalizedStrings(),Oo=e=>{const n=e.cardsCount>0?e.cardsCount:e.appliedCards.length,t=e.allowedEntity.merchantNames.length+e.blockedEntity.merchantNames.length,a=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:n,vendorRestrictionsCount:t,categoryRestrictionsCount:a}};function jo(){const e=de(),n=Ce(),{tenantEmailDomain:t}=Me(),a=pe(),s=Fe(),y=Pe(s?.loggedInUserRoleMap),[f,S]=r.useState(!1),w=r.useCallback(b=>{S(b)},[]),l=r.useCallback(()=>{w(!0)},[w]),{useFeatureGate:m}=le(),{isFeatureEnabled:R}=m(K.isAiCfoFileUploadEnabled),{isFeatureEnabled:v}=m(K.isCardPolicyEnabled),{isAiCfoAccessEnabled:u,onAskAiCfoClick:M}=xa({mobileExploreReferrer:"Card Policy"}),x=o(b=>Ss(b)),B=o(b=>xn(b.createCardPolicyState)),p=o(b=>bs(b.createCardPolicyState)),h=o(b=>p==null?[]:On(b.aiCfoState,p).filter(T=>T.kind==="creating_policy"),Dt),D=B.fetchState==="In-Progress"?Math.max(h.length,1):0,d=o(b=>ys(b.createCardPolicyState)),_=ya(B.fetchState);r.useEffect(()=>{if(_==="In-Progress"&&B.fetchState==="Completed"&&p!=null)h.forEach(b=>{a(bt({chatSessionId:p,id:b.id,entityIds:d,kind:"created_policy"}))});else if(_==="In-Progress"&&B.fetchState==="Error"&&p!=null){h.forEach(T=>{a(bt({chatSessionId:p,id:T.id,kind:"errored_policy"}))});const b=B.error?.message!=null&&B.error.message.length>0?B.error.message:Xe.getLocalizedStrings().common.errorMessage.somethingWentWrongPleaseTryAgain;a(ze({messageSection:"card_policy_created",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:b}]}))}},[B.error?.message,B.fetchState,a,p,d,h,_]);const k=x.fetchState.fetchState;r.useEffect(()=>{k!=="Not-Started"&&k!=="Error"||a(Is())},[a,k]);const j=x.archiveFetchState.fetchState,A=ya(j);r.useEffect(()=>{A==="In-Progress"&&j==="Completed"&&a(ze({messageSection:"card_policy_deleted",messageText:"success",type:"success"}))},[j,a,A]);const I=r.useMemo(()=>x.templates.map(Oo),[x.templates]);Ft({isDataReady:x.fetchState.fetchState==="Completed"});const L=I.length>0||D>0,i=function(b){const{hasAnyPolicies:T,isChargeCardAdmin:Z,isFileUploadEnabled:q}=b,E=de(),V=Ce(),{tenantEmailDomain:Q}=Me(),{isAiCfoOpen:X,setIsAiCfoOpen:g}=mr(),F=Cr(),P=pr(),ee=o(ce=>Un(ce)).createSessionAndSubmitState.fetchState==="In-Progress",{chips:W,isResolved:ke}=Pr("card_policy"),Se=r.useMemo(()=>_r(W,ke,3),[W,ke]),[ge,ae]=r.useState(""),ue=P&&F&&Q!=null&&!X,oe=r.useCallback(ce=>{if(Q==null)return;const Ea=ye(V.state?.pathnameStackToGoBack,V.pathname);E(`/${Q}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Ea,referrer:"card_policy_hero",aiCfoInitialQuestion:ce,aiCfoShouldSubmit:ce!=null&&ce.trim().length>0}})},[V.pathname,V.state,E,Q]),te=r.useCallback(ce=>{ce.trim().length!==0&&(ae(""),oe(ce))},[oe]),Ze=r.useCallback(()=>{const ce=ge.trim();ce.length!==0&&(ae(""),oe(ce))},[ge,oe]),Ee=r.useCallback(()=>{},[]),ne=r.useCallback(ce=>{ae(ce)},[]),Ke=r.useCallback(()=>{g(!0)},[g]),Re=r.useCallback(()=>{oe(void 0)},[oe]);return r.useMemo(()=>{if(ue&&!T&&Z)return{aiAgentName:Uo,headline:Ro,subheadline:Lo,promptChips:Se,composer:{currentInput:ge,isSubmitting:ee,isFileUploadEnabled:q,onInputChange:ne,onSubmit:Ze,onStopSubmit:Ee},onPromptClick:te,onOpenSidePanel:Ke,onOpenFullView:Re,dataTestIdPrefix:"card-policy-ai-cfo-hero"}},[ge,T,ue,Z,q,ee,ne,Re,Ke,te,Ee,Ze,Se])}({hasAnyPolicies:L,isChargeCardAdmin:y,isFileUploadEnabled:R}),C=v&&i!=null?c.jsx(hr,{...i}):null,N=u&&C==null,G=r.useCallback(()=>{const b=_e(n.state?.pathnameStackToGoBack),T=b.poppedPathname??"..";e(T,{state:{pathnameStackToGoBack:b.newStack}})},[n.state,e]),U=r.useCallback(()=>{t!=null&&e(`/${t}/cards/policy/new`)},[e,t]),O=r.useCallback(b=>{t!=null&&e(`/${t}/cards/policy/${b}/edit`)},[e,t]),z=r.useCallback(b=>{a(ks(b))},[a]),Y=x.fetchState.fetchState;return!L&&Y!=="Completed"&&Y!=="Error"?c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:w}),c.jsx(Kc,{onBackClick:G,onNewPolicyClick:U,onClickMenuIcon:l,isAiCfoAccessEnabled:u,onAskAiCfoClick:M})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:w}),c.jsx(Wc,{policies:I,archivingTemplateId:x.archiveTargetTemplateId,pendingCreationCount:D,onBackClick:G,onNewPolicyClick:U,onEditPolicyClick:O,onArchivePolicyClick:z,onClickMenuIcon:l,policyAiCfoHero:C,isAiCfoAccessEnabled:N,onAskAiCfoClick:M})]})}function Mo(){const e=de(),{cardId:n}=Me(),t=pe(),a=re.getSignedInUser(),s=o(W=>fe(W)),y=Fe(),f=Pe(y?.loggedInUserRoleMap),{useFeatureGate:S}=le();if(a==null)throw Error("Can't access Add To Wallet Page without signing in...");const[w,l]=r.useState(!1),m=o(W=>Qa(W).firstViewAfterActivation);if(n==null)throw Error("Empty card id is not valid...");const R=s.userRole.includes("charge_card_user"),{isFeatureEnabled:v}=S(K.isChargeCardFeatureEnabled),u=!!s.companyChargeCardInfo?.info?.isChargeCardEnabled,{isFeatureEnabled:M}=S(K.isDebitCardFeatureEnabled),x=we(s),B=ve(s),p=Te(M,s),h=s.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,D=xe({isDebitCardFeatureEnabled:M,isBankingOnlyTenant:p}),d=Be({isCardsOnlyTenant:x,isChargeCardFeatureEnabled:v,isBookKeepingTenant:B,isDebitCardProductVisible:D,chargeCardsCreditAccountLimit:h}),_=!!s.companyDebitCardInfo?.info?.isDebitCardEnabled,k=o(W=>oa(W,s.companyId)),j=ia(k.controllers),{creditAccount:A,creditAccountRepayment:I}=o(W=>da(W)),L=o(W=>W.classListState.fetchState),i=!R&&d&&u,C=o(W=>_t(W,n,i,d)),[N,G]=r.useState(!1),U=C.chargeCard,O=U?.cardCreatedByUser?.userId,z=o(W=>O!=null?za(W.userRoleState,O):void 0),Y=z?.accountingClassIDs[0],b=o(W=>Y!=null?Ya(W.classState,{classId:Y,reportId:"class_list"}):void 0),T=U?.cardHolderUser?.userId,Z=o(W=>T!=null?za(W.userRoleState,T):void 0),q=Z?.accountingClassIDs[0],E=o(W=>q!=null?Ya(W.classState,{classId:q,reportId:"class_list"}):void 0),V=U?.type.code==="business_physical_credit_card"||U?.type.code==="business_physical_debit_card",Q=U?.type.code==="business_physical_debit_card";r.useEffect(()=>{m&&w===!1&&V&&(l(!0),setTimeout(()=>{t(Za()),Q&&t(ze({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))},5e3))},[m,w,V,Q]),r.useEffect(()=>{N||C.fetchState==="Completed"||C.fetchState==="In-Progress"||n==null||(G(!0),t(ka(n,i,!1)))},[N,C,n,t]),r.useEffect(()=>{if(C.fetchState==="Completed"&&(V===!1||V&&U?.status?.code!=="active"||U?.cardHolderUserId!==a.userId||m===!1&&w===!1||U?.type.code==="business_physical_debit_card"||U?.type.code==="business_virtual_debit_card")){const W=Ae(s.tenantEmailDomain,n,a,U,m);e(W)}},[C.fetchState,m,V]),r.useEffect(()=>{A.fetchState!=="Completed"&&A.fetchState!=="In-Progress"&&d&&u&&f&&t(Qe()),I.fetchState!=="Completed"&&I.fetchState!=="In-Progress"&&d&&u&&f&&t(Pt()),L!=="Completed"&&L!=="In-Progress"&&t(jn())},[A.fetchState,I.fetchState,t,d,u,f,L]);const X=()=>{if(a!=null&&n!=null){t(Za());const W=Ae(s.tenantEmailDomain,n,a);e(W)}},g=U?.type.code==="business_physical_debit_card"||U?.type.code==="business_virtual_debit_card",F=Je(d,D,_,u),P=Ba(d,u,f,A,I),ee=yr(g,C);return C.fetchState!=="Completed"?c.jsx(va,{fetchState:"In-Progress"}):c.jsxs(c.Fragment,{children:[c.jsx(rt,{showConfetti:m}),c.jsx(qc,{onGotItClick:X,isDebitCard:U?.type.code==="business_physical_debit_card",controllerEmails:j,isChargeCardFeatureEnabled:d,isDebitCardFeatureEnabled:D,isDebitCardSetupEnabled:_,isChargeCardSetupEnabled:u,productInformation:F,creditAccountInformation:P,debitAccountInformation:ee,chargeCardDetailView:C,creditAccount:A,classListFetchState:L,creditAccountRepayment:I,cardIssuedByRoles:z?.userRoles,cardIssuedByDepartmentName:b?.className,cardHolderRoles:Z?.userRoles,cardHolderDepartmentName:E?.className})]})}const wr="charge-card-transaction-update",vr="charge-card-transaction-created",Tr="charge-card-transaction-declined",Fr="charge-card-transaction-updated",xr="charge-card-transaction-receipt-uploaded",ma="charge-card-status-update",Mt="charge-card-spending-updated",it="credit-account-balance-updated",dt="charge-card-created",Nt="charge-card-limit-updated",Vt="charge-card-limit-reset",Ht="charge-card-renamed",No="charge-card-department-updated",Br="charge-card-repayment-completed",Rr="charge-card-payment-date-updated",Ra="charge-card-cashback-redeemed",La="charge-card-cashback-earned",Ca=(e,n)=>e==null||e===""?[]:n.map(t=>`private-encrypted-${e}.${t}`),Vo=[La,Ra],Ho=De(function(e){const n=la(e);return{insightsData:n.insight,cashbackByPeriod:n.cashbackByPeriod,uiState:n.uiState,cashbackSummary:n.cashbackSummary}},function(e){return{onColumnSortConfigChanged:(n,t)=>{e(Es({uiState:{sortKey:n,sortOrder:t}}))}}})(Jc);function Go(){const e=de(),n=pe(),t=Ce(),a=re.getSignedInUser(),s=o(M=>fe(M)),{useFeatureGate:y}=le(),{isFeatureEnabled:f}=y(K.isCardsCommentingEnabled),[S,w]=r.useState(!1),l=o(M=>la(M)),m=Ar(s.companyId,{clearParams:l.fetchState==="Completed"}),R=r.useCallback(()=>{const M=_e(t.state?.pathnameStackToGoBack),x=M.poppedPathname??$o(s.tenantEmailDomain);e(x,{state:{pathnameStackToGoBack:M.newStack}})},[e,t,s.tenantEmailDomain]),v=ea(s);if(jt({events:Ca(v,Vo),onEvent:M=>{switch(M){case La:case Ra:return void n(_a(!0))}},onSubscribed:()=>{n(_a(!0))}}),r.useEffect(()=>{S||l.fetchState==="Completed"||l.fetchState==="In-Progress"||(w(!0),n(_a()))},[S,l,n]),a==null)throw Error("Can't access cashback detail page without signing in...");const u=l.cashbackSummary?.cashbackEarned?.amount!=null&&l.fetchState!=="Not-Started";return l.fetchState!=="In-Progress"||u?(l.cashbackSummary?.cashbackEarned?.amount??0)===0&&l.fetchState==="Completed"?c.jsx(ot,{}):c.jsx(Ho,{onBackClick:R,isCardsCommentingEnabled:f,initialOpenThreadRequest:m}):c.jsx(Qc,{onBackClick:R})}const $o=e=>`/${e}/cards`,zo={containerWidth:new Fa(100,58)},Yo=({appContent:e})=>{const n=Ta(),t=pe(),a=de(),{cardId:s}=Me(),y=Ce(),{useDynamicConfig:f}=le(),[S,w]=r.useState(!1),[l,m]=r.useState(!1),[R,v]=r.useState(!1),[u,M]=r.useState(!1),x=re.getSignedInUser();if(x==null)throw Error("Can't access onboarding card page without signing in...");const B=o(E=>fe(E));if(s==null)throw Error("Empty card id is not valid...");const{configValue:p}=f(Ye.zeniCardsConfig),h=p.max_charge_card_activation_attempts_by_card_id,D=o(E=>As(E,s)),d=D.chargeCard,_=o(E=>E.chargeCardConfigState.fetchState),{useFeatureGate:k}=le(),{isFeatureEnabled:j}=k(K.isChargeCardFeatureEnabled),{isFeatureEnabled:A}=k(K.isDebitCardFeatureEnabled),I=Te(A,B),L=xe({isDebitCardFeatureEnabled:A,isBankingOnlyTenant:I}),i=!!B.companyChargeCardInfo?.info?.isChargeCardEnabled,C=B.userRole.includes("charge_card_user"),N=we(B),G=ve(B),U=B.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,O=Be({isCardsOnlyTenant:N,isChargeCardFeatureEnabled:j,isBookKeepingTenant:G,isDebitCardProductVisible:L,chargeCardsCreditAccountLimit:U}),z=!C&&O&&i;r.useEffect(()=>{S===!1&&_!=="In-Progress"&&_!=="Completed"&&(t(Ja()),w(!0)),l===!1&&D.fetchState==="Not-Started"&&(m(!0),t(ka(s,z,O)))},[l,D.fetchState,S,_]);const Y=d?.type.code==="business_physical_credit_card"||d?.type.code==="business_physical_debit_card";r.useEffect(()=>{if(D.fetchState==="Completed"){if(R===!1&&(Y===!1||Y&&d?.status?.code!=="inactive"||d?.cardHolderUserId!==x.userId)){const E=Ae(B.tenantEmailDomain,s,x,d,!0),V=ye(y.state?.pathnameStackToGoBack,y.pathname);a(E,{state:{pathnameStackToGoBack:V}})}else if(R&&D.isRefreshingViewInBackground===!1&&d?.status?.code==="active"){t(Ds({chargeCardId:s}));const E=Ae(B.tenantEmailDomain,s,x,d,!0),V=ye(y.state?.pathnameStackToGoBack,y.pathname);t(Xa()),a(E,{state:{pathnameStackToGoBack:V}})}}},[D.fetchState,d?.type.code,R,D.isRefreshingViewInBackground]);const b=re.getZeniOtpTokenForCardHolder(s),T=o(E=>Mn(E.userState,x.userId)),Z=()=>{d?.status?.code!=="active"&&t(ga(s,!0))};r.useEffect(()=>{D.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&d?.cardActivationAttemptHistory.some(E=>E.statusCode==="success")===!0&&R===!1&&(setTimeout(Z,3e3),v(!0))},[D.updatePhysicalChargeCardAttemptFetchState.fetchState,d?.cardActivationAttemptHistory]);const q=E=>{M(E)};if(_!=="Completed"||d==null)return c.jsx(va,{fetchState:"In-Progress"});if(d.shippingAddressId==null)throw Error("Can't access shippingAddressId.");if(T?.phone==null)throw Error("Can't access user phone number.");return c.jsxs(Wo,{children:[c.jsx(Ie,{isAppContentDrawerOpen:u,handleDrawerToggle:q}),c.jsx(Zo,{cardId:s,card:d,shippingAddressId:d.shippingAddressId,phone:T.phone,signedInUser:x,isSandboxEnv:xt(),chargeCardDetailState:D,signedInUserToken:b,navigate:a,currentTenant:B,location:y,maxChargeCardActivationAttempts:h[s]!=null?h[s]:p.default_max_charge_card_activation_attempts!=null?p.default_max_charge_card_activation_attempts:3,chargeCardCashbackRatePerTransaction:p.charge_card_cashback_rate_per_transaction!=null?p.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{q(!0)}}),e!=null?c.jsx(Ko,{windowSize:n,children:e}):null]})},Zo=De(function(e,{chargeCardDetailState:n,shippingAddressId:t,location:a,cardId:s}){const y=_s(e.addressState,t);if(y==null)throw Error("Can't access shippingAddress.");const f=Nn(e,s),S=n.updateStatus,w=ua(e,!1,!1,!1);let l=!1;w.fetchState==="Completed"&&w.cards.length<=1&&(l=!0);const m=a.state?.message==="comingFromV2UrlPath";return{showActivatePage:n.chargeCard?.providerCardCreateTime!=null&&n.chargeCard.providerCardCreateTime.add(24,"h").isBefore(Ps())||m,showMenuIcon:l,shippingAddress:y,vgsVaultId:st.cardVaultId,twoFAView:f,activationWaitStatus:S,isRefreshingViewInBackground:n.isRefreshingViewInBackground}},function(e,n){const{navigate:t,cardId:a,location:s,currentTenant:y,chargeCardDetailState:f}=n,S=f.chargeCard?.cardProviderID,{tenantEmailDomain:w}=y;return{onGetOtp:l=>{S!=null&&e(tt(l,"ChargeCardHolder",a))},onUpdatePhysicalChargeCardAttempt:l=>{e(vs(a,l))},onResendOtp:l=>{S!=null&&e(at(l,"ChargeCardHolder",a))},onVerifyOtp:(l,m)=>{S!=null&&e(et(l,m,"ChargeCardHolder",a))},onVerifyOtpSuccess:l=>{l!=null&&re.saveZeniOtpTokenForCardHolder(l,a)},onCVVActivateSuccess:()=>{e(ws({chargeCardId:a}))},onBackClick:()=>{const l=_e(s.state?.pathnameStackToGoBack),m=l.poppedPathname==null||l.poppedPathname.includes("onboard")===!0?aa(w):l.poppedPathname;t(m,{state:{pathnameStackToGoBack:l.newStack}})}}})(Xc),Ko=Ne.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
width: ${e=>`${zo.containerWidth.value(e.windowSize)}%`};
|
|
5
|
+
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
6
|
+
`,Wo=Ne.div`
|
|
7
|
+
display: flex;
|
|
8
|
+
min-height: 100%;
|
|
9
|
+
width: 100%;
|
|
10
|
+
flex: 1 1 auto;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
align-items: center;
|
|
13
|
+
background-color: ${e=>e.theme.colors.grey4};
|
|
14
|
+
`,Wa=Xe.getLocalizedStrings().dateFormat,qo={overlayWidth:new Fa(100,100,58)},Lr=[Br,it],Qo=new Set(Lr),Jo=De(function(e,n){const t=n.currentTenant?.companyId;return{plaidConnectionDetails:Bs(e,t,"zeni_accounts","external_account").plaidConnectionDetails,depositAccountListView:Rs(e.depositAccountState,e.depositAccountListState)}},function(e,n){const{navigate:t,currentTenant:a,hasZeniAccountsAdminAccess:s,isZeniAccountsUser:y,isCashbackInfoFetchStateCompleted:f,isCreditCardInfoFetchStateCompleted:S,isDebitCardInfoFetchStateCompleted:w,controllerEmails:l,paymentDetails:m,productInformation:R,cashbackInformation:v,paymentSourceInformation:u,creditAccountInformation:M,debitAccountInformation:x,paymentInitiatedDate:B,sourcePage:p}=n,{tenantEmailDomain:h}=a,D=()=>{e(Gn(!0));const d=ea(a);d!=null&&d!==""&&e(Pa(d,!0,!0)),e(Qe(!0))};return{onBackNavigation:()=>{if(f&&S&&w&&v!=null&&J.trackCardsPayEarlyFormClick(l,R,v,"Back",m.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:m.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:m.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:m.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:m.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:B?.add(3,"day").format(Wa.visual.MMMDCommaYYYYformat),paymentInitiatedDate:B?.format(Wa.visual.MMMDCommaYYYYformat)},u,M,x),p==="cardPaymentHistory")n.closeDrawerHandler(!0),e($n());else{const d=aa(h);t(d)}},onUpdatePaymentAccountStatus:(d,_,k)=>{e(Os(d,_,"bill_pay","bill_pay_detail",k))},onEstablishConnectionSuccess:()=>{e(Pa(a.companyId,!0))},onFetchLinkTokenClick:d=>{e(Us("external_account",d))},onEstablishConnectionClick:d=>{e(Ls(d,a.companyId,"charge_card_payment","charge_cards"))},onSignUpAccountClick:()=>{s?window.open(`/${h}/checking/promo`,"_blank"):window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")},onMoveMoneyClick:()=>{y?window.open(`/${h}/checking/transfer`):window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")},onEventReceived:d=>{Qo.has(d)&&D()},onPusherSubscribed:D}})(ct(eo)),Gt=({isPaymentDrawerOpen:e,closeDrawerHandler:n,pageName:t,creditAccountSpentAmount:a,productInformation:s,sourcePage:y,creditAccountInformation:f,debitAccountInformation:S,cashbackInformation:w,isDebitCardInfoFetchStateCompleted:l,isCreditCardInfoFetchStateCompleted:m,isCashbackInfoFetchStateCompleted:R,paymentInitiatedDate:v,retryRepayment:u})=>{const M=de(),{useDynamicConfig:x}=le(),{configValue:B}=x(Ye.zeniAccountsConfig),p=Ts(B),h=o(F=>Vn(F)),{creditAccount:D}=o(F=>da(F)),d=o(F=>fe(F)),_=Bt(),k=Ta(),j=pe(),A=re.getSignedInUser(),I=Fe(),[L,i]=r.useState(!1),[C,N]=r.useState(!1),{configValue:G}=x(Ye.zeniCardsConfig),U=G.credit_card_auto_pay_threshold_by_company_id?.[d.companyId]??G.default_credit_card_auto_pay_threshold??Io,O=Hn(I?.loggedInUserRoleMap),z=Fs(I?.loggedInUserRoleMap),Y=!!d.companyZeniAccountInfo?.info?.isZeniAccountEnabled,b=o(F=>wa(F,d.companyId)),T=b.companyChargeCardInfo?.primaryFundingAccount,Z=b.allFundingAccounts.find(F=>F.id===T?.accountId),q=o(F=>oa(F,d.companyId)),E=ia(q.controllers);r.useEffect(()=>{if(h.fetchState!=="Completed"&&h.fetchState!=="In-Progress"&&j(Gn()),h.fetchState==="Completed"&&!C){const F=d.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,P=h.transferFromAccounts.find(W=>W.id===F);let ee;if(y==="cardPaymentHistory"&&u){const W=u.paymentAccountId!=null?h.transferFromAccounts.find(ke=>ke.id===u.paymentAccountId):void 0;ee={amount:u.amount,isAutoRepayment:d.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:hn(),transferFrom:W??P}}else ee={amount:{amount:D.balance.amount+D.hold.amount,currencyCode:D.balance.currencyCode,currencySymbol:D.balance.currencySymbol},isAutoRepayment:d.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:hn(),transferFrom:P};j(mn(ee)),N(!0)}},[h.fetchState,C,y,u,h.transferFromAccounts,d.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,d.companyChargeCardInfo?.info?.isAutoPayEnabled,D.balance.amount,D.balance.currencyCode,D.balance.currencySymbol,D.hold.amount,j]);const V={isZeniCheckingEnabled:d.companyZeniAccountInfo?.info?.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:Z?.accType==="depositAccount",creditCardPaymentSourceAccountName:Z?.label,creditCardPaymentSourceAccountType:Z?.accType,creditCardPaymentSourceLastFourDigits:Z?.accountLast4,creditCardPaymentSourceBalance:Z?.accountBalance?.available?.amount??0};if(r.useEffect(()=>{b.fetchState!=="Completed"&&b.fetchState!=="In-Progress"&&j(Pa(d.companyId,!0))},[b.fetchState]),r.useEffect(()=>{h.updateStatus==="Completed"&&w!=null&&R&&m&&l&&J.trackCardsPayEarlyPayNowClick(E,s,w,h.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:h.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:h.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:h.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:h.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:v?.add(3,"day").format(Wa.visual.MMMDCommaYYYYformat),paymentInitiatedDate:v?.format(Wa.visual.MMMDCommaYYYYformat)},V,f,S)},[h.updateStatus,w,R,m,l,v]),r.useEffect(()=>{h.fetchState==="Completed"&&w!=null&&R&&m&&l&&!L&&e&&C&&w!=null&&(J.trackCardsPayEarlyFormView(E,s,w,t,d.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,D.balance.amount,V,f,S),i(!0))},[h,R,m,l,L,e,C]),A==null)throw Error("Can't access invite people page without signing in...");const Q=()=>{n(!0),j($n())},X=ea(d),g={events:e?Ca(X,Lr):[],eventCallback:(F,P,ee)=>{ee.onEventReceived(F)},onSubscribed:F=>{F.onPusherSubscribed()}};return c.jsx(c.Fragment,{children:c.jsx(br,{onClose:()=>{Q()},anchor:"right",transitionDuration:250,open:e,PaperProps:{style:{width:qo.overlayWidth.valuePercentage(k),boxShadow:"none"}},slotProps:{backdrop:{style:{backgroundColor:_.colors.black,opacity:.75,cursor:"pointer"}}},children:c.jsx(Xo,{onClick:F=>F.stopPropagation(),children:c.jsx(Jo,{...g,closeDrawerHandler:n,navigate:M,paymentDetails:h,creditAccountSpentAmount:a,onTransferClick:()=>{R&&m&&l&&w!=null&&J.trackCardsPayEarlyFormClick(E,s,w,"Pay Now",h.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:h.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:h.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:h.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:h.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:void 0,paymentInitiatedDate:void 0},V,f,S),j(xs({companyId:d.companyId}))},onDismissClick:Q,onSaveChangesToLocalStore:F=>{j(mn(F))},currentTenant:d,hasZeniAccountsAdminAccess:O,isZeniAccountsUser:z,isZeniAccountSetupEnabled:Y,productInformation:s,sourcePage:y,controllerEmails:E,autoPayThreshold:U,paymentSourceInformation:V,creditAccountInformation:f,debitAccountInformation:S,cashbackInformation:w,isCashbackInfoFetchStateCompleted:R,isCreditCardInfoFetchStateCompleted:m,isDebitCardInfoFetchStateCompleted:l,paymentInitiatedDate:v,maxInsuredAmount:p.maxInsuredAmount})})})})},Xo=Ne(yo)`
|
|
15
|
+
display: flex;
|
|
16
|
+
min-height: 100%;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
`,$t=e=>e!=null&&typeof e=="object"?e:null,ie=e=>typeof e=="string"?e:void 0,Oe=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,qa=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 n=e;return typeof n.transaction_id=="string"&&typeof n.amount=="number"&&typeof n.currency_code=="string"&&typeof n.currency_symbol=="string"&&typeof n.direction=="string"&&!!qa(n.transaction_status)&&!!qa(n.transaction_type)},zt=(e,n)=>{const t=e?.card_status;if(!qa(t))return null;const a=e?.is_locked_by_admin;return{cardId:n,cardStatus:t,isLockedByAdmin:typeof a=="boolean"?a:void 0}},Et=[wr,vr,Tr,Fr,xr,ma,Mt,it,Nt,Vt,Ht],Ur=[La,Ra],ei=new Set([...Et,...Ur]),gt=Xe.getLocalizedStrings().dateFormat,ai=De(function(e,n){const{includeCreditAccountInfo:t,cardId:a,signedInUserToken:s,isChargeCardFeatureEnabled:y}=n,f=re.getSignedInUser(),S=e.tenantState.currentTenantId,w={userId:f?.userId??"",sessionId:f?.zeniSessionId??"",tenantId:S??""},l=_t(e,a,t,y),m=Ys(e,a),R=Zs(e);return{chargeCardDetailView:l,chargeCardsRecurringExpensesState:m,vgsVaultId:st.cardVaultId,transactionAttachmentsEndpointToFetch:`${kt}/card_transaction_attachments`,transactionAttachmentEndpointToDownload:`${kt}/card_transaction_attachment`,authParams:w,isSnackbarOpen:R.isSnackbarOpen,cardsEndPoint:`${fr.cardMicroServiceBaseUrl}`,signedInUserToken:l.twoFAView.token??s}},function(e,n){const{cardId:t,currentTenant:a,navigate:s,location:y,cardProviderId:f,includeCreditAccountInfo:S,setIsPaymentOpen:w,controllerEmails:l,productInformation:m,cashbackInformation:R,primaryFundingAccountDetails:v,creditAccountInformation:u,debitAccountInformation:M,isChargeCardFeatureEnabled:x}=n,{tenantEmailDomain:B}=a;return{onEventReceived:(p,h)=>{(({event:D,data:d,cardId:_,dispatch:k,subscribedEvents:j})=>{const A=$t(d);switch(D){case La:case Ra:return void k(_a(!0));case wr:{const I=ie(A?.card_id);if(I==null||I!==_)return;const L=ie(A?.transaction_id),i=A?.transaction_status;return L!=null&&qa(i)?void k($s({transactionId:L,transactionStatus:i})):void k(ra(_,null,null,!0))}case ma:{const I=ie(A?.card_id)??_;if(I!==_)return;const L=zt(A,I);return L!=null?void k(wt(L)):void k(ga(_,!0))}case Mt:{const I=ie(A?.card_id)??_;if(I!==_)return;const L=ie(A?.currency_code),i=ie(A?.currency_symbol),C=Oe(A?.balance);return L!=null&&i!=null&&C!=null?(k(Gs({cardId:I,currencyCode:L,currencySymbol:i,balance:C,hold:Oe(A?.hold),dailyPurchaseSpends:Oe(A?.daily_purchase_spends),monthlyPurchaseSpends:Oe(A?.monthly_purchase_spends),dailyWithdrawals:Oe(A?.daily_withdrawals),monthlyWithdrawals:Oe(A?.monthly_withdrawals)})),void k(Qe(!0))):(k(ga(_,!0)),void k(Qe(!0)))}case it:{const I=ie(A?.currency_code),L=ie(A?.currency_symbol),i=Oe(A?.available_amount),C=Oe(A?.balance_amount);return I!=null&&L!=null&&i!=null&&C!=null?void k(Hs({currencyCode:I,currencySymbol:L,available:i,balance:C,hold:Oe(A?.hold_amount),cashback:Oe(A?.cashback_amount)})):void k(Qe(!0))}case vr:{const I=ie(A?.card_id)??_;if(I!==_)return;const L=A?.transaction;return ft(L)?void k(Vs({cardId:I,transaction:L})):void k(ra(_,null,null,!0))}case Tr:{const I=ie(A?.card_id)??_;if(I!==_)return;const L=A?.transaction;return ft(L)?void k(Ns({cardId:I,declineReason:ie(A?.decline_reason),transaction:L})):void k(ra(_,null,null,!0))}case Fr:{const I=ie(A?.card_id)??_;if(I!==_)return;const L=A?.transaction;return ft(L)?void k(Ms({cardId:I,transaction:L})):void k(ra(_,null,null,!0))}case xr:{const I=ie(A?.card_id)??_;if(I!==_)return;const L=ie(A?.transaction_id),i=A?.attachment_file_paths;return L!=null&&Array.isArray(i)&&i.every(C=>typeof C=="string")?void k(js({cardId:I,transactionId:L,attachmentFilePaths:i})):void k(ra(_,null,null,!0))}case Nt:case Vt:case Ht:{const I=ie(A?.card_id);if(I==null||I!==_)return;k(ga(_,!0))}}})({event:p,data:h,cardId:t,dispatch:e,subscribedEvents:ei})},onPusherSubscribed:()=>{e(ga(t,!0)),e(ra(t,null,null,!0)),e(Qe(!0))},onReloadTransactions:()=>{e(ka(t,S,x))},onFetchChargeCardTransactionList:(p,h)=>{e(ra(t,p,h))},onUpdateScrollYOffset:p=>{},onGetOtp:p=>{f!=null&&e(tt(p,"ChargeCardHolder",t))},onResendOtp:p=>{f!=null&&e(at(p,"ChargeCardHolder",t))},onVerifyOtp:(p,h)=>{f!=null&&e(et(p,h,"ChargeCardHolder",t))},onVerifyOtpSuccess:p=>{p!=null&&re.saveZeniOtpTokenForCardHolder(p,t)},onColorCodeChange:p=>{e(Xs(t,p))},onLockChargeCard:(p,h)=>{e(Xn(p,t,h))},onUnlockChargeCard:p=>{e(Jn(p,t))},onCloseChargeCard:p=>{e(Qn(t,p))},onFetchChargeCardsRecurringExpenses:()=>{e(qn([t]))},updateChargeCardName:(p,h)=>{e(Wn(p,t,h))},updateChargeCardTransactionAttachments:(p,h)=>{h!=null&&e(Js({transactionId:p,data:h}))},updateChargeCardTransactionUploadReceiptsFetchStatus:(p,h,D,d)=>{e(Qs({chargeCardId:h,transactionId:p,fetchState:D,error:d}))},updateChargeCardTransactionReceiptsShowTick:(p,h,D)=>{e(qs({chargeCardId:h,transactionId:p,shouldShowTick:D}))},onChargeCardRevokeInviteClick:()=>{e(Kn(t))},updateChargeCardTransactionIsViewReceiptClicked:(p,h,D)=>{e(Ws({chargeCardId:h,transactionId:p,isViewReceiptClicked:D}))},onChargeCardTransactionRowClick:(p,h)=>{const D=ye(y.state?.pathnameStackToGoBack,y.pathname);s(`../../transaction/${p}/${h}`,{state:{pathnameStackToGoBack:D}})},onBackClick:()=>{const p=_e(y.state?.pathnameStackToGoBack),h=aa(B);s(h,{state:{pathnameStackToGoBack:p.newStack,message:"comingFromCardDetail"}})},removeSnackbar:()=>{e(Ks())},onUpdateDebitCardPinAttempt:p=>{e(Zn(t,p)),p==="success"&&e(ze({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(p,h)=>{p?e(ze({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):h!=null&&e(ze({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:h.message}]}))},updateSpendLimit(p,h,D,d){e(Yn(p,h,D.code,d))},shouldOpenCreditCardPaymentDrawer(p){p&&R!=null&&J.trackCardsPayEarlyClick(l,m,R,"Card Detail","Text Button","Pay Now",{isZeniCheckingEnabled:a.company?.companyZeniAccountInfo.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:v?.accType==="depositAccount",creditCardPaymentSourceAccountName:v?.label,creditCardPaymentSourceAccountType:v?.accType,creditCardPaymentSourceLastFourDigits:v?.accountLast4,creditCardPaymentSourceBalance:v?.accountBalance?.available?.amount??0},u,M),w(p)}}})(ct(to));function ti(){const e=de(),n=pe(),t=Ce(),{cardId:a}=Me(),[s,y]=r.useState(!1),[f,S]=r.useState(!1),{useDynamicConfig:w}=le(),l=re.getSignedInUser(),m=o(H=>fe(H)),R=o(H=>Qa(H).firstViewAfterActivation),v=o(H=>H.classListState.fetchState),{configValue:u}=w(Ye.documentAiReceiptMaxSizeLimitBytesConfig),{configValue:M}=w(Ye.zeniCardsConfig),x=M.enable_card_controls_for_company_ids,B=M.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(x)&&x.includes(m.companyId),[p,h]=r.useState(!1),[D,d]=r.useState(!1),{useFeatureGate:_}=le(),{isFeatureEnabled:k}=_(K.isChargeCardFeatureEnabled),{isFeatureEnabled:j}=_(K.isDebitCardFeatureEnabled),A=Te(j,m),I=xe({isDebitCardFeatureEnabled:j,isBankingOnlyTenant:A}),{isFeatureEnabled:L}=_(K.isEarlyPayFeatureEnabled),{isFeatureEnabled:i}=_(K.isCardsCommentingEnabled),C=ve(m),N=we(m),G=m.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,U=Be({isCardsOnlyTenant:N,isChargeCardFeatureEnabled:k,isBookKeepingTenant:C,isDebitCardProductVisible:I,chargeCardsCreditAccountLimit:G}),O=!!m.companyDebitCardInfo?.info?.isDebitCardEnabled,z=!!m.companyChargeCardInfo?.info?.isChargeCardEnabled,Y=!m.userRole.includes("charge_card_user")&&U&&z;if(a==null)throw Error("Empty card id is not valid...");const b=o(H=>wa(H,m.companyId)),{creditAccount:T,creditAccountRepayment:Z}=o(H=>da(H)),q=re.getZeniOtpTokenForCardHolder(a),E=o(H=>_t(H,a,Y,U)),{isAiCfoAccessEnabled:V,onAskAiCfoClick:Q}=xa({mobileExploreReferrer:"Card Detail"});Ft({isDataReady:E.fetchState==="Completed"});const X=o(H=>la(H)),g=E.chargeCard,F=Fe(),P=Pe(F?.loggedInUserRoleMap),ee=g?.type.code==="business_physical_debit_card"||g?.type.code==="business_virtual_debit_card",W=g?.type.code==="business_physical_debit_card"||g?.type.code==="business_physical_credit_card",ke=g?.type.code==="business_virtual_debit_card"||g?.type.code==="business_virtual_credit_card",Se=g?.type.code==="business_virtual_debit_card",ge=Ba(U,z,P,T,Z),ae=yr(ee,E),ue=Ut(P,X),oe=Je(U,I,O,z),te=E.depositAccountLimitFetchState.fetchState!=="Completed"&&E.depositAccountLimitFetchState.fetchState!=="In-Progress",Ze=o(H=>oa(H,m.companyId)),Ee=ia(Ze.controllers),ne=o(H=>g?.cardCreatedByUser?.userId!=null?za(H.userRoleState,g?.cardCreatedByUser?.userId):void 0),Ke=o(H=>ne?.accountingClassIDs[0]!=null?Ya(H.classState,{classId:ne?.accountingClassIDs[0],reportId:"class_list"}):void 0),Re=o(H=>g?.cardHolderUser?.userId!=null?za(H.userRoleState,g?.cardHolderUser?.userId):void 0),ce=o(H=>Re?.accountingClassIDs[0]!=null?Ya(H.classState,{classId:Re?.accountingClassIDs[0],reportId:"class_list"}):void 0),Ea=m?.userRole,pa=o(H=>ua(H,!1,I,k).revokeCardInvite),ha=ya(pa.saveStatus.fetchState);if(r.useEffect(()=>{if(ha==="In-Progress"&&pa.saveStatus.fetchState==="Completed"){const H=aa(m.tenantEmailDomain);e(H)}},[ha,pa.saveStatus.fetchState,e,m.tenantEmailDomain]),r.useEffect(()=>{R&&s===!1&&ke&&(y(!0),setTimeout(()=>{n(Za()),Se&&n(ze({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))},5e3))},[R,s,ke,Se]),r.useEffect(()=>{p||E.fetchState==="Completed"||E.fetchState==="In-Progress"||a==null||(h(!0),n(ka(a,Y,U,!1)))},[p,E,a,n]),r.useEffect(()=>{!D&&E.fetchState==="Completed"&&E.chargeCard?.connectedAccountId!=null&&ee&&te&&P&&(d(!0),n(zn({depositAccountId:E.chargeCard?.connectedAccountId})))},[D,E,n,te,P]),r.useEffect(()=>{X.fetchState!=="Completed"&&X.fetchState!=="In-Progress"&&P&&n(_a()),v!=="Completed"&&v!=="In-Progress"&&n(jn()),E.transactionStatistics.fetchState!=="Completed"&&E.transactionStatistics.fetchState!=="In-Progress"&&n(zs({chargeCardId:a})),b.fetchState!=="Completed"&&b.fetchState!=="In-Progress"&&n(Pa(m.companyId,!0))},[X.fetchState,n,P,v,E.transactionStatistics.fetchState,b.fetchState]),r.useEffect(()=>{if(!(E.fetchState!=="Completed"||U&&T.fetchState!=="Completed"||g==null||E.transactionStatistics.fetchState!=="Completed"||ee&&P&&E.depositAccountLimitFetchState.fetchState!=="Completed")){const H=g.type.code.includes("physical"),he=H?g.cardActivationAttemptHistory[0]?.timestamp:g.createTime;J.trackCardsCardDetailView(Ee,oe,{cardId:a,cardName:g.cardName,cardType:g.type.code.includes("credit")?"credit":"debit",cardCategory:H?"physical":"virtual",cardLimit:Sa(g.limit.amount),cardLastFourDigits:g.accountLast4,cardStatus:g.status.code,cardAssignedDate:g.createTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardIssuedDate:g.providerCardCreateTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardActivatedDate:he?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardLimitFrequency:g.creditLimitFrequency.name,cardSpentAmount:Sa(g.balance.amount),cardAvailableLimit:Sa(g.available.amount),cardUtilizationPercent:g.limit.amount>0?Math.round((g.limit.amount-g.available.amount)/g.limit.amount*100):0,cardUtilizationAmount:Sa(g.limit.amount-g.available.amount),totalNumberOfDeclinedTransactions:E.transactionStatistics.statistics.totalNumberOfDeclinedTransactions,numberOfDeclinedTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfDeclinedTransactionsCurrentMonth,totalNumberOfPaidTransactions:E.transactionStatistics.statistics.totalNumberOfPaidTransactions,numberOfPaidTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfPaidTransactionsCurrentMonth,totalNumberOfCanceledTransactions:E.transactionStatistics.statistics.totalNumberOfCanceledTransactions,numberOfCanceledTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfCanceledTransactionsCurrentMonth,totalNumberOfAuthorizedTransactions:E.transactionStatistics.statistics.totalNumberOfAuthorizedTransactions,numberOfAuthorizedTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfAuthorizedTransactionsCurrentMonth,totalNumberOfTransactionsWithReceipts:E.transactionStatistics.statistics.totalNumberOfTransactionsWithReceipts,numberOfTransactionsWithReceiptsCurrentMonth:E.transactionStatistics.statistics.numberOfTransactionsWithReceiptsCurrentMonth},{cardIssuedByName:It(g.cardCreatedByUser,!1),cardIssuedByEmail:g.cardCreatedByUser?.email,cardIssuedByUserId:g.cardCreatedByUser?.userId,cardIssuedByRole:ne?.userRoles,cardIssuedByDepartment:Ke?.className},{cardholderName:It(g.cardHolderUser,!1),cardholderEmail:g.cardHolderUser?.email,cardholderRole:Re?.userRoles,cardholderUserId:g.cardHolderUser?.userId,cardholderDepartment:ce?.className},ge,ae)}},[E.fetchState,E.depositAccountLimitFetchState.fetchState,E.transactionStatistics.fetchState,T.fetchState,P]),l==null)throw Error("Can't access card detail page without signing in...");const ta=ea(m),Aa=P?[...Et,...Ur]:Et,lt={events:Ca(ta,Aa),eventCallback:(H,he,Le)=>{Le.onEventReceived(H,he)},onSubscribed:H=>{H.onPusherSubscribed()}},ut=()=>{if(a!=null&&g!=null){const{ownerName:H,cardName:he,utilisation:Le,limit:Ve,frequency:He,cardColor:Ge}=St(g),$e=g.cardHolderUserId===l.userId;J.trackCardsDetailPageViewed(a,H,he,Le,Ve,He,Ge,$e)}};r.useEffect(()=>{if(E.fetchState==="Completed"){const H=E.chargeCard;if(H?.status.code==="inactive"||ee&&H?.isPinSet===!1||W&&R){const he=Ae(m.tenantEmailDomain,a,l,g,R);e(he)}}},[E.fetchState]);const me=(H,he)=>{if(a!=null&&g!=null){const{ownerName:Le,cardName:Ve,utilisation:He,limit:Ge,frequency:$e}=St(g),na=g.cardHolderUserId===l.userId;J.trackCardsDetailPageClicked(a,Le,Ve,He,Ge,$e,H,na,he)}},Ua=(H,he)=>{if(a!=null&&g!=null){const{ownerName:Le,cardName:Ve,utilisation:He,limit:Ge,frequency:$e}=St(g),na=g.cardHolderUserId===l.userId;J.trackCardsVerifyPopUpClick(a,Le,Ve,He,Ge,$e,H,na,he)}},Da=T.balance.amount+T.hold.amount,mt=m.companyChargeCardInfo?.info?.primaryFundingAccount,Oa=b.allFundingAccounts.find(H=>H.id===mt?.accountId),ja=E.chargeCard!=null,Ma=E.depositAccountLimit!=null;return E.fetchState!=="Error"||ja?!ja&&(E.fetchState==="In-Progress"||E.fetchState==="Not-Started")||pa.saveStatus.fetchState==="In-Progress"||!Ma&&ee&&P&&E.depositAccountLimitFetchState.fetchState!=="Completed"?c.jsx(ao,{}):c.jsxs(c.Fragment,{children:[c.jsx(rt,{showConfetti:R}),E.fetchState==="Completed"?c.jsx(Rt,{analytics:J,onLoad:ut}):null,f===!0?c.jsx(Gt,{closeDrawerHandler:()=>S(!1),isPaymentDrawerOpen:f,pageName:"Card Detail",sourcePage:"cardDetailPage",productInformation:oe,creditAccountInformation:ge,debitAccountInformation:ae,cashbackInformation:ue,creditAccountSpentAmount:Da,isDebitCardInfoFetchStateCompleted:!ee||!P||E.depositAccountLimitFetchState.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!U||T.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!P||X.fetchState==="Completed",paymentInitiatedDate:Z.initiatedRepaymentDate}):null,c.jsx(ai,{...lt,hideSorting:!0,onColumnSortConfigChanged:()=>{},onFireVerifyPopOnClickAnalytics:Ua,onFireOnClickAnalytics:me,isSandboxEnv:xt(),signedInUser:l,location:t,navigate:e,setIsPaymentOpen:S,cardIssuedByRoles:ne?.userRoles,cardIssuedByDepartmentName:Ke?.className,cardHolderRoles:Re?.userRoles,cardHolderDepartmentName:ce?.className,loggedInUserRole:Ea,isChargeCardFeatureEnabled:U,isDebitCardFeatureEnabled:I,isDebitCardSetupEnabled:O,isChargeCardSetupEnabled:z,isCardControlsEnabled:B,isEarlyPayEnabled:L,controllerEmails:Ee,chargeCardCashbackDetailState:X,productInformation:oe,creditAccountInformation:ge,debitAccountInformation:ae,cashbackInformation:ue,classListFetchState:v,primaryFundingAccountDetails:Oa,currentTenant:m,cardProviderId:E.chargeCard?.cardProviderID,cardId:a,creditAccount:T,creditAccountRepayment:Z,includeCreditAccountInfo:Y,signedInUserToken:q,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:u.documentAiReceiptMaxSizeLimitBytes!=null?u.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:V,onAskAiCfoClick:Q,isCardsCommentingEnabled:i})]}):c.jsx(ot,{})}const St=e=>{const n=`${e.cardHolderUser?.firstName.toLowerCase()} ${e.cardHolderUser?.lastName.toLowerCase()}`,t=e.cardName,a=(e.limit.amount??0)-(e.available.amount??0),s=e.limit.amount,y=e.creditLimitFrequency.name;return{ownerName:n,cardName:t,utilisation:a,cardColor:e.cardColorCode??"",frequency:y,limit:s}},{spendManagement:{chargeCard:{cardsAiCfoHero:{headline:ni,subheadline:ri,pageTitle:si}}}}=Xe.getLocalizedStrings(),Or=[ma,it,Rr,Ra,La,dt,Ht,No,Nt,Vt,Mt],ci=new Set(Or),At=Lt((e,n,t,a)=>{e(ca(n,t,a,!0))},400),oi=Ne.div`
|
|
19
|
+
display: flex;
|
|
20
|
+
width: 100%;
|
|
21
|
+
flex: 1 1 auto;
|
|
22
|
+
flex-direction: column;
|
|
23
|
+
align-items: center;
|
|
24
|
+
background-color: ${e=>e.theme.colors.grey4};
|
|
25
|
+
`,ii=De(function(e,n){const t=ua(e,n.includeCreditAccountDebitSummaryAndCashbackInfo,n.isDebitCardFeatureEnabled&&n.isDebitCardSetupEnabled,n.isChargeCardFeatureEnabled&&n.isChargeCardSetupEnabled);return{chargeCardListView:t,rowActionView:rc(e),bulkActionView:sc(e),companyLegalName:n.currentTenant.companyName,admins:n.admins,searchText:t.searchText,uiState:t.uiState,signedInUser:n.signedInUser}},function(e,n){const{navigateAndClearBulkSelection:t,currentTenant:a,location:s,signedInUser:y,chargeCardListState:f,includeCreditAccountDebitSummaryAndCashbackInfo:S,isChargeCardFeatureEnabled:w,isCreditCardProductVisibleForExpressInterest:l,isChargeCardSetupEnabled:m,isDebitCardFeatureEnabled:R,isDebitCardSetupEnabled:v,isDebitCardTOSAccepted:u,isChargeCardTOSAccepted:M,controllerEmails:x,depositAccountListWithDebitCardIssued:B,primaryFundingAccountDetails:p,chargeCardSetUpViewFetchState:h,productInformation:D,cashbackInformation:d,creditAccountInformation:_,debitAccountInformation:k,updatePayNowInfoTooltip:j,isUserHasCardsAdminLevelAccess:A}=n,{tenantEmailDomain:I}=a,{cards:L}=f;return{onChargeCardRowClick:(i,C)=>{const N=kr(L,i);let G;N!=null&&((O=>{const z=O.limit.amount-O.available.amount,Y=`${O.cardHolderUser?.firstName.toLowerCase()} ${O.cardHolderUser?.lastName.toLowerCase()}`,b=O.cardName,T=O.department?.className??"",Z=O.limit.amount,q=O.creditLimitFrequency.name;J.trackCardsListRowClicked(Y,b,T,z,Z,q,y.userId===O.cardHolderUserId)})(N),sa(R,v,B)&&J.trackCardsCardListRowClick(x,D,"Card Row Item","row_clicked",C+1,{cardOwner:It(N.cardHolderUser,!1),cardName:N.cardName,cardType:N.type.code.includes("credit")?"credit":"debit",cardStatus:N.status.code,cardUtilizationAmount:Sa(N.limit.amount-N.available.amount),cardUtilizationPercent:N.limit.amount>0?Math.round((N.limit.amount-N.available.amount)/N.limit.amount*100):0,cardLimit:Sa(N.limit.amount)},d,_,k)),G=N?.status.code==="request_on_hold"&&y.userId===N.cardHolderUserId?Er(I):Ae(I,i,y,N);const U=ye(s.state?.pathnameStackToGoBack,s.pathname);t(G,{state:{pathnameStackToGoBack:U}})},onFetchChargeCardsRecurringExpenses:i=>{e(qn(i))},onFetchDepositAccountLimit:i=>{e(zn({depositAccountId:i}))},onChargeCardResendInviteClick:i=>{e(Cc(i))},onChargeCardRevokeInviteClick:i=>{e(Kn(i))},onLockChargeCardList:(i,C)=>{e(mc(i,C))},onUnlockChargeCardList:i=>{e(uc(i))},onCloseChargeCardList:(i,C)=>{e(lc(i,C))},onRevokeChargeCardList:i=>{e(dc(i))},updateChargeCardListSpendLimit(i,C,N){e(ic(i,C,N.code))},onLockChargeCard:(i,C)=>{e(Xn(A,i,C))},onUnlockChargeCard:i=>{e(Jn(A,i))},onCloseChargeCard:(i,C)=>{e(Qn(i,C))},onUpdateSpendLimit(i,C,N,G){e(Yn(i,C,N.code,G))},updateChargeCardName:(i,C)=>{e(Wn(A,i,C))},onClickSetupIcon:()=>{J.trackCardsListPageClicked("settings"),sa(R,v,B)&&d!=null&&J.trackCardsSettingsClick(x,D,d,_,k);const i=Eo(I),C=ye(s.state?.pathnameStackToGoBack,s.pathname);t(i,{state:{pathnameStackToGoBack:C}})},onIssueCardClick:()=>{J.trackCardsListPageClicked("new card"),sa(R,v,B)&&d!=null&&J.trackCardsNewCardClick(x,D,d,"New Button","card_creation_initiated","Card List",_,k);const i=di(I),C=ye(s.state?.pathnameStackToGoBack,s.pathname);t(i,{state:{pathnameStackToGoBack:C}})},onColumnSortConfigChanged:(i,C)=>{sa(R,v,B)&&d!=null&&J.trackCardsCardListSortClick(x,D,d,"Sort Icon","sort",i,C==="ascending"?"ASC":"DESC","Cards List",_,k),e(yt({uiState:{sortKey:i,sortOrder:C}}))},onSearchTextChanged:i=>{e(oc(i))},onReloadCards:()=>{e(ca(S,R&&v,w&&m,!0))},onLetsGoClick:()=>{t("./onboard")},onBackClick:()=>{t("../../")},onTotalCashbackClick:()=>{sa(R,v,B)&&d!=null&&J.trackCardsCashbackOverviewClick(x,D,d,"Cashback Overview","cashback_details_viewed",_,k),t("./cashback")},onClickStatementsIcon:()=>{sa(R,v,B)&&d!=null&&J.trackCardsStatementsClick(x,D,d,_,k),t("./statements")},onCreateNowClick:i=>{sa(R,v,B)&&d!=null&&J.trackCardsNewCardClick(x,D,d,"Promo Banner","card_creation_initiated","Card List",_,k),t(`./new?cardType=${i}`)},onPromoCardClick:i=>{t(i==="debit"&&R&&!u||i==="credit"&&l&&!M?`../promo?cardPromoType=${i}`:"./setup")},navigateToCreditCardPaymentPage:(i,C)=>{h==="Completed"&&a.company!=null&&d!=null&&J.trackCardsPayEarlyClick(x,D,d,"Card List",i,C,{isZeniCheckingEnabled:a.company.companyZeniAccountInfo.isZeniAccountEnabled,isZeniCheckingPaymentSource:p?.accType==="depositAccount",creditCardPaymentSourceAccountName:p?.label,creditCardPaymentSourceAccountType:p?.accType,creditCardPaymentSourceLastFourDigits:p?.accountLast4,creditCardPaymentSourceBalance:p?.accountBalance?.available?.amount??0},_,k);const N=li(I);t(N)},navigateToCreditCardPaymentHistoryPage:()=>{const i=ui(I),C=ye(s.state?.pathnameStackToGoBack,s.pathname);t(i,{state:{pathnameStackToGoBack:C}})},shouldShowPayNowInfoTooltip:j,onSetRowActionCardId:i=>{e(cc(i))},onSetBulkActionCardIds:i=>{e(er(i))},onEventReceived:i=>{ci.has(i)&&At(e,S,R&&v,w&&m)},onPusherSubscribed:()=>{At(e,S,R&&v,w&&m)}}})(ct(ro));function gn({isPaymentDrawerOpen:e}){const n=de(),t=pe(),a=Ce(),s=r.useCallback(($,Ue)=>{t(er([])),n($,Ue)},[t,n]),[y,f]=r.useState(!1),[S,w]=r.useState(re.getPayNowInfoTooltip()??!1),l=$=>{re.savePayNowInfoTooltip($),w($)},[m,R]=r.useState(!1),v=re.getSignedInUser(),u=o($=>fe($)),[M,x]=r.useState(!1),[B,p]=r.useState(!1),{isAiCfoAccessEnabled:h,onAskAiCfoClick:D}=xa({mobileExploreReferrer:"Cards"}),d=u.userRole.includes("charge_card_user"),_=!d,k=!!u.companyDebitCardInfo?.info?.isDebitCardEnabled,{useFeatureGate:j,useDynamicConfig:A}=le(),{isFeatureEnabled:I}=j(K.isCashbackFeatureEnabled),{isFeatureEnabled:L}=j(K.isChargeCardFeatureEnabled),{isFeatureEnabled:i}=j(K.isDebitCardFeatureEnabled),{isFeatureEnabled:C}=j(K.isEarlyPayFeatureEnabled),{isFeatureEnabled:N}=j(K.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:G}=j(K.isCardsCommentingEnabled),{isFeatureEnabled:U}=j(K.isAiCfoFileUploadEnabled),{isFeatureEnabled:O}=j(K.isCardPolicyEnabled),{isFeatureEnabled:z}=j(K.isAiCardCreationEnabled),Y=Te(i,u),b=xe({isDebitCardFeatureEnabled:i,isBankingOnlyTenant:Y}),T=we(u),Z=ve(u),q=u.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,E=Be({isCardsOnlyTenant:T,isChargeCardFeatureEnabled:L,isBookKeepingTenant:Z,isDebitCardProductVisible:b,chargeCardsCreditAccountLimit:q}),V=Ir({isCardsOnlyTenant:T,isChargeCardFeatureEnabled:L,isBookKeepingTenant:Z}),{configValue:Q}=A(Ye.zeniCardsConfig),X=Fe(),g=Pe(X?.loggedInUserRoleMap),F=o($=>oa($,u.companyId)),P=ia(F.controllers),ee=Q.charge_card_cashback_rate_per_transaction!=null?Q.charge_card_cashback_rate_per_transaction:.0175,W=Q.credit_card_pay_now_threshold_by_company_id?.[u.companyId]??Q.default_credit_card_pay_now_threshold??ko,ke=Q.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(Q.enable_card_controls_for_company_ids)&&Q.enable_card_controls_for_company_ids.includes(u.companyId),Se=!!u.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,ge=!!u.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,ae=!!u.companyChargeCardInfo?.info?.isChargeCardEnabled,ue=o($=>Vn($)),oe=ya(ue.updateStatus),te=o($=>ua($,_,b&&k,E&&ae)),Ze=o($=>ec($)),Ee=o($=>ac($)),ne=o($=>tc($)),Ke=o($=>nc($)),Re=o($=>ne==null?[]:On($.aiCfoState,ne).filter(Ue=>Ue.kind==="creating_cards"),Dt),ce=ya(Ee.fetchState);r.useEffect(()=>{ce==="In-Progress"&&Ee.fetchState==="Completed"&&ne!=null&&Re.forEach($=>{t(bt({chatSessionId:ne,id:$.id,entityIds:Ke,kind:"created_cards"}))})},[t,Ee.fetchState,ne,Ke,Re,ce]);const Ea=te.cards.filter($=>$.type.code.includes("debit")).map($=>$.connectedAccountId),pa=[...new Set(Ea)],ha=o($=>la($)),ta=o($=>nt($,pa)),Aa=o($=>wa($,u.companyId)),lt=Aa.companyChargeCardInfo?.primaryFundingAccount,ut=Aa.allFundingAccounts.find($=>$.id===lt?.accountId),me=te.fetchState,Ua=te.creditAccount,Da=r.useCallback(()=>g===!0&&O===!0&&me==="Completed"&&re.getCardPolicyPopupSeen(u.tenantEmailDomain??"")!==!0,[g,O,me,u.tenantEmailDomain]),[mt,Oa]=r.useState(Da);r.useEffect(()=>{Oa(Da())},[Da]);const ja=()=>{re.saveCardPolicyPopupSeen(u.tenantEmailDomain??"",!0),Oa(!1)},Ma=me==="Completed"&&!te.hasCreditCard&&!te.hasDebitCard;no({isDataReady:me==="Completed",pageContext:Ma?"cards_creation":"cards"});const{creditAccountRepayment:H}=o($=>da($)),he=o($=>Qa($).firstViewAfterActivation),{areTenantIdsInSync:Le}=gr(),Ve=Ut(g,ha),He=Ba(E,ae,g,Ua,H),Ge=Ot(b,k,g,ta,te.debitCardSummary),$e=Je(E,b,k,ae),na=te.creditAccount.balance.amount+te.creditAccount.hold.amount;if(r.useEffect(()=>{me==="Completed"&&(re.getPayNowInfoTooltip()==null||na<W*te.creditAccount.limit.amount/100)&&l(!0)},[me,W,na,te.creditAccount.limit.amount]),r.useEffect(()=>{if(e!=null&&e===!0&&H.initiatedRepayments.amount===0&&H.fetchState==="Completed"||oe==="In-Progress"&&ue.updateStatus==="Completed")l(!1),f(!0);else if(H.initiatedRepayments.amount>0&&H.fetchState==="Completed"){f(!1),document.body.style.overflow="auto";const $=aa(u.tenantEmailDomain);s($)}},[e,H.initiatedRepayments.amount,H.fetchState,oe,ue.updateStatus,s,u.tenantEmailDomain]),r.useEffect(()=>{!M&&(ae||k)&&Le&&(x(!0),t(ca(_,b&&k,E&&ae,!1)))},[M,_,t,Le]),r.useEffect(()=>{he&&m===!1&&(R(!0),setTimeout(()=>{t(Za())},5e3))},[he,m]),r.useEffect(()=>()=>{At.flush()},[]),r.useEffect(()=>{me==="Completed"&&d&&te.cards.length===1&&(te.cards[0].status.code==="inactive"&&te.cards[0].type.code==="business_physical_credit_card"?s(`./${te.cards[0].id}/activate`):te.cards[0].status.code!=="request_on_hold"&&(a.state?.message==="comingFromCardDetail"?s("../../"):s(`./${te.cards[0].id}`)))},[me,d,a.state,s,te.cards]),r.useEffect(()=>{if(me==="Completed"&&d){const $=te.cards.length,Ue=te.cards.filter(We=>We.cardHolderUserId===v?.userId).filter(We=>We.status.code==="request_on_hold");Ue.length>0&&$===Ue.length&&s("./onboard")}},[me,te.cards,d,s,v?.userId]),r.useEffect(()=>{me!=="Completed"||E&&H.fetchState!=="Completed"||b&&k&&g&&ta.fetchState!=="Completed"||J.trackCardsCardListView(P,$e,Ve,He,Ge)},[me,Ua,H.fetchState,ta.fetchState,g]),v==null)throw Error("Can't access charge card list page without signing in...");const Vr=o($=>ar($.userState,$.userRoleState,$.userListViewState,"cardAdmin")),Yt=vt(X?.loggedInUserRoleMap),Zt=$=>{p($)},Hr=te.creditAccount.limit,Gr=()=>{f(!1),s("..")},$r=u.companyChargeCardInfo?.info!=null&&Ia({cardInfo:u.companyChargeCardInfo.info,isProductVisible:E,isTOSAccepted:Se,isSetupEnabled:ae,isUserHasCardsAdminLevelAccess:g,isUserHasCardsAccess:Yt}),zr=u.companyDebitCardInfo?.info!=null&&Ia({cardInfo:u.companyDebitCardInfo.info,isProductVisible:b,isTOSAccepted:ge,isSetupEnabled:k,isUserHasCardsAdminLevelAccess:g,isUserHasCardsAccess:Yt}),Yr=$r||zr,Kt=function($){const{isEmptyCardsState:Ue,isChargeCardAdmin:We,isFileUploadEnabled:qt}=$,Qt=de(),Na=Ce(),{tenantEmailDomain:Va}=Me(),{isAiCfoOpen:qr,setIsAiCfoOpen:Jt}=mr(),Qr=Cr(),Jr=pr(),Xt=o(be=>Un(be)).createSessionAndSubmitState.fetchState==="In-Progress",{chips:en,isResolved:an}=Pr("cards_creation"),tn=r.useMemo(()=>_r(en,an,3),[en,an]),[Ha,Ct]=r.useState(""),nn=Jr&&Qr&&Va!=null&&!qr,fa=r.useCallback(be=>{if(Va==null)return;const Xr=ye(Na.state?.pathnameStackToGoBack,Na.pathname);Qt(`/${Va}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Xr,referrer:"cards_hero",aiCfoInitialQuestion:be,aiCfoShouldSubmit:be!=null&&be.trim().length>0}})},[Na.pathname,Na.state,Qt,Va]),rn=r.useCallback(be=>{be.trim().length!==0&&(Ct(""),fa(be))},[fa]),sn=r.useCallback(()=>{const be=Ha.trim();be.length!==0&&(Ct(""),fa(be))},[Ha,fa]),cn=r.useCallback(()=>{},[]),on=r.useCallback(be=>{Ct(be)},[]),dn=r.useCallback(()=>{Jt(!0)},[Jt]),ln=r.useCallback(()=>{fa(void 0)},[fa]);return r.useMemo(()=>{if(nn&&Ue&&We)return{aiAgentName:si,headline:ni,subheadline:ri,promptChips:tn,composer:{currentInput:Ha,isSubmitting:Xt,isFileUploadEnabled:qt,onInputChange:on,onSubmit:sn,onStopSubmit:cn},onPromptClick:rn,onOpenSidePanel:dn,onOpenFullView:ln,dataTestIdPrefix:"cards-ai-cfo-hero"}},[Ha,nn,We,Ue,qt,Xt,on,ln,dn,rn,cn,sn,tn])}({isEmptyCardsState:Ma,isChargeCardAdmin:g,isFileUploadEnabled:U}),Wt=z&&Kt!=null?c.jsx(hr,{...Kt}):null,Zr=h&&Wt==null,Kr=ea(u),Wr={events:Ca(Kr,Or),eventCallback:($,Ue,We)=>{We.onEventReceived($)},onSubscribed:$=>{$.onPusherSubscribed()}};return ae||k?c.jsxs(c.Fragment,{children:[me==="Completed"?c.jsxs(c.Fragment,{children:[c.jsx(Rt,{analytics:J,onLoad:()=>{J.trackPageLoaded(Sr.Event.cardsListPage),(E&&!ae||b&&!k)&&J.trackCardsPromoView(P,{isCreditCardOffered:E,isDebitCardOffered:b,isDebitCardEnabled:k,isCreditCardEnabled:ae},"Banner",b&&!k?"Debit Card":E&&!ae?"Credit Card":"","Card List")}}),c.jsx(rt,{showConfetti:he})]}):null,y===!0?c.jsx(Gt,{closeDrawerHandler:Gr,isPaymentDrawerOpen:y,pageName:"Card List",sourcePage:"cardListPage",creditAccountSpentAmount:na,productInformation:$e,creditAccountInformation:He,debitAccountInformation:Ge,cashbackInformation:Ve,isDebitCardInfoFetchStateCompleted:!(b&&k&&g)||ta.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!E||H.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!g||ha.fetchState==="Completed",paymentInitiatedDate:H.initiatedRepaymentDate}):null,c.jsxs(oi,{children:[c.jsx(Ie,{isAppContentDrawerOpen:B,handleDrawerToggle:Zt}),c.jsx(ii,{...Wr,isCashbackFeatureEnabled:I,isChargeCardFeatureEnabled:E,isDebitCardFeatureEnabled:b,isCreditCardProductVisibleForExpressInterest:V,updatePayNowInfoTooltip:l,showPayNowInfoTooltip:S,creditCardPayNowThreshold:W,signedInUser:v,chargeCardListState:te,location:a,admins:Vr.users,navigateAndClearBulkSelection:s,currentTenant:u,isCardControlsEnabled:ke,companyChargeCardInfoCreditAccountLimit:u.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,isCompanyInterestedInChargeCard:u.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,isUserHasCardsAdminLevelAccess:g,includeCreditAccountDebitSummaryAndCashbackInfo:_,onClickMenuIcon:()=>{Zt(!0)},creditLimit:Hr,isChargeCardSetupEnabled:ae,isDebitCardSetupEnabled:k,isEarlyPayEnabled:C,isChargeCardPaymentHistoryFeatureEnabled:N,cashbackRate:ee,controllerEmails:P,chargeCardCashbackDetailState:ha,depositAccountListWithDebitCardIssued:ta,isChargeCardTOSAccepted:Se,isDebitCardTOSAccepted:ge,primaryFundingAccountDetails:ut,chargeCardSetUpViewFetchState:Aa.fetchState,productInformation:$e,creditAccountInformation:He,debitAccountInformation:Ge,cashbackInformation:Ve,isAiCfoAccessEnabled:Zr,onAskAiCfoClick:D,isCardsCommentingEnabled:G,cardsAiCfoHero:Wt,onClickPolicyIcon:g&&O?()=>n(mi(u.tenantEmailDomain)):void 0,isPolicyIntroTooltipVisible:mt,onPolicyIntroTooltipClose:ja,pendingCreationCount:Ze})]})]}):(Se||ge)&&g===!0?c.jsx(ba,{to:"../setup"}):Yr?c.jsx(ba,{to:"../promo"}):c.jsx(va,{fetchState:me})}const di=e=>`/${e}/cards/new`,li=e=>`/${e}/cards/payment`,ui=e=>`/${e}/cards/payment-history`,mi=e=>`/${e}/cards/policy`,jr=[Br,Rr],Ci=new Set(jr),pi=De(function(e){const n=re.getSignedInUser(),t=fe(e),a=e.tenantState.currentTenantId,s=tr(e),y={userId:n?.userId??"",sessionId:n?.zeniSessionId??"",tenantId:a??""},f=t?.companyName??"",S=e.chargeCardPaymentHistoryState.downloadUIState.downloadState;return{fetchState:s.fetchState,filters:s.filters,isZeniTenant:pc(t),repaymentList:s.repaymentHistory,searchText:s.searchText,repaymentHistoryUsers:s.repaymentHistoryUsers,sortConfig:{sortKey:s.uiState.sortKey,sortOrder:s.uiState.sortOrder},downloadParams:{authParams:y,companyName:f,spendManagementEndPoint:`${kt}/spendManagement`,isShowDeletedBillsEnabled:!1,isShowDeletedReimbursementEnabled:!1},downloadState:S}},function(e,n){const{location:t,navigate:a}=n;return{onBackClick:()=>{const s=_e(t.state?.pathnameStackToGoBack),y=s.poppedPathname??"..";a(y,{state:{pathnameStackToGoBack:s.newStack}})},onColumnSortConfigChanged:(s,y)=>{e({type:"chargeCardPaymentHistory/updatePaymentHistoryUIState",payload:{uiState:{sortKey:s,sortOrder:y}}})},onFiltersChange:s=>{e(fc({filters:s}))},onReloadPayments:()=>{e(Ga(!0))},onEventReceived:s=>{Ci.has(s)&&e(Ga(!0))},onPusherSubscribed:()=>{e(Ga(!0))},onSearchTextChanged:s=>{e({type:"chargeCardPaymentHistory/updatePaymentHistorySearchText",payload:s})},updateDownloadStateHandler:s=>{e(hc({uiState:{downloadState:s}}))}}})(ct(so));function hi(){const e=de(),n=Ce(),t=pe(),{areTenantIdsInSync:a}=gr(),{useFeatureGate:s}=le();if(re.getSignedInUser()==null)throw Error("Can't access payment history page without signing in...");const y=o(g=>fe(g)),f=o(g=>tr(g)),[S,w]=r.useState(!1),[l,m]=r.useState(!1),[R,v]=r.useState(!1),[u,M]=r.useState(null),x=!y.userRole.includes("charge_card_user"),B=!!y.companyDebitCardInfo?.info?.isDebitCardEnabled,{isFeatureEnabled:p}=s(K.isChargeCardFeatureEnabled),{isFeatureEnabled:h}=s(K.isDebitCardFeatureEnabled),D=Te(h,y),d=xe({isDebitCardFeatureEnabled:h,isBankingOnlyTenant:D}),_=we(y),k=ve(y),j=y.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,A=Be({isCardsOnlyTenant:_,isChargeCardFeatureEnabled:p,isBookKeepingTenant:k,isDebitCardProductVisible:d,chargeCardsCreditAccountLimit:j}),I=!!y.companyChargeCardInfo?.info?.isChargeCardEnabled,L=Fe(),i=Pe(L?.loggedInUserRoleMap),C=o(g=>ua(g,x,d&&B,A&&I)),N=r.useMemo(()=>{const g=C.cards.filter(F=>F.type.code.includes("debit"));return[...new Set(g.map(F=>F.connectedAccountId))]},[C.cards]),G=o(g=>la(g)),U=o(g=>nt(g,N)),{creditAccountRepayment:O}=o(g=>da(g)),z=r.useMemo(()=>Ut(i,G),[i,G]),Y=r.useMemo(()=>Ba(A,I,i,C.creditAccount,O),[A,I,i,C.creditAccount,O]),b=r.useMemo(()=>Ot(d,B,i,U,C.debitCardSummary),[d,B,i,U,C.debitCardSummary]),T=r.useMemo(()=>Je(A,d,B,I),[A,d,B,I]),Z=C.creditAccount.balance.amount+C.creditAccount.hold.amount,q=r.useMemo(()=>u!=null?f.repaymentHistory.find(g=>g.cardRepaymentId===u):void 0,[u,f.repaymentHistory]),E=r.useCallback(g=>{M(g),t(ca(x,d&&B,A&&I,!1)),v(!0)},[t,x,d,B,A,I]),V=r.useCallback(()=>{v(!1),M(null),document.body.style.overflow="auto"},[]);r.useEffect(()=>{S||f.fetchState==="Completed"||f.fetchState==="In-Progress"||(w(!0),t(Ga()))},[S,t,f.fetchState]),r.useEffect(()=>{!l&&(I||B)&&a&&(m(!0),t(ca(x,!1,A&&I,!1)))},[l,I,B,a,t,x,A]);const Q=ea(y),X={events:Ca(Q,jr),eventCallback:(g,F,P)=>{P.onEventReceived(g)},onSubscribed:g=>{g.onPusherSubscribed()}};return c.jsxs(c.Fragment,{children:[R?c.jsx(Gt,{closeDrawerHandler:V,isPaymentDrawerOpen:R,pageName:"Payment History",sourcePage:"cardPaymentHistory",creditAccountSpentAmount:Z,productInformation:T,creditAccountInformation:Y,debitAccountInformation:b,cashbackInformation:z,isDebitCardInfoFetchStateCompleted:!(d&&B&&i)||U.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!A||O.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!i||G.fetchState==="Completed",paymentInitiatedDate:O.initiatedRepaymentDate,retryRepayment:q}):null,c.jsx(pi,{...X,location:n,navigate:e,accountInfoByAccountId:f.accountInfoByAccountId,onRetryPaymentClick:E})]})}const Sn=Ne.div`
|
|
26
|
+
display: flex;
|
|
27
|
+
height: 100vh;
|
|
28
|
+
width: 100%;
|
|
29
|
+
flex: 1 1 auto;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
overflow: auto;
|
|
32
|
+
align-items: center;
|
|
33
|
+
background-color: ${e=>e.theme.colors.grey4};
|
|
34
|
+
`,bn=Xe.getLocalizedStrings().months;function fi(){const e=de(),n=pe(),t=Ce(),{creditAccount:a,creditAccountRepayment:s}=o(T=>da(T)),y=`${fr.cardMicroServiceBaseUrl}/1.0/credit-accounts/${a.id}`,[f,S]=r.useState(!1),[w,l]=r.useState(!1),m=o(T=>gc(T)),{useFeatureGate:R}=le(),v=o(T=>fe(T)),{isFeatureEnabled:u}=R(K.isChargeCardFeatureEnabled),{isFeatureEnabled:M}=R(K.isDebitCardFeatureEnabled),{isFeatureEnabled:x}=R(K.isCardsCommentingEnabled),B=Ar(x?v.companyId:void 0,{clearParams:x&&m.fetchState==="Completed"}),p=Te(M,v),h=xe({isDebitCardFeatureEnabled:M,isBankingOnlyTenant:p}),D=we(v),d=ve(v),_=v.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,k=Be({isCardsOnlyTenant:D,isChargeCardFeatureEnabled:u,isBookKeepingTenant:d,isDebitCardProductVisible:h,chargeCardsCreditAccountLimit:_}),j=!!v.companyDebitCardInfo?.info?.isDebitCardEnabled,A=!!v.companyChargeCardInfo?.info?.isChargeCardEnabled,I=o(T=>oa(T,v.companyId)),L=ia(I.controllers),i=o(T=>nr(T)),C=i.cards.filter(T=>T.type.code.includes("debit")).map(T=>T.connectedAccountId),N=[...new Set(C)],G=o(T=>nt(T,N)),U=o(T=>Sc(T));r.useEffect(()=>{w||a.fetchState==="Completed"||a.fetchState==="In-Progress"||(S(!0),n(Qe()))},[f,n,a.fetchState]),r.useEffect(()=>{w||a.fetchState!=="Completed"||a.id==null||m.fetchState==="Completed"||m.fetchState==="In-Progress"||(l(!0),n(bc(a.id)))},[w,n,a.fetchState,a.id,m.fetchState]),r.useEffect(()=>{G.fetchState!=="Completed"&&G.fetchState!=="In-Progress"&&h&&j&&n(rr()),i.fetchState!=="Completed"&&i.fetchState!=="In-Progress"&&n(je()),U.fetchState!=="Completed"&&U.fetchState!=="In-Progress"&&h&&j&&n(yc()),s.fetchState!=="Completed"&&s.fetchState!=="In-Progress"&&k&&A&&n(Pt())},[G.fetchState,h,j,i.fetchState,U.fetchState,s.fetchState,k,A]),r.useEffect(()=>{if(m.fetchState==="Completed"&&a.fetchState==="Completed"&&s.fetchState==="Completed"&&i.fetchState==="Completed"&&(!h||!j||G.fetchState==="Completed"&&U.fetchState==="Completed")){let T="",Z="";if(m.statements.length>0){const Q=m.statements[m.statements.length-1].period,[X,g]=Q.split("-"),F=m.statements[0].period,[P,ee]=F.split("-");T=`${bn[parseInt(g)-1]} ${X}`,Z=`${bn[parseInt(ee)-1]} ${P}`}const q=Je(k,h,j,A),E=Ba(k,A,!0,a,s),V=Ot(h,j,!0,G,U);J.trackCardsCreditCardStatementsView(L,q,{numberOfStatements:m.statements.length,oldestStatementMonthYear:T,latestStatementMonthYear:Z},E,V)}},[m.fetchState,a.fetchState,s.fetchState,G.fetchState,i.fetchState,U.fetchState]);const O=()=>{const T=_e(t.state?.pathnameStackToGoBack),Z=T.poppedPathname??"..";e(Z,{state:{pathnameStackToGoBack:T.newStack}})},z=o(T=>la(T)),Y=re.getSignedInUser(),b={userId:Y?.userId??"",sessionId:Y?.zeniSessionId??"",tenantId:v.tenantId??""};if(Y==null)throw Error("Can't access address page without signing in...");if(m.fetchState!=="Completed")return c.jsx(Sn,{children:c.jsx(co,{onBackClick:O})});{const T=Je(k,h,j,A);return c.jsx(Sn,{children:c.jsx(oo,{currentTenantCompanyName:v.companyName,statementListView:m,productInformation:T,onBackClick:O,authParams:b,controllerEmails:L,isChargeCardFeatureEnabled:k,isDebitCardFeatureEnabled:h,isDebitCardSetupEnabled:j,isChargeCardSetupEnabled:A,isCardsCommentingEnabled:x,initialOpenThreadRequest:B,chargeCardCashbackDetailState:z,creditAccount:a,creditAccountRepayment:s,depositAccountListWithDebitCardIssued:G,debitCardSummary:U,downloadEndPoint:y})})}}const Mr=[ma,dt],gi=new Set(Mr),Si={containerWidth:new Fa(100,58)},bi=({appContent:e})=>{const n=Ta(),t=pe(),a=de(),s=Ce(),{useDynamicConfig:y}=le(),[f,S]=r.useState(!1),[w,l]=r.useState(!1),[m,R]=r.useState(!1),[v,u]=r.useState(!1),M=r.useRef(!1),x=r.useRef(null);r.useEffect(()=>()=>{x.current!=null&&(clearTimeout(x.current),x.current=null)},[]);const[B,p]=r.useState(!1),[h,D]=r.useState(!1),d=re.getSignedInUser();if(d==null)throw Error("Can't access onboarding card page without signing in...");const _=o(V=>fe(V)),{configValue:k}=y(Ye.zeniCardsConfig),j=o(V=>Ic(V)),{tenantEmailDomain:A}=_,I=o(V=>V.settingsViewState.profile.fetchState),L=o(V=>V.chargeCardListState.fetchState),i=o(V=>V.settingsViewState.profile.userId),C=o(V=>V.chargeCardConfigState.fetchState);r.useEffect(()=>{f===!1&&I!=="In-Progress"&&I!=="Completed"&&(t(kc()),S(!0)),w===!1&&C!=="In-Progress"&&C!=="Completed"&&(t(Ja()),l(!0)),m===!1&&L==="Not-Started"&&(R(!0),t(je()))},[f,m,L,w,C]),r.useEffect(()=>{I==="Completed"&&B===!1&&i!=null&&L==="Completed"&&j.cards.length>0&&(t(Ec({userId:i})),t(sr({cardId:j.cards[j.cards.length-1].id})),p(!0))},[I,B,i,L]),r.useEffect(()=>{if(!v&&j.fetchState==="Completed"&&j.cards.length===0){const V=_e(s.state?.pathnameStackToGoBack),Q=V.poppedPathname??aa(A);a(Q,{state:{pathnameStackToGoBack:V.newStack}})}},[j.fetchState,j.cards,v]);const N=o(V=>Qa(V)),G=ya(N.updateStatus.fetchState),U=N.currentDisplayedCardId,{useFeatureGate:O}=le(),{isFeatureEnabled:z}=O(K.isChargeCardFeatureEnabled),Y=!!_.companyChargeCardInfo?.info?.isChargeCardEnabled,b=!_.userRole.includes("charge_card_user")&&z&&Y,T=o(V=>U!=null?cr(V.chargeCardState,U):null),Z=()=>{U!=null&&(M.current=!0,x.current!=null&&clearTimeout(x.current),x.current=setTimeout(()=>{M.current=!1,x.current=null},5e3),t(ka(U,b,!0)),t(je(!0)),u(!0))},q=ea(_);jt({events:Ca(q,Mr),onSubscribed:()=>{t(je(!0))},onEvent:(V,Q)=>{if(!gi.has(V))return;const X=$t(Q),g=M.current;if(V===ma){const P=ie(X?.card_id)??U;if(P!=null){const ee=zt(X,P);if(ee!=null)return t(wt(ee)),void(P!==U||g||Z())}}if(V===dt)return void t(je(!0));const F=ie(X?.card_id)??U;(U==null||F===U)&&U!=null?g||Z():t(je(!0))}}),r.useEffect(()=>{if(v&&U!=null&&T!=null&&T.status.code!=="request_on_hold"){const V=Ae(_.tenantEmailDomain,U,d,T),Q=ye(s.state?.pathnameStackToGoBack,s.pathname);t(Ac()),T?.type.code==="business_virtual_credit_card"&&t(Xa()),a(V,{state:{pathnameStackToGoBack:Q},replace:!0}),M.current=!1,x.current!=null&&(clearTimeout(x.current),x.current=null)}},[v,T?.status.code]),r.useEffect(()=>{G==="In-Progress"&&N.updateStatus.fetchState==="Completed"&&setTimeout(Z,3e3)},[G,N.updateStatus.fetchState]);const E=V=>{D(V)};if(I!=="Completed"||j.cards.length===0)return c.jsxs(yn,{children:[c.jsx(Ie,{isAppContentDrawerOpen:h,handleDrawerToggle:E}),c.jsx(io,{})]});if(i==null)throw Error("Can't access my userId.");return c.jsxs(yn,{children:[c.jsx(Ie,{isAppContentDrawerOpen:h,handleDrawerToggle:E}),c.jsx(yi,{chargeCardListView:j,cardUserOnboardingView:N,navigate:a,currentTenant:_,myUserId:i,location:s,chargeCardCashbackRatePerTransaction:k.charge_card_cashback_rate_per_transaction!=null?k.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{E(!0)}}),e!=null?c.jsx(Ii,{windowSize:n,children:e}):null]})},yi=De(function(e,{currentTenant:n,cardUserOnboardingView:t,chargeCardListView:a,myUserId:s}){const y=ua(e,!1,!1,!1);let f=!1;return y.fetchState==="Completed"&&y.cards.length<=1&&(f=!0),{cards:a.cards,showMenuIcon:f,companyLegalName:n.companyName,twoFAView:t.twoFAView,cardUserOnboardingLocalData:t.cardUserOnboardingLocalData??{userId:s},isDOBDisabled:t.isDOBPresent,onboardingProgressStatus:t.onboardingProgressStatus}},function(e,n){const{navigate:t,cardUserOnboardingView:a,location:s,currentTenant:y}=n,{tenantEmailDomain:f}=y;return{updateCardUserOnboardingLocalData:S=>{e(Cn({localData:S}))},onGetOtp:S=>{if(a.cardUserOnboardingLocalData!=null){const w={...a.cardUserOnboardingLocalData,phone:S};e(Cn({localData:w}))}e(tt(S,"CardUserOnboarding"))},onResendOtp:S=>{e(at(S,"CardUserOnboarding"))},onVerifyOtp:(S,w)=>{e(et(S,w,"CardUserOnboarding"))},onVerifyOtpSuccess:S=>{e(Dc()),S!=null&&re.saveZeniOtpToken(S)},setCurrentDisplayedCardId:S=>{e(sr({cardId:S}))},onBackClick:()=>{const S=_e(s.state?.pathnameStackToGoBack),w=S.poppedPathname??aa(f);t(w,{state:{pathnameStackToGoBack:S.newStack}})}}})(lo),Ii=Ne.div`
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
width: ${e=>`${Si.containerWidth.value(e.windowSize)}%`};
|
|
38
|
+
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
39
|
+
`,yn=Ne.div`
|
|
40
|
+
display: flex;
|
|
41
|
+
min-height: 100%;
|
|
42
|
+
width: 100%;
|
|
43
|
+
flex: 1 1 auto;
|
|
44
|
+
flex-direction: column;
|
|
45
|
+
align-items: center;
|
|
46
|
+
background-color: ${e=>e.theme.colors.grey4};
|
|
47
|
+
`,ki={containerWidth:new Fa(100,58)},Ei=({appContent:e})=>{const n=Ta(),t=pe(),a=de(),{cardId:s}=Me(),y=Ce(),{useDynamicConfig:f,useFeatureGate:S}=le(),[w,l]=r.useState(!1),[m,R]=r.useState(!1),[v,u]=r.useState(!1),[M,x]=r.useState(!1),B=re.getSignedInUser();if(B==null)throw Error("Can't access onboarding card page without signing in...");const p=o(b=>fe(b));if(s==null)throw Error("Empty card id is not valid...");const{configValue:h}=f(Ye.zeniCardsConfig),D=o(b=>_c(b,s)),{isFeatureEnabled:d}=S(K.isChargeCardFeatureEnabled),{isFeatureEnabled:_}=S(K.isDebitCardFeatureEnabled),k=Te(_,p),j=xe({isDebitCardFeatureEnabled:_,isBankingOnlyTenant:k}),A=we(p),I=ve(p),L=p.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,i=Be({isCardsOnlyTenant:A,isChargeCardFeatureEnabled:d,isBookKeepingTenant:I,isDebitCardProductVisible:j,chargeCardsCreditAccountLimit:L}),C=D.chargeCard,N=o(b=>b.chargeCardConfigState.fetchState);r.useEffect(()=>{w===!1&&N!=="In-Progress"&&N!=="Completed"&&(t(Ja()),l(!0)),m===!1&&D.fetchState==="Not-Started"&&(R(!0),t(ka(s,!1,i)))},[m,D.fetchState,w,N]);const G=C?.type.code==="business_physical_debit_card"||C?.type.code==="business_virtual_debit_card";r.useEffect(()=>{if(D.fetchState==="Completed"){if(v===!1&&(G===!1||G&&C.status?.code!=="active"||G&&C.status.code==="active"&&C.isPinSet||C.cardHolderUserId!==B.userId)){const b=Ae(p.tenantEmailDomain,s,B,C,!0),T=ye(y.state?.pathnameStackToGoBack,y.pathname);a(b,{state:{pathnameStackToGoBack:T}})}else if(v&&D.isRefreshingViewInBackground===!1&&C?.isPinSet===!0){t(Pc({chargeCardId:s}));const b=Ae(p.tenantEmailDomain,s,B,C,!0),T=ye(y.state?.pathnameStackToGoBack,y.pathname);t(Xa()),a(b,{state:{pathnameStackToGoBack:T}})}}},[D.fetchState,C?.type.code,v,D.isRefreshingViewInBackground]);const U=re.getZeniOtpTokenForCardHolder(s),O=o(b=>Mn(b.userState,B.userId)),z=()=>{C?.isPinSet!==!0&&t(ga(s,!0))};r.useEffect(()=>{D.updateDebitCardPinAttemptFetchState.fetchState==="Completed"&&(setTimeout(z,3e3),u(!0))},[D.updateDebitCardPinAttemptFetchState.fetchState]);const Y=b=>{x(b)};if(N!=="Completed"||C==null)return c.jsx(va,{fetchState:"In-Progress"});if(O?.phone==null)throw Error("Can't access user phone number.");return c.jsxs(_i,{children:[c.jsx(Ie,{isAppContentDrawerOpen:M,handleDrawerToggle:Y}),c.jsx(Ai,{cardId:s,card:C,phone:O.phone,signedInUser:B,isSandboxEnv:xt(),debitCardDetailState:D,signedInUserToken:U,navigate:a,currentTenant:p,location:y,chargeCardCashbackRatePerTransaction:h.charge_card_cashback_rate_per_transaction!=null?h.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{Y(!0)}}),e!=null?c.jsx(Di,{windowSize:n,children:e}):null]})},Ai=De(function(e,{debitCardDetailState:n,cardId:t}){const a=Nn(e,t),s=n.updateStatus,y=ua(e,!1,!1,!1);let f=!1;return y.fetchState==="Completed"&&y.cards.length<=1&&(f=!0),{showMenuIcon:f,vgsVaultId:st.cardVaultId,twoFAView:a,setPinWaitStatus:s}},function(e,n){const{navigate:t,cardId:a,location:s,currentTenant:y,debitCardDetailState:f}=n,S=f.chargeCard?.cardProviderID,{tenantEmailDomain:w}=y;return{onGetOtp:l=>{S!=null&&e(tt(l,"ChargeCardHolder",a))},onUpdateDebitCardPinAttempt:l=>{e(Zn(a,l))},onResendOtp:l=>{S!=null&&e(at(l,"ChargeCardHolder",a))},onVerifyOtp:(l,m)=>{S!=null&&e(et(l,m,"ChargeCardHolder",a))},onVerifyOtpSuccess:l=>{l!=null&&re.saveZeniOtpTokenForCardHolder(l,a)},onSetPinSuccess:()=>{e(wc({chargeCardId:a}))},onBackClick:()=>{const l=_e(s.state?.pathnameStackToGoBack),m=l.poppedPathname==null||l.poppedPathname.includes("activate")===!0?aa(w):l.poppedPathname;t(m,{state:{pathnameStackToGoBack:l.newStack}})}}})(uo),Di=Ne.div`
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
width: ${e=>`${ki.containerWidth.value(e.windowSize)}%`};
|
|
51
|
+
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
52
|
+
box-shadow: ${e=>`${Ka.sp0} 2px ${Ka.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
53
|
+
`,_i=Ne.div`
|
|
54
|
+
display: flex;
|
|
55
|
+
min-height: 100%;
|
|
56
|
+
width: 100%;
|
|
57
|
+
flex: 1 1 auto;
|
|
58
|
+
flex-direction: column;
|
|
59
|
+
align-items: center;
|
|
60
|
+
background-color: ${e=>e.theme.colors.grey4};
|
|
61
|
+
box-shadow: ${e=>`${Ka.sp0} 2px ${Ka.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
62
|
+
`,Pi={overlayWidth:new Fa(pt[12],pt[12],pt[9])},wi=De(function(e,n){const t=Tt(e,!1,!1),a=n.lineId,s=t.customAddress[a],y=t.customAddressStatus[a]??{fetchState:"Not-Started",error:void 0};return{googleAPIKey:n.googleAPIKey,customAddress:s,customAddressStatus:y,lineId:a}},function(e,n){const{newCustomAddressId:t,lineId:a,chargeCardTypeOption:s}=n;return{onSubmitHandler:y=>{t!=null&&e(or(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${a}_address`));const f=Do(y);e(Fc({addressType:`${s==="creditCard"?"credit":"debit"}_custom_shipping_${a}_address`,addressToCreate:f})),e(xc(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${a}_address`))},onDismissClick:()=>{n.onDismissClick(),t!=null&&e(Tc({addressId:t,cardLineId:a,cardType:s==="creditCard"?"business_physical_credit_card":"business_physical_debit_card"}))}}})(mo),vi=({lineId:e,closeDrawerHandler:n,chargeCardTypeOption:t})=>{const a=Bt(),s=Ta(),y=()=>{n()},f=o(S=>vc(`${t==="creditCard"?"credit":"debit"}_custom_shipping_${e}_address`,S))?.newAddressId;return c.jsx(br,{anchor:"right",open:e.length>0,PaperProps:{style:{minWidth:Pi.overlayWidth.valuePercentage(s),boxShadow:"none",zIndex:8}},slotProps:{backdrop:{style:{opacity:.75,backgroundColor:a.colors.black,cursor:"pointer"}}},onClose:(S,w)=>(w==="backdropClick"||w==="escapeKeyDown")&&y(),children:c.jsx(wi,{googleAPIKey:st.googleMapsAPIKey,onDismissClick:y,lineId:e,chargeCardTypeOption:t,newCustomAddressId:f})})},Ti=De(function(e,n){const{isChargeCardFeatureEnabled:t,isDebitCardFeatureEnabled:a,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:y,isChargeCardSetupEnabled:f,isDebitCardSetupEnabled:S}=n,w=Tt(e,t&&f,a&&S);return{issueChargeCards:w,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:y,isDebitCardFeatureEnabled:a,isChargeCardFeatureEnabled:t,isChargeCardSetupEnabled:f,isDebitCardSetupEnabled:S,cardHolderCandidates:w.userList.map(l=>l.user).filter(Boolean),allRoles:w.userList.map(l=>l.userRole),allAccountingClasses:w.allAccountingClasses,userList:w.userList}},function(e,n){return{onIssueCardClick:()=>{e(Lc())},onSaveChangesToLocalStore:t=>{e(Rc(t))},onDismissClick:()=>{e(ir()),n.navigate("../")},resetCustomAddressByLineID:(t,a)=>{e(or(`${a==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`))},openAddAddressDrawerHandler:n.openAddAddressDrawerHandler}})(ho);function Fi(){const e=re.getSignedInUser(),n=de(),t=pe(),a=Co(),[s]=In(),y=s.get("cardType"),{useFeatureGate:f}=le(),{isFeatureEnabled:S}=f(K.isIssuePhysicalCardEnabled),{isFeatureEnabled:w}=f(K.isIssuePhysicalDebitCardEnabled),{isFeatureEnabled:l}=f(K.isDebitCardFeatureEnabled),{isFeatureEnabled:m}=f(K.isChargeCardFeatureEnabled),R=o(z=>fe(z)),v=Te(l,R),u=xe({isDebitCardFeatureEnabled:l,isBankingOnlyTenant:v}),M=we(R),x=ve(R),B=R.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,p=Be({isCardsOnlyTenant:M,isChargeCardFeatureEnabled:m,isBookKeepingTenant:x,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:B}),[h,D]=r.useState(!1);if(e==null)throw Error("Can't access issue card page without signing in...");r.useEffect(()=>{h||(D(!0),t(Bc(u&&_,p&&d,!1)))},[h,D,t]);const d=!!R.companyChargeCardInfo?.info?.isChargeCardEnabled,_=!!R.companyDebitCardInfo?.info?.isDebitCardEnabled,k=o(z=>Tt(z,p&&d,u&&_)),j=k.fetchState,A=k.issueCardStatus.fetchState,I=k.lastSelfIssuedDebitCardId,L=o(z=>I!=null?cr(z.chargeCardState,I):void 0),[i,C]=r.useState(null),[N,G]=r.useState(null),U=()=>{C(null)},O=(z,Y)=>{C(z),G(Y)};return r.useEffect(()=>{if(A==="Completed"){if(I!=null&&L?.type.code==="business_virtual_debit_card"){let z;z=L?.status.code==="request_on_hold"&&e.userId===L.cardHolderUserId?Er(R.tenantEmailDomain):Ae(R.tenantEmailDomain,I,e,L),n(z)}else n("../");t(ir())}},[A,I]),j==="Completed"?c.jsxs(c.Fragment,{children:[i!==null&&N!==null?c.jsx(vi,{closeDrawerHandler:U,lineId:i,chargeCardTypeOption:N}):null,c.jsx(Ti,{themeState:a,isIssuePhysicalCardEnabled:S,isIssuePhysicalDebitCardEnabled:w,isDebitCardFeatureEnabled:u,isChargeCardFeatureEnabled:p,isChargeCardSetupEnabled:d,isDebitCardSetupEnabled:_,navigate:n,fetchState:k.fetchState,openAddAddressDrawerHandler:O,defaultCardType:y==="creditCard"||y==="debitCard"?y:void 0})]}):j==="Error"?c.jsx(ot,{}):c.jsx(po,{})}const Nr=[ma,dt],xi=new Set(Nr),Bi=Ne.div`
|
|
63
|
+
display: flex;
|
|
64
|
+
height: 100vh;
|
|
65
|
+
width: 100%;
|
|
66
|
+
flex: 1 1 auto;
|
|
67
|
+
flex-direction: column;
|
|
68
|
+
overflow: auto;
|
|
69
|
+
align-items: center;
|
|
70
|
+
background-color: ${e=>e.theme.colors.grey4};
|
|
71
|
+
`,Ri=De(function(e,n){const{myPendingActivationChargeCardListState:t}=n;return{myPendingActivationChargeCardListView:t,uiState:t.uiState,signedInUser:n.signedInUser}},function(e,n){const{navigate:t,currentTenant:a,location:s,signedInUser:y,myPendingActivationChargeCardListState:f}=n,{tenantEmailDomain:S}=a,{cards:w}=f;return{onChargeCardRowClick:l=>{const m=kr(w,l),R=Ae(S,l,y,m),v=ye(s.state?.pathnameStackToGoBack,s.pathname);t(R,{state:{pathnameStackToGoBack:v}})},onColumnSortConfigChanged:(l,m)=>{e(yt({uiState:{sortKey:l,sortOrder:m}}))},onReloadCards:()=>{e(je())},onBackClick:()=>{const l=a.userRole.includes("charge_card_user");e(yt({uiState:{sortKey:l?"cardName":"owner",sortOrder:"ascending"}})),t("../")}}})(fo);function Li(){const e=de(),n=pe(),t=Ce(),a=Bt(),[s,y]=r.useState(!1),f=o(O=>Uc(O)),S=o(O=>fe(O)),w=o(O=>oa(O,S.companyId)),l=ia(w.controllers),{useFeatureGate:m}=le(),{isFeatureEnabled:R}=m(K.isChargeCardFeatureEnabled),{isFeatureEnabled:v}=m(K.isDebitCardFeatureEnabled),u=Te(v,S),M=xe({isDebitCardFeatureEnabled:v,isBankingOnlyTenant:u}),x=!!S.companyDebitCardInfo?.info?.isDebitCardEnabled,B=!!S.companyChargeCardInfo?.info?.isChargeCardEnabled,p=Fe(),h=we(S),D=ve(S),d=S.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Be({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:R,isBookKeepingTenant:D,isDebitCardProductVisible:M,chargeCardsCreditAccountLimit:d}),k=Pe(p?.loggedInUserRoleMap),j=o(O=>la(O)),{creditAccount:A,creditAccountRepayment:I}=o(O=>da(O)),L=o(O=>nr(O)).cards.filter(O=>O.type.code.includes("debit")).map(O=>O.connectedAccountId),i=[...new Set(L)],C=o(O=>nt(O,i));r.useEffect(()=>{s||f.fetchState==="Completed"||f.fetchState==="In-Progress"||(y(!0),n(je()),n(Ja()))},[s,n,f.fetchState]),r.useEffect(()=>{if(f.fetchState==="Completed"&&f.cards.length===1&&N!=null){const O=Ae(S.tenantEmailDomain,f.cards[0].id,N,f.cards[0]);e(O,{state:{message:t.state?.message}})}},[f.fetchState,f.cards]);const N=re.getSignedInUser();r.useEffect(()=>{A.fetchState!=="Completed"&&A.fetchState!=="In-Progress"&&_&&B&&k&&n(Qe()),I.fetchState!=="Completed"&&I.fetchState!=="In-Progress"&&k&&n(Pt()),C.fetchState!=="Completed"&&C.fetchState!=="In-Progress"&&M&&x&&k&&n(rr())},[A.fetchState,I.fetchState,n,C.fetchState,M,x,k,_,B]);const G=ea(S);if(jt({events:Ca(G,Nr),onEvent:(O,z)=>{if(!xi.has(O))return;const Y=$t(z);if(O===ma){const b=ie(Y?.card_id);if(b!=null){const T=zt(Y,b);if(T!=null)return void n(wt(T))}}n(je(!0))},onSubscribed:()=>{n(je(!0))}}),N==null)throw Error("Can't access address page without signing in...");const U=f.cards!=null&&f.cards.length>0;if(f.fetchState==="Completed"||U){const O=Je(_,M,x,B);return c.jsx(Bi,{children:c.jsx(Ri,{navigate:e,currentTenant:S,signedInUser:N,productInformation:O,myPendingActivationChargeCardListState:f,isChargeCardFeatureEnabled:_,isDebitCardFeatureEnabled:M,isDebitCardSetupEnabled:x,isChargeCardSetupEnabled:B,chargeCardCashbackDetailState:j,creditAccount:A,creditAccountRepayment:I,depositAccountListWithDebitCardIssued:C,controllerEmails:l,location:t})})}return c.jsx(va,{fetchState:"In-Progress",style:{backgroundColor:a.colors.grey5}})}const Ui=De(function(e,n){const{companyId:t,companyLegalName:a}=n;return{chargeCardSetupView:wa(e,t),admins:n.adminList,companyLegalName:a,meetingUrl:"https://meetings.hubspot.com/niharn/demo-zeni-charge-cards?embed=true"}},function(e,n){const{navigate:t,companyId:a,isCompanyBusinessVerificationAndPaymentSetUpDone:s,isDebitCardSetupEnabled:y,isChargeCardSetupEnabled:f,signedInUser:S,location:w,productInformation:l,isEarlyPayEnabled:m,controllerEmails:R,chargeCardsCreditAccountLimit:v}=n;return{onSetupButtonClick:u=>{if(S!=null&&J.trackCardsPromoPageClicked("enable cards"),s)switch(J.trackCardsEnableCardsClick(R,l,"Cards Promo"),u){case"credit":e(qe(a,!0,"charge_cards",m,!1));break;case"debit":e(qe(a,!0,"debit_cards",m,!1));break;case"debit_and_credit":e(v===0?qe(a,!0,"debit_cards",m,!0):qe(a,!0,"charge_cards__debit_cards",m,!1))}else switch(J.trackCardsSetupCardsClick(R,l,"Cards Promo"),u){case"credit":e(qe(a,!1,"charge_cards",m,!1));break;case"debit":e(qe(a,!1,"debit_cards",m,!1));break;case"debit_and_credit":e(v===0?qe(a,!1,"debit_cards",m,!0):qe(a,!1,"charge_cards__debit_cards",m,!1))}},onBackClick:()=>{const u=_e(w.state?.pathnameStackToGoBack);let M=u.poppedPathname;M==null&&(M=y||f?"..":"../.."),t(M,{state:{pathnameStackToGoBack:u.newStack}})},onLetsGoClick:()=>{t("./onboard")},onSetupChargeCardSuccess:()=>{s?(e(Xa()),t("../",{relative:"path"})):t("../setup",{relative:"path"})},onExpressInterestClick:()=>{e(Mc(a))}}})(So),Oi=()=>{const e=de(),{tenantEmailDomain:n}=Me(),[t]=In(),a=t.get("cardPromoType"),s=pe(),{useDynamicConfig:y,useFeatureGate:f}=le(),[S,w]=r.useState(!1),{isFeatureEnabled:l}=f(K.isDebitCardFeatureEnabled),{isFeatureEnabled:m}=f(K.isEarlyPayFeatureEnabled),{isFeatureEnabled:R}=f(K.isChargeCardFeatureEnabled),{configValue:v}=y(Ye.zeniCardsConfig),u=o(ne=>fe(ne)),M=o(ne=>oa(ne,u.companyId)),x=ia(M.controllers),B=v.charge_card_cashback_rate_per_transaction!=null?v.charge_card_cashback_rate_per_transaction:.0175,p=Ce(),h=re.getSignedInUserTenant(n)?.companyId??u.companyId,D=o(ne=>wa(ne,h)),d=D.primaryFundingAccount,_=u.companyBillPayInfo?.info,k=we(u),j=ve(u),A=Te(l,u),I=u.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,L=xe({isDebitCardFeatureEnabled:l,isBankingOnlyTenant:A}),i=Be({isCardsOnlyTenant:k,isChargeCardFeatureEnabled:R,isBookKeepingTenant:j,isDebitCardProductVisible:L,chargeCardsCreditAccountLimit:I}),C=Ir({isCardsOnlyTenant:k,isChargeCardFeatureEnabled:R,isBookKeepingTenant:j}),N=L&&i===!1,G=_?.businessVerificationStatus?.code==="verified"&&(N||d?.accType==="depositAccount"||Oc(d?.providerVerificationStatus?.code??"")),U=re.getSignedInUser(),O=!!u.companyZeniAccountInfo?.info?.isZeniAccountEnabled,z=!!u.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,Y=!!u.company?.companyChargeCardInfo.isChargeCardEnabled,b=!!u.company?.companyDebitCardInfo.isDebitCardEnabled,T=!!u.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,Z=ne=>{w(ne)},q=o(ne=>ne.chargeCardSetupViewState.fetchState);if(U==null)throw Error("Can't access Charge Card promo page without signing in...");const E=Fe(),V=Pe(E?.loggedInUserRoleMap),Q=vt(E?.loggedInUserRoleMap),[X,g]=r.useState(!1),[F,P]=r.useState(!1),[ee,W]=r.useState(!1);r.useEffect(()=>{X===!1&&p.state?.message==="activation"&&g(!0)},[p.state]),r.useEffect(()=>{F||q!=="Not-Started"||h==null||(P(!0),s(Pa(h,!0)))},[F,q,h,s]);const ke=u.companyChargeCardInfo?.info!=null&&Ia({cardInfo:u.companyChargeCardInfo.info,isProductVisible:C,isTOSAccepted:z,isSetupEnabled:Y,isUserHasCardsAdminLevelAccess:V,isUserHasCardsAccess:Q}),Se=u.companyDebitCardInfo?.info!=null&&Ia({cardInfo:u.companyDebitCardInfo.info,isProductVisible:L,isTOSAccepted:T,isSetupEnabled:b,isUserHasCardsAdminLevelAccess:V,isUserHasCardsAccess:Q}),ge=L&&Se&&C&&I>=0&&ke?"debit_and_credit":L&&Se?"debit":"credit",ae=Ao(a,ge),ue=D?.chargeCardTermsDetails?.fetchStatus?.fetchState,oe=r.useRef(null);r.useEffect(()=>{ue==="In-Progress"?oe.current=ae:ue!=="Error"&&ue!=="Not-Started"||(oe.current=null)},[ue,ae]);const te=ue!=="In-Progress"&&ue!=="Completed"||oe.current==null?ae:oe.current;r.useEffect(()=>{ae==="credit"&&(Y||C===!1&&b)||ae==="debit"&&b||ae==="debit_and_credit"&&b&&Y?e("../"):(ae==="debit_and_credit"&&z===!0&&T===!0||ae==="credit"&&(z===!0||C===!1&&T===!0)||ae==="debit"&&T===!0)&&V===!0&&e("../setup")},[G,Y,b,ae,z,T]),r.useEffect(()=>{ee||(s(jc("cardAdmin")),W(!0))},[ee]);const Ze=o(ne=>ar(ne.userState,ne.userRoleState,ne.userListViewState,"cardAdmin")),Ee=Je(C,L,b,Y);return(ke||Se)&&q==="Completed"?c.jsxs(c.Fragment,{children:[c.jsx(Rt,{analytics:J,onLoad:()=>{if(J.trackPageLoaded(Sr.Event.cardsPromoPage),!!C&&!Y||!!L&&!b||!!C&&!!L&&!b&&!Y){const ne=ji({isDebitCardSetupEnabled:b,isChargeCardSetupEnabled:Y,isCreditCardProductVisibleForExpressInterest:C,isDebitCardProductVisible:L});J.trackCardsPromoView(x,Ee,"Page",ne,"Promo Page")}}}),c.jsx(rt,{showConfetti:X}),c.jsx(Ie,{isAppContentDrawerOpen:S,handleDrawerToggle:Z}),c.jsx(Ui,{signedInUser:U,location:p,showEnableCardButton:G,isCompanyBusinessVerificationAndPaymentSetUpDone:G,isChargeCardSetupEnabled:Y,isDebitCardSetupEnabled:b,companyLegalName:u.companyName,adminList:Ze.users,isCheckingEnabled:O,navigate:e,companyId:h,cardPromoType:te,controllerEmails:x,productInformation:Ee,isCreditCardProductVisible:i,isDebitCardFeatureEnabled:l,isEarlyPayEnabled:m,cashbackRate:B,chargeCardsCreditAccountLimit:I,onClickMenuIcon:()=>{Z(!0)}})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:S,handleDrawerToggle:Z}),c.jsx(go,{})]})},ji=({isDebitCardSetupEnabled:e,isChargeCardSetupEnabled:n,isCreditCardProductVisibleForExpressInterest:t,isDebitCardProductVisible:a})=>t&&a&&!e&&!n?"Credit & Debit Card":t&&!n?"Credit Card":a&&!e?"Debit Card":"";function ld(){const e=Ce(),n=o(E=>fe(E)),{useFeatureGate:t}=le(),{isFeatureEnabled:a}=t(K.isChargeCardFeatureEnabled),{isFeatureEnabled:s}=t(K.isDebitCardFeatureEnabled),{isFeatureEnabled:y}=t(K.isEarlyPayFeatureEnabled),{isFeatureEnabled:f}=t(K.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:S}=t(K.isCardPolicyEnabled),w=Te(s,n),l=xe({isDebitCardFeatureEnabled:s,isBankingOnlyTenant:w}),m=bo(n,a,s),R=!!n.company?.companyChargeCardInfo.isChargeCardTOSAccepted,v=!!n.company?.companyDebitCardInfo.isDebitCardTOSAccepted,u=!!n.company?.companyChargeCardInfo.isChargeCardEnabled,M=!!n.company?.companyDebitCardInfo.isDebitCardEnabled,x=Fe(),B=Pe(x?.loggedInUserRoleMap),p=vt(x?.loggedInUserRoleMap),{isFeatureEnabled:h}=t(K.isCashbackFeatureEnabled),D=n.userRole.includes("charge_card_user"),d=!D,_=!D&&u,k=n?.userRole!=null&&Nc(n?.userRole),j=(n?.company==null||n.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!k)&&Vc(x?.loggedInUserRoleMap),A=Hc(x?.loggedInUserRoleMap),I=(n?.company==null||n.company.featuresActivationInfo?.isReimbursementFeatureEnabled&&!k)&&Gc(x?.loggedInUserRoleMap),{isFeatureEnabled:L}=t(K.isDepositAccountsFeatureEnabled),i=L&&!k&&Hn(x?.loggedInUserRoleMap),C=u&&!k,N=M&&!k,G=m&&!k&&Pe(x?.loggedInUserRoleMap),U=$c(x?.loggedInUserRoleMap),O=we(n),z=ve(n),Y=n.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,b=Be({isCardsOnlyTenant:O,isChargeCardFeatureEnabled:a,isBookKeepingTenant:z,isDebitCardProductVisible:l,chargeCardsCreditAccountLimit:Y}),T=n.companyChargeCardInfo?.info!=null&&Ia({cardInfo:n.companyChargeCardInfo.info,isProductVisible:b,isTOSAccepted:R,isSetupEnabled:u,isUserHasCardsAdminLevelAccess:B,isUserHasCardsAccess:p}),Z=n.companyDebitCardInfo?.info!=null&&Ia({cardInfo:n.companyDebitCardInfo.info,isProductVisible:l,isTOSAccepted:v,isSetupEnabled:M,isUserHasCardsAdminLevelAccess:B,isUserHasCardsAccess:p}),q=T||Z;return c.jsxs(es,{children:[B?c.jsx(se,{path:"setup",element:c.jsx(pn,{isBillPayAdminLevelAccess:j,isReimbursementAdminLevelAccess:I,isZeniAccountAdminLevelAccess:i,isChargeCardAdminLevelAccess:G,isUserHasOnlyCardAccess:U,isUserHasOnlyBillPayAccess:A,productType:"charge_cards",type:"setup"})}):null,B?c.jsx(se,{path:"verification",element:c.jsx(pn,{isBillPayAdminLevelAccess:j,isUserHasOnlyBillPayAccess:A,isReimbursementAdminLevelAccess:I,isZeniAccountAdminLevelAccess:i,isChargeCardAdminLevelAccess:G,isUserHasOnlyCardAccess:U,productType:"charge_cards",type:"verification"})}):null,B&&S?c.jsxs(c.Fragment,{children:[c.jsx(se,{path:"policy",element:c.jsx(jo,{})}),c.jsx(se,{path:"policy/new",element:c.jsx(vo,{})}),c.jsx(se,{path:"policy/:templateId/edit",element:c.jsx(Bo,{})})]}):null,c.jsx(se,{path:"promo",element:c.jsx(Oi,{})}),C||N?c.jsxs(c.Fragment,{children:[c.jsx(se,{path:"/",element:c.jsx(gn,{isPaymentDrawerOpen:!1})}),G&&y?c.jsx(se,{path:"payment",element:c.jsx(gn,{isPaymentDrawerOpen:!0})}):null,c.jsx(se,{path:"activate",element:c.jsx(Li,{})}),c.jsx(se,{path:"onboard",element:c.jsx(bi,{})}),B?c.jsx(se,{path:"new",element:c.jsx(Fi,{})}):null,h&&d?c.jsx(se,{path:"cashback",element:c.jsx(Go,{})}):null,_?c.jsx(se,{path:"statements",element:c.jsx(fi,{})}):null,G&&f&&u?c.jsx(se,{path:"payment-history",element:c.jsx(hi,{})}):null,c.jsx(se,{path:":cardId/activate",element:c.jsx(Yo,{})}),c.jsx(se,{path:":cardId/setPin",element:c.jsx(Ei,{})}),c.jsx(se,{path:":cardId/addToWallet",element:c.jsx(Mo,{})}),c.jsx(se,{path:":cardId/*",element:c.jsx(ti,{})}),c.jsx(se,{path:"*",element:c.jsx(ot,{})})]}):(R||v)&&B?c.jsx(se,{path:"*",element:c.jsx(ba,{to:"../setup"})}):q?c.jsx(se,{path:"*",element:c.jsx(ba,{to:"../promo",state:e.state})}):c.jsx(se,{path:"*",element:null})]})}export{ld as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as m}from"./liveblocks-qa_6WStS.js";import{a as g}from"./sentry-BTf2Dtmp.js";import{h as w,u as x,g as T,i as k,j as O,n as E}from"./core-CJUY0MOY.js";import{z as N,bc as P,x as F,d as V,f as j,af as b,bd as A,au as L,av as U,s as z}from"./index-B2ukUPdb.js";import{eV as D,gg as B,tz as M,gb as _,c6 as R,Pg as G,bn as Y,rz as H,rn as Q,l2 as Z,mD as S,Ph as $,bE as q,cy as C,mN as J,mQ as K}from"./zeni-epic-state-Da9EwYbz.js";import"./mui-CkYYTJAV.js";import{d as W}from"./routePaths-DbnM8jAc.js";import{M as X}from"./MobileAppDrawer-CDYOk1Tu.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new n.Error().stack;t&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[t]="1b7d0cd5-7a1a-4721-96b4-3973004aca60",n._sentryDebugIdIdentifier="sentry-dbid-1b7d0cd5-7a1a-4721-96b4-3973004aca60")}catch{}})();const ee=E(function(n){const t=_(n),i=N.getSignedInUser(),l=D(n),c=l.tenantId,p={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:c??""},f=R(l?.userRole??[])&&t.localData.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",e=G(n.companyConfigState),a=n.countryListState?.byCountryListCode?.nationalityCountryList?.countries??[];return{isCompanyVerified:t.companyView?.company?.company?.companyBillPayInfo?.companyVerificationStatus?.code==="verified",companyPassportView:t,allIndustries:e.companyIndustries??[],allNationalityCountries:a,isDisabled:f,authParams:p,filesEndPoint:`${L.fileMicroServiceBaseUrl}`,isZeniUser:Y(i)}},function(n,t){const{companyId:i,currentTenant:l,navigate:c,location:p}=t,{tenantEmailDomain:f}=l;return{onScheduleClick:e=>{let a=e.href;a.includes("http")||(a="https://".concat(a)),window.open(a,"_blank")},onSaveAll:()=>{n(K())},onAddressClick:e=>{const a=W(f,e),o=z(p.state?.pathnameStackToGoBack,p.pathname);c(a,{state:{pathnameStackToGoBack:o}})},onResetClick:()=>{n(J({companyId:i}))},onBackClick:()=>{c("../")},onCompanyDetailsChanged:e=>{const{companyInfo:a,incInfo:o,taxDetails:r,zeniFinanceTeam:d}=e,{website:u}=a,{meetingLink:y}=d,{incDate:s}=o,{taxesFiledYears:h}=r,v={companyInfo:{...a,website:u!=""&&u!=null?C(u):void 0,meetingLink:y!=""&&y!=null?C(y):void 0,industry:a.industry.selectedOption,companyIndustryType:a.companyIndustryType?.selectedOption??void 0,companySubIndustry:a.companySubIndustry?.selectedOption??void 0,businessModel:a.businessModel.selectedOption??"",companySourceOfFunds:a.companySourceOfFunds?.selectedOption,companySourceOfFundsDescription:a.companySourceOfFundsDescription??void 0,countriesOfOperations:a.countriesOfOperations?.selectedOptions?.map(I=>I.length===2?I:U(I))??[],transactionVolume:a.transactionVolume?.selectedOption??void 0,transactionVolumeDescription:a.transactionVolumeDescription??void 0,regulatedStatus:a.regulatedStatus??void 0,regulatedStatusDescription:a.regulatedStatusDescription??void 0,usNexus:a.usNexus??void 0,usNexusTypes:a.usNexusTypes?.selectedOptions??[],purposeOfAccount:a.purposeOfAccount?.selectedOption??void 0,purposeOfAccountDescription:a.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]}};n(S({companyDetails:v}))},onPrimaryContactDetailsUpdated:e=>{n(S({primaryContact:{userId:e.userId,email:e.email.trim(),firstName:e.name.firstName,lastName:e.name.lastName}}))},onNewCompanyOfficerAdded:e=>{n(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=>{n($(e))},onCompanyOfficerUpdated:e=>{n(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=>{n(Z({files:e}))},onDeleteFile:e=>{n(Q(e))},onEditFileName:(e,a)=>{n(H(e,a.split(".")[0]))}}})(A);function de(){const n=w(),t=x(),i=T(),{tenantEmailDomain:l}=k(),[c,p]=g.useState(!1),[f,e]=g.useState(!1),a=O(s=>s.companyViewState.passportView.fetchState),o=O(s=>s.companyConfigState.fetchState),r=O(s=>D(s)),d=r.companyId??N.getSignedInUserTenant(l)?.companyId;if(N.getSignedInUser()==null)throw Error("Can't access company details page without signing in...");g.useEffect(()=>{c||a!=="Not-Started"||d==null||(p(!0),t(B(d)))},[c,a,d,t]),g.useEffect(()=>{o==="Not-Started"&&t(M())},[o,t]);const u=s=>{e(s)},y=a==="Not-Started"||a==="In-Progress"||o==="Not-Started"||o==="In-Progress";return d!=null&&a==="Error"?m.jsx(P,{onGoHome:()=>n("../",{replace:!0}),onReload:()=>window.location.reload()}):m.jsxs(m.Fragment,{children:[m.jsx(F,{analytics:V,onLoad:s=>s.trackPageLoaded(j.Event.companyPassport,b(i)?"Settings":"Company Passport")}),b(i)?m.jsx(X,{isAppContentDrawerOpen:f,handleDrawerToggle:u}):null,m.jsx(ee,{companyId:d,navigate:n,location:i,isLoading:y,currentTenant:r,isSettings:b(i),onClickMenuIcon:()=>{u(!0)}})]})}export{de as C};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{j as C}from"./liveblocks-qa_6WStS.js";import{a}from"./sentry-BTf2Dtmp.js";import{u as w,g as D,j as m,N as v}from"./core-CJUY0MOY.js";import{LQ as _,eV as A,f_ as L,o6 as O,gp as E,fZ as j,fw as U,LX as F}from"./zeni-epic-state-Da9EwYbz.js";import{u as $,z as p,L as g,a as k,o as H}from"./index-B2ukUPdb.js";import{n as z}from"./mui-CkYYTJAV.js";import{t as Q}from"./getLocaleForTenant-BxE1cnSw.js";import{g as P,Q as R}from"./QBOConnectionScreen-ClD_YrtC.js";import"./recharts-D3JK2Byj.js";import"./analytics-BToIaEuE.js";import"./plaid-1xV6OFdB.js";import"./dnd-LV5QvpgJ.js";import"./stripe-DMRn4zHo.js";import"./lottie-zGjtu-Uw.js";import"./lexical-Cmpx8sPR.js";import"./pdf-CZjXUklc.js";import"./utils-Bd6aVUzu.js";import"./empty-BrON4VTN.js";import"./pdf-lib-1-yXS4qt.js";import"./index-BUVIqiRA.js";import"./url-CnoP6Bkx.js";import"./index-LSEqxgWI.js";import"./decodeURIComponentSafe-BXzU7C-M.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]="29e09035-c883-4bb8-9937-baa69157deeb",t._sentryDebugIdIdentifier="sentry-dbid-29e09035-c883-4bb8-9937-baa69157deeb")}catch{}})();const V=z.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 ${H.sp1} ${t.theme.colors.dropShadowNormal}`};
|
|
11
|
+
`;function ce(){const t=w(),i=D(),{setLoading:d,clearAllLoading:h}=$(),c=a.useRef(!1),f=a.useRef(!1),{code:x,realmId:T,state:y}=P(i.search),N=x!==""&&T!==""&&y!=="",I=m(l=>_(l)),e=m(l=>A(l)),n=m(l=>l.tenantState.fetchState),r=m(l=>l.tenantState.activeTenantFetchState.fetchState),o=p.getSignedInUser(),u=p.getActiveTenantForUser()?.tenantId,s=e?.externalConnections?.fetchState,b=e?.externalConnections?.saveConnectionState,S=e.externalConnections?.accounting[0]?.isValid;return a.useLayoutEffect(()=>{d(g.CONNECTION_AUTH)},[d]),a.useEffect(()=>{c.current||o==null||u==null||(c.current=!0,n==="Completed"||r!=="Not-Started"&&r!=="Error"||(d(g.TENANT_FETCHING),t(L(o.userId,u))))},[c,n,d]),a.useEffect(()=>{e.tenantId==null&&!f.current&&o!=null&&(f.current=!0,!(u==null||u!=null&&(r==="Completed"||r==="Error"))||n!=="Not-Started"&&n!=="Error"||t(O(o.userId)))},[f,n,r]),a.useEffect(()=>{o==null||e?.tenantId==null||e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||s==="In-Progress"||b!=="Error"||(d(g.CONNECTION_AUTH),t(E(o.userId,e.tenantId)))},[b]),a.useEffect(()=>{n!=="Completed"&&r!=="Completed"||o==null||e?.tenantId==null||(t(j(e.tenantId)),p.saveActiveTenantDomainForUser(e.tenantEmailDomain),U(o?.userId,o?.zeniSessionId,e.tenantId),k.updateAppLocaleID(Q(F(e))),e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||s==="In-Progress"||o==null||e==null||t(E(o.userId,e.tenantId)))},[n,r,s]),a.useEffect(()=>{I.tenantsCoreDetailsInOrder.length>0&&n==="Completed"&&p.saveSignedInUserTenants(I.tenantsCoreDetailsInOrder)},[I.tenantsCoreDetailsInOrder.length,n]),a.useEffect(()=>{n!=="Completed"&&n!=="Error"||r!=="Completed"&&r!=="Error"||s!=="Completed"&&s!=="Error"||h()},[n,r,s]),e==null||n!=="Completed"&&r!=="Completed"||s!=="Completed"?null:N||S===!1?C.jsx(V,{children:C.jsx(R,{})}):C.jsx(v,{to:"/",replace:!0})}export{ce as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./liveblocks-qa_6WStS.js";import{z as n}from"./index-B2ukUPdb.js";import{g as d}from"./QBOConnectionScreen-ClD_YrtC.js";import"./sentry-BTf2Dtmp.js";import{g as p,N as s}from"./core-CJUY0MOY.js";import"./zeni-epic-state-Da9EwYbz.js";import"./recharts-D3JK2Byj.js";import"./mui-CkYYTJAV.js";import"./analytics-BToIaEuE.js";import"./plaid-1xV6OFdB.js";import"./dnd-LV5QvpgJ.js";import"./stripe-DMRn4zHo.js";import"./lottie-zGjtu-Uw.js";import"./lexical-Cmpx8sPR.js";import"./pdf-CZjXUklc.js";import"./utils-Bd6aVUzu.js";import"./empty-BrON4VTN.js";import"./pdf-lib-1-yXS4qt.js";import"./index-BUVIqiRA.js";import"./url-CnoP6Bkx.js";import"./index-LSEqxgWI.js";import"./decodeURIComponentSafe-BXzU7C-M.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new t.Error().stack;o&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[o]="817363c8-7f1d-4590-b58b-cef70b99ca15",t._sentryDebugIdIdentifier="sentry-dbid-817363c8-7f1d-4590-b58b-cef70b99ca15")}catch{}})();const U=()=>{const t=p(),{code:o,realmId:r,state:e}=d(t.search),m=n.getSignedInUser()?.userId??"";if(f(o,r,e,m)===!0){const a=`../../${e}/onboarding?code=${o}&realmId=${r}&state=auth_flow`;return i.jsx(s,{to:a})}return i.jsx(s,{to:"../../"})},f=(t,o,r,e)=>t!=""&&o!=""&&r!=""&&e!=null&&e!="";export{U as default,f as hasValidParams};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import{j as a}from"./liveblocks-qa_6WStS.js";import{t as ht,A as Me}from"./AddressScreen-fWJCm4zs.js";import St from"./NotFoundScreen-DTvgxtkb.js";import{a as u}from"./sentry-BTf2Dtmp.js";import{h as Ce,g as ke,u as H,i as Ie,j as x,N as j,n as Ee,l as bt,o as Ct,p as K}from"./core-CJUY0MOY.js";import{$ as _e,I as xe,z as $,W as Ae,U as M,B as kt,s as N,x as ae,d as G,ap as at,f as de,aq as It,q as Et,ar as Ne,i as Se,as as _t,o as $e,at as Ge,au as xt,av as ze,aw as At}from"./index-B2ukUPdb.js";import{eV as W,fS as vt,fA as ve,fy as Oe,bs as Ot,o4 as Tt,fO as wt,bS as Pt,tj as Dt,tm as Ft,MP as jt,MQ as Ut,MR as Bt,xH as Vt,Er as Rt,u8 as Lt,MS as Mt,k6 as be,k9 as ot,Mk as Nt,bY as $t,c6 as le,tN as Te,ty as Gt,MT as ue,tO as st,Kd as zt,la as it,MU as Qt,MV as Kt,rg as qt,hn as Zt,Mc as ge,hk as Ht,Md as Wt,xW as Xt,rk as Yt,hc as Jt,hf as Qe,MW as rt,MX as en,D_ as tn,MY as nn,E2 as an,tp as on,MZ as sn,M_ as rn,k4 as cn,k7 as dn,t_ as un,tA as ct,tM as ln,bE as Ke,cy as pn,tZ as qe,rz as mn,rn as gn,l2 as fn,ge as yn,gd as hn,gc as Sn,M$ as bn,ts as Cn,t$ as kn,u2 as In,u5 as En,ub as _n,cX as xn}from"./zeni-epic-state-Da9EwYbz.js";import{n as we}from"./mui-CkYYTJAV.js";import{g as An,h as vn,q as oe}from"./QBOConnectionScreen-ClD_YrtC.js";import{u as On}from"./useEmailConnectResultRefresh-BGSh8M-E.js";import{u as Tn}from"./useChargeCardPusherEvents-Bxg7wg9x.js";import{u as wn}from"./plaid-1xV6OFdB.js";import"./recharts-D3JK2Byj.js";import"./analytics-BToIaEuE.js";import"./dnd-LV5QvpgJ.js";import"./stripe-DMRn4zHo.js";import"./lottie-zGjtu-Uw.js";import"./lexical-Cmpx8sPR.js";import"./pdf-CZjXUklc.js";import"./utils-Bd6aVUzu.js";import"./empty-BrON4VTN.js";import"./pdf-lib-1-yXS4qt.js";import"./index-BUVIqiRA.js";import"./url-CnoP6Bkx.js";import"./index-LSEqxgWI.js";import"./decodeURIComponentSafe-BXzU7C-M.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new t.Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="c4494e92-5dea-41cb-9f27-f7c1e4335027",t._sentryDebugIdIdentifier="sentry-dbid-c4494e92-5dea-41cb-9f27-f7c1e4335027")}catch{}})();const Pn=Ee(function(t,s){const n=[];s.isApAgingFeatureEnabled===!1&&n.push("accounts_payable_aging"),s.isArAgingFeatureEnabled===!1&&n.push("accounts_receivable_aging"),s.shouldFetchZeniAccountsPromoCard===!1&&n.push("zeni_accounts_promo_card"),s.shouldFetchRewardsPlanCard===!1&&n.push("rewards_card"),s.isExpenseAutomationEnabledForUser===!1&&n.push("expense_automation_card");const o=wt(t,n,s.signedInUser,s.isExpenseAutomationFeatureEnabledV2,s.isExpenseAutomationEnabledForUser,s.isTreasuryEnabled);return{dashboardFetchState:Pt(o.reportsInOrder.map(c=>({fetchState:c.fetchState,error:c.error}))).fetchState}},function(t,s){const{themeState:n,navigate:o,location:c}=s;return{onZeniLogoClick:()=>{n.toggle()},onDashboardFetchDone:()=>{const l=N(c.state?.pathnameStackToGoBack,c.pathname);o("../../dashboard",{state:{pathnameStackToGoBack:l,message:"activation"}})}}})(It),Dn=()=>{const t=Ce(),s=ke(),n=H(),o=_e(),[c,l]=u.useState(!1),[h,k]=u.useState(!1),{tenantEmailDomain:e}=Ie(),i=xe(),d=$.getSignedInUser(),{useFeatureGate:p}=Ae(),{isFeatureEnabled:A}=p(M.isApAgingFeatureEnabled),{isFeatureEnabled:r}=p(M.isArAgingFeatureEnabled),{isFeatureEnabled:g}=p(M.isDepositAccountsFeatureEnabled),{isFeatureEnabled:_}=p(M.isReferralFeatureEnabled),{isFeatureEnabled:E}=p(M.isExpenseAutomationEnabledV2),{isFeatureEnabled:m}=p(M.isDebitCardFeatureEnabled),U=kt(),S=x(I=>W(I)),{isFeatureEnabled:P}=p(M.isTreasuryEnabled),V=S.company!=null&&vt(S.company),y=P&&V,b=x(I=>I.onboardingCustomerViewState.fetchState),v=S.excludedResources,B=S.companyId??$.getSignedInUserTenant(e)?.companyId;if(d==null)throw Error("Can't access onboarding flow without signing in...");const D=ve(m,S),O=Oe(S),w=[],q=v?.resources?.find(I=>I.resource==="/reports/top_expenses")==null,z=v?.resources?.find(I=>I.resource==="/reports/task_card")==null,X=S?.userRole!=null&&Ot(S?.userRole),Y=v?.resources?.find(I=>I.resource==="/bills")==null&&!X,Q=v?.resources?.find(I=>I.resource==="/reimbursements")==null;if(q===!1&&w.push("top_expenses"),z===!1&&w.push("task_card"),Y===!1&&w.push("bill_pay_card","bill_pay_promo_card"),Q===!1&&w.push("reimbursement_card","reimbursement_promo_card"),g===!1&&w.push("zeni_accounts_promo_card"),_===!1&&w.push("rewards_card"),u.useEffect(()=>{b!=="Completed"||c||D||O||(l(!0),n(Tt(d.userId,B,S.tenantId,!0,!1,w)))},[c,b,D,O,d,S.tenantId,n]),u.useEffect(()=>{(D||O)&&setTimeout(()=>{k(!0)},5e3)},[D,O]),b!=="Completed")return a.jsx(j,{to:"../"});if(b==="Completed"&&h){const I=N(s.state?.pathnameStackToGoBack,s.pathname);if(D)return a.jsx(j,{to:"../../checking",state:{...s.state,pathnameStackToGoBack:I,message:"activation"}});if(O)return a.jsx(j,{to:"../../cards",state:{...s.state,pathnameStackToGoBack:I,message:"activation"}})}return i?.loggedInUserRoleMap!=null?a.jsxs(a.Fragment,{children:[a.jsx(ae,{analytics:G,onLoad:I=>(F=>F.trackPageLoaded(de.Event.onboardingDashboardActivation))(I)}),a.jsx(Pn,{navigate:t,location:s,themeState:o,signedInUser:d,isApAgingFeatureEnabled:A,isArAgingFeatureEnabled:r,shouldFetchZeniAccountsPromoCard:g,shouldFetchRewardsPlanCard:_,isExpenseAutomationEnabledForUser:U,isExpenseAutomationFeatureEnabledV2:E,isTreasuryEnabled:y,loggedInUserRoleMap:i?.loggedInUserRoleMap})]}):a.jsx(at,{})},fe=["reading_books","finance_graph","reconciliation","cfo_foundation"],ye=["llm_fine_tuning","rag_knowledge_graph","personalized_context"],Ze=(t,s)=>{const n=new Map(t.map(o=>[o.key,o]));return s.map(o=>{return c=n.get(o)?.status,c==="starting"||c==="building"?c:"idle";var c})},He=(t,s)=>{if(t.length===0)return!1;const n=new Map(t.map(o=>[o.key,o]));return s.every(o=>n.get(o)?.status==="ready")},Fn=new Set(Mt),We=we.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
height: 100vh;
|
|
4
|
+
background-color: ${t=>t.theme.colors.grey4};
|
|
5
|
+
`,Xe=we.div`
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
align-items: center;
|
|
9
|
+
flex: 1;
|
|
10
|
+
min-width: 0;
|
|
11
|
+
|
|
12
|
+
${t=>t.skipLegacyDrawerOffset?`
|
|
13
|
+
width: 100%;
|
|
14
|
+
padding-left: ${$e.sp0};
|
|
15
|
+
`:`
|
|
16
|
+
min-width: calc(100% - ${Ge}px);
|
|
17
|
+
padding-left: ${Ge}px;
|
|
18
|
+
`}
|
|
19
|
+
|
|
20
|
+
${t=>t.theme.breakpoints.down("md")} {
|
|
21
|
+
width: 100%;
|
|
22
|
+
padding-left: ${$e.sp0};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
${t=>t.windowSize!=="small"?"overflow: auto;":""}
|
|
26
|
+
`,Ye=Ee(function(t,s){const{companyId:n,isAdmin:o,currentTenant:c,isOnAddressPage:l}=s,h=$.getSignedInUser(),k=c.tenantId,e={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:k??""},i=W(t),d=Te(t,n),p=rt(t),A=le(c?.userRole??[])&&d.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",r=en(t.userRoleConfigState);return{onboardingCustomerView:d,analytics:G,isRefreshingViewInBackground:!1,isDisabled:A,companyTitles:r.companyTitles,connectedAccountProvider:i.company?.featuresActivationInfo.connectedAccountProvider??"",fileProps:{filesEndPoint:xt.fileMicroServiceBaseUrl,authParams:e},signedInUser:$.getSignedInUser(),currentTenant:i,isAdmin:o,isOnAddressPage:l,meetingUrl:"https://meetings.hubspot.com/niharn/zeni-onboarding-overview?embed=true",cardPaymentView:p,isCardPaymentPopupOpen:!1,stripeKey:Se.stripeKey}},function(t,s){const{companyId:n,currentTenant:o,themeState:c,navigate:l,location:h}=s,{tenantEmailDomain:k}=o;return{onFetchLinkTokenClick:(e,i)=>{t(_n(e,i))},onEstablishConnectionClick:(e,i)=>{t(En(e,i))},onUpdatePaymentAccountStatus:(e,i,d)=>{t(In(e,i,d))},onUpdatePaymentAccountLoginStatus:(e,i)=>{t(kn(!1,e,i))},onEstablishConnectionSuccess:()=>{t(Cn(n,!0,!1))},handleOnConnectClick:()=>{G.trackOnboardingConnectQBO(),oe.handleClick()},updateQBOPopupState:e=>{t(ue({isQBOPopupOpen:e}))},onCompanyOfficerUpdated:e=>{const i=e.map(d=>{const{officerType:p,userId:A,name:r,email:g,ssn:_,nationalityCountryCode:E,dob:m,phone:U,syncToken:S,selectDocument:P,role:V,ownership:y,isSelectedForVerification:b,userVerificationStatus:v,fileIds:B,isPhoneVerified:D}=d;let O;return P.selectDocumentType==="driverLicense"?O="driving_license":P.selectDocumentType==="passport"?O="passport":P.selectDocumentType==="stateId"?O="id_document":P.selectDocumentType==="ssnCard"&&(O="social_security_card"),{officerType:p,userId:A,firstName:r.firstName,lastName:r.lastName,email:g,ssn:_,nationalityCountryCode:E?.selectedOption!=null?ze(E.selectedOption):void 0,phone:U,birthday:m!=null?Ke(m?.toString()):m,syncToken:S,titleAtCompany:V.selectedOption,ownershipInCompany:y,documentTypeSelectedForVerification:O,isSelectedForVerification:b,userVerificationStatus:v,fileIds:B,additionalDocumentTypesRequestedForVerification:[],additionalSubmittedDocumentsForVerificationFileIds:[],areAdditionalDocumentsRequestedForVerification:!1,areAdditionalDocumentsSubmittedForVerification:!1,isPhoneVerified:D}});t(qe({officers:i}))},onGetOtp:(e,i)=>{t(Sn(e,"CustomerOnboarding")),i!=null&&t(bn({officerType:i,phone:e}))},onResendOtp:e=>{t(hn(e,"CustomerOnboarding"))},onVerifyOtp:(e,i)=>{t(yn(e,i,"CustomerOnboarding"))},updateFilesEntity:e=>{t(fn({files:e}))},onDeleteFile:e=>{t(gn(e))},onEditFileName:(e,i)=>{t(mn(e,i.split(".")[0]))},onCompanyDetailsChanged:e=>{const{companyDescription:i,companyIndustry:d,companyIndustryType:p,companyLegalName:A,companyTaxId:r,companyWebsite:g,companyPhone:_,primaryContactEmail:E,primaryContactName:m,primaryContactUserId:U,primaryContactSyncToken:S,syncToken:P,fileIds:V,typeOfIncorporation:y,stateOfIncorporation:b,incDate:v,companySourceOfFunds:B,companySourceOfFundsDescription:D,companySubIndustry:O,countriesOfOperations:w,purposeOfAccount:q,purposeOfAccountDescription:z,regulatedStatus:X,regulatedStatusDescription:Y,transactionVolume:Q,transactionVolumeDescription:I,usNexus:F,usNexusTypes:se}=e,R={companyId:n,companyDescription:i,companyIndustry:d.selectedOption,companyIndustryType:p?.selectedOption??"",companyLegalName:A,taxIdOrEIN:r,website:g!=""&&g!=null?pn(g):void 0,phone:_,syncToken:P,fileIds:V,incDate:v!=null?Ke(v?.toString()):v,typeOfIncorporation:y?.selectedOption??"",stateOfIncorporation:b?.selectedOption??"",companySourceOfFunds:B?.selectedOption??"",companySourceOfFundsDescription:D,companySubIndustry:O?.selectedOption??"",countriesOfOperations:w?.selectedOptions.map(J=>J.length===2?J:ze(J))??[],purposeOfAccount:q?.selectedOption??"",purposeOfAccountDescription:z,regulatedStatus:X??"",regulatedStatusDescription:Y,transactionVolume:Q?.selectedOption??"",transactionVolumeDescription:I,usNexus:F,usNexusTypes:se?.selectedOptions??[]},pe={userId:U,firstName:m.firstName,lastName:m.lastName,email:E,syncToken:S};t(qe({companyDetails:R,primaryContactDetails:pe}))},onAddressClick:(e,i)=>{const d=et(k,e,i),p=N(h.state?.pathnameStackToGoBack,h.pathname);l(d,{state:{pathnameStackToGoBack:p}})},onRegisteredAddressClick:(e,i)=>{const d=et(k,e,i),p=N(h.state?.pathnameStackToGoBack,h.pathname);l(d,{state:{pathnameStackToGoBack:p}})},onUpdateCustomerView:(e,i,d)=>{t(ln(n,!1,i,d,e))},onAddressEditHandler:e=>{if(e!=null){const i=ht(e);t(it({addressType:"subscription_billing_address",addressToCreate:i}))}},onSkipSetupClick:()=>{const e=N(h.state?.pathnameStackToGoBack,h.pathname);t(ct(n,!1,!1)),l("./activation",{state:{pathnameStackToGoBack:e}})},onUpdateStep:e=>{t(st({step:e}))},onUpdateSubStep:e=>{t(un({subStep:e}))},onZeniLogoClick:()=>{c.toggle()},handleLogOutClick:()=>{const e=N(h.state?.pathnameStackToGoBack,h.pathname);l("/signout",{replace:!0,state:{pathnameStackToGoBack:e,message:"logout"}})},handleCockpitClick:()=>{window.open("/cockpit")},handleCreateCardSetupIntent:e=>{t(ot(e))},handleConfirmCardSetupIntent:e=>{t(dn(e))},updateCardPaymentModalState:e=>{t(ue({isCardPaymentPopupOpen:e}))},handleAddCardPaymentSource:(e,i,d)=>{t(cn(e,i,d))},handleFetchPaymentSources:()=>{t(be())},resetCardPaymentViewState:()=>{t(rn())},handleResetCardPaymentErrorStatuses:()=>{t(sn())},redirectToProductSuitePage:()=>{const e=N(h.state?.pathnameStackToGoBack,h.pathname);l(`/${k}/onboarding/thankyou`,{state:{pathnameStackToGoBack:e,message:"OnboardingThankyou"},replace:!0})},onAcknowledgeAiFinanceTeam:()=>{n!=null&&t(on(n))},onIdentityDocumentUploadedForAutofill:e=>{if(n==null)return;const i=nn(e.documentType);i!=null&&t(an({target:"onboarding",companyId:n,officerType:e.officerType,fileId:e.fileId,documentType:i}))},onCompanyDocumentUploadedForAutofill:e=>{n!=null&&t(tn({target:"onboarding",companyId:n,fileId:e.fileId,documentType:e.documentType}))}}})(_t),ce=({taxCFOCustomer:t=!1,isOnAddressPage:s=!1,appContent:n})=>{const o=Ce(),c=ke(),l=H(),h=Et(),k=_e(),[e,i]=u.useState(!1),[d,p]=u.useState(!1),[A,r]=u.useState(!1),{tenantEmailDomain:g}=Ie(),_=xe(),{useFeatureGate:E}=Ae(),{isFeatureEnabled:m}=E(M.isDebitCardFeatureEnabled),U=bt("/:tenantEmailDomain/onboarding")!==null&&c.search?.includes("code"),S=x(f=>f.onboardingCustomerViewState.fetchState),P=x(f=>f.onboardingCustomerViewState.currentStep),V=x(f=>f.onboardingCustomerViewState.uiState),y=x(f=>W(f)),b=x(f=>f.userRoleConfigState.fetchState),v=x(f=>f.cardPaymentViewState),B=Ne(v.addCardPaymentSourceStatus.fetchState),D=v.addCardPaymentSourceStatus.fetchState,{code:O,realmId:w,state:q}=An(c.search),z=y.externalConnections?.accounting[0],X=z?.connectionType,Y=z?.connectionName,Q=z?.connectionId??"",I=$.getSignedInUser()?.userId??"";u.useEffect(()=>{d||(p(!0),l(be()))},[d,l]),u.useEffect(()=>{A||(ot(["card"]),r(!0))},[A]),u.useEffect(()=>{B==="In-Progress"&&D==="Completed"&&l(be())},[B,D]),u.useEffect(()=>{vn(O,w,q,Q,I)===!0&&y.externalConnections?.saveConnectionState!=="In-Progress"&&S==="Completed"&&(l(Nt(y.tenantId,{connection_type:X??"accounting",connection_name:Y??"quickbooks_online",authorization_code:O,realm_id:w,connection_id:Q,user_id:I},$t(window.location.origin+"/onboarding/auth"))),G.trackOnboardingSaveQBOConnection(w,Q),o(c.pathname))},[O,w,q,c.pathname,S]),u.useEffect(()=>{oe.isInitiated===!1&&S==="Completed"&&oe.init("/onboarding/auth",y.tenantEmailDomain)},[S]);const F=y.companyId??$.getSignedInUserTenant(g)?.companyId,se=le(y?.userRole??[]),R=x(f=>Te(f,F));u.useEffect(()=>{e||S!=="Not-Started"||F==null||(i(!0),l(Gt(F,!0,!U)))},[e,S,F]),u.useEffect(()=>{y.externalConnections?.saveConnectionState!=="Completed"&&y.externalConnections?.saveConnectionState!=="Error"||!V.isQBOPopupOpen||P!=="connect_ledger"||l(ue({isQBOPopupOpen:!1}))},[y.externalConnections?.saveConnectionState]),u.useEffect(()=>{S==="Completed"&&U&&(l(st({step:"connect_ledger"})),l(ue({isQBOPopupOpen:!0})))},[U,S]),u.useEffect(()=>{b==="Not-Started"&&l(zt(!0))},[b,l]);const pe=Ne(R.companyDetailsLocalData?.addressStatus);u.useEffect(()=>{R.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate==null&&R.companyDetailsLocalData?.addressStatus?.addressToCreate!=null&&pe==null&&l(it({addressType:"company_registered_address",addressToCreate:R.companyDetailsLocalData?.addressStatus?.addressToCreate}))},[R.companyDetailsLocalData?.addressStatus?.addressToCreate,R.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate]);const J=R.isInterimEmailSent,Pe=$.getSignedInUser();if(Pe==null)throw Error("Can't access onboarding flow without signing in...");const dt=ve(m,y),ut=Oe(y),De=y.company?.companyOnboardingInfo.isOnboardingCompleted,Fe=f=>f.trackPageLoaded(de.Event.onboardingPage),je=y.productSettings.isOtherProductsEnabled,lt=y.productSettings.isTreasuryEnabled,Ue=jn({tenantEmailDomain:g??"",signedInUserEmail:Pe.userEmail??"",companyId:F}),Be=(({companyId:f})=>{const L=H(),ie=x(T=>T.onboardingCustomerViewState?.aiAgentsActivation),ee=x(T=>W(T).company?.companyOnboardingInfo?.onboardingInfo?.onboardingAiActivationInfo?.isOnboardingAiActivationViewed??!1),me=u.useCallback(()=>{L(Dt())},[L]);u.useEffect(()=>{me()},[me]);const Ve=u.useCallback(()=>{f==null||f===""||ee||L(Ft(f))},[f,ee,L]),pt=u.useMemo(()=>{if(f==null||f==="")return[];const T=`private-encrypted-${f}`;return[`${T}.ledger-ingestion.counts-updated`,`${T}.ai-agents-activation.phase-changed`]},[f]),mt=u.useCallback((T,te)=>{if(te==null||typeof te!="object")return;const C=te;if(T!=="ledger-ingestion.counts-updated"){if(T==="ai-agents-activation.phase-changed"){const re=typeof C.phase_key=="string"?C.phase_key:typeof C.key=="string"?C.key:"",Z=typeof C.status=="string"?C.status:"idle";if(re==="")return;L(Ut({key:re,status:Z==="starting"||Z==="building"||Z==="ready"?Z:"idle",startedAt:typeof C.started_at=="string"?C.started_at:void 0,completedAt:typeof C.completed_at=="string"?C.completed_at:void 0}))}}else L(jt({customerCount:typeof C.customer_count=="number"?C.customer_count:void 0,glAccountCount:typeof C.gl_account_count=="number"?C.gl_account_count:void 0,targetTransactionCount:typeof C.target_transaction_count=="number"?C.target_transaction_count:void 0,transactionCount:typeof C.transaction_count=="number"?C.transaction_count:void 0,vendorCount:typeof C.vendor_count=="number"?C.vendor_count:void 0}))},[L]);return Tn({events:pt,onEvent:mt,onSubscribed:me}),u.useMemo(()=>{const T=ie?.phases??[],te=Ze(T,fe),C=Ze(T,ye),re=He(T,fe),Z=He(T,ye),Re=T.some(yt=>yt.status!=="idle"),ne=!ee&&!Re,Le=ee&&!Re,gt=Le?fe.map(()=>"building"):te,ft=Le?ye.map(()=>"building"):C;return{ledgerRowStatuses:ne?void 0:gt,backgroundRowStatuses:ne?void 0:ft,showLedgerReadyInLabel:ne?void 0:re,showBackgroundReadyInLabel:ne?void 0:Z,forceContinueEnabled:!ne||void 0,counts:ie?.counts,onContinueClicked:Ve}},[ie?.phases,ie?.counts,ee,Ve])})({companyId:F});if(De===!0){if(!je)return lt?a.jsx(j,{to:"../../treasury"}):dt?a.jsx(j,{to:"../../checking"}):ut?a.jsx(j,{to:"../../cards"}):a.jsx(j,{to:"../../dashboard"});const f=R.updateStatus.fetchState==="In-Progress";if(je&&!f)return t?a.jsxs(We,{children:[a.jsx(ae,{analytics:G,onLoad:L=>Fe(L)}),a.jsx(Ye,{navigate:o,location:c,companyId:F,currentTenant:y,isAdmin:se,isOnAddressPage:s,themeState:k,googleAPIKey:Se.googleMapsAPIKey,integrationsSectionProps:Ue,aiAgentsActivationProps:Be}),n!=null?a.jsx(Xe,{windowSize:h,skipLegacyDrawerOffset:s&&y.productSettings.isOtherProductsEnabled!==!0,children:n}):null]}):a.jsx(j,{to:"../../onboarding/thankyou"})}else if(De===!1&&_?.loggedInUserRoleMap!=null)return J===!0?a.jsx(j,{to:"../../onboarding/thankyou"}):a.jsxs(We,{children:[a.jsx(ae,{analytics:G,onLoad:f=>Fe(f)}),a.jsx(Ye,{navigate:o,location:c,companyId:F,currentTenant:y,isAdmin:se,isOnAddressPage:s,themeState:k,googleAPIKey:Se.googleMapsAPIKey,integrationsSectionProps:Ue,aiAgentsActivationProps:Be}),n!=null?a.jsx(Xe,{windowSize:h,skipLegacyDrawerOffset:s&&y.productSettings.isOtherProductsEnabled!==!0,children:n}):null]});return null},he="external_integrations",jn=({tenantEmailDomain:t,signedInUserEmail:s,companyId:n})=>{const o=H();On();const{plaidAccounts:c,onAddPlaidAccount:l}=(({companyId:r})=>{const g=H(),_=x(b=>b.plaidAccountViewState.external_account.plaidConnectionDetails.link_external_account),E=x(b=>Bt(b.paymentAccountState)),m=u.useRef(!1);u.useEffect(()=>{g(Vt())},[g]);const U=u.useCallback(b=>{g(Rt(b,r,"external_account",void 0,"link_external_account")),m.current=!1},[g,r]),S=u.useCallback(()=>{m.current=!1},[]),{open:P,ready:V}=wn({token:_.linkToken??null,onSuccess:U,onExit:S});u.useEffect(()=>{m.current&&V&&(P(),m.current=!1)},[V,P]);const y=u.useCallback(()=>{m.current=!0,g(Lt("external_account","link_external_account"))},[g]);return{plaidAccounts:u.useMemo(()=>E.map(b=>{return{accountId:b.paymentAccountId,name:b.institutionDetails?.institutionName??b.accountName,mask:b.accountLast4Digits,balanceFormatted:(v=b.balances?.current?.amount,B=b.balances?.current?.currencySymbol,v==null?"":`${B??"$"}${v.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}`),isActive:Fn.has(b.providerVerificationStatus?.code??"")};var v,B}),[E]),onAddPlaidAccount:y}})({companyId:n}),h=x(r=>W(r)),k=x(r=>r.tenantState.fetchState),e=x(r=>Qt(r,n)),i=x(r=>Kt(r,he)),d=u.useMemo(()=>new Set(i.map(r=>r.additionalInfo).filter(r=>r!=null)),[i]),p=h.tenantId,A=le(h.userRole??[]);return u.useEffect(()=>{o(qt(he))},[o]),u.useMemo(()=>({isAdmin:A,integrationsView:e,isLoading:k==="In-Progress",notifyMeRegisteredSlugs:d,saveChargeBeeState:e.externalConnections?.saveAPIKeyConnectionState??"Not-Started",saveChargeBeeError:e.externalConnections?.saveAPIKeyConnectionError?.message,saveHubSpotState:e.externalConnections?.saveOAuthConnectionState??"Not-Started",saveHubSpotError:e.externalConnections?.saveOAuthConnectionError?.message,saveConnectorCredentialsStateBySlug:e.externalConnections?.saveConnectorCredentialsStateBySlug??{},saveConnectorCredentialsErrorBySlug:Object.fromEntries(Object.entries(e.externalConnections?.saveConnectorCredentialsErrorBySlug??{}).map(([r,g])=>[r,g?.message])),deleteConnectionState:e.externalConnections?.deleteConnectionState??"Not-Started",deleteConnectionError:e.externalConnections?.deleteConnectionError?.message,onConnectGmail:()=>{o(Qe(p,"gmail",Je()))},onConnectOutlook:()=>{o(Qe(p,"outlook",Je()))},onConnectHubSpot:(r,g)=>{const _=e.externalConnections?.revenue?.find(m=>m.connectionName==="hubspot")?.connectionId;if(_==null)return;const E=`${window.location.origin}/oauth/hubspot/callback`;sessionStorage.setItem("hubspot_oauth_pending",JSON.stringify({client_id:r,client_secret:g,connection_id:_,redirect_uri:E,tenant_id:p})),window.location.href=`https://app.hubspot.com/oauth/authorize?client_id=${encodeURIComponent(r)}&scope=${encodeURIComponent("oauth crm.objects.deals.read crm.objects.owners.read")}&redirect_uri=${encodeURIComponent(E)}`},onDisconnect:(r,g)=>{o(Jt(p,r,ge(g)))},onNotifyMe:r=>{o(Yt(he,r,s))},onReconnectQBO:()=>{oe.init("/onboarding/auth",t),oe.handleClick()},onRefreshClick:()=>{e.integrations.refreshQBO.fetchState!=="In-Progress"&&o(Xt())},onSaveChargeBeeCredentials:(r,g)=>{const _=e.externalConnections?.revenue?.find(E=>E.connectionName==="chargebee")?.connectionId;_!=null&&o(Ht(p,_,ge("revenue"),Wt("chargebee"),{api_key:r,site:g}))},onSaveConnectorCredentials:r=>{o(Zt(p,ge("payments"),r))},plaidAccounts:c,onAddPlaidAccount:l}),[A,e,k,d,p,s,t,o,c,l])};function Je(){const t=new URL(window.location.href);return t.searchParams.set("onboarding_step","connect_data_source"),t.toString()}function et(t,s,n){let o=`/${t}/onboarding/address`;return o=n!=null?o.concat(`/edit/${s}/${encodeURIComponent(n)}`):o.concat(`/new/${s}`),o}const tt=we.div`
|
|
27
|
+
display: flex;
|
|
28
|
+
height: 100vh;
|
|
29
|
+
background-color: ${t=>t.theme.colors.grey4};
|
|
30
|
+
`,nt=Ee(function(t,s){const{companyId:n,currentTenant:o}=s,c=Te(t,n),l=rt(t);return{hasVerifiedBankAccount:(c.paymentAccount?.providerVerificationStatus?.code?.includes("verified")??!1)||(l.bankAccountsList[0]?.providerVerificationStatus?.code?.includes("verified")??!1),isDisabled:le(o?.userRole??[])&&c.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",signedInUser:$.getSignedInUser(),currentTenant:o,meetingUrl:"https://meetings.hubspot.com/niharn/zeni-onboarding-overview?embed=true"}},function(t,s){const{currentTenant:n,themeState:o,navigate:c,location:l}=s,{tenantEmailDomain:h}=n;return{onZeniLogoClick:()=>{o.toggle()},handleLogOutClick:()=>{const k=N(l.state?.pathnameStackToGoBack,l.pathname);c("/signout",{replace:!0,state:{pathnameStackToGoBack:k,message:"logout"}})},handleCockpitClick:()=>{window.open("/cockpit")},handleUpdatePaymentAddressDetailClick:()=>{const k=N(l.state?.pathnameStackToGoBack,l.pathname);c(`/${h}/onboarding/billing/edit`,{state:{pathnameStackToGoBack:k,message:"UpdatePaymentAddressDetail"}})}}})(At),Un=()=>{const t=Ce(),s=H(),n=ke(),o=_e(),{useFeatureGate:c}=Ae(),{isFeatureEnabled:l}=c(M.isDebitCardFeatureEnabled),{tenantEmailDomain:h}=Ie(),k=xe(),[e,i]=u.useState(!1);u.useEffect(()=>{e===!1&&n.state?.message==="OnboardingThankyou"&&i(!0)},[n.state]);const d=x(m=>W(m)),p=d.productSettings.isOtherProductsEnabled;u.useEffect(()=>{s(ct(A,!1,!p))},[]);const A=d.companyId??$.getSignedInUserTenant(h)?.companyId;if(k.loggedInUser==null)throw Error("Can't access onboarding flow without signing in...");const r=ve(l,d),g=Oe(d),_=x(m=>m.onboardingCustomerViewState.updateStatus.fetchState),E=d.company?.companyOnboardingInfo.isOnboardingCompleted;if(E!==!0||p)return _==="Completed"&&E===!0&&p&&k?.loggedInUserRoleMap!=null?a.jsxs(tt,{children:[a.jsx(ae,{analytics:G,onLoad:m=>{m.trackPageLoaded(de.Event.onboardingLandingPage,"Onboarding",xn(d.productSettings))}}),a.jsx(nt,{navigate:t,showUpdatePaymentDetailButton:p,location:n,companyId:A,currentTenant:d,themeState:o,isVisitingFirstTime:e})]}):_==="Completed"&&E===!1&&k?.loggedInUserRoleMap!=null?a.jsxs(tt,{children:[a.jsx(ae,{analytics:G,onLoad:m=>{m.trackPageLoaded(de.Event.onboardingInterimPage)}}),a.jsx(nt,{navigate:t,showUpdatePaymentDetailButton:p,location:n,companyId:A,currentTenant:d,themeState:o,isVisitingFirstTime:e})]}):a.jsx(at,{});{const m={pathnameStackToGoBack:n.state?.pathnameStackToGoBack,message:"activation"};return r?a.jsx(j,{to:"../../checking",state:m,replace:!0}):g?a.jsx(j,{to:"../../cards",state:m,replace:!0}):a.jsx(j,{to:"../../dashboard",state:m,replace:!0})}};function ca(){return a.jsxs(Ct,{children:[a.jsx(K,{path:"/",element:a.jsx(ce,{})}),a.jsx(K,{path:"/billing/edit",element:a.jsx(ce,{taxCFOCustomer:!0})}),a.jsx(K,{path:"/thankyou",element:a.jsx(Un,{})}),a.jsx(K,{path:"/activation",element:a.jsx(Dn,{})}),a.jsx(K,{path:"/address/edit/:addressType/:addressId",element:a.jsx(ce,{isOnAddressPage:!0,appContent:a.jsx(Me,{})})}),a.jsx(K,{path:"/address/new/:addressType",element:a.jsx(ce,{isOnAddressPage:!0,appContent:a.jsx(Me,{})})}),a.jsx(K,{path:"*",element:a.jsx(St,{})})]})}export{ca as default};
|