@zeniai/web-app-ui 5.1.56-qa → 5.1.57-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AddressRoutes-Btsu-Pr2.js +1 -0
- package/dist/assets/{AddressScreen-Jgfq0eWZ.js → AddressScreen-uQ5DG6RP.js} +2 -2
- package/dist/assets/AiCfoScreen-C79maxqZ.js +22 -0
- package/dist/assets/BillPayApprovalRoutes-Diu_Qczl.js +1 -0
- package/dist/assets/BillPayRoutes-DomFtcrh.js +119 -0
- package/dist/assets/BusinessVerificationPageScreen-CTU28kRu.js +9 -0
- package/dist/assets/ChargeCardRoutes-B_Xq4AX2.js +71 -0
- package/dist/assets/{CompanyPassportScreen-CE4f1mRO.js → CompanyPassportScreen-CNZfdpGE.js} +1 -1
- package/dist/assets/ConnectionAuthScreen-9uLQVh7r.js +11 -0
- package/dist/assets/CustomerOnboardingAuthScreen-DxID2vZg.js +1 -0
- package/dist/assets/CustomerOnboardingRoutes-CtEh9ZQ3.js +23 -0
- package/dist/assets/DashboardRoutes-C0VrIF3t.js +20 -0
- package/dist/assets/DefaultTenantHome-DV2g1Cag.js +1 -0
- package/dist/assets/DomesticWireDetailScreen-WAgZ5MVK.js +18 -0
- package/dist/assets/{DrawerScreen-DcUdH_zJ.js → DrawerScreen-p0fVIC2O.js} +1 -1
- package/dist/assets/EntityDetailRoutes-BZiwq_x8.js +1 -0
- package/dist/assets/ExpenseAutomationRoutes-C13mP6Ld.js +25 -0
- package/dist/assets/FeaturePreviewScreen-vqWA1iAu.js +1 -0
- package/dist/assets/HubSpotOAuthCallbackScreen-DRJFxPVL.js +1 -0
- package/dist/assets/{MagicLinkRoutes-C901TSTh.js → MagicLinkRoutes-CCHMK5nR.js} +20 -20
- package/dist/assets/MagicLinkSignInScreen-DxG_4feq.js +12 -0
- package/dist/assets/MobileAppDrawer-DfGezxMQ.js +1 -0
- package/dist/assets/NotFoundScreen-DGu_qIhZ.js +1 -0
- package/dist/assets/NotificationRoutes-uMWrErpy.js +1 -0
- package/dist/assets/OAuthConsentScreen-DOqYjznz.js +1 -0
- package/dist/assets/PandLWithForecastRoutes-x4jJOk7g.js +1 -0
- package/dist/assets/PeopleRoutes-DtjJ5ui_.js +22 -0
- package/dist/assets/PerformanceRoutes-BloPT0Gr.js +1 -0
- package/dist/assets/{Preview-f2ns8xny.js → Preview-DUJTupxJ.js} +1 -1
- package/dist/assets/{QBOConnectionScreen-CSgGZuyl.js → QBOConnectionScreen-DqtdpzBM.js} +1 -1
- package/dist/assets/ReferralListScreen-CmiBzw21.js +5 -0
- package/dist/assets/ReimbursementApprovalRoutes-Bi4gR0EY.js +1 -0
- package/dist/assets/ReimbursementApprovalRuleDetailScreen-DAMceMDV.js +1 -0
- package/dist/assets/{ReimbursementRoutes-CzlU6LYx.js → ReimbursementRoutes-LVhtQ1QR.js} +13 -13
- package/dist/assets/ReportsRoutes-hERwKlR6.js +1 -0
- package/dist/assets/RewardsRoutes-CCP5Ycwd.js +1 -0
- package/dist/assets/ScreenRoutes-Dkx6t2M6.js +2 -0
- package/dist/assets/SettingsRoutes-iDdQWuGR.js +57 -0
- package/dist/assets/SetupPagesScreen-CykvAPwk.js +29 -0
- package/dist/assets/SignInScreen-C1AbxNiZ.js +1 -0
- package/dist/assets/SignOutScreen-ZWnRWBaT.js +9 -0
- package/dist/assets/TaskListScreen-eAFg78l5.js +9 -0
- package/dist/assets/TaskRoutes-C_sRnJzp.js +9 -0
- package/dist/assets/TransactionDetailRoutes-yKry3lon.js +1 -0
- package/dist/assets/TransactionDetailScreen-H4gr8jU7.js +5 -0
- package/dist/assets/TransactionListRoutes-C9jwZ51n.js +1 -0
- package/dist/assets/TreasuryRoutes-DzUIIbIL.js +37 -0
- package/dist/assets/{VendorsRoutes-BZFmR2hI.js → VendorsRoutes-BAxfd2en.js} +27 -27
- package/dist/assets/WiseConfirmationScreen-Dj60kDPw.js +12 -0
- package/dist/assets/ZeniAccountRoutes-a5E3OMoh.js +57 -0
- package/dist/assets/ZeniAccountStatementScreen-gH7pO1hx.js +9 -0
- package/dist/assets/{accountMappingHelper-DS9ya8eF.js → accountMappingHelper-CQ-cPZ2Q.js} +1 -1
- package/dist/assets/{analytics-BLbM2ksu.js → analytics-Dp5zEMRl.js} +1 -1
- package/dist/assets/{analyticsHelper-BU5wlVa9.js → analyticsHelper-Dgpf5RH0.js} +1 -1
- package/dist/assets/{core-OMb8nkC1.js → core-Bz75oBBS.js} +2 -2
- package/dist/assets/{decodeURIComponentSafe-CrZYJ6cg.js → decodeURIComponentSafe-C4sdX50I.js} +1 -1
- package/dist/assets/dnd-CZ-V7Opk.js +6 -0
- package/dist/assets/empty-7OUXq_pa.js +1 -0
- package/dist/assets/{empty-BACf_dXg.js → empty-BOJvSC1K.js} +1 -1
- package/dist/assets/{emptyVideoElement-wUn7k4Wi.js → emptyVideoElement-B7aN1P9v.js} +1 -1
- package/dist/assets/epic-BcqgfxS9.js +2 -0
- package/dist/assets/getLocaleForTenant-1kUhHovP.js +1 -0
- package/dist/assets/{index-BNIZfLgU.js → index-6BzK0FJL.js} +1 -1
- package/dist/assets/{index-CPre97x9.js → index-B580fqwk.js} +1 -1
- package/dist/assets/{index-5gq8gNHx.js → index-BQTqLUth.js} +2 -2
- package/dist/assets/{index-CVJX5WNC.js → index-Bs6X6A75.js} +1 -1
- package/dist/assets/{index-NcZU0lXl.js → index-C6CKWv1Y.js} +26987 -31191
- package/dist/assets/{index-DmsNrKhC.js → index-DqlK4s6f.js} +1 -1
- package/dist/assets/{empty-CyDTyMxd.js → index-PPRJ7txt.js} +1 -1
- package/dist/assets/{index-BUmr5maU.css → index-R6GjjTB3.css} +1 -1
- package/dist/assets/index-uPeOzU7i.js +1 -0
- package/dist/assets/{lexical-CNfNgAkp.js → lexical-BhoV9klE.js} +1 -1
- package/dist/assets/{liveblocks-BUQfB0Zp.js → liveblocks-Dtw-cIpm.js} +1 -1
- package/dist/assets/{lottie-DDI83OWz.js → lottie-DCGoGDCc.js} +1 -1
- package/dist/assets/{mui-JZY-3hhJ.js → mui-XIlJ9bNw.js} +1 -1
- package/dist/assets/{pathToGoBack-iJW8VSI1.js → pathToGoBack-DF7meFK5.js} +1 -1
- package/dist/assets/{pdf-6FZlivdz.js → pdf-DY4XXQdH.js} +3 -3
- package/dist/assets/{pdf-lib-CtBKoWQc.js → pdf-lib-BwfYoiDb.js} +1 -1
- package/dist/assets/{plaid-B_OuebQv.js → plaid-HhKeWLGl.js} +1 -1
- package/dist/assets/{pusher-BqrLLY7v.js → pusher-yKpXr-6q.js} +1 -1
- package/dist/assets/{react-PG_EpTGq.js → react-4ndjzott.js} +1 -1
- package/dist/assets/{react-uplfhPO2.js → react-5mDvcVHb.js} +1 -1
- package/dist/assets/{react-BVW_zt6p.js → react-B27fDKOl.js} +1 -1
- package/dist/assets/{react-D-VI0x0-.js → react-BU60ZCxp.js} +1 -1
- package/dist/assets/{react-axoushfz.js → react-BihThLEf.js} +1 -1
- package/dist/assets/{react-Crq75Q-S.js → react-PQlAUPJl.js} +1 -1
- package/dist/assets/{recharts-DAM4r1-u.js → recharts-P1XbTErv.js} +3 -3
- package/dist/assets/{routePaths-DZldr9mG.js → routePaths-qyRAZ1-v.js} +1 -1
- package/dist/assets/{sentry-BLIwU6uZ.js → sentry-CcjRjG-d.js} +1 -1
- package/dist/assets/{url-CbGZb3kM.js → url-CywC97He.js} +1 -1
- package/dist/assets/{url-BMb7_G4N.js → url-t5z6Dd8t.js} +1 -1
- package/dist/assets/{useAiCfoDashboardSuggestedQuestionsChips-DEWGXdch.js → useAiCfoDashboardSuggestedQuestionsChips--tZ2M5qy.js} +1 -1
- package/dist/assets/{useAskAiCfoHostNavButtonProps-DS5Fxq3U.js → useAskAiCfoHostNavButtonProps-DltkBD6G.js} +1 -1
- package/dist/assets/{useDeviceId-l9JfwAte.js → useDeviceId-iq2z2ZGf.js} +1 -1
- package/dist/assets/useInitialThreadRequest-DQr5vayF.js +1 -0
- package/dist/assets/{utils-Bia5qc4p.js → utils-CSFJzIqP.js} +2 -2
- package/dist/assets/withTransactionSidePanel-CnttXHns.js +21 -0
- package/dist/assets/zeni-epic-state-qHZitSu9.js +13 -0
- package/dist/index.html +1 -1
- package/package.json +4 -4
- package/dist/assets/AddressRoutes-DsuoPslx.js +0 -1
- package/dist/assets/AiCfoScreen-ngmwmSfT.js +0 -22
- package/dist/assets/BillPayApprovalRoutes-DjjjDtRL.js +0 -1
- package/dist/assets/BillPayRoutes-zXfejo42.js +0 -119
- package/dist/assets/BusinessVerificationPageScreen-BiV9G1-i.js +0 -9
- package/dist/assets/CardsAiCfoScreen-Z2PndTe3.js +0 -14
- package/dist/assets/ChargeCardRoutes-CBFlKgnf.js +0 -71
- package/dist/assets/ConnectionAuthScreen-BFW2NVDD.js +0 -11
- package/dist/assets/CustomerOnboardingAuthScreen-DZoaiMvV.js +0 -1
- package/dist/assets/CustomerOnboardingRoutes-Doltk1XW.js +0 -23
- package/dist/assets/DashboardRoutes-YclW7oS0.js +0 -20
- package/dist/assets/DefaultTenantHome-cEuyRwZp.js +0 -1
- package/dist/assets/DomesticWireDetailScreen-3X6dnm4U.js +0 -18
- package/dist/assets/EntityDetailRoutes-D020FlPl.js +0 -1
- package/dist/assets/ExpenseAutomationRoutes-CTZlVWwO.js +0 -25
- package/dist/assets/FeaturePreviewScreen-DgqstYkZ.js +0 -1
- package/dist/assets/HubSpotOAuthCallbackScreen-DlnwVV1p.js +0 -1
- package/dist/assets/MagicLinkSignInScreen-DFljjGc3.js +0 -12
- package/dist/assets/MobileAppDrawer-B4f1me8_.js +0 -1
- package/dist/assets/NotFoundScreen-CxRYls3k.js +0 -1
- package/dist/assets/NotificationRoutes-Dw__n9YA.js +0 -1
- package/dist/assets/OAuthConsentScreen-Ur-mQS8z.js +0 -1
- package/dist/assets/PandLWithForecastRoutes-DSq1hcWm.js +0 -1
- package/dist/assets/PeopleRoutes-CUtLjfXT.js +0 -22
- package/dist/assets/PerformanceRoutes-D4zDazyB.js +0 -1
- package/dist/assets/ReferralListScreen-CbCeYBu8.js +0 -5
- package/dist/assets/ReimbursementApprovalRoutes-CQrzmhSh.js +0 -1
- package/dist/assets/ReimbursementApprovalRuleDetailScreen-DTZkQzQY.js +0 -1
- package/dist/assets/ReportsRoutes-D_wjWb18.js +0 -1
- package/dist/assets/RewardsRoutes-Bfg59urI.js +0 -1
- package/dist/assets/ScreenRoutes-D5k4uqAt.js +0 -2
- package/dist/assets/SettingsRoutes-3hV9qN1I.js +0 -57
- package/dist/assets/SetupPagesScreen-CPey4cOW.js +0 -29
- package/dist/assets/SignInScreen-gQzAHzdj.js +0 -1
- package/dist/assets/SignOutScreen-GvUCBNk6.js +0 -9
- package/dist/assets/TaskListScreen-Cuce7GNl.js +0 -9
- package/dist/assets/TaskRoutes-DmGo1lNA.js +0 -9
- package/dist/assets/TransactionDetailRoutes-CgKCf_lf.js +0 -1
- package/dist/assets/TransactionDetailScreen-CoGsdLTa.js +0 -5
- package/dist/assets/TransactionListRoutes-C4QYqCpP.js +0 -1
- package/dist/assets/TreasuryRoutes-jiXgJCAb.js +0 -37
- package/dist/assets/WiseConfirmationScreen-BLK_tJR5.js +0 -12
- package/dist/assets/ZeniAccountRoutes-DVnj5-p6.js +0 -73
- package/dist/assets/ZeniAccountStatementScreen-3bZVHWI7.js +0 -9
- package/dist/assets/dnd-DVcQZAG5.js +0 -6
- package/dist/assets/epic-C0I2MvV5.js +0 -2
- package/dist/assets/getLocaleForTenant-Bn16hOPH.js +0 -1
- package/dist/assets/index-BQIzm-tN.js +0 -1
- package/dist/assets/index-SfOqAjbR.js +0 -1
- package/dist/assets/useCashManagementBanner-CtcuIjhq.js +0 -1
- package/dist/assets/useInitialThreadRequest-Bh1NrHII.js +0 -1
- package/dist/assets/withTransactionSidePanel-DxHfrYsZ.js +0 -21
- package/dist/assets/zeni-epic-state-BZ6N8nVI.js +0 -13
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import{j as c}from"./liveblocks-BUQfB0Zp.js";import{h as de,g as Ce,i as Me,u as pe,j as o,N as Sa,s as Dt,n as De,t as In,o as es,p as se}from"./core-OMb8nkC1.js";import{bt as Pe,Rp as as,Rq as ts,eX as un,Rr as kn,f4 as En,Rs as An,Rt as Dn,Ru as _n,Rv as Pn,f5 as wn,f6 as vn,Rw as Tn,fg as Fn,fh as $a,Rx as xn,Ry as ns,fa as rs,f9 as ss,Rz as cs,BO as Rn,fj as ca,RA as os,RB as is,eZ as ds,eY as ls,fv as ze,fc as Bn,fb as Ln,RC as us,fd as ms,Bj as Cs,Bi as ps,Bm as hs,Bo as fs,fo as gs,eU as On,RD as bs,RE as Ss,ft as Un,RF as ys,fu as St,Bu as Is,Br as ks,eV as fe,RG as Ja,fy as we,fz as ve,fA as Te,gt as oa,cv as ia,RH as da,RI as _t,uB as za,ky as Za,RJ as Ya,C2 as ka,C4 as Je,C5 as Pt,ko as jn,RK as la,BS as _a,RL as Es,RM as As,BV as Qa,RN as Ds,PK as Xa,ff as Mn,B$ as ga,hO as _s,RO as Nn,RP as ua,bo as Ps,RQ as ws,ge as et,gd as at,Cz as vs,gc as tt,Pq as Ts,RR as Vn,co as Hn,cQ as Fs,PJ as wa,D8 as Gn,RS as mn,CK as Pa,RT as $n,D9 as xs,Q9 as Rs,Da as Bs,E6 as Ls,tY as Os,E0 as Us,RU as js,C3 as ra,RV as Ms,RW as Ns,RX as Vs,RY as Hs,RZ as Gs,R_ as wt,R$ as $s,Ck as zn,Cd as zs,S0 as Zs,gv as Ys,Ct as Zn,Cx as Yn,gu as Ws,S1 as Ks,CW as Wn,S2 as qs,S3 as Js,S4 as Qs,Cv as Kn,Cg as qn,BY as Jn,Cp as Qn,Cn as Xn,Cr as Xs,S5 as er,S6 as ec,fq as ac,fr as tc,fs as nc,S7 as nt,fk as ar,cR as vt,S8 as rc,S9 as sc,Sa as cc,Sb as oc,CF as yt,D1 as ic,CZ as dc,CB as lc,C$ as uc,CR as mc,CT as Cc,Sc as tr,D7 as Ga,JR as pc,Sd as hc,Se as fc,Sf as gc,Sg as nr,Sh as bc,Du as Sc,CJ as rr,CE as je,CI as yc,Si as Ic,Sj as kc,BP as Ec,Sk as sr,fe as cr,Sl as Ac,BR as Dc,BQ as Cn,Sm as _c,Sn as Pc,So as wc,Mm as vc,Sp as Tt,Sq as Tc,xB as or,l6 as Fc,hE as xc,Dz as Rc,Sr as ir,f1 as Bc,f2 as Lc,Ss as Oc,dh as Uc,fi as jc,Dp as Mc,Dj as qe,bs as Nc,bJ as Vc,cA as Hc,bK as Gc,Lz as $c}from"./zeni-epic-state-BZ6N8nVI.js";import{j as Fe,cm as dr,q as _e,cn as lr,co as ur,cp as zc,D as Xe,_ as Ft,cq as Zc,cr as Yc,V as mr,c as Cr,X as pr,s as ye,a as le,F as W,aq as ya,cs as hr,ct as Wc,cu as Kc,z as re,B as va,cb as rt,cv as qc,cw as Jc,cx as Qc,cy as Xc,cz as eo,J as Ta,aN as Ze,bo as xt,cA as ao,A as Fa,k as st,m as Rt,d as Q,a7 as ct,cB as to,bB as ba,cC as It,cD as no,E as Bt,cE as ro,at as fr,a2 as kt,cF as so,W as gr,f as br,cG as co,cH as oo,cI as io,cJ as lo,cK as uo,cL as mo,o as Wa,cM as Co,cN as po,cO as pt,Z as ho,cP as fo,cQ as go,cR as bo,cS as So,cT as yo,a9 as Io}from"./index-NcZU0lXl.js";import{n as Ne,D as Sr,S as ko}from"./mui-JZY-3hhJ.js";import{a as r}from"./sentry-BLIwU6uZ.js";import{u as xa}from"./useAskAiCfoHostNavButtonProps-DS5Fxq3U.js";import{M as Ie}from"./MobileAppDrawer-B4f1me8_.js";import{d as Lt}from"./recharts-DAM4r1-u.js";import{g as Ae,a as Ra,b as yr,c as xe,d as Re,e as Qe,f as ea,h as aa,A as Eo,i as Ot,P as Ao,j as Ut,s as Ia,k as Ir,l as sa,m as kr,n as Do,o as Er,p as _o,S as pn}from"./SetupPagesScreen-CPey4cOW.js";import{u as Ar}from"./useInitialThreadRequest-Bh1NrHII.js";import ot from"./NotFoundScreen-CxRYls3k.js";import{n as hn}from"./utils-Bia5qc4p.js";import{t as Po}from"./AddressScreen-Jgfq0eWZ.js";import"./analytics-BLbM2ksu.js";import"./plaid-B_OuebQv.js";import"./dnd-DVcQZAG5.js";import"./stripe-DMRn4zHo.js";import"./lottie-DDI83OWz.js";import"./lexical-CNfNgAkp.js";import"./pdf-6FZlivdz.js";import"./analyticsHelper-BU5wlVa9.js";import"./routePaths-DZldr9mG.js";import"./BusinessVerificationPageScreen-BiV9G1-i.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3369e947-ff58-4869-9f3f-d528b4bfbdac",e._sentryDebugIdIdentifier="sentry-dbid-3369e947-ff58-4869-9f3f-d528b4bfbdac")}catch{}})();const wo=e=>{const n=e.cardHolderUser,t=`${n.firstName??""} ${n.lastName??""}`.trim()||n.email||n.userId;return{userId:n.userId,displayName:t,roleLabel:e.cardHolderRoles?.titleAtCompany}},Dr=e=>({id:e.id,isChecked:!1,cardName:e.cardName,last4:e.accountLast4,limitAmount:e.limit?.amount??0,limitCadence:e.creditLimitFrequency?.code,owner:wo(e),utilizationAmount:(e.limit?.amount??0)-(e.available?.amount??0)}),{spendManagement:{chargeCard:{cardPolicyPage:fn}}}=Xe.getLocalizedStrings(),vo=e=>Bn(e,!1),To=e=>Ln(e.name,!1);function Fo(){const e=de(),n=Ce(),{tenantEmailDomain:t}=Me(),a=pe(),s=Fe(),b=Pe(s?.loggedInUserRoleMap),[f,g]=r.useState(!1),_=r.useCallback(T=>{g(T)},[]),i=r.useCallback(()=>{_(!0)},[_]),{isAiCfoAccessEnabled:m,onAskAiCfoClick:B}=xa({mobileExploreReferrer:"Card Policy"});r.useEffect(()=>()=>{a(as()),a(ts()),a(un())},[a]);const D=o(T=>kn(T.cardPolicyState)),d=o(T=>En(T.cardPolicyState)),j=o(T=>An(T.cardPolicyState)),P=o(T=>Dn(T.cardPolicyState)),F=o(T=>_n(T.cardPolicyState)),C=o(T=>Pn(T.cardPolicyState)),h=o(T=>wn(T.cardPolicyState)),w=o(T=>vn(T.cardPolicyState)),u=o(T=>Tn(T.cardPolicyState)),v=o(T=>T.chargeCardConfigState.receiptRequiredAboveAmount.amount),k=o(T=>T.chargeCardConfigState.fetchState);r.useEffect(()=>{D!=="Completed"&&D!=="In-Progress"&&a(Fn())},[a,D]),r.useEffect(()=>{w==="Completed"&&u===""||w==="In-Progress"||a($a())},[a,w,u]);const M=o(T=>xn(T.createCardPolicyState)),A=o(T=>ns(T.createCardPolicyState)),I=o(T=>rs(T.cardPolicyState)),L=o(T=>ss(T.cardPolicyState)),l=o(T=>cs(T.createCardPolicyState)),p=o(T=>Rn(T));r.useEffect(()=>{p.fetchState==="Not-Started"&&a(ca(!1,!1,!1))},[p.fetchState,a]);const N=r.useMemo(()=>d.map(vo),[d]),G=r.useMemo(()=>h.map(To),[h]),O=r.useMemo(()=>p.cards.filter(T=>!dr(T.status.code)).map(Dr),[p.cards]),U=D==="Completed"&&p.fetchState==="Completed"&&k==="Completed";r.useEffect(()=>{U&&l==null&&a(os({cardsMasterList:O,defaultRequireReceiptAmount:v,suggestedAllowMerchants:j,suggestedBlockMerchants:P,suggestedAllowCategories:F,suggestedBlockCategories:C}))},[k,a,U,l,O,v,j,P,F,C]);const z=r.useMemo(()=>Lt(T=>{a($a(T))},250),[a]);r.useEffect(()=>()=>{z.cancel()},[z]);const Z=r.useCallback(T=>{z(T)},[z]),y=M.fetchState,x=t!=null?`/${t}/cards/policy`:"..",Y=r.useCallback(()=>{const T=_e(n.state?.pathnameStackToGoBack),ee=T.poppedPathname??x;e(ee,{state:{pathnameStackToGoBack:T.newStack}})},[n.state,e,x]),q=r.useCallback(()=>{e(x)},[e,x]),E=r.useCallback(T=>{a(is(T))},[a]),V=r.useCallback(T=>{const ee=lr(T);a(ds({templates:[ee]}))},[a]),J=r.useCallback(T=>{T.length!==0&&a(ls(T))},[a]),X=r.useCallback(()=>{a(un())},[a]),S=r.useRef(y);r.useEffect(()=>{const T=S.current;S.current=y,y==="Completed"&&T!=="Completed"&&A!=null&&(a(ze({messageSection:"card_policy_created",messageText:"success",type:"success"})),e(x))},[a,y,A,e,x]);const R=y==="Error"?M.error?.message??fn.createPolicyGenericErrorMessage:void 0;return b&&t!=null?l==null?c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:_}),c.jsx(ur,{showUploadDocumentSection:!0,navBarTitle:fn.createPageTitle,onBackClick:Y,onClickMenuIcon:i,isAiCfoAccessEnabled:m,onAskAiCfoClick:B})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:_}),c.jsx(zc,{formDraft:l,vendorSearchOptions:G,categorySearchOptions:N,isVendorSearchLoading:w==="In-Progress",onVendorSearchTextChange:Z,submitState:y,submitErrorMessage:R,documentUploadState:I,uploadedFileName:L,isAiCfoAccessEnabled:m,onAskAiCfoClick:B,onBackClick:Y,onCancelClick:q,onClickMenuIcon:i,onFormChange:E,onSubmit:V,onUploadDocument:J,onRemoveDocument:X})]}):c.jsx(Sa,{to:"..",replace:!0})}const{spendManagement:{chargeCard:{cardPolicyPage:xo}}}=Xe.getLocalizedStrings(),Ro=e=>Bn(e,!1),Bo=e=>Ln(e.name,!1);function Lo(){const e=de(),n=Ce(),{tenantEmailDomain:t,templateId:a}=Me(),s=pe(),b=Fe(),f=Pe(b?.loggedInUserRoleMap),[g,_]=r.useState(!1),i=r.useCallback(R=>{_(R)},[]),m=r.useCallback(()=>{i(!0)},[i]),{isAiCfoAccessEnabled:B,onAskAiCfoClick:D}=xa({mobileExploreReferrer:"Card Policy"}),d=o(R=>us(R)),j=o(R=>kn(R.cardPolicyState)),P=o(R=>En(R.cardPolicyState)),F=o(R=>An(R.cardPolicyState)),C=o(R=>Dn(R.cardPolicyState)),h=o(R=>_n(R.cardPolicyState)),w=o(R=>Pn(R.cardPolicyState)),u=o(R=>wn(R.cardPolicyState)),v=o(R=>vn(R.cardPolicyState)),k=o(R=>Tn(R.cardPolicyState)),M=o(R=>Rn(R)),A=o(R=>a!=null?ms(R.cardPolicyState,a):void 0),I=r.useMemo(()=>d.templateId===a&&d.formDraft!=null?d.formDraft:A!=null?Cs(A):void 0,[d.templateId,d.formDraft,A,a]);r.useEffect(()=>{if(a==null)return;const R=d.detailFetchState.fetchState;d.templateId===a&&(R==="Completed"||R==="In-Progress")||A!=null||s(ps(a))},[s,a,d.templateId,d.detailFetchState.fetchState,A]),r.useEffect(()=>{j!=="Completed"&&j!=="In-Progress"&&s(Fn())},[s,j]),r.useEffect(()=>{v==="Completed"&&k===""||v==="In-Progress"||s($a())},[s,v,k]);const L=o(R=>R.chargeCardConfigState.receiptRequiredAboveAmount.amount);r.useEffect(()=>{M.fetchState==="Not-Started"&&s(ca(!1,!1,!1))},[M.fetchState,s]);const l=r.useMemo(()=>P.map(Ro),[P]),p=r.useMemo(()=>u.map(Bo),[u]),N=r.useMemo(()=>M.cards.filter(R=>!dr(R.status.code)).map(Dr),[M.cards]);Ft({isDataReady:I!=null});const G=r.useMemo(()=>{if(I!=null)return Zc({draft:I,cardRows:N,categorySearchOptions:l,vendorSearchOptions:p,defaultRequireReceiptAmount:L,suggestedAllowMerchants:F,suggestedBlockMerchants:C,suggestedAllowCategories:h,suggestedBlockCategories:w})},[I,N,l,p,L,F,C,h,w]),[O,U]=r.useState(void 0),z=r.useRef(!1);r.useEffect(()=>{z.current||O!=null||G==null||(z.current=!0,U(G))},[O,G]);const Z=r.useCallback(R=>{U(R)},[]),y=r.useMemo(()=>Lt(R=>{s($a(R))},250),[s]);r.useEffect(()=>()=>{y.cancel()},[y]);const x=r.useCallback(R=>{y(R)},[y]),Y=d.updateFetchState.fetchState,q=t!=null?`/${t}/cards/policy`:"..",E=r.useCallback(()=>{const R=_e(n.state?.pathnameStackToGoBack),T=R.poppedPathname??q;e(T,{state:{pathnameStackToGoBack:R.newStack}})},[n.state,e,q]),V=r.useCallback(()=>{e(q)},[e,q]),J=r.useCallback(R=>{if(a==null)return;const T=lr(R);s(hs(T)),s(fs(a))},[s,a]),X=r.useRef(Y);r.useEffect(()=>{const R=X.current;X.current=Y,Y==="Completed"&&R!=="Completed"&&(s(ze({messageSection:"card_policy_updated",messageText:"success",type:"success"})),e(q))},[s,Y,e,q]);const S=Y==="Error"?d.updateFetchState.error?.message??xo.updatePolicyGenericErrorMessage:void 0;return!f||t==null||a==null?c.jsx(Sa,{to:"..",replace:!0}):O!=null&&j==="Completed"&&M.fetchState==="Completed"?c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:g,handleDrawerToggle:i}),c.jsx(Yc,{templateName:d.template?.name??"",formDraft:O,vendorSearchOptions:p,categorySearchOptions:l,isVendorSearchLoading:v==="In-Progress",onVendorSearchTextChange:x,submitState:Y,submitErrorMessage:S,isAiCfoAccessEnabled:B,onAskAiCfoClick:D,onBackClick:E,onCancelClick:V,onClickMenuIcon:m,onFormChange:Z,onSubmit:J})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:g,handleDrawerToggle:i}),c.jsx(ur,{showUploadDocumentSection:!1,navBarTitle:d.template?.name,onBackClick:E,onClickMenuIcon:m,isAiCfoAccessEnabled:B,onAskAiCfoClick:D})]})}function _r(e,n,t){return n?e.filter(a=>a!=null&&a.trim().length>0).slice(0,t):[]}function Pr(e){return o(n=>e==null||e===""?{chips:ht,isResolved:!1}:function(t){const a=t?.fetchState,s=a==="Completed"||a==="Error";return{chips:a==="Completed"?t?.suggestedQuestions??ht:ht,isResolved:s}}(gs(n,e)),Dt)}const ht=[],{spendManagement:{chargeCard:{cardPolicyAiCfoHero:{headline:Oo,subheadline:Uo,pageTitle:jo}}}}=Xe.getLocalizedStrings(),Mo=e=>{const n=e.cardsCount>0?e.cardsCount:e.appliedCards.length,t=e.allowedEntity.merchantNames.length+e.blockedEntity.merchantNames.length,a=e.allowedEntity.categoryCodes.length+e.blockedEntity.categoryCodes.length;return{templateId:e.templateId,name:e.name,description:e.description,mode:e.mode==="flexible"?"flexible":"strict",createdAtFormatted:e.createdAt.format("ll"),cardsCount:n,vendorRestrictionsCount:t,categoryRestrictionsCount:a}};function No(){const e=de(),n=Ce(),{tenantEmailDomain:t}=Me(),a=pe(),s=Fe(),b=Pe(s?.loggedInUserRoleMap),[f,g]=r.useState(!1),_=r.useCallback(y=>{g(y)},[]),i=r.useCallback(()=>{_(!0)},[_]),{useFeatureGate:m}=le(),{isFeatureEnabled:B}=m(W.isAiCfoFileUploadEnabled),{isFeatureEnabled:D}=m(W.isCardPolicyEnabled),{isAiCfoAccessEnabled:d,onAskAiCfoClick:j}=xa({mobileExploreReferrer:"Card Policy"}),P=o(y=>bs(y)),F=o(y=>xn(y.createCardPolicyState)),C=o(y=>Ss(y.createCardPolicyState)),h=o(y=>C==null?[]:Un(y.aiCfoState,C).filter(x=>x.kind==="creating_policy"),Dt),w=F.fetchState==="In-Progress"?Math.max(h.length,1):0,u=o(y=>ys(y.createCardPolicyState)),v=ya(F.fetchState);r.useEffect(()=>{if(v==="In-Progress"&&F.fetchState==="Completed"&&C!=null)h.forEach(y=>{a(St({chatSessionId:C,id:y.id,entityIds:u,kind:"created_policy"}))});else if(v==="In-Progress"&&F.fetchState==="Error"&&C!=null){h.forEach(x=>{a(St({chatSessionId:C,id:x.id,kind:"errored_policy"}))});const y=F.error?.message!=null&&F.error.message.length>0?F.error.message:Xe.getLocalizedStrings().common.errorMessage.somethingWentWrongPleaseTryAgain;a(ze({messageSection:"card_policy_created",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:y}]}))}},[F.error?.message,F.fetchState,a,C,u,h,v]);const k=P.fetchState.fetchState;r.useEffect(()=>{k!=="Not-Started"&&k!=="Error"||a(Is())},[a,k]);const M=P.archiveFetchState.fetchState,A=ya(M);r.useEffect(()=>{A==="In-Progress"&&M==="Completed"&&a(ze({messageSection:"card_policy_deleted",messageText:"success",type:"success"}))},[M,a,A]);const I=r.useMemo(()=>P.templates.map(Mo),[P.templates]);Ft({isDataReady:P.fetchState.fetchState==="Completed"});const L=I.length>0||w>0,l=function(y){const{hasAnyPolicies:x,isChargeCardAdmin:Y,isFileUploadEnabled:q}=y,E=de(),V=Ce(),{tenantEmailDomain:J}=Me(),{isAiCfoOpen:X,setIsAiCfoOpen:S}=mr(),R=Cr(),T=pr(),ee=o(ce=>On(ce)).createSessionAndSubmitState.fetchState==="In-Progress",{chips:K,isResolved:ke}=Pr("card_policy"),be=r.useMemo(()=>_r(K,ke,3),[K,ke]),[ge,ae]=r.useState(""),ue=T&&R&&J!=null&&!X,oe=r.useCallback(ce=>{if(J==null)return;const Ea=ye(V.state?.pathnameStackToGoBack,V.pathname);E(`/${J}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Ea,referrer:"card_policy_hero",aiCfoInitialQuestion:ce,aiCfoShouldSubmit:ce!=null&&ce.trim().length>0}})},[V.pathname,V.state,E,J]),te=r.useCallback(ce=>{ce.trim().length!==0&&(ae(""),oe(ce))},[oe]),Ye=r.useCallback(()=>{const ce=ge.trim();ce.length!==0&&(ae(""),oe(ce))},[ge,oe]),Ee=r.useCallback(()=>{},[]),ne=r.useCallback(ce=>{ae(ce)},[]),We=r.useCallback(()=>{S(!0)},[S]),Be=r.useCallback(()=>{oe(void 0)},[oe]);return r.useMemo(()=>{if(ue&&!x&&Y)return{aiAgentName:jo,headline:Oo,subheadline:Uo,promptChips:be,composer:{currentInput:ge,isSubmitting:ee,isFileUploadEnabled:q,onInputChange:ne,onSubmit:Ye,onStopSubmit:Ee},onPromptClick:te,onOpenSidePanel:We,onOpenFullView:Be,dataTestIdPrefix:"card-policy-ai-cfo-hero"}},[ge,x,ue,Y,q,ee,ne,Be,We,te,Ee,Ye,be])}({hasAnyPolicies:L,isChargeCardAdmin:b,isFileUploadEnabled:B}),p=D&&l!=null?c.jsx(hr,{...l}):null,N=d&&p==null,G=r.useCallback(()=>{const y=_e(n.state?.pathnameStackToGoBack),x=y.poppedPathname??"..";e(x,{state:{pathnameStackToGoBack:y.newStack}})},[n.state,e]),O=r.useCallback(()=>{t!=null&&e(`/${t}/cards/policy/new`)},[e,t]),U=r.useCallback(y=>{t!=null&&e(`/${t}/cards/policy/${y}/edit`)},[e,t]),z=r.useCallback(y=>{a(ks(y))},[a]),Z=P.fetchState.fetchState;return!L&&Z!=="Completed"&&Z!=="Error"?c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:_}),c.jsx(Wc,{onBackClick:G,onNewPolicyClick:O,onClickMenuIcon:i,isAiCfoAccessEnabled:d,onAskAiCfoClick:j})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:f,handleDrawerToggle:_}),c.jsx(Kc,{policies:I,archivingTemplateId:P.archiveTargetTemplateId,pendingCreationCount:w,onBackClick:G,onNewPolicyClick:O,onEditPolicyClick:U,onArchivePolicyClick:z,onClickMenuIcon:i,policyAiCfoHero:p,isAiCfoAccessEnabled:N,onAskAiCfoClick:j})]})}function Vo(){const e=de(),{cardId:n}=Me(),t=pe(),a=re.getSignedInUser(),s=o(K=>fe(K)),b=Fe(),f=Pe(b?.loggedInUserRoleMap),{useFeatureGate:g}=le();if(a==null)throw Error("Can't access Add To Wallet Page without signing in...");const[_,i]=r.useState(!1),m=o(K=>Ja(K).firstViewAfterActivation);if(n==null)throw Error("Empty card id is not valid...");const B=s.userRole.includes("charge_card_user"),{isFeatureEnabled:D}=g(W.isChargeCardFeatureEnabled),d=!!s.companyChargeCardInfo?.info?.isChargeCardEnabled,{isFeatureEnabled:j}=g(W.isDebitCardFeatureEnabled),P=we(s),F=ve(s),C=Te(j,s),h=s.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,w=xe({isDebitCardFeatureEnabled:j,isBankingOnlyTenant:C}),u=Re({isCardsOnlyTenant:P,isChargeCardFeatureEnabled:D,isBookKeepingTenant:F,isDebitCardProductVisible:w,chargeCardsCreditAccountLimit:h}),v=!!s.companyDebitCardInfo?.info?.isDebitCardEnabled,k=o(K=>oa(K,s.companyId)),M=ia(k.controllers),{creditAccount:A,creditAccountRepayment:I}=o(K=>da(K)),L=o(K=>K.classListState.fetchState),l=!B&&u&&d,p=o(K=>_t(K,n,l,u)),[N,G]=r.useState(!1),O=p.chargeCard,U=O?.cardCreatedByUser?.userId,z=o(K=>U!=null?za(K.userRoleState,U):void 0),Z=z?.accountingClassIDs[0],y=o(K=>Z!=null?Za(K.classState,{classId:Z,reportId:"class_list"}):void 0),x=O?.cardHolderUser?.userId,Y=o(K=>x!=null?za(K.userRoleState,x):void 0),q=Y?.accountingClassIDs[0],E=o(K=>q!=null?Za(K.classState,{classId:q,reportId:"class_list"}):void 0),V=O?.type.code==="business_physical_credit_card"||O?.type.code==="business_physical_debit_card",J=O?.type.code==="business_physical_debit_card";r.useEffect(()=>{m&&_===!1&&V&&(i(!0),setTimeout(()=>{t(Ya()),J&&t(ze({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))},5e3))},[m,_,V,J]),r.useEffect(()=>{N||p.fetchState==="Completed"||p.fetchState==="In-Progress"||n==null||(G(!0),t(ka(n,l,!1)))},[N,p,n,t]),r.useEffect(()=>{if(p.fetchState==="Completed"&&(V===!1||V&&O?.status?.code!=="active"||O?.cardHolderUserId!==a.userId||m===!1&&_===!1||O?.type.code==="business_physical_debit_card"||O?.type.code==="business_virtual_debit_card")){const K=Ae(s.tenantEmailDomain,n,a,O,m);e(K)}},[p.fetchState,m,V]),r.useEffect(()=>{A.fetchState!=="Completed"&&A.fetchState!=="In-Progress"&&u&&d&&f&&t(Je()),I.fetchState!=="Completed"&&I.fetchState!=="In-Progress"&&u&&d&&f&&t(Pt()),L!=="Completed"&&L!=="In-Progress"&&t(jn())},[A.fetchState,I.fetchState,t,u,d,f,L]);const X=()=>{if(a!=null&&n!=null){t(Ya());const K=Ae(s.tenantEmailDomain,n,a);e(K)}},S=O?.type.code==="business_physical_debit_card"||O?.type.code==="business_virtual_debit_card",R=Qe(u,w,v,d),T=Ra(u,d,f,A,I),ee=yr(S,p);return p.fetchState!=="Completed"?c.jsx(va,{fetchState:"In-Progress"}):c.jsxs(c.Fragment,{children:[c.jsx(rt,{showConfetti:m}),c.jsx(qc,{onGotItClick:X,isDebitCard:O?.type.code==="business_physical_debit_card",controllerEmails:M,isChargeCardFeatureEnabled:u,isDebitCardFeatureEnabled:w,isDebitCardSetupEnabled:v,isChargeCardSetupEnabled:d,productInformation:R,creditAccountInformation:T,debitAccountInformation:ee,chargeCardDetailView:p,creditAccount:A,classListFetchState:L,creditAccountRepayment:I,cardIssuedByRoles:z?.userRoles,cardIssuedByDepartmentName:y?.className,cardHolderRoles:Y?.userRoles,cardHolderDepartmentName:E?.className})]})}const jt=e=>{const{events:n,onEvent:t,onSubscribed:a}=e,s=Jc(),b=r.useRef(t),f=r.useRef(a),g=r.useRef(0);r.useEffect(()=>{b.current=t},[t]),r.useEffect(()=>{f.current=a},[a]);const _=r.useMemo(()=>[...n].sort().join("|"),[n]);r.useEffect(()=>{if(s==null||n.length===0)return;const i=[],m=new Set,B=()=>{if(f.current==null)return;const D=Date.now();D-g.current<5e3||(g.current=D,f.current())};return n.forEach(D=>{const[d,j]=Qc(D);if(j==="")return;const P=s.channel(d),F=h=>{b.current(j,h)};let C;if(P?.subscribed===!0)C=P,C.bind(j,F),m.has(d)||(m.add(d),B()),i.push(()=>{P.unbind(j,F)});else{if(C=P??s.subscribe(d),C.bind(j,F),!m.has(d)){m.add(d);const h=()=>{B()};C.bind("pusher:subscription_succeeded",h),i.push(()=>{C.unbind("pusher:subscription_succeeded",h)})}i.push(()=>{C.unbind(j,F)})}}),()=>{i.forEach(D=>D())}},[s,_])},wr="charge-card-transaction-update",vr="charge-card-transaction-created",Tr="charge-card-transaction-declined",Fr="charge-card-transaction-updated",xr="charge-card-transaction-receipt-uploaded",ma="charge-card-status-update",Mt="charge-card-spending-updated",it="credit-account-balance-updated",dt="charge-card-created",Nt="charge-card-limit-updated",Vt="charge-card-limit-reset",Ht="charge-card-renamed",Ho="charge-card-department-updated",Rr="charge-card-repayment-completed",Br="charge-card-payment-date-updated",Ba="charge-card-cashback-redeemed",La="charge-card-cashback-earned",Ca=(e,n)=>e==null||e===""?[]:n.map(t=>`private-encrypted-${e}.${t}`),Go=[La,Ba],$o=De(function(e){const n=la(e);return{insightsData:n.insight,cashbackByPeriod:n.cashbackByPeriod,uiState:n.uiState,cashbackSummary:n.cashbackSummary}},function(e){return{onColumnSortConfigChanged:(n,t)=>{e(Es({uiState:{sortKey:n,sortOrder:t}}))}}})(eo);function zo(){const e=de(),n=pe(),t=Ce(),a=re.getSignedInUser(),s=o(j=>fe(j)),{useFeatureGate:b}=le(),{isFeatureEnabled:f}=b(W.isCardsCommentingEnabled),[g,_]=r.useState(!1),i=o(j=>la(j)),m=Ar(s.companyId,{clearParams:i.fetchState==="Completed"}),B=r.useCallback(()=>{const j=_e(t.state?.pathnameStackToGoBack),P=j.poppedPathname??Zo(s.tenantEmailDomain);e(P,{state:{pathnameStackToGoBack:j.newStack}})},[e,t,s.tenantEmailDomain]),D=ea(s);if(jt({events:Ca(D,Go),onEvent:j=>{switch(j){case La:case Ba:return void n(_a(!0))}},onSubscribed:()=>{n(_a(!0))}}),r.useEffect(()=>{g||i.fetchState==="Completed"||i.fetchState==="In-Progress"||(_(!0),n(_a()))},[g,i,n]),a==null)throw Error("Can't access cashback detail page without signing in...");const d=i.cashbackSummary?.cashbackEarned?.amount!=null&&i.fetchState!=="Not-Started";return i.fetchState!=="In-Progress"||d?(i.cashbackSummary?.cashbackEarned?.amount??0)===0&&i.fetchState==="Completed"?c.jsx(ot,{}):c.jsx($o,{onBackClick:B,isCardsCommentingEnabled:f,initialOpenThreadRequest:m}):c.jsx(Xc,{onBackClick:B})}const Zo=e=>`/${e}/cards`,Yo={containerWidth:new Fa(100,58)},Wo=({appContent:e})=>{const n=Ta(),t=pe(),a=de(),{cardId:s}=Me(),b=Ce(),{useDynamicConfig:f}=le(),[g,_]=r.useState(!1),[i,m]=r.useState(!1),[B,D]=r.useState(!1),[d,j]=r.useState(!1),P=re.getSignedInUser();if(P==null)throw Error("Can't access onboarding card page without signing in...");const F=o(E=>fe(E));if(s==null)throw Error("Empty card id is not valid...");const{configValue:C}=f(Ze.zeniCardsConfig),h=C.max_charge_card_activation_attempts_by_card_id,w=o(E=>As(E,s)),u=w.chargeCard,v=o(E=>E.chargeCardConfigState.fetchState),{useFeatureGate:k}=le(),{isFeatureEnabled:M}=k(W.isChargeCardFeatureEnabled),{isFeatureEnabled:A}=k(W.isDebitCardFeatureEnabled),I=Te(A,F),L=xe({isDebitCardFeatureEnabled:A,isBankingOnlyTenant:I}),l=!!F.companyChargeCardInfo?.info?.isChargeCardEnabled,p=F.userRole.includes("charge_card_user"),N=we(F),G=ve(F),O=F.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,U=Re({isCardsOnlyTenant:N,isChargeCardFeatureEnabled:M,isBookKeepingTenant:G,isDebitCardProductVisible:L,chargeCardsCreditAccountLimit:O}),z=!p&&U&&l;r.useEffect(()=>{g===!1&&v!=="In-Progress"&&v!=="Completed"&&(t(Qa()),_(!0)),i===!1&&w.fetchState==="Not-Started"&&(m(!0),t(ka(s,z,U)))},[i,w.fetchState,g,v]);const Z=u?.type.code==="business_physical_credit_card"||u?.type.code==="business_physical_debit_card";r.useEffect(()=>{if(w.fetchState==="Completed"){if(B===!1&&(Z===!1||Z&&u?.status?.code!=="inactive"||u?.cardHolderUserId!==P.userId)){const E=Ae(F.tenantEmailDomain,s,P,u,!0),V=ye(b.state?.pathnameStackToGoBack,b.pathname);a(E,{state:{pathnameStackToGoBack:V}})}else if(B&&w.isRefreshingViewInBackground===!1&&u?.status?.code==="active"){t(Ds({chargeCardId:s}));const E=Ae(F.tenantEmailDomain,s,P,u,!0),V=ye(b.state?.pathnameStackToGoBack,b.pathname);t(Xa()),a(E,{state:{pathnameStackToGoBack:V}})}}},[w.fetchState,u?.type.code,B,w.isRefreshingViewInBackground]);const y=re.getZeniOtpTokenForCardHolder(s),x=o(E=>Mn(E.userState,P.userId)),Y=()=>{u?.status?.code!=="active"&&t(ga(s,!0))};r.useEffect(()=>{w.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&u?.cardActivationAttemptHistory.some(E=>E.statusCode==="success")===!0&&B===!1&&(setTimeout(Y,3e3),D(!0))},[w.updatePhysicalChargeCardAttemptFetchState.fetchState,u?.cardActivationAttemptHistory]);const q=E=>{j(E)};if(v!=="Completed"||u==null)return c.jsx(va,{fetchState:"In-Progress"});if(u.shippingAddressId==null)throw Error("Can't access shippingAddressId.");if(x?.phone==null)throw Error("Can't access user phone number.");return c.jsxs(Jo,{children:[c.jsx(Ie,{isAppContentDrawerOpen:d,handleDrawerToggle:q}),c.jsx(Ko,{cardId:s,card:u,shippingAddressId:u.shippingAddressId,phone:x.phone,signedInUser:P,isSandboxEnv:xt(),chargeCardDetailState:w,signedInUserToken:y,navigate:a,currentTenant:F,location:b,maxChargeCardActivationAttempts:h[s]!=null?h[s]:C.default_max_charge_card_activation_attempts!=null?C.default_max_charge_card_activation_attempts:3,chargeCardCashbackRatePerTransaction:C.charge_card_cashback_rate_per_transaction!=null?C.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{q(!0)}}),e!=null?c.jsx(qo,{windowSize:n,children:e}):null]})},Ko=De(function(e,{chargeCardDetailState:n,shippingAddressId:t,location:a,cardId:s}){const b=_s(e.addressState,t);if(b==null)throw Error("Can't access shippingAddress.");const f=Nn(e,s),g=n.updateStatus,_=ua(e,!1,!1,!1);let i=!1;_.fetchState==="Completed"&&_.cards.length<=1&&(i=!0);const m=a.state?.message==="comingFromV2UrlPath";return{showActivatePage:n.chargeCard?.providerCardCreateTime!=null&&n.chargeCard.providerCardCreateTime.add(24,"h").isBefore(Ps())||m,showMenuIcon:i,shippingAddress:b,vgsVaultId:st.cardVaultId,twoFAView:f,activationWaitStatus:g,isRefreshingViewInBackground:n.isRefreshingViewInBackground}},function(e,n){const{navigate:t,cardId:a,location:s,currentTenant:b,chargeCardDetailState:f}=n,g=f.chargeCard?.cardProviderID,{tenantEmailDomain:_}=b;return{onGetOtp:i=>{g!=null&&e(tt(i,"ChargeCardHolder",a))},onUpdatePhysicalChargeCardAttempt:i=>{e(vs(a,i))},onResendOtp:i=>{g!=null&&e(at(i,"ChargeCardHolder",a))},onVerifyOtp:(i,m)=>{g!=null&&e(et(i,m,"ChargeCardHolder",a))},onVerifyOtpSuccess:i=>{i!=null&&re.saveZeniOtpTokenForCardHolder(i,a)},onCVVActivateSuccess:()=>{e(ws({chargeCardId:a}))},onBackClick:()=>{const i=_e(s.state?.pathnameStackToGoBack),m=i.poppedPathname==null||i.poppedPathname.includes("onboard")===!0?aa(_):i.poppedPathname;t(m,{state:{pathnameStackToGoBack:i.newStack}})}}})(ao),qo=Ne.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
width: ${e=>`${Yo.containerWidth.value(e.windowSize)}%`};
|
|
5
|
-
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
6
|
-
`,Jo=Ne.div`
|
|
7
|
-
display: flex;
|
|
8
|
-
min-height: 100%;
|
|
9
|
-
width: 100%;
|
|
10
|
-
flex: 1 1 auto;
|
|
11
|
-
flex-direction: column;
|
|
12
|
-
align-items: center;
|
|
13
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
14
|
-
`,Ka=Xe.getLocalizedStrings().dateFormat,Qo={overlayWidth:new Fa(100,100,58)},Lr=[Rr,it],Xo=new Set(Lr),ei=De(function(e,n){const t=n.currentTenant?.companyId;return{plaidConnectionDetails:Rs(e,t,"zeni_accounts","external_account").plaidConnectionDetails,depositAccountListView:Bs(e.depositAccountState,e.depositAccountListState)}},function(e,n){const{navigate:t,currentTenant:a,hasZeniAccountsAdminAccess:s,isZeniAccountsUser:b,isCashbackInfoFetchStateCompleted:f,isCreditCardInfoFetchStateCompleted:g,isDebitCardInfoFetchStateCompleted:_,controllerEmails:i,paymentDetails:m,productInformation:B,cashbackInformation:D,paymentSourceInformation:d,creditAccountInformation:j,debitAccountInformation:P,paymentInitiatedDate:F,sourcePage:C}=n,{tenantEmailDomain:h}=a,w=()=>{e(Gn(!0));const u=ea(a);u!=null&&u!==""&&e(Pa(u,!0,!0)),e(Je(!0))};return{onBackNavigation:()=>{if(f&&g&&_&&D!=null&&Q.trackCardsPayEarlyFormClick(i,B,D,"Back",m.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:m.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:m.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:m.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:m.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:F?.add(3,"day").format(Ka.visual.MMMDCommaYYYYformat),paymentInitiatedDate:F?.format(Ka.visual.MMMDCommaYYYYformat)},d,j,P),C==="cardPaymentHistory")n.closeDrawerHandler(!0),e($n());else{const u=aa(h);t(u)}},onUpdatePaymentAccountStatus:(u,v,k)=>{e(Us(u,v,"bill_pay","bill_pay_detail",k))},onEstablishConnectionSuccess:()=>{e(Pa(a.companyId,!0))},onFetchLinkTokenClick:u=>{e(Os("external_account",u))},onEstablishConnectionClick:u=>{e(Ls(u,a.companyId,"charge_card_payment","charge_cards"))},onSignUpAccountClick:()=>{s?window.open(`/${h}/checking/promo`,"_blank"):window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")},onMoveMoneyClick:()=>{b?window.open(`/${h}/checking/transfer`):window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")},onEventReceived:u=>{Xo.has(u)&&w()},onPusherSubscribed:w}})(ct(to)),Gt=({isPaymentDrawerOpen:e,closeDrawerHandler:n,pageName:t,creditAccountSpentAmount:a,productInformation:s,sourcePage:b,creditAccountInformation:f,debitAccountInformation:g,cashbackInformation:_,isDebitCardInfoFetchStateCompleted:i,isCreditCardInfoFetchStateCompleted:m,isCashbackInfoFetchStateCompleted:B,paymentInitiatedDate:D,retryRepayment:d})=>{const j=de(),{useDynamicConfig:P}=le(),{configValue:F}=P(Ze.zeniAccountsConfig),C=Ts(F),h=o(R=>Vn(R)),{creditAccount:w}=o(R=>da(R)),u=o(R=>fe(R)),v=Rt(),k=Ta(),M=pe(),A=re.getSignedInUser(),I=Fe(),[L,l]=r.useState(!1),[p,N]=r.useState(!1),{configValue:G}=P(Ze.zeniCardsConfig),O=G.credit_card_auto_pay_threshold_by_company_id?.[u.companyId]??G.default_credit_card_auto_pay_threshold??Eo,U=Hn(I?.loggedInUserRoleMap),z=Fs(I?.loggedInUserRoleMap),Z=!!u.companyZeniAccountInfo?.info?.isZeniAccountEnabled,y=o(R=>wa(R,u.companyId)),x=y.companyChargeCardInfo?.primaryFundingAccount,Y=y.allFundingAccounts.find(R=>R.id===x?.accountId),q=o(R=>oa(R,u.companyId)),E=ia(q.controllers);r.useEffect(()=>{if(h.fetchState!=="Completed"&&h.fetchState!=="In-Progress"&&M(Gn()),h.fetchState==="Completed"&&!p){const R=u.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,T=h.transferFromAccounts.find(K=>K.id===R);let ee;if(b==="cardPaymentHistory"&&d){const K=d.paymentAccountId!=null?h.transferFromAccounts.find(ke=>ke.id===d.paymentAccountId):void 0;ee={amount:d.amount,isAutoRepayment:u.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:hn(),transferFrom:K??T}}else ee={amount:{amount:w.balance.amount+w.hold.amount,currencyCode:w.balance.currencyCode,currencySymbol:w.balance.currencySymbol},isAutoRepayment:u.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:hn(),transferFrom:T};M(mn(ee)),N(!0)}},[h.fetchState,p,b,d,h.transferFromAccounts,u.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,u.companyChargeCardInfo?.info?.isAutoPayEnabled,w.balance.amount,w.balance.currencyCode,w.balance.currencySymbol,w.hold.amount,M]);const V={isZeniCheckingEnabled:u.companyZeniAccountInfo?.info?.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:Y?.accType==="depositAccount",creditCardPaymentSourceAccountName:Y?.label,creditCardPaymentSourceAccountType:Y?.accType,creditCardPaymentSourceLastFourDigits:Y?.accountLast4,creditCardPaymentSourceBalance:Y?.accountBalance?.available?.amount??0};if(r.useEffect(()=>{y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&M(Pa(u.companyId,!0))},[y.fetchState]),r.useEffect(()=>{h.updateStatus==="Completed"&&_!=null&&B&&m&&i&&Q.trackCardsPayEarlyPayNowClick(E,s,_,h.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:h.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:h.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:h.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:h.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:D?.add(3,"day").format(Ka.visual.MMMDCommaYYYYformat),paymentInitiatedDate:D?.format(Ka.visual.MMMDCommaYYYYformat)},V,f,g)},[h.updateStatus,_,B,m,i,D]),r.useEffect(()=>{h.fetchState==="Completed"&&_!=null&&B&&m&&i&&!L&&e&&p&&_!=null&&(Q.trackCardsPayEarlyFormView(E,s,_,t,u.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,w.balance.amount,V,f,g),l(!0))},[h,B,m,i,L,e,p]),A==null)throw Error("Can't access invite people page without signing in...");const J=()=>{n(!0),M($n())},X=ea(u),S={events:e?Ca(X,Lr):[],eventCallback:(R,T,ee)=>{ee.onEventReceived(R)},onSubscribed:R=>{R.onPusherSubscribed()}};return c.jsx(c.Fragment,{children:c.jsx(Sr,{onClose:()=>{J()},anchor:"right",transitionDuration:250,open:e,PaperProps:{style:{width:Qo.overlayWidth.valuePercentage(k),boxShadow:"none"}},slotProps:{backdrop:{style:{backgroundColor:v.colors.black,opacity:.75,cursor:"pointer"}}},children:c.jsx(ai,{onClick:R=>R.stopPropagation(),children:c.jsx(ei,{...S,closeDrawerHandler:n,navigate:j,paymentDetails:h,creditAccountSpentAmount:a,onTransferClick:()=>{B&&m&&i&&_!=null&&Q.trackCardsPayEarlyFormClick(E,s,_,"Pay Now",h.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:h.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:h.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:h.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:h.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:void 0,paymentInitiatedDate:void 0},V,f,g),M(xs({companyId:u.companyId}))},onDismissClick:J,onSaveChangesToLocalStore:R=>{M(mn(R))},currentTenant:u,hasZeniAccountsAdminAccess:U,isZeniAccountsUser:z,isZeniAccountSetupEnabled:Z,productInformation:s,sourcePage:b,controllerEmails:E,autoPayThreshold:O,paymentSourceInformation:V,creditAccountInformation:f,debitAccountInformation:g,cashbackInformation:_,isCashbackInfoFetchStateCompleted:B,isCreditCardInfoFetchStateCompleted:m,isDebitCardInfoFetchStateCompleted:i,paymentInitiatedDate:D,maxInsuredAmount:C.maxInsuredAmount})})})})},ai=Ne(ko)`
|
|
15
|
-
display: flex;
|
|
16
|
-
min-height: 100%;
|
|
17
|
-
flex-direction: column;
|
|
18
|
-
`,$t=e=>e!=null&&typeof e=="object"?e:null,ie=e=>typeof e=="string"?e:void 0,Ue=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,qa=e=>e!=null&&typeof e=="object"&&typeof e.code=="string"&&typeof e.name=="string",ft=e=>{if(e==null||typeof e!="object")return!1;const n=e;return typeof n.transaction_id=="string"&&typeof n.amount=="number"&&typeof n.currency_code=="string"&&typeof n.currency_symbol=="string"&&typeof n.direction=="string"&&!!qa(n.transaction_status)&&!!qa(n.transaction_type)},zt=(e,n)=>{const t=e?.card_status;if(!qa(t))return null;const a=e?.is_locked_by_admin;return{cardId:n,cardStatus:t,isLockedByAdmin:typeof a=="boolean"?a:void 0}},Et=[wr,vr,Tr,Fr,xr,ma,Mt,it,Nt,Vt,Ht],Or=[La,Ba],ti=new Set([...Et,...Or]),gt=Xe.getLocalizedStrings().dateFormat,ni=De(function(e,n){const{includeCreditAccountInfo:t,cardId:a,signedInUserToken:s,isChargeCardFeatureEnabled:b}=n,f=re.getSignedInUser(),g=e.tenantState.currentTenantId,_={userId:f?.userId??"",sessionId:f?.zeniSessionId??"",tenantId:g??""},i=_t(e,a,t,b),m=Zs(e,a),B=Ys(e);return{chargeCardDetailView:i,chargeCardsRecurringExpensesState:m,vgsVaultId:st.cardVaultId,transactionAttachmentsEndpointToFetch:`${kt}/card_transaction_attachments`,transactionAttachmentEndpointToDownload:`${kt}/card_transaction_attachment`,authParams:_,isSnackbarOpen:B.isSnackbarOpen,cardsEndPoint:`${fr.cardMicroServiceBaseUrl}`,signedInUserToken:i.twoFAView.token??s}},function(e,n){const{cardId:t,currentTenant:a,navigate:s,location:b,cardProviderId:f,includeCreditAccountInfo:g,setIsPaymentOpen:_,controllerEmails:i,productInformation:m,cashbackInformation:B,primaryFundingAccountDetails:D,creditAccountInformation:d,debitAccountInformation:j,isChargeCardFeatureEnabled:P}=n,{tenantEmailDomain:F}=a;return{onEventReceived:(C,h)=>{(({event:w,data:u,cardId:v,dispatch:k,subscribedEvents:M})=>{const A=$t(u);switch(w){case La:case Ba:return void k(_a(!0));case wr:{const I=ie(A?.card_id);if(I==null||I!==v)return;const L=ie(A?.transaction_id),l=A?.transaction_status;return L!=null&&qa(l)?void k($s({transactionId:L,transactionStatus:l})):void k(ra(v,null,null,!0))}case ma:{const I=ie(A?.card_id)??v;if(I!==v)return;const L=zt(A,I);return L!=null?void k(wt(L)):void k(ga(v,!0))}case Mt:{const I=ie(A?.card_id)??v;if(I!==v)return;const L=ie(A?.currency_code),l=ie(A?.currency_symbol),p=Ue(A?.balance);return L!=null&&l!=null&&p!=null?(k(Gs({cardId:I,currencyCode:L,currencySymbol:l,balance:p,hold:Ue(A?.hold),dailyPurchaseSpends:Ue(A?.daily_purchase_spends),monthlyPurchaseSpends:Ue(A?.monthly_purchase_spends),dailyWithdrawals:Ue(A?.daily_withdrawals),monthlyWithdrawals:Ue(A?.monthly_withdrawals)})),void k(Je(!0))):(k(ga(v,!0)),void k(Je(!0)))}case it:{const I=ie(A?.currency_code),L=ie(A?.currency_symbol),l=Ue(A?.available_amount),p=Ue(A?.balance_amount);return I!=null&&L!=null&&l!=null&&p!=null?void k(Hs({currencyCode:I,currencySymbol:L,available:l,balance:p,hold:Ue(A?.hold_amount),cashback:Ue(A?.cashback_amount)})):void k(Je(!0))}case vr:{const I=ie(A?.card_id)??v;if(I!==v)return;const L=A?.transaction;return ft(L)?void k(Vs({cardId:I,transaction:L})):void k(ra(v,null,null,!0))}case Tr:{const I=ie(A?.card_id)??v;if(I!==v)return;const L=A?.transaction;return ft(L)?void k(Ns({cardId:I,declineReason:ie(A?.decline_reason),transaction:L})):void k(ra(v,null,null,!0))}case Fr:{const I=ie(A?.card_id)??v;if(I!==v)return;const L=A?.transaction;return ft(L)?void k(Ms({cardId:I,transaction:L})):void k(ra(v,null,null,!0))}case xr:{const I=ie(A?.card_id)??v;if(I!==v)return;const L=ie(A?.transaction_id),l=A?.attachment_file_paths;return L!=null&&Array.isArray(l)&&l.every(p=>typeof p=="string")?void k(js({cardId:I,transactionId:L,attachmentFilePaths:l})):void k(ra(v,null,null,!0))}case Nt:case Vt:case Ht:{const I=ie(A?.card_id);if(I==null||I!==v)return;k(ga(v,!0))}}})({event:C,data:h,cardId:t,dispatch:e,subscribedEvents:ti})},onPusherSubscribed:()=>{e(ga(t,!0)),e(ra(t,null,null,!0)),e(Je(!0))},onReloadTransactions:()=>{e(ka(t,g,P))},onFetchChargeCardTransactionList:(C,h)=>{e(ra(t,C,h))},onUpdateScrollYOffset:C=>{},onGetOtp:C=>{f!=null&&e(tt(C,"ChargeCardHolder",t))},onResendOtp:C=>{f!=null&&e(at(C,"ChargeCardHolder",t))},onVerifyOtp:(C,h)=>{f!=null&&e(et(C,h,"ChargeCardHolder",t))},onVerifyOtpSuccess:C=>{C!=null&&re.saveZeniOtpTokenForCardHolder(C,t)},onColorCodeChange:C=>{e(Xs(t,C))},onLockChargeCard:(C,h)=>{e(Xn(C,t,h))},onUnlockChargeCard:C=>{e(Qn(C,t))},onCloseChargeCard:C=>{e(Jn(t,C))},onFetchChargeCardsRecurringExpenses:()=>{e(qn([t]))},updateChargeCardName:(C,h)=>{e(Kn(C,t,h))},updateChargeCardTransactionAttachments:(C,h)=>{h!=null&&e(Qs({transactionId:C,data:h}))},updateChargeCardTransactionUploadReceiptsFetchStatus:(C,h,w,u)=>{e(Js({chargeCardId:h,transactionId:C,fetchState:w,error:u}))},updateChargeCardTransactionReceiptsShowTick:(C,h,w)=>{e(qs({chargeCardId:h,transactionId:C,shouldShowTick:w}))},onChargeCardRevokeInviteClick:()=>{e(Wn(t))},updateChargeCardTransactionIsViewReceiptClicked:(C,h,w)=>{e(Ks({chargeCardId:h,transactionId:C,isViewReceiptClicked:w}))},onChargeCardTransactionRowClick:(C,h)=>{const w=ye(b.state?.pathnameStackToGoBack,b.pathname);s(`../../transaction/${C}/${h}`,{state:{pathnameStackToGoBack:w}})},onBackClick:()=>{const C=_e(b.state?.pathnameStackToGoBack),h=aa(F);s(h,{state:{pathnameStackToGoBack:C.newStack,message:"comingFromCardDetail"}})},removeSnackbar:()=>{e(Ws())},onUpdateDebitCardPinAttempt:C=>{e(Yn(t,C)),C==="success"&&e(ze({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(C,h)=>{C?e(ze({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):h!=null&&e(ze({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:h.message}]}))},updateSpendLimit(C,h,w,u){e(Zn(C,h,w.code,u))},shouldOpenCreditCardPaymentDrawer(C){C&&B!=null&&Q.trackCardsPayEarlyClick(i,m,B,"Card Detail","Text Button","Pay Now",{isZeniCheckingEnabled:a.company?.companyZeniAccountInfo.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:D?.accType==="depositAccount",creditCardPaymentSourceAccountName:D?.label,creditCardPaymentSourceAccountType:D?.accType,creditCardPaymentSourceLastFourDigits:D?.accountLast4,creditCardPaymentSourceBalance:D?.accountBalance?.available?.amount??0},d,j),_(C)}}})(ct(ro));function ri(){const e=de(),n=pe(),t=Ce(),{cardId:a}=Me(),[s,b]=r.useState(!1),[f,g]=r.useState(!1),{useDynamicConfig:_}=le(),i=re.getSignedInUser(),m=o(H=>fe(H)),B=o(H=>Ja(H).firstViewAfterActivation),D=o(H=>H.classListState.fetchState),{configValue:d}=_(Ze.documentAiReceiptMaxSizeLimitBytesConfig),{configValue:j}=_(Ze.zeniCardsConfig),P=j.enable_card_controls_for_company_ids,F=j.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(P)&&P.includes(m.companyId),[C,h]=r.useState(!1),[w,u]=r.useState(!1),{useFeatureGate:v}=le(),{isFeatureEnabled:k}=v(W.isChargeCardFeatureEnabled),{isFeatureEnabled:M}=v(W.isDebitCardFeatureEnabled),A=Te(M,m),I=xe({isDebitCardFeatureEnabled:M,isBankingOnlyTenant:A}),{isFeatureEnabled:L}=v(W.isEarlyPayFeatureEnabled),{isFeatureEnabled:l}=v(W.isCardsCommentingEnabled),p=ve(m),N=we(m),G=m.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,O=Re({isCardsOnlyTenant:N,isChargeCardFeatureEnabled:k,isBookKeepingTenant:p,isDebitCardProductVisible:I,chargeCardsCreditAccountLimit:G}),U=!!m.companyDebitCardInfo?.info?.isDebitCardEnabled,z=!!m.companyChargeCardInfo?.info?.isChargeCardEnabled,Z=!m.userRole.includes("charge_card_user")&&O&&z;if(a==null)throw Error("Empty card id is not valid...");const y=o(H=>wa(H,m.companyId)),{creditAccount:x,creditAccountRepayment:Y}=o(H=>da(H)),q=re.getZeniOtpTokenForCardHolder(a),E=o(H=>_t(H,a,Z,O)),{isAiCfoAccessEnabled:V,onAskAiCfoClick:J}=xa({mobileExploreReferrer:"Card Detail"});Ft({isDataReady:E.fetchState==="Completed"});const X=o(H=>la(H)),S=E.chargeCard,R=Fe(),T=Pe(R?.loggedInUserRoleMap),ee=S?.type.code==="business_physical_debit_card"||S?.type.code==="business_virtual_debit_card",K=S?.type.code==="business_physical_debit_card"||S?.type.code==="business_physical_credit_card",ke=S?.type.code==="business_virtual_debit_card"||S?.type.code==="business_virtual_credit_card",be=S?.type.code==="business_virtual_debit_card",ge=Ra(O,z,T,x,Y),ae=yr(ee,E),ue=Ot(T,X),oe=Qe(O,I,U,z),te=E.depositAccountLimitFetchState.fetchState!=="Completed"&&E.depositAccountLimitFetchState.fetchState!=="In-Progress",Ye=o(H=>oa(H,m.companyId)),Ee=ia(Ye.controllers),ne=o(H=>S?.cardCreatedByUser?.userId!=null?za(H.userRoleState,S?.cardCreatedByUser?.userId):void 0),We=o(H=>ne?.accountingClassIDs[0]!=null?Za(H.classState,{classId:ne?.accountingClassIDs[0],reportId:"class_list"}):void 0),Be=o(H=>S?.cardHolderUser?.userId!=null?za(H.userRoleState,S?.cardHolderUser?.userId):void 0),ce=o(H=>Be?.accountingClassIDs[0]!=null?Za(H.classState,{classId:Be?.accountingClassIDs[0],reportId:"class_list"}):void 0),Ea=m?.userRole,pa=o(H=>ua(H,!1,I,k).revokeCardInvite),ha=ya(pa.saveStatus.fetchState);if(r.useEffect(()=>{if(ha==="In-Progress"&&pa.saveStatus.fetchState==="Completed"){const H=aa(m.tenantEmailDomain);e(H)}},[ha,pa.saveStatus.fetchState,e,m.tenantEmailDomain]),r.useEffect(()=>{B&&s===!1&&ke&&(b(!0),setTimeout(()=>{n(Ya()),be&&n(ze({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))},5e3))},[B,s,ke,be]),r.useEffect(()=>{C||E.fetchState==="Completed"||E.fetchState==="In-Progress"||a==null||(h(!0),n(ka(a,Z,O,!1)))},[C,E,a,n]),r.useEffect(()=>{!w&&E.fetchState==="Completed"&&E.chargeCard?.connectedAccountId!=null&&ee&&te&&T&&(u(!0),n(zn({depositAccountId:E.chargeCard?.connectedAccountId})))},[w,E,n,te,T]),r.useEffect(()=>{X.fetchState!=="Completed"&&X.fetchState!=="In-Progress"&&T&&n(_a()),D!=="Completed"&&D!=="In-Progress"&&n(jn()),E.transactionStatistics.fetchState!=="Completed"&&E.transactionStatistics.fetchState!=="In-Progress"&&n(zs({chargeCardId:a})),y.fetchState!=="Completed"&&y.fetchState!=="In-Progress"&&n(Pa(m.companyId,!0))},[X.fetchState,n,T,D,E.transactionStatistics.fetchState,y.fetchState]),r.useEffect(()=>{if(!(E.fetchState!=="Completed"||O&&x.fetchState!=="Completed"||S==null||E.transactionStatistics.fetchState!=="Completed"||ee&&T&&E.depositAccountLimitFetchState.fetchState!=="Completed")){const H=S.type.code.includes("physical"),he=H?S.cardActivationAttemptHistory[0]?.timestamp:S.createTime;Q.trackCardsCardDetailView(Ee,oe,{cardId:a,cardName:S.cardName,cardType:S.type.code.includes("credit")?"credit":"debit",cardCategory:H?"physical":"virtual",cardLimit:ba(S.limit.amount),cardLastFourDigits:S.accountLast4,cardStatus:S.status.code,cardAssignedDate:S.createTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardIssuedDate:S.providerCardCreateTime?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardActivatedDate:he?.format(gt.analytics.MMMDashDDDashYYYYFormat),cardLimitFrequency:S.creditLimitFrequency.name,cardSpentAmount:ba(S.balance.amount),cardAvailableLimit:ba(S.available.amount),cardUtilizationPercent:S.limit.amount>0?Math.round((S.limit.amount-S.available.amount)/S.limit.amount*100):0,cardUtilizationAmount:ba(S.limit.amount-S.available.amount),totalNumberOfDeclinedTransactions:E.transactionStatistics.statistics.totalNumberOfDeclinedTransactions,numberOfDeclinedTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfDeclinedTransactionsCurrentMonth,totalNumberOfPaidTransactions:E.transactionStatistics.statistics.totalNumberOfPaidTransactions,numberOfPaidTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfPaidTransactionsCurrentMonth,totalNumberOfCanceledTransactions:E.transactionStatistics.statistics.totalNumberOfCanceledTransactions,numberOfCanceledTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfCanceledTransactionsCurrentMonth,totalNumberOfAuthorizedTransactions:E.transactionStatistics.statistics.totalNumberOfAuthorizedTransactions,numberOfAuthorizedTransactionsCurrentMonth:E.transactionStatistics.statistics.numberOfAuthorizedTransactionsCurrentMonth,totalNumberOfTransactionsWithReceipts:E.transactionStatistics.statistics.totalNumberOfTransactionsWithReceipts,numberOfTransactionsWithReceiptsCurrentMonth:E.transactionStatistics.statistics.numberOfTransactionsWithReceiptsCurrentMonth},{cardIssuedByName:It(S.cardCreatedByUser,!1),cardIssuedByEmail:S.cardCreatedByUser?.email,cardIssuedByUserId:S.cardCreatedByUser?.userId,cardIssuedByRole:ne?.userRoles,cardIssuedByDepartment:We?.className},{cardholderName:It(S.cardHolderUser,!1),cardholderEmail:S.cardHolderUser?.email,cardholderRole:Be?.userRoles,cardholderUserId:S.cardHolderUser?.userId,cardholderDepartment:ce?.className},ge,ae)}},[E.fetchState,E.depositAccountLimitFetchState.fetchState,E.transactionStatistics.fetchState,x.fetchState,T]),i==null)throw Error("Can't access card detail page without signing in...");const ta=ea(m),Aa=T?[...Et,...Or]:Et,lt={events:Ca(ta,Aa),eventCallback:(H,he,Le)=>{Le.onEventReceived(H,he)},onSubscribed:H=>{H.onPusherSubscribed()}},ut=()=>{if(a!=null&&S!=null){const{ownerName:H,cardName:he,utilisation:Le,limit:Ve,frequency:He,cardColor:Ge}=bt(S),$e=S.cardHolderUserId===i.userId;Q.trackCardsDetailPageViewed(a,H,he,Le,Ve,He,Ge,$e)}};r.useEffect(()=>{if(E.fetchState==="Completed"){const H=E.chargeCard;if(H?.status.code==="inactive"||ee&&H?.isPinSet===!1||K&&B){const he=Ae(m.tenantEmailDomain,a,i,S,B);e(he)}}},[E.fetchState]);const me=(H,he)=>{if(a!=null&&S!=null){const{ownerName:Le,cardName:Ve,utilisation:He,limit:Ge,frequency:$e}=bt(S),na=S.cardHolderUserId===i.userId;Q.trackCardsDetailPageClicked(a,Le,Ve,He,Ge,$e,H,na,he)}},Oa=(H,he)=>{if(a!=null&&S!=null){const{ownerName:Le,cardName:Ve,utilisation:He,limit:Ge,frequency:$e}=bt(S),na=S.cardHolderUserId===i.userId;Q.trackCardsVerifyPopUpClick(a,Le,Ve,He,Ge,$e,H,na,he)}},Da=x.balance.amount+x.hold.amount,mt=m.companyChargeCardInfo?.info?.primaryFundingAccount,Ua=y.allFundingAccounts.find(H=>H.id===mt?.accountId),ja=E.chargeCard!=null,Ma=E.depositAccountLimit!=null;return E.fetchState!=="Error"||ja?!ja&&(E.fetchState==="In-Progress"||E.fetchState==="Not-Started")||pa.saveStatus.fetchState==="In-Progress"||!Ma&&ee&&T&&E.depositAccountLimitFetchState.fetchState!=="Completed"?c.jsx(no,{}):c.jsxs(c.Fragment,{children:[c.jsx(rt,{showConfetti:B}),E.fetchState==="Completed"?c.jsx(Bt,{analytics:Q,onLoad:ut}):null,f===!0?c.jsx(Gt,{closeDrawerHandler:()=>g(!1),isPaymentDrawerOpen:f,pageName:"Card Detail",sourcePage:"cardDetailPage",productInformation:oe,creditAccountInformation:ge,debitAccountInformation:ae,cashbackInformation:ue,creditAccountSpentAmount:Da,isDebitCardInfoFetchStateCompleted:!ee||!T||E.depositAccountLimitFetchState.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!O||x.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!T||X.fetchState==="Completed",paymentInitiatedDate:Y.initiatedRepaymentDate}):null,c.jsx(ni,{...lt,hideSorting:!0,onColumnSortConfigChanged:()=>{},onFireVerifyPopOnClickAnalytics:Oa,onFireOnClickAnalytics:me,isSandboxEnv:xt(),signedInUser:i,location:t,navigate:e,setIsPaymentOpen:g,cardIssuedByRoles:ne?.userRoles,cardIssuedByDepartmentName:We?.className,cardHolderRoles:Be?.userRoles,cardHolderDepartmentName:ce?.className,loggedInUserRole:Ea,isChargeCardFeatureEnabled:O,isDebitCardFeatureEnabled:I,isDebitCardSetupEnabled:U,isChargeCardSetupEnabled:z,isCardControlsEnabled:F,isEarlyPayEnabled:L,controllerEmails:Ee,chargeCardCashbackDetailState:X,productInformation:oe,creditAccountInformation:ge,debitAccountInformation:ae,cashbackInformation:ue,classListFetchState:D,primaryFundingAccountDetails:Ua,currentTenant:m,cardProviderId:E.chargeCard?.cardProviderID,cardId:a,creditAccount:x,creditAccountRepayment:Y,includeCreditAccountInfo:Z,signedInUserToken:q,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:d.documentAiReceiptMaxSizeLimitBytes!=null?d.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:V,onAskAiCfoClick:J,isCardsCommentingEnabled:l})]}):c.jsx(ot,{})}const bt=e=>{const n=`${e.cardHolderUser?.firstName.toLowerCase()} ${e.cardHolderUser?.lastName.toLowerCase()}`,t=e.cardName,a=(e.limit.amount??0)-(e.available.amount??0),s=e.limit.amount,b=e.creditLimitFrequency.name;return{ownerName:n,cardName:t,utilisation:a,cardColor:e.cardColorCode??"",frequency:b,limit:s}},{spendManagement:{chargeCard:{cardsAiCfoHero:{headline:si,subheadline:ci,pageTitle:oi}}}}=Xe.getLocalizedStrings(),Ur=[ma,it,Br,Ba,La,dt,Ht,Ho,Nt,Vt,Mt],ii=new Set(Ur),At=Lt((e,n,t,a)=>{e(ca(n,t,a,!0))},400),di=Ne.div`
|
|
19
|
-
display: flex;
|
|
20
|
-
width: 100%;
|
|
21
|
-
flex: 1 1 auto;
|
|
22
|
-
flex-direction: column;
|
|
23
|
-
align-items: center;
|
|
24
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
25
|
-
`,li=De(function(e,n){const t=ua(e,n.includeCreditAccountDebitSummaryAndCashbackInfo,n.isDebitCardFeatureEnabled&&n.isDebitCardSetupEnabled,n.isChargeCardFeatureEnabled&&n.isChargeCardSetupEnabled);return{chargeCardListView:t,rowActionView:rc(e),bulkActionView:sc(e),companyLegalName:n.currentTenant.companyName,admins:n.admins,searchText:t.searchText,uiState:t.uiState,signedInUser:n.signedInUser}},function(e,n){const{navigateAndClearBulkSelection:t,currentTenant:a,location:s,signedInUser:b,chargeCardListState:f,includeCreditAccountDebitSummaryAndCashbackInfo:g,isChargeCardFeatureEnabled:_,isCreditCardProductVisibleForExpressInterest:i,isChargeCardSetupEnabled:m,isDebitCardFeatureEnabled:B,isDebitCardSetupEnabled:D,isDebitCardTOSAccepted:d,isChargeCardTOSAccepted:j,controllerEmails:P,depositAccountListWithDebitCardIssued:F,primaryFundingAccountDetails:C,chargeCardSetUpViewFetchState:h,productInformation:w,cashbackInformation:u,creditAccountInformation:v,debitAccountInformation:k,updatePayNowInfoTooltip:M,isUserHasCardsAdminLevelAccess:A}=n,{tenantEmailDomain:I}=a,{cards:L}=f;return{onChargeCardRowClick:(l,p)=>{const N=kr(L,l);let G;N!=null&&((U=>{const z=U.limit.amount-U.available.amount,Z=`${U.cardHolderUser?.firstName.toLowerCase()} ${U.cardHolderUser?.lastName.toLowerCase()}`,y=U.cardName,x=U.department?.className??"",Y=U.limit.amount,q=U.creditLimitFrequency.name;Q.trackCardsListRowClicked(Z,y,x,z,Y,q,b.userId===U.cardHolderUserId)})(N),sa(B,D,F)&&Q.trackCardsCardListRowClick(P,w,"Card Row Item","row_clicked",p+1,{cardOwner:It(N.cardHolderUser,!1),cardName:N.cardName,cardType:N.type.code.includes("credit")?"credit":"debit",cardStatus:N.status.code,cardUtilizationAmount:ba(N.limit.amount-N.available.amount),cardUtilizationPercent:N.limit.amount>0?Math.round((N.limit.amount-N.available.amount)/N.limit.amount*100):0,cardLimit:ba(N.limit.amount)},u,v,k)),G=N?.status.code==="request_on_hold"&&b.userId===N.cardHolderUserId?Er(I):Ae(I,l,b,N);const O=ye(s.state?.pathnameStackToGoBack,s.pathname);t(G,{state:{pathnameStackToGoBack:O}})},onFetchChargeCardsRecurringExpenses:l=>{e(qn(l))},onFetchDepositAccountLimit:l=>{e(zn({depositAccountId:l}))},onChargeCardResendInviteClick:l=>{e(Cc(l))},onChargeCardRevokeInviteClick:l=>{e(Wn(l))},onLockChargeCardList:(l,p)=>{e(mc(l,p))},onUnlockChargeCardList:l=>{e(uc(l))},onCloseChargeCardList:(l,p)=>{e(lc(l,p))},onRevokeChargeCardList:l=>{e(dc(l))},updateChargeCardListSpendLimit(l,p,N){e(ic(l,p,N.code))},onLockChargeCard:(l,p)=>{e(Xn(A,l,p))},onUnlockChargeCard:l=>{e(Qn(A,l))},onCloseChargeCard:(l,p)=>{e(Jn(l,p))},onUpdateSpendLimit(l,p,N,G){e(Zn(l,p,N.code,G))},updateChargeCardName:(l,p)=>{e(Kn(A,l,p))},onClickSetupIcon:()=>{Q.trackCardsListPageClicked("settings"),sa(B,D,F)&&u!=null&&Q.trackCardsSettingsClick(P,w,u,v,k);const l=Do(I),p=ye(s.state?.pathnameStackToGoBack,s.pathname);t(l,{state:{pathnameStackToGoBack:p}})},onIssueCardClick:()=>{Q.trackCardsListPageClicked("new card"),sa(B,D,F)&&u!=null&&Q.trackCardsNewCardClick(P,w,u,"New Button","card_creation_initiated","Card List",v,k);const l=ui(I),p=ye(s.state?.pathnameStackToGoBack,s.pathname);t(l,{state:{pathnameStackToGoBack:p}})},onColumnSortConfigChanged:(l,p)=>{sa(B,D,F)&&u!=null&&Q.trackCardsCardListSortClick(P,w,u,"Sort Icon","sort",l,p==="ascending"?"ASC":"DESC","Cards List",v,k),e(yt({uiState:{sortKey:l,sortOrder:p}}))},onSearchTextChanged:l=>{e(oc(l))},onReloadCards:()=>{e(ca(g,B&&D,_&&m,!0))},onLetsGoClick:()=>{t("./onboard")},onBackClick:()=>{t("../../")},onTotalCashbackClick:()=>{sa(B,D,F)&&u!=null&&Q.trackCardsCashbackOverviewClick(P,w,u,"Cashback Overview","cashback_details_viewed",v,k),t("./cashback")},onClickStatementsIcon:()=>{sa(B,D,F)&&u!=null&&Q.trackCardsStatementsClick(P,w,u,v,k),t("./statements")},onCreateNowClick:l=>{sa(B,D,F)&&u!=null&&Q.trackCardsNewCardClick(P,w,u,"Promo Banner","card_creation_initiated","Card List",v,k),t(`./new?cardType=${l}`)},onPromoCardClick:l=>{t(l==="debit"&&B&&!d||l==="credit"&&i&&!j?`../promo?cardPromoType=${l}`:"./setup")},navigateToCreditCardPaymentPage:(l,p)=>{h==="Completed"&&a.company!=null&&u!=null&&Q.trackCardsPayEarlyClick(P,w,u,"Card List",l,p,{isZeniCheckingEnabled:a.company.companyZeniAccountInfo.isZeniAccountEnabled,isZeniCheckingPaymentSource:C?.accType==="depositAccount",creditCardPaymentSourceAccountName:C?.label,creditCardPaymentSourceAccountType:C?.accType,creditCardPaymentSourceLastFourDigits:C?.accountLast4,creditCardPaymentSourceBalance:C?.accountBalance?.available?.amount??0},v,k);const N=mi(I);t(N)},navigateToCreditCardPaymentHistoryPage:()=>{const l=Ci(I),p=ye(s.state?.pathnameStackToGoBack,s.pathname);t(l,{state:{pathnameStackToGoBack:p}})},shouldShowPayNowInfoTooltip:M,onSetRowActionCardId:l=>{e(cc(l))},onSetBulkActionCardIds:l=>{e(er(l))},onEventReceived:l=>{ii.has(l)&&At(e,g,B&&D,_&&m)},onPusherSubscribed:()=>{At(e,g,B&&D,_&&m)}}})(ct(co));function gn({isPaymentDrawerOpen:e}){const n=de(),t=pe(),a=Ce(),s=r.useCallback(($,Oe)=>{t(er([])),n($,Oe)},[t,n]),[b,f]=r.useState(!1),[g,_]=r.useState(re.getPayNowInfoTooltip()??!1),i=$=>{re.savePayNowInfoTooltip($),_($)},[m,B]=r.useState(!1),D=re.getSignedInUser(),d=o($=>fe($)),[j,P]=r.useState(!1),[F,C]=r.useState(!1),{isAiCfoAccessEnabled:h,onAskAiCfoClick:w}=xa({mobileExploreReferrer:"Cards"}),u=d.userRole.includes("charge_card_user"),v=!u,k=!!d.companyDebitCardInfo?.info?.isDebitCardEnabled,{useFeatureGate:M,useDynamicConfig:A}=le(),{isFeatureEnabled:I}=M(W.isCashbackFeatureEnabled),{isFeatureEnabled:L}=M(W.isChargeCardFeatureEnabled),{isFeatureEnabled:l}=M(W.isDebitCardFeatureEnabled),{isFeatureEnabled:p}=M(W.isEarlyPayFeatureEnabled),{isFeatureEnabled:N}=M(W.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:G}=M(W.isCardsCommentingEnabled),{isFeatureEnabled:O}=M(W.isAiCfoFileUploadEnabled),{isFeatureEnabled:U}=M(W.isCardPolicyEnabled),{isFeatureEnabled:z}=M(W.isAiCardCreationEnabled),Z=Te(l,d),y=xe({isDebitCardFeatureEnabled:l,isBankingOnlyTenant:Z}),x=we(d),Y=ve(d),q=d.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,E=Re({isCardsOnlyTenant:x,isChargeCardFeatureEnabled:L,isBookKeepingTenant:Y,isDebitCardProductVisible:y,chargeCardsCreditAccountLimit:q}),V=Ir({isCardsOnlyTenant:x,isChargeCardFeatureEnabled:L,isBookKeepingTenant:Y}),{configValue:J}=A(Ze.zeniCardsConfig),X=Fe(),S=Pe(X?.loggedInUserRoleMap),R=o($=>oa($,d.companyId)),T=ia(R.controllers),ee=J.charge_card_cashback_rate_per_transaction!=null?J.charge_card_cashback_rate_per_transaction:.0175,K=J.credit_card_pay_now_threshold_by_company_id?.[d.companyId]??J.default_credit_card_pay_now_threshold??Ao,ke=J.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(J.enable_card_controls_for_company_ids)&&J.enable_card_controls_for_company_ids.includes(d.companyId),be=!!d.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,ge=!!d.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,ae=!!d.companyChargeCardInfo?.info?.isChargeCardEnabled,ue=o($=>Vn($)),oe=ya(ue.updateStatus),te=o($=>ua($,v,y&&k,E&&ae)),Ye=o($=>ec($)),Ee=o($=>ac($)),ne=o($=>tc($)),We=o($=>nc($)),Be=o($=>ne==null?[]:Un($.aiCfoState,ne).filter(Oe=>Oe.kind==="creating_cards"),Dt),ce=ya(Ee.fetchState);r.useEffect(()=>{ce==="In-Progress"&&Ee.fetchState==="Completed"&&ne!=null&&Be.forEach($=>{t(St({chatSessionId:ne,id:$.id,entityIds:We,kind:"created_cards"}))})},[t,Ee.fetchState,ne,We,Be,ce]);const Ea=te.cards.filter($=>$.type.code.includes("debit")).map($=>$.connectedAccountId),pa=[...new Set(Ea)],ha=o($=>la($)),ta=o($=>nt($,pa)),Aa=o($=>wa($,d.companyId)),lt=Aa.companyChargeCardInfo?.primaryFundingAccount,ut=Aa.allFundingAccounts.find($=>$.id===lt?.accountId),me=te.fetchState,Oa=te.creditAccount,Da=r.useCallback(()=>S===!0&&U===!0&&me==="Completed"&&re.getCardPolicyPopupSeen(d.tenantEmailDomain??"")!==!0,[S,U,me,d.tenantEmailDomain]),[mt,Ua]=r.useState(Da);r.useEffect(()=>{Ua(Da())},[Da]);const ja=()=>{re.saveCardPolicyPopupSeen(d.tenantEmailDomain??"",!0),Ua(!1)},Ma=me==="Completed"&&!te.hasCreditCard&&!te.hasDebitCard;so({isDataReady:me==="Completed",pageContext:Ma?"cards_creation":"cards"});const{creditAccountRepayment:H}=o($=>da($)),he=o($=>Ja($).firstViewAfterActivation),{areTenantIdsInSync:Le}=gr(),Ve=Ot(S,ha),He=Ra(E,ae,S,Oa,H),Ge=Ut(y,k,S,ta,te.debitCardSummary),$e=Qe(E,y,k,ae),na=te.creditAccount.balance.amount+te.creditAccount.hold.amount;if(r.useEffect(()=>{me==="Completed"&&(re.getPayNowInfoTooltip()==null||na<K*te.creditAccount.limit.amount/100)&&i(!0)},[me,K,na,te.creditAccount.limit.amount]),r.useEffect(()=>{if(e!=null&&e===!0&&H.initiatedRepayments.amount===0&&H.fetchState==="Completed"||oe==="In-Progress"&&ue.updateStatus==="Completed")i(!1),f(!0);else if(H.initiatedRepayments.amount>0&&H.fetchState==="Completed"){f(!1),document.body.style.overflow="auto";const $=aa(d.tenantEmailDomain);s($)}},[e,H.initiatedRepayments.amount,H.fetchState,oe,ue.updateStatus,s,d.tenantEmailDomain]),r.useEffect(()=>{!j&&(ae||k)&&Le&&(P(!0),t(ca(v,y&&k,E&&ae,!1)))},[j,v,t,Le]),r.useEffect(()=>{he&&m===!1&&(B(!0),setTimeout(()=>{t(Ya())},5e3))},[he,m]),r.useEffect(()=>()=>{At.flush()},[]),r.useEffect(()=>{me==="Completed"&&u&&te.cards.length===1&&(te.cards[0].status.code==="inactive"&&te.cards[0].type.code==="business_physical_credit_card"?s(`./${te.cards[0].id}/activate`):te.cards[0].status.code!=="request_on_hold"&&(a.state?.message==="comingFromCardDetail"?s("../../"):s(`./${te.cards[0].id}`)))},[me,u,a.state,s,te.cards]),r.useEffect(()=>{if(me==="Completed"&&u){const $=te.cards.length,Oe=te.cards.filter(Ke=>Ke.cardHolderUserId===D?.userId).filter(Ke=>Ke.status.code==="request_on_hold");Oe.length>0&&$===Oe.length&&s("./onboard")}},[me,te.cards,u,s,D?.userId]),r.useEffect(()=>{me!=="Completed"||E&&H.fetchState!=="Completed"||y&&k&&S&&ta.fetchState!=="Completed"||Q.trackCardsCardListView(T,$e,Ve,He,Ge)},[me,Oa,H.fetchState,ta.fetchState,S]),D==null)throw Error("Can't access charge card list page without signing in...");const Vr=o($=>ar($.userState,$.userRoleState,$.userListViewState,"cardAdmin")),Zt=vt(X?.loggedInUserRoleMap),Yt=$=>{C($)},Hr=te.creditAccount.limit,Gr=()=>{f(!1),s("..")},$r=d.companyChargeCardInfo?.info!=null&&Ia({cardInfo:d.companyChargeCardInfo.info,isProductVisible:E,isTOSAccepted:be,isSetupEnabled:ae,isUserHasCardsAdminLevelAccess:S,isUserHasCardsAccess:Zt}),zr=d.companyDebitCardInfo?.info!=null&&Ia({cardInfo:d.companyDebitCardInfo.info,isProductVisible:y,isTOSAccepted:ge,isSetupEnabled:k,isUserHasCardsAdminLevelAccess:S,isUserHasCardsAccess:Zt}),Zr=$r||zr,Wt=function($){const{isEmptyCardsState:Oe,isChargeCardAdmin:Ke,isFileUploadEnabled:qt}=$,Jt=de(),Na=Ce(),{tenantEmailDomain:Va}=Me(),{isAiCfoOpen:qr,setIsAiCfoOpen:Qt}=mr(),Jr=Cr(),Qr=pr(),Xt=o(Se=>On(Se)).createSessionAndSubmitState.fetchState==="In-Progress",{chips:en,isResolved:an}=Pr("cards_creation"),tn=r.useMemo(()=>_r(en,an,3),[en,an]),[Ha,Ct]=r.useState(""),nn=Qr&&Jr&&Va!=null&&!qr,fa=r.useCallback(Se=>{if(Va==null)return;const Xr=ye(Na.state?.pathnameStackToGoBack,Na.pathname);Jt(`/${Va}/cards/ask`,{state:{message:"",origin:"",pathnameStackToGoBack:Xr,referrer:"cards_hero",aiCfoInitialQuestion:Se,aiCfoShouldSubmit:Se!=null&&Se.trim().length>0}})},[Na.pathname,Na.state,Jt,Va]),rn=r.useCallback(Se=>{Se.trim().length!==0&&(Ct(""),fa(Se))},[fa]),sn=r.useCallback(()=>{const Se=Ha.trim();Se.length!==0&&(Ct(""),fa(Se))},[Ha,fa]),cn=r.useCallback(()=>{},[]),on=r.useCallback(Se=>{Ct(Se)},[]),dn=r.useCallback(()=>{Qt(!0)},[Qt]),ln=r.useCallback(()=>{fa(void 0)},[fa]);return r.useMemo(()=>{if(nn&&Oe&&Ke)return{aiAgentName:oi,headline:si,subheadline:ci,promptChips:tn,composer:{currentInput:Ha,isSubmitting:Xt,isFileUploadEnabled:qt,onInputChange:on,onSubmit:sn,onStopSubmit:cn},onPromptClick:rn,onOpenSidePanel:dn,onOpenFullView:ln,dataTestIdPrefix:"cards-ai-cfo-hero"}},[Ha,nn,Ke,Oe,qt,Xt,on,ln,dn,rn,cn,sn,tn])}({isEmptyCardsState:Ma,isChargeCardAdmin:S,isFileUploadEnabled:O}),Kt=z&&Wt!=null?c.jsx(hr,{...Wt}):null,Yr=h&&Kt==null,Wr=ea(d),Kr={events:Ca(Wr,Ur),eventCallback:($,Oe,Ke)=>{Ke.onEventReceived($)},onSubscribed:$=>{$.onPusherSubscribed()}};return ae||k?c.jsxs(c.Fragment,{children:[me==="Completed"?c.jsxs(c.Fragment,{children:[c.jsx(Bt,{analytics:Q,onLoad:()=>{Q.trackPageLoaded(br.Event.cardsListPage),(E&&!ae||y&&!k)&&Q.trackCardsPromoView(T,{isCreditCardOffered:E,isDebitCardOffered:y,isDebitCardEnabled:k,isCreditCardEnabled:ae},"Banner",y&&!k?"Debit Card":E&&!ae?"Credit Card":"","Card List")}}),c.jsx(rt,{showConfetti:he})]}):null,b===!0?c.jsx(Gt,{closeDrawerHandler:Gr,isPaymentDrawerOpen:b,pageName:"Card List",sourcePage:"cardListPage",creditAccountSpentAmount:na,productInformation:$e,creditAccountInformation:He,debitAccountInformation:Ge,cashbackInformation:Ve,isDebitCardInfoFetchStateCompleted:!(y&&k&&S)||ta.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!E||H.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!S||ha.fetchState==="Completed",paymentInitiatedDate:H.initiatedRepaymentDate}):null,c.jsxs(di,{children:[c.jsx(Ie,{isAppContentDrawerOpen:F,handleDrawerToggle:Yt}),c.jsx(li,{...Kr,isCashbackFeatureEnabled:I,isChargeCardFeatureEnabled:E,isDebitCardFeatureEnabled:y,isCreditCardProductVisibleForExpressInterest:V,updatePayNowInfoTooltip:i,showPayNowInfoTooltip:g,creditCardPayNowThreshold:K,signedInUser:D,chargeCardListState:te,location:a,admins:Vr.users,navigateAndClearBulkSelection:s,currentTenant:d,isCardControlsEnabled:ke,companyChargeCardInfoCreditAccountLimit:d.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,isCompanyInterestedInChargeCard:d.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,isUserHasCardsAdminLevelAccess:S,includeCreditAccountDebitSummaryAndCashbackInfo:v,onClickMenuIcon:()=>{Yt(!0)},creditLimit:Hr,isChargeCardSetupEnabled:ae,isDebitCardSetupEnabled:k,isEarlyPayEnabled:p,isChargeCardPaymentHistoryFeatureEnabled:N,cashbackRate:ee,controllerEmails:T,chargeCardCashbackDetailState:ha,depositAccountListWithDebitCardIssued:ta,isChargeCardTOSAccepted:be,isDebitCardTOSAccepted:ge,primaryFundingAccountDetails:ut,chargeCardSetUpViewFetchState:Aa.fetchState,productInformation:$e,creditAccountInformation:He,debitAccountInformation:Ge,cashbackInformation:Ve,isAiCfoAccessEnabled:Yr,onAskAiCfoClick:w,isCardsCommentingEnabled:G,cardsAiCfoHero:Kt,onClickPolicyIcon:S&&U?()=>n(pi(d.tenantEmailDomain)):void 0,isPolicyIntroTooltipVisible:mt,onPolicyIntroTooltipClose:ja,pendingCreationCount:Ye})]})]}):(be||ge)&&S===!0?c.jsx(Sa,{to:"../setup"}):Zr?c.jsx(Sa,{to:"../promo"}):c.jsx(va,{fetchState:me})}const ui=e=>`/${e}/cards/new`,mi=e=>`/${e}/cards/payment`,Ci=e=>`/${e}/cards/payment-history`,pi=e=>`/${e}/cards/policy`,jr=[Rr,Br],hi=new Set(jr),fi=De(function(e){const n=re.getSignedInUser(),t=fe(e),a=e.tenantState.currentTenantId,s=tr(e),b={userId:n?.userId??"",sessionId:n?.zeniSessionId??"",tenantId:a??""},f=t?.companyName??"",g=e.chargeCardPaymentHistoryState.downloadUIState.downloadState;return{fetchState:s.fetchState,filters:s.filters,isZeniTenant:pc(t),repaymentList:s.repaymentHistory,searchText:s.searchText,repaymentHistoryUsers:s.repaymentHistoryUsers,sortConfig:{sortKey:s.uiState.sortKey,sortOrder:s.uiState.sortOrder},downloadParams:{authParams:b,companyName:f,spendManagementEndPoint:`${kt}/spendManagement`,isShowDeletedBillsEnabled:!1,isShowDeletedReimbursementEnabled:!1},downloadState:g}},function(e,n){const{location:t,navigate:a}=n;return{onBackClick:()=>{const s=_e(t.state?.pathnameStackToGoBack),b=s.poppedPathname??"..";a(b,{state:{pathnameStackToGoBack:s.newStack}})},onColumnSortConfigChanged:(s,b)=>{e({type:"chargeCardPaymentHistory/updatePaymentHistoryUIState",payload:{uiState:{sortKey:s,sortOrder:b}}})},onFiltersChange:s=>{e(fc({filters:s}))},onReloadPayments:()=>{e(Ga(!0))},onEventReceived:s=>{hi.has(s)&&e(Ga(!0))},onPusherSubscribed:()=>{e(Ga(!0))},onSearchTextChanged:s=>{e({type:"chargeCardPaymentHistory/updatePaymentHistorySearchText",payload:s})},updateDownloadStateHandler:s=>{e(hc({uiState:{downloadState:s}}))}}})(ct(oo));function gi(){const e=de(),n=Ce(),t=pe(),{areTenantIdsInSync:a}=gr(),{useFeatureGate:s}=le();if(re.getSignedInUser()==null)throw Error("Can't access payment history page without signing in...");const b=o(S=>fe(S)),f=o(S=>tr(S)),[g,_]=r.useState(!1),[i,m]=r.useState(!1),[B,D]=r.useState(!1),[d,j]=r.useState(null),P=!b.userRole.includes("charge_card_user"),F=!!b.companyDebitCardInfo?.info?.isDebitCardEnabled,{isFeatureEnabled:C}=s(W.isChargeCardFeatureEnabled),{isFeatureEnabled:h}=s(W.isDebitCardFeatureEnabled),w=Te(h,b),u=xe({isDebitCardFeatureEnabled:h,isBankingOnlyTenant:w}),v=we(b),k=ve(b),M=b.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,A=Re({isCardsOnlyTenant:v,isChargeCardFeatureEnabled:C,isBookKeepingTenant:k,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:M}),I=!!b.companyChargeCardInfo?.info?.isChargeCardEnabled,L=Fe(),l=Pe(L?.loggedInUserRoleMap),p=o(S=>ua(S,P,u&&F,A&&I)),N=r.useMemo(()=>{const S=p.cards.filter(R=>R.type.code.includes("debit"));return[...new Set(S.map(R=>R.connectedAccountId))]},[p.cards]),G=o(S=>la(S)),O=o(S=>nt(S,N)),{creditAccountRepayment:U}=o(S=>da(S)),z=r.useMemo(()=>Ot(l,G),[l,G]),Z=r.useMemo(()=>Ra(A,I,l,p.creditAccount,U),[A,I,l,p.creditAccount,U]),y=r.useMemo(()=>Ut(u,F,l,O,p.debitCardSummary),[u,F,l,O,p.debitCardSummary]),x=r.useMemo(()=>Qe(A,u,F,I),[A,u,F,I]),Y=p.creditAccount.balance.amount+p.creditAccount.hold.amount,q=r.useMemo(()=>d!=null?f.repaymentHistory.find(S=>S.cardRepaymentId===d):void 0,[d,f.repaymentHistory]),E=r.useCallback(S=>{j(S),t(ca(P,u&&F,A&&I,!1)),D(!0)},[t,P,u,F,A,I]),V=r.useCallback(()=>{D(!1),j(null),document.body.style.overflow="auto"},[]);r.useEffect(()=>{g||f.fetchState==="Completed"||f.fetchState==="In-Progress"||(_(!0),t(Ga()))},[g,t,f.fetchState]),r.useEffect(()=>{!i&&(I||F)&&a&&(m(!0),t(ca(P,!1,A&&I,!1)))},[i,I,F,a,t,P,A]);const J=ea(b),X={events:Ca(J,jr),eventCallback:(S,R,T)=>{T.onEventReceived(S)},onSubscribed:S=>{S.onPusherSubscribed()}};return c.jsxs(c.Fragment,{children:[B?c.jsx(Gt,{closeDrawerHandler:V,isPaymentDrawerOpen:B,pageName:"Payment History",sourcePage:"cardPaymentHistory",creditAccountSpentAmount:Y,productInformation:x,creditAccountInformation:Z,debitAccountInformation:y,cashbackInformation:z,isDebitCardInfoFetchStateCompleted:!(u&&F&&l)||O.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!A||U.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!l||G.fetchState==="Completed",paymentInitiatedDate:U.initiatedRepaymentDate,retryRepayment:q}):null,c.jsx(fi,{...X,location:n,navigate:e,accountInfoByAccountId:f.accountInfoByAccountId,onRetryPaymentClick:E})]})}const bn=Ne.div`
|
|
26
|
-
display: flex;
|
|
27
|
-
height: 100vh;
|
|
28
|
-
width: 100%;
|
|
29
|
-
flex: 1 1 auto;
|
|
30
|
-
flex-direction: column;
|
|
31
|
-
overflow: auto;
|
|
32
|
-
align-items: center;
|
|
33
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
34
|
-
`,Sn=Xe.getLocalizedStrings().months;function bi(){const e=de(),n=pe(),t=Ce(),{creditAccount:a,creditAccountRepayment:s}=o(x=>da(x)),b=`${fr.cardMicroServiceBaseUrl}/1.0/credit-accounts/${a.id}`,[f,g]=r.useState(!1),[_,i]=r.useState(!1),m=o(x=>gc(x)),{useFeatureGate:B}=le(),D=o(x=>fe(x)),{isFeatureEnabled:d}=B(W.isChargeCardFeatureEnabled),{isFeatureEnabled:j}=B(W.isDebitCardFeatureEnabled),{isFeatureEnabled:P}=B(W.isCardsCommentingEnabled),F=Ar(P?D.companyId:void 0,{clearParams:P&&m.fetchState==="Completed"}),C=Te(j,D),h=xe({isDebitCardFeatureEnabled:j,isBankingOnlyTenant:C}),w=we(D),u=ve(D),v=D.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,k=Re({isCardsOnlyTenant:w,isChargeCardFeatureEnabled:d,isBookKeepingTenant:u,isDebitCardProductVisible:h,chargeCardsCreditAccountLimit:v}),M=!!D.companyDebitCardInfo?.info?.isDebitCardEnabled,A=!!D.companyChargeCardInfo?.info?.isChargeCardEnabled,I=o(x=>oa(x,D.companyId)),L=ia(I.controllers),l=o(x=>nr(x)),p=l.cards.filter(x=>x.type.code.includes("debit")).map(x=>x.connectedAccountId),N=[...new Set(p)],G=o(x=>nt(x,N)),O=o(x=>bc(x));r.useEffect(()=>{_||a.fetchState==="Completed"||a.fetchState==="In-Progress"||(g(!0),n(Je()))},[f,n,a.fetchState]),r.useEffect(()=>{_||a.fetchState!=="Completed"||a.id==null||m.fetchState==="Completed"||m.fetchState==="In-Progress"||(i(!0),n(Sc(a.id)))},[_,n,a.fetchState,a.id,m.fetchState]),r.useEffect(()=>{G.fetchState!=="Completed"&&G.fetchState!=="In-Progress"&&h&&M&&n(rr()),l.fetchState!=="Completed"&&l.fetchState!=="In-Progress"&&n(je()),O.fetchState!=="Completed"&&O.fetchState!=="In-Progress"&&h&&M&&n(yc()),s.fetchState!=="Completed"&&s.fetchState!=="In-Progress"&&k&&A&&n(Pt())},[G.fetchState,h,M,l.fetchState,O.fetchState,s.fetchState,k,A]),r.useEffect(()=>{if(m.fetchState==="Completed"&&a.fetchState==="Completed"&&s.fetchState==="Completed"&&l.fetchState==="Completed"&&(!h||!M||G.fetchState==="Completed"&&O.fetchState==="Completed")){let x="",Y="";if(m.statements.length>0){const J=m.statements[m.statements.length-1].period,[X,S]=J.split("-"),R=m.statements[0].period,[T,ee]=R.split("-");x=`${Sn[parseInt(S)-1]} ${X}`,Y=`${Sn[parseInt(ee)-1]} ${T}`}const q=Qe(k,h,M,A),E=Ra(k,A,!0,a,s),V=Ut(h,M,!0,G,O);Q.trackCardsCreditCardStatementsView(L,q,{numberOfStatements:m.statements.length,oldestStatementMonthYear:x,latestStatementMonthYear:Y},E,V)}},[m.fetchState,a.fetchState,s.fetchState,G.fetchState,l.fetchState,O.fetchState]);const U=()=>{const x=_e(t.state?.pathnameStackToGoBack),Y=x.poppedPathname??"..";e(Y,{state:{pathnameStackToGoBack:x.newStack}})},z=o(x=>la(x)),Z=re.getSignedInUser(),y={userId:Z?.userId??"",sessionId:Z?.zeniSessionId??"",tenantId:D.tenantId??""};if(Z==null)throw Error("Can't access address page without signing in...");if(m.fetchState!=="Completed")return c.jsx(bn,{children:c.jsx(io,{onBackClick:U})});{const x=Qe(k,h,M,A);return c.jsx(bn,{children:c.jsx(lo,{currentTenantCompanyName:D.companyName,statementListView:m,productInformation:x,onBackClick:U,authParams:y,controllerEmails:L,isChargeCardFeatureEnabled:k,isDebitCardFeatureEnabled:h,isDebitCardSetupEnabled:M,isChargeCardSetupEnabled:A,isCardsCommentingEnabled:P,initialOpenThreadRequest:F,chargeCardCashbackDetailState:z,creditAccount:a,creditAccountRepayment:s,depositAccountListWithDebitCardIssued:G,debitCardSummary:O,downloadEndPoint:b})})}}const Mr=[ma,dt],Si=new Set(Mr),yi={containerWidth:new Fa(100,58)},Ii=({appContent:e})=>{const n=Ta(),t=pe(),a=de(),s=Ce(),{useDynamicConfig:b}=le(),[f,g]=r.useState(!1),[_,i]=r.useState(!1),[m,B]=r.useState(!1),[D,d]=r.useState(!1),j=r.useRef(!1),P=r.useRef(null);r.useEffect(()=>()=>{P.current!=null&&(clearTimeout(P.current),P.current=null)},[]);const[F,C]=r.useState(!1),[h,w]=r.useState(!1),u=re.getSignedInUser();if(u==null)throw Error("Can't access onboarding card page without signing in...");const v=o(V=>fe(V)),{configValue:k}=b(Ze.zeniCardsConfig),M=o(V=>Ic(V)),{tenantEmailDomain:A}=v,I=o(V=>V.settingsViewState.profile.fetchState),L=o(V=>V.chargeCardListState.fetchState),l=o(V=>V.settingsViewState.profile.userId),p=o(V=>V.chargeCardConfigState.fetchState);r.useEffect(()=>{f===!1&&I!=="In-Progress"&&I!=="Completed"&&(t(kc()),g(!0)),_===!1&&p!=="In-Progress"&&p!=="Completed"&&(t(Qa()),i(!0)),m===!1&&L==="Not-Started"&&(B(!0),t(je()))},[f,m,L,_,p]),r.useEffect(()=>{I==="Completed"&&F===!1&&l!=null&&L==="Completed"&&M.cards.length>0&&(t(Ec({userId:l})),t(sr({cardId:M.cards[M.cards.length-1].id})),C(!0))},[I,F,l,L]),r.useEffect(()=>{if(!D&&M.fetchState==="Completed"&&M.cards.length===0){const V=_e(s.state?.pathnameStackToGoBack),J=V.poppedPathname??aa(A);a(J,{state:{pathnameStackToGoBack:V.newStack}})}},[M.fetchState,M.cards,D]);const N=o(V=>Ja(V)),G=ya(N.updateStatus.fetchState),O=N.currentDisplayedCardId,{useFeatureGate:U}=le(),{isFeatureEnabled:z}=U(W.isChargeCardFeatureEnabled),Z=!!v.companyChargeCardInfo?.info?.isChargeCardEnabled,y=!v.userRole.includes("charge_card_user")&&z&&Z,x=o(V=>O!=null?cr(V.chargeCardState,O):null),Y=()=>{O!=null&&(j.current=!0,P.current!=null&&clearTimeout(P.current),P.current=setTimeout(()=>{j.current=!1,P.current=null},5e3),t(ka(O,y,!0)),t(je(!0)),d(!0))},q=ea(v);jt({events:Ca(q,Mr),onSubscribed:()=>{t(je(!0))},onEvent:(V,J)=>{if(!Si.has(V))return;const X=$t(J),S=j.current;if(V===ma){const T=ie(X?.card_id)??O;if(T!=null){const ee=zt(X,T);if(ee!=null)return t(wt(ee)),void(T!==O||S||Y())}}if(V===dt)return void t(je(!0));const R=ie(X?.card_id)??O;(O==null||R===O)&&O!=null?S||Y():t(je(!0))}}),r.useEffect(()=>{if(D&&O!=null&&x!=null&&x.status.code!=="request_on_hold"){const V=Ae(v.tenantEmailDomain,O,u,x),J=ye(s.state?.pathnameStackToGoBack,s.pathname);t(Ac()),x?.type.code==="business_virtual_credit_card"&&t(Xa()),a(V,{state:{pathnameStackToGoBack:J},replace:!0}),j.current=!1,P.current!=null&&(clearTimeout(P.current),P.current=null)}},[D,x?.status.code]),r.useEffect(()=>{G==="In-Progress"&&N.updateStatus.fetchState==="Completed"&&setTimeout(Y,3e3)},[G,N.updateStatus.fetchState]);const E=V=>{w(V)};if(I!=="Completed"||M.cards.length===0)return c.jsxs(yn,{children:[c.jsx(Ie,{isAppContentDrawerOpen:h,handleDrawerToggle:E}),c.jsx(uo,{})]});if(l==null)throw Error("Can't access my userId.");return c.jsxs(yn,{children:[c.jsx(Ie,{isAppContentDrawerOpen:h,handleDrawerToggle:E}),c.jsx(ki,{chargeCardListView:M,cardUserOnboardingView:N,navigate:a,currentTenant:v,myUserId:l,location:s,chargeCardCashbackRatePerTransaction:k.charge_card_cashback_rate_per_transaction!=null?k.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{E(!0)}}),e!=null?c.jsx(Ei,{windowSize:n,children:e}):null]})},ki=De(function(e,{currentTenant:n,cardUserOnboardingView:t,chargeCardListView:a,myUserId:s}){const b=ua(e,!1,!1,!1);let f=!1;return b.fetchState==="Completed"&&b.cards.length<=1&&(f=!0),{cards:a.cards,showMenuIcon:f,companyLegalName:n.companyName,twoFAView:t.twoFAView,cardUserOnboardingLocalData:t.cardUserOnboardingLocalData??{userId:s},isDOBDisabled:t.isDOBPresent,onboardingProgressStatus:t.onboardingProgressStatus}},function(e,n){const{navigate:t,cardUserOnboardingView:a,location:s,currentTenant:b}=n,{tenantEmailDomain:f}=b;return{updateCardUserOnboardingLocalData:g=>{e(Cn({localData:g}))},onGetOtp:g=>{if(a.cardUserOnboardingLocalData!=null){const _={...a.cardUserOnboardingLocalData,phone:g};e(Cn({localData:_}))}e(tt(g,"CardUserOnboarding"))},onResendOtp:g=>{e(at(g,"CardUserOnboarding"))},onVerifyOtp:(g,_)=>{e(et(g,_,"CardUserOnboarding"))},onVerifyOtpSuccess:g=>{e(Dc()),g!=null&&re.saveZeniOtpToken(g)},setCurrentDisplayedCardId:g=>{e(sr({cardId:g}))},onBackClick:()=>{const g=_e(s.state?.pathnameStackToGoBack),_=g.poppedPathname??aa(f);t(_,{state:{pathnameStackToGoBack:g.newStack}})}}})(mo),Ei=Ne.div`
|
|
35
|
-
display: flex;
|
|
36
|
-
flex-direction: column;
|
|
37
|
-
width: ${e=>`${yi.containerWidth.value(e.windowSize)}%`};
|
|
38
|
-
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
39
|
-
`,yn=Ne.div`
|
|
40
|
-
display: flex;
|
|
41
|
-
min-height: 100%;
|
|
42
|
-
width: 100%;
|
|
43
|
-
flex: 1 1 auto;
|
|
44
|
-
flex-direction: column;
|
|
45
|
-
align-items: center;
|
|
46
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
47
|
-
`,Ai={containerWidth:new Fa(100,58)},Di=({appContent:e})=>{const n=Ta(),t=pe(),a=de(),{cardId:s}=Me(),b=Ce(),{useDynamicConfig:f,useFeatureGate:g}=le(),[_,i]=r.useState(!1),[m,B]=r.useState(!1),[D,d]=r.useState(!1),[j,P]=r.useState(!1),F=re.getSignedInUser();if(F==null)throw Error("Can't access onboarding card page without signing in...");const C=o(y=>fe(y));if(s==null)throw Error("Empty card id is not valid...");const{configValue:h}=f(Ze.zeniCardsConfig),w=o(y=>_c(y,s)),{isFeatureEnabled:u}=g(W.isChargeCardFeatureEnabled),{isFeatureEnabled:v}=g(W.isDebitCardFeatureEnabled),k=Te(v,C),M=xe({isDebitCardFeatureEnabled:v,isBankingOnlyTenant:k}),A=we(C),I=ve(C),L=C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,l=Re({isCardsOnlyTenant:A,isChargeCardFeatureEnabled:u,isBookKeepingTenant:I,isDebitCardProductVisible:M,chargeCardsCreditAccountLimit:L}),p=w.chargeCard,N=o(y=>y.chargeCardConfigState.fetchState);r.useEffect(()=>{_===!1&&N!=="In-Progress"&&N!=="Completed"&&(t(Qa()),i(!0)),m===!1&&w.fetchState==="Not-Started"&&(B(!0),t(ka(s,!1,l)))},[m,w.fetchState,_,N]);const G=p?.type.code==="business_physical_debit_card"||p?.type.code==="business_virtual_debit_card";r.useEffect(()=>{if(w.fetchState==="Completed"){if(D===!1&&(G===!1||G&&p.status?.code!=="active"||G&&p.status.code==="active"&&p.isPinSet||p.cardHolderUserId!==F.userId)){const y=Ae(C.tenantEmailDomain,s,F,p,!0),x=ye(b.state?.pathnameStackToGoBack,b.pathname);a(y,{state:{pathnameStackToGoBack:x}})}else if(D&&w.isRefreshingViewInBackground===!1&&p?.isPinSet===!0){t(Pc({chargeCardId:s}));const y=Ae(C.tenantEmailDomain,s,F,p,!0),x=ye(b.state?.pathnameStackToGoBack,b.pathname);t(Xa()),a(y,{state:{pathnameStackToGoBack:x}})}}},[w.fetchState,p?.type.code,D,w.isRefreshingViewInBackground]);const O=re.getZeniOtpTokenForCardHolder(s),U=o(y=>Mn(y.userState,F.userId)),z=()=>{p?.isPinSet!==!0&&t(ga(s,!0))};r.useEffect(()=>{w.updateDebitCardPinAttemptFetchState.fetchState==="Completed"&&(setTimeout(z,3e3),d(!0))},[w.updateDebitCardPinAttemptFetchState.fetchState]);const Z=y=>{P(y)};if(N!=="Completed"||p==null)return c.jsx(va,{fetchState:"In-Progress"});if(U?.phone==null)throw Error("Can't access user phone number.");return c.jsxs(wi,{children:[c.jsx(Ie,{isAppContentDrawerOpen:j,handleDrawerToggle:Z}),c.jsx(_i,{cardId:s,card:p,phone:U.phone,signedInUser:F,isSandboxEnv:xt(),debitCardDetailState:w,signedInUserToken:O,navigate:a,currentTenant:C,location:b,chargeCardCashbackRatePerTransaction:h.charge_card_cashback_rate_per_transaction!=null?h.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{Z(!0)}}),e!=null?c.jsx(Pi,{windowSize:n,children:e}):null]})},_i=De(function(e,{debitCardDetailState:n,cardId:t}){const a=Nn(e,t),s=n.updateStatus,b=ua(e,!1,!1,!1);let f=!1;return b.fetchState==="Completed"&&b.cards.length<=1&&(f=!0),{showMenuIcon:f,vgsVaultId:st.cardVaultId,twoFAView:a,setPinWaitStatus:s}},function(e,n){const{navigate:t,cardId:a,location:s,currentTenant:b,debitCardDetailState:f}=n,g=f.chargeCard?.cardProviderID,{tenantEmailDomain:_}=b;return{onGetOtp:i=>{g!=null&&e(tt(i,"ChargeCardHolder",a))},onUpdateDebitCardPinAttempt:i=>{e(Yn(a,i))},onResendOtp:i=>{g!=null&&e(at(i,"ChargeCardHolder",a))},onVerifyOtp:(i,m)=>{g!=null&&e(et(i,m,"ChargeCardHolder",a))},onVerifyOtpSuccess:i=>{i!=null&&re.saveZeniOtpTokenForCardHolder(i,a)},onSetPinSuccess:()=>{e(wc({chargeCardId:a}))},onBackClick:()=>{const i=_e(s.state?.pathnameStackToGoBack),m=i.poppedPathname==null||i.poppedPathname.includes("activate")===!0?aa(_):i.poppedPathname;t(m,{state:{pathnameStackToGoBack:i.newStack}})}}})(Co),Pi=Ne.div`
|
|
48
|
-
display: flex;
|
|
49
|
-
flex-direction: column;
|
|
50
|
-
width: ${e=>`${Ai.containerWidth.value(e.windowSize)}%`};
|
|
51
|
-
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
52
|
-
box-shadow: ${e=>`${Wa.sp0} 2px ${Wa.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
53
|
-
`,wi=Ne.div`
|
|
54
|
-
display: flex;
|
|
55
|
-
min-height: 100%;
|
|
56
|
-
width: 100%;
|
|
57
|
-
flex: 1 1 auto;
|
|
58
|
-
flex-direction: column;
|
|
59
|
-
align-items: center;
|
|
60
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
61
|
-
box-shadow: ${e=>`${Wa.sp0} 2px ${Wa.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
62
|
-
`,vi={overlayWidth:new Fa(pt[12],pt[12],pt[9])},Ti=De(function(e,n){const t=Tt(e,!1,!1),a=n.lineId,s=t.customAddress[a],b=t.customAddressStatus[a]??{fetchState:"Not-Started",error:void 0};return{googleAPIKey:n.googleAPIKey,customAddress:s,customAddressStatus:b,lineId:a}},function(e,n){const{newCustomAddressId:t,lineId:a,chargeCardTypeOption:s}=n;return{onSubmitHandler:b=>{t!=null&&e(or(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${a}_address`));const f=Po(b);e(Fc({addressType:`${s==="creditCard"?"credit":"debit"}_custom_shipping_${a}_address`,addressToCreate:f})),e(xc(`${s==="creditCard"?"credit":"debit"}_custom_shipping_${a}_address`))},onDismissClick:()=>{n.onDismissClick(),t!=null&&e(Tc({addressId:t,cardLineId:a,cardType:s==="creditCard"?"business_physical_credit_card":"business_physical_debit_card"}))}}})(po),Fi=({lineId:e,closeDrawerHandler:n,chargeCardTypeOption:t})=>{const a=Rt(),s=Ta(),b=()=>{n()},f=o(g=>vc(`${t==="creditCard"?"credit":"debit"}_custom_shipping_${e}_address`,g))?.newAddressId;return c.jsx(Sr,{anchor:"right",open:e.length>0,PaperProps:{style:{minWidth:vi.overlayWidth.valuePercentage(s),boxShadow:"none",zIndex:8}},slotProps:{backdrop:{style:{opacity:.75,backgroundColor:a.colors.black,cursor:"pointer"}}},onClose:(g,_)=>(_==="backdropClick"||_==="escapeKeyDown")&&b(),children:c.jsx(Ti,{googleAPIKey:st.googleMapsAPIKey,onDismissClick:b,lineId:e,chargeCardTypeOption:t,newCustomAddressId:f})})},xi=De(function(e,n){const{isChargeCardFeatureEnabled:t,isDebitCardFeatureEnabled:a,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:b,isChargeCardSetupEnabled:f,isDebitCardSetupEnabled:g}=n,_=Tt(e,t&&f,a&&g);return{issueChargeCards:_,isIssuePhysicalCardEnabled:s,isIssuePhysicalDebitCardEnabled:b,isDebitCardFeatureEnabled:a,isChargeCardFeatureEnabled:t,isChargeCardSetupEnabled:f,isDebitCardSetupEnabled:g,cardHolderCandidates:_.userList.map(i=>i.user).filter(Boolean),allRoles:_.userList.map(i=>i.userRole),allAccountingClasses:_.allAccountingClasses,userList:_.userList}},function(e,n){return{onIssueCardClick:()=>{e(Lc())},onSaveChangesToLocalStore:t=>{e(Bc(t))},onDismissClick:()=>{e(ir()),n.navigate("../")},resetCustomAddressByLineID:(t,a)=>{e(or(`${a==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`))},openAddAddressDrawerHandler:n.openAddAddressDrawerHandler}})(go);function Ri(){const e=re.getSignedInUser(),n=de(),t=pe(),a=ho(),[s]=In(),b=s.get("cardType"),{useFeatureGate:f}=le(),{isFeatureEnabled:g}=f(W.isIssuePhysicalCardEnabled),{isFeatureEnabled:_}=f(W.isIssuePhysicalDebitCardEnabled),{isFeatureEnabled:i}=f(W.isDebitCardFeatureEnabled),{isFeatureEnabled:m}=f(W.isChargeCardFeatureEnabled),B=o(z=>fe(z)),D=Te(i,B),d=xe({isDebitCardFeatureEnabled:i,isBankingOnlyTenant:D}),j=we(B),P=ve(B),F=B.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,C=Re({isCardsOnlyTenant:j,isChargeCardFeatureEnabled:m,isBookKeepingTenant:P,isDebitCardProductVisible:d,chargeCardsCreditAccountLimit:F}),[h,w]=r.useState(!1);if(e==null)throw Error("Can't access issue card page without signing in...");r.useEffect(()=>{h||(w(!0),t(Rc(d&&v,C&&u,!1)))},[h,w,t]);const u=!!B.companyChargeCardInfo?.info?.isChargeCardEnabled,v=!!B.companyDebitCardInfo?.info?.isDebitCardEnabled,k=o(z=>Tt(z,C&&u,d&&v)),M=k.fetchState,A=k.issueCardStatus.fetchState,I=k.lastSelfIssuedDebitCardId,L=o(z=>I!=null?cr(z.chargeCardState,I):void 0),[l,p]=r.useState(null),[N,G]=r.useState(null),O=()=>{p(null)},U=(z,Z)=>{p(z),G(Z)};return r.useEffect(()=>{if(A==="Completed"){if(I!=null&&L?.type.code==="business_virtual_debit_card"){let z;z=L?.status.code==="request_on_hold"&&e.userId===L.cardHolderUserId?Er(B.tenantEmailDomain):Ae(B.tenantEmailDomain,I,e,L),n(z)}else n("../");t(ir())}},[A,I]),M==="Completed"?c.jsxs(c.Fragment,{children:[l!==null&&N!==null?c.jsx(Fi,{closeDrawerHandler:O,lineId:l,chargeCardTypeOption:N}):null,c.jsx(xi,{themeState:a,isIssuePhysicalCardEnabled:g,isIssuePhysicalDebitCardEnabled:_,isDebitCardFeatureEnabled:d,isChargeCardFeatureEnabled:C,isChargeCardSetupEnabled:u,isDebitCardSetupEnabled:v,navigate:n,fetchState:k.fetchState,openAddAddressDrawerHandler:U,defaultCardType:b==="creditCard"||b==="debitCard"?b:void 0})]}):M==="Error"?c.jsx(ot,{}):c.jsx(fo,{})}const Nr=[ma,dt],Bi=new Set(Nr),Li=Ne.div`
|
|
63
|
-
display: flex;
|
|
64
|
-
height: 100vh;
|
|
65
|
-
width: 100%;
|
|
66
|
-
flex: 1 1 auto;
|
|
67
|
-
flex-direction: column;
|
|
68
|
-
overflow: auto;
|
|
69
|
-
align-items: center;
|
|
70
|
-
background-color: ${e=>e.theme.colors.grey4};
|
|
71
|
-
`,Oi=De(function(e,n){const{myPendingActivationChargeCardListState:t}=n;return{myPendingActivationChargeCardListView:t,uiState:t.uiState,signedInUser:n.signedInUser}},function(e,n){const{navigate:t,currentTenant:a,location:s,signedInUser:b,myPendingActivationChargeCardListState:f}=n,{tenantEmailDomain:g}=a,{cards:_}=f;return{onChargeCardRowClick:i=>{const m=kr(_,i),B=Ae(g,i,b,m),D=ye(s.state?.pathnameStackToGoBack,s.pathname);t(B,{state:{pathnameStackToGoBack:D}})},onColumnSortConfigChanged:(i,m)=>{e(yt({uiState:{sortKey:i,sortOrder:m}}))},onReloadCards:()=>{e(je())},onBackClick:()=>{const i=a.userRole.includes("charge_card_user");e(yt({uiState:{sortKey:i?"cardName":"owner",sortOrder:"ascending"}})),t("../")}}})(bo);function Ui(){const e=de(),n=pe(),t=Ce(),a=Rt(),[s,b]=r.useState(!1),f=o(U=>Oc(U)),g=o(U=>fe(U)),_=o(U=>oa(U,g.companyId)),i=ia(_.controllers),{useFeatureGate:m}=le(),{isFeatureEnabled:B}=m(W.isChargeCardFeatureEnabled),{isFeatureEnabled:D}=m(W.isDebitCardFeatureEnabled),d=Te(D,g),j=xe({isDebitCardFeatureEnabled:D,isBankingOnlyTenant:d}),P=!!g.companyDebitCardInfo?.info?.isDebitCardEnabled,F=!!g.companyChargeCardInfo?.info?.isChargeCardEnabled,C=Fe(),h=we(g),w=ve(g),u=g.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,v=Re({isCardsOnlyTenant:h,isChargeCardFeatureEnabled:B,isBookKeepingTenant:w,isDebitCardProductVisible:j,chargeCardsCreditAccountLimit:u}),k=Pe(C?.loggedInUserRoleMap),M=o(U=>la(U)),{creditAccount:A,creditAccountRepayment:I}=o(U=>da(U)),L=o(U=>nr(U)).cards.filter(U=>U.type.code.includes("debit")).map(U=>U.connectedAccountId),l=[...new Set(L)],p=o(U=>nt(U,l));r.useEffect(()=>{s||f.fetchState==="Completed"||f.fetchState==="In-Progress"||(b(!0),n(je()),n(Qa()))},[s,n,f.fetchState]),r.useEffect(()=>{if(f.fetchState==="Completed"&&f.cards.length===1&&N!=null){const U=Ae(g.tenantEmailDomain,f.cards[0].id,N,f.cards[0]);e(U,{state:{message:t.state?.message}})}},[f.fetchState,f.cards]);const N=re.getSignedInUser();r.useEffect(()=>{A.fetchState!=="Completed"&&A.fetchState!=="In-Progress"&&v&&F&&k&&n(Je()),I.fetchState!=="Completed"&&I.fetchState!=="In-Progress"&&k&&n(Pt()),p.fetchState!=="Completed"&&p.fetchState!=="In-Progress"&&j&&P&&k&&n(rr())},[A.fetchState,I.fetchState,n,p.fetchState,j,P,k,v,F]);const G=ea(g);if(jt({events:Ca(G,Nr),onEvent:(U,z)=>{if(!Bi.has(U))return;const Z=$t(z);if(U===ma){const y=ie(Z?.card_id);if(y!=null){const x=zt(Z,y);if(x!=null)return void n(wt(x))}}n(je(!0))},onSubscribed:()=>{n(je(!0))}}),N==null)throw Error("Can't access address page without signing in...");const O=f.cards!=null&&f.cards.length>0;if(f.fetchState==="Completed"||O){const U=Qe(v,j,P,F);return c.jsx(Li,{children:c.jsx(Oi,{navigate:e,currentTenant:g,signedInUser:N,productInformation:U,myPendingActivationChargeCardListState:f,isChargeCardFeatureEnabled:v,isDebitCardFeatureEnabled:j,isDebitCardSetupEnabled:P,isChargeCardSetupEnabled:F,chargeCardCashbackDetailState:M,creditAccount:A,creditAccountRepayment:I,depositAccountListWithDebitCardIssued:p,controllerEmails:i,location:t})})}return c.jsx(va,{fetchState:"In-Progress",style:{backgroundColor:a.colors.grey5}})}const ji=De(function(e,n){const{companyId:t,companyLegalName:a}=n;return{chargeCardSetupView:wa(e,t),admins:n.adminList,companyLegalName:a,meetingUrl:"https://meetings.hubspot.com/niharn/demo-zeni-charge-cards?embed=true"}},function(e,n){const{navigate:t,companyId:a,isCompanyBusinessVerificationAndPaymentSetUpDone:s,isDebitCardSetupEnabled:b,isChargeCardSetupEnabled:f,signedInUser:g,location:_,productInformation:i,isEarlyPayEnabled:m,controllerEmails:B,chargeCardsCreditAccountLimit:D}=n;return{onSetupButtonClick:d=>{if(g!=null&&Q.trackCardsPromoPageClicked("enable cards"),s)switch(Q.trackCardsEnableCardsClick(B,i,"Cards Promo"),d){case"credit":e(qe(a,!0,"charge_cards",m,!1));break;case"debit":e(qe(a,!0,"debit_cards",m,!1));break;case"debit_and_credit":e(D===0?qe(a,!0,"debit_cards",m,!0):qe(a,!0,"charge_cards__debit_cards",m,!1))}else switch(Q.trackCardsSetupCardsClick(B,i,"Cards Promo"),d){case"credit":e(qe(a,!1,"charge_cards",m,!1));break;case"debit":e(qe(a,!1,"debit_cards",m,!1));break;case"debit_and_credit":e(D===0?qe(a,!1,"debit_cards",m,!0):qe(a,!1,"charge_cards__debit_cards",m,!1))}},onBackClick:()=>{const d=_e(_.state?.pathnameStackToGoBack);let j=d.poppedPathname;j==null&&(j=b||f?"..":"../.."),t(j,{state:{pathnameStackToGoBack:d.newStack}})},onLetsGoClick:()=>{t("./onboard")},onSetupChargeCardSuccess:()=>{s?(e(Xa()),t("../",{relative:"path"})):t("../setup",{relative:"path"})},onExpressInterestClick:()=>{e(Mc(a))}}})(yo),Mi=()=>{const e=de(),{tenantEmailDomain:n}=Me(),[t]=In(),a=t.get("cardPromoType"),s=pe(),{useDynamicConfig:b,useFeatureGate:f}=le(),[g,_]=r.useState(!1),{isFeatureEnabled:i}=f(W.isDebitCardFeatureEnabled),{isFeatureEnabled:m}=f(W.isEarlyPayFeatureEnabled),{isFeatureEnabled:B}=f(W.isChargeCardFeatureEnabled),{configValue:D}=b(Ze.zeniCardsConfig),d=o(ne=>fe(ne)),j=o(ne=>oa(ne,d.companyId)),P=ia(j.controllers),F=D.charge_card_cashback_rate_per_transaction!=null?D.charge_card_cashback_rate_per_transaction:.0175,C=Ce(),h=re.getSignedInUserTenant(n)?.companyId??d.companyId,w=o(ne=>wa(ne,h)),u=w.primaryFundingAccount,v=d.companyBillPayInfo?.info,k=we(d),M=ve(d),A=Te(i,d),I=d.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,L=xe({isDebitCardFeatureEnabled:i,isBankingOnlyTenant:A}),l=Re({isCardsOnlyTenant:k,isChargeCardFeatureEnabled:B,isBookKeepingTenant:M,isDebitCardProductVisible:L,chargeCardsCreditAccountLimit:I}),p=Ir({isCardsOnlyTenant:k,isChargeCardFeatureEnabled:B,isBookKeepingTenant:M}),N=L&&l===!1,G=v?.businessVerificationStatus?.code==="verified"&&(N||u?.accType==="depositAccount"||Uc(u?.providerVerificationStatus?.code??"")),O=re.getSignedInUser(),U=!!d.companyZeniAccountInfo?.info?.isZeniAccountEnabled,z=!!d.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,Z=!!d.company?.companyChargeCardInfo.isChargeCardEnabled,y=!!d.company?.companyDebitCardInfo.isDebitCardEnabled,x=!!d.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,Y=ne=>{_(ne)},q=o(ne=>ne.chargeCardSetupViewState.fetchState);if(O==null)throw Error("Can't access Charge Card promo page without signing in...");const E=Fe(),V=Pe(E?.loggedInUserRoleMap),J=vt(E?.loggedInUserRoleMap),[X,S]=r.useState(!1),[R,T]=r.useState(!1),[ee,K]=r.useState(!1);r.useEffect(()=>{X===!1&&C.state?.message==="activation"&&S(!0)},[C.state]),r.useEffect(()=>{R||q!=="Not-Started"||h==null||(T(!0),s(Pa(h,!0)))},[R,q,h,s]);const ke=d.companyChargeCardInfo?.info!=null&&Ia({cardInfo:d.companyChargeCardInfo.info,isProductVisible:p,isTOSAccepted:z,isSetupEnabled:Z,isUserHasCardsAdminLevelAccess:V,isUserHasCardsAccess:J}),be=d.companyDebitCardInfo?.info!=null&&Ia({cardInfo:d.companyDebitCardInfo.info,isProductVisible:L,isTOSAccepted:x,isSetupEnabled:y,isUserHasCardsAdminLevelAccess:V,isUserHasCardsAccess:J}),ge=L&&be&&p&&I>=0&&ke?"debit_and_credit":L&&be?"debit":"credit",ae=_o(a,ge),ue=w?.chargeCardTermsDetails?.fetchStatus?.fetchState,oe=r.useRef(null);r.useEffect(()=>{ue==="In-Progress"?oe.current=ae:ue!=="Error"&&ue!=="Not-Started"||(oe.current=null)},[ue,ae]);const te=ue!=="In-Progress"&&ue!=="Completed"||oe.current==null?ae:oe.current;r.useEffect(()=>{ae==="credit"&&(Z||p===!1&&y)||ae==="debit"&&y||ae==="debit_and_credit"&&y&&Z?e("../"):(ae==="debit_and_credit"&&z===!0&&x===!0||ae==="credit"&&(z===!0||p===!1&&x===!0)||ae==="debit"&&x===!0)&&V===!0&&e("../setup")},[G,Z,y,ae,z,x]),r.useEffect(()=>{ee||(s(jc("cardAdmin")),K(!0))},[ee]);const Ye=o(ne=>ar(ne.userState,ne.userRoleState,ne.userListViewState,"cardAdmin")),Ee=Qe(p,L,y,Z);return(ke||be)&&q==="Completed"?c.jsxs(c.Fragment,{children:[c.jsx(Bt,{analytics:Q,onLoad:()=>{if(Q.trackPageLoaded(br.Event.cardsPromoPage),!!p&&!Z||!!L&&!y||!!p&&!!L&&!y&&!Z){const ne=Ni({isDebitCardSetupEnabled:y,isChargeCardSetupEnabled:Z,isCreditCardProductVisibleForExpressInterest:p,isDebitCardProductVisible:L});Q.trackCardsPromoView(P,Ee,"Page",ne,"Promo Page")}}}),c.jsx(rt,{showConfetti:X}),c.jsx(Ie,{isAppContentDrawerOpen:g,handleDrawerToggle:Y}),c.jsx(ji,{signedInUser:O,location:C,showEnableCardButton:G,isCompanyBusinessVerificationAndPaymentSetUpDone:G,isChargeCardSetupEnabled:Z,isDebitCardSetupEnabled:y,companyLegalName:d.companyName,adminList:Ye.users,isCheckingEnabled:U,navigate:e,companyId:h,cardPromoType:te,controllerEmails:P,productInformation:Ee,isCreditCardProductVisible:l,isDebitCardFeatureEnabled:i,isEarlyPayEnabled:m,cashbackRate:F,chargeCardsCreditAccountLimit:I,onClickMenuIcon:()=>{Y(!0)}})]}):c.jsxs(c.Fragment,{children:[c.jsx(Ie,{isAppContentDrawerOpen:g,handleDrawerToggle:Y}),c.jsx(So,{})]})},Ni=({isDebitCardSetupEnabled:e,isChargeCardSetupEnabled:n,isCreditCardProductVisibleForExpressInterest:t,isDebitCardProductVisible:a})=>t&&a&&!e&&!n?"Credit & Debit Card":t&&!n?"Credit Card":a&&!e?"Debit Card":"";function ud(){const e=Ce(),n=o(E=>fe(E)),{useFeatureGate:t}=le(),{isFeatureEnabled:a}=t(W.isChargeCardFeatureEnabled),{isFeatureEnabled:s}=t(W.isDebitCardFeatureEnabled),{isFeatureEnabled:b}=t(W.isEarlyPayFeatureEnabled),{isFeatureEnabled:f}=t(W.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:g}=t(W.isCardPolicyEnabled),_=Te(s,n),i=xe({isDebitCardFeatureEnabled:s,isBankingOnlyTenant:_}),m=Io(n,a,s),B=!!n.company?.companyChargeCardInfo.isChargeCardTOSAccepted,D=!!n.company?.companyDebitCardInfo.isDebitCardTOSAccepted,d=!!n.company?.companyChargeCardInfo.isChargeCardEnabled,j=!!n.company?.companyDebitCardInfo.isDebitCardEnabled,P=Fe(),F=Pe(P?.loggedInUserRoleMap),C=vt(P?.loggedInUserRoleMap),{isFeatureEnabled:h}=t(W.isCashbackFeatureEnabled),w=n.userRole.includes("charge_card_user"),u=!w,v=!w&&d,k=n?.userRole!=null&&Nc(n?.userRole),M=(n?.company==null||n.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!k)&&Vc(P?.loggedInUserRoleMap),A=Hc(P?.loggedInUserRoleMap),I=(n?.company==null||n.company.featuresActivationInfo?.isReimbursementFeatureEnabled&&!k)&&Gc(P?.loggedInUserRoleMap),{isFeatureEnabled:L}=t(W.isDepositAccountsFeatureEnabled),l=L&&!k&&Hn(P?.loggedInUserRoleMap),p=d&&!k,N=j&&!k,G=m&&!k&&Pe(P?.loggedInUserRoleMap),O=$c(P?.loggedInUserRoleMap),U=we(n),z=ve(n),Z=n.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,y=Re({isCardsOnlyTenant:U,isChargeCardFeatureEnabled:a,isBookKeepingTenant:z,isDebitCardProductVisible:i,chargeCardsCreditAccountLimit:Z}),x=n.companyChargeCardInfo?.info!=null&&Ia({cardInfo:n.companyChargeCardInfo.info,isProductVisible:y,isTOSAccepted:B,isSetupEnabled:d,isUserHasCardsAdminLevelAccess:F,isUserHasCardsAccess:C}),Y=n.companyDebitCardInfo?.info!=null&&Ia({cardInfo:n.companyDebitCardInfo.info,isProductVisible:i,isTOSAccepted:D,isSetupEnabled:j,isUserHasCardsAdminLevelAccess:F,isUserHasCardsAccess:C}),q=x||Y;return c.jsxs(es,{children:[F?c.jsx(se,{path:"setup",element:c.jsx(pn,{isBillPayAdminLevelAccess:M,isReimbursementAdminLevelAccess:I,isZeniAccountAdminLevelAccess:l,isChargeCardAdminLevelAccess:G,isUserHasOnlyCardAccess:O,isUserHasOnlyBillPayAccess:A,productType:"charge_cards",type:"setup"})}):null,F?c.jsx(se,{path:"verification",element:c.jsx(pn,{isBillPayAdminLevelAccess:M,isUserHasOnlyBillPayAccess:A,isReimbursementAdminLevelAccess:I,isZeniAccountAdminLevelAccess:l,isChargeCardAdminLevelAccess:G,isUserHasOnlyCardAccess:O,productType:"charge_cards",type:"verification"})}):null,F&&g?c.jsxs(c.Fragment,{children:[c.jsx(se,{path:"policy",element:c.jsx(No,{})}),c.jsx(se,{path:"policy/new",element:c.jsx(Fo,{})}),c.jsx(se,{path:"policy/:templateId/edit",element:c.jsx(Lo,{})})]}):null,c.jsx(se,{path:"promo",element:c.jsx(Mi,{})}),p||N?c.jsxs(c.Fragment,{children:[c.jsx(se,{path:"/",element:c.jsx(gn,{isPaymentDrawerOpen:!1})}),G&&b?c.jsx(se,{path:"payment",element:c.jsx(gn,{isPaymentDrawerOpen:!0})}):null,c.jsx(se,{path:"activate",element:c.jsx(Ui,{})}),c.jsx(se,{path:"onboard",element:c.jsx(Ii,{})}),F?c.jsx(se,{path:"new",element:c.jsx(Ri,{})}):null,h&&u?c.jsx(se,{path:"cashback",element:c.jsx(zo,{})}):null,v?c.jsx(se,{path:"statements",element:c.jsx(bi,{})}):null,G&&f&&d?c.jsx(se,{path:"payment-history",element:c.jsx(gi,{})}):null,c.jsx(se,{path:":cardId/activate",element:c.jsx(Wo,{})}),c.jsx(se,{path:":cardId/setPin",element:c.jsx(Di,{})}),c.jsx(se,{path:":cardId/addToWallet",element:c.jsx(Vo,{})}),c.jsx(se,{path:":cardId/*",element:c.jsx(ri,{})}),c.jsx(se,{path:"*",element:c.jsx(ot,{})})]}):(B||D)&&F?c.jsx(se,{path:"*",element:c.jsx(Sa,{to:"../setup"})}):q?c.jsx(se,{path:"*",element:c.jsx(Sa,{to:"../promo",state:e.state})}):c.jsx(se,{path:"*",element:null})]})}export{ud as default};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{j as C}from"./liveblocks-BUQfB0Zp.js";import{a}from"./sentry-BLIwU6uZ.js";import{u as D,g as v,j as c,N as w}from"./core-OMb8nkC1.js";import{Lv as _,eV as A,f_ as L,o3 as O,gp as E,fZ as j,fw as U,LC as F}from"./zeni-epic-state-BZ6N8nVI.js";import{u as $,z as m,L as g,D as k,o as H}from"./index-NcZU0lXl.js";import{n as z}from"./mui-JZY-3hhJ.js";import{t as R}from"./getLocaleForTenant-Bn16hOPH.js";import{g as P,Q as V}from"./QBOConnectionScreen-CSgGZuyl.js";import"./recharts-DAM4r1-u.js";import"./analytics-BLbM2ksu.js";import"./plaid-B_OuebQv.js";import"./dnd-DVcQZAG5.js";import"./stripe-DMRn4zHo.js";import"./lottie-DDI83OWz.js";import"./lexical-CNfNgAkp.js";import"./pdf-6FZlivdz.js";import"./utils-Bia5qc4p.js";import"./empty-BACf_dXg.js";import"./pdf-lib-CtBKoWQc.js";import"./index-CPre97x9.js";import"./url-BMb7_G4N.js";import"./index-BQIzm-tN.js";import"./decodeURIComponentSafe-CrZYJ6cg.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]="2e73a0a3-c89e-4fb0-b4ba-bfed508bc9cb",t._sentryDebugIdIdentifier="sentry-dbid-2e73a0a3-c89e-4fb0-b4ba-bfed508bc9cb")}catch{}})();const G=z.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex: 1 1 auto;
|
|
4
|
-
flex-direction: row;
|
|
5
|
-
justify-content: center;
|
|
6
|
-
align-items: center;
|
|
7
|
-
width: 100%;
|
|
8
|
-
height: 100vh;
|
|
9
|
-
background-color: ${t=>t.theme.colors.background};
|
|
10
|
-
box-shadow: ${t=>`0px 2px ${H.sp1} ${t.theme.colors.dropShadowNormal}`};
|
|
11
|
-
`;function fe(){const t=D(),i=v(),{setLoading:d,clearAllLoading:h}=$(),f=a.useRef(!1),p=a.useRef(!1),{code:x,realmId:T,state:y}=P(i.search),N=x!==""&&T!==""&&y!=="",I=c(l=>_(l)),e=c(l=>A(l)),n=c(l=>l.tenantState.fetchState),r=c(l=>l.tenantState.activeTenantFetchState.fetchState),o=m.getSignedInUser(),u=m.getActiveTenantForUser()?.tenantId,s=e?.externalConnections?.fetchState,b=e?.externalConnections?.saveConnectionState,S=e.externalConnections?.accounting[0]?.isValid;return a.useLayoutEffect(()=>{d(g.CONNECTION_AUTH)},[d]),a.useEffect(()=>{f.current||o==null||u==null||(f.current=!0,n==="Completed"||r!=="Not-Started"&&r!=="Error"||(d(g.TENANT_FETCHING),t(L(o.userId,u))))},[f,n,d]),a.useEffect(()=>{e.tenantId==null&&!p.current&&o!=null&&(p.current=!0,!(u==null||u!=null&&(r==="Completed"||r==="Error"))||n!=="Not-Started"&&n!=="Error"||t(O(o.userId)))},[p,n,r]),a.useEffect(()=>{o==null||e?.tenantId==null||e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||s==="In-Progress"||b!=="Error"||(d(g.CONNECTION_AUTH),t(E(o.userId,e.tenantId)))},[b]),a.useEffect(()=>{n!=="Completed"&&r!=="Completed"||o==null||e?.tenantId==null||(t(j(e.tenantId)),m.saveActiveTenantDomainForUser(e.tenantEmailDomain),U(o?.userId,o?.zeniSessionId,e.tenantId),k.updateAppLocaleID(R(F(e))),e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||s==="In-Progress"||o==null||e==null||t(E(o.userId,e.tenantId)))},[n,r,s]),a.useEffect(()=>{I.tenantsCoreDetailsInOrder.length>0&&n==="Completed"&&m.saveSignedInUserTenants(I.tenantsCoreDetailsInOrder)},[I.tenantsCoreDetailsInOrder.length,n]),a.useEffect(()=>{n!=="Completed"&&n!=="Error"||r!=="Completed"&&r!=="Error"||s!=="Completed"&&s!=="Error"||h()},[n,r,s]),e==null||n!=="Completed"&&r!=="Completed"||s!=="Completed"?null:N||S===!1?C.jsx(G,{children:C.jsx(V,{})}):C.jsx(w,{to:"/",replace:!0})}export{fe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as i}from"./liveblocks-BUQfB0Zp.js";import{z as n}from"./index-NcZU0lXl.js";import{g as d}from"./QBOConnectionScreen-CSgGZuyl.js";import"./sentry-BLIwU6uZ.js";import{g as p,N as s}from"./core-OMb8nkC1.js";import"./zeni-epic-state-BZ6N8nVI.js";import"./recharts-DAM4r1-u.js";import"./mui-JZY-3hhJ.js";import"./analytics-BLbM2ksu.js";import"./plaid-B_OuebQv.js";import"./dnd-DVcQZAG5.js";import"./stripe-DMRn4zHo.js";import"./lottie-DDI83OWz.js";import"./lexical-CNfNgAkp.js";import"./pdf-6FZlivdz.js";import"./utils-Bia5qc4p.js";import"./empty-BACf_dXg.js";import"./pdf-lib-CtBKoWQc.js";import"./index-CPre97x9.js";import"./url-BMb7_G4N.js";import"./index-BQIzm-tN.js";import"./decodeURIComponentSafe-CrZYJ6cg.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new t.Error().stack;o&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[o]="817363c8-7f1d-4590-b58b-cef70b99ca15",t._sentryDebugIdIdentifier="sentry-dbid-817363c8-7f1d-4590-b58b-cef70b99ca15")}catch{}})();const U=()=>{const t=p(),{code:o,realmId:r,state:e}=d(t.search),m=n.getSignedInUser()?.userId??"";if(f(o,r,e,m)===!0){const a=`../../${e}/onboarding?code=${o}&realmId=${r}&state=auth_flow`;return i.jsx(s,{to:a})}return i.jsx(s,{to:"../../"})},f=(t,o,r,e)=>t!=""&&o!=""&&r!=""&&e!=null&&e!="";export{U as default,f as hasValidParams};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import{j as a}from"./liveblocks-BUQfB0Zp.js";import{t as Me,A as Ce}from"./AddressScreen-Jgfq0eWZ.js";import $e from"./NotFoundScreen-CxRYls3k.js";import{a as g}from"./sentry-BLIwU6uZ.js";import{h as oe,g as se,u as ie,i as re,j as D,N as E,n as ce,l as ze,o as qe,p as z}from"./core-OMb8nkC1.js";import{Z as de,j as le,z as B,a as ue,m as Qe,F as _,s as V,E as H,d as N,B as ve,f as X,ap as Ke,J as Ze,aq as ke,k as te,ar as Je,as as Ie,o as He,at as We,au as Ee,av as Xe}from"./index-NcZU0lXl.js";import{bn as Ye,eV as ee,fS as et,fA as pe,fy as me,bs as tt,o1 as at,fO as nt,bS as ot,k2 as ae,k5 as je,L$ as st,bY as it,c6 as ge,tB as he,tm as rt,Mu as Y,tC as _e,JU as ct,l6 as Ue,Mv as Ve,Mw as dt,Mx as lt,My as ut,k0 as pt,k3 as mt,to as Be,tA as gt,bE as xe,cy as ht,tO as Te,rw as ft,rk as yt,k_ as St,ge as bt,gd as Ct,gc as kt,Mz as It,tg as Et,tP as xt,tS as Tt,tV as Ot,t$ as Pt,cX as At}from"./zeni-epic-state-BZ6N8nVI.js";import{n as fe}from"./mui-JZY-3hhJ.js";import{g as Dt,h as Ft,q as ne}from"./QBOConnectionScreen-CSgGZuyl.js";import"./recharts-DAM4r1-u.js";import"./analytics-BLbM2ksu.js";import"./plaid-B_OuebQv.js";import"./dnd-DVcQZAG5.js";import"./stripe-DMRn4zHo.js";import"./lottie-DDI83OWz.js";import"./lexical-CNfNgAkp.js";import"./pdf-6FZlivdz.js";import"./utils-Bia5qc4p.js";import"./empty-BACf_dXg.js";import"./pdf-lib-CtBKoWQc.js";import"./index-CPre97x9.js";import"./url-BMb7_G4N.js";import"./index-BQIzm-tN.js";import"./decodeURIComponentSafe-CrZYJ6cg.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]="8a9da76d-41ea-4f4f-bcb6-ce838452552c",t._sentryDebugIdIdentifier="sentry-dbid-8a9da76d-41ea-4f4f-bcb6-ce838452552c")}catch{}})();const wt=ce(function(t,o){const s=[];o.isApAgingFeatureEnabled===!1&&s.push("accounts_payable_aging"),o.isArAgingFeatureEnabled===!1&&s.push("accounts_receivable_aging"),o.shouldFetchZeniAccountsPromoCard===!1&&s.push("zeni_accounts_promo_card"),o.shouldFetchRewardsPlanCard===!1&&s.push("rewards_card"),o.isExpenseAutomationEnabledForUser===!1&&s.push("expense_automation_card");const u=nt(t,s,o.signedInUser,o.isExpenseAutomationFeatureEnabledV2,o.isExpenseAutomationEnabledForUser,o.isTreasuryEnabled);return{dashboardFetchState:ot(u.reportsInOrder.map(d=>({fetchState:d.fetchState,error:d.error}))).fetchState}},function(t,o){const{themeState:s,navigate:u,location:d}=o;return{onZeniLogoClick:()=>{s.toggle()},onDashboardFetchDone:()=>{const r=V(d.state?.pathnameStackToGoBack,d.pathname);u("../../dashboard",{state:{pathnameStackToGoBack:r,message:"activation"}})}}})(Ke),vt=()=>{const t=oe(),o=se(),s=ie(),u=de(),[d,r]=g.useState(!1),[p,S]=g.useState(!1),{tenantEmailDomain:e}=re(),n=le(),i=B.getSignedInUser(),h=Ye(i),{useFeatureGate:m}=ue(),I=Qe(),{isFeatureEnabled:x}=m(_.isApAgingFeatureEnabled),{isFeatureEnabled:T}=m(_.isArAgingFeatureEnabled),{isFeatureEnabled:k}=m(_.isDepositAccountsFeatureEnabled),{isFeatureEnabled:f}=m(_.isReferralFeatureEnabled),{isFeatureEnabled:U}=m(_.isExpenseAutomationEnabled),{isFeatureEnabled:C}=m(_.isExpenseAutomationEnabledV2),{isFeatureEnabled:F}=m(_.isDebitCardFeatureEnabled),M=C||U&&h,c=D(l=>ee(l)),{isFeatureEnabled:L}=m(_.isTreasuryEnabled),w=c.company!=null&&et(c.company),R=L&&w,O=D(l=>l.onboardingCustomerViewState.fetchState),b=c.excludedResources,G=c.companyId??B.getSignedInUserTenant(e)?.companyId;if(i==null)throw Error("Can't access onboarding flow without signing in...");const v=pe(F,c),P=me(c),A=[],K=b?.resources?.find(l=>l.resource==="/reports/top_expenses")==null,$=b?.resources?.find(l=>l.resource==="/reports/task_card")==null,q=c?.userRole!=null&&tt(c?.userRole),j=b?.resources?.find(l=>l.resource==="/bills")==null&&!q,Q=b?.resources?.find(l=>l.resource==="/reimbursements")==null;if(K===!1&&A.push("top_expenses"),$===!1&&A.push("task_card"),j===!1&&A.push("bill_pay_card","bill_pay_promo_card"),Q===!1&&A.push("reimbursement_card","reimbursement_promo_card"),k===!1&&A.push("zeni_accounts_promo_card"),f===!1&&A.push("rewards_card"),g.useEffect(()=>{O!=="Completed"||d||v||P||(r(!0),s(at(i.userId,G,c.tenantId,!0,!1,A)))},[d,O,v,P,i,c.tenantId,s]),g.useEffect(()=>{(v||P)&&setTimeout(()=>{S(!0)},5e3)},[v,P]),O!=="Completed")return a.jsx(E,{to:"../"});if(O==="Completed"&&p){const l=V(o.state?.pathnameStackToGoBack,o.pathname);if(v)return a.jsx(E,{to:"../../checking",state:{...o.state,pathnameStackToGoBack:l,message:"activation"}});if(P)return a.jsx(E,{to:"../../cards",state:{...o.state,pathnameStackToGoBack:l,message:"activation"}})}return n?.loggedInUserRoleMap!=null?a.jsxs(a.Fragment,{children:[a.jsx(H,{analytics:N,onLoad:l=>(Z=>Z.trackPageLoaded(X.Event.onboardingDashboardActivation))(l)}),a.jsx(wt,{navigate:t,location:o,themeState:u,signedInUser:i,isApAgingFeatureEnabled:x,isArAgingFeatureEnabled:T,shouldFetchZeniAccountsPromoCard:k,shouldFetchRewardsPlanCard:f,isExpenseAutomationEnabledForUser:M,isExpenseAutomationFeatureEnabledV2:C,isTreasuryEnabled:R,loggedInUserRoleMap:n?.loggedInUserRoleMap})]}):a.jsx(ve,{fetchState:"In-Progress",style:{backgroundColor:I.colors.grey5}})},Oe=fe.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
height: 100vh;
|
|
4
|
-
background-color: ${t=>t.theme.colors.grey4};
|
|
5
|
-
`,Pe=fe.div`
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-direction: column;
|
|
8
|
-
align-items: center;
|
|
9
|
-
min-width: calc(100% - ${Ie}px);
|
|
10
|
-
padding-left: ${Ie}px;
|
|
11
|
-
flex: 1;
|
|
12
|
-
|
|
13
|
-
${t=>t.theme.breakpoints.down("md")} {
|
|
14
|
-
width: 100%;
|
|
15
|
-
padding-left: ${He.sp0};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
${t=>t.windowSize!=="small"?"overflow: auto;":""}
|
|
19
|
-
`,Ae=ce(function(t,o){const{companyId:s,isAdmin:u,currentTenant:d,isOnAddressPage:r}=o,p=B.getSignedInUser(),S=d.tenantId,e={userId:p?.userId??"",sessionId:p?.zeniSessionId??"",tenantId:S??""},n=ee(t),i=he(t,s),h=Ve(t),m=ge(d?.userRole??[])&&i.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",I=dt(t.userRoleConfigState);return{onboardingCustomerView:i,analytics:N,isRefreshingViewInBackground:!1,isDisabled:m,companyTitles:I.companyTitles,connectedAccountProvider:n.company?.featuresActivationInfo.connectedAccountProvider??"",fileProps:{filesEndPoint:We.fileMicroServiceBaseUrl,authParams:e},signedInUser:B.getSignedInUser(),currentTenant:d,isAdmin:u,isOnAddressPage:r,meetingUrl:"https://meetings.hubspot.com/niharn/zeni-onboarding-overview?embed=true",cardPaymentView:h,isCardPaymentPopupOpen:!1,stripeKey:te.stripeKey}},function(t,o){const{companyId:s,currentTenant:u,themeState:d,navigate:r,location:p}=o,{tenantEmailDomain:S}=u;return{onFetchLinkTokenClick:(e,n)=>{t(Pt(e,n))},onEstablishConnectionClick:(e,n)=>{t(Ot(e,n))},onUpdatePaymentAccountStatus:(e,n,i)=>{t(Tt(e,n,i))},onUpdatePaymentAccountLoginStatus:(e,n)=>{t(xt(!1,e,n))},onEstablishConnectionSuccess:()=>{t(Et(s,!0,!1))},handleOnConnectClick:()=>{N.trackOnboardingConnectQBO(),ne.handleClick()},updateQBOPopupState:e=>{t(Y({isQBOPopupOpen:e}))},onCompanyOfficerUpdated:e=>{const n=e.map(i=>{const{officerType:h,userId:m,name:I,email:x,ssn:T,nationalityCountryCode:k,dob:f,phone:U,syncToken:C,selectDocument:F,role:M,ownership:c,isSelectedForVerification:L,userVerificationStatus:w,fileIds:R,isPhoneVerified:O}=i;let b;return F.selectDocumentType==="driverLicense"?b="driving_license":F.selectDocumentType==="passport"?b="passport":F.selectDocumentType==="stateId"?b="id_document":F.selectDocumentType==="ssnCard"&&(b="social_security_card"),{officerType:h,userId:m,firstName:I.firstName,lastName:I.lastName,email:x,ssn:T,nationalityCountryCode:k?.selectedOption!=null?Ee(k.selectedOption):void 0,phone:U,birthday:f!=null?xe(f?.toString()):f,syncToken:C,titleAtCompany:M.selectedOption,ownershipInCompany:c,documentTypeSelectedForVerification:b,isSelectedForVerification:L,userVerificationStatus:w,fileIds:R,additionalDocumentTypesRequestedForVerification:[],additionalSubmittedDocumentsForVerificationFileIds:[],areAdditionalDocumentsRequestedForVerification:!1,areAdditionalDocumentsSubmittedForVerification:!1,isPhoneVerified:O}});t(Te({officers:n}))},onGetOtp:(e,n)=>{t(kt(e,"CustomerOnboarding")),n!=null&&t(It({officerType:n,phone:e}))},onResendOtp:e=>{t(Ct(e,"CustomerOnboarding"))},onVerifyOtp:(e,n)=>{t(bt(e,n,"CustomerOnboarding"))},updateFilesEntity:e=>{t(St({files:e}))},onDeleteFile:e=>{t(yt(e))},onEditFileName:(e,n)=>{t(ft(e,n.split(".")[0]))},onCompanyDetailsChanged:e=>{const{companyDescription:n,companyIndustry:i,companyIndustryType:h,companyLegalName:m,companyTaxId:I,companyWebsite:x,companyPhone:T,primaryContactEmail:k,primaryContactName:f,primaryContactUserId:U,primaryContactSyncToken:C,syncToken:F,fileIds:M,typeOfIncorporation:c,stateOfIncorporation:L,incDate:w,companySourceOfFunds:R,companySourceOfFundsDescription:O,companySubIndustry:b,countriesOfOperations:G,purposeOfAccount:v,purposeOfAccountDescription:P,regulatedStatus:A,regulatedStatusDescription:K,transactionVolume:$,transactionVolumeDescription:q,usNexus:j,usNexusTypes:Q}=e,l={companyId:s,companyDescription:n,companyIndustry:i.selectedOption,companyIndustryType:h?.selectedOption??"",companyLegalName:m,taxIdOrEIN:I,website:x!=""&&x!=null?ht(x):void 0,phone:T,syncToken:F,fileIds:M,incDate:w!=null?xe(w?.toString()):w,typeOfIncorporation:c?.selectedOption??"",stateOfIncorporation:L?.selectedOption??"",companySourceOfFunds:R?.selectedOption??"",companySourceOfFundsDescription:O,companySubIndustry:b?.selectedOption??"",countriesOfOperations:G?.selectedOptions.map(J=>J.length===2?J:Ee(J))??[],purposeOfAccount:v?.selectedOption??"",purposeOfAccountDescription:P,regulatedStatus:A??"",regulatedStatusDescription:K,transactionVolume:$?.selectedOption??"",transactionVolumeDescription:q,usNexus:j,usNexusTypes:Q?.selectedOptions??[]},Z={userId:U,firstName:f.firstName,lastName:f.lastName,email:k,syncToken:C};t(Te({companyDetails:l,primaryContactDetails:Z}))},onAddressClick:(e,n)=>{const i=De(S,e,n),h=V(p.state?.pathnameStackToGoBack,p.pathname);r(i,{state:{pathnameStackToGoBack:h}})},onRegisteredAddressClick:(e,n)=>{const i=De(S,e,n),h=V(p.state?.pathnameStackToGoBack,p.pathname);r(i,{state:{pathnameStackToGoBack:h}})},onUpdateCustomerView:(e,n,i)=>{t(gt(s,!1,n,i,e))},onAddressEditHandler:e=>{if(e!=null){const n=Me(e);t(Ue({addressType:"subscription_billing_address",addressToCreate:n}))}},onSkipSetupClick:()=>{const e=V(p.state?.pathnameStackToGoBack,p.pathname);t(Be(s,!1,!1)),r("./activation",{state:{pathnameStackToGoBack:e}})},onUpdateStep:e=>{t(_e({step:e}))},onZeniLogoClick:()=>{d.toggle()},handleLogOutClick:()=>{const e=V(p.state?.pathnameStackToGoBack,p.pathname);r("/signout",{replace:!0,state:{pathnameStackToGoBack:e,message:"logout"}})},handleCockpitClick:()=>{window.open("/cockpit")},handleCreateCardSetupIntent:e=>{t(je(e))},handleConfirmCardSetupIntent:e=>{t(mt(e))},updateCardPaymentModalState:e=>{t(Y({isCardPaymentPopupOpen:e}))},handleAddCardPaymentSource:(e,n,i)=>{t(pt(e,n,i))},handleFetchPaymentSources:()=>{t(ae())},resetCardPaymentViewState:()=>{t(ut())},handleResetCardPaymentErrorStatuses:()=>{t(lt())},redirectToProductSuitePage:()=>{const e=V(p.state?.pathnameStackToGoBack,p.pathname);r(`/${S}/onboarding/thankyou`,{state:{pathnameStackToGoBack:e,message:"OnboardingThankyou"},replace:!0})}}})(Je),W=({taxCFOCustomer:t=!1,isOnAddressPage:o=!1,appContent:s})=>{const u=oe(),d=se(),r=ie(),p=Ze(),S=de(),[e,n]=g.useState(!1),[i,h]=g.useState(!1),[m,I]=g.useState(!1),{tenantEmailDomain:x}=re(),T=le(),{useFeatureGate:k}=ue(),{isFeatureEnabled:f}=k(_.isDebitCardFeatureEnabled),U=ze("/:tenantEmailDomain/onboarding")!==null&&d.search?.includes("code"),C=D(y=>y.onboardingCustomerViewState.fetchState),F=D(y=>y.onboardingCustomerViewState.currentStep),M=D(y=>y.onboardingCustomerViewState.uiState),c=D(y=>ee(y)),L=D(y=>y.userRoleConfigState.fetchState),w=D(y=>y.cardPaymentViewState),R=ke(w.addCardPaymentSourceStatus.fetchState),O=w.addCardPaymentSourceStatus.fetchState,{code:b,realmId:G,state:v}=Dt(d.search),P=c.externalConnections?.accounting[0],A=P?.connectionType,K=P?.connectionName,$=P?.connectionId??"",q=B.getSignedInUser()?.userId??"";g.useEffect(()=>{i||(h(!0),r(ae()))},[i,r]),g.useEffect(()=>{m||(je(["card"]),I(!0))},[m]),g.useEffect(()=>{R==="In-Progress"&&O==="Completed"&&r(ae())},[R,O]),g.useEffect(()=>{Ft(b,G,v,$,q)===!0&&c.externalConnections?.saveConnectionState!=="In-Progress"&&C==="Completed"&&(r(st(c.tenantId,{connection_type:A??"accounting",connection_name:K??"quickbooks_online",authorization_code:b,realm_id:G,connection_id:$,user_id:q},it(window.location.origin+"/onboarding/auth"))),N.trackOnboardingSaveQBOConnection(G,$),u(d.pathname))},[b,G,v,d.pathname,C]),g.useEffect(()=>{ne.isInitiated===!1&&C==="Completed"&&ne.init("/onboarding/auth",c.tenantEmailDomain)},[C]);const j=c.companyId??B.getSignedInUserTenant(x)?.companyId,Q=ge(c?.userRole??[]),l=D(y=>he(y,j));g.useEffect(()=>{e||C!=="Not-Started"||j==null||(n(!0),r(rt(j,!0,!U)))},[e,C,j]),g.useEffect(()=>{c.externalConnections?.saveConnectionState!=="Completed"&&c.externalConnections?.saveConnectionState!=="Error"||!M.isQBOPopupOpen||F!=="qbo_connection"||r(Y({isQBOPopupOpen:!1}))},[c.externalConnections?.saveConnectionState]),g.useEffect(()=>{C==="Completed"&&U&&(r(_e({step:"qbo_connection"})),r(Y({isQBOPopupOpen:!0})))},[U,C]),g.useEffect(()=>{L==="Not-Started"&&r(ct(!0))},[L,r]);const Z=ke(l.companyDetailsLocalData?.addressStatus);g.useEffect(()=>{l.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate==null&&l.companyDetailsLocalData?.addressStatus?.addressToCreate!=null&&Z==null&&r(Ue({addressType:"company_registered_address",addressToCreate:l.companyDetailsLocalData?.addressStatus?.addressToCreate}))},[l.companyDetailsLocalData?.addressStatus?.addressToCreate,l.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate]);const J=l.isInterimEmailSent;if(B.getSignedInUser()==null)throw Error("Can't access onboarding flow without signing in...");const Le=pe(f,c),Re=me(c),ye=c.company?.companyOnboardingInfo.isOnboardingCompleted,Se=y=>y.trackPageLoaded(X.Event.onboardingPage),be=c.productSettings.isOtherProductsEnabled,Ge=c.productSettings.isTreasuryEnabled;if(ye===!0){if(!be)return Ge?a.jsx(E,{to:"../../treasury"}):Le?a.jsx(E,{to:"../../checking"}):Re?a.jsx(E,{to:"../../cards"}):a.jsx(E,{to:"../../dashboard"});const y=l.updateStatus.fetchState==="In-Progress";if(be&&!y)return t?a.jsxs(Oe,{children:[a.jsx(H,{analytics:N,onLoad:Ne=>Se(Ne)}),a.jsx(Ae,{navigate:u,location:d,companyId:j,currentTenant:c,isAdmin:Q,isOnAddressPage:o,themeState:S,googleAPIKey:te.googleMapsAPIKey}),s!=null?a.jsx(Pe,{windowSize:p,children:s}):null]}):a.jsx(E,{to:"../../onboarding/thankyou"})}else if(ye===!1&&T?.loggedInUserRoleMap!=null)return J===!0?a.jsx(E,{to:"../../onboarding/thankyou"}):a.jsxs(Oe,{children:[a.jsx(H,{analytics:N,onLoad:y=>Se(y)}),a.jsx(Ae,{navigate:u,location:d,companyId:j,currentTenant:c,isAdmin:Q,isOnAddressPage:o,themeState:S,googleAPIKey:te.googleMapsAPIKey}),s!=null?a.jsx(Pe,{windowSize:p,children:s}):null]});return null};function De(t,o,s){let u=`/${t}/onboarding/address`;return u=s!=null?u.concat(`/edit/${o}/${encodeURIComponent(s)}`):u.concat(`/new/${o}`),u}const Fe=fe.div`
|
|
20
|
-
display: flex;
|
|
21
|
-
height: 100vh;
|
|
22
|
-
background-color: ${t=>t.theme.colors.grey4};
|
|
23
|
-
`,we=ce(function(t,o){const{companyId:s,currentTenant:u}=o,d=he(t,s),r=Ve(t);return{hasVerifiedBankAccount:(d.paymentAccount?.providerVerificationStatus?.code?.includes("verified")??!1)||(r.bankAccountsList[0]?.providerVerificationStatus?.code?.includes("verified")??!1),isDisabled:ge(u?.userRole??[])&&d.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",signedInUser:B.getSignedInUser(),currentTenant:u,meetingUrl:"https://meetings.hubspot.com/niharn/zeni-onboarding-overview?embed=true"}},function(t,o){const{currentTenant:s,themeState:u,navigate:d,location:r}=o,{tenantEmailDomain:p}=s;return{onZeniLogoClick:()=>{u.toggle()},handleLogOutClick:()=>{const S=V(r.state?.pathnameStackToGoBack,r.pathname);d("/signout",{replace:!0,state:{pathnameStackToGoBack:S,message:"logout"}})},handleCockpitClick:()=>{window.open("/cockpit")},handleUpdatePaymentAddressDetailClick:()=>{const S=V(r.state?.pathnameStackToGoBack,r.pathname);d(`/${p}/onboarding/billing/edit`,{state:{pathnameStackToGoBack:S,message:"UpdatePaymentAddressDetail"}})}}})(Xe),jt=()=>{const t=oe(),o=ie(),s=se(),u=de(),{useFeatureGate:d}=ue(),{isFeatureEnabled:r}=d(_.isDebitCardFeatureEnabled),{tenantEmailDomain:p}=re(),S=le(),[e,n]=g.useState(!1);g.useEffect(()=>{e===!1&&s.state?.message==="OnboardingThankyou"&&n(!0)},[s.state]);const i=D(f=>ee(f)),h=i.productSettings.isOtherProductsEnabled;g.useEffect(()=>{o(Be(m,!1,!h))},[]);const m=i.companyId??B.getSignedInUserTenant(p)?.companyId;if(S.loggedInUser==null)throw Error("Can't access onboarding flow without signing in...");const I=pe(r,i),x=me(i),T=D(f=>f.onboardingCustomerViewState.updateStatus.fetchState),k=i.company?.companyOnboardingInfo.isOnboardingCompleted;return k!==!0||h?T==="Completed"&&k===!0&&h&&S?.loggedInUserRoleMap!=null?a.jsxs(Fe,{children:[a.jsx(H,{analytics:N,onLoad:f=>{f.trackPageLoaded(X.Event.onboardingLandingPage,"Onboarding",At(i.productSettings))}}),a.jsx(we,{navigate:t,showUpdatePaymentDetailButton:h,location:s,companyId:m,currentTenant:i,themeState:u,isVisitingFirstTime:e})]}):T==="Completed"&&k===!1&&S?.loggedInUserRoleMap!=null?a.jsxs(Fe,{children:[a.jsx(H,{analytics:N,onLoad:f=>{f.trackPageLoaded(X.Event.onboardingInterimPage)}}),a.jsx(we,{navigate:t,showUpdatePaymentDetailButton:h,location:s,companyId:m,currentTenant:i,themeState:u,isVisitingFirstTime:e})]}):a.jsx(ve,{fetchState:T}):I?a.jsx(E,{to:"../../checking"}):x?a.jsx(E,{to:"../../cards"}):a.jsx(E,{to:"../../dashboard"})};function oa(){return a.jsxs(qe,{children:[a.jsx(z,{path:"/",element:a.jsx(W,{})}),a.jsx(z,{path:"/billing/edit",element:a.jsx(W,{taxCFOCustomer:!0})}),a.jsx(z,{path:"/thankyou",element:a.jsx(jt,{})}),a.jsx(z,{path:"/activation",element:a.jsx(vt,{})}),a.jsx(z,{path:"/address/edit/:addressType/:addressId",element:a.jsx(W,{isOnAddressPage:!0,appContent:a.jsx(Ce,{})})}),a.jsx(z,{path:"/address/new/:addressType",element:a.jsx(W,{isOnAddressPage:!0,appContent:a.jsx(Ce,{})})}),a.jsx(z,{path:"*",element:a.jsx($e,{})})]})}export{oa as default};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{j as d}from"./liveblocks-BUQfB0Zp.js";import{i as K,j as S,g as H,u as z,h as W,n as te,k as ca,o as Ct,p as w}from"./core-OMb8nkC1.js";import{eV as U,MP as Xe,bE as la,bo as Oe,O1 as Pn,iU as Fn,O2 as Zt,O3 as Rn,iX as kt,O4 as Qe,O5 as Bn,j0 as jn,O6 as Qt,O7 as Mn,j4 as St,O8 as He,O9 as Ln,co as vt,Oa as Un,Ob as Gn,N7 as Vn,jY as Yn,Oc as Nn,bn as Ge,Od as da,MD as ie,bc as ua,ka as ma,ob as pa,jV as ha,MF as ce,ME as ee,eU as fa,fo as $n,g0 as _t,Oe as zn,Of as Kn,Og as ga,Oh as Be,vA as Ve,vB as Ye,vY as De,vS as le,vF as Ne,Oi as qn,Oj as Zn,Ok as Qn,Ol as ba,Om as je,On as Hn,dI as Je,s4 as Ca,Oo as Wn,Op as Xn,Oq as Jn,Or as At,M1 as It,kq as xe,w4 as Et,sc as eo,Os as to,vC as Ht,s7 as Ee,s3 as ka,Ot as ge,Ou as ao,Ov as Tt,M0 as Ot,u3 as Sa,Ow as no,Ox as oo,Oy as so,Oz as Dt,ug as ro,OA as io,vE as Wt,u2 as _a,OB as be,OC as co,bs as ya,w8 as va,OD as lo,OE as uo,OF as mo,OG as xt,w3 as po,OH as ho,vD as Xt,w7 as Aa,OI as Ce,OJ as fo,OK as go,OL as Ia,kf as Ea,o8 as Ta,kk as Oa,o6 as Da,o5 as xa,o4 as wa,tr as bo,fS as Co,cR as ko,cS as So,o1 as _o,fO as yo,oi as vo,Gd as ut,G5 as Ao,G9 as Io,OM as Eo,ON as To,OO as Oo,b5 as et,fG as Do,hC as xo,gg as wo,oc as Po,jO as Fo,o9 as Ro,o7 as Bo,fA as jo,fy as Mo}from"./zeni-epic-state-BZ6N8nVI.js";import{z as M,a2 as ae,s as D,d as O,D as q,aV as Lo,_ as $e,E as ze,aW as Pa,f as N,aX as Uo,j as Se,aY as Fa,a as _e,F as R,m as Go,aZ as Vo,a_ as Yo,V as Ra,J as Ba,c as ja,X as No,a$ as $o,T as zo,aN as Ma,$ as oe,b0 as La,b1 as Ua,a1 as Ga,b2 as Ko,b3 as qo,aq as Zo,q as Qo,W as Ho,b4 as Wo,b5 as Xo,b6 as Jo,b7 as es,b8 as ke}from"./index-NcZU0lXl.js";import{n as wt}from"./mui-JZY-3hhJ.js";import{a as b}from"./sentry-BLIwU6uZ.js";import{w as Va}from"./withTransactionSidePanel-DxHfrYsZ.js";import{c as Ya,t as we,f as de,a as Pt,v as ts}from"./routePaths-DZldr9mG.js";import{u as ne}from"./useAskAiCfoHostNavButtonProps-DS5Fxq3U.js";import Ue from"./NotFoundScreen-CxRYls3k.js";import{u as Ft}from"./useInitialThreadRequest-Bh1NrHII.js";import{t as Na}from"./analyticsHelper-BU5wlVa9.js";import{C as as}from"./CompanyPassportScreen-CE4f1mRO.js";import{u as ns}from"./useAiCfoDashboardSuggestedQuestionsChips-DEWGXdch.js";import{F as os}from"./FeaturePreviewScreen-DgqstYkZ.js";import{R as ss}from"./ReferralListScreen-CbCeYBu8.js";import"./recharts-DAM4r1-u.js";import"./analytics-BLbM2ksu.js";import"./plaid-B_OuebQv.js";import"./dnd-DVcQZAG5.js";import"./stripe-DMRn4zHo.js";import"./lottie-DDI83OWz.js";import"./lexical-CNfNgAkp.js";import"./pdf-6FZlivdz.js";import"./utils-Bia5qc4p.js";import"./TransactionDetailScreen-CoGsdLTa.js";import"./decodeURIComponentSafe-CrZYJ6cg.js";import"./MobileAppDrawer-B4f1me8_.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]="a64390ca-a366-4343-9376-fb30cb1b724a",e._sentryDebugIdIdentifier="sentry-dbid-a64390ca-a366-4343-9376-fb30cb1b724a")}catch{}})();const rs=Va(function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{vendorId:o,reportDate:r}=K(),s=M.getSignedInUser(),i=S(v=>v.tenantState.currentTenantId),c=S(v=>U(v)),{tenantEmailDomain:m}=K(),g=H(),C=c?.companyName??"",u={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i??""},l=b.useMemo(()=>({authParams:u,companyName:C,downloadEndPoint:`${ae}/agingDetailedReport`,timezone:Xe()}),[]),h=b.useMemo(()=>r!=null?la(r):Oe(),[r]),p=z(),f=W(),A=S(v=>Pn(v,h,o)),I=b.useCallback(()=>{o!=null&&A.fetchState!=="In-Progress"&&A.fetchState!=="Completed"&&p(Fn(o,h))},[h]),_=b.useCallback(()=>{f("../../",{relative:"path"})},[]),T=b.useCallback((v,B)=>{p(Zt({sortKey:v,sortOrder:B}))},[]),E=b.useCallback(v=>{p(Zt({downloadState:v}))},[]),L=b.useCallback(v=>{if(e)e(v.transactionId,v.transactionType);else if(m!=null){const B=Ya({id:v.transactionId,type:v.transactionType},m);f(B);const X=D(g.state?.pathnameStackToGoBack,g.pathname);f(B,{state:{pathnameStackToGoBack:X}})}},[m,e]),k=b.useCallback(()=>{A.vendor!=null&&O.trackApAgingDetail("AP Aging",h.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),A.vendor.id,A.vendor.name)},[A.vendor,h]);return b.useEffect(()=>{I()},[]),b.useEffect(()=>{A.fetchState==="Completed"&&k()},[k,A.fetchState]),d.jsx(Lo,{apAgingDetail:A,downloadParams:l,reportDate:h,analytics:O,onTransactionClick:L,onReload:I,onBackClick:_,onColumnSortConfigChanged:T,updateDownloadStateHandler:E,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})}),is=()=>{const e=z(),a=W(),t=S(T=>Rn(T)),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=ne({mobileExploreReferrer:"AP Aging"});$e({isDataReady:t.fetchState==="Completed"});const r=M.getSignedInUser(),s=S(T=>T.tenantState.currentTenantId),i=S(T=>U(T)),c=i?.companyName??"",m={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s??""},g=b.useMemo(()=>({authParams:m,companyName:c,downloadEndPoint:`${ae}/agingReport`,timezone:Xe()}),[]),C=t.apAgingUIState.selectedDate??Oe(),u=b.useCallback(()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(kt(C))},[]);b.useEffect(()=>{u()},[]);const l=b.useCallback(()=>{a("../",{relative:"path"})},[]),h=b.useCallback(T=>{e(Qe({searchString:T}))},[]),p=b.useCallback((T,E)=>{e(Qe({sortKey:E,sortOrder:T}))},[]),f=b.useCallback(T=>{a(`./${T}/${C.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)},[C]),A=b.useCallback(T=>{e(Qe({downloadState:T}))},[]),I=b.useCallback((T,E)=>{},[]),_=b.useCallback((T,E)=>{e(Qe({selectedDate:T,agingDateSelectionType:E})),e(kt(T))},[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(ze,{analytics:O,onLoad:T=>T.trackPageLoaded(N.Event.agingReport,"AP Aging")}):null,d.jsx(Pa,{uiState:t.apAgingUIState,report:t,downloadParams:g,analytics:O,onReloadReport:u,onBackClick:l,onSearchTextChange:h,onSortOrderChange:p,onEntityNameClick:f,updateDownloadStateHandler:A,onSelectedDateChanged:_,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},cs=Va(function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{customerId:o,reportDate:r}=K(),s=M.getSignedInUser(),i=S(k=>U(k)),{tenantEmailDomain:c}=K(),m=H(),g=i.companyName,C={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i.tenantId},u=b.useMemo(()=>({authParams:C,companyName:g,downloadEndPoint:`${ae}/agingDetailedReport`,timezone:Xe()}),[]),l=b.useMemo(()=>r!=null?la(r):Oe(),[r]),h=z(),p=W(),f=S(k=>Bn(k,l,o)),A=b.useCallback(()=>{o!=null&&f.fetchState!=="In-Progress"&&f.fetchState!=="Completed"&&h(jn(o,l))},[l]),I=b.useCallback(()=>{p("../../",{relative:"path"})},[]),_=b.useCallback((k,v)=>{h(Qt({sortKey:k,sortOrder:v}))},[]),T=b.useCallback(k=>{h(Qt({downloadState:k}))},[]),E=b.useCallback(k=>{if(e)e(k.transactionId,k.transactionType);else if(c!=null){const v=Ya({id:k.transactionId,type:k.transactionType},c);p(v);const B=D(m.state?.pathnameStackToGoBack,m.pathname);p(v,{state:{pathnameStackToGoBack:B}})}},[c,e]),L=b.useCallback(()=>{f.customer!=null&&O.trackArAgingDetail("AR Aging",l.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),f.customer.id,f.customer.name)},[f.customer,l]);return b.useEffect(()=>{A()},[]),b.useEffect(()=>{f.fetchState==="Completed"&&L()},[f.fetchState,L]),d.jsx(Uo,{arAgingDetail:f,downloadParams:u,reportDate:l,analytics:O,onTransactionClick:E,onReload:A,onBackClick:I,onColumnSortConfigChanged:_,updateDownloadStateHandler:T,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})}),ls=()=>{const e=z(),a=W(),t=S(_=>Mn(_)),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=ne({mobileExploreReferrer:"AR Aging"});$e({isDataReady:t.fetchState==="Completed"});const r=M.getSignedInUser(),s=S(_=>U(_)),i=s.companyName,c={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s.tenantId},m=b.useMemo(()=>({authParams:c,companyName:i,downloadEndPoint:`${ae}/agingReport`,timezone:Xe()}),[]),g=t.arAgingUIState.selectedDate??Oe(),C=b.useCallback(()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(St(g))},[]);b.useEffect(()=>{C()},[]);const u=b.useCallback(()=>{a("../",{relative:"path"})},[]),l=b.useCallback(_=>{e(He({searchString:_}))},[]),h=b.useCallback((_,T)=>{e(He({sortKey:T,sortOrder:_}))},[]),p=b.useCallback(_=>{a(`./${_}/${g.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)},[g]),f=b.useCallback(_=>{e(He({downloadState:_}))},[]),A=b.useCallback((_,T)=>{e(He({selectedDate:_,agingDateSelectionType:T})),e(St(_))},[]),I=b.useCallback((_,T)=>{e(Ln({nodeId:_,isCollapsed:T}))},[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(ze,{analytics:O,onLoad:_=>_.trackPageLoaded(N.Event.agingReport,"AR Aging")}):null,d.jsx(Pa,{uiState:t.arAgingUIState,report:t,downloadParams:m,analytics:O,onReloadReport:C,onBackClick:u,onSearchTextChange:l,onSortOrderChange:h,onEntityNameClick:p,updateDownloadStateHandler:f,onSelectedDateChanged:A,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},$a=(e,a)=>({key:a,title:e.accountName,amount:e.balance?.available,logoUri:e.logo?.toString(),source:e});function za(e,a){const t=Vn(a.firstMonthOfFY);return{onItemClick:(n,o)=>{const r=o.accountName===""?o.accountDescription:o.accountName,s=we(a.tenantEmailDomain,o.accountId,o.accountType,r,"quarter",t,!1),i=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i,referrer:a.referrerType}})},onSetAccountsStatementDate:(n,o)=>{e(Yn(n,o))},onPromoCardBtnClick:n=>{if(a.isZeniAccountsAdmin){let o=`../../checking/${n}`;n?O.trackZeniAccountsCashBalancePromoClicked("Move Money"):(O.trackZeniAccountsCashBalancePromoClicked("Sign Up for Free"),o="../../checking/promo");const r=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(o,{state:{pathnameStackToGoBack:r}})}else O.trackZeniAccountsCashBalancePromoClicked("Learn More"),window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")}}}const ds=te(function(e){const a=Un(e).accountsInOrder.map((n,o)=>$a(n,o)),t=Gn(e);return{sectionTitle:q.getLocalizedStrings().balanceCard.cashBalanceSectionTitle,transactionArray:a,zeniAccountsPromoCardReport:t,fetchState:e.cashBalanceState.fetchState,analytics:O}},za)(Fa),us=te(function(e){const a=Nn(e).accountsInOrder.map((o,r)=>$a(o,r)),t=M.getSignedInUser(),n=Ge(t);return{sectionTitle:q.getLocalizedStrings().balanceCard.cardBalanceSectionTitle,transactionArray:a,isZeniUser:n,fetchState:e.cardBalanceState.fetchState,analytics:O}},za)(Fa);function ms(){const e=W(),a=H(),{tenantEmailDomain:t}=K(),n=Se(),o=S(s=>U(s).company?.companyInfo.firstMonthOfFY??1),r=vt(n?.loggedInUserRoleMap);return S(s=>s.cashBalanceState.fetchState)==="Error"?d.jsx(Ue,{}):d.jsx(ds,{tenantEmailDomain:t,location:a,referrerType:"Cash Balance",navigate:e,isZeniAccountsAdmin:r,firstMonthOfFY:o})}function ps(){const e=W(),a=H(),{tenantEmailDomain:t}=K(),n=Se(),o=vt(n?.loggedInUserRoleMap),r=S(s=>U(s).company?.companyInfo.firstMonthOfFY??1);return S(s=>s.cardBalanceState.fetchState)==="Error"?d.jsx(Ue,{}):d.jsx(us,{tenantEmailDomain:t,location:a,referrerType:"Card Balance",navigate:e,isZeniAccountsAdmin:o,firstMonthOfFY:r})}const hs=wt.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
|
-
`,fs=wt.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 gs({title:e,reportId:a,entityAutoCompleteView:t,autoCompleteText:n,isAiCfoAccessEnabled:o,onAskAiCfoClick:r}){const s=W(),i=z(),c=H(),{tenantEmailDomain:m}=K(),g=Go();return d.jsxs(hs,{children:[d.jsx(Vo,{source:a==="cash_balance"?"CashBalanceDetailScreen":"CardBalanceDetailScreen",title:e,onBackClick:()=>{s("../")},hideSearchBtn:!0,backgroundColor:g.colors.grey4,searchAutoComplete:{autoCompleteData:{entityAutoCompleteView:t,autoCompleteText:n},autoCompleteActions:{onAutoCompleteInputChange:C=>{C.trim().length>=2?i(ce({searchString:C,searchOrigin:"navbar"})):C.trim().length===0&&i(ee("navbar"))},onAutoCompleteEntity:C=>{n!=null&&O?.trackSearch(N.Event.search,bs(a),C.type,C.name,n);const u=de(C,m),l=D(c.state?.pathnameStackToGoBack,c.pathname);s(u,{state:{pathnameStackToGoBack:l}})}}},rightSideComponent:d.jsx(Yo,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r})}),d.jsx(fs,{children:a==="cash_balance"?d.jsx(ms,{}):d.jsx(ps,{})})]})}function Jt(){const e=H(),a=z(),{useFeatureGate:t}=_e(),{isFeatureEnabled:n}=t(R.isDepositAccountsFeatureEnabled),o=S(p=>p.cashBalanceState.fetchState),r=S(p=>p.cardBalanceState.fetchState),s=M.getSignedInUser();if(s==null)throw Error("Can't access dashboard detail without signing in...");const i=da((p=>{const f=ua(p,"/").split("/");return f[f.length-1]})(e.pathname));let c="Not-Started",m="";const g=q.getLocalizedStrings();switch(i){case"cash_balance":c=o,m=g.reportTitleById.cash_balance;break;case"card_balance":c=r,m=g.reportTitleById.card_balance;break;default:console.error(`${i} is not supported!`)}const{isAiCfoAccessEnabled:C,onAskAiCfoClick:u}=ne({mobileExploreReferrer:i==="card_balance"?"Card Balance":"Cash Balance"});$e({isDataReady:c==="Completed"});const l=S(p=>p.entityAutoCompleteState.autoCompleteText.navbar),h=S(p=>ie(p,"navbar"));return b.useEffect(()=>{c==="Not-Started"&&function(p,f,A){switch(f){case"card_balance":p(ha());break;case"cash_balance":p(ma()),A===!0&&p(pa());break;default:throw new Error(`balance report type ${f} is not yet supported`)}}(a,i,n)},[s,a,c]),d.jsxs(d.Fragment,{children:[c==="Completed"?d.jsx(ze,{analytics:O,onLoad:p=>((f,A)=>{switch(A){case"card_balance":f.trackPageLoaded(N.Event.cardBalance);break;case"cash_balance":f.trackPageLoaded(N.Event.cashBalance);break;default:console.error(`Analytics: Not tracking Page Loaded for ${A}!`)}})(p,i)}):null,d.jsx(gs,{title:m,reportId:i,autoCompleteText:l,entityAutoCompleteView:h,isAiCfoAccessEnabled:C,onAskAiCfoClick:u})]})}const bs=e=>{switch(e){case"cash_balance":return"Cash Balance";case"card_balance":return"Card Balance";default:return"Dashboard"}},Cs=[];function Ke(e){const{mobileExploreReferrer:a}=e,t=z(),n=W(),o=H(),{tenantEmailDomain:r}=K(),{setIsAiCfoOpen:s,setAiCfoSidePanelQuestionToSubmit:i}=Ra(),c=Ba(),m=Ga(c),g=ca(),C=S(P=>P.tenantState.fetchState==="Completed"||P.tenantState.activeTenantFetchState.fetchState==="Completed"?U(P):void 0),u=C?.masterTOSInfo?.isMasterTOSAccepted??!1,l=S(P=>fa(P)),h=l.uiState?.currentChatSessionId,p=l.allSessionsWithOrderedQuestionAnswers??Cs,f=M.getSignedInUser()?.userId,A=ja(),I=No()&&A&&r!=null,_=$o(),T=zo(!0),E=S(P=>_!=null?$n(P,_):void 0),{useDynamicConfig:L}=_e(),{configValue:k}=L(Ma.aiCfoMessageDynamicConfig),v=b.useMemo(()=>Array.isArray(k.default_message_list)?k.default_message_list:[],[k.default_message_list]),B=b.useMemo(()=>v.slice(0,2),[v]),X=_!=null&&E!=null&&E.fetchState!=="Completed"&&E.fetchState!=="Error"&&(T||E.fetchState==="In-Progress"),Pe=b.useMemo(()=>{if(_==null||E?.fetchState==="Error")return B;if(X)return[];const P=(E?.suggestedQuestions??[]).map(me=>me.trim()).filter(me=>me.length>0).slice(0,2);return P.length===0?B:P},[B,X,_,E?.fetchState,E?.suggestedQuestions]),Fe=b.useCallback((P,me)=>{if(f==null||P.trim()==="")return;if(!u)return void oe({location:o,navigate:n,mergeState:{referrer:a}});const Re=La(g.getState());if(m){const Ze=D(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Ze,referrer:a,aiCfoInitialQuestion:P,aiCfoShouldSubmit:!Re}})}else{if(Re)return t(_t(P)),void s(!0);i(P),s(!0),Ua(t,P,"insights_section",h,p,f,me,void 0)}},[p,h,t,u,m,o,a,n,s,i,g,r,f]),ue=b.useCallback(()=>{if(u)if(m){const P=D(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:P,referrer:a}})}else s(!0);else oe({location:o,navigate:n,mergeState:{referrer:a}})},[u,m,o,a,n,s,r]);return b.useMemo(()=>{if(I)return{isSuggestedQuestionsLoading:X,onAskSomethingElseClick:ue,onSuggestedQuestionClick:Fe,suggestedQuestions:Pe}},[I,X,ue,Fe,Pe])}const qe=Ko,ks=te(function(e){const a=zn(e),t=Kn(e),n=ga(e),{scrollPosition:o,...r}=n,s=q.getLocalizedStrings().reportTitleById.cash_in_cash_out,i=M.getSignedInUser(),c=e.tenantState.currentTenantId,m=U(e),g=m?.companyName??"",C={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:c??""},u=e.entityAutoCompleteState.autoCompleteText.navbar,l=ie(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:g,statementEndPoint:`${ae}/statement`,authParams:C},analytics:O,autoCompleteData:{autoCompleteText:u,entityAutoCompleteView:l}}},function(e,a){return{updateDownloadStateHandler:t=>{e(qn(t))},onTimeframeSelectionChanged:()=>{},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(Be({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(De("month")),e(le(a.firstMonthOfFY,t)),e(Be({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ve(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Ye(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout(()=>e(Be({resetLeftScroll:!0})),50)},onElementCollapseStateChanged:(t,n)=>{e(Be({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(Be({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(ce({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ee("navbar"))},onAutoCompleteEntity:t=>{const n=de(t,a.tenantEmailDomain),o=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}})(qe),Ss=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r}=ne({mobileExploreReferrer:"DashboardCashInCashOut"}),s=Ke({mobileExploreReferrer:"DashboardCashInCashOut"}),i=S(c=>ga(c)).mode==="compare_mode";return d.jsx(ks,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:i,navigate:n,insightsSectionAiCfoInfo:s,isAiCfoAccessEnabled:o,onAskAiCfoClick:r})},_s=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=Je(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}},ys=te(function(e){const a=Zn(e),t=Qn(e),n=ba(e),{scrollPosition:o,...r}=n,s=q.getLocalizedStrings().reportTitleById.cash_position,i=M.getSignedInUser(),c=e.tenantState.currentTenantId,m=U(e),g=m?.companyName??"",C={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:c??""},u=e.entityAutoCompleteState.autoCompleteText.navbar,l=ie(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:g,statementEndPoint:`${ae}/statement`,authParams:C},analytics:O,autoCompleteData:{autoCompleteText:u,entityAutoCompleteView:l}}},function(e,a){return{updateDownloadStateHandler:t=>{e(Hn(t))},onTimeframeSelectionChanged:t=>{e(De(t)),setTimeout(()=>e(je({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(je({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(le(a.firstMonthOfFY,t)),e(je({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ve(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Ye(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}=_s(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=we(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:c,referrer:"Cash Position"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(ce({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ee("navbar"))},onAutoCompleteEntity:t=>{const n=de(t,a.tenantEmailDomain),o=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onTableScroll:t=>{e(je({scrollPosition:t}))},onBackClick:()=>{a.navigate("../")}}})(qe),vs=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r}=ne({mobileExploreReferrer:"DashboardCashPosition"}),s=Ke({mobileExploreReferrer:"DashboardCashPosition"}),i=S(c=>ba(c)).mode==="compare_mode";return d.jsx(ys,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:i,navigate:n,insightsSectionAiCfoInfo:s,isAiCfoAccessEnabled:o,onAskAiCfoClick:r})},$=(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}))};function mt(){return d.jsxs(Ct,{children:[d.jsx(w,{path:"/",element:d.jsx(se,{})}),d.jsx(w,{path:"/:forecastId",element:d.jsx(se,{})}),d.jsx(w,{path:"/:forecastId/*",element:d.jsx(Ue,{})})]})}const As=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=Je(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}},Is=te(function(e){const a=Ca(e),t=Wn(e),n=Xn(e),o=Jn(e),r=At(e),{scrollPosition:s,...i}=r,c=t.reportTitle,m=M.getSignedInUser(),g=e.tenantState.currentTenantId,C=U(e),u=C?.companyName??"",l={userId:m?.userId??"",sessionId:m?.zeniSessionId??"",tenantId:g??""},h=e.entityAutoCompleteState.autoCompleteText.navbar,p=ie(e,"navbar"),f=It(C);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,reportLabels:{reportTitle:c},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,uiState:i,scrollPosition:s,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${ae}/statement`,authParams:l},analytics:O,isZeniUser:Ge(m),autoCompleteData:{autoCompleteText:h,entityAutoCompleteView:p},isZeniCOAUsed:f,isAccountingClassesEnabled:xe(e)}},function(e,a){return{updateDownloadStateHandler:t=>{e(ao(t))},onTimeframeSelectionChanged:t=>{e(De(t)),setTimeout(()=>e(ge({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(ge({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(le(a.firstMonthOfFY,t)),e(ge({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ve(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Ye(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(ge({resetLeftScroll:!0})),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=As(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Pt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):we(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:c,referrer:"Burn Rate"}})}},onElementCollapseStateChanged:(t,n)=>{e(ge({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(ge({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(ce({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ee("navbar"))},onAutoCompleteEntity:t=>{const n=de(t,a.tenantEmailDomain),o=D(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(Ee(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?Te:Rt,n)),t==="forecast_mode"?(e(Ht({viewMode:"account_group"})),e(ka(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(ge({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":"Accounts","Burn Rate"),e(Ht({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(to({classesToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(eo())},onResyncReports:()=>{e(Et("net_burn_or_income_by_classes"))}}})(qe),Es=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,{isAiCfoAccessEnabled:s,onAskAiCfoClick:i}=ne({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),c=Ke({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),m=S(k=>At(k)),g=m.isForecastModeOn,C=m.timeframe,u=m.selectedForecast?.id,l=S(k=>Tt(k.forecastState,u??"")),h=S(k=>Ca(k)),p=S(k=>Ot(k)),f=S(k=>xe(k)),A=m.mode==="compare_mode",I=h.dataAvailable;b.useEffect(()=>{if(u!=null&&g===!0&&($(g,r,u,o),l!=null)){const k=l?.forecastPeriod,v=I!=null&&k.endDate.isAfter(I?.endDate)===!0?I:k;a(le(e.firstMonthOfFY,{startDate:v.endDate.startOf(C),endDate:v?.endDate}))}},[u]);const _=Se(),{useFeatureGate:T}=_e(),{isFeatureEnabled:E}=T(R.isReportsCommentingEnabled),L=Ft(E?_?.currentTenant?.companyId:void 0,{clearParams:h.fetchState==="Completed"});return d.jsx(Is,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,forecastIdFromUrlPath:r,location:n,isAccountingClassesEnabled:f,isCompareModeOn:A,navigate:o,analytics:O,reportsResyncFetchState:p.reportsResyncFetchState,insightsSectionAiCfoInfo:c,isAiCfoAccessEnabled:s,onAskAiCfoClick:i,initialOpenThreadRequest:L,isReportsCommentingEnabled:E})},Ts=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=Je(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=te(function(e){const a=Sa(e),t=no(e),n=oo(e),o=so(e),r=Dt(e),{scrollPosition:s,...i}=r,c=q.getLocalizedStrings().reportTitleById.operating_expenses,m=M.getSignedInUser(),g=e.tenantState.currentTenantId,C=U(e),u=C?.companyName??"",l={userId:m?.userId??"",sessionId:m?.zeniSessionId??"",tenantId:g??""},h=e.entityAutoCompleteState.autoCompleteText.navbar,p=ie(e,"navbar"),f=It(C);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,reportLabels:{reportTitle:c},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,uiState:i,scrollPosition:s,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${ae}/statement`,authParams:l},analytics:O,isZeniUser:Ge(m),autoCompleteData:{autoCompleteText:h,entityAutoCompleteView:p},isZeniCOAUsed:f,isAccountingClassesEnabled:xe(e)}},function(e,a){return{updateDownloadStateHandler:t=>{e(co(t))},onTimeframeSelectionChanged:t=>{e(De(t)),setTimeout(()=>e(be({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(be({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(le(a.firstMonthOfFY,t)),e(be({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ve(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Ye(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:a.hasTransactionAccess!==!0?void 0:(t,n)=>{const{timePeriod:o,timeframe:r}=Ts(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Pt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):we(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:c,referrer:"Operating Expenses"}})}},onElementCollapseStateChanged:(t,n)=>{e(be({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(be({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(ce({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ee("navbar"))},onAutoCompleteEntity:t=>{const n=de(t,a.tenantEmailDomain),o=D(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(Ee(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?Te:Rt,n)),t=="forecast_mode"?(e(Wt({viewMode:"account_group"})),e(_a(!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":"Accounts","Operating Expenses"),e(Wt({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(io({classesToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(ro())},onResyncReports:()=>{e(Et("operating_expenses_by_classes"))}}})(qe),Ds=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,{isAiCfoAccessEnabled:s,onAskAiCfoClick:i}=ne({mobileExploreReferrer:"DashboardOpEx"}),c=Ke({mobileExploreReferrer:"DashboardOpEx"}),m=S(v=>Dt(v)),g=m.isForecastModeOn,C=m.timeframe,u=m.selectedForecast?.id,l=S(v=>Tt(v.forecastState,u??"")),h=S(v=>Sa(v)),p=S(v=>Ot(v)),f=S(v=>xe(v)),A=m.mode==="compare_mode",I=h.dataAvailable;b.useEffect(()=>{if(u!=null&&g===!0&&($(g,r,u,o),l!=null)){const v=l?.forecastPeriod,B=I!=null&&v.endDate.isAfter(I?.endDate)===!0?I:v;a(le(e.firstMonthOfFY,{startDate:B.endDate.startOf(C),endDate:B?.endDate}))}},[u]);const _=Se(),T=_?.loggedInUserRole!=null&&ya(_?.loggedInUserRole)!==!0,{useFeatureGate:E}=_e(),{isFeatureEnabled:L}=E(R.isReportsCommentingEnabled),k=Ft(L?_?.currentTenant?.companyId:void 0,{clearParams:h.fetchState==="Completed"});return d.jsx(Os,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,location:n,isAccountingClassesEnabled:f,isCompareModeOn:A,navigate:o,forecastIdFromUrlPath:r,analytics:O,hasTransactionAccess:T,reportsResyncFetchState:p.reportsResyncFetchState,insightsSectionAiCfoInfo:c,isAiCfoAccessEnabled:s,onAskAiCfoClick:i,initialOpenThreadRequest:k,isReportsCommentingEnabled:L})},xs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=Je(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}},ws=te(function(e){const a=va(e),t=lo(e),n=uo(e),o=mo(e),r=xt(e),{scrollPosition:s,...i}=r,c=q.getLocalizedStrings().reportTitleById.revenue,m=M.getSignedInUser(),g=e.tenantState.currentTenantId,C=U(e),u=C?.companyName??"",l={userId:m?.userId??"",sessionId:m?.zeniSessionId??"",tenantId:g??""},h=e.entityAutoCompleteState.autoCompleteText.navbar,p=ie(e,"navbar"),f=It(C);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,reportLabels:{reportTitle:c},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,uiState:i,scrollPosition:s,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${ae}/statement`,authParams:l},analytics:O,isZeniUser:Ge(m),autoCompleteData:{autoCompleteText:h,entityAutoCompleteView:p},isZeniCOAUsed:f,isAccountingClassesEnabled:xe(e)}},function(e,a){return{updateDownloadStateHandler:t=>{e(fo(t))},onTimeframeSelectionChanged:t=>{e(De(t)),setTimeout(()=>e(Ce({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(Ce({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(le(a.firstMonthOfFY,t)),e(Ce({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ve(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Ye(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:(t,n)=>{const{timePeriod:o,timeframe:r}=xs(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Pt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):we(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:c,referrer:"Revenues"}})}},onElementCollapseStateChanged:(t,n)=>{e(Ce({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(Ce({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(ce({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ee("navbar"))},onAutoCompleteEntity:t=>{const n=de(t,a.tenantEmailDomain),o=D(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(Ee(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?Te:Rt,n)),t==="forecast_mode"?(e(Xt({viewMode:"account_group"})),e(Aa(!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":"Accounts","Revenues"),e(Xt({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(ho({classesToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(po())},onResyncReports:()=>{e(Et("revenue_by_classes"))}}})(qe),Ps=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,{isAiCfoAccessEnabled:s,onAskAiCfoClick:i}=ne({mobileExploreReferrer:"DashboardRevenue"}),c=Ke({mobileExploreReferrer:"DashboardRevenue"}),m=S(k=>xt(k)),g=m.isForecastModeOn,C=m.timeframe,u=m.selectedForecast?.id,l=S(k=>Tt(k.forecastState,u??"")),h=S(k=>va(k)),p=h.dataAvailable,f=m.mode==="compare_mode",A=S(k=>xe(k)),I=S(k=>Ot(k));b.useEffect(()=>{if(u!=null&&g===!0&&($(g,r,u,o),l!=null)){const k=l?.forecastPeriod,v=p!=null&&k.endDate.isAfter(p?.endDate)===!0?p:k;a(le(e.firstMonthOfFY,{startDate:v.endDate.startOf(C),endDate:v?.endDate}))}},[u]);const _=Se(),{useFeatureGate:T}=_e(),{isFeatureEnabled:E}=T(R.isReportsCommentingEnabled),L=Ft(E?_?.currentTenant?.companyId:void 0,{clearParams:h.fetchState==="Completed"});return d.jsx(ws,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,isAccountingClassesEnabled:A,isCompareModeOn:f,location:n,navigate:o,forecastIdFromUrlPath:r,analytics:O,reportsResyncFetchState:I.reportsResyncFetchState,insightsSectionAiCfoInfo:c,isAiCfoAccessEnabled:s,onAskAiCfoClick:i,initialOpenThreadRequest:L,isReportsCommentingEnabled:E})},Fs=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}},Rs=te(function(e){const a=go(e),t=e.entityAutoCompleteState.autoCompleteText.navbar,n=ie(e,"navbar");return{report:a,analytics:O,autoCompleteData:{autoCompleteText:t,entityAutoCompleteView:n}}},function(e,a){return{onTimeframeSelectionChanged:t=>{O.trackTimeframeSwitch(Na(t),"Top Expenses"),e(Ia(t))},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Fs(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=we(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:c,referrer:"Top Expenses"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(ce({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ee("navbar"))},onAutoCompleteEntity:t=>{const n=de(t,a.tenantEmailDomain),o=D(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(Rs,{tenantEmailDomain:a,location:t,navigate:n})},js=wt.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
|
-
`,Te=3,Rt=1;function Ms({fetchState:e,firstMonthOfFY:a,reportId:t,forecastId:n}){const o=W(),r=H(),{tenantEmailDomain:s}=K();let i;$e({isDataReady:!0});const c={firstMonthOfFY:a,tenantEmailDomain:s,location:r,navigate:o,forecastIdFromUrlPath:n,fetchState:e};switch(t){case"operating_expenses":i=d.jsx(Ds,{...c});break;case"revenue":i=d.jsx(Ps,{...c});break;case"net_burn_or_income":i=d.jsx(Es,{...c});break;case"cash_position":i=d.jsx(vs,{...c});break;case"top_expenses":i=d.jsx(Bs,{...c});break;case"cash_in_cash_out":i=d.jsx(Ss,{...c});break;default:console.error(`${t} is not supported!`),i=null}return i!=null?d.jsx(js,{children:i}):null}function se(){const e=H(),a=z(),{forecastId:t}=K();let n="Not-Started";const o=S(l=>Dt(l).fetchState),r=S(l=>xt(l).fetchState),s=S(l=>At(l).fetchState),i=S(l=>l.cashPositionState.fetchState),c=S(l=>l.topExState.fetchState),m=S(l=>l.cashInCashOutState.fetchState);if(M.getSignedInUser()==null)throw Error("Can't access dashboard detail without signing in...");const g=S(l=>U(l)),C=g?.company?.companyInfo?.firstMonthOfFY??1,u=da((l=>{const h=ua(l,"/").split("/");return t!=null?h[h.length-3]:h[h.length-1]})(e.pathname));switch(u){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=c;break;case"cash_in_cash_out":n=m;break;default:console.error(`${u} is not supported!`)}return b.useEffect(()=>{n==="Not-Started"&&function(l,h,p,f){switch(h){case"operating_expenses":l(wa(!0)),f!=null&&(l(Ee(p,!0,Te,{id:f,index:0})),l(_a(!1,f)));break;case"revenue":l(xa(!0)),f!=null&&(l(Ee(p,!0,Te,{id:f,index:0})),l(Aa(!1,f)));break;case"net_burn_or_income":l(Da(!0)),f!=null&&(l(Ee(p,!0,Te,{id:f,index:0})),l(ka(!1,f)));break;case"cash_position":l(Oa(!0));break;case"top_expenses":l(Ta());break;case"cash_in_cash_out":l(Ea());break;default:throw new Error(`report type ${h} is not yet supported`)}}(a,u,C,t)},[t]),d.jsxs(d.Fragment,{children:[n==="Completed"?d.jsx(ze,{analytics:O,onLoad:l=>((h,p)=>{const f=e.state?.referrer;switch(p){case"operating_expenses":h.trackPageLoaded(N.Event.operatingExpenses,f);break;case"revenue":h.trackPageLoaded(N.Event.revenues,f);break;case"net_burn_or_income":h.trackPageLoaded(N.Event.burnRate,f);break;case"cash_position":h.trackPageLoaded(N.Event.cashPosition,f);break;case"top_expenses":h.trackPageLoaded(N.Event.topExpenses,f);break;case"cash_in_cash_out":h.trackPageLoaded(N.Event.cashInCashOut,f);break;default:console.error(`Analytics: Not tracking Page Loaded for ${p}!`)}})(l,u)}):null,d.jsx(Ms,{firstMonthOfFY:C,fetchState:n,reportId:u,forecastId:t})]})}var pt=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function ht(e,a,t,n){e.addEventListener?e.addEventListener(a,t,n):e.attachEvent&&e.attachEvent("on".concat(a),function(){t(window.event)})}function Ka(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 qa(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 Bt={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,"-":pt?173:189,"=":pt?61:187,";":pt?59:186,"'":222,"[":219,"]":221,"\\":220},re={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},yt={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},j={16:!1,18:!1,17:!1,91:!1},F={},We=1;We<20;We++)Bt["f".concat(We)]=111+We;var x=[],ea=!1,Za="all",ta=[],tt=function(e){return Bt[e.toLowerCase()]||re[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function aa(e){Za=e||"all"}function Le(){return Za||"all"}var ft=function(e){var a=e.key,t=e.scope,n=e.method,o=e.splitKey,r=o===void 0?"+":o;qa(a).forEach(function(s){var i=s.split(r),c=i.length,m=i[c-1],g=m==="*"?"*":tt(m);if(F[g]){t||(t=Le());var C=c>1?Ka(re,i):[];F[g]=F[g].filter(function(u){return!((!n||u.method===n)&&u.scope===t&&function(l,h){for(var p=l.length>=h.length?l:h,f=l.length>=h.length?h:l,A=!0,I=0;I<p.length;I++)f.indexOf(p[I])===-1&&(A=!1);return A}(u.mods,C))})}})};function na(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,j)Object.prototype.hasOwnProperty.call(j,r)&&(!j[r]&&a.mods.indexOf(+r)>-1||j[r]&&a.mods.indexOf(+r)===-1)&&(o=!1);(a.mods.length!==0||j[16]||j[18]||j[17]||j[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 oa(e,a){var t=F["*"],n=e.keyCode||e.which||e.charCode;if(G.filter.call(this,e)){if(n!==93&&n!==224||(n=91),x.indexOf(n)===-1&&n!==229&&x.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach(function(h){var p=yt[h];e[h]&&x.indexOf(p)===-1?x.push(p):!e[h]&&x.indexOf(p)>-1?x.splice(x.indexOf(p),1):h==="metaKey"&&e[h]&&x.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(x=x.slice(x.indexOf(p))))}),n in j){for(var o in j[n]=!0,re)re[o]===n&&(G[o]=!0);if(!t)return}for(var r in j)Object.prototype.hasOwnProperty.call(j,r)&&(j[r]=e[yt[r]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(x.indexOf(17)===-1&&x.push(17),x.indexOf(18)===-1&&x.push(18),j[17]=!0,j[18]=!0);var s=Le();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)&&na(e,t[i],s,a);if(n in F){for(var c=0;c<F[n].length;c++)if((e.type==="keydown"&&F[n][c].keydown||e.type==="keyup"&&F[n][c].keyup)&&F[n][c].key){for(var m=F[n][c],g=m.splitKey,C=m.key.split(g),u=[],l=0;l<C.length;l++)u.push(tt(C[l]));u.sort().join("")===x.sort().join("")&&na(e,m,s,a)}}}}function G(e,a,t){x=[];var n=qa(e),o=[],r="all",s=document,i=0,c=!1,m=!0,g="+",C=!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&&(c=a.keyup),a.keydown!==void 0&&(m=a.keydown),a.capture!==void 0&&(C=a.capture),typeof a.splitKey=="string"&&(g=a.splitKey)),typeof a=="string"&&(r=a);i<n.length;i++)o=[],(e=n[i].split(g)).length>1&&(o=Ka(re,e)),(e=(e=e[e.length-1])==="*"?"*":tt(e))in F||(F[e]=[]),F[e].push({keyup:c,keydown:m,scope:r,mods:o,shortcut:n[i],method:t,key:n[i],splitKey:g,element:s});s!==void 0&&!function(u){return ta.indexOf(u)>-1}(s)&&window&&(ta.push(s),ht(s,"keydown",function(u){oa(u,s)},C),ea||(ea=!0,ht(window,"focus",function(){x=[]},C)),ht(s,"keyup",function(u){oa(u,s),function(l){var h=l.keyCode||l.which||l.charCode,p=x.indexOf(h);if(p>=0&&x.splice(p,1),l.key&&l.key.toLowerCase()==="meta"&&x.splice(0,x.length),h!==93&&h!==224||(h=91),h in j)for(var f in j[h]=!1,re)re[f]===h&&(G[f]=!1)}(u)},C))}var gt={setScope:aa,getScope:Le,deleteScope:function(e,a){var t,n;for(var o in e||(e=Le()),F)if(Object.prototype.hasOwnProperty.call(F,o))for(t=F[o],n=0;n<t.length;)t[n].scope===e?t.splice(n,1):n++;Le()===e&&aa(a||"all")},getPressedKeyCodes:function(){return x.slice(0)},isPressed:function(e){return typeof e=="string"&&(e=tt(e)),x.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(F).forEach(function(t){var n=F[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(F).forEach(function(s){return delete F[s]});else if(Array.isArray(e))e.forEach(function(s){s.key&&ft(s)});else if(typeof e=="object")e.key&&ft(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=""),ft({key:e,scope:o,method:r,splitKey:"+"})}},keyMap:Bt,modifier:re,modifierMap:yt};for(var bt in gt)Object.prototype.hasOwnProperty.call(gt,bt)&&(G[bt]=gt[bt]);if(typeof window<"u"){var Ls=window.hotkeys;G.noConflict=function(e){return e&&window.hotkeys===G&&(window.hotkeys=Ls),G},window.hotkeys=G}G.filter=function(){return!0};var sa=function(e,a){var t=e.target,n=t&&t.tagName;return!!(n&&a&&a.includes(n))};function Us(e,a,t,n){t instanceof Array&&(n=t,t=void 0);var o=t||{},r=o.enableOnTags,s=o.filter,i=o.keyup,c=o.keydown,m=o.filterPreventDefault,g=m===void 0||m,C=o.enabled,u=C===void 0||C,l=o.enableOnContentEditable,h=l!==void 0&&l,p=b.useRef(null),f=b.useCallback(function(A,I){var _,T;return s&&!s(A)?!g:!!(sa(A,["INPUT","TEXTAREA","SELECT"])&&!sa(A,r)||(_=A.target)!=null&&_.isContentEditable&&!h)||!!(p.current===null||document.activeElement===p.current||(T=p.current)!=null&&T.contains(document.activeElement))&&(a(A,I),!0)},n?[p,r,s].concat(n):[p,r,s]);return b.useEffect(function(){if(u)return i&&c!==!0&&(t.keydown=!1),G(e,t||{},f),function(){return G.unbind(e,f)};G.unbind(e,f)},[f,e,u]),p}G.isPressed;const Gs=[],ra="dashboard_card",J="ai_cfo_dashboard_card";function ia(e,a){return a?e.some(t=>String(t)===J)?e.slice():[J,...e]:e.filter(t=>String(t)!==J)}const Vs=["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","zeni_accounts_promo_card","rewards_card","treasury_promo_card"],Ys=(e,a,t,n,o)=>({card:{dimension:et(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}),Me=(e,a,t,n,o)=>({card:{dimension:et(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e}),Ns=(e,a,t,n)=>Me(void 0,e,ke,a,t),$s=(e,a,t,n,o)=>({card:{dimension:et(ke),cardType:a,cardIndex:t,fetchState:e,disableAnimations:!1,spansFullDashboardWidth:!1},data:{funds:n,shouldShowTreasuryPromoIntroVideo:o,videoUrl:"https://www.youtube.com/watch?v=sqvJWKCMZgk"}}),zs=e=>{const a=et(ke);return a.height=ke.height+10,{card:{dimension:a,cardType:J,cardIndex:e,fetchState:"Completed",disableAnimations:!1,spansFullDashboardWidth:!0}}},Ks=te(function(e,a){const t=Qs(a.dashboardReport),n=a.passedCardsOrdered,o=a.dashboardReport.reportsInOrder,{isInterestedInChargeCard:r,cardsCreditLimit:s,cashbackRate:i,treasuryFundDetails:c,shouldShowTreasuryPromoIntroVideo:m,treasuryFetchState:g}=a;let C=n.map((u,l)=>{if(u==="reimbursement_promo_card"||u==="bill_pay_promo_card")return Ns(t,u,l);if(u==="zeni_promo_card")return Me({isExpressedInterest:r,creditLimit:s,cashbackRate:i,fetchState:"Completed"},a.cardBalanceFetchState,ke,u,l);if(u==="treasury_promo_card")return $s(g,u,l,c,m);if(u==="information_card")return Me(void 0,"Completed",ke,u,l);if(u===J)return zs(l);{const h=o.find(p=>p?.reportId===u);return h?function(p,f,A,I){const _=p.reportId;switch(_){case"card_balance":case"cash_balance":return[Ys(p,f,A,_,I)];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"zeni_accounts_promo_card":case"rewards_card":return[Me(p,f,A,_,I)];case"net_burn_or_income_story_card":return[Me(p,f,A,"net_burn_or_income_story_card",I)];default:return console.error(`card type ${_} not yet supported!`),[]}}(h,h.fetchState,ke,l):[]}}).flat();return a.isSummaryCardsFiltered===!0&&(C=C.filter(u=>Vs.includes(u.card.cardType)==0).filter(u=>{const l=u.data?.availableNumberOfPeriods;return l!=null?l>0:u.card.cardType!="top_expenses"||u.data==null||function(h){if(h==null||h.length===0)return!0;let p=!0;for(const f of h)if(f.balance.available.amount!==0){p=!1;break}return p}(u.data.topExpenses.accountsOrdered)===!1})),{cardDataArray:C,autoCompleteData:{autoCompleteText:e.entityAutoCompleteState.autoCompleteText.navbar,entityAutoCompleteView:ie(e,"navbar")},analytics:O,isReimbursementEnabled:a.isReimbursementEnabled,isBillPayEnabled:a.isBillPayEnabled}},function(e,a){const t=a.tenantId,n=M.getSignedInUser();return{cardActions:{onCardClick:(o,r,s,i)=>{if(console.warn(`onCardClick at ${o} for the type ${r}`),r==="zeni_promo_card"&&i!=null)O.trackDashboardCardClicked("cards promo",2),O.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&&O.trackDashboardCardClicked("rewards promo",o+1),a.navigate("../../rewards/refer",{state:{referrer:s}})):r==="expense_automation_card"?(O.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.isZeniAccountEnabled===!1&&s.push("zeni_accounts_promo_card"),a.isRewardsFeatureEnabled===!1&&s.push("rewards_card"),function(i,c,m,g){if(c!==J)switch(c){case"card_balance":i(ha());break;case"cash_balance":i(ma());break;case"operating_expenses":i(wa(!0));break;case"revenue":i(xa(!0));break;case"net_burn_or_income":i(Da(!0));break;case"net_burn_or_income_story_card":i(Bo(!0));break;case"cash_position":i(Oa(!0));break;case"top_expenses":i(Ta());break;case"cash_in_cash_out":i(Ea());break;case"insights_dashboard":i(Ro());break;case"bill_pay_card":i(Fo());break;case"reimbursement_card":i(Po());break;case"company_details":i(wo(m));break;case"task_card":i(xo());break;case"accounts_payable_aging":g.includes("accounts_payable_aging")===!1&&i(kt(Oe()));break;case"accounts_receivable_aging":i(St(Oe()));break;case"zeni_accounts_promo_card":g.includes("zeni_accounts_promo_card")===!1&&i(pa());break;case"rewards_card":g.includes("rewards_card")===!1&&i(Do(!0));break;default:throw new Error(`report type ${c} is not yet supported`)}}(e,r,a.companyId,s)},onTimeframeChange:(o,r)=>{O.trackTimeframeSwitch(Na(r),Zs(o),"Dashboard"),function(s,i,c){switch(i){case"operating_expenses":case"revenue":case"net_burn_or_income":case"cash_position":s(De(c));break;case"top_expenses":s(Ia(c));break;default:throw new Error(`report type ${i} doesn't support changeTimeframe`)}}(e,o,r)},onUpdateSelectedInsightIndex:o=>{e(Oo(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,r)=>{if(o==="bill_pay_promo_card"){const s="../bills",i=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i},relative:"path"})}else if(o==="reimbursement_promo_card"){const s="../reimbursements",i=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i},relative:"path"})}else if(o==="zeni_accounts_promo_card")if(a.hasZeniAccountsAdminAccess){let s="../checking/promo";r!=null&&(s=`../checking/${r}`);const i=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i},relative:"path"})}else window.open("https://www.zeni.ai/product/business-checking-accounts","_blank");else if(o==="treasury_promo_card")if(a.isUserHasTreasuryAccess){M.saveTreasuryPopupSeen(a.tenantEmailDomain,!0);const s="../treasury",i=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i},relative:"path"})}else window.open("https://www.zeni.ai/product/treasury","_blank")},onSaveClick:(o,r,s)=>{o==="net_burn_or_income_story_card"&&(O.trackUpdateBurnRateCalculatorSettings(r,s,Eo(s)),e(To(t,r,s)))},onVideoPlay:()=>{e(ut())},onRemindMeLaterClick:()=>{e(Io())},onDontShowAgainClick:()=>{e(ut())},onIntroOutsideClick:()=>{a.isTreasuryPromoIntroClosedByOutsideClick===!0&&a.isTreasuryPromoVideoPlayed!==!0?e(ut()):e(Ao())}},autoCompleteActions:{onAutoCompleteInputChange:o=>{o.trim().length>=2?e(ce({searchString:o,searchOrigin:"navbar"})):o.trim().length===0&&e(ee("navbar"))},onCancelAutoComplete:()=>{e(ee("navbar"))},onAutoCompleteEntity:o=>{let r="";r=o.type!=="vendor"||o.detailType!=="bank_merchant"&&o.detailType!=="card_merchant"?de(o,a.tenantEmailDomain):ts(o.zeniId,o.qboId,a.tenantEmailDomain);const s=D(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s,referrer:"Search"}})}}}})(es);function qs(){const e=ca(),a=Ba(),t=Ga(a),{isAiCfoOpen:n,setIsAiCfoOpen:o,setAiCfoSidePanelQuestionToSubmit:r}=Ra(),s=W(),i=z(),c=H(),m=M.getSignedInUser(),{useFeatureGate:g,useDynamicConfig:C}=_e(),u=Ge(m),[l,h]=b.useState(!1),[p,f]=b.useState(!1),A=ja(),{tenantEmailDomain:I}=K(),{isAiCfoAccessEnabled:_,onAskAiCfoClick:T}=ne({mobileExploreReferrer:"Dashboard"}),E=S(y=>y.tenantState.fetchState==="Completed"||y.tenantState.activeTenantFetchState.fetchState==="Completed"?U(y):void 0),L=E??M.getSignedInUserTenant(I),k=E?.masterTOSInfo?.isMasterTOSAccepted??!1,v=L.tenantId,B=L.companyId;b.useEffect(()=>{l===!1&&c.state?.message==="activation"&&(i(bo(B)),h(!0))},[c.state,l,B,i]),b.useEffect(()=>{A&&!p&&c.state?.message==="open_ai_cfo_drawer"&&(f(!0),k?(o(!0),s({pathname:c.pathname,search:c.search,hash:c.hash},{replace:!0,state:{...c.state,message:void 0}})):oe({location:c,navigate:s,mergeState:{referrer:"Dashboard",message:void 0}}))},[c,p,A,k,o,s]);const{isFeatureEnabled:X}=g(R.isApAgingFeatureEnabled),{isFeatureEnabled:Pe}=g(R.isExpenseAutomationEnabled),{isFeatureEnabled:Fe}=g(R.isExpenseAutomationEnabledV2),ue=Fe||Pe&&u,{isFeatureEnabled:P}=g(R.isTreasuryEnabled),me=Zo(ue),{isFeatureEnabled:Re}=g(R.isArAgingFeatureEnabled),{isFeatureEnabled:Ze}=g(R.isDepositAccountsFeatureEnabled),{isFeatureEnabled:jt}=g(R.isReferralFeatureEnabled),{isFeatureEnabled:Qa}=g(R.isChargeCardFeatureEnabled),{isFeatureEnabled:Ha}=g(R.isAiCfoFileUploadEnabled),{isFeatureEnabled:Wa}=g(R.isDashboardSidebarChristmasAnimationEnabled),{isFeatureEnabled:Xa}=g(R.isDashboardSidebarNewYearAnimationEnabled),{isFeatureEnabled:Ja}=g(R.aiAuditScorePercentage),{configValue:Mt}=C(Ma.zeniCardsConfig),en=Mt.charge_card_cashback_rate_per_transaction==null?.0175:Mt.charge_card_cashback_rate_per_transaction;if(c.state?.message==="activation"){const y=Qo(c.state?.pathnameStackToGoBack);s(c.pathname,{state:{...c.state,message:void 0,pathnameStackToGoBack:y.newStack}})}const[Lt,tn]=b.useState(!1),[at,an]=b.useState(!1);Us("command+p, Control+p",y=>{an(!at),y.preventDefault()},{enableOnContentEditable:!0,enableOnTags:["INPUT","SELECT","TEXTAREA"]},[at]);const Ut=E?.externalConnections?.accounting[0]?.isValid;if(m==null)throw Error("Can't access dashboard without signing in...");const pe=S(y=>U(y)?.excludedResources),nn=S(y=>y.expenseAutomationViewState.selectedPeriodByTenantId),on=!!E?.companyReimbursementInfo?.info?.isReimbursementEnabled,sn=!!E?.companyBillPayInfo?.info?.isBillPayEnabled,rn=S(y=>y.treasurySetupViewState.treasuryFundsDetails).fetchStatus.fetchState,cn=E?.company!=null&&Co(E.company),nt=P&&cn,ot=Se(),ln=vt(ot?.loggedInUserRoleMap),V=[],Gt=pe?.resources?.find(y=>y.resource==="/reports/top_expenses")==null,dn=pe?.resources?.find(y=>y.resource==="/reports/task_card")==null,st=E?.userRole!=null&&ya(E?.userRole),un=pe?.resources?.find(y=>y.resource==="/bills")==null&&!st,mn=pe?.resources?.find(y=>y.resource==="/reimbursements")==null,pn=ko(ot?.loggedInUserRoleMap),hn=So(ot?.loggedInUserRoleMap),fn=E?.company?.companyChargeCardInfo?.chargeCardsCreditAccountLimit??0,gn=E?.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,bn=S(y=>y.treasurySetupViewState.treasuryFundsDetails).fundsDetails;Gt===!1&&V.push("top_expenses"),dn===!1&&V.push("task_card"),un===!1&&V.push("bill_pay_card","bill_pay_promo_card"),X===!1&&V.push("accounts_payable_aging"),Re===!1&&V.push("accounts_receivable_aging"),(ue===!1||st)&&V.push("expense_automation_card"),mn===!1&&V.push("reimbursement_card","reimbursement_promo_card"),Ze===!1&&V.push("zeni_accounts_promo_card"),jt===!1&&V.push("rewards_card"),nt===!1&&V.push("treasury_promo_card");const{areTenantIdsInSync:Vt}=Ho();b.useLayoutEffect(()=>{Lt&&me===ue||Ut!==!0||!Vt||pe?.fetchState!=="Completed"&&pe?.fetchState!=="Error"||(tn(!0),i(_o(m.userId,B,v,!0,!1,V)))},[Lt,m,v,i,Gt,Ut,pe?.fetchState,Vt]);const Cn=S(y=>y.reportUIOptionsState.forecastOnDashboard.isForecastModeOn),kn=S(y=>y.revenueState.uiState.selectedForecast?.id),Sn=S(y=>y.cardBalanceState.fetchState),he=S(y=>yo(y,V,m,Fe,Pe,nt)),_n=he.fetchState,yn=b.useMemo(()=>ia(he.cardsOrdered,_),[he.cardsOrdered,_]),vn=b.useMemo(()=>ia(he.cardsForDashboardUI,_),[he.cardsForDashboardUI,_]);$e({isDataReady:!0});const{isSuggestedQuestionsLoading:An,suggestedPromptQuestions:In}=ns(),rt=E?.isTreasuryPromoVideoPlayed===!0,Yt=E?.isTreasuryPromoVideoRemindMeLaterClicked===!0,Nt=E?.loginCounterForTreasuryPromoVideo??0,En=E?.isTreasuryPromoIntroClosedByOutsideClick===!0,$t=S(y=>y.dashboardState.isTreasuryVideoClosed),zt=b.useMemo(()=>Wo({isTreasuryPromoVideoRemindMeLaterClicked:Yt,isTreasuryPromoVideoPlayed:rt,loginCounterForTreasuryPromoVideo:Nt,isTreasuryVideoClosed:$t}),[Yt,rt,Nt,$t]),Kt=S(y=>fa(y)),ye=Kt.uiState?.currentChatSessionId,it=Kt.allSessionsWithOrderedQuestionAnswers??Gs,{currentSessionQuestionAnswers:Tn}=Xo(it,ye),qt=Tn.length===0,On=b.useCallback((y,Z,fe)=>{const ve=m?.userId;if(ve==null)return;const Y=y.trim();if(Y.length===0&&Z.length===0)return;if(!k)return void oe({location:c,navigate:s,mergeState:{referrer:"Dashboard"}});const Q=La(e.getState()),Ae=()=>{const Ie=D(c.state?.pathnameStackToGoBack,c.pathname);s(`/${I}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Ie,referrer:"Dashboard",aiCfoInitialQuestion:Y,aiCfoShouldSubmit:!Q&&Y.length>0,aiCfoInitialSubmissionSource:ra,...typeof fe=="number"?{aiCfoSuggestionIndex:fe}:{}}})};return t?Z.length>0?void o(!0):void Ae():Z.length>0?Q?(i(_t(Y)),void o(!0)):(r(Y.length>0?Y:null),o(!0),void(Y.length>0&&Ua(i,Y,ra,ye,it,ve,fe,Z.length>0?Z:void 0))):(Q&&i(_t(Y)),void Ae())},[it,ye,i,k,t,c,s,r,o,m?.userId,e,I]),Dn=b.useCallback(()=>{k?o(!0):oe({location:c,navigate:s,mergeState:{referrer:"Dashboard"}})},[k,c,s,o]),xn=b.useCallback(()=>{if(!k)return void oe({location:c,navigate:s,mergeState:{referrer:"Dashboard"}});if(I==null)return;const y=D(c.state?.pathnameStackToGoBack,c.pathname);s(`/${I}/ai-cfo/explore`,{state:{pathnameStackToGoBack:y,referrer:"Dashboard"}})},[k,c,s,I]),wn=b.useCallback(()=>{if(k)if(t){if(I==null||E==null)return;const y=ye==null||qt?`/${I}/ai-cfo/explore`:`/${I}/ai-cfo/${ye}`,Z=c.state?.pathnameStackToGoBack??[],fe=D(Z,c.pathname);s(y,{state:{...c.state,pathnameStackToGoBack:fe,[Jo]:!0}})}else oe({location:c,navigate:s,mergeState:{referrer:"Dashboard"}});else oe({location:c,navigate:s,mergeState:{referrer:"Dashboard"}})},[k,t,c,s,I,E,ye,qt]);return d.jsxs(d.Fragment,{children:[_n==="Completed"?d.jsx(ze,{analytics:O,onLoad:y=>{y.trackPageLoaded(N.Event.dashboard),nt&&zt===!0&&y.trackTreasuryPromoView("Dashboard Promo Video")}}):null,d.jsx(Ks,{maxColumns:n?2:void 0,isAiCfoAccessEnabled:_,onAskAiCfoClick:T,onAiCfoDashboardOpenPanel:Dn,onAiCfoDashboardOpenScopePage:wn,isAiCfoFileUploadEnabled:Ha===!0&&t===!1,onAiCfoDashboardPromptSubmit:On,onAiCfoDashboardExpandToFullPage:xn,aiCfoDashboardSuggestedPromptQuestions:In,aiCfoDashboardSuggestedPromptQuestionsLoading:An,onDragAndDropCard:(y,Z)=>{if(y===J||Z===J)return;const fe=function(Q,Ae,Ie){const ct=Ie.indexOf(Q),lt=Ie.indexOf(Ae);if(ct===-1||lt===-1||ct===lt)return Ie;const dt=[...Ie];return dt.splice(ct,1),dt.splice(lt,0,Q),dt}(y,Z,yn),ve=fe.filter(Q=>Q!==J),Y=he.cardsOrdered;(ve.length!==Y.length||ve.some((Q,Ae)=>Q!==Y[Ae]))&&i(vo(ve))},dashboardReport:he,passedCardsOrdered:vn,tenantId:v,companyId:B,tenantEmailDomain:I,location:c,navigate:s,isApAgingFeatureEnabled:X,isArAgingFeatureEnabled:Re,isBillPayEnabled:sn,isReimbursementEnabled:on,isSummaryCardsFiltered:at,isForecastOn:Cn,selectedForecastOnDashboard:kn,isVisitingFirstTime:l,isZeniAccountEnabled:Ze,isRewardsFeatureEnabled:jt,hasZeniAccountsAdminAccess:ln,isExpenseAutomationEnabledForUser:ue&&st===!1,selectedPeriod:nn[v],isChargeCardFeatureEnabled:Qa,isUserHasCardsAccess:pn,isUserHasTreasuryAccess:hn,cardsCreditLimit:fn,cashbackRate:en,isInterestedInChargeCard:gn,cardBalanceFetchState:Sn,christmasAnimationEnabled:Wa,newYearAnimationEnabled:Xa,treasuryFundDetails:bn,shouldShowTreasuryPromoIntroVideo:zt,isTreasuryPromoVideoPlayed:rt,isTreasuryPromoIntroClosedByOutsideClick:En,treasuryFetchState:rn,aiAuditScorePercentageEnabled:Ja})]})}const Zs=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"},Qs=e=>e.fetchState!=="Error"?e.fetchState:e.reportsInOrder.map(a=>a.fetchState).reduce((a,t)=>a==="In-Progress"||a==="Not-Started"?a:t);function Ar(){const e=Se(),a=e?.excludedResources?.find(m=>m.resource==="/reports/top_expenses")==null,{useFeatureGate:t}=_e(),{isFeatureEnabled:n}=t(R.isApAgingFeatureEnabled),{isFeatureEnabled:o}=t(R.isArAgingFeatureEnabled),r=S(m=>U(m)),{isFeatureEnabled:s}=t(R.isDebitCardFeatureEnabled),i=jo(s,r),c=Mo(r);return i===!0||c===!0?d.jsx(Ct,{children:d.jsx(w,{path:"/*",element:d.jsx(os,{})})}):d.jsxs(Ct,{children:[d.jsx(w,{path:"/",element:d.jsx(qs,{})}),d.jsx(w,{path:"cash_balance/*",element:d.jsx(Jt,{})}),d.jsx(w,{path:"card_balance/*",element:d.jsx(Jt,{})}),d.jsx(w,{path:"operating_expenses/*",element:d.jsx(se,{})}),d.jsx(w,{path:"operating_expenses/forecast/*",element:d.jsx(mt,{})}),d.jsx(w,{path:"revenue/forecast/*",element:d.jsx(mt,{})}),d.jsx(w,{path:"revenue/*",element:d.jsx(se,{})}),d.jsx(w,{path:"net_burn_or_income/forecast/*",element:d.jsx(mt,{})}),d.jsx(w,{path:"net_burn_or_income/*",element:d.jsx(se,{})}),n===!0&&d.jsxs(d.Fragment,{children:[d.jsx(w,{path:"accounts_payable_aging/*",element:d.jsx(is,{})}),d.jsx(w,{path:"accounts_payable_aging/:vendorId/:reportDate/*",element:d.jsx(rs,{})})]}),o&&d.jsxs(d.Fragment,{children:[d.jsx(w,{path:"accounts_receivable_aging/:customerId/:reportDate/*",element:d.jsx(cs,{})}),d.jsx(w,{path:"accounts_receivable_aging/*",element:d.jsx(ls,{})})]}),d.jsx(w,{path:"cash_position/*",element:d.jsx(se,{})}),d.jsx(w,{path:"top_expenses/*",element:a===!0?d.jsx(se,{}):d.jsx(Ue,{})}),d.jsx(w,{path:"cash_in_cash_out/*",element:d.jsx(se,{})}),d.jsx(w,{path:"company_details",element:d.jsx(as,{})}),d.jsx(w,{path:"referrals/*",element:d.jsx(ss,{})}),d.jsx(w,{path:"*",element:d.jsx(Ue,{})})]})}export{Ar as default};
|