@zeniai/web-app-ui 5.3.61-dev → 5.3.62-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AccountMappingScreen-Dt4x9DJz.js → AccountMappingScreen-DwM3_WTC.js} +2 -2
- package/dist/assets/{ActualMatchingMatchDetailScreen-BfyrJWDJ.js → ActualMatchingMatchDetailScreen---3NQIlW.js} +1 -1
- package/dist/assets/AddressRoutes-CRWje5aU.js +1 -0
- package/dist/assets/AddressScreen-DwDn6adU.js +9 -0
- package/dist/assets/{AiCfoScreen-SBmgGufP.js → AiCfoScreen-CmI1WP3p.js} +1 -1
- package/dist/assets/{AppDrawer-D7FI4GcX.js → AppDrawer-CqAnDatC.js} +1 -1
- package/dist/assets/{BillPayApprovalRoutes-BxCZdf21.js → BillPayApprovalRoutes-uF3lLPXa.js} +1 -1
- package/dist/assets/BillPayRoutes-CxGXv0Eb.js +119 -0
- package/dist/assets/{BusinessVerificationPageScreen-B20TVwus.js → BusinessVerificationPageScreen-CWJBny4J.js} +2 -2
- package/dist/assets/{CardsAiCfoScreen-DkokQGnk.js → CardsAiCfoScreen-DTmIk225.js} +1 -1
- package/dist/assets/ChargeCardRoutes-CBA-C6S5.js +71 -0
- package/dist/assets/{CompanyPassportScreen-BEG9__1k.js → CompanyPassportScreen-C0r5_u0C.js} +1 -1
- package/dist/assets/ConnectionAuthScreen-D97ZGKWy.js +11 -0
- package/dist/assets/CustomerOnboardingAuthScreen-DREpIR3e.js +1 -0
- package/dist/assets/{CustomerOnboardingRoutes-BFFEQyjG.js → CustomerOnboardingRoutes-BFK8USjA.js} +3 -3
- package/dist/assets/DashboardRoutes-CIiFmVuR.js +20 -0
- package/dist/assets/{DefaultTenantHome-CMvE7WXj.js → DefaultTenantHome-BWhhfpNZ.js} +1 -1
- package/dist/assets/{DomesticWireDetailScreen-B2YgkOu5.js → DomesticWireDetailScreen-C8g5HYbF.js} +4 -4
- package/dist/assets/{DrawerScreen-I5-Ak-b_.js → DrawerScreen-jGeXohet.js} +1 -1
- package/dist/assets/{EntityDetailRoutes-BPqa4e5a.js → EntityDetailRoutes-DDbPZyaE.js} +1 -1
- package/dist/assets/ExpenseAutomationRoutes-BhSlFN1-.js +38 -0
- package/dist/assets/{FeaturePreviewScreen-v5dVXn4p.js → FeaturePreviewScreen-t-KcIePh.js} +1 -1
- package/dist/assets/{HubSpotOAuthCallbackScreen-CsqGaYGM.js → HubSpotOAuthCallbackScreen-B9Xsd5UE.js} +1 -1
- package/dist/assets/{InboxNotificationsProvider-B4UF_uUg.js → InboxNotificationsProvider-DcarX1j5.js} +1 -1
- package/dist/assets/InvoicingRoutes-BQHOoyRc.js +2 -0
- package/dist/assets/{MagicLinkRoutes-DDza_62u.js → MagicLinkRoutes-CfUJpVA_.js} +4 -4
- package/dist/assets/{MagicLinkSignInScreen-DGzxNaiE.js → MagicLinkSignInScreen-BR70G8WN.js} +1 -1
- package/dist/assets/MobileAppDrawer-DqgtjBKX.js +1 -0
- package/dist/assets/NotFoundScreen-C2GrPpNy.js +1 -0
- package/dist/assets/{NotificationRoutes-i3qnEWcR.js → NotificationRoutes-C1V1-m3K.js} +1 -1
- package/dist/assets/{OAuthConsentScreen-CRExXXMv.js → OAuthConsentScreen-UVKKdhYW.js} +1 -1
- package/dist/assets/PandLWithForecastRoutes-x9MBz-SJ.js +1 -0
- package/dist/assets/{PaymentLinkScreen-D0Hr5oRB.js → PaymentLinkScreen-BtszXnNs.js} +9 -9
- package/dist/assets/{PeopleRoutes-CypmG1ct.js → PeopleRoutes-By-929Rc.js} +3 -3
- package/dist/assets/PerformanceRoutes-DwUVercL.js +1 -0
- package/dist/assets/{Preview-Co3i0Xrb.js → Preview-Dxr01VGI.js} +1 -1
- package/dist/assets/{QBOConnectionScreen-BiN0lu_W.js → QBOConnectionScreen-Chdjbcg8.js} +1 -1
- package/dist/assets/{ReimbursementApprovalRoutes-ryr0mHPH.js → ReimbursementApprovalRoutes-DVM8rE5F.js} +1 -1
- package/dist/assets/{ReimbursementApprovalRuleDetailScreen-CRU8C8RZ.js → ReimbursementApprovalRuleDetailScreen-Bf1LI70e.js} +1 -1
- package/dist/assets/ReimbursementRoutes-ByU4nWbt.js +68 -0
- package/dist/assets/ReportsRoutes-Be1H67SI.js +1 -0
- package/dist/assets/RewardsRoutes-iweGs61q.js +1 -0
- package/dist/assets/{ScheduleDetailsPrepaidExpensesScreen-UKD1lb2-.js → ScheduleDetailsPrepaidExpensesScreen-HIrqgD7A.js} +4 -4
- package/dist/assets/{ScreenRoutes-6zCS0eXm.js → ScreenRoutes-CFuAOQvL.js} +2 -2
- package/dist/assets/{SettingsRoutes-Bh4g9wCj.js → SettingsRoutes-CYdVWZYv.js} +5 -5
- package/dist/assets/{SetupPagesScreen-CdpIgBzw.js → SetupPagesScreen-BccJSzRN.js} +5 -5
- package/dist/assets/SignInScreen-DM0sUU51.js +1 -0
- package/dist/assets/SignOutScreen-Bs1NyDBL.js +9 -0
- package/dist/assets/{TaskListScreen-h6ryhshy.js → TaskListScreen-DQj6h_q_.js} +2 -2
- package/dist/assets/{TaskRoutes-BiQOVouS.js → TaskRoutes-DY92MrHK.js} +1 -1
- package/dist/assets/TransactionDetailRoutes-BFj2-oES.js +1 -0
- package/dist/assets/TransactionDetailScreen-fc6wRDCa.js +5 -0
- package/dist/assets/TransactionListRoutes-DoEWtZb8.js +1 -0
- package/dist/assets/TreasuryRoutes-BwZlVh2U.js +37 -0
- package/dist/assets/{VendorsRoutes-C9tsCt7G.js → VendorsRoutes-rWAhbgUX.js} +1 -1
- package/dist/assets/{WiseConfirmationScreen-XbaBW0oW.js → WiseConfirmationScreen-twAmgAST.js} +1 -1
- package/dist/assets/ZeniAccountRoutes-BqSVR2HC.js +57 -0
- package/dist/assets/{ZeniAccountStatementScreen-L3XK5pKW.js → ZeniAccountStatementScreen-xKZWX655.js} +1 -1
- package/dist/assets/{accountMappingHelper-Ci74NLEW.js → accountMappingHelper-DpfYWNe6.js} +1 -1
- package/dist/assets/{analytics-8lQ_GaR7.js → analytics-CiEh1qKr.js} +1 -1
- package/dist/assets/{analyticsHelper-C6SU-53H.js → analyticsHelper-DHPcRAai.js} +1 -1
- package/dist/assets/{core-B-8b0iz9.js → core-Caq7Zbsp.js} +1 -1
- package/dist/assets/{decodeURIComponentSafe-hAviH84T.js → decodeURIComponentSafe-DmjyT4t5.js} +1 -1
- package/dist/assets/{dnd-CtOxA7uX.js → dnd-DwckO6rX.js} +1 -1
- package/dist/assets/{empty-CyiOIGJw.js → empty-CviwvzhB.js} +1 -1
- package/dist/assets/{empty-ZUR8mjP1.js → empty-Dl3LsHNf.js} +1 -1
- package/dist/assets/{emptyVideoElement-Dch9mr3K.js → emptyVideoElement-0ADxBh21.js} +1 -1
- package/dist/assets/{epic-C_YIXfJm.js → epic-DqqOk9a9.js} +1 -1
- package/dist/assets/{expenseAutomationHelper-BzOPc0En.js → expenseAutomationHelper-B83Qa5Jl.js} +1 -1
- package/dist/assets/{getLocaleForTenant-D57C4sYC.js → getLocaleForTenant-YgJPw-1W.js} +1 -1
- package/dist/assets/{index-BUsi93tT.js → index-B3LhL1WI.js} +2 -2
- package/dist/assets/{index-DeS-5gfC.js → index-BLBexBOn.js} +1 -1
- package/dist/assets/{index-CzpjeHcU.js → index-BggnOuo1.js} +1 -1
- package/dist/assets/{index-CgYr_9vs.js → index-Bi5Vnzzf.js} +1 -1
- package/dist/assets/{index-Ce-G0Vp2.js → index-BsIiLcaT.js} +1 -1
- package/dist/assets/{index-DuxR1XDX.js → index-DOXJLxdR.js} +23226 -23221
- package/dist/assets/{index-haVo7C6B.js → index-DZj1fENq.js} +1 -1
- package/dist/assets/{index-b65XjN06.js → index-De1Gw5gW.js} +1 -1
- package/dist/assets/{lexical-BVt4M34U.js → lexical-mmp2B1vq.js} +1 -1
- package/dist/assets/{liveblocks-BjcYyeQ6.js → liveblocks-CIxx6Ub6.js} +1 -1
- package/dist/assets/{lottie-BdAYiWcR.js → lottie-CrKh4Q_r.js} +1 -1
- package/dist/assets/{mui-C33Oegsm.js → mui-DI0hUuFr.js} +1 -1
- package/dist/assets/{pathToGoBack-Bgu6njoM.js → pathToGoBack-Ch5lrOj1.js} +1 -1
- package/dist/assets/{pdf-BkfulyEw.js → pdf-BlhN83fm.js} +3 -3
- package/dist/assets/{pdf-lib-D8o-uP9K.js → pdf-lib-WBpN-CHj.js} +1 -1
- package/dist/assets/{plaid-Bt28AVCt.js → plaid-CXvI7t9H.js} +1 -1
- package/dist/assets/{pusher-BWEmmbE9.js → pusher-BZAjVztW.js} +1 -1
- package/dist/assets/{react-BAH__mX9.js → react-BHfk4QRe.js} +1 -1
- package/dist/assets/{react-CIEK2Ei-.js → react-BqA23JAy.js} +1 -1
- package/dist/assets/{react-Dqb011PB.js → react-BsygV86H.js} +1 -1
- package/dist/assets/{react-B7GqIpoL.js → react-XoZ7aD8C.js} +1 -1
- package/dist/assets/{react-DT9gMpbF.js → react-rmAoHvXj.js} +1 -1
- package/dist/assets/{react-Ls8UDl46.js → react-tooGqts4.js} +1 -1
- package/dist/assets/{recharts-DkYxIsLi.js → recharts-DKmpCGIA.js} +1 -1
- package/dist/assets/{routePaths-B1syYHWh.js → routePaths-C1OqXYGB.js} +1 -1
- package/dist/assets/{sentry-DZ9rNYfw.js → sentry-BCPOyc0G.js} +1 -1
- package/dist/assets/{stripSplatSuffix-Te2Zqy4u.js → stripSplatSuffix-Dmnnw5Oe.js} +1 -1
- package/dist/assets/{url-BjdrSaU1.js → url-CdxI2rEH.js} +1 -1
- package/dist/assets/{url-DY2r7CPa.js → url-JduagIhH.js} +1 -1
- package/dist/assets/{useActualMatchingMatchDetail-DZnxtuQj.js → useActualMatchingMatchDetail-6t8vcRTI.js} +1 -1
- package/dist/assets/{useAiCfoDashboardSuggestedQuestionsChips-SBKf0Pu3.js → useAiCfoDashboardSuggestedQuestionsChips-BO7_rPaJ.js} +1 -1
- package/dist/assets/useAskAiCfoHostNavButtonProps-BvhP40c_.js +1 -0
- package/dist/assets/{useChargeCardPusherEvents-DmcXit2D.js → useChargeCardPusherEvents-2nVivR1x.js} +1 -1
- package/dist/assets/{useDeviceId-gFU5q5zf.js → useDeviceId-2NJBbYPM.js} +1 -1
- package/dist/assets/{useEmailConnectResultRefresh-BwFVhfcX.js → useEmailConnectResultRefresh-QqukN5jp.js} +1 -1
- package/dist/assets/{useInitialThreadRequest-Chu-ipGI.js → useInitialThreadRequest-uu8NipM7.js} +1 -1
- package/dist/assets/useTaskManagerAccess-DxrmaJfc.js +1 -0
- package/dist/assets/{useTaskManagerPusherEvents-BnGLCsCG.js → useTaskManagerPusherEvents-D5Hm7um3.js} +1 -1
- package/dist/assets/{utils-D3rZq_G4.js → utils-rX2IEvjD.js} +1 -1
- package/dist/assets/withTransactionSidePanel-C1wVwRW0.js +25 -0
- package/dist/assets/{zeni-epic-state-95zxmizy.js → zeni-epic-state-DROyxOLw.js} +3 -3
- package/dist/index.html +1 -1
- package/package.json +3 -3
- package/dist/assets/AddressRoutes-DfkTMfYF.js +0 -1
- package/dist/assets/AddressScreen-DvJ6yyMx.js +0 -9
- package/dist/assets/BillPayRoutes-07S7DRSx.js +0 -119
- package/dist/assets/ChargeCardRoutes-BO6dVldC.js +0 -71
- package/dist/assets/ConnectionAuthScreen-C_s5VCbI.js +0 -11
- package/dist/assets/CustomerOnboardingAuthScreen-DFMNQmWy.js +0 -1
- package/dist/assets/DashboardRoutes-B4NxbMLL.js +0 -20
- package/dist/assets/ExpenseAutomationRoutes-BW9gVxz9.js +0 -38
- package/dist/assets/InvoicingRoutes-CxKyyTQc.js +0 -2
- package/dist/assets/MobileAppDrawer-0TaE2Qid.js +0 -1
- package/dist/assets/NotFoundScreen-BatgS8le.js +0 -1
- package/dist/assets/PandLWithForecastRoutes-DiipWbFp.js +0 -1
- package/dist/assets/PerformanceRoutes-eA0QwQYt.js +0 -1
- package/dist/assets/ReimbursementRoutes-B8NK1spY.js +0 -68
- package/dist/assets/ReportsRoutes-DRBiAxJk.js +0 -1
- package/dist/assets/RewardsRoutes-DqoIHOPS.js +0 -1
- package/dist/assets/SignInScreen-C5RNgyDG.js +0 -1
- package/dist/assets/SignOutScreen-BZdppeCA.js +0 -9
- package/dist/assets/TransactionDetailRoutes-L8u6TmTF.js +0 -1
- package/dist/assets/TransactionDetailScreen-KBMzz0Xq.js +0 -5
- package/dist/assets/TransactionListRoutes-CKeYxgtl.js +0 -1
- package/dist/assets/TreasuryRoutes-DsNk_W1Q.js +0 -37
- package/dist/assets/ZeniAccountRoutes-Bgi1019U.js +0 -57
- package/dist/assets/useAskAiCfoHostNavButtonProps-CvEN7QS-.js +0 -1
- package/dist/assets/useTaskManagerAccess-ECD0Ec-b.js +0 -1
- package/dist/assets/withTransactionSidePanel-qep2Sc8k.js +0 -25
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import{j as o}from"./liveblocks-BjcYyeQ6.js";import{u as me,j as d,h as de,g as he,i as Ne,N as Je,s as _t,l as Pe,t as _n,n as cs,o as ne}from"./core-B-8b0iz9.js";import{fS as Pt,$X as is,g2 as wt,bt as Fe,$Y as ds,$Z as ls,fH as fn,$_ as Pn,fQ as wn,$$ as vn,a00 as Fn,a01 as Tn,a02 as xn,fR as Ln,g1 as Bn,a03 as Rn,a04 as us,fX as ms,fW as Cs,a05 as ps,K8 as On,g4 as ia,a06 as hs,a07 as fs,fJ as gs,fI as bs,gh as ze,fZ as Un,fY as jn,a08 as Ss,f_ as ys,JG as Is,JF as ks,JJ as Es,JL as As,ga as Ds,fE as Mn,a09 as _s,a0a as Ps,gf as Nn,a0b as ws,gg as yt,JR as vs,JO as Fs,fF as fe,a0c as qa,dZ as Te,di as xe,d_ as Le,g_ as da,cB as la,a0d as ua,a0e as vt,CZ as $a,m7 as Ka,a0f as za,Ko as ka,g5 as qe,Kq as Ft,lZ as Vn,a0g as ma,Kc as _a,a0h as Ts,a0i as xs,Kf as Ja,a0j as Ls,Z8 as Qa,g0 as Hn,Kl as ba,iq as Bs,a0k as Gn,fT as Ca,br as Rs,a0l as Os,gG as Xa,gF as et,KU as Us,gE as at,a0m as $n,cu as Kn,da as js,Z7 as wa,Lt as zn,a0n as gn,L3 as Pa,a0o as Zn,Lu as Ms,Zx as Ns,Lv as Vs,MA as Hs,Cd as Gs,Mu as $s,a0p as Ks,Kp as oa,a0q as zs,a0r as Zs,a0s as Ys,a0t as Ws,a0u as qs,a0v as Tt,a0w as Js,KF as Yn,Ky as Qs,a0x as Xs,h0 as eo,a0y as Wn,KO as qn,KS as Jn,g$ as ao,a0z as to,Lf as Qn,a0A as no,a0B as ro,a0C as so,KQ as Xn,KB as er,Ki as ar,KK as tr,KI as nr,KM as oo,a0D as rr,a0E as co,gc as io,gd as lo,ge as uo,a0F as tt,g6 as sr,dc as xt,a0G as mo,a0H as Co,a0I as po,a0J as ho,K_ as It,Lm as fo,Li as go,KW as bo,Lk as So,La as yo,Lc as Io,a0K as or,Ls as Ga,Sj as ko,a0L as Eo,a0M as Ao,a0N as Do,a0O as cr,a0P as _o,LP as Po,L2 as ir,KZ as Me,L1 as wo,a0Q as vo,a0R as Fo,K9 as To,a0S as dr,f$ as lr,a0T as xo,Kb as Lo,Ka as bn,a0U as Bo,a0V as Ro,a0W as Oo,Vr as Uo,a0X as Lt,a0Y as jo,xj as ur,mH as Mo,ie as No,LU as Vo,a0Z as mr,fN as Ho,fO as Go,a0_ as $o,dO as Ko,g3 as zo,LK as Zo,LE as We,bq as Yo,bJ as Wo,cG as qo,bK as Jo,Ui as Qo}from"./zeni-epic-state-95zxmizy.js";import{K as Be,df as Cr,a5 as we,dg as pr,dh as hr,di as Xo,G as ea,at as Bt,dj as ec,dk as ac,a as fr,d as gr,as as br,p as ke,o as le,S as Y,j as ya,dl as Sr,dm as tc,dn as nc,z as te,a8 as va,d4 as nt,dp as rc,dq as sc,dr as oc,a2 as Fa,bj as Qe,bG as Rt,ds as cc,ac as Ta,_ as rt,E as Ot,k as ae,w as st,dt as ic,bS as Sa,du as kt,dv as dc,a9 as Ut,dw as lc,af as yr,aw as Et,dx as uc,ar as Ir,X as kr,V as Er,bo as mc,dy as Cc,dz as pc,dA as hc,dB as fc,dC as gc,dD as bc,H as Za,dE as Sc,dF as yc,m as ht,O as Ic,dG as kc,dH as Ec,dI as Ac,aj as Dc,dJ as _c,dK as Pc,f as wc}from"./index-DuxR1XDX.js";import{n as Ve,D as Ar,S as vc}from"./mui-C33Oegsm.js";import{a as r}from"./sentry-DZ9rNYfw.js";import{u as xa}from"./useAskAiCfoHostNavButtonProps-CvEN7QS-.js";import{M as Ee}from"./MobileAppDrawer-0TaE2Qid.js";import{d as jt}from"./recharts-DkYxIsLi.js";import{g as _e,a as La,b as Dr,c as Re,d as Oe,e as Xe,f as aa,h as ta,A as Fc,i as Mt,P as Tc,j as Nt,s as Ia,k as _r,l as ca,m as Pr,n as xc,o as wr,p as Lc,S as Sn}from"./SetupPagesScreen-CdpIgBzw.js";import{u as vr}from"./useInitialThreadRequest-Chu-ipGI.js";import ot from"./NotFoundScreen-BatgS8le.js";import{u as Vt}from"./useChargeCardPusherEvents-DmcXit2D.js";import{n as yn}from"./utils-D3rZq_G4.js";import{t as Bc}from"./AddressScreen-DvJ6yyMx.js";import"./analytics-8lQ_GaR7.js";import"./plaid-Bt28AVCt.js";import"./dnd-CtOxA7uX.js";import"./stripe-cKAAJElX.js";import"./lottie-BdAYiWcR.js";import"./lexical-BVt4M34U.js";import"./pdf-BkfulyEw.js";import"./InboxNotificationsProvider-B4UF_uUg.js";import"./useTaskManagerAccess-ECD0Ec-b.js";import"./BusinessVerificationPageScreen-B20TVwus.js";import"./routePaths-B1syYHWh.js";import"./analyticsHelper-C6SU-53H.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="6f05b80b-38df-462e-9d03-2f29556c2182",e._sentryDebugIdIdentifier="sentry-dbid-6f05b80b-38df-462e-9d03-2f29556c2182")}catch{}})();const Rc=e=>{const a=e.cardHolderUser,n=`${a.firstName??""} ${a.lastName??""}`.trim()||a.email||a.userId;return{userId:a.userId,displayName:n,roleLabel:e.cardHolderRoles?.titleAtCompany}},Fr=e=>({id:e.id,isChecked:!1,cardName:e.cardName,last4:e.accountLast4,limitAmount:e.limit?.amount??0,limitCadence:e.creditLimitFrequency?.code,owner:Rc(e),utilizationAmount:(e.limit?.amount??0)-(e.available?.amount??0)});function Tr(){const e=me(),a=d((t=>Pt(t.cardPolicyState))),n=d((t=>is(t.cardPolicyState)));r.useEffect((()=>{n!==""||a==="Completed"&&n===""||a==="In-Progress"||e(wt())}),[e,a,n])}const{spendManagement:{chargeCard:{cardPolicyPage:In}}}=ea.getLocalizedStrings(),Oc=e=>Un(e,!1),Uc=e=>jn(e.name,!1);function jc(){const e=de(),a=he(),{tenantEmailDomain:n}=Ne(),t=me(),s=Be(),g=Fe(s?.loggedInUserRoleMap),[b,h]=r.useState(!1),A=r.useCallback((O=>{h(O)}),[]),u=r.useCallback((()=>{A(!0)}),[A]),{isAiCfoAccessEnabled:m,onAskAiCfoClick:T}=xa({mobileExploreReferrer:"Card Policy"});r.useEffect((()=>()=>{t(ds()),t(ls()),t(fn())}),[t]);const w=d((O=>Pn(O.cardPolicyState))),p=d((O=>wn(O.cardPolicyState))),F=d((O=>vn(O.cardPolicyState))),B=d((O=>Fn(O.cardPolicyState))),S=d((O=>Tn(O.cardPolicyState))),l=d((O=>xn(O.cardPolicyState))),C=d((O=>Ln(O.cardPolicyState))),L=d((O=>Pt(O.cardPolicyState))),k=d((O=>O.chargeCardConfigState.receiptRequiredAboveAmount.amount)),_=d((O=>O.chargeCardConfigState.fetchState));r.useEffect((()=>{w!=="Completed"&&w!=="In-Progress"&&t(Bn())}),[t,w]),Tr();const D=d((O=>Rn(O.createCardPolicyState))),M=d((O=>us(O.createCardPolicyState))),E=d((O=>ms(O.cardPolicyState))),y=d((O=>Cs(O.cardPolicyState))),R=d((O=>ps(O.createCardPolicyState))),i=d((O=>On(O)));r.useEffect((()=>{i.fetchState==="Not-Started"&&t(ia(!1,!1,!1))}),[i.fetchState,t]);const f=r.useMemo((()=>p.map(Oc)),[p]),j=r.useMemo((()=>C.map(Uc)),[C]),$=r.useMemo((()=>i.cards.filter((O=>!Cr(O.status.code))).map(Fr)),[i.cards]),U=w==="Completed"&&i.fetchState==="Completed"&&_==="Completed";r.useEffect((()=>{U&&R==null&&t(hs({cardsMasterList:$,defaultRequireReceiptAmount:k,suggestedAllowMerchants:F,suggestedBlockMerchants:B,suggestedAllowCategories:S,suggestedBlockCategories:l}))}),[_,t,U,R,$,k,F,B,S,l]);const x=r.useMemo((()=>jt((O=>{t(wt(O))}),250)),[t]);r.useEffect((()=>()=>{x.cancel()}),[x]);const z=r.useCallback((O=>{x(O)}),[x]),H=D.fetchState,v=n!=null?`/${n}/cards/policy`:"..",P=r.useCallback((()=>{const O=we(a.state?.pathnameStackToGoBack),q=O.poppedPathname??v;e(q,{state:{pathnameStackToGoBack:O.newStack}})}),[a.state,e,v]),K=r.useCallback((()=>{e(v)}),[e,v]),W=r.useCallback((O=>{t(fs(O))}),[t]),I=r.useCallback((O=>{const q=pr(O);t(gs({templates:[q]}))}),[t]),N=r.useCallback((O=>{O.length!==0&&t(bs(O))}),[t]),V=r.useCallback((()=>{t(fn())}),[t]),Q=r.useRef(H);r.useEffect((()=>{const O=Q.current;Q.current=H,H==="Completed"&&O!=="Completed"&&M!=null&&(t(ze({messageSection:"card_policy_created",messageText:"success",type:"success"})),e(v))}),[t,H,M,e,v]);const c=H==="Error"?D.error?.message??In.createPolicyGenericErrorMessage:void 0;return g&&n!=null?R==null?o.jsxs(o.Fragment,{children:[o.jsx(Ee,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(hr,{showUploadDocumentSection:!0,navBarTitle:In.createPageTitle,onBackClick:P,onClickMenuIcon:u,isAiCfoAccessEnabled:m,onAskAiCfoClick:T})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ee,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(Xo,{formDraft:R,vendorSearchOptions:j,categorySearchOptions:f,isVendorSearchLoading:L==="In-Progress",onVendorSearchTextChange:z,submitState:H,submitErrorMessage:c,documentUploadState:E,uploadedFileName:y,isAiCfoAccessEnabled:m,onAskAiCfoClick:T,onBackClick:P,onCancelClick:K,onClickMenuIcon:u,onFormChange:W,onSubmit:I,onUploadDocument:N,onRemoveDocument:V})]}):o.jsx(Je,{to:"..",replace:!0})}const{spendManagement:{chargeCard:{cardPolicyPage:Mc}}}=ea.getLocalizedStrings(),Nc=e=>Un(e,!1),Vc=e=>jn(e.name,!1);function Hc(){const e=de(),a=he(),{tenantEmailDomain:n,templateId:t}=Ne(),s=me(),g=Be(),b=Fe(g?.loggedInUserRoleMap),[h,A]=r.useState(!1),u=r.useCallback((c=>{A(c)}),[]),m=r.useCallback((()=>{u(!0)}),[u]),{isAiCfoAccessEnabled:T,onAskAiCfoClick:w}=xa({mobileExploreReferrer:"Card Policy"}),p=d((c=>Ss(c))),F=d((c=>Pn(c.cardPolicyState))),B=d((c=>wn(c.cardPolicyState))),S=d((c=>vn(c.cardPolicyState))),l=d((c=>Fn(c.cardPolicyState))),C=d((c=>Tn(c.cardPolicyState))),L=d((c=>xn(c.cardPolicyState))),k=d((c=>Ln(c.cardPolicyState))),_=d((c=>Pt(c.cardPolicyState))),D=d((c=>On(c))),M=d((c=>t!=null?ys(c.cardPolicyState,t):void 0)),E=r.useMemo((()=>p.templateId===t&&p.formDraft!=null?p.formDraft:M!=null?Is(M):void 0),[p.templateId,p.formDraft,M,t]);r.useEffect((()=>{if(t==null)return;const c=p.detailFetchState.fetchState;p.templateId===t&&(c==="Completed"||c==="In-Progress")||M!=null||s(ks(t))}),[s,t,p.templateId,p.detailFetchState.fetchState,M]),r.useEffect((()=>{F!=="Completed"&&F!=="In-Progress"&&s(Bn())}),[s,F]),Tr();const y=d((c=>c.chargeCardConfigState.receiptRequiredAboveAmount.amount));r.useEffect((()=>{D.fetchState==="Not-Started"&&s(ia(!1,!1,!1))}),[D.fetchState,s]);const R=r.useMemo((()=>B.map(Nc)),[B]),i=r.useMemo((()=>k.map(Vc)),[k]),f=r.useMemo((()=>D.cards.filter((c=>!Cr(c.status.code))).map(Fr)),[D.cards]);Bt({isDataReady:E!=null});const j=r.useMemo((()=>{if(E!=null)return ec({draft:E,cardRows:f,categorySearchOptions:R,vendorSearchOptions:i,defaultRequireReceiptAmount:y,suggestedAllowMerchants:S,suggestedBlockMerchants:l,suggestedAllowCategories:C,suggestedBlockCategories:L})}),[E,f,R,i,y,S,l,C,L]),[$,U]=r.useState(void 0),x=r.useRef(!1);r.useEffect((()=>{x.current||$!=null||j==null||(x.current=!0,U(j))}),[$,j]);const z=r.useCallback((c=>{U(c)}),[]),H=r.useMemo((()=>jt((c=>{s(wt(c))}),250)),[s]);r.useEffect((()=>()=>{H.cancel()}),[H]);const v=r.useCallback((c=>{H(c)}),[H]),P=p.updateFetchState.fetchState,K=n!=null?`/${n}/cards/policy`:"..",W=r.useCallback((()=>{const c=we(a.state?.pathnameStackToGoBack),O=c.poppedPathname??K;e(O,{state:{pathnameStackToGoBack:c.newStack}})}),[a.state,e,K]),I=r.useCallback((()=>{e(K)}),[e,K]),N=r.useCallback((c=>{if(t==null)return;const O=pr(c);s(Es(O)),s(As(t))}),[s,t]),V=r.useRef(P);r.useEffect((()=>{const c=V.current;V.current=P,P==="Completed"&&c!=="Completed"&&(s(ze({messageSection:"card_policy_updated",messageText:"success",type:"success"})),e(K))}),[s,P,e,K]);const Q=P==="Error"?p.updateFetchState.error?.message??Mc.updatePolicyGenericErrorMessage:void 0;return!b||n==null||t==null?o.jsx(Je,{to:"..",replace:!0}):$!=null&&F==="Completed"&&D.fetchState==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ee,{isAppContentDrawerOpen:h,handleDrawerToggle:u}),o.jsx(ac,{templateName:p.template?.name??"",formDraft:$,vendorSearchOptions:i,categorySearchOptions:R,isVendorSearchLoading:_==="In-Progress",onVendorSearchTextChange:v,submitState:P,submitErrorMessage:Q,isAiCfoAccessEnabled:T,onAskAiCfoClick:w,onBackClick:W,onCancelClick:I,onClickMenuIcon:m,onFormChange:z,onSubmit:N})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ee,{isAppContentDrawerOpen:h,handleDrawerToggle:u}),o.jsx(hr,{showUploadDocumentSection:!1,navBarTitle:p.template?.name,onBackClick:W,onClickMenuIcon:m,isAiCfoAccessEnabled:T,onAskAiCfoClick:w})]})}function xr(e,a,n){return a?e.filter((t=>t!=null&&t.trim().length>0)).slice(0,n):[]}function Lr(e){return d((a=>e==null||e===""?{chips:ft,isResolved:!1}:(function(n){const t=n?.fetchState,s=t==="Completed"||t==="Error";return{chips:t==="Completed"?n?.suggestedQuestions??ft:ft,isResolved:s}})(Ds(a,e))),_t)}const ft=[],{spendManagement:{chargeCard:{cardPolicyAiCfoHero:{headline:Gc,subheadline:$c,pageTitle:Kc}}}}=ea.getLocalizedStrings(),zc=e=>{const a=e.cardsCount>0?e.cardsCount:e.appliedCards.length,n=e.allowedEntity.merchantNames.length+e.blockedEntity.merchantNames.length,t=e.allowedEntity.categoryCodes.length+e.blockedEntity.categoryCodes.length;return{templateId:e.templateId,name:e.name,description:e.description,mode:e.mode==="flexible"?"flexible":"strict",createdAtFormatted:e.createdAt.format("ll"),cardsCount:a,vendorRestrictionsCount:n,categoryRestrictionsCount:t}};function Zc(){const e=de(),a=he(),{tenantEmailDomain:n}=Ne(),t=me(),s=Be(),g=Fe(s?.loggedInUserRoleMap),[b,h]=r.useState(!1),A=r.useCallback((v=>{h(v)}),[]),u=r.useCallback((()=>{A(!0)}),[A]),{useFeatureGate:m}=le(),{isFeatureEnabled:T}=m(Y.isAiCfoFileUploadEnabled),{isFeatureEnabled:w}=m(Y.isCardPolicyEnabled),{isAiCfoAccessEnabled:p,onAskAiCfoClick:F}=xa({mobileExploreReferrer:"Card Policy"}),B=d((v=>_s(v))),S=d((v=>Rn(v.createCardPolicyState))),l=d((v=>Ps(v.createCardPolicyState))),C=d((v=>l==null?[]:Nn(v.aiCfoState,l).filter((P=>P.kind==="creating_policy"))),_t),L=S.fetchState==="In-Progress"?Math.max(C.length,1):0,k=d((v=>ws(v.createCardPolicyState))),_=ya(S.fetchState);r.useEffect((()=>{if(_==="In-Progress"&&S.fetchState==="Completed"&&l!=null)C.forEach((v=>{t(yt({chatSessionId:l,id:v.id,entityIds:k,kind:"created_policy"}))}));else if(_==="In-Progress"&&S.fetchState==="Error"&&l!=null){C.forEach((P=>{t(yt({chatSessionId:l,id:P.id,kind:"errored_policy"}))}));const v=S.error?.message!=null&&S.error.message.length>0?S.error.message:ea.getLocalizedStrings().common.errorMessage.somethingWentWrongPleaseTryAgain;t(ze({messageSection:"card_policy_created",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:v}]}))}}),[S.error?.message,S.fetchState,t,l,k,C,_]);const D=B.fetchState.fetchState;r.useEffect((()=>{D!=="Not-Started"&&D!=="Error"||t(vs())}),[t,D]);const M=B.archiveFetchState.fetchState,E=ya(M);r.useEffect((()=>{E==="In-Progress"&&M==="Completed"&&t(ze({messageSection:"card_policy_deleted",messageText:"success",type:"success"}))}),[M,t,E]);const y=r.useMemo((()=>B.templates.map(zc)),[B.templates]);Bt({isDataReady:B.fetchState.fetchState==="Completed"});const R=y.length>0||L>0,i=(function(v){const{hasAnyPolicies:P,isChargeCardAdmin:K,isFileUploadEnabled:W}=v,I=de(),N=he(),{tenantEmailDomain:V}=Ne(),{isAiCfoOpen:Q,setIsAiCfoOpen:c}=fr(),O=gr(),q=br(),se=d((J=>Mn(J))).createSessionAndSubmitState.fetchState==="In-Progress",{chips:X,isResolved:He}=Lr("card_policy"),Ae=r.useMemo((()=>xr(X,He,3)),[X,He]),[ge,re]=r.useState(""),be=q&&O&&V!=null&&!Q,ue=r.useCallback((J=>{if(V==null)return;const fa=ke(N.state?.pathnameStackToGoBack,N.pathname);I(`/${V}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:fa,referrer:"card_policy_hero",aiCfoInitialQuestion:J,aiCfoShouldSubmit:J!=null&&J.trim().length>0}})}),[N.pathname,N.state,I,V]),oe=r.useCallback((J=>{J.trim().length!==0&&(re(""),ue(J))}),[ue]),Se=r.useCallback((()=>{const J=ge.trim();J.length!==0&&(re(""),ue(J))}),[ge,ue]),ee=r.useCallback((()=>{}),[]),De=r.useCallback((J=>{re(J)}),[]),ve=r.useCallback((()=>{c(!0)}),[c]),Ce=r.useCallback((()=>{ue(void 0)}),[ue]);return r.useMemo((()=>{if(be&&!P&&K)return{aiAgentName:Kc,headline:Gc,subheadline:$c,promptChips:Ae,composer:{currentInput:ge,isSubmitting:se,isFileUploadEnabled:W,onInputChange:De,onSubmit:Se,onStopSubmit:ee},onPromptClick:oe,onOpenSidePanel:ve,onOpenFullView:Ce,dataTestIdPrefix:"card-policy-ai-cfo-hero"}}),[ge,P,be,K,W,se,De,Ce,ve,oe,ee,Se,Ae])})({hasAnyPolicies:R,isChargeCardAdmin:g,isFileUploadEnabled:T}),f=w&&i!=null?o.jsx(Sr,{...i}):null,j=p&&f==null,$=r.useCallback((()=>{const v=we(a.state?.pathnameStackToGoBack),P=v.poppedPathname??"..";e(P,{state:{pathnameStackToGoBack:v.newStack}})}),[a.state,e]),U=r.useCallback((()=>{n!=null&&e(`/${n}/cards/policy/new`)}),[e,n]),x=r.useCallback((v=>{n!=null&&e(`/${n}/cards/policy/${v}/edit`)}),[e,n]),z=r.useCallback((v=>{t(Fs(v))}),[t]),H=B.fetchState.fetchState;return!R&&H!=="Completed"&&H!=="Error"?o.jsxs(o.Fragment,{children:[o.jsx(Ee,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(tc,{onBackClick:$,onNewPolicyClick:U,onClickMenuIcon:u,isAiCfoAccessEnabled:p,onAskAiCfoClick:F})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ee,{isAppContentDrawerOpen:b,handleDrawerToggle:A}),o.jsx(nc,{policies:y,archivingTemplateId:B.archiveTargetTemplateId,pendingCreationCount:L,onBackClick:$,onNewPolicyClick:U,onEditPolicyClick:x,onArchivePolicyClick:z,onClickMenuIcon:u,policyAiCfoHero:f,isAiCfoAccessEnabled:j,onAskAiCfoClick:F})]})}function Yc(){const e=de(),{cardId:a}=Ne(),n=me(),t=te.getSignedInUser(),s=d((X=>fe(X))),g=Be(),b=Fe(g?.loggedInUserRoleMap),{useFeatureGate:h}=le();if(t==null)throw Error("Can't access Add To Wallet Page without signing in...");const[A,u]=r.useState(!1),m=d((X=>qa(X).firstViewAfterActivation));if(a==null)throw Error("Empty card id is not valid...");const T=s.userRole.includes("charge_card_user"),{isFeatureEnabled:w}=h(Y.isChargeCardFeatureEnabled),p=!!s.companyChargeCardInfo?.info?.isChargeCardEnabled,{isFeatureEnabled:F}=h(Y.isDebitCardFeatureEnabled),B=Te(s),S=xe(s),l=Le(F,s),C=s.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,L=Re({isDebitCardFeatureEnabled:F,isBankingOnlyTenant:l}),k=Oe({isCardsOnlyTenant:B,isChargeCardFeatureEnabled:w,isBookKeepingTenant:S,isDebitCardProductVisible:L,chargeCardsCreditAccountLimit:C}),_=!!s.companyDebitCardInfo?.info?.isDebitCardEnabled,D=d((X=>da(X,s.companyId))),M=la(D.controllers),{creditAccount:E,creditAccountRepayment:y}=d((X=>ua(X))),R=d((X=>X.classListState.fetchState)),i=!T&&k&&p,f=d((X=>vt(X,a,i,k))),[j,$]=r.useState(!1),U=f.chargeCard,x=U?.cardCreatedByUser?.userId,z=d((X=>x!=null?$a(X.userRoleState,x):void 0)),H=z?.accountingClassIDs[0],v=d((X=>H!=null?Ka(X.classState,{classId:H,reportId:"class_list"}):void 0)),P=U?.cardHolderUser?.userId,K=d((X=>P!=null?$a(X.userRoleState,P):void 0)),W=K?.accountingClassIDs[0],I=d((X=>W!=null?Ka(X.classState,{classId:W,reportId:"class_list"}):void 0)),N=U?.type.code==="business_physical_credit_card"||U?.type.code==="business_physical_debit_card",V=U?.type.code==="business_physical_debit_card";r.useEffect((()=>{m&&A===!1&&N&&(u(!0),setTimeout((()=>{n(za()),V&&n(ze({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))}),5e3))}),[m,A,N,V]),r.useEffect((()=>{j||f.fetchState==="Completed"||f.fetchState==="In-Progress"||a==null||($(!0),n(ka(a,i,!1)))}),[j,f,a,n]),r.useEffect((()=>{if(f.fetchState==="Completed"&&(N===!1||N&&U?.status?.code!=="active"||U?.cardHolderUserId!==t.userId||m===!1&&A===!1||U?.type.code==="business_physical_debit_card"||U?.type.code==="business_virtual_debit_card")){const X=_e(s.tenantEmailDomain,a,t,U,m);e(X)}}),[f.fetchState,m,N]),r.useEffect((()=>{E.fetchState!=="Completed"&&E.fetchState!=="In-Progress"&&k&&p&&b&&n(qe()),y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&k&&p&&b&&n(Ft()),R!=="Completed"&&R!=="In-Progress"&&n(Vn())}),[E.fetchState,y.fetchState,n,k,p,b,R]);const Q=()=>{if(t!=null&&a!=null){n(za());const X=_e(s.tenantEmailDomain,a,t);e(X)}},c=U?.type.code==="business_physical_debit_card"||U?.type.code==="business_virtual_debit_card",O=Xe(k,L,_,p),q=La(k,p,b,E,y),se=Dr(c,f);return f.fetchState!=="Completed"?o.jsx(va,{fetchState:"In-Progress"}):o.jsxs(o.Fragment,{children:[o.jsx(nt,{showConfetti:m}),o.jsx(rc,{onGotItClick:Q,isDebitCard:U?.type.code==="business_physical_debit_card",controllerEmails:M,isChargeCardFeatureEnabled:k,isDebitCardFeatureEnabled:L,isDebitCardSetupEnabled:_,isChargeCardSetupEnabled:p,productInformation:O,creditAccountInformation:q,debitAccountInformation:se,chargeCardDetailView:f,creditAccount:E,classListFetchState:R,creditAccountRepayment:y,cardIssuedByRoles:z?.userRoles,cardIssuedByDepartmentName:v?.className,cardHolderRoles:K?.userRoles,cardHolderDepartmentName:I?.className})]})}const Br="charge-card-transaction-update",Rr="charge-card-transaction-created",Or="charge-card-transaction-declined",Ur="charge-card-transaction-updated",jr="charge-card-transaction-receipt-uploaded",pa="charge-card-status-update",Ht="charge-card-spending-updated",ct="credit-account-balance-updated",it="charge-card-created",Gt="charge-card-limit-updated",$t="charge-card-limit-reset",Kt="charge-card-renamed",Wc="charge-card-department-updated",Mr="charge-card-repayment-completed",Nr="charge-card-payment-date-updated",Ba="charge-card-cashback-redeemed",Ra="charge-card-cashback-earned",ha=(e,a)=>e==null||e===""?[]:a.map((n=>`private-encrypted-${e}.${n}`)),qc=[Ra,Ba],Jc=Pe((function(e){const a=ma(e);return{insightsData:a.insight,cashbackByPeriod:a.cashbackByPeriod,uiState:a.uiState,cashbackSummary:a.cashbackSummary}}),(function(e){return{onColumnSortConfigChanged:(a,n)=>{e(Ts({uiState:{sortKey:a,sortOrder:n}}))}}}))(oc);function Qc(){const e=de(),a=me(),n=he(),t=te.getSignedInUser(),s=d((F=>fe(F))),{useFeatureGate:g}=le(),{isFeatureEnabled:b}=g(Y.isCardsCommentingEnabled),[h,A]=r.useState(!1),u=d((F=>ma(F))),m=vr(s.companyId,{clearParams:u.fetchState==="Completed"}),T=r.useCallback((()=>{const F=we(n.state?.pathnameStackToGoBack),B=F.poppedPathname??Xc(s.tenantEmailDomain);e(B,{state:{pathnameStackToGoBack:F.newStack}})}),[e,n,s.tenantEmailDomain]),w=aa(s);if(Vt({events:ha(w,qc),onEvent:F=>{switch(F){case Ra:case Ba:return void a(_a(!0))}},onSubscribed:()=>{a(_a(!0))}}),r.useEffect((()=>{h||u.fetchState==="Completed"||u.fetchState==="In-Progress"||(A(!0),a(_a()))}),[h,u,a]),t==null)throw Error("Can't access cashback detail page without signing in...");const p=u.cashbackSummary?.cashbackEarned?.amount!=null&&u.fetchState!=="Not-Started";return u.fetchState!=="In-Progress"||p?(u.cashbackSummary?.cashbackEarned?.amount??0)===0&&u.fetchState==="Completed"?o.jsx(ot,{}):o.jsx(Jc,{onBackClick:T,isCardsCommentingEnabled:b,initialOpenThreadRequest:m}):o.jsx(sc,{onBackClick:T})}const Xc=e=>`/${e}/cards`,ei={containerWidth:new Ta(100,58)},ai=({appContent:e})=>{const a=Fa(),n=me(),t=de(),{cardId:s}=Ne(),g=he(),{useDynamicConfig:b}=le(),[h,A]=r.useState(!1),[u,m]=r.useState(!1),[T,w]=r.useState(!1),[p,F]=r.useState(!1),B=te.getSignedInUser();if(B==null)throw Error("Can't access onboarding card page without signing in...");const S=d((I=>fe(I)));if(s==null)throw Error("Empty card id is not valid...");const{configValue:l}=b(Qe.zeniCardsConfig),C=l.max_charge_card_activation_attempts_by_card_id,L=d((I=>xs(I,s))),k=L.chargeCard,_=d((I=>I.chargeCardConfigState.fetchState)),{useFeatureGate:D}=le(),{isFeatureEnabled:M}=D(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:E}=D(Y.isDebitCardFeatureEnabled),y=Le(E,S),R=Re({isDebitCardFeatureEnabled:E,isBankingOnlyTenant:y}),i=!!S.companyChargeCardInfo?.info?.isChargeCardEnabled,f=S.userRole.includes("charge_card_user"),j=Te(S),$=xe(S),U=S.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,x=Oe({isCardsOnlyTenant:j,isChargeCardFeatureEnabled:M,isBookKeepingTenant:$,isDebitCardProductVisible:R,chargeCardsCreditAccountLimit:U}),z=!f&&x&&i;r.useEffect((()=>{h===!1&&_!=="In-Progress"&&_!=="Completed"&&(n(Ja()),A(!0)),u===!1&&L.fetchState==="Not-Started"&&(m(!0),n(ka(s,z,x)))}),[u,L.fetchState,h,_]);const H=k?.type.code==="business_physical_credit_card"||k?.type.code==="business_physical_debit_card";r.useEffect((()=>{if(L.fetchState==="Completed"){if(T===!1&&(H===!1||H&&k?.status?.code!=="inactive"||k?.cardHolderUserId!==B.userId)){const I=_e(S.tenantEmailDomain,s,B,k,!0),N=ke(g.state?.pathnameStackToGoBack,g.pathname);t(I,{state:{pathnameStackToGoBack:N}})}else if(T&&L.isRefreshingViewInBackground===!1&&k?.status?.code==="active"){n(Ls({chargeCardId:s}));const I=_e(S.tenantEmailDomain,s,B,k,!0),N=ke(g.state?.pathnameStackToGoBack,g.pathname);n(Qa()),t(I,{state:{pathnameStackToGoBack:N}})}}}),[L.fetchState,k?.type.code,T,L.isRefreshingViewInBackground]);const v=te.getZeniOtpTokenForCardHolder(s),P=d((I=>Hn(I.userState,B.userId))),K=()=>{k?.status?.code!=="active"&&n(ba(s,!0))};r.useEffect((()=>{L.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&k?.cardActivationAttemptHistory.some((I=>I.statusCode==="success"))===!0&&T===!1&&(setTimeout(K,3e3),w(!0))}),[L.updatePhysicalChargeCardAttemptFetchState.fetchState,k?.cardActivationAttemptHistory]);const W=I=>{F(I)};if(_!=="Completed"||k==null)return o.jsx(va,{fetchState:"In-Progress"});if(k.shippingAddressId==null)throw Error("Can't access shippingAddressId.");if(P?.phone==null)throw Error("Can't access user phone number.");return o.jsxs(ri,{children:[o.jsx(Ee,{isAppContentDrawerOpen:p,handleDrawerToggle:W}),o.jsx(ti,{cardId:s,card:k,shippingAddressId:k.shippingAddressId,phone:P.phone,signedInUser:B,isSandboxEnv:Rt(),chargeCardDetailState:L,signedInUserToken:v,navigate:t,currentTenant:S,location:g,maxChargeCardActivationAttempts:C[s]!=null?C[s]:l.default_max_charge_card_activation_attempts!=null?l.default_max_charge_card_activation_attempts:3,chargeCardCashbackRatePerTransaction:l.charge_card_cashback_rate_per_transaction!=null?l.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{W(!0)}}),e!=null?o.jsx(ni,{windowSize:a,children:e}):null]})},ti=Pe((function(e,{chargeCardDetailState:a,shippingAddressId:n,location:t,cardId:s}){const g=Bs(e.addressState,n);if(g==null)throw Error("Can't access shippingAddress.");const b=Gn(e,s),h=a.updateStatus,A=Ca(e,!1,!1,!1);let u=!1;A.fetchState==="Completed"&&A.cards.length<=1&&(u=!0);const m=t.state?.message==="comingFromV2UrlPath";return{showActivatePage:a.chargeCard?.providerCardCreateTime!=null&&a.chargeCard.providerCardCreateTime.add(24,"h").isBefore(Rs())||m,showMenuIcon:u,shippingAddress:g,vgsVaultId:rt.cardVaultId,twoFAView:b,activationWaitStatus:h,isRefreshingViewInBackground:a.isRefreshingViewInBackground}}),(function(e,a){const{navigate:n,cardId:t,location:s,currentTenant:g,chargeCardDetailState:b}=a,h=b.chargeCard?.cardProviderID,{tenantEmailDomain:A}=g;return{onGetOtp:u=>{h!=null&&e(at(u,"ChargeCardHolder",t))},onUpdatePhysicalChargeCardAttempt:u=>{e(Us(t,u))},onResendOtp:u=>{h!=null&&e(et(u,"ChargeCardHolder",t))},onVerifyOtp:(u,m)=>{h!=null&&e(Xa(u,m,"ChargeCardHolder",t))},onVerifyOtpSuccess:u=>{u!=null&&te.saveZeniOtpTokenForCardHolder(u,t)},onCVVActivateSuccess:()=>{e(Os({chargeCardId:t}))},onBackClick:()=>{const u=we(s.state?.pathnameStackToGoBack),m=u.poppedPathname==null||u.poppedPathname.includes("onboard")===!0?ta(A):u.poppedPathname;n(m,{state:{pathnameStackToGoBack:u.newStack}})}}}))(cc),ni=Ve.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
width: ${e=>`${ei.containerWidth.value(e.windowSize)}%`};
|
|
5
|
-
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
6
|
-
`,ri=Ve.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
|
-
`,Ya=ea.getLocalizedStrings().dateFormat,si={overlayWidth:new Ta(100,100,58)},Vr=[Mr,ct],oi=new Set(Vr),ci=Pe((function(e,a){const n=a.currentTenant?.companyId;return{plaidConnectionDetails:Ns(e,n,"zeni_accounts","external_account").plaidConnectionDetails,depositAccountListView:Vs(e.depositAccountState,e.depositAccountListState)}}),(function(e,a){const{navigate:n,currentTenant:t,isCashbackInfoFetchStateCompleted:s,isCreditCardInfoFetchStateCompleted:g,isDebitCardInfoFetchStateCompleted:b,controllerEmails:h,paymentDetails:A,productInformation:u,cashbackInformation:m,paymentSourceInformation:T,creditAccountInformation:w,debitAccountInformation:p,paymentInitiatedDate:F,sourcePage:B}=a,{tenantEmailDomain:S}=t,l=()=>{e(zn(!0));const C=aa(t);C!=null&&C!==""&&e(Pa(C,!0,!0)),e(qe(!0))};return{onBackNavigation:()=>{if(s&&g&&b&&m!=null&&ae.trackCardsPayEarlyFormClick(h,u,m,"Back",A.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:A.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:A.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:A.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:A.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:F?.add(3,"day").format(Ya.visual.MMMDCommaYYYYformat),paymentInitiatedDate:F?.format(Ya.visual.MMMDCommaYYYYformat)},T,w,p),B==="cardPaymentHistory")a.closeDrawerHandler(!0),e(Zn());else{const C=ta(S);n(C)}},onUpdatePaymentAccountStatus:(C,L,k)=>{e($s(C,L,"bill_pay","bill_pay_detail",k))},onEstablishConnectionSuccess:()=>{e(Pa(t.companyId,!0))},onFetchLinkTokenClick:C=>{e(Gs("external_account",C))},onEstablishConnectionClick:C=>{e(Hs(C,t.companyId,"charge_card_payment","charge_cards"))},onEventReceived:C=>{oi.has(C)&&l()},onPusherSubscribed:l}}))(st(ic)),zt=({isPaymentDrawerOpen:e,closeDrawerHandler:a,pageName:n,creditAccountSpentAmount:t,productInformation:s,sourcePage:g,creditAccountInformation:b,debitAccountInformation:h,cashbackInformation:A,isDebitCardInfoFetchStateCompleted:u,isCreditCardInfoFetchStateCompleted:m,isCashbackInfoFetchStateCompleted:T,paymentInitiatedDate:w,retryRepayment:p})=>{const F=de(),{useDynamicConfig:B}=le(),S=d((V=>$n(V))),{creditAccount:l}=d((V=>ua(V))),C=d((V=>fe(V))),L=Ot(),k=Fa(),_=me(),D=te.getSignedInUser(),M=Be(),[E,y]=r.useState(!1),[R,i]=r.useState(!1),{configValue:f}=B(Qe.zeniCardsConfig),j=f.credit_card_auto_pay_threshold_by_company_id?.[C.companyId]??f.default_credit_card_auto_pay_threshold??Fc,$=Kn(M?.loggedInUserRoleMap),U=js(M?.loggedInUserRoleMap),x=d((V=>wa(V,C.companyId))),z=x.companyChargeCardInfo?.primaryFundingAccount,H=x.allFundingAccounts.find((V=>V.id===z?.accountId)),v=d((V=>da(V,C.companyId))),P=la(v.controllers);r.useEffect((()=>{if(S.fetchState!=="Completed"&&S.fetchState!=="In-Progress"&&_(zn()),S.fetchState==="Completed"&&!R){const V=C.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,Q=S.transferFromAccounts.find((O=>O.id===V));let c;if(g==="cardPaymentHistory"&&p){const O=p.paymentAccountId!=null?S.transferFromAccounts.find((q=>q.id===p.paymentAccountId)):void 0;c={amount:p.amount,isAutoRepayment:C.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:yn(),transferFrom:O??Q}}else c={amount:{amount:l.balance.amount+l.hold.amount,currencyCode:l.balance.currencyCode,currencySymbol:l.balance.currencySymbol},isAutoRepayment:C.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:yn(),transferFrom:Q};_(gn(c)),i(!0)}}),[S.fetchState,R,g,p,S.transferFromAccounts,C.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,C.companyChargeCardInfo?.info?.isAutoPayEnabled,l.balance.amount,l.balance.currencyCode,l.balance.currencySymbol,l.hold.amount,_]);const K={isZeniCheckingEnabled:C.companyZeniAccountInfo?.info?.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:H?.accType==="depositAccount",creditCardPaymentSourceAccountName:H?.label,creditCardPaymentSourceAccountType:H?.accType,creditCardPaymentSourceLastFourDigits:H?.accountLast4,creditCardPaymentSourceBalance:H?.accountBalance?.available?.amount??0};if(r.useEffect((()=>{x.fetchState!=="Completed"&&x.fetchState!=="In-Progress"&&_(Pa(C.companyId,!0))}),[x.fetchState]),r.useEffect((()=>{S.updateStatus==="Completed"&&A!=null&&T&&m&&u&&ae.trackCardsPayEarlyPayNowClick(P,s,A,S.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:S.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:S.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:S.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:S.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:w?.add(3,"day").format(Ya.visual.MMMDCommaYYYYformat),paymentInitiatedDate:w?.format(Ya.visual.MMMDCommaYYYYformat)},K,b,h)}),[S.updateStatus,A,T,m,u,w]),r.useEffect((()=>{S.fetchState==="Completed"&&A!=null&&T&&m&&u&&!E&&e&&R&&A!=null&&(ae.trackCardsPayEarlyFormView(P,s,A,n,C.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,l.balance.amount,K,b,h),y(!0))}),[S,T,m,u,E,e,R]),D==null)throw Error("Can't access invite people page without signing in...");const W=()=>{a(!0),_(Zn())},I=aa(C),N={events:e?ha(I,Vr):[],eventCallback:(V,Q,c)=>{c.onEventReceived(V)},onSubscribed:V=>{V.onPusherSubscribed()}};return o.jsx(o.Fragment,{children:o.jsx(Ar,{onClose:()=>{W()},anchor:"right",transitionDuration:250,open:e,PaperProps:{style:{width:si.overlayWidth.valuePercentage(k),boxShadow:"none"}},slotProps:{backdrop:{style:{backgroundColor:L.colors.black,opacity:.75,cursor:"pointer"}}},children:o.jsx(ii,{onClick:V=>V.stopPropagation(),children:o.jsx(ci,{...N,closeDrawerHandler:a,navigate:F,paymentDetails:S,creditAccountSpentAmount:t,onTransferClick:()=>{T&&m&&u&&A!=null&&ae.trackCardsPayEarlyFormClick(P,s,A,"Pay Now",S.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:S.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:S.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:S.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:S.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:void 0,paymentInitiatedDate:void 0},K,b,h),_(Ms({companyId:C.companyId}))},onDismissClick:W,onSaveChangesToLocalStore:V=>{_(gn(V))},currentTenant:C,hasZeniAccountsAdminAccess:$,isZeniAccountsUser:U,productInformation:s,sourcePage:g,controllerEmails:P,autoPayThreshold:j,paymentSourceInformation:K,creditAccountInformation:b,debitAccountInformation:h,cashbackInformation:A,isCashbackInfoFetchStateCompleted:T,isCreditCardInfoFetchStateCompleted:m,isDebitCardInfoFetchStateCompleted:u,paymentInitiatedDate:w})})})})},ii=Ve(vc)`
|
|
15
|
-
display: flex;
|
|
16
|
-
min-height: 100%;
|
|
17
|
-
flex-direction: column;
|
|
18
|
-
`,Zt=e=>e!=null&&typeof e=="object"?e:null,ie=e=>typeof e=="string"?e:void 0,je=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,Wa=e=>e!=null&&typeof e=="object"&&typeof e.code=="string"&&typeof e.name=="string",gt=e=>{if(e==null||typeof e!="object")return!1;const a=e;return typeof a.transaction_id=="string"&&typeof a.amount=="number"&&typeof a.currency_code=="string"&&typeof a.currency_symbol=="string"&&typeof a.direction=="string"&&!!Wa(a.transaction_status)&&!!Wa(a.transaction_type)},Yt=(e,a)=>{const n=e?.card_status;if(!Wa(n))return null;const t=e?.is_locked_by_admin;return{cardId:a,cardStatus:n,isLockedByAdmin:typeof t=="boolean"?t:void 0}},At=[Br,Rr,Or,Ur,jr,pa,Ht,ct,Gt,$t,Kt],Hr=[Ra,Ba],di=new Set([...At,...Hr]),bt=ea.getLocalizedStrings().dateFormat,li=Pe((function(e,a){const{includeCreditAccountInfo:n,cardId:t,signedInUserToken:s,isChargeCardFeatureEnabled:g}=a,b=te.getSignedInUser(),h=e.tenantState.currentTenantId,A={userId:b?.userId??"",sessionId:b?.zeniSessionId??"",tenantId:h??""},u=vt(e,t,n,g),m=Xs(e,t),T=eo(e);return{chargeCardDetailView:u,chargeCardsRecurringExpensesState:m,vgsVaultId:rt.cardVaultId,transactionAttachmentsEndpointToFetch:`${Et}/card_transaction_attachments`,transactionAttachmentEndpointToDownload:`${Et}/card_transaction_attachment`,authParams:A,isSnackbarOpen:T.isSnackbarOpen,cardsEndPoint:`${yr.cardMicroServiceBaseUrl}`,signedInUserToken:u.twoFAView.token??s,receiptsEmail:Wn(e.tenantState,h)}}),(function(e,a){const{cardId:n,currentTenant:t,navigate:s,location:g,cardProviderId:b,includeCreditAccountInfo:h,setIsPaymentOpen:A,controllerEmails:u,productInformation:m,cashbackInformation:T,primaryFundingAccountDetails:w,creditAccountInformation:p,debitAccountInformation:F,isChargeCardFeatureEnabled:B}=a,{tenantEmailDomain:S}=t;return{onEventReceived:(l,C)=>{(({event:L,data:k,cardId:_,dispatch:D,subscribedEvents:M})=>{const E=Zt(k);switch(L){case Ra:case Ba:return void D(_a(!0));case Br:{const y=ie(E?.card_id);if(y==null||y!==_)return;const R=ie(E?.transaction_id),i=E?.transaction_status;return R!=null&&Wa(i)?void D(Js({transactionId:R,transactionStatus:i})):void D(oa(_,null,null,!0))}case pa:{const y=ie(E?.card_id)??_;if(y!==_)return;const R=Yt(E,y);return R!=null?void D(Tt(R)):void D(ba(_,!0))}case Ht:{const y=ie(E?.card_id)??_;if(y!==_)return;const R=ie(E?.currency_code),i=ie(E?.currency_symbol),f=je(E?.balance);return R!=null&&i!=null&&f!=null?(D(qs({cardId:y,currencyCode:R,currencySymbol:i,balance:f,hold:je(E?.hold),dailyPurchaseSpends:je(E?.daily_purchase_spends),monthlyPurchaseSpends:je(E?.monthly_purchase_spends),dailyWithdrawals:je(E?.daily_withdrawals),monthlyWithdrawals:je(E?.monthly_withdrawals)})),void D(qe(!0))):(D(ba(_,!0)),void D(qe(!0)))}case ct:{const y=ie(E?.currency_code),R=ie(E?.currency_symbol),i=je(E?.available_amount),f=je(E?.balance_amount);return y!=null&&R!=null&&i!=null&&f!=null?void D(Ws({currencyCode:y,currencySymbol:R,available:i,balance:f,hold:je(E?.hold_amount),cashback:je(E?.cashback_amount)})):void D(qe(!0))}case Rr:{const y=ie(E?.card_id)??_;if(y!==_)return;const R=E?.transaction;return gt(R)?void D(Ys({cardId:y,transaction:R})):void D(oa(_,null,null,!0))}case Or:{const y=ie(E?.card_id)??_;if(y!==_)return;const R=E?.transaction;return gt(R)?void D(Zs({cardId:y,declineReason:ie(E?.decline_reason),transaction:R})):void D(oa(_,null,null,!0))}case Ur:{const y=ie(E?.card_id)??_;if(y!==_)return;const R=E?.transaction;return gt(R)?void D(zs({cardId:y,transaction:R})):void D(oa(_,null,null,!0))}case jr:{const y=ie(E?.card_id)??_;if(y!==_)return;const R=ie(E?.transaction_id),i=E?.attachment_file_paths;return R!=null&&Array.isArray(i)&&i.every((f=>typeof f=="string"))?void D(Ks({cardId:y,transactionId:R,attachmentFilePaths:i})):void D(oa(_,null,null,!0))}case Gt:case $t:case Kt:{const y=ie(E?.card_id);if(y==null||y!==_)return;D(ba(_,!0))}}})({event:l,data:C,cardId:n,dispatch:e,subscribedEvents:di})},onPusherSubscribed:()=>{e(ba(n,!0)),e(oa(n,null,null,!0)),e(qe(!0))},onReloadTransactions:()=>{e(ka(n,h,B))},onFetchChargeCardTransactionList:(l,C)=>{e(oa(n,l,C))},onUpdateScrollYOffset:l=>{},onGetOtp:l=>{b!=null&&e(at(l,"ChargeCardHolder",n))},onResendOtp:l=>{b!=null&&e(et(l,"ChargeCardHolder",n))},onVerifyOtp:(l,C)=>{b!=null&&e(Xa(l,C,"ChargeCardHolder",n))},onVerifyOtpSuccess:l=>{l!=null&&te.saveZeniOtpTokenForCardHolder(l,n)},onColorCodeChange:l=>{e(oo(n,l))},onLockChargeCard:(l,C)=>{e(nr(l,n,C))},onUnlockChargeCard:l=>{e(tr(l,n))},onCloseChargeCard:l=>{e(ar(n,l))},onFetchChargeCardsRecurringExpenses:()=>{e(er([n]))},updateChargeCardName:(l,C)=>{e(Xn(l,n,C))},updateChargeCardTransactionAttachments:(l,C)=>{C!=null&&e(so({transactionId:l,data:C}))},updateChargeCardTransactionUploadReceiptsFetchStatus:(l,C,L,k)=>{e(ro({chargeCardId:C,transactionId:l,fetchState:L,error:k}))},updateChargeCardTransactionReceiptsShowTick:(l,C,L)=>{e(no({chargeCardId:C,transactionId:l,shouldShowTick:L}))},onChargeCardRevokeInviteClick:()=>{e(Qn(n))},updateChargeCardTransactionIsViewReceiptClicked:(l,C,L)=>{e(to({chargeCardId:C,transactionId:l,isViewReceiptClicked:L}))},onChargeCardTransactionRowClick:(l,C)=>{const L=ke(g.state?.pathnameStackToGoBack,g.pathname);s(`../../transaction/${l}/${C}`,{state:{pathnameStackToGoBack:L}})},onBackClick:()=>{const l=we(g.state?.pathnameStackToGoBack),C=ta(S);s(C,{state:{pathnameStackToGoBack:l.newStack,message:"comingFromCardDetail"}})},removeSnackbar:()=>{e(ao())},onUpdateDebitCardPinAttempt:l=>{e(Jn(n,l)),l==="success"&&e(ze({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(l,C)=>{l?e(ze({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):C!=null&&e(ze({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:C.message}]}))},updateSpendLimit(l,C,L,k){e(qn(l,C,L.code,k))},shouldOpenCreditCardPaymentDrawer(l){l&&T!=null&&ae.trackCardsPayEarlyClick(u,m,T,"Card Detail","Text Button","Pay Now",{isZeniCheckingEnabled:t.company?.companyZeniAccountInfo.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:w?.accType==="depositAccount",creditCardPaymentSourceAccountName:w?.label,creditCardPaymentSourceAccountType:w?.accType,creditCardPaymentSourceLastFourDigits:w?.accountLast4,creditCardPaymentSourceBalance:w?.accountBalance?.available?.amount??0},p,F),A(l)}}}))(st(lc));function ui(){const e=de(),a=me(),n=he(),{cardId:t}=Ne(),[s,g]=r.useState(!1),[b,h]=r.useState(!1),{useDynamicConfig:A}=le(),u=te.getSignedInUser(),m=d((Z=>fe(Z))),T=d((Z=>qa(Z).firstViewAfterActivation)),w=d((Z=>Z.classListState.fetchState)),{configValue:p}=A(Qe.documentAiReceiptMaxSizeLimitBytesConfig),{configValue:F}=A(Qe.zeniCardsConfig),B=F.enable_card_controls_for_company_ids,S=F.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(B)&&B.includes(m.companyId),[l,C]=r.useState(!1),[L,k]=r.useState(!1),{useFeatureGate:_}=le(),{isFeatureEnabled:D}=_(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:M}=_(Y.isDebitCardFeatureEnabled),E=Le(M,m),y=Re({isDebitCardFeatureEnabled:M,isBankingOnlyTenant:E}),{isFeatureEnabled:R}=_(Y.isEarlyPayFeatureEnabled),{isFeatureEnabled:i}=_(Y.isCardsCommentingEnabled),f=xe(m),j=Te(m),$=m.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,U=Oe({isCardsOnlyTenant:j,isChargeCardFeatureEnabled:D,isBookKeepingTenant:f,isDebitCardProductVisible:y,chargeCardsCreditAccountLimit:$}),x=!!m.companyDebitCardInfo?.info?.isDebitCardEnabled,z=!!m.companyChargeCardInfo?.info?.isChargeCardEnabled,H=!m.userRole.includes("charge_card_user")&&U&&z;if(t==null)throw Error("Empty card id is not valid...");const v=d((Z=>wa(Z,m.companyId))),{creditAccount:P,creditAccountRepayment:K}=d((Z=>ua(Z))),W=te.getZeniOtpTokenForCardHolder(t),I=d((Z=>vt(Z,t,H,U))),{isAiCfoAccessEnabled:N,onAskAiCfoClick:V}=xa({mobileExploreReferrer:"Card Detail"});Bt({isDataReady:I.fetchState==="Completed"});const Q=d((Z=>ma(Z))),c=I.chargeCard,O=Be(),q=Fe(O?.loggedInUserRoleMap),se=c?.type.code==="business_physical_debit_card"||c?.type.code==="business_virtual_debit_card",X=c?.type.code==="business_physical_debit_card"||c?.type.code==="business_physical_credit_card",He=c?.type.code==="business_virtual_debit_card"||c?.type.code==="business_virtual_credit_card",Ae=c?.type.code==="business_virtual_debit_card",ge=La(U,z,q,P,K),re=Dr(se,I),be=Mt(q,Q),ue=Xe(U,y,x,z),oe=I.depositAccountLimitFetchState.fetchState!=="Completed"&&I.depositAccountLimitFetchState.fetchState!=="In-Progress",Se=d((Z=>da(Z,m.companyId))),ee=la(Se.controllers),De=d((Z=>c?.cardCreatedByUser?.userId!=null?$a(Z.userRoleState,c?.cardCreatedByUser?.userId):void 0)),ve=d((Z=>De?.accountingClassIDs[0]!=null?Ka(Z.classState,{classId:De?.accountingClassIDs[0],reportId:"class_list"}):void 0)),Ce=d((Z=>c?.cardHolderUser?.userId!=null?$a(Z.userRoleState,c?.cardHolderUser?.userId):void 0)),J=d((Z=>Ce?.accountingClassIDs[0]!=null?Ka(Z.classState,{classId:Ce?.accountingClassIDs[0],reportId:"class_list"}):void 0)),fa=m?.userRole,na=d((Z=>Ca(Z,!1,y,D).revokeCardInvite)),Oa=ya(na.saveStatus.fetchState);if(r.useEffect((()=>{if(Oa==="In-Progress"&&na.saveStatus.fetchState==="Completed"){const Z=ta(m.tenantEmailDomain);e(Z)}}),[Oa,na.saveStatus.fetchState,e,m.tenantEmailDomain]),r.useEffect((()=>{T&&s===!1&&He&&(g(!0),setTimeout((()=>{a(za()),Ae&&a(ze({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))}),5e3))}),[T,s,He,Ae]),r.useEffect((()=>{l||I.fetchState==="Completed"||I.fetchState==="In-Progress"||t==null||(C(!0),a(ka(t,H,U,!1)))}),[l,I,t,a]),r.useEffect((()=>{!L&&I.fetchState==="Completed"&&I.chargeCard?.connectedAccountId!=null&&se&&oe&&q&&(k(!0),a(Yn({depositAccountId:I.chargeCard?.connectedAccountId})))}),[L,I,a,oe,q]),r.useEffect((()=>{Q.fetchState!=="Completed"&&Q.fetchState!=="In-Progress"&&q&&a(_a()),w!=="Completed"&&w!=="In-Progress"&&a(Vn()),I.transactionStatistics.fetchState!=="Completed"&&I.transactionStatistics.fetchState!=="In-Progress"&&a(Qs({chargeCardId:t})),v.fetchState!=="Completed"&&v.fetchState!=="In-Progress"&&a(Pa(m.companyId,!0))}),[Q.fetchState,a,q,w,I.transactionStatistics.fetchState,v.fetchState]),r.useEffect((()=>{if(!(I.fetchState!=="Completed"||U&&P.fetchState!=="Completed"||c==null||I.transactionStatistics.fetchState!=="Completed"||se&&q&&I.depositAccountLimitFetchState.fetchState!=="Completed")){const Z=c.type.code.includes("physical"),ye=Z?c.cardActivationAttemptHistory[0]?.timestamp:c.createTime;ae.trackCardsCardDetailView(ee,ue,{cardId:t,cardName:c.cardName,cardType:c.type.code.includes("credit")?"credit":"debit",cardCategory:Z?"physical":"virtual",cardLimit:Sa(c.limit.amount),cardLastFourDigits:c.accountLast4,cardStatus:c.status.code,cardAssignedDate:c.createTime?.format(bt.analytics.MMMDashDDDashYYYYFormat),cardIssuedDate:c.providerCardCreateTime?.format(bt.analytics.MMMDashDDDashYYYYFormat),cardActivatedDate:ye?.format(bt.analytics.MMMDashDDDashYYYYFormat),cardLimitFrequency:c.creditLimitFrequency.name,cardSpentAmount:Sa(c.balance.amount),cardAvailableLimit:Sa(c.available.amount),cardUtilizationPercent:c.limit.amount>0?Math.round((c.limit.amount-c.available.amount)/c.limit.amount*100):0,cardUtilizationAmount:Sa(c.limit.amount-c.available.amount),totalNumberOfDeclinedTransactions:I.transactionStatistics.statistics.totalNumberOfDeclinedTransactions,numberOfDeclinedTransactionsCurrentMonth:I.transactionStatistics.statistics.numberOfDeclinedTransactionsCurrentMonth,totalNumberOfPaidTransactions:I.transactionStatistics.statistics.totalNumberOfPaidTransactions,numberOfPaidTransactionsCurrentMonth:I.transactionStatistics.statistics.numberOfPaidTransactionsCurrentMonth,totalNumberOfCanceledTransactions:I.transactionStatistics.statistics.totalNumberOfCanceledTransactions,numberOfCanceledTransactionsCurrentMonth:I.transactionStatistics.statistics.numberOfCanceledTransactionsCurrentMonth,totalNumberOfAuthorizedTransactions:I.transactionStatistics.statistics.totalNumberOfAuthorizedTransactions,numberOfAuthorizedTransactionsCurrentMonth:I.transactionStatistics.statistics.numberOfAuthorizedTransactionsCurrentMonth,totalNumberOfTransactionsWithReceipts:I.transactionStatistics.statistics.totalNumberOfTransactionsWithReceipts,numberOfTransactionsWithReceiptsCurrentMonth:I.transactionStatistics.statistics.numberOfTransactionsWithReceiptsCurrentMonth},{cardIssuedByName:kt(c.cardCreatedByUser,!1),cardIssuedByEmail:c.cardCreatedByUser?.email,cardIssuedByUserId:c.cardCreatedByUser?.userId,cardIssuedByRole:De?.userRoles,cardIssuedByDepartment:ve?.className},{cardholderName:kt(c.cardHolderUser,!1),cardholderEmail:c.cardHolderUser?.email,cardholderRole:Ce?.userRoles,cardholderUserId:c.cardHolderUser?.userId,cardholderDepartment:J?.className},ge,re)}}),[I.fetchState,I.depositAccountLimitFetchState.fetchState,I.transactionStatistics.fetchState,P.fetchState,q]),u==null)throw Error("Can't access card detail page without signing in...");const dt=aa(m),Ea=q?[...At,...Hr]:At,ra={events:ha(dt,Ea),eventCallback:(Z,ye,ce)=>{ce.onEventReceived(Z,ye)},onSubscribed:Z=>{Z.onPusherSubscribed()}},Aa=()=>{if(t!=null&&c!=null){const{ownerName:Z,cardName:ye,utilisation:ce,limit:Ge,frequency:Ze,cardColor:$e}=St(c),Ke=c.cardHolderUserId===u.userId;ae.trackCardsDetailPageViewed(t,Z,ye,ce,Ge,Ze,$e,Ke)}};r.useEffect((()=>{if(I.fetchState==="Completed"){const Z=I.chargeCard;if(Z?.status.code==="inactive"||se&&Z?.isPinSet===!1||X&&T){const ye=_e(m.tenantEmailDomain,t,u,c,T);e(ye)}}}),[I.fetchState]);const lt=(Z,ye)=>{if(t!=null&&c!=null){const{ownerName:ce,cardName:Ge,utilisation:Ze,limit:$e,frequency:Ke}=St(c),sa=c.cardHolderUserId===u.userId;ae.trackCardsDetailPageClicked(t,ce,Ge,Ze,$e,Ke,Z,sa,ye)}},ut=(Z,ye)=>{if(t!=null&&c!=null){const{ownerName:ce,cardName:Ge,utilisation:Ze,limit:$e,frequency:Ke}=St(c),sa=c.cardHolderUserId===u.userId;ae.trackCardsVerifyPopUpClick(t,ce,Ge,Ze,$e,Ke,Z,sa,ye)}},pe=P.balance.amount+P.hold.amount,Ua=m.companyChargeCardInfo?.info?.primaryFundingAccount,Da=v.allFundingAccounts.find((Z=>Z.id===Ua?.accountId)),ja=I.chargeCard!=null,Ma=I.depositAccountLimit!=null;return I.fetchState!=="Error"||ja?!ja&&(I.fetchState==="In-Progress"||I.fetchState==="Not-Started")||na.saveStatus.fetchState==="In-Progress"||!Ma&&se&&q&&I.depositAccountLimitFetchState.fetchState!=="Completed"?o.jsx(dc,{}):o.jsxs(o.Fragment,{children:[o.jsx(nt,{showConfetti:T}),I.fetchState==="Completed"?o.jsx(Ut,{analytics:ae,onLoad:Aa}):null,b===!0?o.jsx(zt,{closeDrawerHandler:()=>h(!1),isPaymentDrawerOpen:b,pageName:"Card Detail",sourcePage:"cardDetailPage",productInformation:ue,creditAccountInformation:ge,debitAccountInformation:re,cashbackInformation:be,creditAccountSpentAmount:pe,isDebitCardInfoFetchStateCompleted:!se||!q||I.depositAccountLimitFetchState.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!U||P.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!q||Q.fetchState==="Completed",paymentInitiatedDate:K.initiatedRepaymentDate}):null,o.jsx(li,{...ra,hideSorting:!0,onColumnSortConfigChanged:()=>{},onFireVerifyPopOnClickAnalytics:ut,onFireOnClickAnalytics:lt,isSandboxEnv:Rt(),signedInUser:u,location:n,navigate:e,setIsPaymentOpen:h,cardIssuedByRoles:De?.userRoles,cardIssuedByDepartmentName:ve?.className,cardHolderRoles:Ce?.userRoles,cardHolderDepartmentName:J?.className,loggedInUserRole:fa,isChargeCardFeatureEnabled:U,isDebitCardFeatureEnabled:y,isDebitCardSetupEnabled:x,isChargeCardSetupEnabled:z,isCardControlsEnabled:S,isEarlyPayEnabled:R,controllerEmails:ee,chargeCardCashbackDetailState:Q,productInformation:ue,creditAccountInformation:ge,debitAccountInformation:re,cashbackInformation:be,classListFetchState:w,primaryFundingAccountDetails:Da,currentTenant:m,cardProviderId:I.chargeCard?.cardProviderID,cardId:t,creditAccount:P,creditAccountRepayment:K,includeCreditAccountInfo:H,signedInUserToken:W,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:p.documentAiReceiptMaxSizeLimitBytes!=null?p.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:N,onAskAiCfoClick:V,isCardsCommentingEnabled:i})]}):o.jsx(ot,{})}const St=e=>{const a=`${e.cardHolderUser?.firstName.toLowerCase()} ${e.cardHolderUser?.lastName.toLowerCase()}`,n=e.cardName,t=(e.limit.amount??0)-(e.available.amount??0),s=e.limit.amount,g=e.creditLimitFrequency.name;return{ownerName:a,cardName:n,utilisation:t,cardColor:e.cardColorCode??"",frequency:g,limit:s}},{spendManagement:{chargeCard:{cardsAiCfoHero:{headline:mi,subheadline:Ci,pageTitle:pi}}}}=ea.getLocalizedStrings(),Gr=[pa,ct,Nr,Ba,Ra,it,Kt,Wc,Gt,$t,Ht],hi=new Set(Gr),Dt=jt(((e,a,n,t)=>{e(ia(a,n,t,!0))}),400),fi=Ve.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
|
-
`,gi=Pe((function(e,a){const n=Ca(e,a.includeCreditAccountDebitSummaryAndCashbackInfo,a.isDebitCardFeatureEnabled&&a.isDebitCardSetupEnabled,a.isChargeCardFeatureEnabled&&a.isChargeCardSetupEnabled);return{chargeCardListView:n,rowActionView:mo(e),bulkActionView:Co(e),companyLegalName:a.currentTenant.companyName,admins:a.admins,searchText:n.searchText,uiState:n.uiState,signedInUser:a.signedInUser,receiptsEmail:Wn(e.tenantState,a.currentTenant.tenantId)}}),(function(e,a){const{navigateAndClearBulkSelection:n,currentTenant:t,location:s,signedInUser:g,chargeCardListState:b,includeCreditAccountDebitSummaryAndCashbackInfo:h,isChargeCardFeatureEnabled:A,isCreditCardProductVisibleForExpressInterest:u,isChargeCardSetupEnabled:m,isDebitCardFeatureEnabled:T,isDebitCardSetupEnabled:w,isDebitCardTOSAccepted:p,isChargeCardTOSAccepted:F,controllerEmails:B,depositAccountListWithDebitCardIssued:S,primaryFundingAccountDetails:l,chargeCardSetUpViewFetchState:C,productInformation:L,cashbackInformation:k,creditAccountInformation:_,debitAccountInformation:D,updatePayNowInfoTooltip:M,isUserHasCardsAdminLevelAccess:E}=a,{tenantEmailDomain:y}=t,{cards:R}=b;return{onChargeCardRowClick:(i,f)=>{const j=Pr(R,i);let $;j!=null&&((x=>{const z=x.limit.amount-x.available.amount,H=`${x.cardHolderUser?.firstName.toLowerCase()} ${x.cardHolderUser?.lastName.toLowerCase()}`,v=x.cardName,P=x.department?.className??"",K=x.limit.amount,W=x.creditLimitFrequency.name;ae.trackCardsListRowClicked(H,v,P,z,K,W,g.userId===x.cardHolderUserId)})(j),ca(T,w,S)&&ae.trackCardsCardListRowClick(B,L,"Card Row Item","row_clicked",f+1,{cardOwner:kt(j.cardHolderUser,!1),cardName:j.cardName,cardType:j.type.code.includes("credit")?"credit":"debit",cardStatus:j.status.code,cardUtilizationAmount:Sa(j.limit.amount-j.available.amount),cardUtilizationPercent:j.limit.amount>0?Math.round((j.limit.amount-j.available.amount)/j.limit.amount*100):0,cardLimit:Sa(j.limit.amount)},k,_,D)),$=j?.status.code==="request_on_hold"&&g.userId===j.cardHolderUserId?wr(y):_e(y,i,g,j);const U=ke(s.state?.pathnameStackToGoBack,s.pathname);n($,{state:{pathnameStackToGoBack:U}})},onFetchChargeCardsRecurringExpenses:i=>{e(er(i))},onFetchDepositAccountLimit:i=>{e(Yn({depositAccountId:i}))},onChargeCardResendInviteClick:i=>{e(Io(i))},onChargeCardRevokeInviteClick:i=>{e(Qn(i))},onLockChargeCardList:(i,f)=>{e(yo(i,f))},onUnlockChargeCardList:i=>{e(So(i))},onCloseChargeCardList:(i,f)=>{e(bo(i,f))},onRevokeChargeCardList:i=>{e(go(i))},updateChargeCardListSpendLimit(i,f,j){e(fo(i,f,j.code))},onLockChargeCard:(i,f)=>{e(nr(E,i,f))},onUnlockChargeCard:i=>{e(tr(E,i))},onCloseChargeCard:(i,f)=>{e(ar(i,f))},onUpdateSpendLimit(i,f,j,$){e(qn(i,f,j.code,$))},updateChargeCardName:(i,f)=>{e(Xn(E,i,f))},onClickSetupIcon:()=>{ae.trackCardsListPageClicked("settings"),ca(T,w,S)&&k!=null&&ae.trackCardsSettingsClick(B,L,k,_,D);const i=xc(y),f=ke(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:f}})},onIssueCardClick:()=>{ae.trackCardsListPageClicked("new card"),ca(T,w,S)&&k!=null&&ae.trackCardsNewCardClick(B,L,k,"New Button","card_creation_initiated","Card List",_,D);const i=bi(y),f=ke(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:f}})},onColumnSortConfigChanged:(i,f)=>{ca(T,w,S)&&k!=null&&ae.trackCardsCardListSortClick(B,L,k,"Sort Icon","sort",i,f==="ascending"?"ASC":"DESC","Cards List",_,D),e(It({uiState:{sortKey:i,sortOrder:f}}))},onSearchTextChanged:i=>{e(ho(i))},onReloadCards:()=>{e(ia(h,T&&w,A&&m,!0))},onLetsGoClick:()=>{n("./onboard")},onBackClick:()=>{n("../../")},onTotalCashbackClick:()=>{ca(T,w,S)&&k!=null&&ae.trackCardsCashbackOverviewClick(B,L,k,"Cashback Overview","cashback_details_viewed",_,D),n("./cashback")},onClickStatementsIcon:()=>{ca(T,w,S)&&k!=null&&ae.trackCardsStatementsClick(B,L,k,_,D),n("./statements")},onCreateNowClick:i=>{ca(T,w,S)&&k!=null&&ae.trackCardsNewCardClick(B,L,k,"Promo Banner","card_creation_initiated","Card List",_,D),n(`./new?cardType=${i}`)},onPromoCardClick:i=>{n(i==="debit"&&T&&!p||i==="credit"&&u&&!F?`../promo?cardPromoType=${i}`:"./setup")},navigateToCreditCardPaymentPage:(i,f)=>{C==="Completed"&&t.company!=null&&k!=null&&ae.trackCardsPayEarlyClick(B,L,k,"Card List",i,f,{isZeniCheckingEnabled:t.company.companyZeniAccountInfo.isZeniAccountEnabled,isZeniCheckingPaymentSource:l?.accType==="depositAccount",creditCardPaymentSourceAccountName:l?.label,creditCardPaymentSourceAccountType:l?.accType,creditCardPaymentSourceLastFourDigits:l?.accountLast4,creditCardPaymentSourceBalance:l?.accountBalance?.available?.amount??0},_,D);const j=Si(y);n(j)},navigateToCreditCardPaymentHistoryPage:()=>{const i=yi(y),f=ke(s.state?.pathnameStackToGoBack,s.pathname);n(i,{state:{pathnameStackToGoBack:f}})},shouldShowPayNowInfoTooltip:M,onSetRowActionCardId:i=>{e(po(i))},onSetBulkActionCardIds:i=>{e(rr(i))},onEventReceived:i=>{hi.has(i)&&Dt(e,h,T&&w,A&&m)},onPusherSubscribed:()=>{Dt(e,h,T&&w,A&&m)}}}))(st(Cc));function kn({isPaymentDrawerOpen:e}){const a=de(),n=me(),t=he(),s=r.useCallback(((G,Ue)=>{n(rr([])),a(G,Ue)}),[n,a]),[g,b]=r.useState(!1),[h,A]=r.useState(te.getPayNowInfoTooltip()??!1),u=G=>{te.savePayNowInfoTooltip(G),A(G)},[m,T]=r.useState(!1),w=te.getSignedInUser(),p=d((G=>fe(G))),[F,B]=r.useState(!1),[S,l]=r.useState(!1),{isAiCfoAccessEnabled:C,onAskAiCfoClick:L}=xa({mobileExploreReferrer:"Cards"}),k=p.userRole.includes("charge_card_user"),_=!k,D=!!p.companyDebitCardInfo?.info?.isDebitCardEnabled,{useFeatureGate:M,useDynamicConfig:E}=le(),{isFeatureEnabled:y}=M(Y.isCashbackFeatureEnabled),{isFeatureEnabled:R}=M(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:i}=M(Y.isDebitCardFeatureEnabled),{isFeatureEnabled:f}=M(Y.isEarlyPayFeatureEnabled),{isFeatureEnabled:j}=M(Y.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:$}=M(Y.isCardsCommentingEnabled),{isFeatureEnabled:U}=M(Y.isAiCfoFileUploadEnabled),{isFeatureEnabled:x}=M(Y.isCardPolicyEnabled),{isFeatureEnabled:z}=M(Y.isAiCardCreationEnabled),H=Le(i,p),v=Re({isDebitCardFeatureEnabled:i,isBankingOnlyTenant:H}),P=Te(p),K=xe(p),W=p.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,I=Oe({isCardsOnlyTenant:P,isChargeCardFeatureEnabled:R,isBookKeepingTenant:K,isDebitCardProductVisible:v,chargeCardsCreditAccountLimit:W}),N=_r({isCardsOnlyTenant:P,isChargeCardFeatureEnabled:R,isBookKeepingTenant:K}),{configValue:V}=E(Qe.zeniCardsConfig),Q=Be(),c=Fe(Q?.loggedInUserRoleMap),O=d((G=>da(G,p.companyId))),q=la(O.controllers),se=V.charge_card_cashback_rate_per_transaction!=null?V.charge_card_cashback_rate_per_transaction:.0175,X=V.credit_card_pay_now_threshold_by_company_id?.[p.companyId]??V.default_credit_card_pay_now_threshold??Tc,He=V.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(V.enable_card_controls_for_company_ids)&&V.enable_card_controls_for_company_ids.includes(p.companyId),Ae=!!p.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,ge=!!p.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,re=!!p.companyChargeCardInfo?.info?.isChargeCardEnabled,be=!!p.company?.companyChargeCardInfo?.isChargeCardEnabled,ue=!!p.company?.companyDebitCardInfo?.isDebitCardEnabled,oe=d((G=>$n(G))),Se=ya(oe.updateStatus),ee=d((G=>Ca(G,_,v&&D,I&&re))),De=d((G=>co(G))),ve=d((G=>io(G))),Ce=d((G=>lo(G))),J=d((G=>uo(G))),fa=d((G=>Ce==null?[]:Nn(G.aiCfoState,Ce).filter((Ue=>Ue.kind==="creating_cards"))),_t),na=ya(ve.fetchState);r.useEffect((()=>{na==="In-Progress"&&ve.fetchState==="Completed"&&Ce!=null&&fa.forEach((G=>{n(yt({chatSessionId:Ce,id:G.id,entityIds:J,kind:"created_cards"}))}))}),[n,ve.fetchState,Ce,J,fa,na]);const Oa=ee.cards.filter((G=>G.type.code.includes("debit"))).map((G=>G.connectedAccountId)),dt=[...new Set(Oa)],Ea=d((G=>ma(G))),ra=d((G=>tt(G,dt))),Aa=d((G=>wa(G,p.companyId))),lt=Aa.companyChargeCardInfo?.primaryFundingAccount,ut=Aa.allFundingAccounts.find((G=>G.id===lt?.accountId)),pe=ee.fetchState,Ua=ee.creditAccount,Da=r.useCallback((()=>c===!0&&x===!0&&pe==="Completed"&&te.getCardPolicyPopupSeen(p.tenantEmailDomain??"")!==!0),[c,x,pe,p.tenantEmailDomain]),[ja,Ma]=r.useState(Da);r.useEffect((()=>{Ma(Da())}),[Da]);const Z=()=>{te.saveCardPolicyPopupSeen(p.tenantEmailDomain??"",!0),Ma(!1)},ye=pe==="Completed"&&!ee.hasCreditCard&&!ee.hasDebitCard;uc({isDataReady:pe==="Completed",pageContext:ye?"cards_creation":"cards"});const{creditAccountRepayment:ce}=d((G=>ua(G))),Ge=d((G=>qa(G).firstViewAfterActivation)),{areTenantIdsInSync:Ze}=Ir(),$e=Mt(c,Ea),Ke=La(I,re,c,Ua,ce),sa=Nt(v,D,c,ra,ee.debitCardSummary),mt=Xe(I,v,D,re),Ct=ee.creditAccount.balance.amount+ee.creditAccount.hold.amount;if(r.useEffect((()=>{pe==="Completed"&&(te.getPayNowInfoTooltip()==null||Ct<X*ee.creditAccount.limit.amount/100)&&u(!0)}),[pe,X,Ct,ee.creditAccount.limit.amount]),r.useEffect((()=>{if(e!=null&&e===!0&&ce.initiatedRepayments.amount===0&&ce.fetchState==="Completed"||Se==="In-Progress"&&oe.updateStatus==="Completed")u(!1),b(!0);else if(ce.initiatedRepayments.amount>0&&ce.fetchState==="Completed"){b(!1),document.body.style.overflow="auto";const G=ta(p.tenantEmailDomain);s(G)}}),[e,ce.initiatedRepayments.amount,ce.fetchState,Se,oe.updateStatus,s,p.tenantEmailDomain]),r.useEffect((()=>{!F&&(re||D)&&(be||ue)&&Ze&&(B(!0),n(ia(_,v&&D,I&&re,!1)))}),[F,_,n,Ze,be,ue]),r.useEffect((()=>{Ge&&m===!1&&(T(!0),setTimeout((()=>{n(za())}),5e3))}),[Ge,m]),r.useEffect((()=>()=>{Dt.flush()}),[]),r.useEffect((()=>{pe==="Completed"&&k&&ee.cards.length===1&&(ee.cards[0].status.code==="inactive"&&ee.cards[0].type.code==="business_physical_credit_card"?s(`./${ee.cards[0].id}/activate`):ee.cards[0].status.code!=="request_on_hold"&&(t.state?.message==="comingFromCardDetail"?s("../../"):s(`./${ee.cards[0].id}`)))}),[pe,k,t.state,s,ee.cards]),r.useEffect((()=>{if(pe==="Completed"&&k){const G=ee.cards.length,Ue=ee.cards.filter((Ye=>Ye.cardHolderUserId===w?.userId)).filter((Ye=>Ye.status.code==="request_on_hold"));Ue.length>0&&G===Ue.length&&s("./onboard")}}),[pe,ee.cards,k,s,w?.userId]),r.useEffect((()=>{pe!=="Completed"||I&&ce.fetchState!=="Completed"||v&&D&&c&&ra.fetchState!=="Completed"||ae.trackCardsCardListView(q,mt,$e,Ke,sa)}),[pe,Ua,ce.fetchState,ra.fetchState,c]),w==null)throw Error("Can't access charge card list page without signing in...");const Zr=d((G=>sr(G.userState,G.userRoleState,G.userListViewState,"cardAdmin"))),Wt=xt(Q?.loggedInUserRoleMap),qt=G=>{l(G)},Yr=ee.creditAccount.limit,Wr=()=>{b(!1),s("..")},qr=p.companyChargeCardInfo?.info!=null&&Ia({cardInfo:p.companyChargeCardInfo.info,isProductVisible:I&&be,isTOSAccepted:Ae,isSetupEnabled:re,isUserHasCardsAdminLevelAccess:c,isUserHasCardsAccess:Wt}),Jr=p.companyDebitCardInfo?.info!=null&&Ia({cardInfo:p.companyDebitCardInfo.info,isProductVisible:v&&ue,isTOSAccepted:ge,isSetupEnabled:D,isUserHasCardsAdminLevelAccess:c,isUserHasCardsAccess:Wt}),Qr=qr||Jr,Jt=(function(G){const{isEmptyCardsState:Ue,isChargeCardAdmin:Ye,isFileUploadEnabled:an}=G,tn=de(),Na=he(),{tenantEmailDomain:Va}=Ne(),{isAiCfoOpen:ns,setIsAiCfoOpen:nn}=fr(),rs=gr(),ss=br(),rn=d((Ie=>Mn(Ie))).createSessionAndSubmitState.fetchState==="In-Progress",{chips:sn,isResolved:on}=Lr("cards_creation"),cn=r.useMemo((()=>xr(sn,on,3)),[sn,on]),[Ha,pt]=r.useState(""),dn=ss&&rs&&Va!=null&&!ns,ga=r.useCallback((Ie=>{if(Va==null)return;const os=ke(Na.state?.pathnameStackToGoBack,Na.pathname);tn(`/${Va}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:os,referrer:"cards_hero",aiCfoInitialQuestion:Ie,aiCfoShouldSubmit:Ie!=null&&Ie.trim().length>0}})}),[Na.pathname,Na.state,tn,Va]),ln=r.useCallback((Ie=>{Ie.trim().length!==0&&(pt(""),ga(Ie))}),[ga]),un=r.useCallback((()=>{const Ie=Ha.trim();Ie.length!==0&&(pt(""),ga(Ie))}),[Ha,ga]),mn=r.useCallback((()=>{}),[]),Cn=r.useCallback((Ie=>{pt(Ie)}),[]),pn=r.useCallback((()=>{nn(!0)}),[nn]),hn=r.useCallback((()=>{ga(void 0)}),[ga]);return r.useMemo((()=>{if(dn&&Ue&&Ye)return{aiAgentName:pi,headline:mi,subheadline:Ci,promptChips:cn,composer:{currentInput:Ha,isSubmitting:rn,isFileUploadEnabled:an,onInputChange:Cn,onSubmit:un,onStopSubmit:mn},onPromptClick:ln,onOpenSidePanel:pn,onOpenFullView:hn,dataTestIdPrefix:"cards-ai-cfo-hero"}}),[Ha,dn,Ye,Ue,an,rn,Cn,hn,pn,ln,mn,un,cn])})({isEmptyCardsState:ye,isChargeCardAdmin:c,isFileUploadEnabled:U}),Qt=z&&Jt!=null?o.jsx(Sr,{...Jt}):null,{isCardsShuttingDown:Xt,shutdownContent:en}=kr(p.tenantId,p.company?.managementInfo?.receiverEmails),Xr=Xt===!0&&en!=null?o.jsx(mc,{shutdownContent:en}):null,es=C&&Qt==null,as=aa(p),ts={events:ha(as,Gr),eventCallback:(G,Ue,Ye)=>{Ye.onEventReceived(G)},onSubscribed:G=>{G.onPusherSubscribed()}};return re||D?o.jsxs(o.Fragment,{children:[pe==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ut,{analytics:ae,onLoad:()=>{ae.trackPageLoaded(Er.Event.cardsListPage),(I&&!re||v&&!D)&&ae.trackCardsPromoView(q,{isCreditCardOffered:I,isDebitCardOffered:v,isDebitCardEnabled:D,isCreditCardEnabled:re},"Banner",v&&!D?"Debit Card":I&&!re?"Credit Card":"","Card List")}}),o.jsx(nt,{showConfetti:Ge})]}):null,g===!0?o.jsx(zt,{closeDrawerHandler:Wr,isPaymentDrawerOpen:g,pageName:"Card List",sourcePage:"cardListPage",creditAccountSpentAmount:Ct,productInformation:mt,creditAccountInformation:Ke,debitAccountInformation:sa,cashbackInformation:$e,isDebitCardInfoFetchStateCompleted:!(v&&D&&c)||ra.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!I||ce.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!c||Ea.fetchState==="Completed",paymentInitiatedDate:ce.initiatedRepaymentDate}):null,o.jsxs(fi,{children:[o.jsx(Ee,{isAppContentDrawerOpen:S,handleDrawerToggle:qt}),o.jsx(gi,{...ts,isCashbackFeatureEnabled:y,isChargeCardFeatureEnabled:I,isDebitCardFeatureEnabled:v,isCreditCardProductVisibleForExpressInterest:N,updatePayNowInfoTooltip:u,showPayNowInfoTooltip:h,creditCardPayNowThreshold:X,signedInUser:w,chargeCardListState:ee,location:t,admins:Zr.users,navigateAndClearBulkSelection:s,currentTenant:p,isCardControlsEnabled:He,companyChargeCardInfoCreditAccountLimit:p.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,isCompanyInterestedInChargeCard:p.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,isUserHasCardsAdminLevelAccess:c,includeCreditAccountDebitSummaryAndCashbackInfo:_,onClickMenuIcon:()=>{qt(!0)},creditLimit:Yr,isChargeCardSetupEnabled:re,isChargeCardEnabledOnCompany:be,isDebitCardSetupEnabled:D,isDebitCardEnabledOnCompany:ue,isEarlyPayEnabled:f,isChargeCardPaymentHistoryFeatureEnabled:j,cashbackRate:se,controllerEmails:q,chargeCardCashbackDetailState:Ea,depositAccountListWithDebitCardIssued:ra,isChargeCardTOSAccepted:Ae,isDebitCardTOSAccepted:ge,primaryFundingAccountDetails:ut,chargeCardSetUpViewFetchState:Aa.fetchState,productInformation:mt,creditAccountInformation:Ke,debitAccountInformation:sa,cashbackInformation:$e,isAiCfoAccessEnabled:es,onAskAiCfoClick:L,isCardsCommentingEnabled:$,cardsAiCfoHero:Qt,cardsShutdownBanner:Xr,isCardsShuttingDown:Xt,onClickPolicyIcon:c&&x?()=>a(Ii(p.tenantEmailDomain)):void 0,isPolicyIntroTooltipVisible:ja,onPolicyIntroTooltipClose:Z,pendingCreationCount:De})]})]}):(Ae||ge)&&c===!0?o.jsx(Je,{to:"../setup"}):Qr?o.jsx(Je,{to:"../promo"}):o.jsx(va,{fetchState:pe})}const bi=e=>`/${e}/cards/new`,Si=e=>`/${e}/cards/payment`,yi=e=>`/${e}/cards/payment-history`,Ii=e=>`/${e}/cards/policy`,$r=[Mr,Nr],ki=new Set($r),Ei=Pe((function(e){const a=te.getSignedInUser(),n=fe(e),t=e.tenantState.currentTenantId,s=or(e),g={userId:a?.userId??"",sessionId:a?.zeniSessionId??"",tenantId:t??""},b=n?.companyName??"",h=e.chargeCardPaymentHistoryState.downloadUIState.downloadState;return{fetchState:s.fetchState,filters:s.filters,isZeniTenant:ko(n),repaymentList:s.repaymentHistory,searchText:s.searchText,repaymentHistoryUsers:s.repaymentHistoryUsers,sortConfig:{sortKey:s.uiState.sortKey,sortOrder:s.uiState.sortOrder},downloadParams:{authParams:g,companyName:b,spendManagementEndPoint:`${Et}/spendManagement`,isShowDeletedBillsEnabled:!1,isShowDeletedReimbursementEnabled:!1},downloadState:h}}),(function(e,a){const{location:n,navigate:t}=a;return{onBackClick:()=>{const s=we(n.state?.pathnameStackToGoBack),g=s.poppedPathname??"..";t(g,{state:{pathnameStackToGoBack:s.newStack}})},onColumnSortConfigChanged:(s,g)=>{e({type:"chargeCardPaymentHistory/updatePaymentHistoryUIState",payload:{uiState:{sortKey:s,sortOrder:g}}})},onFiltersChange:s=>{e(Ao({filters:s}))},onReloadPayments:()=>{e(Ga(!0))},onEventReceived:s=>{ki.has(s)&&e(Ga(!0))},onPusherSubscribed:()=>{e(Ga(!0))},onSearchTextChanged:s=>{e({type:"chargeCardPaymentHistory/updatePaymentHistorySearchText",payload:s})},updateDownloadStateHandler:s=>{e(Eo({uiState:{downloadState:s}}))}}}))(st(pc));function Ai(){const e=de(),a=he(),n=me(),{areTenantIdsInSync:t}=Ir(),{useFeatureGate:s}=le();if(te.getSignedInUser()==null)throw Error("Can't access payment history page without signing in...");const g=d((c=>fe(c))),b=d((c=>or(c))),[h,A]=r.useState(!1),[u,m]=r.useState(!1),[T,w]=r.useState(!1),[p,F]=r.useState(null),B=!g.userRole.includes("charge_card_user"),S=!!g.companyDebitCardInfo?.info?.isDebitCardEnabled,{isFeatureEnabled:l}=s(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:C}=s(Y.isDebitCardFeatureEnabled),L=Le(C,g),k=Re({isDebitCardFeatureEnabled:C,isBankingOnlyTenant:L}),_=Te(g),D=xe(g),M=g.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,E=Oe({isCardsOnlyTenant:_,isChargeCardFeatureEnabled:l,isBookKeepingTenant:D,isDebitCardProductVisible:k,chargeCardsCreditAccountLimit:M}),y=!!g.companyChargeCardInfo?.info?.isChargeCardEnabled,R=Be(),i=Fe(R?.loggedInUserRoleMap),f=d((c=>Ca(c,B,k&&S,E&&y))),j=r.useMemo((()=>{const c=f.cards.filter((O=>O.type.code.includes("debit")));return[...new Set(c.map((O=>O.connectedAccountId)))]}),[f.cards]),$=d((c=>ma(c))),U=d((c=>tt(c,j))),{creditAccountRepayment:x}=d((c=>ua(c))),z=r.useMemo((()=>Mt(i,$)),[i,$]),H=r.useMemo((()=>La(E,y,i,f.creditAccount,x)),[E,y,i,f.creditAccount,x]),v=r.useMemo((()=>Nt(k,S,i,U,f.debitCardSummary)),[k,S,i,U,f.debitCardSummary]),P=r.useMemo((()=>Xe(E,k,S,y)),[E,k,S,y]),K=f.creditAccount.balance.amount+f.creditAccount.hold.amount,W=r.useMemo((()=>p!=null?b.repaymentHistory.find((c=>c.cardRepaymentId===p)):void 0),[p,b.repaymentHistory]),I=r.useCallback((c=>{F(c),n(ia(B,k&&S,E&&y,!1)),w(!0)}),[n,B,k,S,E,y]),N=r.useCallback((()=>{w(!1),F(null),document.body.style.overflow="auto"}),[]);r.useEffect((()=>{h||b.fetchState==="Completed"||b.fetchState==="In-Progress"||(A(!0),n(Ga()))}),[h,n,b.fetchState]),r.useEffect((()=>{!u&&(y||S)&&t&&(m(!0),n(ia(B,!1,E&&y,!1)))}),[u,y,S,t,n,B,E]);const V=aa(g),Q={events:ha(V,$r),eventCallback:(c,O,q)=>{q.onEventReceived(c)},onSubscribed:c=>{c.onPusherSubscribed()}};return o.jsxs(o.Fragment,{children:[T?o.jsx(zt,{closeDrawerHandler:N,isPaymentDrawerOpen:T,pageName:"Payment History",sourcePage:"cardPaymentHistory",creditAccountSpentAmount:K,productInformation:P,creditAccountInformation:H,debitAccountInformation:v,cashbackInformation:z,isDebitCardInfoFetchStateCompleted:!(k&&S&&i)||U.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!E||x.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!i||$.fetchState==="Completed",paymentInitiatedDate:x.initiatedRepaymentDate,retryRepayment:W}):null,o.jsx(Ei,{...Q,location:a,navigate:e,accountInfoByAccountId:b.accountInfoByAccountId,onRetryPaymentClick:I})]})}const En=Ve.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
|
-
`,An=ea.getLocalizedStrings().months;function Di(){const e=de(),a=me(),n=he(),{creditAccount:t,creditAccountRepayment:s}=d((P=>ua(P))),g=`${yr.cardMicroServiceBaseUrl}/1.0/credit-accounts/${t.id}`,[b,h]=r.useState(!1),[A,u]=r.useState(!1),m=d((P=>Do(P))),{useFeatureGate:T}=le(),w=d((P=>fe(P))),{isFeatureEnabled:p}=T(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:F}=T(Y.isDebitCardFeatureEnabled),{isFeatureEnabled:B}=T(Y.isCardsCommentingEnabled),S=vr(B?w.companyId:void 0,{clearParams:B&&m.fetchState==="Completed"}),l=Le(F,w),C=Re({isDebitCardFeatureEnabled:F,isBankingOnlyTenant:l}),L=Te(w),k=xe(w),_=w.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,D=Oe({isCardsOnlyTenant:L,isChargeCardFeatureEnabled:p,isBookKeepingTenant:k,isDebitCardProductVisible:C,chargeCardsCreditAccountLimit:_}),M=!!w.companyDebitCardInfo?.info?.isDebitCardEnabled,E=!!w.companyChargeCardInfo?.info?.isChargeCardEnabled,y=d((P=>da(P,w.companyId))),R=la(y.controllers),i=d((P=>cr(P))),f=i.cards.filter((P=>P.type.code.includes("debit"))).map((P=>P.connectedAccountId)),j=[...new Set(f)],$=d((P=>tt(P,j))),U=d((P=>_o(P)));r.useEffect((()=>{A||t.fetchState==="Completed"||t.fetchState==="In-Progress"||(h(!0),a(qe()))}),[b,a,t.fetchState]),r.useEffect((()=>{A||t.fetchState!=="Completed"||t.id==null||m.fetchState==="Completed"||m.fetchState==="In-Progress"||(u(!0),a(Po(t.id)))}),[A,a,t.fetchState,t.id,m.fetchState]),r.useEffect((()=>{$.fetchState!=="Completed"&&$.fetchState!=="In-Progress"&&C&&M&&a(ir()),i.fetchState!=="Completed"&&i.fetchState!=="In-Progress"&&a(Me()),U.fetchState!=="Completed"&&U.fetchState!=="In-Progress"&&C&&M&&a(wo()),s.fetchState!=="Completed"&&s.fetchState!=="In-Progress"&&D&&E&&a(Ft())}),[$.fetchState,C,M,i.fetchState,U.fetchState,s.fetchState,D,E]),r.useEffect((()=>{if(m.fetchState==="Completed"&&t.fetchState==="Completed"&&s.fetchState==="Completed"&&i.fetchState==="Completed"&&(!C||!M||$.fetchState==="Completed"&&U.fetchState==="Completed")){let P="",K="";if(m.statements.length>0){const V=m.statements[m.statements.length-1].period,[Q,c]=V.split("-"),O=m.statements[0].period,[q,se]=O.split("-");P=`${An[parseInt(c)-1]} ${Q}`,K=`${An[parseInt(se)-1]} ${q}`}const W=Xe(D,C,M,E),I=La(D,E,!0,t,s),N=Nt(C,M,!0,$,U);ae.trackCardsCreditCardStatementsView(R,W,{numberOfStatements:m.statements.length,oldestStatementMonthYear:P,latestStatementMonthYear:K},I,N)}}),[m.fetchState,t.fetchState,s.fetchState,$.fetchState,i.fetchState,U.fetchState]);const x=()=>{const P=we(n.state?.pathnameStackToGoBack),K=P.poppedPathname??"..";e(K,{state:{pathnameStackToGoBack:P.newStack}})},z=d((P=>ma(P))),H=te.getSignedInUser(),v={userId:H?.userId??"",sessionId:H?.zeniSessionId??"",tenantId:w.tenantId??""};if(H==null)throw Error("Can't access address page without signing in...");if(m.fetchState!=="Completed")return o.jsx(En,{children:o.jsx(hc,{onBackClick:x})});{const P=Xe(D,C,M,E);return o.jsx(En,{children:o.jsx(fc,{currentTenantCompanyName:w.companyName,statementListView:m,productInformation:P,onBackClick:x,authParams:v,controllerEmails:R,isChargeCardFeatureEnabled:D,isDebitCardFeatureEnabled:C,isDebitCardSetupEnabled:M,isChargeCardSetupEnabled:E,isCardsCommentingEnabled:B,initialOpenThreadRequest:S,chargeCardCashbackDetailState:z,creditAccount:t,creditAccountRepayment:s,depositAccountListWithDebitCardIssued:$,debitCardSummary:U,downloadEndPoint:g})})}}const Kr=[pa,it],_i=new Set(Kr),Pi={containerWidth:new Ta(100,58)},wi=({appContent:e})=>{const a=Fa(),n=me(),t=de(),s=he(),{useDynamicConfig:g}=le(),[b,h]=r.useState(!1),[A,u]=r.useState(!1),[m,T]=r.useState(!1),[w,p]=r.useState(!1),F=r.useRef(!1),B=r.useRef(null);r.useEffect((()=>()=>{B.current!=null&&(clearTimeout(B.current),B.current=null)}),[]);const[S,l]=r.useState(!1),[C,L]=r.useState(!1),k=te.getSignedInUser();if(k==null)throw Error("Can't access onboarding card page without signing in...");const _=d((N=>fe(N))),{configValue:D}=g(Qe.zeniCardsConfig),M=d((N=>vo(N))),{tenantEmailDomain:E}=_,y=d((N=>N.settingsViewState.profile.fetchState)),R=d((N=>N.chargeCardListState.fetchState)),i=d((N=>N.settingsViewState.profile.userId)),f=d((N=>N.chargeCardConfigState.fetchState));r.useEffect((()=>{b===!1&&y!=="In-Progress"&&y!=="Completed"&&(n(Fo()),h(!0)),A===!1&&f!=="In-Progress"&&f!=="Completed"&&(n(Ja()),u(!0)),m===!1&&R==="Not-Started"&&(T(!0),n(Me()))}),[b,m,R,A,f]),r.useEffect((()=>{y==="Completed"&&S===!1&&i!=null&&R==="Completed"&&M.cards.length>0&&(n(To({userId:i})),n(dr({cardId:M.cards[M.cards.length-1].id})),l(!0))}),[y,S,i,R]),r.useEffect((()=>{if(!w&&M.fetchState==="Completed"&&M.cards.length===0){const N=we(s.state?.pathnameStackToGoBack),V=N.poppedPathname??ta(E);t(V,{state:{pathnameStackToGoBack:N.newStack}})}}),[M.fetchState,M.cards,w]);const j=d((N=>qa(N))),$=ya(j.updateStatus.fetchState),U=j.currentDisplayedCardId,{useFeatureGate:x}=le(),{isFeatureEnabled:z}=x(Y.isChargeCardFeatureEnabled),H=!!_.companyChargeCardInfo?.info?.isChargeCardEnabled,v=!_.userRole.includes("charge_card_user")&&z&&H,P=d((N=>U!=null?lr(N.chargeCardState,U):null)),K=()=>{U!=null&&(F.current=!0,B.current!=null&&clearTimeout(B.current),B.current=setTimeout((()=>{F.current=!1,B.current=null}),5e3),n(ka(U,v,!0)),n(Me(!0)),p(!0))},W=aa(_);Vt({events:ha(W,Kr),onSubscribed:()=>{n(Me(!0))},onEvent:(N,V)=>{if(!_i.has(N))return;const Q=Zt(V),c=F.current;if(N===pa){const q=ie(Q?.card_id)??U;if(q!=null){const se=Yt(Q,q);if(se!=null)return n(Tt(se)),void(q!==U||c||K())}}if(N===it)return void n(Me(!0));const O=ie(Q?.card_id)??U;(U==null||O===U)&&U!=null?c||K():n(Me(!0))}}),r.useEffect((()=>{if(w&&U!=null&&P!=null&&P.status.code!=="request_on_hold"){const N=_e(_.tenantEmailDomain,U,k,P),V=ke(s.state?.pathnameStackToGoBack,s.pathname);n(xo()),P?.type.code==="business_virtual_credit_card"&&n(Qa()),t(N,{state:{pathnameStackToGoBack:V},replace:!0}),F.current=!1,B.current!=null&&(clearTimeout(B.current),B.current=null)}}),[w,P?.status.code]),r.useEffect((()=>{$==="In-Progress"&&j.updateStatus.fetchState==="Completed"&&setTimeout(K,3e3)}),[$,j.updateStatus.fetchState]);const I=N=>{L(N)};if(y!=="Completed"||M.cards.length===0)return o.jsxs(Dn,{children:[o.jsx(Ee,{isAppContentDrawerOpen:C,handleDrawerToggle:I}),o.jsx(gc,{})]});if(i==null)throw Error("Can't access my userId.");return o.jsxs(Dn,{children:[o.jsx(Ee,{isAppContentDrawerOpen:C,handleDrawerToggle:I}),o.jsx(vi,{chargeCardListView:M,cardUserOnboardingView:j,navigate:t,currentTenant:_,myUserId:i,location:s,chargeCardCashbackRatePerTransaction:D.charge_card_cashback_rate_per_transaction!=null?D.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{I(!0)}}),e!=null?o.jsx(Fi,{windowSize:a,children:e}):null]})},vi=Pe((function(e,{currentTenant:a,cardUserOnboardingView:n,chargeCardListView:t,myUserId:s}){const g=Ca(e,!1,!1,!1);let b=!1;return g.fetchState==="Completed"&&g.cards.length<=1&&(b=!0),{cards:t.cards,showMenuIcon:b,companyLegalName:a.companyName,twoFAView:n.twoFAView,cardUserOnboardingLocalData:n.cardUserOnboardingLocalData??{userId:s},isDOBDisabled:n.isDOBPresent,onboardingProgressStatus:n.onboardingProgressStatus}}),(function(e,a){const{navigate:n,cardUserOnboardingView:t,location:s,currentTenant:g}=a,{tenantEmailDomain:b}=g;return{updateCardUserOnboardingLocalData:h=>{e(bn({localData:h}))},onGetOtp:h=>{if(t.cardUserOnboardingLocalData!=null){const A={...t.cardUserOnboardingLocalData,phone:h};e(bn({localData:A}))}e(at(h,"CardUserOnboarding"))},onResendOtp:h=>{e(et(h,"CardUserOnboarding"))},onVerifyOtp:(h,A)=>{e(Xa(h,A,"CardUserOnboarding"))},onVerifyOtpSuccess:h=>{e(Lo()),h!=null&&te.saveZeniOtpToken(h)},setCurrentDisplayedCardId:h=>{e(dr({cardId:h}))},onBackClick:()=>{const h=we(s.state?.pathnameStackToGoBack),A=h.poppedPathname??ta(b);n(A,{state:{pathnameStackToGoBack:h.newStack}})}}}))(bc),Fi=Ve.div`
|
|
35
|
-
display: flex;
|
|
36
|
-
flex-direction: column;
|
|
37
|
-
width: ${e=>`${Pi.containerWidth.value(e.windowSize)}%`};
|
|
38
|
-
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
39
|
-
`,Dn=Ve.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
|
-
`,Ti={containerWidth:new Ta(100,58)},xi=({appContent:e})=>{const a=Fa(),n=me(),t=de(),{cardId:s}=Ne(),g=he(),{useDynamicConfig:b,useFeatureGate:h}=le(),[A,u]=r.useState(!1),[m,T]=r.useState(!1),[w,p]=r.useState(!1),[F,B]=r.useState(!1),S=te.getSignedInUser();if(S==null)throw Error("Can't access onboarding card page without signing in...");const l=d((v=>fe(v)));if(s==null)throw Error("Empty card id is not valid...");const{configValue:C}=b(Qe.zeniCardsConfig),L=d((v=>Bo(v,s))),{isFeatureEnabled:k}=h(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:_}=h(Y.isDebitCardFeatureEnabled),D=Le(_,l),M=Re({isDebitCardFeatureEnabled:_,isBankingOnlyTenant:D}),E=Te(l),y=xe(l),R=l.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,i=Oe({isCardsOnlyTenant:E,isChargeCardFeatureEnabled:k,isBookKeepingTenant:y,isDebitCardProductVisible:M,chargeCardsCreditAccountLimit:R}),f=L.chargeCard,j=d((v=>v.chargeCardConfigState.fetchState));r.useEffect((()=>{A===!1&&j!=="In-Progress"&&j!=="Completed"&&(n(Ja()),u(!0)),m===!1&&L.fetchState==="Not-Started"&&(T(!0),n(ka(s,!1,i)))}),[m,L.fetchState,A,j]);const $=f?.type.code==="business_physical_debit_card"||f?.type.code==="business_virtual_debit_card";r.useEffect((()=>{if(L.fetchState==="Completed"){if(w===!1&&($===!1||$&&f.status?.code!=="active"||$&&f.status.code==="active"&&f.isPinSet||f.cardHolderUserId!==S.userId)){const v=_e(l.tenantEmailDomain,s,S,f,!0),P=ke(g.state?.pathnameStackToGoBack,g.pathname);t(v,{state:{pathnameStackToGoBack:P}})}else if(w&&L.isRefreshingViewInBackground===!1&&f?.isPinSet===!0){n(Ro({chargeCardId:s}));const v=_e(l.tenantEmailDomain,s,S,f,!0),P=ke(g.state?.pathnameStackToGoBack,g.pathname);n(Qa()),t(v,{state:{pathnameStackToGoBack:P}})}}}),[L.fetchState,f?.type.code,w,L.isRefreshingViewInBackground]);const U=te.getZeniOtpTokenForCardHolder(s),x=d((v=>Hn(v.userState,S.userId))),z=()=>{f?.isPinSet!==!0&&n(ba(s,!0))};r.useEffect((()=>{L.updateDebitCardPinAttemptFetchState.fetchState==="Completed"&&(setTimeout(z,3e3),p(!0))}),[L.updateDebitCardPinAttemptFetchState.fetchState]);const H=v=>{B(v)};if(j!=="Completed"||f==null)return o.jsx(va,{fetchState:"In-Progress"});if(x?.phone==null)throw Error("Can't access user phone number.");return o.jsxs(Ri,{children:[o.jsx(Ee,{isAppContentDrawerOpen:F,handleDrawerToggle:H}),o.jsx(Li,{cardId:s,card:f,phone:x.phone,signedInUser:S,isSandboxEnv:Rt(),debitCardDetailState:L,signedInUserToken:U,navigate:t,currentTenant:l,location:g,chargeCardCashbackRatePerTransaction:C.charge_card_cashback_rate_per_transaction!=null?C.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{H(!0)}}),e!=null?o.jsx(Bi,{windowSize:a,children:e}):null]})},Li=Pe((function(e,{debitCardDetailState:a,cardId:n}){const t=Gn(e,n),s=a.updateStatus,g=Ca(e,!1,!1,!1);let b=!1;return g.fetchState==="Completed"&&g.cards.length<=1&&(b=!0),{showMenuIcon:b,vgsVaultId:rt.cardVaultId,twoFAView:t,setPinWaitStatus:s}}),(function(e,a){const{navigate:n,cardId:t,location:s,currentTenant:g,debitCardDetailState:b}=a,h=b.chargeCard?.cardProviderID,{tenantEmailDomain:A}=g;return{onGetOtp:u=>{h!=null&&e(at(u,"ChargeCardHolder",t))},onUpdateDebitCardPinAttempt:u=>{e(Jn(t,u))},onResendOtp:u=>{h!=null&&e(et(u,"ChargeCardHolder",t))},onVerifyOtp:(u,m)=>{h!=null&&e(Xa(u,m,"ChargeCardHolder",t))},onVerifyOtpSuccess:u=>{u!=null&&te.saveZeniOtpTokenForCardHolder(u,t)},onSetPinSuccess:()=>{e(Oo({chargeCardId:t}))},onBackClick:()=>{const u=we(s.state?.pathnameStackToGoBack),m=u.poppedPathname==null||u.poppedPathname.includes("activate")===!0?ta(A):u.poppedPathname;n(m,{state:{pathnameStackToGoBack:u.newStack}})}}}))(Sc),Bi=Ve.div`
|
|
48
|
-
display: flex;
|
|
49
|
-
flex-direction: column;
|
|
50
|
-
width: ${e=>`${Ti.containerWidth.value(e.windowSize)}%`};
|
|
51
|
-
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
52
|
-
box-shadow: ${e=>`${Za.sp0} 2px ${Za.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
53
|
-
`,Ri=Ve.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=>`${Za.sp0} 2px ${Za.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
62
|
-
`,Oi={overlayWidth:new Ta(ht[12],ht[12],ht[9])},Ui=Pe((function(e,a){const n=Lt(e,!1,!1),t=a.lineId,s=n.customAddress[t],g=n.customAddressStatus[t]??{fetchState:"Not-Started",error:void 0};return{googleAPIKey:a.googleAPIKey,customAddress:s,customAddressStatus:g,lineId:t}}),(function(e,a){const{newCustomAddressId:n,lineId:t,chargeCardTypeOption:s}=a;return{onSubmitHandler:g=>{n!=null&&e(ur(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`));const b=Bc(g);e(Mo({addressType:`${s==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`,addressToCreate:b})),e(No(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`))},onDismissClick:()=>{a.onDismissClick(),n!=null&&e(jo({addressId:n,cardLineId:t,cardType:s==="creditCard"?"business_physical_credit_card":"business_physical_debit_card"}))}}}))(yc),ji=({lineId:e,closeDrawerHandler:a,chargeCardTypeOption:n})=>{const t=Ot(),s=Fa(),g=()=>{a()},b=d((h=>Uo(`${n==="creditCard"?"credit":"debit"}_custom_shipping_${e}_address`,h)))?.newAddressId;return o.jsx(Ar,{anchor:"right",open:e.length>0,PaperProps:{style:{minWidth:Oi.overlayWidth.valuePercentage(s),boxShadow:"none",zIndex:8}},slotProps:{backdrop:{style:{opacity:.75,backgroundColor:t.colors.black,cursor:"pointer"}}},onClose:(h,A)=>(A==="backdropClick"||A==="escapeKeyDown")&&g(),children:o.jsx(Ui,{googleAPIKey:rt.googleMapsAPIKey,onDismissClick:g,lineId:e,chargeCardTypeOption:n,newCustomAddressId:b})})},Mi=Pe((function(e,a){const{isChargeCardFeatureEnabled:n,isDebitCardFeatureEnabled:t,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:g,isChargeCardSetupEnabled:b,isDebitCardSetupEnabled:h}=a,A=Lt(e,n&&b,t&&h);return{issueChargeCards:A,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:g,isDebitCardFeatureEnabled:t,isChargeCardFeatureEnabled:n,isChargeCardSetupEnabled:b,isDebitCardSetupEnabled:h,cardHolderCandidates:A.userList.map((u=>u.user)).filter(Boolean),allRoles:A.userList.map((u=>u.userRole)),allAccountingClasses:A.allAccountingClasses,userList:A.userList}}),(function(e,a){return{onIssueCardClick:()=>{e(Go())},onSaveChangesToLocalStore:n=>{e(Ho(n))},onDismissClick:()=>{e(mr()),a.navigate("../")},resetCustomAddressByLineID:(n,t)=>{e(ur(`${t==="creditCard"?"credit":"debit"}_custom_shipping_${n}_address`))},openAddAddressDrawerHandler:a.openAddAddressDrawerHandler}}))(Ec);function Ni(){const e=te.getSignedInUser(),a=de(),n=me(),t=Ic(),[s]=_n(),g=s.get("cardType"),{useFeatureGate:b}=le(),{isFeatureEnabled:h}=b(Y.isIssuePhysicalCardEnabled),{isFeatureEnabled:A}=b(Y.isIssuePhysicalDebitCardEnabled),{isFeatureEnabled:u}=b(Y.isDebitCardFeatureEnabled),{isFeatureEnabled:m}=b(Y.isChargeCardFeatureEnabled),T=d((z=>fe(z))),w=Le(u,T),p=Re({isDebitCardFeatureEnabled:u,isBankingOnlyTenant:w}),F=Te(T),B=xe(T),S=T.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,l=Oe({isCardsOnlyTenant:F,isChargeCardFeatureEnabled:m,isBookKeepingTenant:B,isDebitCardProductVisible:p,chargeCardsCreditAccountLimit:S}),[C,L]=r.useState(!1);if(e==null)throw Error("Can't access issue card page without signing in...");r.useEffect((()=>{C||(L(!0),n(Vo(p&&_,l&&k,!1)))}),[C,L,n]);const k=!!T.companyChargeCardInfo?.info?.isChargeCardEnabled,_=!!T.companyDebitCardInfo?.info?.isDebitCardEnabled,D=d((z=>Lt(z,l&&k,p&&_))),M=D.fetchState,E=D.issueCardStatus.fetchState,y=D.lastSelfIssuedDebitCardId,R=d((z=>y!=null?lr(z.chargeCardState,y):void 0)),[i,f]=r.useState(null),[j,$]=r.useState(null),U=()=>{f(null)},x=(z,H)=>{f(z),$(H)};return r.useEffect((()=>{if(E==="Completed"){if(y!=null&&R?.type.code==="business_virtual_debit_card"){let z;z=R?.status.code==="request_on_hold"&&e.userId===R.cardHolderUserId?wr(T.tenantEmailDomain):_e(T.tenantEmailDomain,y,e,R),a(z)}else a("../");n(mr())}}),[E,y]),M==="Completed"?o.jsxs(o.Fragment,{children:[i!==null&&j!==null?o.jsx(ji,{closeDrawerHandler:U,lineId:i,chargeCardTypeOption:j}):null,o.jsx(Mi,{themeState:t,isIssuePhysicalCardEnabled:h,isIssuePhysicalDebitCardEnabled:A,isDebitCardFeatureEnabled:p,isChargeCardFeatureEnabled:l,isChargeCardSetupEnabled:k,isDebitCardSetupEnabled:_,navigate:a,fetchState:D.fetchState,openAddAddressDrawerHandler:x,defaultCardType:g==="creditCard"||g==="debitCard"?g:void 0})]}):M==="Error"?o.jsx(ot,{}):o.jsx(kc,{})}const zr=[pa,it],Vi=new Set(zr),Hi=Ve.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
|
-
`,Gi=Pe((function(e,a){const{myPendingActivationChargeCardListState:n}=a;return{myPendingActivationChargeCardListView:n,uiState:n.uiState,signedInUser:a.signedInUser}}),(function(e,a){const{navigate:n,currentTenant:t,location:s,signedInUser:g,myPendingActivationChargeCardListState:b}=a,{tenantEmailDomain:h}=t,{cards:A}=b;return{onChargeCardRowClick:u=>{const m=Pr(A,u),T=_e(h,u,g,m),w=ke(s.state?.pathnameStackToGoBack,s.pathname);n(T,{state:{pathnameStackToGoBack:w}})},onColumnSortConfigChanged:(u,m)=>{e(It({uiState:{sortKey:u,sortOrder:m}}))},onReloadCards:()=>{e(Me())},onBackClick:()=>{const u=t.userRole.includes("charge_card_user");e(It({uiState:{sortKey:u?"cardName":"owner",sortOrder:"ascending"}})),n("../")}}}))(Ac);function $i(){const e=de(),a=me(),n=he(),t=Ot(),[s,g]=r.useState(!1),b=d((x=>$o(x))),h=d((x=>fe(x))),A=d((x=>da(x,h.companyId))),u=la(A.controllers),{useFeatureGate:m}=le(),{isFeatureEnabled:T}=m(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:w}=m(Y.isDebitCardFeatureEnabled),p=Le(w,h),F=Re({isDebitCardFeatureEnabled:w,isBankingOnlyTenant:p}),B=!!h.companyDebitCardInfo?.info?.isDebitCardEnabled,S=!!h.companyChargeCardInfo?.info?.isChargeCardEnabled,l=Be(),C=Te(h),L=xe(h),k=h.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,_=Oe({isCardsOnlyTenant:C,isChargeCardFeatureEnabled:T,isBookKeepingTenant:L,isDebitCardProductVisible:F,chargeCardsCreditAccountLimit:k}),D=Fe(l?.loggedInUserRoleMap),M=d((x=>ma(x))),{creditAccount:E,creditAccountRepayment:y}=d((x=>ua(x))),R=d((x=>cr(x))).cards.filter((x=>x.type.code.includes("debit"))).map((x=>x.connectedAccountId)),i=[...new Set(R)],f=d((x=>tt(x,i)));r.useEffect((()=>{s||b.fetchState==="Completed"||b.fetchState==="In-Progress"||(g(!0),a(Me()),a(Ja()))}),[s,a,b.fetchState]),r.useEffect((()=>{if(b.fetchState==="Completed"&&b.cards.length===1&&j!=null){const x=_e(h.tenantEmailDomain,b.cards[0].id,j,b.cards[0]);e(x,{state:{message:n.state?.message}})}}),[b.fetchState,b.cards]);const j=te.getSignedInUser();r.useEffect((()=>{E.fetchState!=="Completed"&&E.fetchState!=="In-Progress"&&_&&S&&D&&a(qe()),y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&D&&a(Ft()),f.fetchState!=="Completed"&&f.fetchState!=="In-Progress"&&F&&B&&D&&a(ir())}),[E.fetchState,y.fetchState,a,f.fetchState,F,B,D,_,S]);const $=aa(h);if(Vt({events:ha($,zr),onEvent:(x,z)=>{if(!Vi.has(x))return;const H=Zt(z);if(x===pa){const v=ie(H?.card_id);if(v!=null){const P=Yt(H,v);if(P!=null)return void a(Tt(P))}}a(Me(!0))},onSubscribed:()=>{a(Me(!0))}}),j==null)throw Error("Can't access address page without signing in...");const U=b.cards!=null&&b.cards.length>0;if(b.fetchState==="Completed"||U){const x=Xe(_,F,B,S);return o.jsx(Hi,{children:o.jsx(Gi,{navigate:e,currentTenant:h,signedInUser:j,productInformation:x,myPendingActivationChargeCardListState:b,isChargeCardFeatureEnabled:_,isDebitCardFeatureEnabled:F,isDebitCardSetupEnabled:B,isChargeCardSetupEnabled:S,chargeCardCashbackDetailState:M,creditAccount:E,creditAccountRepayment:y,depositAccountListWithDebitCardIssued:f,controllerEmails:u,location:n})})}return o.jsx(va,{fetchState:"In-Progress",style:{backgroundColor:t.colors.grey5}})}const Ki=Pe((function(e,a){const{companyId:n,companyLegalName:t}=a;return{chargeCardSetupView:wa(e,n),admins:a.adminList,companyLegalName:t}}),(function(e,a){const{navigate:n,companyId:t,isCompanyBusinessVerificationAndPaymentSetUpDone:s,isDebitCardSetupEnabled:g,isChargeCardSetupEnabled:b,signedInUser:h,location:A,productInformation:u,isEarlyPayEnabled:m,controllerEmails:T,chargeCardsCreditAccountLimit:w}=a;return{onSetupButtonClick:p=>{if(h!=null&&ae.trackCardsPromoPageClicked("enable cards"),s)switch(ae.trackCardsEnableCardsClick(T,u,"Cards Promo"),p){case"credit":e(We(t,!0,"charge_cards",m,!1));break;case"debit":e(We(t,!0,"debit_cards",m,!1));break;case"debit_and_credit":e(w===0?We(t,!0,"debit_cards",m,!0):We(t,!0,"charge_cards__debit_cards",m,!1))}else switch(ae.trackCardsSetupCardsClick(T,u,"Cards Promo"),p){case"credit":e(We(t,!1,"charge_cards",m,!1));break;case"debit":e(We(t,!1,"debit_cards",m,!1));break;case"debit_and_credit":e(w===0?We(t,!1,"debit_cards",m,!0):We(t,!1,"charge_cards__debit_cards",m,!1))}},onBackClick:()=>{const p=we(A.state?.pathnameStackToGoBack);let F=p.poppedPathname;F==null&&(F=g||b?"..":"../.."),n(F,{state:{pathnameStackToGoBack:p.newStack}})},onLetsGoClick:()=>{n("./onboard")},onSetupChargeCardSuccess:()=>{s?(e(Qa()),n("../",{relative:"path"})):n("../setup",{relative:"path"})},onExpressInterestClick:()=>{e(Zo(t))}}}))(Pc),zi=()=>{const e=Dc(),a=de(),{tenantEmailDomain:n}=Ne(),[t]=_n(),s=t.get("cardPromoType"),g=me(),{useDynamicConfig:b,useFeatureGate:h}=le(),[A,u]=r.useState(!1),{isFeatureEnabled:m}=h(Y.isDebitCardFeatureEnabled),{isFeatureEnabled:T}=h(Y.isEarlyPayFeatureEnabled),{isFeatureEnabled:w}=h(Y.isChargeCardFeatureEnabled),{configValue:p}=b(Qe.zeniCardsConfig),F=d((J=>fe(J))),B=d((J=>da(J,F.companyId))),S=la(B.controllers),l=p.charge_card_cashback_rate_per_transaction!=null?p.charge_card_cashback_rate_per_transaction:.0175,C=he(),L=te.getSignedInUserTenant(n)?.companyId??F.companyId,k=d((J=>wa(J,L))),_=k.primaryFundingAccount,D=F.companyBillPayInfo?.info,M=Te(F),E=xe(F),y=Le(m,F),R=F.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,i=Re({isDebitCardFeatureEnabled:m,isBankingOnlyTenant:y}),f=Oe({isCardsOnlyTenant:M,isChargeCardFeatureEnabled:w,isBookKeepingTenant:E,isDebitCardProductVisible:i,chargeCardsCreditAccountLimit:R}),j=_r({isCardsOnlyTenant:M,isChargeCardFeatureEnabled:w,isBookKeepingTenant:E}),$=i&&f===!1,U=D?.businessVerificationStatus?.code==="verified"&&($||_?.accType==="depositAccount"||Ko(_?.providerVerificationStatus?.code??"")),x=te.getSignedInUser(),z=!!F.companyZeniAccountInfo?.info?.isZeniAccountEnabled,H=!!F.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,v=!!F.company?.companyChargeCardInfo?.isChargeCardEnabled,P=!!F.company?.companyDebitCardInfo?.isDebitCardEnabled,K=!!F.companyChargeCardInfo?.info?.isChargeCardEnabled,W=!!F.companyDebitCardInfo?.info?.isDebitCardEnabled,I=!!F.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,N=J=>{u(J)},V=d((J=>J.chargeCardSetupViewState.fetchState));if(x==null)throw Error("Can't access Charge Card promo page without signing in...");const Q=Be(),c=Fe(Q?.loggedInUserRoleMap),O=xt(Q?.loggedInUserRoleMap),[q,se]=r.useState(!1),[X,He]=r.useState(!1),[Ae,ge]=r.useState(!1);r.useEffect((()=>{q===!1&&C.state?.message==="activation"&&se(!0)}),[C.state]),r.useEffect((()=>{X||V!=="Not-Started"||L==null||(He(!0),g(Pa(L,!0)))}),[X,V,L,g]);const re=F.companyChargeCardInfo?.info!=null&&Ia({cardInfo:F.companyChargeCardInfo.info,isProductVisible:j&&v,isTOSAccepted:H,isSetupEnabled:K,isUserHasCardsAdminLevelAccess:c,isUserHasCardsAccess:O}),be=F.companyDebitCardInfo?.info!=null&&Ia({cardInfo:F.companyDebitCardInfo.info,isProductVisible:i&&P,isTOSAccepted:I,isSetupEnabled:W,isUserHasCardsAdminLevelAccess:c,isUserHasCardsAccess:O}),ue=i&&be&&j&&R>=0&&re?"debit_and_credit":i&&be?"debit":"credit",oe=Lc(s,ue),Se=k?.chargeCardTermsDetails?.fetchStatus?.fetchState,ee=r.useRef(null);r.useEffect((()=>{Se==="In-Progress"?ee.current=oe:Se!=="Error"&&Se!=="Not-Started"||(ee.current=null)}),[Se,oe]);const De=Se!=="In-Progress"&&Se!=="Completed"||ee.current==null?oe:ee.current;r.useEffect((()=>{oe==="credit"&&(K||j===!1&&W)||oe==="debit"&&W||oe==="debit_and_credit"&&W&&K?a("../"):(oe==="debit_and_credit"&&H===!0&&I===!0||oe==="credit"&&(H===!0||j===!1&&I===!0)||oe==="debit"&&I===!0)&&c===!0&&a("../setup")}),[U,K,W,oe,H,I]),r.useEffect((()=>{Ae||(g(zo("cardAdmin")),ge(!0))}),[Ae]);const ve=d((J=>sr(J.userState,J.userRoleState,J.userListViewState,"cardAdmin"))),Ce=Xe(j,i,W,K);return(J=>{switch(J){case"credit":return v;case"debit":return P;case"debit_and_credit":return v&&P;default:return!1}})(De)?(re||be)&&V==="Completed"?o.jsxs(o.Fragment,{children:[o.jsx(Ut,{analytics:ae,onLoad:()=>{if(ae.trackPageLoaded(Er.Event.cardsPromoPage),!!j&&!K||!!i&&!W||!!j&&!!i&&!W&&!K){const J=Zi({isDebitCardSetupEnabled:W,isChargeCardSetupEnabled:K,isCreditCardProductVisibleForExpressInterest:j,isDebitCardProductVisible:i});ae.trackCardsPromoView(S,Ce,"Page",J,"Promo Page")}}}),o.jsx(nt,{showConfetti:q}),o.jsx(Ee,{isAppContentDrawerOpen:A,handleDrawerToggle:N}),o.jsx(Ki,{signedInUser:x,location:C,meetingUrl:e("charge_card_promo"),showEnableCardButton:U,isCompanyBusinessVerificationAndPaymentSetUpDone:U,isChargeCardSetupEnabled:K,isDebitCardSetupEnabled:W,companyLegalName:F.companyName,adminList:ve.users,isCheckingEnabled:z,navigate:a,companyId:L,cardPromoType:De,controllerEmails:S,productInformation:Ce,isCreditCardProductVisible:f,isDebitCardFeatureEnabled:m,isEarlyPayEnabled:T,cashbackRate:l,chargeCardsCreditAccountLimit:R,onClickMenuIcon:()=>{N(!0)}})]}):o.jsxs(o.Fragment,{children:[o.jsx(Ee,{isAppContentDrawerOpen:A,handleDrawerToggle:N}),o.jsx(_c,{})]}):o.jsx(Je,{to:"../",replace:!0})},Zi=({isDebitCardSetupEnabled:e,isChargeCardSetupEnabled:a,isCreditCardProductVisibleForExpressInterest:n,isDebitCardProductVisible:t})=>n&&t&&!e&&!a?"Credit & Debit Card":n&&!a?"Credit Card":t&&!e?"Debit Card":"";function Id(){const e=he(),a=d((Q=>fe(Q))),{useFeatureGate:n}=le(),{isFeatureEnabled:t}=n(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:s}=n(Y.isDebitCardFeatureEnabled),{isFeatureEnabled:g}=n(Y.isEarlyPayFeatureEnabled),{isFeatureEnabled:b}=n(Y.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:h}=n(Y.isCardPolicyEnabled),A=Le(s,a),u=Re({isDebitCardFeatureEnabled:s,isBankingOnlyTenant:A}),m=wc(a,t,s),T=!!a.company?.companyChargeCardInfo.isChargeCardTOSAccepted,w=!!a.company?.companyDebitCardInfo.isDebitCardTOSAccepted,p=!!a.company?.companyChargeCardInfo?.isChargeCardEnabled,F=!!a.company?.companyDebitCardInfo?.isDebitCardEnabled,B=!!a.companyChargeCardInfo?.info?.isChargeCardEnabled,S=!!a.companyDebitCardInfo?.info?.isDebitCardEnabled,l=Be(),C=Fe(l?.loggedInUserRoleMap),{isCardsShuttingDown:L}=kr(a.tenantId,a.company?.managementInfo?.receiverEmails),k=xt(l?.loggedInUserRoleMap),{isFeatureEnabled:_}=n(Y.isCashbackFeatureEnabled),D=a.userRole.includes("charge_card_user"),M=!D,E=!D&&B,y=a?.userRole!=null&&Yo(a?.userRole),R=(a?.company==null||a.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!y)&&Wo(l?.loggedInUserRoleMap),i=qo(l?.loggedInUserRoleMap),f=(a?.company==null||a.company.featuresActivationInfo?.isReimbursementFeatureEnabled&&!y)&&Jo(l?.loggedInUserRoleMap),{isFeatureEnabled:j}=n(Y.isDepositAccountsFeatureEnabled),$=j&&!y&&Kn(l?.loggedInUserRoleMap),U=B&&p&&!y,x=S&&F&&!y,z=m&&!y&&Fe(l?.loggedInUserRoleMap),H=Qo(l?.loggedInUserRoleMap),v=Te(a),P=xe(a),K=a.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,W=Oe({isCardsOnlyTenant:v,isChargeCardFeatureEnabled:t,isBookKeepingTenant:P,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:K}),I=a.companyChargeCardInfo?.info!=null&&Ia({cardInfo:a.companyChargeCardInfo.info,isProductVisible:W&&p,isTOSAccepted:T,isSetupEnabled:B,isUserHasCardsAdminLevelAccess:C,isUserHasCardsAccess:k}),N=a.companyDebitCardInfo?.info!=null&&Ia({cardInfo:a.companyDebitCardInfo.info,isProductVisible:u&&F,isTOSAccepted:w,isSetupEnabled:S,isUserHasCardsAdminLevelAccess:C,isUserHasCardsAccess:k}),V=I||N;return o.jsxs(cs,{children:[C?o.jsx(ne,{path:"setup",element:o.jsx(Sn,{isBillPayAdminLevelAccess:R,isReimbursementAdminLevelAccess:f,isZeniAccountAdminLevelAccess:$,isChargeCardAdminLevelAccess:z,isUserHasOnlyCardAccess:H,isUserHasOnlyBillPayAccess:i,productType:"charge_cards",type:"setup"})}):null,C?o.jsx(ne,{path:"verification",element:o.jsx(Sn,{isBillPayAdminLevelAccess:R,isUserHasOnlyBillPayAccess:i,isReimbursementAdminLevelAccess:f,isZeniAccountAdminLevelAccess:$,isChargeCardAdminLevelAccess:z,isUserHasOnlyCardAccess:H,productType:"charge_cards",type:"verification"})}):null,C&&h?o.jsxs(o.Fragment,{children:[o.jsx(ne,{path:"policy",element:o.jsx(Zc,{})}),o.jsx(ne,{path:"policy/new",element:o.jsx(jc,{})}),o.jsx(ne,{path:"policy/:templateId/edit",element:o.jsx(Hc,{})})]}):null,o.jsx(ne,{path:"promo",element:o.jsx(zi,{})}),U||x?o.jsxs(o.Fragment,{children:[o.jsx(ne,{path:"/",element:o.jsx(kn,{isPaymentDrawerOpen:!1})}),z&&g?o.jsx(ne,{path:"payment",element:o.jsx(kn,{isPaymentDrawerOpen:!0})}):null,o.jsx(ne,{path:"activate",element:o.jsx($i,{})}),o.jsx(ne,{path:"onboard",element:o.jsx(wi,{})}),C&&L!==!0?o.jsx(ne,{path:"new",element:o.jsx(Ni,{})}):C?o.jsx(ne,{path:"new",element:o.jsx(Je,{to:"..",replace:!0})}):null,_&&M?o.jsx(ne,{path:"cashback",element:o.jsx(Qc,{})}):null,E?o.jsx(ne,{path:"statements",element:o.jsx(Di,{})}):null,z&&b&&B?o.jsx(ne,{path:"payment-history",element:o.jsx(Ai,{})}):null,o.jsx(ne,{path:":cardId/activate",element:o.jsx(ai,{})}),o.jsx(ne,{path:":cardId/setPin",element:o.jsx(xi,{})}),o.jsx(ne,{path:":cardId/addToWallet",element:o.jsx(Yc,{})}),o.jsx(ne,{path:":cardId/*",element:o.jsx(ui,{})}),o.jsx(ne,{path:"*",element:o.jsx(ot,{})})]}):(T||w)&&C?o.jsx(ne,{path:"*",element:o.jsx(Je,{to:"../setup"})}):V?o.jsx(ne,{path:"*",element:o.jsx(Je,{to:"../promo",state:e.state})}):o.jsx(ne,{path:"*",element:null})]})}export{Id as default};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{j as I}from"./liveblocks-BjcYyeQ6.js";import{a as o}from"./sentry-DZ9rNYfw.js";import{u as H,h as P,g as R,j as C,N as w}from"./core-B-8b0iz9.js";import{TX as q,fF as z,gl as G,pS as M,gM as A,gk as Q,gi as V,Ul as X,gh as O}from"./zeni-epic-state-95zxmizy.js";import{u as B,z as E,L as D,G as J,H as K}from"./index-DuxR1XDX.js";import{n as W}from"./mui-C33Oegsm.js";import{P as b,a as _}from"./AccountMappingScreen-Dt4x9DJz.js";import{t as Y}from"./getLocaleForTenant-D57C4sYC.js";import{g as Z,Q as ee}from"./QBOConnectionScreen-BiN0lu_W.js";import"./recharts-DkYxIsLi.js";import"./analytics-8lQ_GaR7.js";import"./plaid-Bt28AVCt.js";import"./dnd-CtOxA7uX.js";import"./stripe-cKAAJElX.js";import"./lottie-BdAYiWcR.js";import"./lexical-BVt4M34U.js";import"./pdf-BkfulyEw.js";import"./utils-D3rZq_G4.js";import"./MobileAppDrawer-0TaE2Qid.js";import"./InboxNotificationsProvider-B4UF_uUg.js";import"./useTaskManagerAccess-ECD0Ec-b.js";import"./accountMappingHelper-Ci74NLEW.js";import"./empty-CyiOIGJw.js";import"./pdf-lib-D8o-uP9K.js";import"./index-CgYr_9vs.js";import"./url-BjdrSaU1.js";import"./index-CzpjeHcU.js";import"./decodeURIComponentSafe-hAviH84T.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]="b647cbd5-d06d-49e2-92c1-b25bfe928448",t._sentryDebugIdIdentifier="sentry-dbid-b647cbd5-d06d-49e2-92c1-b25bfe928448")}catch{}})();const te=W.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 ${K.sp1} ${t.theme.colors.dropShadowNormal}`};
|
|
11
|
-
`;function we(){const t=H(),i=P(),v=R(),{setLoading:c,clearAllLoading:m}=B(),h=o.useRef(!1),S=o.useRef(!1),N=o.useRef(!1),p=o.useRef(!1),{code:U,realmId:$,state:F}=Z(v.search),f=U!==""&&$!==""&&F!=="";f&&(N.current=!0);const j=sessionStorage.getItem(b),u=j===_.pending,L=j===_.ready,x=C((s=>q(s))),e=C((s=>z(s))),n=C((s=>s.tenantState.fetchState)),r=C((s=>s.tenantState.activeTenantFetchState.fetchState)),a=E.getSignedInUser(),g=E.getActiveTenantForUser()?.tenantId,l=e?.externalConnections?.fetchState,d=e?.externalConnections?.saveConnectionState,y=e.externalConnections?.accounting[0]?.isValid;o.useLayoutEffect((()=>{c(D.CONNECTION_AUTH)}),[c]),o.useEffect((()=>{h.current||a==null||g==null||(h.current=!0,n==="Completed"||r!=="Not-Started"&&r!=="Error"||(c(D.TENANT_FETCHING),t(G(a.userId,g))))}),[h,n,c]),o.useEffect((()=>{e.tenantId==null&&!S.current&&a!=null&&(S.current=!0,!(g==null||g!=null&&(r==="Completed"||r==="Error"))||n!=="Not-Started"&&n!=="Error"||t(M(a.userId)))}),[S,n,r]),o.useEffect((()=>{a==null||e?.tenantId==null||e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||l==="In-Progress"||d!=="Error"||(c(D.CONNECTION_AUTH),t(A(a.userId,e.tenantId)))}),[d]),o.useEffect((()=>{n!=="Completed"&&r!=="Completed"||a==null||e?.tenantId==null||(t(Q(e.tenantId)),E.saveActiveTenantDomainForUser(e.tenantEmailDomain),V(a?.userId,a?.zeniSessionId,e.tenantId),J.updateAppLocaleID(Y(X(e))),e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||l==="In-Progress"||a==null||e==null||t(A(a.userId,e.tenantId)))}),[n,r,l]),o.useEffect((()=>{x.tenantsCoreDetailsInOrder.length>0&&n==="Completed"&&E.saveSignedInUserTenants(x.tenantsCoreDetailsInOrder)}),[x.tenantsCoreDetailsInOrder.length,n]);const T=e==null||n!=="Completed"&&r!=="Completed"||l!=="Completed";if(o.useEffect((()=>{n!=="Completed"&&n!=="Error"||r!=="Completed"&&r!=="Error"||l!=="Completed"&&l!=="Error"||m()}),[n,r,l]),o.useEffect((()=>{u&&d==="In-Progress"&&(p.current=!0)}),[u,d]),o.useEffect((()=>{if(!u||T)return;const s=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return p.current&&d==="Completed"?(sessionStorage.setItem(b,_.ready),m(),void i(s,{replace:!0})):p.current&&d==="Error"?(sessionStorage.removeItem(b),t(O({messageSection:"accounting_projects_qbo_reconnect_failed",messageText:"failed",type:"error"})),m(),void i(s,{replace:!0})):void(f||N.current||p.current||y!==!0||(sessionStorage.removeItem(b),t(O({messageSection:"accounting_projects_qbo_reconnect_failed",messageText:"failed",type:"error"})),m(),i(s,{replace:!0})))}),[u,T,d,f,y,e.tenantEmailDomain,m,t,i]),T)return null;if(f||y!==!0)return I.jsx(te,{children:I.jsx(ee,{})});if(u)return null;const k=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return L?I.jsx(w,{to:k,replace:!0}):I.jsx(w,{to:"/",replace:!0})}export{we as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as i}from"./liveblocks-BjcYyeQ6.js";import{z as m}from"./index-DuxR1XDX.js";import{g as n}from"./QBOConnectionScreen-BiN0lu_W.js";import"./sentry-DZ9rNYfw.js";import{g as p,N as a}from"./core-B-8b0iz9.js";import"./zeni-epic-state-95zxmizy.js";import"./recharts-DkYxIsLi.js";import"./mui-C33Oegsm.js";import"./analytics-8lQ_GaR7.js";import"./plaid-Bt28AVCt.js";import"./dnd-CtOxA7uX.js";import"./stripe-cKAAJElX.js";import"./lottie-BdAYiWcR.js";import"./lexical-BVt4M34U.js";import"./pdf-BkfulyEw.js";import"./utils-D3rZq_G4.js";import"./empty-CyiOIGJw.js";import"./pdf-lib-D8o-uP9K.js";import"./index-CgYr_9vs.js";import"./url-BjdrSaU1.js";import"./index-CzpjeHcU.js";import"./decodeURIComponentSafe-hAviH84T.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new t.Error().stack;o&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[o]="a1205b81-d106-415b-bd92-85aeae53ace3",t._sentryDebugIdIdentifier="sentry-dbid-a1205b81-d106-415b-bd92-85aeae53ace3")}catch{}})();const U=()=>{const t=p(),{code:o,realmId:r,state:e}=n(t.search),s=m.getSignedInUser()?.userId??"";if(f(o,r,e,s)===!0){const d=`../../${e}/onboarding?code=${o}&realmId=${r}&state=auth_flow`;return i.jsx(a,{to:d})}return i.jsx(a,{to:"../../"})},f=(t,o,r,e)=>t!=""&&o!=""&&r!=""&&e!=null&&e!="";export{U as default,f as hasValidParams};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{j as d}from"./liveblocks-BjcYyeQ6.js";import{i as q,j as S,g as H,u as z,h as J,l as oe,k as oa,n as ft,o as O,N as In}from"./core-B-8b0iz9.js";import{fF as L,VV as Je,bE as sa,br as Te,Xh as En,ka as Tn,Xi as Vt,Xj as xn,kd as gt,Xk as Ze,Xl as wn,ki as Dn,Xm as Gt,Xn as Pn,km as bt,Xo as We,Xp as Fn,Xq as On,Wd as jn,lo as Rn,Xr as Mn,bn as et,Xs as ra,WT as ue,bc as ia,lC as ca,ll as la,WV as me,WU as ne,fE as da,ga as Bn,gq as Ct,Xt as Un,Xu as Ln,Xv as ua,Xw as Oe,D$ as Ue,E0 as Le,Eo as xe,Ei as pe,E4 as Ye,Xx as Yn,b$ as Ve,Xy as Vn,Xz as Gn,XA as ma,XB as je,XC as Nn,ei as tt,Aa as pa,XD as Xn,XE as ha,XF as $n,XG as zn,XH as Kn,XI as _t,UR as kt,ua as we,l$ as De,Ey as yt,Ah as qn,Ao as Qn,XJ as Zn,XK as Wn,E1 as Nt,XL as Hn,Ad as Ie,A8 as fa,XM as be,XN as Xt,XO as Jn,XP as vt,UQ as At,Cl as ga,XQ as eo,XR as ba,XS as to,XT as ao,XU as no,XV as It,CA as oo,CH as so,XW as ro,XX as io,E3 as $t,XY as co,Cj as Ca,XZ as Ce,X_ as zt,X$ as lo,bq as Sa,ED as _a,Y0 as uo,Y1 as ka,Y2 as mo,Y3 as po,Y4 as ho,Y5 as Et,Ev as fo,Ex as go,Y6 as bo,Y7 as Co,E2 as Kt,Y8 as So,EB as ya,Y9 as Se,Ya as qt,Yb as _o,Yc as ko,Yd as va,lQ as Aa,pX as Ia,lV as Ea,pV as Ta,pU as xa,pT as wa,BI as yo,dc as vo,pQ as Ao,Uc as Io,q5 as Eo,Ye as To,Yf as xo,Yg as wo,b5 as Tt,p$ as Do,ic as Po,gI as Fo,p_ as Oo,le as jo,pY as Ro,pW as Mo,d_ as Bo,dZ as Uo}from"./zeni-epic-state-95zxmizy.js";import{z as Y,aw as se,p as j,k as x,G as Q,bc as Lo,at as Ge,a9 as Ne,bd as Da,V as X,be as Yo,bf as Pa,E as Vo,bg as Go,bh as No,a as Fa,a2 as Oa,d as ja,as as Xo,bi as $o,ap as zo,o as Pe,bj as Ra,x as ce,bk as Ma,bl as Ba,av as Ua,bm as Ko,aj as Xe,K as $e,S as V,bn as qo,X as Qo,bo as Zo,Q as Wo,j as Ho,a5 as Jo,ar as es,bp as ts,bq as as,br as ns,bs as Ee}from"./index-DuxR1XDX.js";import{n as xt}from"./mui-C33Oegsm.js";import{a as b}from"./sentry-DZ9rNYfw.js";import{w as La}from"./withTransactionSidePanel-qep2Sc8k.js";import{c as Ya,t as Fe,f as he,b as wt,a as Dt,v as os}from"./routePaths-B1syYHWh.js";import{u as re}from"./useAskAiCfoHostNavButtonProps-CvEN7QS-.js";import Be from"./NotFoundScreen-BatgS8le.js";import{u as Pt}from"./useInitialThreadRequest-Chu-ipGI.js";import{t as Va}from"./analyticsHelper-C6SU-53H.js";import{C as ss}from"./CompanyPassportScreen-BEG9__1k.js";import{u as rs}from"./useAiCfoDashboardSuggestedQuestionsChips-SBKf0Pu3.js";import{F as is}from"./FeaturePreviewScreen-v5dVXn4p.js";import"./recharts-DkYxIsLi.js";import"./analytics-8lQ_GaR7.js";import"./plaid-Bt28AVCt.js";import"./dnd-CtOxA7uX.js";import"./stripe-cKAAJElX.js";import"./lottie-BdAYiWcR.js";import"./lexical-BVt4M34U.js";import"./pdf-BkfulyEw.js";import"./utils-D3rZq_G4.js";import"./TransactionDetailScreen-KBMzz0Xq.js";import"./decodeURIComponentSafe-hAviH84T.js";import"./expenseAutomationHelper-BzOPc0En.js";import"./stripSplatSuffix-Te2Zqy4u.js";import"./MobileAppDrawer-0TaE2Qid.js";import"./InboxNotificationsProvider-B4UF_uUg.js";import"./useTaskManagerAccess-ECD0Ec-b.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new e.Error().stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="503449d8-8de9-45ac-b135-3c7d46b6400e",e._sentryDebugIdIdentifier="sentry-dbid-503449d8-8de9-45ac-b135-3c7d46b6400e")}catch{}})();const cs=La((function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{vendorId:o,reportDate:r}=q(),s=Y.getSignedInUser(),i=S((E=>E.tenantState.currentTenantId)),l=S((E=>L(E))),{tenantEmailDomain:m}=q(),p=H(),h=l?.companyName??"",f={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i??""},c=b.useMemo((()=>({authParams:f,companyName:h,downloadEndPoint:`${se}/agingDetailedReport`,timezone:Je()})),[]),u=b.useMemo((()=>r!=null?sa(r):Te()),[r]),C=z(),g=J(),k=S((E=>En(E,u,o))),I=b.useCallback((()=>{o!=null&&k.fetchState!=="In-Progress"&&k.fetchState!=="Completed"&&C(Tn(o,u))}),[u]),v=b.useCallback((()=>{g("../../",{relative:"path"})}),[]),_=b.useCallback(((E,P)=>{C(Vt({sortKey:E,sortOrder:P}))}),[]),T=b.useCallback((E=>{C(Vt({downloadState:E}))}),[]),B=b.useCallback((E=>{if(e)e(E.transactionId,E.transactionType);else if(m!=null){const P=Ya({id:E.transactionId,type:E.transactionType},m);g(P);const y=j(p.state?.pathnameStackToGoBack,p.pathname);g(P,{state:{pathnameStackToGoBack:y}})}}),[m,e]),D=b.useCallback((()=>{k.vendor!=null&&x.trackApAgingDetail("AP Aging",u.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),k.vendor.id,k.vendor.name)}),[k.vendor,u]);return b.useEffect((()=>{I()}),[]),b.useEffect((()=>{k.fetchState==="Completed"&&D()}),[D,k.fetchState]),d.jsx(Lo,{apAgingDetail:k,downloadParams:c,reportDate:u,analytics:x,onTransactionClick:B,onReload:I,onBackClick:v,onColumnSortConfigChanged:_,updateDownloadStateHandler:T,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})})),ls=()=>{const e=z(),a=J(),t=S((_=>xn(_))),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=re({mobileExploreReferrer:"AP Aging"});Ge({isDataReady:t.fetchState==="Completed"});const r=Y.getSignedInUser(),s=S((_=>_.tenantState.currentTenantId)),i=S((_=>L(_))),l=i?.companyName??"",m={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s??""},p=b.useMemo((()=>({authParams:m,companyName:l,downloadEndPoint:`${se}/agingReport`,timezone:Je()})),[]),h=t.apAgingUIState.selectedDate??Te(),f=b.useCallback((()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(gt(h))}),[]);b.useEffect((()=>{f()}),[]);const c=b.useCallback((()=>{a("../",{relative:"path"})}),[]),u=b.useCallback((_=>{e(Ze({searchString:_}))}),[]),C=b.useCallback(((_,T)=>{e(Ze({sortKey:T,sortOrder:_}))}),[]),g=b.useCallback((_=>{a(`./${_}/${h.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)}),[h]),k=b.useCallback((_=>{e(Ze({downloadState:_}))}),[]),I=b.useCallback(((_,T)=>{}),[]),v=b.useCallback(((_,T)=>{e(Ze({selectedDate:_,agingDateSelectionType:T})),e(gt(_))}),[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ne,{analytics:x,onLoad:_=>_.trackPageLoaded(X.Event.agingReport,"AP Aging")}):null,d.jsx(Da,{uiState:t.apAgingUIState,report:t,downloadParams:p,analytics:x,onReloadReport:f,onBackClick:c,onSearchTextChange:u,onSortOrderChange:C,onEntityNameClick:g,updateDownloadStateHandler:k,onSelectedDateChanged:v,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},ds=La((function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{customerId:o,reportDate:r}=q(),s=Y.getSignedInUser(),i=S((D=>L(D))),{tenantEmailDomain:l}=q(),m=H(),p=i.companyName,h={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i.tenantId},f=b.useMemo((()=>({authParams:h,companyName:p,downloadEndPoint:`${se}/agingDetailedReport`,timezone:Je()})),[]),c=b.useMemo((()=>r!=null?sa(r):Te()),[r]),u=z(),C=J(),g=S((D=>wn(D,c,o))),k=b.useCallback((()=>{o!=null&&g.fetchState!=="In-Progress"&&g.fetchState!=="Completed"&&u(Dn(o,c))}),[c]),I=b.useCallback((()=>{C("../../",{relative:"path"})}),[]),v=b.useCallback(((D,E)=>{u(Gt({sortKey:D,sortOrder:E}))}),[]),_=b.useCallback((D=>{u(Gt({downloadState:D}))}),[]),T=b.useCallback((D=>{if(e)e(D.transactionId,D.transactionType);else if(l!=null){const E=Ya({id:D.transactionId,type:D.transactionType},l);C(E);const P=j(m.state?.pathnameStackToGoBack,m.pathname);C(E,{state:{pathnameStackToGoBack:P}})}}),[l,e]),B=b.useCallback((()=>{g.customer!=null&&x.trackArAgingDetail("AR Aging",c.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),g.customer.id,g.customer.name)}),[g.customer,c]);return b.useEffect((()=>{k()}),[]),b.useEffect((()=>{g.fetchState==="Completed"&&B()}),[g.fetchState,B]),d.jsx(Yo,{arAgingDetail:g,downloadParams:f,reportDate:c,analytics:x,onTransactionClick:T,onReload:k,onBackClick:I,onColumnSortConfigChanged:v,updateDownloadStateHandler:_,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})})),us=()=>{const e=z(),a=J(),t=S((v=>Pn(v))),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=re({mobileExploreReferrer:"AR Aging"});Ge({isDataReady:t.fetchState==="Completed"});const r=Y.getSignedInUser(),s=S((v=>L(v))),i=s.companyName,l={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s.tenantId},m=b.useMemo((()=>({authParams:l,companyName:i,downloadEndPoint:`${se}/agingReport`,timezone:Je()})),[]),p=t.arAgingUIState.selectedDate??Te(),h=b.useCallback((()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(bt(p))}),[]);b.useEffect((()=>{h()}),[]);const f=b.useCallback((()=>{a("../",{relative:"path"})}),[]),c=b.useCallback((v=>{e(We({searchString:v}))}),[]),u=b.useCallback(((v,_)=>{e(We({sortKey:_,sortOrder:v}))}),[]),C=b.useCallback((v=>{a(`./${v}/${p.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)}),[p]),g=b.useCallback((v=>{e(We({downloadState:v}))}),[]),k=b.useCallback(((v,_)=>{e(We({selectedDate:v,agingDateSelectionType:_})),e(bt(v))}),[]),I=b.useCallback(((v,_)=>{e(Fn({nodeId:v,isCollapsed:_}))}),[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ne,{analytics:x,onLoad:v=>v.trackPageLoaded(X.Event.agingReport,"AR Aging")}):null,d.jsx(Da,{uiState:t.arAgingUIState,report:t,downloadParams:m,analytics:x,onReloadReport:h,onBackClick:f,onSearchTextChange:c,onSortOrderChange:u,onEntityNameClick:C,updateDownloadStateHandler:g,onSelectedDateChanged:k,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},Ga=(e,a)=>({key:a,title:e.accountName,amount:e.balance?.available,logoUri:e.logo?.toString(),source:e});function Na(e,a){const t=jn(a.firstMonthOfFY);return{onItemClick:(n,o)=>{const r=o.accountName===""?o.accountDescription:o.accountName,s=Fe(a.tenantEmailDomain,o.accountId,o.accountType,r,"quarter",t,!1),i=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i,referrer:a.referrerType}})},onSetAccountsStatementDate:(n,o)=>{e(Rn(n,o))}}}const ms=oe((function(e){const a=On(e).accountsInOrder.map(((t,n)=>Ga(t,n)));return{sectionTitle:Q.getLocalizedStrings().balanceCard.cashBalanceSectionTitle,transactionArray:a,fetchState:e.cashBalanceState.fetchState,analytics:x}}),Na)(Pa),ps=oe((function(e){const a=Mn(e).accountsInOrder.map(((o,r)=>Ga(o,r))),t=Y.getSignedInUser(),n=et(t);return{sectionTitle:Q.getLocalizedStrings().balanceCard.cardBalanceSectionTitle,transactionArray:a,isZeniUser:n,fetchState:e.cardBalanceState.fetchState,analytics:x}}),Na)(Pa);function hs(){const e=J(),a=H(),{tenantEmailDomain:t}=q(),n=S((o=>L(o).company?.companyInfo.firstMonthOfFY??1));return S((o=>o.cashBalanceState.fetchState))==="Error"?d.jsx(Be,{}):d.jsx(ms,{tenantEmailDomain:t,location:a,referrerType:"Cash Balance",navigate:e,firstMonthOfFY:n})}function fs(){const e=J(),a=H(),{tenantEmailDomain:t}=q(),n=S((o=>L(o).company?.companyInfo.firstMonthOfFY??1));return S((o=>o.cardBalanceState.fetchState))==="Error"?d.jsx(Be,{}):d.jsx(ps,{tenantEmailDomain:t,location:a,referrerType:"Card Balance",navigate:e,firstMonthOfFY:n})}const gs=xt.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex: 1 1 auto;
|
|
4
|
-
min-height: 100%;
|
|
5
|
-
flex-direction: column;
|
|
6
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
7
|
-
`,bs=xt.div`
|
|
8
|
-
display: flex;
|
|
9
|
-
flex: 1 1 auto;
|
|
10
|
-
flex-direction: column;
|
|
11
|
-
align-items: center;
|
|
12
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
13
|
-
`;function Cs({title:e,reportId:a,entityAutoCompleteView:t,autoCompleteText:n,isAiCfoAccessEnabled:o,onAskAiCfoClick:r}){const s=J(),i=z(),l=H(),{tenantEmailDomain:m}=q(),p=Vo();return d.jsxs(gs,{children:[d.jsx(Go,{source:a==="cash_balance"?"CashBalanceDetailScreen":"CardBalanceDetailScreen",title:e,onBackClick:()=>{s("../")},hideSearchBtn:!0,backgroundColor:p.colors.grey4,searchAutoComplete:{autoCompleteData:{entityAutoCompleteView:t,autoCompleteText:n},autoCompleteActions:{onAutoCompleteInputChange:h=>{h.trim().length>=2?i(me({searchString:h,searchOrigin:"navbar"})):h.trim().length===0&&i(ne("navbar"))},onAutoCompleteEntity:h=>{n!=null&&x?.trackSearch(X.Event.search,Ss(a),h.type,h.name,n);const f=he(h,m),c=j(l.state?.pathnameStackToGoBack,l.pathname);s(f,{state:{pathnameStackToGoBack:c}})}}},rightSideComponent:d.jsx(No,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r})}),d.jsx(bs,{children:a==="cash_balance"?d.jsx(hs,{}):d.jsx(fs,{})})]})}function Qt(){const e=H(),a=z(),t=S((c=>c.cashBalanceState.fetchState)),n=S((c=>c.cardBalanceState.fetchState)),o=Y.getSignedInUser();if(o==null)throw Error("Can't access dashboard detail without signing in...");const r=ra((c=>{const u=ia(c,"/").split("/");return u[u.length-1]})(e.pathname));let s="Not-Started",i="";const l=Q.getLocalizedStrings();switch(r){case"cash_balance":s=t,i=l.common.texts.cashBalance;break;case"card_balance":s=n,i=l.reportTitleById.card_balance;break;default:console.error(`${r} is not supported!`)}const{isAiCfoAccessEnabled:m,onAskAiCfoClick:p}=re({mobileExploreReferrer:r==="card_balance"?"Card Balance":"Cash Balance"});Ge({isDataReady:s==="Completed"});const h=S((c=>c.entityAutoCompleteState.autoCompleteText.navbar)),f=S((c=>ue(c,"navbar")));return b.useEffect((()=>{s==="Not-Started"&&(function(c,u){switch(u){case"card_balance":c(la());break;case"cash_balance":c(ca());break;default:throw new Error(`balance report type ${u} is not yet supported`)}})(a,r)}),[o,a,s]),d.jsxs(d.Fragment,{children:[s==="Completed"?d.jsx(Ne,{analytics:x,onLoad:c=>((u,C)=>{switch(C){case"card_balance":u.trackPageLoaded(X.Event.cardBalance);break;case"cash_balance":u.trackPageLoaded(X.Event.cashBalance);break;default:console.error(`Analytics: Not tracking Page Loaded for ${C}!`)}})(c,r)}):null,d.jsx(Cs,{title:i,reportId:r,autoCompleteText:h,entityAutoCompleteView:f,isAiCfoAccessEnabled:m,onAskAiCfoClick:p})]})}const Ss=e=>{switch(e){case"cash_balance":return"Cash Balance";case"card_balance":return"Card Balance";default:return"Dashboard"}},_s=[],Zt="insights_section";function ze(e){const{mobileExploreReferrer:a}=e,t=z(),n=J(),o=H(),{tenantEmailDomain:r}=q(),{setIsAiCfoOpen:s,setAiCfoSidePanelQuestionToSubmit:i}=Fa(),l=Oa(),m=Ua(l),p=oa(),h=S((R=>R.tenantState.fetchState==="Completed"||R.tenantState.activeTenantFetchState.fetchState==="Completed"?L(R):void 0)),f=h?.masterTOSInfo?.isMasterTOSAccepted??!1,c=S((R=>da(R))),u=c.uiState?.currentChatSessionId,C=c.allSessionsWithOrderedQuestionAnswers??_s,g=Y.getSignedInUser()?.userId,k=ja(),I=Xo()&&k&&r!=null,v=$o(),_=zo(!0),T=S((R=>v!=null?Bn(R,v):void 0)),{useDynamicConfig:B}=Pe(),{configValue:D}=B(Ra.aiCfoMessageDynamicConfig),E=b.useMemo((()=>Array.isArray(D.default_message_list)?D.default_message_list:[]),[D.default_message_list]),P=b.useMemo((()=>E.slice(0,2)),[E]),y=v!=null&&T!=null&&T.fetchState!=="Completed"&&T.fetchState!=="Error"&&(_||T.fetchState==="In-Progress"),w=b.useMemo((()=>{if(v==null||T?.fetchState==="Error")return P;if(y)return[];const R=(T?.suggestedQuestions??[]).map((ee=>ee.trim())).filter((ee=>ee.length>0)).slice(0,2);return R.length===0?P:R}),[P,y,v,T?.fetchState,T?.suggestedQuestions]),ie=b.useCallback(((R,ee)=>{if(g==null||R.trim()==="")return;if(!f)return void ce({location:o,navigate:n,mergeState:{referrer:a,aiCfoInitialQuestion:R,aiCfoInitialSubmissionSource:Zt,aiCfoSuggestionIndex:ee}});const qe=Ma(p.getState());if(m){const Qe=j(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Qe,referrer:a,aiCfoInitialQuestion:R,aiCfoShouldSubmit:!qe}})}else{if(qe)return t(Ct(R)),void s(!0);i(R),s(!0),Ba(t,R,Zt,u,C,g,ee,void 0)}}),[C,u,t,f,m,o,a,n,s,i,p,r,g]),_e=b.useCallback((()=>{if(f)if(m){const R=j(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:R,referrer:a}})}else s(!0);else ce({location:o,navigate:n,mergeState:{referrer:a}})}),[f,m,o,a,n,s,r]);return b.useMemo((()=>{if(I)return{isSuggestedQuestionsLoading:y,onAskSomethingElseClick:_e,onSuggestedQuestionClick:ie,suggestedQuestions:w}}),[I,y,_e,ie,w])}const Ke=Ko,ks=oe((function(e){const a=Un(e),t=Ln(e),n=ua(e),{scrollPosition:o,...r}=n,s=Q.getLocalizedStrings().reportTitleById.cash_in_cash_out,i=Y.getSignedInUser(),l=e.tenantState.currentTenantId,m=L(e),p=m?.companyName??"",h={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:l??""},f=e.entityAutoCompleteState.autoCompleteText.navbar,c=ue(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:p,statementEndPoint:`${se}/statement`,authParams:h},analytics:x,autoCompleteData:{autoCompleteText:f,entityAutoCompleteView:c}}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Yn(t))},onTimeframeSelectionChanged:()=>{},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(Oe({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(xe("month")),e(pe(a.firstMonthOfFY,t)),e(Oe({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout((()=>e(Oe({resetLeftScroll:!0}))),50)},onElementCollapseStateChanged:(t,n)=>{e(Oe({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(Oe({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}}))(Ke),ys=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,o=Xe(),{isAiCfoAccessEnabled:r,onAskAiCfoClick:s}=re({mobileExploreReferrer:"DashboardCashInCashOut"}),i=ze({mobileExploreReferrer:"DashboardCashInCashOut"}),l=S((m=>ua(m))).mode==="compare_mode";return d.jsx(ks,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:l,navigate:n,insightsSectionAiCfoInfo:i,isAiCfoAccessEnabled:r,onAskAiCfoClick:s,meetingUrl:Ve(o("dashboard_report_filters"))})},vs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},As=oe((function(e){const a=Vn(e),t=Gn(e),n=ma(e),{scrollPosition:o,...r}=n,s=Q.getLocalizedStrings().reportTitleById.cash_position,i=Y.getSignedInUser(),l=e.tenantState.currentTenantId,m=L(e),p=m?.companyName??"",h={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:l??""},f=e.entityAutoCompleteState.autoCompleteText.navbar,c=ue(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:p,statementEndPoint:`${se}/statement`,authParams:h},analytics:x,autoCompleteData:{autoCompleteText:f,entityAutoCompleteView:c}}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Nn(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout((()=>e(je({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(je({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(je({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout((()=>e(je({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=vs(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Cash Position"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onTableScroll:t=>{e(je({scrollPosition:t}))},onBackClick:()=>{a.navigate("../")}}}))(Ke),Is=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,o=Xe(),{isAiCfoAccessEnabled:r,onAskAiCfoClick:s}=re({mobileExploreReferrer:"DashboardCashPosition"}),i=ze({mobileExploreReferrer:"DashboardCashPosition"}),l=S((m=>ma(m))).mode==="compare_mode";return d.jsx(As,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:l,navigate:n,insightsSectionAiCfoInfo:i,isAiCfoAccessEnabled:r,onAskAiCfoClick:s,meetingUrl:Ve(o("dashboard_report_filters"))})},$=(e,a,t,n)=>{e===!1?a!=null&&n("../../",{relative:"path"}):a!==t&&(a!=null&&a.length>0?n(`../${t}`,{replace:!0}):n(`./forecast/${t}`,{replace:!0}))},Es=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Ts=oe((function(e){const a=pa(e),t=Xn(e),n=ha(e),o=$n(e),r=zn(e),s=Kn(e),i=_t(e),{scrollPosition:l,...m}=i,p=t.reportTitle,h=Y.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:x,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:we(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Jn(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout((()=>e(be({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(be({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(be({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(be({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Es(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?wt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Burn Rate"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(be({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(Xt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(be({scrollPosition:t})):e(Xt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t==="forecast_mode"?(e(Nt({viewMode:"account_group"})),e(fa(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(be({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Burn Rate"),e(Nt({viewMode:t})),e(Hn({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(Wn({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(Zn({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(qn()),a.isAccountingProjectsEnabled&&e(Qn())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"net_burn_or_income_by_projects":"net_burn_or_income_by_classes"))}}}))(Ke),xs=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Xe(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),m=ze({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),p=S((y=>_t(y))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=S((y=>vt(y.forecastState,c??""))),C=S((y=>pa(y))),g=S((y=>At(y))),k=S((y=>De(y))),I=S((y=>we(y))),v=S((y=>ha(y).uiState.accountViewMode)),_=p.mode==="compare_mode",T=C.dataAvailable;b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const y=u?.forecastPeriod,w=T!=null&&y.endDate.isAfter(T?.endDate)===!0?T:y;a(pe(e.firstMonthOfFY,{startDate:w.endDate.startOf(f),endDate:w?.endDate}))}}),[c]);const B=$e(),{useFeatureGate:D}=Pe(),{isFeatureEnabled:E}=D(V.isReportsCommentingEnabled),P=Pt(E?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Ts,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,forecastIdFromUrlPath:r,location:n,isAccountingClassesEnabled:k,isAccountingProjectsEnabled:I,accountViewMode:v,isCompareModeOn:_,navigate:o,analytics:x,reportsResyncFetchState:g.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:P,isReportsCommentingEnabled:E,meetingUrl:Ve(s("dashboard_report_filters"))})},ws=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Ds=oe((function(e){const a=ga(e),t=eo(e),n=ba(e),o=to(e),r=ao(e),s=no(e),i=It(e),{scrollPosition:l,...m}=i,p=Q.getLocalizedStrings().common.texts.operatingExpenses,h=Y.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:x,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:we(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(lo(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout((()=>e(Ce({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(Ce({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(Ce({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(Ce({resetLeftScroll:!0}))),50)},onAccountBalanceClick:a.hasTransactionAccess!==!0?void 0:(t,n)=>{const{timePeriod:o,timeframe:r}=ws(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?wt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Operating Expenses"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(Ce({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(zt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(Ce({scrollPosition:t})):e(zt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t=="forecast_mode"?(e($t({viewMode:"account_group"})),e(Ca(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(Ce({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Operating Expenses"),e($t({viewMode:t})),e(co({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(io({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(ro({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(oo()),a.isAccountingProjectsEnabled&&e(so())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"operating_expenses_by_projects":"operating_expenses_by_classes"))}}}))(Ke),Ps=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Xe(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardOpEx"}),m=ze({mobileExploreReferrer:"DashboardOpEx"}),p=S((w=>It(w))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=S((w=>vt(w.forecastState,c??""))),C=S((w=>ga(w))),g=S((w=>At(w))),k=S((w=>De(w))),I=S((w=>we(w))),v=S((w=>ba(w).uiState.accountViewMode)),_=p.mode==="compare_mode",T=C.dataAvailable;b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const w=u?.forecastPeriod,ie=T!=null&&w.endDate.isAfter(T?.endDate)===!0?T:w;a(pe(e.firstMonthOfFY,{startDate:ie.endDate.startOf(f),endDate:ie?.endDate}))}}),[c]);const B=$e(),D=B?.loggedInUserRole!=null&&Sa(B?.loggedInUserRole)!==!0,{useFeatureGate:E}=Pe(),{isFeatureEnabled:P}=E(V.isReportsCommentingEnabled),y=Pt(P?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Ds,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,location:n,isAccountingClassesEnabled:k,isAccountingProjectsEnabled:I,accountViewMode:v,isCompareModeOn:_,navigate:o,forecastIdFromUrlPath:r,analytics:x,hasTransactionAccess:D,reportsResyncFetchState:g.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:y,isReportsCommentingEnabled:P,meetingUrl:Ve(s("dashboard_report_filters"))})},Fs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Os=oe((function(e){const a=_a(e),t=uo(e),n=ka(e),o=mo(e),r=po(e),s=ho(e),i=Et(e),{scrollPosition:l,...m}=i,p=Q.getLocalizedStrings().common.texts.revenue,h=Y.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:x,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:we(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(_o(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout((()=>e(Se({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(Se({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(Se({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(Se({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Fs(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?wt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Revenues"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(Se({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(qt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(Se({scrollPosition:t})):e(qt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t==="forecast_mode"?(e(Kt({viewMode:"account_group"})),e(ya(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(Se({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Revenues"),e(Kt({viewMode:t})),e(So({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(Co({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(bo({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(fo()),a.isAccountingProjectsEnabled&&e(go())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"revenue_by_projects":"revenue_by_classes"))}}}))(Ke),js=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Xe(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardRevenue"}),m=ze({mobileExploreReferrer:"DashboardRevenue"}),p=S((y=>Et(y))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=S((y=>vt(y.forecastState,c??""))),C=S((y=>_a(y))),g=C.dataAvailable,k=p.mode==="compare_mode",I=S((y=>De(y))),v=S((y=>we(y))),_=S((y=>ka(y).uiState.accountViewMode)),T=S((y=>At(y)));b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const y=u?.forecastPeriod,w=g!=null&&y.endDate.isAfter(g?.endDate)===!0?g:y;a(pe(e.firstMonthOfFY,{startDate:w.endDate.startOf(f),endDate:w?.endDate}))}}),[c]);const B=$e(),{useFeatureGate:D}=Pe(),{isFeatureEnabled:E}=D(V.isReportsCommentingEnabled),P=Pt(E?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Os,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,isAccountingClassesEnabled:I,isAccountingProjectsEnabled:v,accountViewMode:_,isCompareModeOn:k,location:n,navigate:o,forecastIdFromUrlPath:r,analytics:x,reportsResyncFetchState:T.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:P,isReportsCommentingEnabled:E,meetingUrl:Ve(s("dashboard_report_filters"))})},Rs=e=>{let a,t;if(e.endDate!=null)switch(e.timePeriod){case"this_month_to_date":case"last_month":case"this_week_to_date":case"last_week":a="month",t={startDate:e.endDate.startOf("month"),endDate:e.endDate};break;case"last_3_months":case"last_6_months":case"last_12_months":case"this_year_to_date":case"last_year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;default:console.error(`this timeperiod ${e.timePeriod} is not supported!`)}return{timeframe:a,timePeriod:t}},Ms=oe((function(e){const a=ko(e),t=e.entityAutoCompleteState.autoCompleteText.navbar,n=ue(e,"navbar");return{report:a,analytics:x,autoCompleteData:{autoCompleteText:t,entityAutoCompleteView:n}}}),(function(e,a){return{onTimeframeSelectionChanged:t=>{x.trackTimeframeSwitch(Va(t),"Top Expenses"),e(va(t))},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Rs(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Top Expenses"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}}))(qo),Bs=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e;return d.jsx(Ms,{tenantEmailDomain:a,location:t,navigate:n})},Us=xt.div`
|
|
14
|
-
display: flex;
|
|
15
|
-
flex: 1 1 auto;
|
|
16
|
-
min-height: 100%;
|
|
17
|
-
flex-direction: column;
|
|
18
|
-
background-color: ${e=>e.theme.colors.grey5};
|
|
19
|
-
align-items: center;
|
|
20
|
-
`;function Ls({fetchState:e,firstMonthOfFY:a,reportId:t,forecastId:n}){const o=J(),r=H(),{tenantEmailDomain:s}=q();let i;Ge({isDataReady:!0});const l={firstMonthOfFY:a,tenantEmailDomain:s,location:r,navigate:o,forecastIdFromUrlPath:n,fetchState:e};switch(t){case"operating_expenses":i=d.jsx(Ps,{...l});break;case"revenue":i=d.jsx(js,{...l});break;case"net_burn_or_income":i=d.jsx(xs,{...l});break;case"cash_position":i=d.jsx(Is,{...l});break;case"top_expenses":i=d.jsx(Bs,{...l});break;case"cash_in_cash_out":i=d.jsx(ys,{...l});break;default:console.error(`${t} is not supported!`),i=null}return i!=null?d.jsx(Us,{children:i}):null}function le(){const e=H(),a=z(),{forecastId:t}=q();let n="Not-Started";const o=S((c=>It(c).fetchState)),r=S((c=>Et(c).fetchState)),s=S((c=>_t(c).fetchState)),i=S((c=>c.cashPositionState.fetchState)),l=S((c=>c.topExState.fetchState)),m=S((c=>c.cashInCashOutState.fetchState));if(Y.getSignedInUser()==null)throw Error("Can't access dashboard detail without signing in...");const p=S((c=>L(c))),h=p?.company?.companyInfo?.firstMonthOfFY??1,f=ra((c=>{const u=ia(c,"/").split("/");return t!=null?u[u.length-3]:u[u.length-1]})(e.pathname));switch(f){case"operating_expenses":n=o;break;case"revenue":n=r;break;case"net_burn_or_income":n=s;break;case"cash_position":n=i;break;case"top_expenses":n=l;break;case"cash_in_cash_out":n=m;break;default:console.error(`${f} is not supported!`)}return b.useEffect((()=>{n==="Not-Started"&&(function(c,u,C,g){switch(u){case"operating_expenses":c(wa(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(Ca(!1,g)));break;case"revenue":c(xa(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(ya(!1,g)));break;case"net_burn_or_income":c(Ta(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(fa(!1,g)));break;case"cash_position":c(Ea(!0));break;case"top_expenses":c(Ia());break;case"cash_in_cash_out":c(Aa());break;default:throw new Error(`report type ${u} is not yet supported`)}})(a,f,h,t)}),[t]),d.jsxs(d.Fragment,{children:[n==="Completed"?d.jsx(Ne,{analytics:x,onLoad:c=>((u,C)=>{const g=e.state?.referrer;switch(C){case"operating_expenses":u.trackPageLoaded(X.Event.operatingExpenses,g);break;case"revenue":u.trackPageLoaded(X.Event.revenues,g);break;case"net_burn_or_income":u.trackPageLoaded(X.Event.burnRate,g);break;case"cash_position":u.trackPageLoaded(X.Event.cashPosition,g);break;case"top_expenses":u.trackPageLoaded(X.Event.topExpenses,g);break;case"cash_in_cash_out":u.trackPageLoaded(X.Event.cashInCashOut,g);break;default:console.error(`Analytics: Not tracking Page Loaded for ${C}!`)}})(c,f)}):null,d.jsx(Ls,{firstMonthOfFY:h,fetchState:n,reportId:f,forecastId:t})]})}var ct=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function lt(e,a,t,n){e.addEventListener?e.addEventListener(a,t,n):e.attachEvent&&e.attachEvent("on".concat(a),(function(){t(window.event)}))}function Xa(e,a){for(var t=a.slice(0,a.length-1),n=0;n<t.length;n++)t[n]=e[t[n].toLowerCase()];return t}function $a(e){typeof e!="string"&&(e="");for(var a=(e=e.replace(/\s/g,"")).split(","),t=a.lastIndexOf("");t>=0;)a[t-1]+=",",a.splice(t,1),t=a.lastIndexOf("");return a}for(var Ft={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":ct?173:189,"=":ct?61:187,";":ct?59:186,"'":222,"[":219,"]":221,"\\":220},de={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},St={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},U={16:!1,18:!1,17:!1,91:!1},M={},He=1;He<20;He++)Ft["f".concat(He)]=111+He;var F=[],Wt=!1,za="all",Ht=[],at=function(e){return Ft[e.toLowerCase()]||de[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function Jt(e){za=e||"all"}function Me(){return za||"all"}var dt=function(e){var a=e.key,t=e.scope,n=e.method,o=e.splitKey,r=o===void 0?"+":o;$a(a).forEach((function(s){var i=s.split(r),l=i.length,m=i[l-1],p=m==="*"?"*":at(m);if(M[p]){t||(t=Me());var h=l>1?Xa(de,i):[];M[p]=M[p].filter((function(f){return!((!n||f.method===n)&&f.scope===t&&(function(c,u){for(var C=c.length>=u.length?c:u,g=c.length>=u.length?u:c,k=!0,I=0;I<C.length;I++)g.indexOf(C[I])===-1&&(k=!1);return k})(f.mods,h))}))}}))};function ea(e,a,t,n){var o;if(a.element===n&&(a.scope===t||a.scope==="all")){for(var r in o=a.mods.length>0,U)Object.prototype.hasOwnProperty.call(U,r)&&(!U[r]&&a.mods.indexOf(+r)>-1||U[r]&&a.mods.indexOf(+r)===-1)&&(o=!1);(a.mods.length!==0||U[16]||U[18]||U[17]||U[91])&&!o&&a.shortcut!=="*"||a.method(e,a)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function ta(e,a){var t=M["*"],n=e.keyCode||e.which||e.charCode;if(N.filter.call(this,e)){if(n!==93&&n!==224||(n=91),F.indexOf(n)===-1&&n!==229&&F.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(u){var C=St[u];e[u]&&F.indexOf(C)===-1?F.push(C):!e[u]&&F.indexOf(C)>-1?F.splice(F.indexOf(C),1):u==="metaKey"&&e[u]&&F.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(F=F.slice(F.indexOf(C))))})),n in U){for(var o in U[n]=!0,de)de[o]===n&&(N[o]=!0);if(!t)return}for(var r in U)Object.prototype.hasOwnProperty.call(U,r)&&(U[r]=e[St[r]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(F.indexOf(17)===-1&&F.push(17),F.indexOf(18)===-1&&F.push(18),U[17]=!0,U[18]=!0);var s=Me();if(t)for(var i=0;i<t.length;i++)t[i].scope===s&&(e.type==="keydown"&&t[i].keydown||e.type==="keyup"&&t[i].keyup)&&ea(e,t[i],s,a);if(n in M){for(var l=0;l<M[n].length;l++)if((e.type==="keydown"&&M[n][l].keydown||e.type==="keyup"&&M[n][l].keyup)&&M[n][l].key){for(var m=M[n][l],p=m.splitKey,h=m.key.split(p),f=[],c=0;c<h.length;c++)f.push(at(h[c]));f.sort().join("")===F.sort().join("")&&ea(e,m,s,a)}}}}function N(e,a,t){F=[];var n=$a(e),o=[],r="all",s=document,i=0,l=!1,m=!0,p="+",h=!1;for(t===void 0&&typeof a=="function"&&(t=a),Object.prototype.toString.call(a)==="[object Object]"&&(a.scope&&(r=a.scope),a.element&&(s=a.element),a.keyup&&(l=a.keyup),a.keydown!==void 0&&(m=a.keydown),a.capture!==void 0&&(h=a.capture),typeof a.splitKey=="string"&&(p=a.splitKey)),typeof a=="string"&&(r=a);i<n.length;i++)o=[],(e=n[i].split(p)).length>1&&(o=Xa(de,e)),(e=(e=e[e.length-1])==="*"?"*":at(e))in M||(M[e]=[]),M[e].push({keyup:l,keydown:m,scope:r,mods:o,shortcut:n[i],method:t,key:n[i],splitKey:p,element:s});s!==void 0&&!(function(f){return Ht.indexOf(f)>-1})(s)&&window&&(Ht.push(s),lt(s,"keydown",(function(f){ta(f,s)}),h),Wt||(Wt=!0,lt(window,"focus",(function(){F=[]}),h)),lt(s,"keyup",(function(f){ta(f,s),(function(c){var u=c.keyCode||c.which||c.charCode,C=F.indexOf(u);if(C>=0&&F.splice(C,1),c.key&&c.key.toLowerCase()==="meta"&&F.splice(0,F.length),u!==93&&u!==224||(u=91),u in U)for(var g in U[u]=!1,de)de[g]===u&&(N[g]=!1)})(f)}),h))}var ut={setScope:Jt,getScope:Me,deleteScope:function(e,a){var t,n;for(var o in e||(e=Me()),M)if(Object.prototype.hasOwnProperty.call(M,o))for(t=M[o],n=0;n<t.length;)t[n].scope===e?t.splice(n,1):n++;Me()===e&&Jt(a||"all")},getPressedKeyCodes:function(){return F.slice(0)},isPressed:function(e){return typeof e=="string"&&(e=at(e)),F.indexOf(e)!==-1},filter:function(e){var a=e.target||e.srcElement,t=a.tagName,n=!0;return!a.isContentEditable&&(t!=="INPUT"&&t!=="TEXTAREA"&&t!=="SELECT"||a.readOnly)||(n=!1),n},trigger:function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(M).forEach((function(t){var n=M[t].find((function(o){return o.scope===a&&o.shortcut===e}));n&&n.method&&n.method()}))},unbind:function(e){if(e===void 0)Object.keys(M).forEach((function(s){return delete M[s]}));else if(Array.isArray(e))e.forEach((function(s){s.key&&dt(s)}));else if(typeof e=="object")e.key&&dt(e);else if(typeof e=="string"){for(var a=arguments.length,t=new Array(a>1?a-1:0),n=1;n<a;n++)t[n-1]=arguments[n];var o=t[0],r=t[1];typeof o=="function"&&(r=o,o=""),dt({key:e,scope:o,method:r,splitKey:"+"})}},keyMap:Ft,modifier:de,modifierMap:St};for(var mt in ut)Object.prototype.hasOwnProperty.call(ut,mt)&&(N[mt]=ut[mt]);if(typeof window<"u"){var Ys=window.hotkeys;N.noConflict=function(e){return e&&window.hotkeys===N&&(window.hotkeys=Ys),N},window.hotkeys=N}N.filter=function(){return!0};var aa=function(e,a){var t=e.target,n=t&&t.tagName;return!!(n&&a&&a.includes(n))};function Vs(e,a,t,n){t instanceof Array&&(n=t,t=void 0);var o=t||{},r=o.enableOnTags,s=o.filter,i=o.keyup,l=o.keydown,m=o.filterPreventDefault,p=m===void 0||m,h=o.enabled,f=h===void 0||h,c=o.enableOnContentEditable,u=c!==void 0&&c,C=b.useRef(null),g=b.useCallback((function(k,I){var v,_;return s&&!s(k)?!p:!!(aa(k,["INPUT","TEXTAREA","SELECT"])&&!aa(k,r)||(v=k.target)!=null&&v.isContentEditable&&!u)||!!(C.current===null||document.activeElement===C.current||(_=C.current)!=null&&_.contains(document.activeElement))&&(a(k,I),!0)}),n?[C,r,s].concat(n):[C,r,s]);return b.useEffect((function(){if(f)return i&&l!==!0&&(t.keydown=!1),N(e,t||{},g),function(){return N.unbind(e,g)};N.unbind(e,g)}),[g,e,f]),C}N.isPressed;const Gs=[],pt="dashboard_card",ae="ai_cfo_dashboard_card";function na(e,a){return a?e.some((t=>String(t)===ae))?e.slice():[ae,...e]:e.filter((t=>String(t)!==ae))}const Ns=["net_burn_or_income_story_card","cash_balance","task_card","card_balance","zeni_promo_card","insights_dashboard","information_card","company_details","bill_pay_promo_card","bill_pay_card","reimbursement_card","reimbursement_promo_card","rewards_card"],Xs=(e,a,t,n,o)=>({card:{dimension:Tt(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e.status!=null?{balanceAmount:e.balance?.available,lastUpdatedTime:e.status.lastRefreshSuccessTime,changePercent:e.balance?.change?.percent,changeComparedToDate:e.balance?.change?.since}:void 0}),Re=(e,a,t,n,o)=>({card:{dimension:Tt(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e}),$s=(e,a,t,n)=>Re(void 0,e,Ee,a,t),zs=e=>{const a=Tt(Ee);return a.height=Ee.height+10,{card:{dimension:a,cardType:ae,cardIndex:e,fetchState:"Completed",disableAnimations:!1,spansFullDashboardWidth:!0}}},Ks=oe((function(e,a){const t=Zs(a.dashboardReport),n=a.passedCardsOrdered,o=a.dashboardReport.reportsInOrder,{isInterestedInChargeCard:r,cardsCreditLimit:s,cashbackRate:i}=a;let l=n.map(((m,p)=>{if(m==="reimbursement_promo_card"||m==="bill_pay_promo_card")return $s(t,m,p);if(m==="zeni_promo_card")return Re({isExpressedInterest:r,creditLimit:s,cashbackRate:i,fetchState:"Completed"},a.cardBalanceFetchState,Ee,m,p);if(m==="information_card")return Re(void 0,"Completed",Ee,m,p);if(m===ae)return zs(p);{const h=o.find((f=>f?.reportId===m));return h?(function(f,c,u,C){const g=f.reportId;switch(g){case"card_balance":case"cash_balance":return[Xs(f,c,u,g,C)];case"expense_automation_card":case"operating_expenses":case"revenue":case"top_expenses":case"cash_position":case"cash_in_cash_out":case"insights_dashboard":case"company_details":case"task_card":case"bill_pay_card":case"reimbursement_card":case"net_burn_or_income":case"accounts_payable_aging":case"accounts_receivable_aging":case"rewards_card":return[Re(f,c,u,g,C)];case"net_burn_or_income_story_card":return[Re(f,c,u,"net_burn_or_income_story_card",C)];default:return console.error(`card type ${g} not yet supported!`),[]}})(h,h.fetchState,Ee,p):[]}})).flat();return a.isSummaryCardsFiltered===!0&&(l=l.filter((m=>Ns.includes(m.card.cardType)==0)).filter((m=>{const p=m.data?.availableNumberOfPeriods;return p!=null?p>0:m.card.cardType!="top_expenses"||m.data==null||(function(h){if(h==null||h.length===0)return!0;let f=!0;for(const c of h)if(c.balance.available.amount!==0){f=!1;break}return f})(m.data.topExpenses.accountsOrdered)===!1}))),{cardDataArray:l,autoCompleteData:{autoCompleteText:e.entityAutoCompleteState.autoCompleteText.navbar,entityAutoCompleteView:ue(e,"navbar")},analytics:x,isReimbursementEnabled:a.isReimbursementEnabled,isBillPayEnabled:a.isBillPayEnabled}}),(function(e,a){const t=a.tenantId,n=Y.getSignedInUser();return{cardActions:{onCardClick:(o,r,s,i)=>{if(console.warn(`onCardClick at ${o} for the type ${r}`),r==="zeni_promo_card"&&i!=null)x.trackDashboardCardClicked("cards promo",2),x.trackZeniCardsPromoCardClicked(a.isChargeCardFeatureEnabled,i,2,`${n?.firstName??""} ${n?.lastName??""}`,a.isChargeCardFeatureEnabled?a.cardsCreditLimit:void 0),i==="Learn More"?window.open("https://www.zeni.ai/product/business-credit-card","_blank"):a.navigate("../cards/promo",{relative:"path"});else if(a.isForecastOn)switch(r){case"net_burn_or_income":case"operating_expenses":case"revenue":a.navigate(`${r}/forecast/${a.selectedForecastOnDashboard}`,{state:{referrer:s}});break;default:a.navigate(`${r}`,{state:{referrer:s}})}else r==="rewards_card"?(n!=null&&x.trackDashboardCardClicked("rewards promo",o+1),a.navigate("../../rewards/refer",{state:{referrer:s}})):r==="expense_automation_card"?(x.trackMonthEndCloseClicked(a.selectedPeriod.month,a.selectedPeriod.year,"Dashboard"),a.navigate("../../month_end_close_checks/review",{state:{referrer:"Dashboard"}})):a.navigate(`${r}`,{state:{referrer:s}})},onReloadData:(o,r)=>{const s=[];a.isApAgingFeatureEnabled===!1&&s.push("accounts_payable_aging"),a.isArAgingFeatureEnabled===!1&&s.push("accounts_receivable_aging"),a.isRewardsFeatureEnabled===!1&&s.push("rewards_card"),(function(i,l,m,p){if(l!==ae)switch(l){case"card_balance":i(la());break;case"cash_balance":i(ca());break;case"operating_expenses":i(wa(!0));break;case"revenue":i(xa(!0));break;case"net_burn_or_income":i(Ta(!0));break;case"net_burn_or_income_story_card":i(Mo(!0));break;case"cash_position":i(Ea(!0));break;case"top_expenses":i(Ia());break;case"cash_in_cash_out":i(Aa());break;case"insights_dashboard":i(Ro());break;case"bill_pay_card":i(jo());break;case"reimbursement_card":i(Oo());break;case"company_details":i(Fo(m));break;case"task_card":i(Po());break;case"accounts_payable_aging":p.includes("accounts_payable_aging")===!1&&i(gt(Te()));break;case"accounts_receivable_aging":i(bt(Te()));break;case"rewards_card":p.includes("rewards_card")===!1&&i(Do(!0));break;default:throw new Error(`report type ${l} is not yet supported`)}})(e,r,a.companyId,s)},onTimeframeChange:(o,r)=>{x.trackTimeframeSwitch(Va(r),Qs(o),"Dashboard"),(function(s,i,l){switch(i){case"operating_expenses":case"revenue":case"net_burn_or_income":case"cash_position":s(xe(l));break;case"top_expenses":s(va(l));break;default:throw new Error(`report type ${i} doesn't support changeTimeframe`)}})(e,o,r)},onUpdateSelectedInsightIndex:o=>{e(wo(o))},onCategoryClick:(o,r,s)=>{o==="bill-pay"?a.navigate("../bills",{state:{tab:r,subTab:s},relative:"path"}):o==="reimbursement"?a.navigate("../reimbursements",{state:{tab:r,subTab:s},relative:"path"}):o==="uncategorized-account-mapping"?a.navigate("../settings/accounting",{relative:"path"}):o==="show-all-tasks"?a.navigate("../tasks",{relative:"path"}):a.navigate(`../../transactions/${o}`)},onCardBtnClick:o=>{if(o==="bill_pay_promo_card"){const r="../bills",s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s},relative:"path"})}else if(o==="reimbursement_promo_card"){const r="../reimbursements",s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s},relative:"path"})}},onSaveClick:(o,r,s)=>{o==="net_burn_or_income_story_card"&&(x.trackUpdateBurnRateCalculatorSettings(r,s,To(s)),e(xo(t,r,s)))}},autoCompleteActions:{onAutoCompleteInputChange:o=>{o.trim().length>=2?e(me({searchString:o,searchOrigin:"navbar"})):o.trim().length===0&&e(ne("navbar"))},onCancelAutoComplete:()=>{e(ne("navbar"))},onAutoCompleteEntity:o=>{let r="";r=o.type!=="vendor"||o.detailType!=="bank_merchant"&&o.detailType!=="card_merchant"?he(o,a.tenantEmailDomain):os(o.zeniId,o.qboId,a.tenantEmailDomain);const s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s,referrer:"Search"}})}}}}))(ns);function qs(){const e=oa(),a=Oa(),t=Ua(a),{isAiCfoOpen:n,setIsAiCfoOpen:o,setAiCfoSidePanelQuestionToSubmit:r}=Fa(),s=J(),i=z(),l=H(),m=Y.getSignedInUser(),{useFeatureGate:p,useDynamicConfig:h}=Pe(),[f,c]=b.useState(!1),[u,C]=b.useState(!1),g=ja(),{tenantEmailDomain:k}=q(),{isAiCfoAccessEnabled:I,onAskAiCfoClick:v}=re({mobileExploreReferrer:"Dashboard"}),_=S((A=>A.tenantState.fetchState==="Completed"||A.tenantState.activeTenantFetchState.fetchState==="Completed"?L(A):void 0)),T=_??Y.getSignedInUserTenant(k),{isCardsShuttingDown:B,shutdownContent:D}=Qo(T?.tenantId,_?.company?.managementInfo?.receiverEmails),E=b.useMemo((()=>B===!0&&D!=null?d.jsx(Zo,{shutdownContent:D}):null),[B,D]),P=_?.masterTOSInfo?.isMasterTOSAccepted??!1,y=T.tenantId,w=T.companyId;b.useEffect((()=>{f===!1&&l.state?.message==="activation"&&(i(yo(w)),c(!0))}),[l.state,f,w,i]),b.useEffect((()=>{g&&!u&&l.state?.message==="open_ai_cfo_drawer"&&(C(!0),P?(o(!0),s({pathname:l.pathname,search:l.search,hash:l.hash},{replace:!0,state:{...l.state,message:void 0}})):ce({location:l,navigate:s,mergeState:{referrer:"Dashboard",message:void 0}}))}),[l,u,g,P,o,s]);const{isFeatureEnabled:ie}=p(V.isApAgingFeatureEnabled),_e=Wo(),R=Ho(_e),{isFeatureEnabled:ee}=p(V.isArAgingFeatureEnabled),{isFeatureEnabled:qe}=p(V.isDepositAccountsFeatureEnabled),{isFeatureEnabled:Qe}=p(V.isReferralFeatureEnabled),{isFeatureEnabled:Ka}=p(V.isChargeCardFeatureEnabled),{isFeatureEnabled:qa}=p(V.isAiCfoFileUploadEnabled),{isFeatureEnabled:Qa}=p(V.isDashboardSidebarChristmasAnimationEnabled),{isFeatureEnabled:Za}=p(V.isDashboardSidebarNewYearAnimationEnabled),{isFeatureEnabled:Wa}=p(V.aiAuditScorePercentage),{configValue:Ot}=h(Ra.zeniCardsConfig),Ha=Ot.charge_card_cashback_rate_per_transaction==null?.0175:Ot.charge_card_cashback_rate_per_transaction;if(l.state?.message==="activation"){const A=Jo(l.state?.pathnameStackToGoBack);s(l.pathname,{state:{...l.state,message:void 0,pathnameStackToGoBack:A.newStack}})}const[jt,Ja]=b.useState(!1),[nt,en]=b.useState(!1);Vs("command+p, Control+p",(A=>{en(!nt),A.preventDefault()}),{enableOnContentEditable:!0,enableOnTags:["INPUT","SELECT","TEXTAREA"]},[nt]);const Rt=_?.externalConnections?.accounting[0]?.isValid;if(m==null)throw Error("Can't access dashboard without signing in...");const fe=S((A=>L(A)?.excludedResources)),tn=S((A=>A.expenseAutomationViewState.selectedPeriodByTenantId)),an=!!_?.companyReimbursementInfo?.info?.isReimbursementEnabled,nn=!!_?.companyBillPayInfo?.info?.isBillPayEnabled,on=$e(),K=[],Mt=fe?.resources?.find((A=>A.resource==="/reports/top_expenses"))==null,sn=fe?.resources?.find((A=>A.resource==="/reports/task_card"))==null,Bt=_?.userRole!=null&&Sa(_?.userRole),rn=fe?.resources?.find((A=>A.resource==="/bills"))==null&&!Bt,cn=fe?.resources?.find((A=>A.resource==="/reimbursements"))==null,ln=vo(on?.loggedInUserRoleMap),dn=_?.company?.companyChargeCardInfo?.chargeCardsCreditAccountLimit??0,un=_?.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1;Mt===!1&&K.push("top_expenses"),sn===!1&&K.push("task_card"),rn===!1&&K.push("bill_pay_card","bill_pay_promo_card"),ie===!1&&K.push("accounts_payable_aging"),ee===!1&&K.push("accounts_receivable_aging"),(_e===!1||Bt)&&K.push("expense_automation_card"),cn===!1&&K.push("reimbursement_card","reimbursement_promo_card"),K.push("zeni_accounts_promo_card","treasury_promo_card"),Qe===!1&&K.push("rewards_card");const{areTenantIdsInSync:Ut}=es();b.useLayoutEffect((()=>{jt&&R===_e||Rt!==!0||!Ut||fe?.fetchState!=="Completed"&&fe?.fetchState!=="Error"||(Ja(!0),i(Ao(m.userId,w,y,!0,!1,K)))}),[jt,m,y,i,Mt,Rt,fe?.fetchState,Ut]);const mn=S((A=>A.reportUIOptionsState.forecastOnDashboard.isForecastModeOn)),pn=S((A=>A.revenueState.uiState.selectedForecast?.id)),hn=S((A=>A.cardBalanceState.fetchState)),ge=S((A=>Io(A,K))),fn=ge.fetchState,gn=b.useMemo((()=>na(ge.cardsOrdered,I)),[ge.cardsOrdered,I]),bn=b.useMemo((()=>na(ge.cardsForDashboardUI,I)),[ge.cardsForDashboardUI,I]);Ge({isDataReady:!0});const{isSuggestedQuestionsLoading:Cn,suggestedPromptQuestions:Sn}=rs(),Lt=S((A=>da(A))),ke=Lt.uiState?.currentChatSessionId,ot=Lt.allSessionsWithOrderedQuestionAnswers??Gs,{currentSessionQuestionAnswers:_n}=ts(ot,ke),Yt=_n.length===0,kn=b.useCallback(((A,Z,te)=>{const ye=m?.userId;if(ye==null)return;const G=A.trim();if(G.length===0&&Z.length===0)return;if(!P)return void ce({location:l,navigate:s,mergeState:{referrer:"Dashboard",...G.length>0?{aiCfoInitialQuestion:G,aiCfoInitialSubmissionSource:pt,...typeof te=="number"?{aiCfoSuggestionIndex:te}:{}}:{}}});const W=Ma(e.getState()),ve=()=>{const Ae=j(l.state?.pathnameStackToGoBack,l.pathname);s(`/${k}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Ae,referrer:"Dashboard",aiCfoInitialQuestion:G,aiCfoShouldSubmit:!W&&G.length>0,aiCfoInitialSubmissionSource:pt,...typeof te=="number"?{aiCfoSuggestionIndex:te}:{}}})};return t?Z.length>0?void o(!0):void ve():Z.length>0?W?(i(Ct(G)),void o(!0)):(r(G.length>0?G:null),o(!0),void(G.length>0&&Ba(i,G,pt,ke,ot,ye,te,Z.length>0?Z:void 0))):(W&&i(Ct(G)),void ve())}),[ot,ke,i,P,t,l,s,r,o,m?.userId,e,k]),yn=b.useCallback((()=>{P?o(!0):ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}})}),[P,l,s,o]),vn=b.useCallback((()=>{if(!P)return void ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}});if(k==null)return;const A=j(l.state?.pathnameStackToGoBack,l.pathname);s(`/${k}/ai-cfo/explore`,{state:{pathnameStackToGoBack:A,referrer:"Dashboard"}})}),[P,l,s,k]),An=b.useCallback((()=>{if(P)if(t){if(k==null||_==null)return;const A=ke==null||Yt?`/${k}/ai-cfo/explore`:`/${k}/ai-cfo/${ke}`,Z=l.state?.pathnameStackToGoBack??[],te=j(Z,l.pathname);s(A,{state:{...l.state,pathnameStackToGoBack:te,[as]:!0}})}else ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}});else ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}})}),[P,t,l,s,k,_,ke,Yt]);return d.jsxs(d.Fragment,{children:[fn==="Completed"?d.jsx(Ne,{analytics:x,onLoad:A=>{A.trackPageLoaded(X.Event.dashboard)}}):null,d.jsx(Ks,{cardsShutdownBanner:E,maxColumns:n?2:void 0,isAiCfoAccessEnabled:I,onAskAiCfoClick:v,onAiCfoDashboardOpenPanel:yn,onAiCfoDashboardOpenScopePage:An,isAiCfoFileUploadEnabled:qa===!0&&t===!1,onAiCfoDashboardPromptSubmit:kn,onAiCfoDashboardExpandToFullPage:vn,aiCfoDashboardShouldClearPromptOnSubmit:P,aiCfoDashboardSuggestedPromptQuestions:Sn,aiCfoDashboardSuggestedPromptQuestionsLoading:Cn,onDragAndDropCard:(A,Z)=>{if(A===ae||Z===ae)return;const te=(function(W,ve,Ae){const st=Ae.indexOf(W),rt=Ae.indexOf(ve);if(st===-1||rt===-1||st===rt)return Ae;const it=[...Ae];return it.splice(st,1),it.splice(rt,0,W),it})(A,Z,gn),ye=te.filter((W=>W!==ae)),G=ge.cardsOrdered;(ye.length!==G.length||ye.some(((W,ve)=>W!==G[ve])))&&i(Eo(ye))},dashboardReport:ge,passedCardsOrdered:bn,tenantId:y,companyId:w,tenantEmailDomain:k,location:l,navigate:s,isApAgingFeatureEnabled:ie,isArAgingFeatureEnabled:ee,isBillPayEnabled:nn,isReimbursementEnabled:an,isSummaryCardsFiltered:nt,isForecastOn:mn,selectedForecastOnDashboard:pn,isVisitingFirstTime:f,isZeniAccountEnabled:qe,isRewardsFeatureEnabled:Qe,selectedPeriod:tn[y],isChargeCardFeatureEnabled:Ka,isUserHasCardsAccess:ln,cardsCreditLimit:dn,cashbackRate:Ha,isInterestedInChargeCard:un,cardBalanceFetchState:hn,christmasAnimationEnabled:Qa,newYearAnimationEnabled:Za,aiAuditScorePercentageEnabled:Wa})]})}const Qs=e=>{switch(e){case"operating_expenses":return"Operating Expenses";case"revenue":return"Revenues";case"top_expenses":return"Top Expenses";case"net_burn_or_income":return"Burn Rate";case"cash_in_cash_out":return"Cash In, Cash Out";case"cash_position":return"Cash Position"}return"Dashboard"},Zs=e=>e.fetchState!=="Error"?e.fetchState:e.reportsInOrder.map((a=>a.fetchState)).reduce(((a,t)=>a==="In-Progress"||a==="Not-Started"?a:t));function ht(){return d.jsxs(ft,{children:[d.jsx(O,{path:"/",element:d.jsx(le,{})}),d.jsx(O,{path:"/:forecastId",element:d.jsx(le,{})}),d.jsx(O,{path:"/:forecastId/*",element:d.jsx(Be,{})})]})}function xr(){const e=$e(),a=e?.excludedResources?.find((m=>m.resource==="/reports/top_expenses"))==null,{useFeatureGate:t}=Pe(),{isFeatureEnabled:n}=t(V.isApAgingFeatureEnabled),{isFeatureEnabled:o}=t(V.isArAgingFeatureEnabled),r=S((m=>L(m))),{isFeatureEnabled:s}=t(V.isDebitCardFeatureEnabled),i=Bo(s,r),l=Uo(r);return i===!0||l===!0?d.jsx(ft,{children:d.jsx(O,{path:"/*",element:d.jsx(is,{})})}):d.jsxs(ft,{children:[d.jsx(O,{path:"/",element:d.jsx(qs,{})}),d.jsx(O,{path:"cash_balance/*",element:d.jsx(Qt,{})}),d.jsx(O,{path:"card_balance/*",element:d.jsx(Qt,{})}),d.jsx(O,{path:"operating_expenses/*",element:d.jsx(le,{})}),d.jsx(O,{path:"operating_expenses/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"revenue/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"revenue/*",element:d.jsx(le,{})}),d.jsx(O,{path:"net_burn_or_income/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"net_burn_or_income/*",element:d.jsx(le,{})}),n===!0&&d.jsxs(d.Fragment,{children:[d.jsx(O,{path:"accounts_payable_aging/*",element:d.jsx(ls,{})}),d.jsx(O,{path:"accounts_payable_aging/:vendorId/:reportDate/*",element:d.jsx(cs,{})})]}),o&&d.jsxs(d.Fragment,{children:[d.jsx(O,{path:"accounts_receivable_aging/:customerId/:reportDate/*",element:d.jsx(ds,{})}),d.jsx(O,{path:"accounts_receivable_aging/*",element:d.jsx(us,{})})]}),d.jsx(O,{path:"cash_position/*",element:d.jsx(le,{})}),d.jsx(O,{path:"top_expenses/*",element:a===!0?d.jsx(le,{}):d.jsx(Be,{})}),d.jsx(O,{path:"cash_in_cash_out/*",element:d.jsx(le,{})}),d.jsx(O,{path:"company_details",element:d.jsx(ss,{})}),d.jsx(O,{path:"referrals/*",element:d.jsx(In,{to:"../../rewards/refer",replace:!0})}),d.jsx(O,{path:"*",element:d.jsx(Be,{})})]})}export{xr as default};
|