@zeniai/web-app-ui 5.1.57-prod → 5.1.58-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-Jvk5ZIh7.js +1 -0
- package/dist/assets/AddressScreen-BrRyijJp.js +9 -0
- package/dist/assets/AiCfoScreen-CicMJAHj.js +22 -0
- package/dist/assets/BillPayApprovalRoutes-CDu2EgPZ.js +1 -0
- package/dist/assets/BillPayRoutes-qpaKIKLh.js +119 -0
- package/dist/assets/BusinessVerificationPageScreen-NuRsHlJi.js +9 -0
- package/dist/assets/ChargeCardRoutes-DGkxpdY7.js +71 -0
- package/dist/assets/CompanyPassportScreen-CG5-5eoy.js +1 -0
- package/dist/assets/ConnectionAuthScreen-Bn_8LVY-.js +11 -0
- package/dist/assets/CustomerOnboardingAuthScreen-Bgpl9puf.js +1 -0
- package/dist/assets/CustomerOnboardingRoutes-BWH4fb9z.js +23 -0
- package/dist/assets/DashboardRoutes-9HsT8T2z.js +20 -0
- package/dist/assets/DefaultTenantHome-CwgycKYc.js +1 -0
- package/dist/assets/DomesticWireDetailScreen-Dd35H5gU.js +18 -0
- package/dist/assets/DrawerScreen-C5n2KCQV.js +1 -0
- package/dist/assets/EntityDetailRoutes-DLIsh6TE.js +1 -0
- package/dist/assets/ExpenseAutomationRoutes-C0zzACQj.js +25 -0
- package/dist/assets/FeaturePreviewScreen-BeSvOfyq.js +1 -0
- package/dist/assets/HubSpotOAuthCallbackScreen-QEO5L34X.js +1 -0
- package/dist/assets/MagicLinkRoutes-CWoYIOYU.js +72 -0
- package/dist/assets/MagicLinkSignInScreen-D_t_Me45.js +12 -0
- package/dist/assets/MobileAppDrawer-BG5P4V6f.js +1 -0
- package/dist/assets/NotFoundScreen-DcBza--g.js +1 -0
- package/dist/assets/NotificationRoutes-CQ3pB1c-.js +1 -0
- package/dist/assets/OAuthConsentScreen-rh4Splr8.js +1 -0
- package/dist/assets/PandLWithForecastRoutes-C321jz-9.js +1 -0
- package/dist/assets/PeopleRoutes-tz6kKz-A.js +22 -0
- package/dist/assets/PerformanceRoutes-CeebcaT1.js +1 -0
- package/dist/assets/Preview-Dw6WgJ9D.js +1 -0
- package/dist/assets/QBOConnectionScreen-DmBrRYj5.js +100 -0
- package/dist/assets/ReferralListScreen-Lnl80ls5.js +5 -0
- package/dist/assets/ReimbursementApprovalRoutes-U1jW3SNW.js +1 -0
- package/dist/assets/ReimbursementApprovalRuleDetailScreen-C7v9N8Xz.js +1 -0
- package/dist/assets/ReimbursementRoutes-CrSmjoHG.js +68 -0
- package/dist/assets/ReportsRoutes-CVQ3KrxC.js +1 -0
- package/dist/assets/RewardsRoutes-CuXw1sC8.js +1 -0
- package/dist/assets/ScreenRoutes-Bm5EazfY.js +2 -0
- package/dist/assets/SettingsRoutes-BdwvZMwv.js +57 -0
- package/dist/assets/SetupPagesScreen-DPjCUjqg.js +29 -0
- package/dist/assets/SignInScreen-C1EKfqaQ.js +1 -0
- package/dist/assets/SignOutScreen-DK40OwVP.js +9 -0
- package/dist/assets/TaskListScreen-d8fI83l2.js +9 -0
- package/dist/assets/TaskRoutes-jKlcwy0X.js +9 -0
- package/dist/assets/TransactionDetailRoutes-CCDdwe13.js +1 -0
- package/dist/assets/TransactionDetailScreen-DmE69GP7.js +5 -0
- package/dist/assets/TransactionListRoutes-BU6W03tb.js +1 -0
- package/dist/assets/TreasuryRoutes-Bm8WTWLC.js +37 -0
- package/dist/assets/VendorsRoutes-B1U9Gev2.js +112 -0
- package/dist/assets/WiseConfirmationScreen-BsEe1BHV.js +12 -0
- package/dist/assets/ZeniAccountRoutes-DjEDHzor.js +57 -0
- package/dist/assets/ZeniAccountStatementScreen-Cu_59prd.js +9 -0
- package/dist/assets/accountMappingHelper-JvNPAAYV.js +1 -0
- package/dist/assets/analytics-wiEk3GGD.js +68 -0
- package/dist/assets/analyticsHelper-CScMfb2z.js +1 -0
- package/dist/assets/core-DUPexJ3H.js +12 -0
- package/dist/assets/decodeURIComponentSafe-jbE9T9Sc.js +1 -0
- package/dist/assets/dnd-O-LDWVRl.js +6 -0
- package/dist/assets/empty-B5snx4g9.js +1 -0
- package/dist/assets/empty-DtHXOIj5.js +1 -0
- package/dist/assets/emptyVideoElement-6tVV7Q67.js +1 -0
- package/dist/assets/epic-DdqgmVvM.js +2 -0
- package/dist/assets/favicon-D56XvgAH.ico +0 -0
- package/dist/assets/getLocaleForTenant-BQer3J3i.js +1 -0
- package/dist/assets/index-B_Z_hpYg.js +75478 -0
- package/dist/assets/index-BhL3T4qt.js +1 -0
- package/dist/assets/index-C4rqoBpF.js +1 -0
- package/dist/assets/index-CFjZqjGQ.js +3385 -0
- package/dist/assets/index-D9U_bKAc.js +1 -0
- package/dist/assets/index-R3FzVapp.js +2 -0
- package/dist/assets/index-R6GjjTB3.css +1 -0
- package/dist/assets/index-fhWfMdvB.js +2 -0
- package/dist/assets/index-iv31G9Nr.js +1 -0
- package/dist/assets/lexical-D7D3BWIv.js +21 -0
- package/dist/assets/liveblocks-CpSeBLzv.js +54 -0
- package/dist/assets/logo192-CqcTe-t4.png +0 -0
- package/dist/assets/lottie-BpJoufaA.js +2 -0
- package/dist/assets/manifest-icT4lOF5.json +49 -0
- package/dist/assets/mui-BYcLUAn-.js +109 -0
- package/dist/assets/pathToGoBack-DOYIxcIl.js +1 -0
- package/dist/assets/pdf--1Oee4-D.js +13 -0
- package/dist/assets/pdf-lib-DIbgSioz.js +39 -0
- package/dist/assets/plaid-DSCHiplf.js +2 -0
- package/dist/assets/pusher-DWPsZ62H.js +1 -0
- package/dist/assets/react-B3g-qTY7.js +22 -0
- package/dist/assets/react-BQJ3WCCJ.js +34 -0
- package/dist/assets/react-BYOk0YaM.js +21 -0
- package/dist/assets/react-C2LzYoMn.js +19 -0
- package/dist/assets/react-CA9dc_Y6.js +17 -0
- package/dist/assets/react-CD_enKrG.js +19 -0
- package/dist/assets/recharts-Dp6Vlg5X.js +65 -0
- package/dist/assets/routePaths-DpeDFIQv.js +1 -0
- package/dist/assets/sentry-BxlhxHUi.js +500 -0
- package/dist/assets/stripe-DMRn4zHo.js +1 -0
- package/dist/assets/url-Cto2mSPb.js +1 -0
- package/dist/assets/url-DLyO75wK.js +6 -0
- package/dist/assets/useAiCfoDashboardSuggestedQuestionsChips-BK9arDN4.js +1 -0
- package/dist/assets/useAskAiCfoHostNavButtonProps-D8UKtiUm.js +1 -0
- package/dist/assets/useDeviceId-6JqjTKKJ.js +13 -0
- package/dist/assets/useInitialThreadRequest-hFu4tb2i.js +1 -0
- package/dist/assets/utils-BI-ymB94.js +36 -0
- package/dist/assets/web-vitals-D_vxw1oG.js +1 -0
- package/dist/assets/withTransactionSidePanel-DXm_Rajk.js +21 -0
- package/dist/assets/zeni-epic-state-DP595dtC.js +13 -0
- package/dist/index.html +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import{j as s}from"./liveblocks-CpSeBLzv.js";import{h as me,i as ba,u as Ce,j as S,g as Se,n as he,N as Fa,s as jt,o as Rn,p as se}from"./core-DUPexJ3H.js";import{eQ as de,bt as Ne,PL as ja,eZ as Ie,e_ as Ae,e$ as Ee,fU as Ke,cr as qe,PM as Je,PN as lt,tR as Ba,jP as La,PO as xa,gU as pa,At as ca,Av as He,Aw as ut,jF as Vt,PP as Xe,Ah as ha,PQ as Un,PR as On,Ak as Va,PS as jn,O8 as Ha,s1 as Ht,Aq as na,h3 as Vn,PT as Nt,PU as ea,bo as Hn,PV as Nn,fF as Na,fE as Ma,A_ as Mn,fD as $a,NQ as $n,PW as Mt,ck as $t,cL as Gn,O7 as ya,BA as Gt,PX as Tt,Ba as fa,PY as zt,BB as zn,OA as Qn,BC as Yn,Cw as Zn,tb as Wn,Cq as Kn,PZ as qn,Au as Ye,P_ as Jn,P$ as Xn,Q0 as er,Q1 as ar,Q2 as tr,Q3 as mt,Q4 as nr,AL as Qt,AE as rr,Q5 as sr,fW as cr,AU as Yt,AY as Zt,fV as or,Q6 as ir,Bm as Wt,Q7 as dr,Q8 as lr,Q9 as ur,AW as Kt,AH as qt,An as Jt,AQ as Xt,AO as en,AS as mr,Qa as an,Qb as Ga,B7 as ga,KQ as tn,cM as Ct,Qc as Cr,Qd as pr,Qe as hr,Qf as fr,B4 as st,Bt as gr,Bp as br,B0 as yr,Br as Sr,Bh as Ir,Bj as Ar,Qg as nn,Bz as Ta,Id as Er,Qh as kr,Qi as _r,Qj as Dr,Qk as rn,Ql as wr,BW as Pr,B9 as sn,B3 as ve,B8 as vr,Qm as Tr,Qn as Fr,Ae as Br,Qo as cn,Qp as on,Qq as Lr,Ag as xr,Af as Ft,Qr as Rr,Qs as Ur,Qt as Or,KM as jr,Qu as pt,Qv as Vr,wR as dn,kn as Hr,gV as Nr,B$ as Mr,Qw as ln,Qx as $r,C0 as Gr,Qy as zr,dd as Qr,tL as Yr,BR as Zr,BL as Ve,bs as Wr,bF as Kr,cw as qr,bG as Jr,JZ as Xr}from"./zeni-epic-state-DP595dtC.js";import{z as ee,k as $e,s as oe,U as Q,B as Sa,c4 as za,cf as es,cg as as,ch as ts,p as Re,ci as ns,cj as rs,J as Ia,aN as xe,q as ye,bo as ht,ck as ss,A as Aa,h as Qa,m as ft,c as K,D as gt,a7 as Ya,cl as cs,_ as un,aq as bt,bA as ra,cm as ct,cn as os,x as yt,co as is,at as mn,a2 as ot,Y as Cn,e as pn,cp as ds,cq as ls,cr as us,cs as ms,ct as Cs,cu as ps,o as Ra,cv as hs,cw as fs,cx as at,H as gs,cy as bs,cz as ys,cA as Ss,cB as Is,cC as As,a9 as Es}from"./index-B_Z_hpYg.js";import{n as Te,D as hn,S as ks}from"./mui-BYcLUAn-.js";import{a as d}from"./sentry-BxlhxHUi.js";import{g as pe,a as Ea,b as fn,c as ke,d as _e,e as Me,f as Ge,h as ze,A as _s,i as St,P as Ds,j as It,s as sa,k as gn,l as Ze,m as bn,n as ws,o as yn,p as Ps,S as Bt}from"./SetupPagesScreen-DPjCUjqg.js";import{u as Sn}from"./useInitialThreadRequest-hFu4tb2i.js";import Za from"./NotFoundScreen-DcBza--g.js";import{M as We}from"./MobileAppDrawer-BG5P4V6f.js";import{u as In}from"./useAskAiCfoHostNavButtonProps-D8UKtiUm.js";import{v as Lt}from"./utils-BI-ymB94.js";import{d as vs}from"./recharts-Dp6Vlg5X.js";import{t as Ts}from"./AddressScreen-BrRyijJp.js";import"./analytics-wiEk3GGD.js";import"./plaid-DSCHiplf.js";import"./dnd-O-LDWVRl.js";import"./stripe-DMRn4zHo.js";import"./lottie-BpJoufaA.js";import"./lexical-D7D3BWIv.js";import"./pdf--1Oee4-D.js";import"./analyticsHelper-CScMfb2z.js";import"./routePaths-DpeDFIQv.js";import"./BusinessVerificationPageScreen-NuRsHlJi.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]="08065324-95b6-4a7e-aeb4-76ca9734a9d1",e._sentryDebugIdIdentifier="sentry-dbid-08065324-95b6-4a7e-aeb4-76ca9734a9d1")}catch{}})();function Fs(){const e=me(),{cardId:a}=ba(),t=Ce(),r=ee.getSignedInUser(),n=S(Z=>de(Z)),f=$e(),p=Ne(f?.loggedInUserRoleMap),{useFeatureGate:g}=oe();if(r==null)throw Error("Can't access Add To Wallet Page without signing in...");const[_,c]=d.useState(!1),l=S(Z=>ja(Z).firstViewAfterActivation);if(a==null)throw Error("Empty card id is not valid...");const v=n.userRole.includes("charge_card_user"),{isFeatureEnabled:y}=g(Q.isChargeCardFeatureEnabled),h=!!n.companyChargeCardInfo?.info?.isChargeCardEnabled,{isFeatureEnabled:L}=g(Q.isDebitCardFeatureEnabled),F=Ie(n),x=Ae(n),C=Ee(L,n),u=n.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,D=ke({isDebitCardFeatureEnabled:L,isBankingOnlyTenant:C}),o=_e({isCardsOnlyTenant:F,isChargeCardFeatureEnabled:y,isBookKeepingTenant:x,isDebitCardProductVisible:D,chargeCardsCreditAccountLimit:u}),I=!!n.companyDebitCardInfo?.info?.isDebitCardEnabled,A=S(Z=>Ke(Z,n.companyId)),j=qe(A.controllers),{creditAccount:E,creditAccountRepayment:b}=S(Z=>Je(Z)),B=S(Z=>Z.classListState.fetchState),i=!v&&o&&h,m=S(Z=>lt(Z,a,i,o)),[U,M]=d.useState(!1),R=m.chargeCard,T=R?.cardCreatedByUser?.userId,$=S(Z=>T!=null?Ba(Z.userRoleState,T):void 0),G=$?.accountingClassIDs[0],V=S(Z=>G!=null?La(Z.classState,{classId:G,reportId:"class_list"}):void 0),w=R?.cardHolderUser?.userId,Y=S(Z=>w!=null?Ba(Z.userRoleState,w):void 0),q=Y?.accountingClassIDs[0],P=S(Z=>q!=null?La(Z.classState,{classId:q,reportId:"class_list"}):void 0),O=R?.type.code==="business_physical_credit_card"||R?.type.code==="business_physical_debit_card",te=R?.type.code==="business_physical_debit_card";d.useEffect(()=>{l&&_===!1&&O&&(c(!0),setTimeout(()=>{t(xa()),te&&t(pa({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))},5e3))},[l,_,O,te]),d.useEffect(()=>{U||m.fetchState==="Completed"||m.fetchState==="In-Progress"||a==null||(M(!0),t(ca(a,i,!1)))},[U,m,a,t]),d.useEffect(()=>{if(m.fetchState==="Completed"&&(O===!1||O&&R?.status?.code!=="active"||R?.cardHolderUserId!==r.userId||l===!1&&_===!1||R?.type.code==="business_physical_debit_card"||R?.type.code==="business_virtual_debit_card")){const Z=pe(n.tenantEmailDomain,a,r,R,l);e(Z)}},[m.fetchState,l,O]),d.useEffect(()=>{E.fetchState!=="Completed"&&E.fetchState!=="In-Progress"&&o&&h&&p&&t(He()),b.fetchState!=="Completed"&&b.fetchState!=="In-Progress"&&o&&h&&p&&t(ut()),B!=="Completed"&&B!=="In-Progress"&&t(Vt())},[E.fetchState,b.fetchState,t,o,h,p,B]);const ae=()=>{if(r!=null&&a!=null){t(xa());const Z=pe(n.tenantEmailDomain,a,r);e(Z)}},k=R?.type.code==="business_physical_debit_card"||R?.type.code==="business_virtual_debit_card",z=Me(o,D,I,h),J=Ea(o,h,p,E,b),X=fn(k,m);return m.fetchState!=="Completed"?s.jsx(Sa,{fetchState:"In-Progress"}):s.jsxs(s.Fragment,{children:[s.jsx(za,{showConfetti:l}),s.jsx(es,{onGotItClick:ae,isDebitCard:R?.type.code==="business_physical_debit_card",controllerEmails:j,isChargeCardFeatureEnabled:o,isDebitCardFeatureEnabled:D,isDebitCardSetupEnabled:I,isChargeCardSetupEnabled:h,productInformation:z,creditAccountInformation:J,debitAccountInformation:X,chargeCardDetailView:m,creditAccount:E,classListFetchState:B,creditAccountRepayment:b,cardIssuedByRoles:$?.userRoles,cardIssuedByDepartmentName:V?.className,cardHolderRoles:Y?.userRoles,cardHolderDepartmentName:P?.className})]})}const At=e=>{const{events:a,onEvent:t,onSubscribed:r}=e,n=as(),f=d.useRef(t),p=d.useRef(r),g=d.useRef(0);d.useEffect(()=>{f.current=t},[t]),d.useEffect(()=>{p.current=r},[r]);const _=d.useMemo(()=>[...a].sort().join("|"),[a]);d.useEffect(()=>{if(n==null||a.length===0)return;const c=[],l=new Set,v=()=>{if(p.current==null)return;const y=Date.now();y-g.current<5e3||(g.current=y,p.current())};return a.forEach(y=>{const[h,L]=ts(y);if(L==="")return;const F=n.channel(h),x=u=>{f.current(L,u)};let C;if(F?.subscribed===!0)C=F,C.bind(L,x),l.has(h)||(l.add(h),v()),c.push(()=>{F.unbind(L,x)});else{if(C=F??n.subscribe(h),C.bind(L,x),!l.has(h)){l.add(h);const u=()=>{v()};C.bind("pusher:subscription_succeeded",u),c.push(()=>{C.unbind("pusher:subscription_succeeded",u)})}c.push(()=>{C.unbind(L,x)})}}),()=>{c.forEach(y=>y())}},[n,_])},An="charge-card-transaction-update",En="charge-card-transaction-created",kn="charge-card-transaction-declined",_n="charge-card-transaction-updated",Dn="charge-card-transaction-receipt-uploaded",aa="charge-card-status-update",Et="charge-card-spending-updated",Wa="credit-account-balance-updated",Ka="charge-card-created",kt="charge-card-limit-updated",_t="charge-card-limit-reset",Dt="charge-card-renamed",Bs="charge-card-department-updated",wn="charge-card-repayment-completed",Pn="charge-card-payment-date-updated",ka="charge-card-cashback-redeemed",_a="charge-card-cashback-earned",ta=(e,a)=>e==null||e===""?[]:a.map(t=>`private-encrypted-${e}.${t}`),Ls=[_a,ka],xs=he(function(e){const a=Xe(e);return{insightsData:a.insight,cashbackByPeriod:a.cashbackByPeriod,uiState:a.uiState,cashbackSummary:a.cashbackSummary}},function(e){return{onColumnSortConfigChanged:(a,t)=>{e(Un({uiState:{sortKey:a,sortOrder:t}}))}}})(rs);function Rs(){const e=me(),a=Ce(),t=Se(),r=ee.getSignedInUser(),n=S(L=>de(L)),{useFeatureGate:f}=oe(),{isFeatureEnabled:p}=f(Q.isCardsCommentingEnabled),[g,_]=d.useState(!1),c=S(L=>Xe(L)),l=Sn(n.companyId,{clearParams:c.fetchState==="Completed"}),v=d.useCallback(()=>{const L=Re(t.state?.pathnameStackToGoBack),F=L.poppedPathname??Us(n.tenantEmailDomain);e(F,{state:{pathnameStackToGoBack:L.newStack}})},[e,t,n.tenantEmailDomain]),y=Ge(n);if(At({events:ta(y,Ls),onEvent:L=>{switch(L){case _a:case ka:return void a(ha(!0))}},onSubscribed:()=>{a(ha(!0))}}),d.useEffect(()=>{g||c.fetchState==="Completed"||c.fetchState==="In-Progress"||(_(!0),a(ha()))},[g,c,a]),r==null)throw Error("Can't access cashback detail page without signing in...");const h=c.cashbackSummary?.cashbackEarned?.amount!=null&&c.fetchState!=="Not-Started";return c.fetchState!=="In-Progress"||h?(c.cashbackSummary?.cashbackEarned?.amount??0)===0&&c.fetchState==="Completed"?s.jsx(Za,{}):s.jsx(xs,{onBackClick:v,isCardsCommentingEnabled:p,initialOpenThreadRequest:l}):s.jsx(ns,{onBackClick:v})}const Us=e=>`/${e}/cards`,Os={containerWidth:new Aa(100,58)},js=({appContent:e})=>{const a=Ia(),t=Ce(),r=me(),{cardId:n}=ba(),f=Se(),{useDynamicConfig:p}=oe(),[g,_]=d.useState(!1),[c,l]=d.useState(!1),[v,y]=d.useState(!1),[h,L]=d.useState(!1),F=ee.getSignedInUser();if(F==null)throw Error("Can't access onboarding card page without signing in...");const x=S(P=>de(P));if(n==null)throw Error("Empty card id is not valid...");const{configValue:C}=p(xe.zeniCardsConfig),u=C.max_charge_card_activation_attempts_by_card_id,D=S(P=>On(P,n)),o=D.chargeCard,I=S(P=>P.chargeCardConfigState.fetchState),{useFeatureGate:A}=oe(),{isFeatureEnabled:j}=A(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:E}=A(Q.isDebitCardFeatureEnabled),b=Ee(E,x),B=ke({isDebitCardFeatureEnabled:E,isBankingOnlyTenant:b}),i=!!x.companyChargeCardInfo?.info?.isChargeCardEnabled,m=x.userRole.includes("charge_card_user"),U=Ie(x),M=Ae(x),R=x.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,T=_e({isCardsOnlyTenant:U,isChargeCardFeatureEnabled:j,isBookKeepingTenant:M,isDebitCardProductVisible:B,chargeCardsCreditAccountLimit:R}),$=!m&&T&&i;d.useEffect(()=>{g===!1&&I!=="In-Progress"&&I!=="Completed"&&(t(Va()),_(!0)),c===!1&&D.fetchState==="Not-Started"&&(l(!0),t(ca(n,$,T)))},[c,D.fetchState,g,I]);const G=o?.type.code==="business_physical_credit_card"||o?.type.code==="business_physical_debit_card";d.useEffect(()=>{if(D.fetchState==="Completed"){if(v===!1&&(G===!1||G&&o?.status?.code!=="inactive"||o?.cardHolderUserId!==F.userId)){const P=pe(x.tenantEmailDomain,n,F,o,!0),O=ye(f.state?.pathnameStackToGoBack,f.pathname);r(P,{state:{pathnameStackToGoBack:O}})}else if(v&&D.isRefreshingViewInBackground===!1&&o?.status?.code==="active"){t(jn({chargeCardId:n}));const P=pe(x.tenantEmailDomain,n,F,o,!0),O=ye(f.state?.pathnameStackToGoBack,f.pathname);t(Ha()),r(P,{state:{pathnameStackToGoBack:O}})}}},[D.fetchState,o?.type.code,v,D.isRefreshingViewInBackground]);const V=ee.getZeniOtpTokenForCardHolder(n),w=S(P=>Ht(P.userState,F.userId)),Y=()=>{o?.status?.code!=="active"&&t(na(n,!0))};d.useEffect(()=>{D.updatePhysicalChargeCardAttemptFetchState.fetchState==="Completed"&&o?.cardActivationAttemptHistory.some(P=>P.statusCode==="success")===!0&&v===!1&&(setTimeout(Y,3e3),y(!0))},[D.updatePhysicalChargeCardAttemptFetchState.fetchState,o?.cardActivationAttemptHistory]);const q=P=>{L(P)};if(I!=="Completed"||o==null)return s.jsx(Sa,{fetchState:"In-Progress"});if(o.shippingAddressId==null)throw Error("Can't access shippingAddressId.");if(w?.phone==null)throw Error("Can't access user phone number.");return s.jsxs(Ns,{children:[s.jsx(We,{isAppContentDrawerOpen:h,handleDrawerToggle:q}),s.jsx(Vs,{cardId:n,card:o,shippingAddressId:o.shippingAddressId,phone:w.phone,signedInUser:F,isSandboxEnv:ht(),chargeCardDetailState:D,signedInUserToken:V,navigate:r,currentTenant:x,location:f,maxChargeCardActivationAttempts:u[n]!=null?u[n]: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?s.jsx(Hs,{windowSize:a,children:e}):null]})},Vs=he(function(e,{chargeCardDetailState:a,shippingAddressId:t,location:r,cardId:n}){const f=Vn(e.addressState,t);if(f==null)throw Error("Can't access shippingAddress.");const p=Nt(e,n),g=a.updateStatus,_=ea(e,!1,!1,!1);let c=!1;_.fetchState==="Completed"&&_.cards.length<=1&&(c=!0);const l=r.state?.message==="comingFromV2UrlPath";return{showActivatePage:a.chargeCard?.providerCardCreateTime!=null&&a.chargeCard.providerCardCreateTime.add(24,"h").isBefore(Hn())||l,showMenuIcon:c,shippingAddress:f,vgsVaultId:Qa.cardVaultId,twoFAView:p,activationWaitStatus:g,isRefreshingViewInBackground:a.isRefreshingViewInBackground}},function(e,a){const{navigate:t,cardId:r,location:n,currentTenant:f,chargeCardDetailState:p}=a,g=p.chargeCard?.cardProviderID,{tenantEmailDomain:_}=f;return{onGetOtp:c=>{g!=null&&e($a(c,"ChargeCardHolder",r))},onUpdatePhysicalChargeCardAttempt:c=>{e(Mn(r,c))},onResendOtp:c=>{g!=null&&e(Ma(c,"ChargeCardHolder",r))},onVerifyOtp:(c,l)=>{g!=null&&e(Na(c,l,"ChargeCardHolder",r))},onVerifyOtpSuccess:c=>{c!=null&&ee.saveZeniOtpTokenForCardHolder(c,r)},onCVVActivateSuccess:()=>{e(Nn({chargeCardId:r}))},onBackClick:()=>{const c=Re(n.state?.pathnameStackToGoBack),l=c.poppedPathname==null||c.poppedPathname.includes("onboard")===!0?ze(_):c.poppedPathname;t(l,{state:{pathnameStackToGoBack:c.newStack}})}}})(ss),Hs=Te.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
width: ${e=>`${Os.containerWidth.value(e.windowSize)}%`};
|
|
5
|
+
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
6
|
+
`,Ns=Te.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
|
+
`,Ua=gt.getLocalizedStrings().dateFormat,Ms={overlayWidth:new Aa(100,100,58)},vn=[wn,Wa],$s=new Set(vn),Gs=he(function(e,a){const t=a.currentTenant?.companyId;return{plaidConnectionDetails:Qn(e,t,"zeni_accounts","external_account").plaidConnectionDetails,depositAccountListView:Yn(e.depositAccountState,e.depositAccountListState)}},function(e,a){const{navigate:t,currentTenant:r,hasZeniAccountsAdminAccess:n,isZeniAccountsUser:f,isCashbackInfoFetchStateCompleted:p,isCreditCardInfoFetchStateCompleted:g,isDebitCardInfoFetchStateCompleted:_,controllerEmails:c,paymentDetails:l,productInformation:v,cashbackInformation:y,paymentSourceInformation:h,creditAccountInformation:L,debitAccountInformation:F,paymentInitiatedDate:x,sourcePage:C}=a,{tenantEmailDomain:u}=r,D=()=>{e(Gt(!0));const o=Ge(r);o!=null&&o!==""&&e(fa(o,!0,!0)),e(He(!0))};return{onBackNavigation:()=>{if(p&&g&&_&&y!=null&&K.trackCardsPayEarlyFormClick(c,v,y,"Back",l.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:l.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:l.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:l.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:l.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:x?.add(3,"day").format(Ua.visual.MMMDCommaYYYYformat),paymentInitiatedDate:x?.format(Ua.visual.MMMDCommaYYYYformat)},h,L,F),C==="cardPaymentHistory")a.closeDrawerHandler(!0),e(zt());else{const o=ze(u);t(o)}},onUpdatePaymentAccountStatus:(o,I,A)=>{e(Kn(o,I,"bill_pay","bill_pay_detail",A))},onEstablishConnectionSuccess:()=>{e(fa(r.companyId,!0))},onFetchLinkTokenClick:o=>{e(Wn("external_account",o))},onEstablishConnectionClick:o=>{e(Zn(o,r.companyId,"charge_card_payment","charge_cards"))},onSignUpAccountClick:()=>{n?window.open(`/${u}/checking/promo`,"_blank"):window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")},onMoveMoneyClick:()=>{f?window.open(`/${u}/checking/transfer`):window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")},onEventReceived:o=>{$s.has(o)&&D()},onPusherSubscribed:D}})(Ya(cs)),wt=({isPaymentDrawerOpen:e,closeDrawerHandler:a,pageName:t,creditAccountSpentAmount:r,productInformation:n,sourcePage:f,creditAccountInformation:p,debitAccountInformation:g,cashbackInformation:_,isDebitCardInfoFetchStateCompleted:c,isCreditCardInfoFetchStateCompleted:l,isCashbackInfoFetchStateCompleted:v,paymentInitiatedDate:y,retryRepayment:h})=>{const L=me(),{useDynamicConfig:F}=oe(),{configValue:x}=F(xe.zeniAccountsConfig),C=$n(x),u=S(z=>Mt(z)),{creditAccount:D}=S(z=>Je(z)),o=S(z=>de(z)),I=ft(),A=Ia(),j=Ce(),E=ee.getSignedInUser(),b=$e(),[B,i]=d.useState(!1),[m,U]=d.useState(!1),{configValue:M}=F(xe.zeniCardsConfig),R=M.credit_card_auto_pay_threshold_by_company_id?.[o.companyId]??M.default_credit_card_auto_pay_threshold??_s,T=$t(b?.loggedInUserRoleMap),$=Gn(b?.loggedInUserRoleMap),G=!!o.companyZeniAccountInfo?.info?.isZeniAccountEnabled,V=S(z=>ya(z,o.companyId)),w=V.companyChargeCardInfo?.primaryFundingAccount,Y=V.allFundingAccounts.find(z=>z.id===w?.accountId),q=S(z=>Ke(z,o.companyId)),P=qe(q.controllers);d.useEffect(()=>{if(u.fetchState!=="Completed"&&u.fetchState!=="In-Progress"&&j(Gt()),u.fetchState==="Completed"&&!m){const z=o.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,J=u.transferFromAccounts.find(Z=>Z.id===z);let X;if(f==="cardPaymentHistory"&&h){const Z=h.paymentAccountId!=null?u.transferFromAccounts.find(re=>re.id===h.paymentAccountId):void 0;X={amount:h.amount,isAutoRepayment:o.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:Lt(),transferFrom:Z??J}}else X={amount:{amount:D.balance.amount+D.hold.amount,currencyCode:D.balance.currencyCode,currencySymbol:D.balance.currencySymbol},isAutoRepayment:o.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,idempotencyKey:Lt(),transferFrom:J};j(Tt(X)),U(!0)}},[u.fetchState,m,f,h,u.transferFromAccounts,o.companyChargeCardInfo?.info?.primaryFundingAccount?.accountId,o.companyChargeCardInfo?.info?.isAutoPayEnabled,D.balance.amount,D.balance.currencyCode,D.balance.currencySymbol,D.hold.amount,j]);const O={isZeniCheckingEnabled:o.companyZeniAccountInfo?.info?.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:Y?.accType==="depositAccount",creditCardPaymentSourceAccountName:Y?.label,creditCardPaymentSourceAccountType:Y?.accType,creditCardPaymentSourceLastFourDigits:Y?.accountLast4,creditCardPaymentSourceBalance:Y?.accountBalance?.available?.amount??0};if(d.useEffect(()=>{V.fetchState!=="Completed"&&V.fetchState!=="In-Progress"&&j(fa(o.companyId,!0))},[V.fetchState]),d.useEffect(()=>{u.updateStatus==="Completed"&&_!=null&&v&&l&&c&&K.trackCardsPayEarlyPayNowClick(P,n,_,u.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:u.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:u.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:u.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:u.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:y?.add(3,"day").format(Ua.visual.MMMDCommaYYYYformat),paymentInitiatedDate:y?.format(Ua.visual.MMMDCommaYYYYformat)},O,p,g)},[u.updateStatus,_,v,l,c,y]),d.useEffect(()=>{u.fetchState==="Completed"&&_!=null&&v&&l&&c&&!B&&e&&m&&_!=null&&(K.trackCardsPayEarlyFormView(P,n,_,t,o.companyChargeCardInfo?.info?.isAutoPayEnabled??!1,D.balance.amount,O,p,g),i(!0))},[u,v,l,c,B,e,m]),E==null)throw Error("Can't access invite people page without signing in...");const te=()=>{a(!0),j(zt())},ae=Ge(o),k={events:e?ta(ae,vn):[],eventCallback:(z,J,X)=>{X.onEventReceived(z)},onSubscribed:z=>{z.onPusherSubscribed()}};return s.jsx(s.Fragment,{children:s.jsx(hn,{onClose:()=>{te()},anchor:"right",transitionDuration:250,open:e,PaperProps:{style:{width:Ms.overlayWidth.valuePercentage(A),boxShadow:"none"}},slotProps:{backdrop:{style:{backgroundColor:I.colors.black,opacity:.75,cursor:"pointer"}}},children:s.jsx(zs,{onClick:z=>z.stopPropagation(),children:s.jsx(Gs,{...k,closeDrawerHandler:a,navigate:L,paymentDetails:u,creditAccountSpentAmount:r,onTransferClick:()=>{v&&l&&c&&_!=null&&K.trackCardsPayEarlyFormClick(P,n,_,"Pay Now",u.chargeCardRepaymentDetailLocalData.isAutoRepayment,{paymentAmount:u.chargeCardRepaymentDetailLocalData.amount.amount,paymentAccountName:u.chargeCardRepaymentDetailLocalData.transferFrom?.label,paymentAccountType:u.chargeCardRepaymentDetailLocalData.transferFrom?.accType,paymentAccountLastFourDigits:u.chargeCardRepaymentDetailLocalData.transferFrom?.accountLast4,paymentCompleteEta:void 0,paymentInitiatedDate:void 0},O,p,g),j(zn({companyId:o.companyId}))},onDismissClick:te,onSaveChangesToLocalStore:z=>{j(Tt(z))},currentTenant:o,hasZeniAccountsAdminAccess:T,isZeniAccountsUser:$,isZeniAccountSetupEnabled:G,productInformation:n,sourcePage:f,controllerEmails:P,autoPayThreshold:R,paymentSourceInformation:O,creditAccountInformation:p,debitAccountInformation:g,cashbackInformation:_,isCashbackInfoFetchStateCompleted:v,isCreditCardInfoFetchStateCompleted:l,isDebitCardInfoFetchStateCompleted:c,paymentInitiatedDate:y,maxInsuredAmount:C.maxInsuredAmount})})})})},zs=Te(ks)`
|
|
15
|
+
display: flex;
|
|
16
|
+
min-height: 100%;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
`,Pt=e=>e!=null&&typeof e=="object"?e:null,ce=e=>typeof e=="string"?e:void 0,Pe=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0,Oa=e=>e!=null&&typeof e=="object"&&typeof e.code=="string"&&typeof e.name=="string",tt=e=>{if(e==null||typeof e!="object")return!1;const a=e;return typeof a.transaction_id=="string"&&typeof a.amount=="number"&&typeof a.currency_code=="string"&&typeof a.currency_symbol=="string"&&typeof a.direction=="string"&&!!Oa(a.transaction_status)&&!!Oa(a.transaction_type)},vt=(e,a)=>{const t=e?.card_status;if(!Oa(t))return null;const r=e?.is_locked_by_admin;return{cardId:a,cardStatus:t,isLockedByAdmin:typeof r=="boolean"?r:void 0}},it=[An,En,kn,_n,Dn,aa,Et,Wa,kt,_t,Dt],Tn=[_a,ka],Qs=new Set([...it,...Tn]),nt=gt.getLocalizedStrings().dateFormat,Ys=he(function(e,a){const{includeCreditAccountInfo:t,cardId:r,signedInUserToken:n,isChargeCardFeatureEnabled:f}=a,p=ee.getSignedInUser(),g=e.tenantState.currentTenantId,_={userId:p?.userId??"",sessionId:p?.zeniSessionId??"",tenantId:g??""},c=lt(e,r,t,f),l=sr(e,r),v=cr(e);return{chargeCardDetailView:c,chargeCardsRecurringExpensesState:l,vgsVaultId:Qa.cardVaultId,transactionAttachmentsEndpointToFetch:`${ot}/card_transaction_attachments`,transactionAttachmentEndpointToDownload:`${ot}/card_transaction_attachment`,authParams:_,isSnackbarOpen:v.isSnackbarOpen,cardsEndPoint:`${mn.cardMicroServiceBaseUrl}`,signedInUserToken:c.twoFAView.token??n}},function(e,a){const{cardId:t,currentTenant:r,navigate:n,location:f,cardProviderId:p,includeCreditAccountInfo:g,setIsPaymentOpen:_,controllerEmails:c,productInformation:l,cashbackInformation:v,primaryFundingAccountDetails:y,creditAccountInformation:h,debitAccountInformation:L,isChargeCardFeatureEnabled:F}=a,{tenantEmailDomain:x}=r;return{onEventReceived:(C,u)=>{(({event:D,data:o,cardId:I,dispatch:A,subscribedEvents:j})=>{const E=Pt(o);switch(D){case _a:case ka:return void A(ha(!0));case An:{const b=ce(E?.card_id);if(b==null||b!==I)return;const B=ce(E?.transaction_id),i=E?.transaction_status;return B!=null&&Oa(i)?void A(nr({transactionId:B,transactionStatus:i})):void A(Ye(I,null,null,!0))}case aa:{const b=ce(E?.card_id)??I;if(b!==I)return;const B=vt(E,b);return B!=null?void A(mt(B)):void A(na(I,!0))}case Et:{const b=ce(E?.card_id)??I;if(b!==I)return;const B=ce(E?.currency_code),i=ce(E?.currency_symbol),m=Pe(E?.balance);return B!=null&&i!=null&&m!=null?(A(tr({cardId:b,currencyCode:B,currencySymbol:i,balance:m,hold:Pe(E?.hold),dailyPurchaseSpends:Pe(E?.daily_purchase_spends),monthlyPurchaseSpends:Pe(E?.monthly_purchase_spends),dailyWithdrawals:Pe(E?.daily_withdrawals),monthlyWithdrawals:Pe(E?.monthly_withdrawals)})),void A(He(!0))):(A(na(I,!0)),void A(He(!0)))}case Wa:{const b=ce(E?.currency_code),B=ce(E?.currency_symbol),i=Pe(E?.available_amount),m=Pe(E?.balance_amount);return b!=null&&B!=null&&i!=null&&m!=null?void A(ar({currencyCode:b,currencySymbol:B,available:i,balance:m,hold:Pe(E?.hold_amount),cashback:Pe(E?.cashback_amount)})):void A(He(!0))}case En:{const b=ce(E?.card_id)??I;if(b!==I)return;const B=E?.transaction;return tt(B)?void A(er({cardId:b,transaction:B})):void A(Ye(I,null,null,!0))}case kn:{const b=ce(E?.card_id)??I;if(b!==I)return;const B=E?.transaction;return tt(B)?void A(Xn({cardId:b,declineReason:ce(E?.decline_reason),transaction:B})):void A(Ye(I,null,null,!0))}case _n:{const b=ce(E?.card_id)??I;if(b!==I)return;const B=E?.transaction;return tt(B)?void A(Jn({cardId:b,transaction:B})):void A(Ye(I,null,null,!0))}case Dn:{const b=ce(E?.card_id)??I;if(b!==I)return;const B=ce(E?.transaction_id),i=E?.attachment_file_paths;return B!=null&&Array.isArray(i)&&i.every(m=>typeof m=="string")?void A(qn({cardId:b,transactionId:B,attachmentFilePaths:i})):void A(Ye(I,null,null,!0))}case kt:case _t:case Dt:{const b=ce(E?.card_id);if(b==null||b!==I)return;A(na(I,!0))}}})({event:C,data:u,cardId:t,dispatch:e,subscribedEvents:Qs})},onPusherSubscribed:()=>{e(na(t,!0)),e(Ye(t,null,null,!0)),e(He(!0))},onReloadTransactions:()=>{e(ca(t,g,F))},onFetchChargeCardTransactionList:(C,u)=>{e(Ye(t,C,u))},onUpdateScrollYOffset:C=>{},onGetOtp:C=>{p!=null&&e($a(C,"ChargeCardHolder",t))},onResendOtp:C=>{p!=null&&e(Ma(C,"ChargeCardHolder",t))},onVerifyOtp:(C,u)=>{p!=null&&e(Na(C,u,"ChargeCardHolder",t))},onVerifyOtpSuccess:C=>{C!=null&&ee.saveZeniOtpTokenForCardHolder(C,t)},onColorCodeChange:C=>{e(mr(t,C))},onLockChargeCard:(C,u)=>{e(en(C,t,u))},onUnlockChargeCard:C=>{e(Xt(C,t))},onCloseChargeCard:C=>{e(Jt(t,C))},onFetchChargeCardsRecurringExpenses:()=>{e(qt([t]))},updateChargeCardName:(C,u)=>{e(Kt(C,t,u))},updateChargeCardTransactionAttachments:(C,u)=>{u!=null&&e(ur({transactionId:C,data:u}))},updateChargeCardTransactionUploadReceiptsFetchStatus:(C,u,D,o)=>{e(lr({chargeCardId:u,transactionId:C,fetchState:D,error:o}))},updateChargeCardTransactionReceiptsShowTick:(C,u,D)=>{e(dr({chargeCardId:u,transactionId:C,shouldShowTick:D}))},onChargeCardRevokeInviteClick:()=>{e(Wt(t))},updateChargeCardTransactionIsViewReceiptClicked:(C,u,D)=>{e(ir({chargeCardId:u,transactionId:C,isViewReceiptClicked:D}))},onChargeCardTransactionRowClick:(C,u)=>{const D=ye(f.state?.pathnameStackToGoBack,f.pathname);n(`../../transaction/${C}/${u}`,{state:{pathnameStackToGoBack:D}})},onBackClick:()=>{const C=Re(f.state?.pathnameStackToGoBack),u=ze(x);n(u,{state:{pathnameStackToGoBack:C.newStack,message:"comingFromCardDetail"}})},removeSnackbar:()=>{e(or())},onUpdateDebitCardPinAttempt:C=>{e(Zt(t,C)),C==="success"&&e(pa({messageSection:"update_debit_card_pin_attempt",messageText:"success",type:"success",showStatusIcon:!0}))},onUploadReceiptComplete:(C,u)=>{C?e(pa({messageSection:"charge_card_receipt_upload",messageText:"success",type:"success",showStatusIcon:!0})):u!=null&&e(pa({messageSection:"charge_card_receipt_upload",messageText:"failed",type:"error",showStatusIcon:!0,variables:[{variableName:"_api-error_",variableValue:u.message}]}))},updateSpendLimit(C,u,D,o){e(Yt(C,u,D.code,o))},shouldOpenCreditCardPaymentDrawer(C){C&&v!=null&&K.trackCardsPayEarlyClick(c,l,v,"Card Detail","Text Button","Pay Now",{isZeniCheckingEnabled:r.company?.companyZeniAccountInfo.isZeniAccountEnabled??!1,isZeniCheckingPaymentSource:y?.accType==="depositAccount",creditCardPaymentSourceAccountName:y?.label,creditCardPaymentSourceAccountType:y?.accType,creditCardPaymentSourceLastFourDigits:y?.accountLast4,creditCardPaymentSourceBalance:y?.accountBalance?.available?.amount??0},h,L),_(C)}}})(Ya(is));function Zs(){const e=me(),a=Ce(),t=Se(),{cardId:r}=ba(),[n,f]=d.useState(!1),[p,g]=d.useState(!1),{useDynamicConfig:_}=oe(),c=ee.getSignedInUser(),l=S(N=>de(N)),v=S(N=>ja(N).firstViewAfterActivation),y=S(N=>N.classListState.fetchState),{configValue:h}=_(xe.documentAiReceiptMaxSizeLimitBytesConfig),{configValue:L}=_(xe.zeniCardsConfig),F=L.enable_card_controls_for_company_ids,x=L.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(F)&&F.includes(l.companyId),[C,u]=d.useState(!1),[D,o]=d.useState(!1),{useFeatureGate:I}=oe(),{isFeatureEnabled:A}=I(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:j}=I(Q.isDebitCardFeatureEnabled),E=Ee(j,l),b=ke({isDebitCardFeatureEnabled:j,isBankingOnlyTenant:E}),{isFeatureEnabled:B}=I(Q.isEarlyPayFeatureEnabled),{isFeatureEnabled:i}=I(Q.isCardsCommentingEnabled),m=Ae(l),U=Ie(l),M=l.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,R=_e({isCardsOnlyTenant:U,isChargeCardFeatureEnabled:A,isBookKeepingTenant:m,isDebitCardProductVisible:b,chargeCardsCreditAccountLimit:M}),T=!!l.companyDebitCardInfo?.info?.isDebitCardEnabled,$=!!l.companyChargeCardInfo?.info?.isChargeCardEnabled,G=!l.userRole.includes("charge_card_user")&&R&&$;if(r==null)throw Error("Empty card id is not valid...");const V=S(N=>ya(N,l.companyId)),{creditAccount:w,creditAccountRepayment:Y}=S(N=>Je(N)),q=ee.getZeniOtpTokenForCardHolder(r),P=S(N=>lt(N,r,G,R)),{isAiCfoAccessEnabled:O,onAskAiCfoClick:te}=In({mobileExploreReferrer:"Card Detail"});un({isDataReady:P.fetchState==="Completed"});const ae=S(N=>Xe(N)),k=P.chargeCard,z=$e(),J=Ne(z?.loggedInUserRoleMap),X=k?.type.code==="business_physical_debit_card"||k?.type.code==="business_virtual_debit_card",Z=k?.type.code==="business_physical_debit_card"||k?.type.code==="business_physical_credit_card",re=k?.type.code==="business_virtual_debit_card"||k?.type.code==="business_virtual_credit_card",De=k?.type.code==="business_virtual_debit_card",Ue=Ea(R,$,J,w,Y),W=fn(X,P),fe=St(J,ae),we=Me(R,b,T,$),Oe=P.depositAccountLimitFetchState.fetchState!=="Completed"&&P.depositAccountLimitFetchState.fetchState!=="In-Progress",Fe=S(N=>Ke(N,l.companyId)),Be=qe(Fe.controllers),ne=S(N=>k?.cardCreatedByUser?.userId!=null?Ba(N.userRoleState,k?.cardCreatedByUser?.userId):void 0),Da=S(N=>ne?.accountingClassIDs[0]!=null?La(N.classState,{classId:ne?.accountingClassIDs[0],reportId:"class_list"}):void 0),ie=S(N=>k?.cardHolderUser?.userId!=null?Ba(N.userRoleState,k?.cardHolderUser?.userId):void 0),oa=S(N=>ie?.accountingClassIDs[0]!=null?La(N.classState,{classId:ie?.accountingClassIDs[0],reportId:"class_list"}):void 0),le=l?.userRole,je=S(N=>ea(N,!1,b,A).revokeCardInvite),ia=bt(je.saveStatus.fetchState);if(d.useEffect(()=>{if(ia==="In-Progress"&&je.saveStatus.fetchState==="Completed"){const N=ze(l.tenantEmailDomain);e(N)}},[ia,je.saveStatus.fetchState,e,l.tenantEmailDomain]),d.useEffect(()=>{v&&n===!1&&re&&(f(!0),setTimeout(()=>{a(xa()),De&&a(pa({messageSection:"set_debit_card_pin",messageText:"success",type:"success",showStatusIcon:!0}))},5e3))},[v,n,re,De]),d.useEffect(()=>{C||P.fetchState==="Completed"||P.fetchState==="In-Progress"||r==null||(u(!0),a(ca(r,G,R,!1)))},[C,P,r,a]),d.useEffect(()=>{!D&&P.fetchState==="Completed"&&P.chargeCard?.connectedAccountId!=null&&X&&Oe&&J&&(o(!0),a(Qt({depositAccountId:P.chargeCard?.connectedAccountId})))},[D,P,a,Oe,J]),d.useEffect(()=>{ae.fetchState!=="Completed"&&ae.fetchState!=="In-Progress"&&J&&a(ha()),y!=="Completed"&&y!=="In-Progress"&&a(Vt()),P.transactionStatistics.fetchState!=="Completed"&&P.transactionStatistics.fetchState!=="In-Progress"&&a(rr({chargeCardId:r})),V.fetchState!=="Completed"&&V.fetchState!=="In-Progress"&&a(fa(l.companyId,!0))},[ae.fetchState,a,J,y,P.transactionStatistics.fetchState,V.fetchState]),d.useEffect(()=>{if(!(P.fetchState!=="Completed"||R&&w.fetchState!=="Completed"||k==null||P.transactionStatistics.fetchState!=="Completed"||X&&J&&P.depositAccountLimitFetchState.fetchState!=="Completed")){const N=k.type.code.includes("physical"),ue=N?k.cardActivationAttemptHistory[0]?.timestamp:k.createTime;K.trackCardsCardDetailView(Be,we,{cardId:r,cardName:k.cardName,cardType:k.type.code.includes("credit")?"credit":"debit",cardCategory:N?"physical":"virtual",cardLimit:ra(k.limit.amount),cardLastFourDigits:k.accountLast4,cardStatus:k.status.code,cardAssignedDate:k.createTime?.format(nt.analytics.MMMDashDDDashYYYYFormat),cardIssuedDate:k.providerCardCreateTime?.format(nt.analytics.MMMDashDDDashYYYYFormat),cardActivatedDate:ue?.format(nt.analytics.MMMDashDDDashYYYYFormat),cardLimitFrequency:k.creditLimitFrequency.name,cardSpentAmount:ra(k.balance.amount),cardAvailableLimit:ra(k.available.amount),cardUtilizationPercent:k.limit.amount>0?Math.round((k.limit.amount-k.available.amount)/k.limit.amount*100):0,cardUtilizationAmount:ra(k.limit.amount-k.available.amount),totalNumberOfDeclinedTransactions:P.transactionStatistics.statistics.totalNumberOfDeclinedTransactions,numberOfDeclinedTransactionsCurrentMonth:P.transactionStatistics.statistics.numberOfDeclinedTransactionsCurrentMonth,totalNumberOfPaidTransactions:P.transactionStatistics.statistics.totalNumberOfPaidTransactions,numberOfPaidTransactionsCurrentMonth:P.transactionStatistics.statistics.numberOfPaidTransactionsCurrentMonth,totalNumberOfCanceledTransactions:P.transactionStatistics.statistics.totalNumberOfCanceledTransactions,numberOfCanceledTransactionsCurrentMonth:P.transactionStatistics.statistics.numberOfCanceledTransactionsCurrentMonth,totalNumberOfAuthorizedTransactions:P.transactionStatistics.statistics.totalNumberOfAuthorizedTransactions,numberOfAuthorizedTransactionsCurrentMonth:P.transactionStatistics.statistics.numberOfAuthorizedTransactionsCurrentMonth,totalNumberOfTransactionsWithReceipts:P.transactionStatistics.statistics.totalNumberOfTransactionsWithReceipts,numberOfTransactionsWithReceiptsCurrentMonth:P.transactionStatistics.statistics.numberOfTransactionsWithReceiptsCurrentMonth},{cardIssuedByName:ct(k.cardCreatedByUser,!1),cardIssuedByEmail:k.cardCreatedByUser?.email,cardIssuedByUserId:k.cardCreatedByUser?.userId,cardIssuedByRole:ne?.userRoles,cardIssuedByDepartment:Da?.className},{cardholderName:ct(k.cardHolderUser,!1),cardholderEmail:k.cardHolderUser?.email,cardholderRole:ie?.userRoles,cardholderUserId:k.cardHolderUser?.userId,cardholderDepartment:oa?.className},Ue,W)}},[P.fetchState,P.depositAccountLimitFetchState.fetchState,P.transactionStatistics.fetchState,w.fetchState,J]),c==null)throw Error("Can't access card detail page without signing in...");const da=Ge(l),la=J?[...it,...Tn]:it,ua={events:ta(da,la),eventCallback:(N,ue,Le)=>{Le.onEventReceived(N,ue)},onSubscribed:N=>{N.onPusherSubscribed()}},ma=()=>{if(r!=null&&k!=null){const{ownerName:N,cardName:ue,utilisation:Le,limit:Qe,frequency:H,cardColor:ge}=rt(k),be=k.cardHolderUserId===c.userId;K.trackCardsDetailPageViewed(r,N,ue,Le,Qe,H,ge,be)}};d.useEffect(()=>{if(P.fetchState==="Completed"){const N=P.chargeCard;if(N?.status.code==="inactive"||X&&N?.isPinSet===!1||Z&&v){const ue=pe(l.tenantEmailDomain,r,c,k,v);e(ue)}}},[P.fetchState]);const Ca=(N,ue)=>{if(r!=null&&k!=null){const{ownerName:Le,cardName:Qe,utilisation:H,limit:ge,frequency:be}=rt(k),et=k.cardHolderUserId===c.userId;K.trackCardsDetailPageClicked(r,Le,Qe,H,ge,be,N,et,ue)}},qa=(N,ue)=>{if(r!=null&&k!=null){const{ownerName:Le,cardName:Qe,utilisation:H,limit:ge,frequency:be}=rt(k),et=k.cardHolderUserId===c.userId;K.trackCardsVerifyPopUpClick(r,Le,Qe,H,ge,be,N,et,ue)}},wa=w.balance.amount+w.hold.amount,Pa=l.companyChargeCardInfo?.info?.primaryFundingAccount,Ja=V.allFundingAccounts.find(N=>N.id===Pa?.accountId),va=P.chargeCard!=null,Xa=P.depositAccountLimit!=null;return P.fetchState!=="Error"||va?!va&&(P.fetchState==="In-Progress"||P.fetchState==="Not-Started")||je.saveStatus.fetchState==="In-Progress"||!Xa&&X&&J&&P.depositAccountLimitFetchState.fetchState!=="Completed"?s.jsx(os,{}):s.jsxs(s.Fragment,{children:[s.jsx(za,{showConfetti:v}),P.fetchState==="Completed"?s.jsx(yt,{analytics:K,onLoad:ma}):null,p===!0?s.jsx(wt,{closeDrawerHandler:()=>g(!1),isPaymentDrawerOpen:p,pageName:"Card Detail",sourcePage:"cardDetailPage",productInformation:we,creditAccountInformation:Ue,debitAccountInformation:W,cashbackInformation:fe,creditAccountSpentAmount:wa,isDebitCardInfoFetchStateCompleted:!X||!J||P.depositAccountLimitFetchState.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!R||w.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!J||ae.fetchState==="Completed",paymentInitiatedDate:Y.initiatedRepaymentDate}):null,s.jsx(Ys,{...ua,hideSorting:!0,onColumnSortConfigChanged:()=>{},onFireVerifyPopOnClickAnalytics:qa,onFireOnClickAnalytics:Ca,isSandboxEnv:ht(),signedInUser:c,location:t,navigate:e,setIsPaymentOpen:g,cardIssuedByRoles:ne?.userRoles,cardIssuedByDepartmentName:Da?.className,cardHolderRoles:ie?.userRoles,cardHolderDepartmentName:oa?.className,loggedInUserRole:le,isChargeCardFeatureEnabled:R,isDebitCardFeatureEnabled:b,isDebitCardSetupEnabled:T,isChargeCardSetupEnabled:$,isCardControlsEnabled:x,isEarlyPayEnabled:B,controllerEmails:Be,chargeCardCashbackDetailState:ae,productInformation:we,creditAccountInformation:Ue,debitAccountInformation:W,cashbackInformation:fe,classListFetchState:y,primaryFundingAccountDetails:Ja,currentTenant:l,cardProviderId:P.chargeCard?.cardProviderID,cardId:r,creditAccount:w,creditAccountRepayment:Y,includeCreditAccountInfo:G,signedInUserToken:q,appleWalletLink:"shoebox://",googleWalletLink:"https://www.android.com/payapp/",documentAiReceiptMaxSizeLimit:h.documentAiReceiptMaxSizeLimitBytes!=null?h.documentAiReceiptMaxSizeLimitBytes:9437184,isAiCfoAccessEnabled:O,onAskAiCfoClick:te,isCardsCommentingEnabled:i})]}):s.jsx(Za,{})}const rt=e=>{const a=`${e.cardHolderUser?.firstName.toLowerCase()} ${e.cardHolderUser?.lastName.toLowerCase()}`,t=e.cardName,r=(e.limit.amount??0)-(e.available.amount??0),n=e.limit.amount,f=e.creditLimitFrequency.name;return{ownerName:a,cardName:t,utilisation:r,cardColor:e.cardColorCode??"",frequency:f,limit:n}},Fn=[aa,Wa,Pn,ka,_a,Ka,Dt,Bs,kt,_t,Et],Ws=new Set(Fn),dt=vs((e,a,t,r)=>{e(ga(a,t,r,!0))},400),Ks=Te.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
|
+
`,qs=he(function(e,a){const t=ea(e,a.includeCreditAccountDebitSummaryAndCashbackInfo,a.isDebitCardFeatureEnabled&&a.isDebitCardSetupEnabled,a.isChargeCardFeatureEnabled&&a.isChargeCardSetupEnabled);return{chargeCardListView:t,rowActionView:Cr(e),bulkActionView:pr(e),companyLegalName:a.currentTenant.companyName,admins:a.admins,searchText:t.searchText,uiState:t.uiState,signedInUser:a.signedInUser}},function(e,a){const{navigateAndClearBulkSelection:t,currentTenant:r,location:n,signedInUser:f,chargeCardListState:p,includeCreditAccountDebitSummaryAndCashbackInfo:g,isChargeCardFeatureEnabled:_,isCreditCardProductVisibleForExpressInterest:c,isChargeCardSetupEnabled:l,isDebitCardFeatureEnabled:v,isDebitCardSetupEnabled:y,isDebitCardTOSAccepted:h,isChargeCardTOSAccepted:L,controllerEmails:F,depositAccountListWithDebitCardIssued:x,primaryFundingAccountDetails:C,chargeCardSetUpViewFetchState:u,productInformation:D,cashbackInformation:o,creditAccountInformation:I,debitAccountInformation:A,updatePayNowInfoTooltip:j,isUserHasCardsAdminLevelAccess:E}=a,{tenantEmailDomain:b}=r,{cards:B}=p;return{onChargeCardRowClick:(i,m)=>{const U=bn(B,i);let M;U!=null&&((T=>{const $=T.limit.amount-T.available.amount,G=`${T.cardHolderUser?.firstName.toLowerCase()} ${T.cardHolderUser?.lastName.toLowerCase()}`,V=T.cardName,w=T.department?.className??"",Y=T.limit.amount,q=T.creditLimitFrequency.name;K.trackCardsListRowClicked(G,V,w,$,Y,q,f.userId===T.cardHolderUserId)})(U),Ze(v,y,x)&&K.trackCardsCardListRowClick(F,D,"Card Row Item","row_clicked",m+1,{cardOwner:ct(U.cardHolderUser,!1),cardName:U.cardName,cardType:U.type.code.includes("credit")?"credit":"debit",cardStatus:U.status.code,cardUtilizationAmount:ra(U.limit.amount-U.available.amount),cardUtilizationPercent:U.limit.amount>0?Math.round((U.limit.amount-U.available.amount)/U.limit.amount*100):0,cardLimit:ra(U.limit.amount)},o,I,A)),M=U?.status.code==="request_on_hold"&&f.userId===U.cardHolderUserId?yn(b):pe(b,i,f,U);const R=ye(n.state?.pathnameStackToGoBack,n.pathname);t(M,{state:{pathnameStackToGoBack:R}})},onFetchChargeCardsRecurringExpenses:i=>{e(qt(i))},onFetchDepositAccountLimit:i=>{e(Qt({depositAccountId:i}))},onChargeCardResendInviteClick:i=>{e(Ar(i))},onChargeCardRevokeInviteClick:i=>{e(Wt(i))},onLockChargeCardList:(i,m)=>{e(Ir(i,m))},onUnlockChargeCardList:i=>{e(Sr(i))},onCloseChargeCardList:(i,m)=>{e(yr(i,m))},onRevokeChargeCardList:i=>{e(br(i))},updateChargeCardListSpendLimit(i,m,U){e(gr(i,m,U.code))},onLockChargeCard:(i,m)=>{e(en(E,i,m))},onUnlockChargeCard:i=>{e(Xt(E,i))},onCloseChargeCard:(i,m)=>{e(Jt(i,m))},onUpdateSpendLimit(i,m,U,M){e(Yt(i,m,U.code,M))},updateChargeCardName:(i,m)=>{e(Kt(E,i,m))},onClickSetupIcon:()=>{K.trackCardsListPageClicked("settings"),Ze(v,y,x)&&o!=null&&K.trackCardsSettingsClick(F,D,o,I,A);const i=ws(b),m=ye(n.state?.pathnameStackToGoBack,n.pathname);t(i,{state:{pathnameStackToGoBack:m}})},onIssueCardClick:()=>{K.trackCardsListPageClicked("new card"),Ze(v,y,x)&&o!=null&&K.trackCardsNewCardClick(F,D,o,"New Button","card_creation_initiated","Card List",I,A);const i=Js(b),m=ye(n.state?.pathnameStackToGoBack,n.pathname);t(i,{state:{pathnameStackToGoBack:m}})},onColumnSortConfigChanged:(i,m)=>{Ze(v,y,x)&&o!=null&&K.trackCardsCardListSortClick(F,D,o,"Sort Icon","sort",i,m==="ascending"?"ASC":"DESC","Cards List",I,A),e(st({uiState:{sortKey:i,sortOrder:m}}))},onSearchTextChanged:i=>{e(fr(i))},onReloadCards:()=>{e(ga(g,v&&y,_&&l,!0))},onLetsGoClick:()=>{t("./onboard")},onBackClick:()=>{t("../../")},onTotalCashbackClick:()=>{Ze(v,y,x)&&o!=null&&K.trackCardsCashbackOverviewClick(F,D,o,"Cashback Overview","cashback_details_viewed",I,A),t("./cashback")},onClickStatementsIcon:()=>{Ze(v,y,x)&&o!=null&&K.trackCardsStatementsClick(F,D,o,I,A),t("./statements")},onCreateNowClick:i=>{Ze(v,y,x)&&o!=null&&K.trackCardsNewCardClick(F,D,o,"Promo Banner","card_creation_initiated","Card List",I,A),t(`./new?cardType=${i}`)},onPromoCardClick:i=>{t(i==="debit"&&v&&!h||i==="credit"&&c&&!L?`../promo?cardPromoType=${i}`:"./setup")},navigateToCreditCardPaymentPage:(i,m)=>{u==="Completed"&&r.company!=null&&o!=null&&K.trackCardsPayEarlyClick(F,D,o,"Card List",i,m,{isZeniCheckingEnabled:r.company.companyZeniAccountInfo.isZeniAccountEnabled,isZeniCheckingPaymentSource:C?.accType==="depositAccount",creditCardPaymentSourceAccountName:C?.label,creditCardPaymentSourceAccountType:C?.accType,creditCardPaymentSourceLastFourDigits:C?.accountLast4,creditCardPaymentSourceBalance:C?.accountBalance?.available?.amount??0},I,A);const U=Xs(b);t(U)},navigateToCreditCardPaymentHistoryPage:()=>{const i=ec(b),m=ye(n.state?.pathnameStackToGoBack,n.pathname);t(i,{state:{pathnameStackToGoBack:m}})},shouldShowPayNowInfoTooltip:j,onSetRowActionCardId:i=>{e(hr(i))},onSetBulkActionCardIds:i=>{e(an(i))},onEventReceived:i=>{Ws.has(i)&&dt(e,g,v&&y,_&&l)},onPusherSubscribed:()=>{dt(e,g,v&&y,_&&l)}}})(Ya(ds));function xt({isPaymentDrawerOpen:e}){const a=me(),t=Ce(),r=Se(),n=d.useCallback((H,ge)=>{t(an([])),a(H,ge)},[t,a]),[f,p]=d.useState(!1),[g,_]=d.useState(ee.getPayNowInfoTooltip()??!1),c=H=>{ee.savePayNowInfoTooltip(H),_(H)},[l,v]=d.useState(!1),y=ee.getSignedInUser(),h=S(H=>de(H)),[L,F]=d.useState(!1),[x,C]=d.useState(!1),{isAiCfoAccessEnabled:u,onAskAiCfoClick:D}=In({mobileExploreReferrer:"Cards"}),o=h.userRole.includes("charge_card_user"),I=!o,A=!!h.companyDebitCardInfo?.info?.isDebitCardEnabled,{useFeatureGate:j,useDynamicConfig:E}=oe(),{isFeatureEnabled:b}=j(Q.isCashbackFeatureEnabled),{isFeatureEnabled:B}=j(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:i}=j(Q.isDebitCardFeatureEnabled),{isFeatureEnabled:m}=j(Q.isEarlyPayFeatureEnabled),{isFeatureEnabled:U}=j(Q.isChargeCardPaymentHistoryFeatureEnabled),{isFeatureEnabled:M}=j(Q.isCardsCommentingEnabled),R=Ee(i,h),T=ke({isDebitCardFeatureEnabled:i,isBankingOnlyTenant:R}),$=Ie(h),G=Ae(h),V=h.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,w=_e({isCardsOnlyTenant:$,isChargeCardFeatureEnabled:B,isBookKeepingTenant:G,isDebitCardProductVisible:T,chargeCardsCreditAccountLimit:V}),Y=gn({isCardsOnlyTenant:$,isChargeCardFeatureEnabled:B,isBookKeepingTenant:G}),{configValue:q}=E(xe.zeniCardsConfig),P=$e(),O=Ne(P?.loggedInUserRoleMap),te=S(H=>Ke(H,h.companyId)),ae=qe(te.controllers),k=q.charge_card_cashback_rate_per_transaction!=null?q.charge_card_cashback_rate_per_transaction:.0175,z=q.credit_card_pay_now_threshold_by_company_id?.[h.companyId]??q.default_credit_card_pay_now_threshold??Ds,J=q.is_card_controls_enabled_for_all_tenants===!0||Array.isArray(q.enable_card_controls_for_company_ids)&&q.enable_card_controls_for_company_ids.includes(h.companyId),X=!!h.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,Z=!!h.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,re=!!h.companyChargeCardInfo?.info?.isChargeCardEnabled,De=S(H=>Mt(H)),Ue=bt(De.updateStatus),W=S(H=>ea(H,I,T&&A,w&&re)),fe=W.cards.filter(H=>H.type.code.includes("debit")).map(H=>H.connectedAccountId),we=[...new Set(fe)],Oe=S(H=>Xe(H)),Fe=S(H=>Ga(H,we)),Be=S(H=>ya(H,h.companyId)),ne=Be.companyChargeCardInfo?.primaryFundingAccount,Da=Be.allFundingAccounts.find(H=>H.id===ne?.accountId),ie=W.fetchState,oa=W.creditAccount;un({isDataReady:ie==="Completed"});const{creditAccountRepayment:le}=S(H=>Je(H)),je=S(H=>ja(H).firstViewAfterActivation),{areTenantIdsInSync:ia}=Cn(),da=St(O,Oe),la=Ea(w,re,O,oa,le),ua=It(T,A,O,Fe,W.debitCardSummary),ma=Me(w,T,A,re),Ca=W.creditAccount.balance.amount+W.creditAccount.hold.amount;if(d.useEffect(()=>{ie==="Completed"&&(ee.getPayNowInfoTooltip()==null||Ca<z*W.creditAccount.limit.amount/100)&&c(!0)},[ie,z,Ca,W.creditAccount.limit.amount]),d.useEffect(()=>{if(e!=null&&e===!0&&le.initiatedRepayments.amount===0&&le.fetchState==="Completed"||Ue==="In-Progress"&&De.updateStatus==="Completed")c(!1),p(!0);else if(le.initiatedRepayments.amount>0&&le.fetchState==="Completed"){p(!1),document.body.style.overflow="auto";const H=ze(h.tenantEmailDomain);n(H)}},[e,le.initiatedRepayments.amount,le.fetchState,Ue,De.updateStatus,n,h.tenantEmailDomain]),d.useEffect(()=>{!L&&(re||A)&&ia&&(F(!0),t(ga(I,T&&A,w&&re,!1)))},[L,I,t,ia]),d.useEffect(()=>{je&&l===!1&&(v(!0),setTimeout(()=>{t(xa())},5e3))},[je,l]),d.useEffect(()=>()=>{dt.flush()},[]),d.useEffect(()=>{ie==="Completed"&&o&&W.cards.length===1&&(W.cards[0].status.code==="inactive"&&W.cards[0].type.code==="business_physical_credit_card"?n(`./${W.cards[0].id}/activate`):W.cards[0].status.code!=="request_on_hold"&&(r.state?.message==="comingFromCardDetail"?n("../../"):n(`./${W.cards[0].id}`)))},[ie,o,r.state,n,W.cards]),d.useEffect(()=>{if(ie==="Completed"&&o){const H=W.cards.length,ge=W.cards.filter(be=>be.cardHolderUserId===y?.userId).filter(be=>be.status.code==="request_on_hold");ge.length>0&&H===ge.length&&n("./onboard")}},[ie,W.cards,o,n,y?.userId]),d.useEffect(()=>{ie!=="Completed"||w&&le.fetchState!=="Completed"||T&&A&&O&&Fe.fetchState!=="Completed"||K.trackCardsCardListView(ae,ma,da,la,ua)},[ie,oa,le.fetchState,Fe.fetchState,O]),y==null)throw Error("Can't access charge card list page without signing in...");const qa=S(H=>tn(H.userState,H.userRoleState,H.userListViewState,"cardAdmin")),wa=Ct(P?.loggedInUserRoleMap),Pa=H=>{C(H)},Ja=W.creditAccount.limit,va=()=>{p(!1),n("..")},Xa=h.companyChargeCardInfo?.info!=null&&sa({cardInfo:h.companyChargeCardInfo.info,isProductVisible:w,isTOSAccepted:X,isSetupEnabled:re,isUserHasCardsAdminLevelAccess:O,isUserHasCardsAccess:wa}),N=h.companyDebitCardInfo?.info!=null&&sa({cardInfo:h.companyDebitCardInfo.info,isProductVisible:T,isTOSAccepted:Z,isSetupEnabled:A,isUserHasCardsAdminLevelAccess:O,isUserHasCardsAccess:wa}),ue=Xa||N,Le=Ge(h),Qe={events:ta(Le,Fn),eventCallback:(H,ge,be)=>{be.onEventReceived(H)},onSubscribed:H=>{H.onPusherSubscribed()}};return re||A?s.jsxs(s.Fragment,{children:[ie==="Completed"?s.jsxs(s.Fragment,{children:[s.jsx(yt,{analytics:K,onLoad:()=>{K.trackPageLoaded(pn.Event.cardsListPage),(w&&!re||T&&!A)&&K.trackCardsPromoView(ae,{isCreditCardOffered:w,isDebitCardOffered:T,isDebitCardEnabled:A,isCreditCardEnabled:re},"Banner",T&&!A?"Debit Card":w&&!re?"Credit Card":"","Card List")}}),s.jsx(za,{showConfetti:je})]}):null,f===!0?s.jsx(wt,{closeDrawerHandler:va,isPaymentDrawerOpen:f,pageName:"Card List",sourcePage:"cardListPage",creditAccountSpentAmount:Ca,productInformation:ma,creditAccountInformation:la,debitAccountInformation:ua,cashbackInformation:da,isDebitCardInfoFetchStateCompleted:!(T&&A&&O)||Fe.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!w||le.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!O||Oe.fetchState==="Completed",paymentInitiatedDate:le.initiatedRepaymentDate}):null,s.jsxs(Ks,{children:[s.jsx(We,{isAppContentDrawerOpen:x,handleDrawerToggle:Pa}),s.jsx(qs,{...Qe,isCashbackFeatureEnabled:b,isChargeCardFeatureEnabled:w,isDebitCardFeatureEnabled:T,isCreditCardProductVisibleForExpressInterest:Y,updatePayNowInfoTooltip:c,showPayNowInfoTooltip:g,creditCardPayNowThreshold:z,signedInUser:y,chargeCardListState:W,location:r,admins:qa.users,navigateAndClearBulkSelection:n,currentTenant:h,isCardControlsEnabled:J,companyChargeCardInfoCreditAccountLimit:h.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,isCompanyInterestedInChargeCard:h.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,isUserHasCardsAdminLevelAccess:O,includeCreditAccountDebitSummaryAndCashbackInfo:I,onClickMenuIcon:()=>{Pa(!0)},creditLimit:Ja,isChargeCardSetupEnabled:re,isDebitCardSetupEnabled:A,isEarlyPayEnabled:m,isChargeCardPaymentHistoryFeatureEnabled:U,cashbackRate:k,controllerEmails:ae,chargeCardCashbackDetailState:Oe,depositAccountListWithDebitCardIssued:Fe,isChargeCardTOSAccepted:X,isDebitCardTOSAccepted:Z,primaryFundingAccountDetails:Da,chargeCardSetUpViewFetchState:Be.fetchState,productInformation:ma,creditAccountInformation:la,debitAccountInformation:ua,cashbackInformation:da,isAiCfoAccessEnabled:u,onAskAiCfoClick:D,isCardsCommentingEnabled:M})]})]}):(X||Z)&&O===!0?s.jsx(Fa,{to:"../setup"}):ue?s.jsx(Fa,{to:"../promo"}):s.jsx(Sa,{fetchState:ie})}const Js=e=>`/${e}/cards/new`,Xs=e=>`/${e}/cards/payment`,ec=e=>`/${e}/cards/payment-history`,Bn=[wn,Pn],ac=new Set(Bn),tc=he(function(e){const a=ee.getSignedInUser(),t=de(e),r=e.tenantState.currentTenantId,n=nn(e),f={userId:a?.userId??"",sessionId:a?.zeniSessionId??"",tenantId:r??""},p=t?.companyName??"",g=e.chargeCardPaymentHistoryState.downloadUIState.downloadState;return{fetchState:n.fetchState,filters:n.filters,isZeniTenant:Er(t),repaymentList:n.repaymentHistory,searchText:n.searchText,repaymentHistoryUsers:n.repaymentHistoryUsers,sortConfig:{sortKey:n.uiState.sortKey,sortOrder:n.uiState.sortOrder},downloadParams:{authParams:f,companyName:p,spendManagementEndPoint:`${ot}/spendManagement`,isShowDeletedBillsEnabled:!1,isShowDeletedReimbursementEnabled:!1},downloadState:g}},function(e,a){const{location:t,navigate:r}=a;return{onBackClick:()=>{const n=Re(t.state?.pathnameStackToGoBack),f=n.poppedPathname??"..";r(f,{state:{pathnameStackToGoBack:n.newStack}})},onColumnSortConfigChanged:(n,f)=>{e({type:"chargeCardPaymentHistory/updatePaymentHistoryUIState",payload:{uiState:{sortKey:n,sortOrder:f}}})},onFiltersChange:n=>{e(_r({filters:n}))},onReloadPayments:()=>{e(Ta(!0))},onEventReceived:n=>{ac.has(n)&&e(Ta(!0))},onPusherSubscribed:()=>{e(Ta(!0))},onSearchTextChanged:n=>{e({type:"chargeCardPaymentHistory/updatePaymentHistorySearchText",payload:n})},updateDownloadStateHandler:n=>{e(kr({uiState:{downloadState:n}}))}}})(Ya(ls));function nc(){const e=me(),a=Se(),t=Ce(),{areTenantIdsInSync:r}=Cn(),{useFeatureGate:n}=oe();if(ee.getSignedInUser()==null)throw Error("Can't access payment history page without signing in...");const f=S(k=>de(k)),p=S(k=>nn(k)),[g,_]=d.useState(!1),[c,l]=d.useState(!1),[v,y]=d.useState(!1),[h,L]=d.useState(null),F=!f.userRole.includes("charge_card_user"),x=!!f.companyDebitCardInfo?.info?.isDebitCardEnabled,{isFeatureEnabled:C}=n(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:u}=n(Q.isDebitCardFeatureEnabled),D=Ee(u,f),o=ke({isDebitCardFeatureEnabled:u,isBankingOnlyTenant:D}),I=Ie(f),A=Ae(f),j=f.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,E=_e({isCardsOnlyTenant:I,isChargeCardFeatureEnabled:C,isBookKeepingTenant:A,isDebitCardProductVisible:o,chargeCardsCreditAccountLimit:j}),b=!!f.companyChargeCardInfo?.info?.isChargeCardEnabled,B=$e(),i=Ne(B?.loggedInUserRoleMap),m=S(k=>ea(k,F,o&&x,E&&b)),U=d.useMemo(()=>{const k=m.cards.filter(z=>z.type.code.includes("debit"));return[...new Set(k.map(z=>z.connectedAccountId))]},[m.cards]),M=S(k=>Xe(k)),R=S(k=>Ga(k,U)),{creditAccountRepayment:T}=S(k=>Je(k)),$=d.useMemo(()=>St(i,M),[i,M]),G=d.useMemo(()=>Ea(E,b,i,m.creditAccount,T),[E,b,i,m.creditAccount,T]),V=d.useMemo(()=>It(o,x,i,R,m.debitCardSummary),[o,x,i,R,m.debitCardSummary]),w=d.useMemo(()=>Me(E,o,x,b),[E,o,x,b]),Y=m.creditAccount.balance.amount+m.creditAccount.hold.amount,q=d.useMemo(()=>h!=null?p.repaymentHistory.find(k=>k.cardRepaymentId===h):void 0,[h,p.repaymentHistory]),P=d.useCallback(k=>{L(k),t(ga(F,o&&x,E&&b,!1)),y(!0)},[t,F,o,x,E,b]),O=d.useCallback(()=>{y(!1),L(null),document.body.style.overflow="auto"},[]);d.useEffect(()=>{g||p.fetchState==="Completed"||p.fetchState==="In-Progress"||(_(!0),t(Ta()))},[g,t,p.fetchState]),d.useEffect(()=>{!c&&(b||x)&&r&&(l(!0),t(ga(F,!1,E&&b,!1)))},[c,b,x,r,t,F,E]);const te=Ge(f),ae={events:ta(te,Bn),eventCallback:(k,z,J)=>{J.onEventReceived(k)},onSubscribed:k=>{k.onPusherSubscribed()}};return s.jsxs(s.Fragment,{children:[v?s.jsx(wt,{closeDrawerHandler:O,isPaymentDrawerOpen:v,pageName:"Payment History",sourcePage:"cardPaymentHistory",creditAccountSpentAmount:Y,productInformation:w,creditAccountInformation:G,debitAccountInformation:V,cashbackInformation:$,isDebitCardInfoFetchStateCompleted:!(o&&x&&i)||R.fetchState==="Completed",isCreditCardInfoFetchStateCompleted:!E||T.fetchState==="Completed",isCashbackInfoFetchStateCompleted:!i||M.fetchState==="Completed",paymentInitiatedDate:T.initiatedRepaymentDate,retryRepayment:q}):null,s.jsx(tc,{...ae,location:a,navigate:e,accountInfoByAccountId:p.accountInfoByAccountId,onRetryPaymentClick:P})]})}const Rt=Te.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
|
+
`,Ut=gt.getLocalizedStrings().months;function rc(){const e=me(),a=Ce(),t=Se(),{creditAccount:r,creditAccountRepayment:n}=S(w=>Je(w)),f=`${mn.cardMicroServiceBaseUrl}/1.0/credit-accounts/${r.id}`,[p,g]=d.useState(!1),[_,c]=d.useState(!1),l=S(w=>Dr(w)),{useFeatureGate:v}=oe(),y=S(w=>de(w)),{isFeatureEnabled:h}=v(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:L}=v(Q.isDebitCardFeatureEnabled),{isFeatureEnabled:F}=v(Q.isCardsCommentingEnabled),x=Sn(F?y.companyId:void 0,{clearParams:F&&l.fetchState==="Completed"}),C=Ee(L,y),u=ke({isDebitCardFeatureEnabled:L,isBankingOnlyTenant:C}),D=Ie(y),o=Ae(y),I=y.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,A=_e({isCardsOnlyTenant:D,isChargeCardFeatureEnabled:h,isBookKeepingTenant:o,isDebitCardProductVisible:u,chargeCardsCreditAccountLimit:I}),j=!!y.companyDebitCardInfo?.info?.isDebitCardEnabled,E=!!y.companyChargeCardInfo?.info?.isChargeCardEnabled,b=S(w=>Ke(w,y.companyId)),B=qe(b.controllers),i=S(w=>rn(w)),m=i.cards.filter(w=>w.type.code.includes("debit")).map(w=>w.connectedAccountId),U=[...new Set(m)],M=S(w=>Ga(w,U)),R=S(w=>wr(w));d.useEffect(()=>{_||r.fetchState==="Completed"||r.fetchState==="In-Progress"||(g(!0),a(He()))},[p,a,r.fetchState]),d.useEffect(()=>{_||r.fetchState!=="Completed"||r.id==null||l.fetchState==="Completed"||l.fetchState==="In-Progress"||(c(!0),a(Pr(r.id)))},[_,a,r.fetchState,r.id,l.fetchState]),d.useEffect(()=>{M.fetchState!=="Completed"&&M.fetchState!=="In-Progress"&&u&&j&&a(sn()),i.fetchState!=="Completed"&&i.fetchState!=="In-Progress"&&a(ve()),R.fetchState!=="Completed"&&R.fetchState!=="In-Progress"&&u&&j&&a(vr()),n.fetchState!=="Completed"&&n.fetchState!=="In-Progress"&&A&&E&&a(ut())},[M.fetchState,u,j,i.fetchState,R.fetchState,n.fetchState,A,E]),d.useEffect(()=>{if(l.fetchState==="Completed"&&r.fetchState==="Completed"&&n.fetchState==="Completed"&&i.fetchState==="Completed"&&(!u||!j||M.fetchState==="Completed"&&R.fetchState==="Completed")){let w="",Y="";if(l.statements.length>0){const te=l.statements[l.statements.length-1].period,[ae,k]=te.split("-"),z=l.statements[0].period,[J,X]=z.split("-");w=`${Ut[parseInt(k)-1]} ${ae}`,Y=`${Ut[parseInt(X)-1]} ${J}`}const q=Me(A,u,j,E),P=Ea(A,E,!0,r,n),O=It(u,j,!0,M,R);K.trackCardsCreditCardStatementsView(B,q,{numberOfStatements:l.statements.length,oldestStatementMonthYear:w,latestStatementMonthYear:Y},P,O)}},[l.fetchState,r.fetchState,n.fetchState,M.fetchState,i.fetchState,R.fetchState]);const T=()=>{const w=Re(t.state?.pathnameStackToGoBack),Y=w.poppedPathname??"..";e(Y,{state:{pathnameStackToGoBack:w.newStack}})},$=S(w=>Xe(w)),G=ee.getSignedInUser(),V={userId:G?.userId??"",sessionId:G?.zeniSessionId??"",tenantId:y.tenantId??""};if(G==null)throw Error("Can't access address page without signing in...");if(l.fetchState!=="Completed")return s.jsx(Rt,{children:s.jsx(us,{onBackClick:T})});{const w=Me(A,u,j,E);return s.jsx(Rt,{children:s.jsx(ms,{currentTenantCompanyName:y.companyName,statementListView:l,productInformation:w,onBackClick:T,authParams:V,controllerEmails:B,isChargeCardFeatureEnabled:A,isDebitCardFeatureEnabled:u,isDebitCardSetupEnabled:j,isChargeCardSetupEnabled:E,isCardsCommentingEnabled:F,initialOpenThreadRequest:x,chargeCardCashbackDetailState:$,creditAccount:r,creditAccountRepayment:n,depositAccountListWithDebitCardIssued:M,debitCardSummary:R,downloadEndPoint:f})})}}const Ln=[aa,Ka],sc=new Set(Ln),cc={containerWidth:new Aa(100,58)},oc=({appContent:e})=>{const a=Ia(),t=Ce(),r=me(),n=Se(),{useDynamicConfig:f}=oe(),[p,g]=d.useState(!1),[_,c]=d.useState(!1),[l,v]=d.useState(!1),[y,h]=d.useState(!1),L=d.useRef(!1),F=d.useRef(null);d.useEffect(()=>()=>{F.current!=null&&(clearTimeout(F.current),F.current=null)},[]);const[x,C]=d.useState(!1),[u,D]=d.useState(!1),o=ee.getSignedInUser();if(o==null)throw Error("Can't access onboarding card page without signing in...");const I=S(O=>de(O)),{configValue:A}=f(xe.zeniCardsConfig),j=S(O=>Tr(O)),{tenantEmailDomain:E}=I,b=S(O=>O.settingsViewState.profile.fetchState),B=S(O=>O.chargeCardListState.fetchState),i=S(O=>O.settingsViewState.profile.userId),m=S(O=>O.chargeCardConfigState.fetchState);d.useEffect(()=>{p===!1&&b!=="In-Progress"&&b!=="Completed"&&(t(Fr()),g(!0)),_===!1&&m!=="In-Progress"&&m!=="Completed"&&(t(Va()),c(!0)),l===!1&&B==="Not-Started"&&(v(!0),t(ve()))},[p,l,B,_,m]),d.useEffect(()=>{b==="Completed"&&x===!1&&i!=null&&B==="Completed"&&j.cards.length>0&&(t(Br({userId:i})),t(cn({cardId:j.cards[j.cards.length-1].id})),C(!0))},[b,x,i,B]),d.useEffect(()=>{if(!y&&j.fetchState==="Completed"&&j.cards.length===0){const O=Re(n.state?.pathnameStackToGoBack),te=O.poppedPathname??ze(E);r(te,{state:{pathnameStackToGoBack:O.newStack}})}},[j.fetchState,j.cards,y]);const U=S(O=>ja(O)),M=bt(U.updateStatus.fetchState),R=U.currentDisplayedCardId,{useFeatureGate:T}=oe(),{isFeatureEnabled:$}=T(Q.isChargeCardFeatureEnabled),G=!!I.companyChargeCardInfo?.info?.isChargeCardEnabled,V=!I.userRole.includes("charge_card_user")&&$&&G,w=S(O=>R!=null?on(O.chargeCardState,R):null),Y=()=>{R!=null&&(L.current=!0,F.current!=null&&clearTimeout(F.current),F.current=setTimeout(()=>{L.current=!1,F.current=null},5e3),t(ca(R,V,!0)),t(ve(!0)),h(!0))},q=Ge(I);At({events:ta(q,Ln),onSubscribed:()=>{t(ve(!0))},onEvent:(O,te)=>{if(!sc.has(O))return;const ae=Pt(te),k=L.current;if(O===aa){const J=ce(ae?.card_id)??R;if(J!=null){const X=vt(ae,J);if(X!=null)return t(mt(X)),void(J!==R||k||Y())}}if(O===Ka)return void t(ve(!0));const z=ce(ae?.card_id)??R;(R==null||z===R)&&R!=null?k||Y():t(ve(!0))}}),d.useEffect(()=>{if(y&&R!=null&&w!=null&&w.status.code!=="request_on_hold"){const O=pe(I.tenantEmailDomain,R,o,w),te=ye(n.state?.pathnameStackToGoBack,n.pathname);t(Lr()),w?.type.code==="business_virtual_credit_card"&&t(Ha()),r(O,{state:{pathnameStackToGoBack:te},replace:!0}),L.current=!1,F.current!=null&&(clearTimeout(F.current),F.current=null)}},[y,w?.status.code]),d.useEffect(()=>{M==="In-Progress"&&U.updateStatus.fetchState==="Completed"&&setTimeout(Y,3e3)},[M,U.updateStatus.fetchState]);const P=O=>{D(O)};if(b!=="Completed"||j.cards.length===0)return s.jsxs(Ot,{children:[s.jsx(We,{isAppContentDrawerOpen:u,handleDrawerToggle:P}),s.jsx(Cs,{})]});if(i==null)throw Error("Can't access my userId.");return s.jsxs(Ot,{children:[s.jsx(We,{isAppContentDrawerOpen:u,handleDrawerToggle:P}),s.jsx(ic,{chargeCardListView:j,cardUserOnboardingView:U,navigate:r,currentTenant:I,myUserId:i,location:n,chargeCardCashbackRatePerTransaction:A.charge_card_cashback_rate_per_transaction!=null?A.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{P(!0)}}),e!=null?s.jsx(dc,{windowSize:a,children:e}):null]})},ic=he(function(e,{currentTenant:a,cardUserOnboardingView:t,chargeCardListView:r,myUserId:n}){const f=ea(e,!1,!1,!1);let p=!1;return f.fetchState==="Completed"&&f.cards.length<=1&&(p=!0),{cards:r.cards,showMenuIcon:p,companyLegalName:a.companyName,twoFAView:t.twoFAView,cardUserOnboardingLocalData:t.cardUserOnboardingLocalData??{userId:n},isDOBDisabled:t.isDOBPresent,onboardingProgressStatus:t.onboardingProgressStatus}},function(e,a){const{navigate:t,cardUserOnboardingView:r,location:n,currentTenant:f}=a,{tenantEmailDomain:p}=f;return{updateCardUserOnboardingLocalData:g=>{e(Ft({localData:g}))},onGetOtp:g=>{if(r.cardUserOnboardingLocalData!=null){const _={...r.cardUserOnboardingLocalData,phone:g};e(Ft({localData:_}))}e($a(g,"CardUserOnboarding"))},onResendOtp:g=>{e(Ma(g,"CardUserOnboarding"))},onVerifyOtp:(g,_)=>{e(Na(g,_,"CardUserOnboarding"))},onVerifyOtpSuccess:g=>{e(xr()),g!=null&&ee.saveZeniOtpToken(g)},setCurrentDisplayedCardId:g=>{e(cn({cardId:g}))},onBackClick:()=>{const g=Re(n.state?.pathnameStackToGoBack),_=g.poppedPathname??ze(p);t(_,{state:{pathnameStackToGoBack:g.newStack}})}}})(ps),dc=Te.div`
|
|
35
|
+
display: flex;
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
width: ${e=>`${cc.containerWidth.value(e.windowSize)}%`};
|
|
38
|
+
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
39
|
+
`,Ot=Te.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
|
+
`,lc={containerWidth:new Aa(100,58)},uc=({appContent:e})=>{const a=Ia(),t=Ce(),r=me(),{cardId:n}=ba(),f=Se(),{useDynamicConfig:p,useFeatureGate:g}=oe(),[_,c]=d.useState(!1),[l,v]=d.useState(!1),[y,h]=d.useState(!1),[L,F]=d.useState(!1),x=ee.getSignedInUser();if(x==null)throw Error("Can't access onboarding card page without signing in...");const C=S(V=>de(V));if(n==null)throw Error("Empty card id is not valid...");const{configValue:u}=p(xe.zeniCardsConfig),D=S(V=>Rr(V,n)),{isFeatureEnabled:o}=g(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:I}=g(Q.isDebitCardFeatureEnabled),A=Ee(I,C),j=ke({isDebitCardFeatureEnabled:I,isBankingOnlyTenant:A}),E=Ie(C),b=Ae(C),B=C.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,i=_e({isCardsOnlyTenant:E,isChargeCardFeatureEnabled:o,isBookKeepingTenant:b,isDebitCardProductVisible:j,chargeCardsCreditAccountLimit:B}),m=D.chargeCard,U=S(V=>V.chargeCardConfigState.fetchState);d.useEffect(()=>{_===!1&&U!=="In-Progress"&&U!=="Completed"&&(t(Va()),c(!0)),l===!1&&D.fetchState==="Not-Started"&&(v(!0),t(ca(n,!1,i)))},[l,D.fetchState,_,U]);const M=m?.type.code==="business_physical_debit_card"||m?.type.code==="business_virtual_debit_card";d.useEffect(()=>{if(D.fetchState==="Completed"){if(y===!1&&(M===!1||M&&m.status?.code!=="active"||M&&m.status.code==="active"&&m.isPinSet||m.cardHolderUserId!==x.userId)){const V=pe(C.tenantEmailDomain,n,x,m,!0),w=ye(f.state?.pathnameStackToGoBack,f.pathname);r(V,{state:{pathnameStackToGoBack:w}})}else if(y&&D.isRefreshingViewInBackground===!1&&m?.isPinSet===!0){t(Ur({chargeCardId:n}));const V=pe(C.tenantEmailDomain,n,x,m,!0),w=ye(f.state?.pathnameStackToGoBack,f.pathname);t(Ha()),r(V,{state:{pathnameStackToGoBack:w}})}}},[D.fetchState,m?.type.code,y,D.isRefreshingViewInBackground]);const R=ee.getZeniOtpTokenForCardHolder(n),T=S(V=>Ht(V.userState,x.userId)),$=()=>{m?.isPinSet!==!0&&t(na(n,!0))};d.useEffect(()=>{D.updateDebitCardPinAttemptFetchState.fetchState==="Completed"&&(setTimeout($,3e3),h(!0))},[D.updateDebitCardPinAttemptFetchState.fetchState]);const G=V=>{F(V)};if(U!=="Completed"||m==null)return s.jsx(Sa,{fetchState:"In-Progress"});if(T?.phone==null)throw Error("Can't access user phone number.");return s.jsxs(pc,{children:[s.jsx(We,{isAppContentDrawerOpen:L,handleDrawerToggle:G}),s.jsx(mc,{cardId:n,card:m,phone:T.phone,signedInUser:x,isSandboxEnv:ht(),debitCardDetailState:D,signedInUserToken:R,navigate:r,currentTenant:C,location:f,chargeCardCashbackRatePerTransaction:u.charge_card_cashback_rate_per_transaction!=null?u.charge_card_cashback_rate_per_transaction:.0175,onClickMenuIcon:()=>{G(!0)}}),e!=null?s.jsx(Cc,{windowSize:a,children:e}):null]})},mc=he(function(e,{debitCardDetailState:a,cardId:t}){const r=Nt(e,t),n=a.updateStatus,f=ea(e,!1,!1,!1);let p=!1;return f.fetchState==="Completed"&&f.cards.length<=1&&(p=!0),{showMenuIcon:p,vgsVaultId:Qa.cardVaultId,twoFAView:r,setPinWaitStatus:n}},function(e,a){const{navigate:t,cardId:r,location:n,currentTenant:f,debitCardDetailState:p}=a,g=p.chargeCard?.cardProviderID,{tenantEmailDomain:_}=f;return{onGetOtp:c=>{g!=null&&e($a(c,"ChargeCardHolder",r))},onUpdateDebitCardPinAttempt:c=>{e(Zt(r,c))},onResendOtp:c=>{g!=null&&e(Ma(c,"ChargeCardHolder",r))},onVerifyOtp:(c,l)=>{g!=null&&e(Na(c,l,"ChargeCardHolder",r))},onVerifyOtpSuccess:c=>{c!=null&&ee.saveZeniOtpTokenForCardHolder(c,r)},onSetPinSuccess:()=>{e(Or({chargeCardId:r}))},onBackClick:()=>{const c=Re(n.state?.pathnameStackToGoBack),l=c.poppedPathname==null||c.poppedPathname.includes("activate")===!0?ze(_):c.poppedPathname;t(l,{state:{pathnameStackToGoBack:c.newStack}})}}})(hs),Cc=Te.div`
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
width: ${e=>`${lc.containerWidth.value(e.windowSize)}%`};
|
|
51
|
+
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
52
|
+
box-shadow: ${e=>`${Ra.sp0} 2px ${Ra.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
53
|
+
`,pc=Te.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=>`${Ra.sp0} 2px ${Ra.sp1} ${e.theme.colors.dropShadowNormal}`};
|
|
62
|
+
`,hc={overlayWidth:new Aa(at[12],at[12],at[9])},fc=he(function(e,a){const t=pt(e,!1,!1),r=a.lineId,n=t.customAddress[r],f=t.customAddressStatus[r]??{fetchState:"Not-Started",error:void 0};return{googleAPIKey:a.googleAPIKey,customAddress:n,customAddressStatus:f,lineId:r}},function(e,a){const{newCustomAddressId:t,lineId:r,chargeCardTypeOption:n}=a;return{onSubmitHandler:f=>{t!=null&&e(dn(`${n==="creditCard"?"credit":"debit"}_custom_shipping_${r}_address`));const p=Ts(f);e(Hr({addressType:`${n==="creditCard"?"credit":"debit"}_custom_shipping_${r}_address`,addressToCreate:p})),e(Nr(`${n==="creditCard"?"credit":"debit"}_custom_shipping_${r}_address`))},onDismissClick:()=>{a.onDismissClick(),t!=null&&e(Vr({addressId:t,cardLineId:r,cardType:n==="creditCard"?"business_physical_credit_card":"business_physical_debit_card"}))}}})(fs),gc=({lineId:e,closeDrawerHandler:a,chargeCardTypeOption:t})=>{const r=ft(),n=Ia(),f=()=>{a()},p=S(g=>jr(`${t==="creditCard"?"credit":"debit"}_custom_shipping_${e}_address`,g))?.newAddressId;return s.jsx(hn,{anchor:"right",open:e.length>0,PaperProps:{style:{minWidth:hc.overlayWidth.valuePercentage(n),boxShadow:"none",zIndex:8}},slotProps:{backdrop:{style:{opacity:.75,backgroundColor:r.colors.black,cursor:"pointer"}}},onClose:(g,_)=>(_==="backdropClick"||_==="escapeKeyDown")&&f(),children:s.jsx(fc,{googleAPIKey:Qa.googleMapsAPIKey,onDismissClick:f,lineId:e,chargeCardTypeOption:t,newCustomAddressId:p})})},bc=he(function(e,a){const{isChargeCardFeatureEnabled:t,isDebitCardFeatureEnabled:r,isIssuePhysicalCardEnabled:n,isIssuePhysicalDebitCardEnabled:f,isChargeCardSetupEnabled:p,isDebitCardSetupEnabled:g}=a,_=pt(e,t&&p,r&&g);return{issueChargeCards:_,isIssuePhysicalCardEnabled:n,isIssuePhysicalDebitCardEnabled:f,isDebitCardFeatureEnabled:r,isChargeCardFeatureEnabled:t,isChargeCardSetupEnabled:p,isDebitCardSetupEnabled:g,cardHolderCandidates:_.userList.map(c=>c.user).filter(Boolean),allRoles:_.userList.map(c=>c.userRole),allAccountingClasses:_.allAccountingClasses,userList:_.userList}},function(e,a){return{onIssueCardClick:()=>{e(Gr())},onSaveChangesToLocalStore:t=>{e($r(t))},onDismissClick:()=>{e(ln()),a.navigate("../")},resetCustomAddressByLineID:(t,r)=>{e(dn(`${r==="creditCard"?"credit":"debit"}_custom_shipping_${t}_address`))},openAddAddressDrawerHandler:a.openAddAddressDrawerHandler}})(ys);function yc(){const e=ee.getSignedInUser(),a=me(),t=Ce(),r=gs(),[n]=jt(),f=n.get("cardType"),{useFeatureGate:p}=oe(),{isFeatureEnabled:g}=p(Q.isIssuePhysicalCardEnabled),{isFeatureEnabled:_}=p(Q.isIssuePhysicalDebitCardEnabled),{isFeatureEnabled:c}=p(Q.isDebitCardFeatureEnabled),{isFeatureEnabled:l}=p(Q.isChargeCardFeatureEnabled),v=S($=>de($)),y=Ee(c,v),h=ke({isDebitCardFeatureEnabled:c,isBankingOnlyTenant:y}),L=Ie(v),F=Ae(v),x=v.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,C=_e({isCardsOnlyTenant:L,isChargeCardFeatureEnabled:l,isBookKeepingTenant:F,isDebitCardProductVisible:h,chargeCardsCreditAccountLimit:x}),[u,D]=d.useState(!1);if(e==null)throw Error("Can't access issue card page without signing in...");d.useEffect(()=>{u||(D(!0),t(Mr(h&&I,C&&o,!1)))},[u,D,t]);const o=!!v.companyChargeCardInfo?.info?.isChargeCardEnabled,I=!!v.companyDebitCardInfo?.info?.isDebitCardEnabled,A=S($=>pt($,C&&o,h&&I)),j=A.fetchState,E=A.issueCardStatus.fetchState,b=A.lastSelfIssuedDebitCardId,B=S($=>b!=null?on($.chargeCardState,b):void 0),[i,m]=d.useState(null),[U,M]=d.useState(null),R=()=>{m(null)},T=($,G)=>{m($),M(G)};return d.useEffect(()=>{if(E==="Completed"){if(b!=null&&B?.type.code==="business_virtual_debit_card"){let $;$=B?.status.code==="request_on_hold"&&e.userId===B.cardHolderUserId?yn(v.tenantEmailDomain):pe(v.tenantEmailDomain,b,e,B),a($)}else a("../");t(ln())}},[E,b]),j==="Completed"?s.jsxs(s.Fragment,{children:[i!==null&&U!==null?s.jsx(gc,{closeDrawerHandler:R,lineId:i,chargeCardTypeOption:U}):null,s.jsx(bc,{themeState:r,isIssuePhysicalCardEnabled:g,isIssuePhysicalDebitCardEnabled:_,isDebitCardFeatureEnabled:h,isChargeCardFeatureEnabled:C,isChargeCardSetupEnabled:o,isDebitCardSetupEnabled:I,navigate:a,fetchState:A.fetchState,openAddAddressDrawerHandler:T,defaultCardType:f==="creditCard"||f==="debitCard"?f:void 0})]}):j==="Error"?s.jsx(Za,{}):s.jsx(bs,{})}const xn=[aa,Ka],Sc=new Set(xn),Ic=Te.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
|
+
`,Ac=he(function(e,a){const{myPendingActivationChargeCardListState:t}=a;return{myPendingActivationChargeCardListView:t,uiState:t.uiState,signedInUser:a.signedInUser}},function(e,a){const{navigate:t,currentTenant:r,location:n,signedInUser:f,myPendingActivationChargeCardListState:p}=a,{tenantEmailDomain:g}=r,{cards:_}=p;return{onChargeCardRowClick:c=>{const l=bn(_,c),v=pe(g,c,f,l),y=ye(n.state?.pathnameStackToGoBack,n.pathname);t(v,{state:{pathnameStackToGoBack:y}})},onColumnSortConfigChanged:(c,l)=>{e(st({uiState:{sortKey:c,sortOrder:l}}))},onReloadCards:()=>{e(ve())},onBackClick:()=>{const c=r.userRole.includes("charge_card_user");e(st({uiState:{sortKey:c?"cardName":"owner",sortOrder:"ascending"}})),t("../")}}})(Ss);function Ec(){const e=me(),a=Ce(),t=Se(),r=ft(),[n,f]=d.useState(!1),p=S(T=>zr(T)),g=S(T=>de(T)),_=S(T=>Ke(T,g.companyId)),c=qe(_.controllers),{useFeatureGate:l}=oe(),{isFeatureEnabled:v}=l(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:y}=l(Q.isDebitCardFeatureEnabled),h=Ee(y,g),L=ke({isDebitCardFeatureEnabled:y,isBankingOnlyTenant:h}),F=!!g.companyDebitCardInfo?.info?.isDebitCardEnabled,x=!!g.companyChargeCardInfo?.info?.isChargeCardEnabled,C=$e(),u=Ie(g),D=Ae(g),o=g.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,I=_e({isCardsOnlyTenant:u,isChargeCardFeatureEnabled:v,isBookKeepingTenant:D,isDebitCardProductVisible:L,chargeCardsCreditAccountLimit:o}),A=Ne(C?.loggedInUserRoleMap),j=S(T=>Xe(T)),{creditAccount:E,creditAccountRepayment:b}=S(T=>Je(T)),B=S(T=>rn(T)).cards.filter(T=>T.type.code.includes("debit")).map(T=>T.connectedAccountId),i=[...new Set(B)],m=S(T=>Ga(T,i));d.useEffect(()=>{n||p.fetchState==="Completed"||p.fetchState==="In-Progress"||(f(!0),a(ve()),a(Va()))},[n,a,p.fetchState]),d.useEffect(()=>{if(p.fetchState==="Completed"&&p.cards.length===1&&U!=null){const T=pe(g.tenantEmailDomain,p.cards[0].id,U,p.cards[0]);e(T,{state:{message:t.state?.message}})}},[p.fetchState,p.cards]);const U=ee.getSignedInUser();d.useEffect(()=>{E.fetchState!=="Completed"&&E.fetchState!=="In-Progress"&&I&&x&&A&&a(He()),b.fetchState!=="Completed"&&b.fetchState!=="In-Progress"&&A&&a(ut()),m.fetchState!=="Completed"&&m.fetchState!=="In-Progress"&&L&&F&&A&&a(sn())},[E.fetchState,b.fetchState,a,m.fetchState,L,F,A,I,x]);const M=Ge(g);if(At({events:ta(M,xn),onEvent:(T,$)=>{if(!Sc.has(T))return;const G=Pt($);if(T===aa){const V=ce(G?.card_id);if(V!=null){const w=vt(G,V);if(w!=null)return void a(mt(w))}}a(ve(!0))},onSubscribed:()=>{a(ve(!0))}}),U==null)throw Error("Can't access address page without signing in...");const R=p.cards!=null&&p.cards.length>0;if(p.fetchState==="Completed"||R){const T=Me(I,L,F,x);return s.jsx(Ic,{children:s.jsx(Ac,{navigate:e,currentTenant:g,signedInUser:U,productInformation:T,myPendingActivationChargeCardListState:p,isChargeCardFeatureEnabled:I,isDebitCardFeatureEnabled:L,isDebitCardSetupEnabled:F,isChargeCardSetupEnabled:x,chargeCardCashbackDetailState:j,creditAccount:E,creditAccountRepayment:b,depositAccountListWithDebitCardIssued:m,controllerEmails:c,location:t})})}return s.jsx(Sa,{fetchState:"In-Progress",style:{backgroundColor:r.colors.grey5}})}const kc=he(function(e,a){const{companyId:t,companyLegalName:r}=a;return{chargeCardSetupView:ya(e,t),admins:a.adminList,companyLegalName:r,meetingUrl:"https://meetings.hubspot.com/niharn/demo-zeni-charge-cards?embed=true"}},function(e,a){const{navigate:t,companyId:r,isCompanyBusinessVerificationAndPaymentSetUpDone:n,isDebitCardSetupEnabled:f,isChargeCardSetupEnabled:p,signedInUser:g,location:_,productInformation:c,isEarlyPayEnabled:l,controllerEmails:v,chargeCardsCreditAccountLimit:y}=a;return{onSetupButtonClick:h=>{if(g!=null&&K.trackCardsPromoPageClicked("enable cards"),n)switch(K.trackCardsEnableCardsClick(v,c,"Cards Promo"),h){case"credit":e(Ve(r,!0,"charge_cards",l,!1));break;case"debit":e(Ve(r,!0,"debit_cards",l,!1));break;case"debit_and_credit":e(y===0?Ve(r,!0,"debit_cards",l,!0):Ve(r,!0,"charge_cards__debit_cards",l,!1))}else switch(K.trackCardsSetupCardsClick(v,c,"Cards Promo"),h){case"credit":e(Ve(r,!1,"charge_cards",l,!1));break;case"debit":e(Ve(r,!1,"debit_cards",l,!1));break;case"debit_and_credit":e(y===0?Ve(r,!1,"debit_cards",l,!0):Ve(r,!1,"charge_cards__debit_cards",l,!1))}},onBackClick:()=>{const h=Re(_.state?.pathnameStackToGoBack);let L=h.poppedPathname;L==null&&(L=f||p?"..":"../.."),t(L,{state:{pathnameStackToGoBack:h.newStack}})},onLetsGoClick:()=>{t("./onboard")},onSetupChargeCardSuccess:()=>{n?(e(Ha()),t("../",{relative:"path"})):t("../setup",{relative:"path"})},onExpressInterestClick:()=>{e(Zr(r))}}})(As),_c=()=>{const e=me(),{tenantEmailDomain:a}=ba(),[t]=jt(),r=t.get("cardPromoType"),n=Ce(),{useDynamicConfig:f,useFeatureGate:p}=oe(),[g,_]=d.useState(!1),{isFeatureEnabled:c}=p(Q.isDebitCardFeatureEnabled),{isFeatureEnabled:l}=p(Q.isEarlyPayFeatureEnabled),{isFeatureEnabled:v}=p(Q.isChargeCardFeatureEnabled),{configValue:y}=f(xe.zeniCardsConfig),h=S(ne=>de(ne)),L=S(ne=>Ke(ne,h.companyId)),F=qe(L.controllers),x=y.charge_card_cashback_rate_per_transaction!=null?y.charge_card_cashback_rate_per_transaction:.0175,C=Se(),u=ee.getSignedInUserTenant(a)?.companyId??h.companyId,D=S(ne=>ya(ne,u)),o=D.primaryFundingAccount,I=h.companyBillPayInfo?.info,A=Ie(h),j=Ae(h),E=Ee(c,h),b=h.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,B=ke({isDebitCardFeatureEnabled:c,isBankingOnlyTenant:E}),i=_e({isCardsOnlyTenant:A,isChargeCardFeatureEnabled:v,isBookKeepingTenant:j,isDebitCardProductVisible:B,chargeCardsCreditAccountLimit:b}),m=gn({isCardsOnlyTenant:A,isChargeCardFeatureEnabled:v,isBookKeepingTenant:j}),U=B&&i===!1,M=I?.businessVerificationStatus?.code==="verified"&&(U||o?.accType==="depositAccount"||Qr(o?.providerVerificationStatus?.code??"")),R=ee.getSignedInUser(),T=!!h.companyZeniAccountInfo?.info?.isZeniAccountEnabled,$=!!h.companyChargeCardInfo?.info?.isChargeCardTOSAccepted,G=!!h.company?.companyChargeCardInfo.isChargeCardEnabled,V=!!h.company?.companyDebitCardInfo.isDebitCardEnabled,w=!!h.companyDebitCardInfo?.info?.isDebitCardTOSAccepted,Y=ne=>{_(ne)},q=S(ne=>ne.chargeCardSetupViewState.fetchState);if(R==null)throw Error("Can't access Charge Card promo page without signing in...");const P=$e(),O=Ne(P?.loggedInUserRoleMap),te=Ct(P?.loggedInUserRoleMap),[ae,k]=d.useState(!1),[z,J]=d.useState(!1),[X,Z]=d.useState(!1);d.useEffect(()=>{ae===!1&&C.state?.message==="activation"&&k(!0)},[C.state]),d.useEffect(()=>{z||q!=="Not-Started"||u==null||(J(!0),n(fa(u,!0)))},[z,q,u,n]);const re=h.companyChargeCardInfo?.info!=null&&sa({cardInfo:h.companyChargeCardInfo.info,isProductVisible:m,isTOSAccepted:$,isSetupEnabled:G,isUserHasCardsAdminLevelAccess:O,isUserHasCardsAccess:te}),De=h.companyDebitCardInfo?.info!=null&&sa({cardInfo:h.companyDebitCardInfo.info,isProductVisible:B,isTOSAccepted:w,isSetupEnabled:V,isUserHasCardsAdminLevelAccess:O,isUserHasCardsAccess:te}),Ue=B&&De&&m&&b>=0&&re?"debit_and_credit":B&&De?"debit":"credit",W=Ps(r,Ue),fe=D?.chargeCardTermsDetails?.fetchStatus?.fetchState,we=d.useRef(null);d.useEffect(()=>{fe==="In-Progress"?we.current=W:fe!=="Error"&&fe!=="Not-Started"||(we.current=null)},[fe,W]);const Oe=fe!=="In-Progress"&&fe!=="Completed"||we.current==null?W:we.current;d.useEffect(()=>{W==="credit"&&(G||m===!1&&V)||W==="debit"&&V||W==="debit_and_credit"&&V&&G?e("../"):(W==="debit_and_credit"&&$===!0&&w===!0||W==="credit"&&($===!0||m===!1&&w===!0)||W==="debit"&&w===!0)&&O===!0&&e("../setup")},[M,G,V,W,$,w]),d.useEffect(()=>{X||(n(Yr("cardAdmin")),Z(!0))},[X]);const Fe=S(ne=>tn(ne.userState,ne.userRoleState,ne.userListViewState,"cardAdmin")),Be=Me(m,B,V,G);return(re||De)&&q==="Completed"?s.jsxs(s.Fragment,{children:[s.jsx(yt,{analytics:K,onLoad:()=>{if(K.trackPageLoaded(pn.Event.cardsPromoPage),!!m&&!G||!!B&&!V||!!m&&!!B&&!V&&!G){const ne=Dc({isDebitCardSetupEnabled:V,isChargeCardSetupEnabled:G,isCreditCardProductVisibleForExpressInterest:m,isDebitCardProductVisible:B});K.trackCardsPromoView(F,Be,"Page",ne,"Promo Page")}}}),s.jsx(za,{showConfetti:ae}),s.jsx(We,{isAppContentDrawerOpen:g,handleDrawerToggle:Y}),s.jsx(kc,{signedInUser:R,location:C,showEnableCardButton:M,isCompanyBusinessVerificationAndPaymentSetUpDone:M,isChargeCardSetupEnabled:G,isDebitCardSetupEnabled:V,companyLegalName:h.companyName,adminList:Fe.users,isCheckingEnabled:T,navigate:e,companyId:u,cardPromoType:Oe,controllerEmails:F,productInformation:Be,isCreditCardProductVisible:i,isDebitCardFeatureEnabled:c,isEarlyPayEnabled:l,cashbackRate:x,chargeCardsCreditAccountLimit:b,onClickMenuIcon:()=>{Y(!0)}})]}):s.jsxs(s.Fragment,{children:[s.jsx(We,{isAppContentDrawerOpen:g,handleDrawerToggle:Y}),s.jsx(Is,{})]})},Dc=({isDebitCardSetupEnabled:e,isChargeCardSetupEnabled:a,isCreditCardProductVisibleForExpressInterest:t,isDebitCardProductVisible:r})=>t&&r&&!e&&!a?"Credit & Debit Card":t&&!a?"Credit Card":r&&!e?"Debit Card":"";function qc(){const e=Se(),a=S(q=>de(q)),{useFeatureGate:t}=oe(),{isFeatureEnabled:r}=t(Q.isChargeCardFeatureEnabled),{isFeatureEnabled:n}=t(Q.isDebitCardFeatureEnabled),{isFeatureEnabled:f}=t(Q.isEarlyPayFeatureEnabled),{isFeatureEnabled:p}=t(Q.isChargeCardPaymentHistoryFeatureEnabled),g=Ee(n,a),_=ke({isDebitCardFeatureEnabled:n,isBankingOnlyTenant:g}),c=Es(a,r,n),l=!!a.company?.companyChargeCardInfo.isChargeCardTOSAccepted,v=!!a.company?.companyDebitCardInfo.isDebitCardTOSAccepted,y=!!a.company?.companyChargeCardInfo.isChargeCardEnabled,h=!!a.company?.companyDebitCardInfo.isDebitCardEnabled,L=$e(),F=Ne(L?.loggedInUserRoleMap),x=Ct(L?.loggedInUserRoleMap),{isFeatureEnabled:C}=t(Q.isCashbackFeatureEnabled),u=a.userRole.includes("charge_card_user"),D=!u,o=!u&&y,I=a?.userRole!=null&&Wr(a?.userRole),A=(a?.company==null||a.company.featuresActivationInfo?.isBillPayFeatureEnabled&&!I)&&Kr(L?.loggedInUserRoleMap),j=qr(L?.loggedInUserRoleMap),E=(a?.company==null||a.company.featuresActivationInfo?.isReimbursementFeatureEnabled&&!I)&&Jr(L?.loggedInUserRoleMap),{isFeatureEnabled:b}=t(Q.isDepositAccountsFeatureEnabled),B=b&&!I&&$t(L?.loggedInUserRoleMap),i=y&&!I,m=h&&!I,U=c&&!I&&Ne(L?.loggedInUserRoleMap),M=Xr(L?.loggedInUserRoleMap),R=Ie(a),T=Ae(a),$=a.companyChargeCardInfo?.info?.chargeCardsCreditAccountLimit??0,G=_e({isCardsOnlyTenant:R,isChargeCardFeatureEnabled:r,isBookKeepingTenant:T,isDebitCardProductVisible:_,chargeCardsCreditAccountLimit:$}),V=a.companyChargeCardInfo?.info!=null&&sa({cardInfo:a.companyChargeCardInfo.info,isProductVisible:G,isTOSAccepted:l,isSetupEnabled:y,isUserHasCardsAdminLevelAccess:F,isUserHasCardsAccess:x}),w=a.companyDebitCardInfo?.info!=null&&sa({cardInfo:a.companyDebitCardInfo.info,isProductVisible:_,isTOSAccepted:v,isSetupEnabled:h,isUserHasCardsAdminLevelAccess:F,isUserHasCardsAccess:x}),Y=V||w;return s.jsxs(Rn,{children:[F?s.jsx(se,{path:"setup",element:s.jsx(Bt,{isBillPayAdminLevelAccess:A,isReimbursementAdminLevelAccess:E,isZeniAccountAdminLevelAccess:B,isChargeCardAdminLevelAccess:U,isUserHasOnlyCardAccess:M,isUserHasOnlyBillPayAccess:j,productType:"charge_cards",type:"setup"})}):null,F?s.jsx(se,{path:"verification",element:s.jsx(Bt,{isBillPayAdminLevelAccess:A,isUserHasOnlyBillPayAccess:j,isReimbursementAdminLevelAccess:E,isZeniAccountAdminLevelAccess:B,isChargeCardAdminLevelAccess:U,isUserHasOnlyCardAccess:M,productType:"charge_cards",type:"verification"})}):null,s.jsx(se,{path:"promo",element:s.jsx(_c,{})}),i||m?s.jsxs(s.Fragment,{children:[s.jsx(se,{path:"/",element:s.jsx(xt,{isPaymentDrawerOpen:!1})}),U&&f?s.jsx(se,{path:"payment",element:s.jsx(xt,{isPaymentDrawerOpen:!0})}):null,s.jsx(se,{path:"activate",element:s.jsx(Ec,{})}),s.jsx(se,{path:"onboard",element:s.jsx(oc,{})}),F?s.jsx(se,{path:"new",element:s.jsx(yc,{})}):null,C&&D?s.jsx(se,{path:"cashback",element:s.jsx(Rs,{})}):null,o?s.jsx(se,{path:"statements",element:s.jsx(rc,{})}):null,U&&p&&y?s.jsx(se,{path:"payment-history",element:s.jsx(nc,{})}):null,s.jsx(se,{path:":cardId/activate",element:s.jsx(js,{})}),s.jsx(se,{path:":cardId/setPin",element:s.jsx(uc,{})}),s.jsx(se,{path:":cardId/addToWallet",element:s.jsx(Fs,{})}),s.jsx(se,{path:":cardId/*",element:s.jsx(Zs,{})}),s.jsx(se,{path:"*",element:s.jsx(Za,{})})]}):(l||v)&&F?s.jsx(se,{path:"*",element:s.jsx(Fa,{to:"../setup"})}):Y?s.jsx(se,{path:"*",element:s.jsx(Fa,{to:"../promo",state:e.state})}):s.jsx(se,{path:"*",element:null})]})}export{qc as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as m}from"./liveblocks-CpSeBLzv.js";import{a as g}from"./sentry-BxlhxHUi.js";import{h as w,u as T,g as x,i as k,j as O,n as E}from"./core-DUPexJ3H.js";import{z as N,b9 as F,x as P,c as V,e as L,af as C,ba as A,at as j,au as U,q as B}from"./index-B_Z_hpYg.js";import{eQ as D,fH as M,sC as _,fC as R,c1 as q,Nd as z,bn as G,qK as H,qy as Y,kf as K,lL as S,Ne as Q,bE as W,cu as b,lT as Z,lW as $}from"./zeni-epic-state-DP595dtC.js";import"./mui-BYcLUAn-.js";import{d as J}from"./routePaths-DpeDFIQv.js";import{M as X}from"./MobileAppDrawer-BG5P4V6f.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},a=new t.Error().stack;a&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[a]="a68ed615-fdf7-4992-892d-d89b0e0e9695",t._sentryDebugIdIdentifier="sentry-dbid-a68ed615-fdf7-4992-892d-d89b0e0e9695")}catch{}})();const ee=E(function(t){const a=R(t),i=N.getSignedInUser(),l=D(t),c=l.tenantId,p={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:c??""},f=q(l?.userRole??[])&&a.localData.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",e=z(t.companyConfigState),n=t.countryListState?.byCountryListCode?.nationalityCountryList?.countries??[];return{isCompanyVerified:a.companyView?.company?.company?.companyBillPayInfo?.companyVerificationStatus?.code==="verified",companyPassportView:a,allIndustries:e.companyIndustries??[],allNationalityCountries:n,isDisabled:f,authParams:p,filesEndPoint:`${j.fileMicroServiceBaseUrl}`,isZeniUser:G(i)}},function(t,a){const{companyId:i,currentTenant:l,navigate:c,location:p}=a,{tenantEmailDomain:f}=l;return{onScheduleClick:e=>{let n=e.href;n.includes("http")||(n="https://".concat(n)),window.open(n,"_blank")},onSaveAll:()=>{t($())},onAddressClick:e=>{const n=J(f,e),o=B(p.state?.pathnameStackToGoBack,p.pathname);c(n,{state:{pathnameStackToGoBack:o}})},onResetClick:()=>{t(Z({companyId:i}))},onBackClick:()=>{c("../")},onCompanyDetailsChanged:e=>{const{companyInfo:n,incInfo:o,taxDetails:r,zeniFinanceTeam:d}=e,{website:u}=n,{meetingLink:y}=d,{incDate:s}=o,{taxesFiledYears:h}=r,v={companyInfo:{...n,website:u!=""&&u!=null?b(u):void 0,meetingLink:y!=""&&y!=null?b(y):void 0,industry:n.industry.selectedOption,companyIndustryType:n.companyIndustryType?.selectedOption??void 0,companySubIndustry:n.companySubIndustry?.selectedOption??void 0,businessModel:n.businessModel.selectedOption??"",companySourceOfFunds:n.companySourceOfFunds?.selectedOption,companySourceOfFundsDescription:n.companySourceOfFundsDescription??void 0,countriesOfOperations:n.countriesOfOperations?.selectedOptions?.map(I=>I.length===2?I:U(I))??[],transactionVolume:n.transactionVolume?.selectedOption??void 0,transactionVolumeDescription:n.transactionVolumeDescription??void 0,regulatedStatus:n.regulatedStatus??void 0,regulatedStatusDescription:n.regulatedStatusDescription??void 0,usNexus:n.usNexus??void 0,usNexusTypes:n.usNexusTypes?.selectedOptions??[],purposeOfAccount:n.purposeOfAccount?.selectedOption??void 0,purposeOfAccountDescription:n.purposeOfAccountDescription??void 0},incInfo:{typeOfInc:o.typeOfInc.selectedOption??"",stateOfInc:o.stateOfInc.selectedOption??"",incDate:s!=null?W(s?.toString()):s,fileId:o.fileIds[0]},taxDetails:{taxIdOrEIN:r.taxIdOrEIN,sicCode:r.sicCode,naicsCode:r.naicsCode,dunsNumber:r.dunsNumber,taxesFiledYears:h.selectedOptions.map(I=>parseInt(I)),fileId:r.fileIds[0]}};t(S({companyDetails:v}))},onPrimaryContactDetailsUpdated:e=>{t(S({primaryContact:{userId:e.userId,email:e.email.trim(),firstName:e.name.firstName,lastName:e.name.lastName}}))},onNewCompanyOfficerAdded:e=>{t(S({officers:[{officerType:e.officerType,email:e.email.trim(),phone:e.phone,firstName:e.name.firstName,lastName:e.name.lastName,userId:void 0}]}))},onNewCompanyOfficerRemoved:e=>{t(Q(e))},onCompanyOfficerUpdated:e=>{t(S({officers:[{officerType:e.officerType,email:e.email.trim(),phone:e.phone,firstName:e.name.firstName,lastName:e.name.lastName,userId:e.userId}]}))},updateFilesEntity:e=>{t(K({files:e}))},onDeleteFile:e=>{t(Y(e))},onEditFileName:(e,n)=>{t(H(e,n.split(".")[0]))}}})(A);function de(){const t=w(),a=T(),i=x(),{tenantEmailDomain:l}=k(),[c,p]=g.useState(!1),[f,e]=g.useState(!1),n=O(s=>s.companyViewState.passportView.fetchState),o=O(s=>s.companyConfigState.fetchState),r=O(s=>D(s)),d=r.companyId??N.getSignedInUserTenant(l)?.companyId;if(N.getSignedInUser()==null)throw Error("Can't access company details page without signing in...");g.useEffect(()=>{c||n!=="Not-Started"||d==null||(p(!0),a(M(d)))},[c,n,d,a]),g.useEffect(()=>{o==="Not-Started"&&a(_())},[o,a]);const u=s=>{e(s)},y=n==="Not-Started"||n==="In-Progress"||o==="Not-Started"||o==="In-Progress";return d!=null&&n==="Error"?m.jsx(F,{onGoHome:()=>t("../",{replace:!0}),onReload:()=>window.location.reload()}):m.jsxs(m.Fragment,{children:[m.jsx(P,{analytics:V,onLoad:s=>s.trackPageLoaded(L.Event.companyPassport,C(i)?"Settings":"Company Passport")}),C(i)?m.jsx(X,{isAppContentDrawerOpen:f,handleDrawerToggle:u}):null,m.jsx(ee,{companyId:d,navigate:t,location:i,isLoading:y,currentTenant:r,isSettings:C(i),onClickMenuIcon:()=>{u(!0)}})]})}export{de as C};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{j as C}from"./liveblocks-CpSeBLzv.js";import{a}from"./sentry-BxlhxHUi.js";import{u as D,g as v,j as u,N as w}from"./core-DUPexJ3H.js";import{JV as A,eQ as O,fp as j,nf as U,fQ as h,fo as _,eX as L,K0 as F}from"./zeni-epic-state-DP595dtC.js";import{u as $,z as f,L as g,D as k,o as H}from"./index-B_Z_hpYg.js";import{n as Q}from"./mui-BYcLUAn-.js";import{t as z}from"./getLocaleForTenant-BQer3J3i.js";import{g as R,Q as P}from"./QBOConnectionScreen-DmBrRYj5.js";import"./recharts-Dp6Vlg5X.js";import"./analytics-wiEk3GGD.js";import"./plaid-DSCHiplf.js";import"./dnd-O-LDWVRl.js";import"./stripe-DMRn4zHo.js";import"./lottie-BpJoufaA.js";import"./lexical-D7D3BWIv.js";import"./pdf--1Oee4-D.js";import"./utils-BI-ymB94.js";import"./empty-DtHXOIj5.js";import"./pdf-lib-DIbgSioz.js";import"./index-BhL3T4qt.js";import"./url-DLyO75wK.js";import"./index-iv31G9Nr.js";import"./decodeURIComponentSafe-jbE9T9Sc.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new t.Error().stack;d&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[d]="72e10b19-a3cc-48c4-a4bf-ec490844fb10",t._sentryDebugIdIdentifier="sentry-dbid-72e10b19-a3cc-48c4-a4bf-ec490844fb10")}catch{}})();const V=Q.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 me(){const t=D(),d=v(),{setLoading:i,clearAllLoading:b}=$(),m=a.useRef(!1),p=a.useRef(!1),{code:x,realmId:T,state:y}=R(d.search),N=x!==""&&T!==""&&y!=="",I=u(l=>A(l)),e=u(l=>O(l)),n=u(l=>l.tenantState.fetchState),r=u(l=>l.tenantState.activeTenantFetchState.fetchState),o=f.getSignedInUser(),c=f.getActiveTenantForUser()?.tenantId,s=e?.externalConnections?.fetchState,E=e?.externalConnections?.saveConnectionState,S=e.externalConnections?.accounting[0]?.isValid;return a.useLayoutEffect(()=>{i(g.CONNECTION_AUTH)},[i]),a.useEffect(()=>{m.current||o==null||c==null||(m.current=!0,n==="Completed"||r!=="Not-Started"&&r!=="Error"||(i(g.TENANT_FETCHING),t(j(o.userId,c))))},[m,n,i]),a.useEffect(()=>{e.tenantId==null&&!p.current&&o!=null&&(p.current=!0,!(c==null||c!=null&&(r==="Completed"||r==="Error"))||n!=="Not-Started"&&n!=="Error"||t(U(o.userId)))},[p,n,r]),a.useEffect(()=>{o==null||e?.tenantId==null||e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||s==="In-Progress"||E!=="Error"||(i(g.CONNECTION_AUTH),t(h(o.userId,e.tenantId)))},[E]),a.useEffect(()=>{n!=="Completed"&&r!=="Completed"||o==null||e?.tenantId==null||(t(_(e.tenantId)),f.saveActiveTenantDomainForUser(e.tenantEmailDomain),L(o?.userId,o?.zeniSessionId,e.tenantId),k.updateAppLocaleID(z(F(e))),e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||s==="In-Progress"||o==null||e==null||t(h(o.userId,e.tenantId)))},[n,r,s]),a.useEffect(()=>{I.tenantsCoreDetailsInOrder.length>0&&n==="Completed"&&f.saveSignedInUserTenants(I.tenantsCoreDetailsInOrder)},[I.tenantsCoreDetailsInOrder.length,n]),a.useEffect(()=>{n!=="Completed"&&n!=="Error"||r!=="Completed"&&r!=="Error"||s!=="Completed"&&s!=="Error"||b()},[n,r,s]),e==null||n!=="Completed"&&r!=="Completed"||s!=="Completed"?null:N||S===!1?C.jsx(V,{children:C.jsx(P,{})}):C.jsx(w,{to:"/",replace:!0})}export{me as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./liveblocks-CpSeBLzv.js";import{z as n}from"./index-B_Z_hpYg.js";import{g as d}from"./QBOConnectionScreen-DmBrRYj5.js";import"./sentry-BxlhxHUi.js";import{g as p,N as a}from"./core-DUPexJ3H.js";import"./zeni-epic-state-DP595dtC.js";import"./recharts-Dp6Vlg5X.js";import"./mui-BYcLUAn-.js";import"./analytics-wiEk3GGD.js";import"./plaid-DSCHiplf.js";import"./dnd-O-LDWVRl.js";import"./stripe-DMRn4zHo.js";import"./lottie-BpJoufaA.js";import"./lexical-D7D3BWIv.js";import"./pdf--1Oee4-D.js";import"./utils-BI-ymB94.js";import"./empty-DtHXOIj5.js";import"./pdf-lib-DIbgSioz.js";import"./index-BhL3T4qt.js";import"./url-DLyO75wK.js";import"./index-iv31G9Nr.js";import"./decodeURIComponentSafe-jbE9T9Sc.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e53e9b9f-4e1e-4d41-afae-a46e42efc4b3",e._sentryDebugIdIdentifier="sentry-dbid-e53e9b9f-4e1e-4d41-afae-a46e42efc4b3")}catch{}})();const U=()=>{const e=p(),{code:t,realmId:o,state:r}=d(e.search),s=n.getSignedInUser()?.userId??"";if(f(t,o,r,s)===!0){const m=`../../${r}/onboarding?code=${t}&realmId=${o}&state=auth_flow`;return i.jsx(a,{to:m})}return i.jsx(a,{to:"../../"})},f=(e,t,o,r)=>e!=""&&t!=""&&o!=""&&r!=null&&r!="";export{U as default,f as hasValidParams};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import{j as a}from"./liveblocks-CpSeBLzv.js";import{t as $e,A as Ce}from"./AddressScreen-BrRyijJp.js";import Ke from"./NotFoundScreen-DcBza--g.js";import{a as g}from"./sentry-BxlhxHUi.js";import{h as oe,g as se,u as ie,i as re,j,N as D,n as ce,l as ze,o as qe,p as K}from"./core-DUPexJ3H.js";import{H as de,k as le,z as V,s as ue,m as Me,U as _,T as Qe,q as U,x as H,c as R,B as we,e as J,ap as Ze,J as He,aq as Ie,h as te,ar as We,as as ke,o as Je,at as Xe,au as Ee,av as Ye}from"./index-B_Z_hpYg.js";import{eQ as Y,fh as et,e$ as pe,eZ as me,bs as tt,nd as at,fd as nt,bO as ot,jj as ae,jm as ve,Kp as st,bT as it,c1 as ge,sQ as he,sB as rt,KV as X,sR as _e,Ih as ct,kn as Ue,KW as Ve,KX as dt,KY as lt,KZ as ut,jh as pt,jk as mt,sD as Be,sP as gt,bE as Te,cu as ht,t1 as xe,qK as ft,qy as yt,kf as St,fF as bt,fE as Ct,fD as It,K_ as kt,sv as Et,t2 as Tt,t5 as xt,t8 as Ot,te as Pt,cS as Dt}from"./zeni-epic-state-DP595dtC.js";import{n as fe}from"./mui-BYcLUAn-.js";import{g as At,h as Ft,q as ne}from"./QBOConnectionScreen-DmBrRYj5.js";import"./recharts-Dp6Vlg5X.js";import"./analytics-wiEk3GGD.js";import"./plaid-DSCHiplf.js";import"./dnd-O-LDWVRl.js";import"./stripe-DMRn4zHo.js";import"./lottie-BpJoufaA.js";import"./lexical-D7D3BWIv.js";import"./pdf--1Oee4-D.js";import"./utils-BI-ymB94.js";import"./empty-DtHXOIj5.js";import"./pdf-lib-DIbgSioz.js";import"./index-BhL3T4qt.js";import"./url-DLyO75wK.js";import"./index-iv31G9Nr.js";import"./decodeURIComponentSafe-jbE9T9Sc.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]="1dd0d2e6-ddde-4e97-a698-40cff28795a3",t._sentryDebugIdIdentifier="sentry-dbid-1dd0d2e6-ddde-4e97-a698-40cff28795a3")}catch{}})();const jt=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 d=nt(t,s,o.signedInUser,o.isExpenseAutomationFeatureEnabledV2,o.isExpenseAutomationEnabledForUser,o.isTreasuryEnabled);return{dashboardFetchState:ot(d.reportsInOrder.map(c=>({fetchState:c.fetchState,error:c.error}))).fetchState}},function(t,o){const{themeState:s,navigate:d,location:c}=o;return{onZeniLogoClick:()=>{s.toggle()},onDashboardFetchDone:()=>{const r=U(c.state?.pathnameStackToGoBack,c.pathname);d("../../dashboard",{state:{pathnameStackToGoBack:r,message:"activation"}})}}})(Ze),wt=()=>{const t=oe(),o=se(),s=ie(),d=de(),[c,r]=g.useState(!1),[p,y]=g.useState(!1),{tenantEmailDomain:e}=re(),n=le(),i=V.getSignedInUser(),{useFeatureGate:l}=ue(),C=Me(),{isFeatureEnabled:T}=l(_.isApAgingFeatureEnabled),{isFeatureEnabled:A}=l(_.isArAgingFeatureEnabled),{isFeatureEnabled:x}=l(_.isDepositAccountsFeatureEnabled),{isFeatureEnabled:k}=l(_.isReferralFeatureEnabled),{isFeatureEnabled:S}=l(_.isExpenseAutomationEnabledV2),{isFeatureEnabled:v}=l(_.isDebitCardFeatureEnabled),I=Qe(),h=j(u=>Y(u)),{isFeatureEnabled:G}=l(_.isTreasuryEnabled),m=h.company!=null&&et(h.company),B=G&&m,E=j(u=>u.onboardingCustomerViewState.fetchState),F=h.excludedResources,L=h.companyId??V.getSignedInUserTenant(e)?.companyId;if(i==null)throw Error("Can't access onboarding flow without signing in...");const b=pe(v,h),O=me(h),P=[],N=F?.resources?.find(u=>u.resource==="/reports/top_expenses")==null,M=F?.resources?.find(u=>u.resource==="/reports/task_card")==null,Q=h?.userRole!=null&&tt(h?.userRole),$=F?.resources?.find(u=>u.resource==="/bills")==null&&!Q,z=F?.resources?.find(u=>u.resource==="/reimbursements")==null;if(N===!1&&P.push("top_expenses"),M===!1&&P.push("task_card"),$===!1&&P.push("bill_pay_card","bill_pay_promo_card"),z===!1&&P.push("reimbursement_card","reimbursement_promo_card"),x===!1&&P.push("zeni_accounts_promo_card"),k===!1&&P.push("rewards_card"),g.useEffect(()=>{E!=="Completed"||c||b||O||(r(!0),s(at(i.userId,L,h.tenantId,!0,!1,P)))},[c,E,b,O,i,h.tenantId,s]),g.useEffect(()=>{(b||O)&&setTimeout(()=>{y(!0)},5e3)},[b,O]),E!=="Completed")return a.jsx(D,{to:"../"});if(E==="Completed"&&p){const u=U(o.state?.pathnameStackToGoBack,o.pathname);if(b)return a.jsx(D,{to:"../../checking",state:{...o.state,pathnameStackToGoBack:u,message:"activation"}});if(O)return a.jsx(D,{to:"../../cards",state:{...o.state,pathnameStackToGoBack:u,message:"activation"}})}return n?.loggedInUserRoleMap!=null?a.jsxs(a.Fragment,{children:[a.jsx(H,{analytics:R,onLoad:u=>(q=>q.trackPageLoaded(J.Event.onboardingDashboardActivation))(u)}),a.jsx(jt,{navigate:t,location:o,themeState:d,signedInUser:i,isApAgingFeatureEnabled:T,isArAgingFeatureEnabled:A,shouldFetchZeniAccountsPromoCard:x,shouldFetchRewardsPlanCard:k,isExpenseAutomationEnabledForUser:I,isExpenseAutomationFeatureEnabledV2:S,isTreasuryEnabled:B,loggedInUserRoleMap:n?.loggedInUserRoleMap})]}):a.jsx(we,{fetchState:"In-Progress",style:{backgroundColor:C.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% - ${ke}px);
|
|
10
|
+
padding-left: ${ke}px;
|
|
11
|
+
flex: 1;
|
|
12
|
+
|
|
13
|
+
${t=>t.theme.breakpoints.down("md")} {
|
|
14
|
+
width: 100%;
|
|
15
|
+
padding-left: ${Je.sp0};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
${t=>t.windowSize!=="small"?"overflow: auto;":""}
|
|
19
|
+
`,De=ce(function(t,o){const{companyId:s,isAdmin:d,currentTenant:c,isOnAddressPage:r}=o,p=V.getSignedInUser(),y=c.tenantId,e={userId:p?.userId??"",sessionId:p?.zeniSessionId??"",tenantId:y??""},n=Y(t),i=he(t,s),l=Ve(t),C=ge(c?.userRole??[])&&i.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",T=dt(t.userRoleConfigState);return{onboardingCustomerView:i,analytics:R,isRefreshingViewInBackground:!1,isDisabled:C,companyTitles:T.companyTitles,connectedAccountProvider:n.company?.featuresActivationInfo.connectedAccountProvider??"",fileProps:{filesEndPoint:Xe.fileMicroServiceBaseUrl,authParams:e},signedInUser:V.getSignedInUser(),currentTenant:c,isAdmin:d,isOnAddressPage:r,meetingUrl:"https://meetings.hubspot.com/niharn/zeni-onboarding-overview?embed=true",cardPaymentView:l,isCardPaymentPopupOpen:!1,stripeKey:te.stripeKey}},function(t,o){const{companyId:s,currentTenant:d,themeState:c,navigate:r,location:p}=o,{tenantEmailDomain:y}=d;return{onFetchLinkTokenClick:(e,n)=>{t(Pt(e,n))},onEstablishConnectionClick:(e,n)=>{t(Ot(e,n))},onUpdatePaymentAccountStatus:(e,n,i)=>{t(xt(e,n,i))},onUpdatePaymentAccountLoginStatus:(e,n)=>{t(Tt(!1,e,n))},onEstablishConnectionSuccess:()=>{t(Et(s,!0,!1))},handleOnConnectClick:()=>{R.trackOnboardingConnectQBO(),ne.handleClick()},updateQBOPopupState:e=>{t(X({isQBOPopupOpen:e}))},onCompanyOfficerUpdated:e=>{const n=e.map(i=>{const{officerType:l,userId:C,name:T,email:A,ssn:x,nationalityCountryCode:k,dob:S,phone:v,syncToken:I,selectDocument:h,role:G,ownership:m,isSelectedForVerification:B,userVerificationStatus:E,fileIds:F,isPhoneVerified:L}=i;let b;return h.selectDocumentType==="driverLicense"?b="driving_license":h.selectDocumentType==="passport"?b="passport":h.selectDocumentType==="stateId"?b="id_document":h.selectDocumentType==="ssnCard"&&(b="social_security_card"),{officerType:l,userId:C,firstName:T.firstName,lastName:T.lastName,email:A,ssn:x,nationalityCountryCode:k?.selectedOption!=null?Ee(k.selectedOption):void 0,phone:v,birthday:S!=null?Te(S?.toString()):S,syncToken:I,titleAtCompany:G.selectedOption,ownershipInCompany:m,documentTypeSelectedForVerification:b,isSelectedForVerification:B,userVerificationStatus:E,fileIds:F,additionalDocumentTypesRequestedForVerification:[],additionalSubmittedDocumentsForVerificationFileIds:[],areAdditionalDocumentsRequestedForVerification:!1,areAdditionalDocumentsSubmittedForVerification:!1,isPhoneVerified:L}});t(xe({officers:n}))},onGetOtp:(e,n)=>{t(It(e,"CustomerOnboarding")),n!=null&&t(kt({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:l,companyLegalName:C,companyTaxId:T,companyWebsite:A,companyPhone:x,primaryContactEmail:k,primaryContactName:S,primaryContactUserId:v,primaryContactSyncToken:I,syncToken:h,fileIds:G,typeOfIncorporation:m,stateOfIncorporation:B,incDate:E,companySourceOfFunds:F,companySourceOfFundsDescription:L,companySubIndustry:b,countriesOfOperations:O,purposeOfAccount:P,purposeOfAccountDescription:N,regulatedStatus:M,regulatedStatusDescription:Q,transactionVolume:$,transactionVolumeDescription:z,usNexus:u,usNexusTypes:q}=e,w={companyId:s,companyDescription:n,companyIndustry:i.selectedOption,companyIndustryType:l?.selectedOption??"",companyLegalName:C,taxIdOrEIN:T,website:A!=""&&A!=null?ht(A):void 0,phone:x,syncToken:h,fileIds:G,incDate:E!=null?Te(E?.toString()):E,typeOfIncorporation:m?.selectedOption??"",stateOfIncorporation:B?.selectedOption??"",companySourceOfFunds:F?.selectedOption??"",companySourceOfFundsDescription:L,companySubIndustry:b?.selectedOption??"",countriesOfOperations:O?.selectedOptions.map(Z=>Z.length===2?Z:Ee(Z))??[],purposeOfAccount:P?.selectedOption??"",purposeOfAccountDescription:N,regulatedStatus:M??"",regulatedStatusDescription:Q,transactionVolume:$?.selectedOption??"",transactionVolumeDescription:z,usNexus:u,usNexusTypes:q?.selectedOptions??[]},ee={userId:v,firstName:S.firstName,lastName:S.lastName,email:k,syncToken:I};t(xe({companyDetails:w,primaryContactDetails:ee}))},onAddressClick:(e,n)=>{const i=Ae(y,e,n),l=U(p.state?.pathnameStackToGoBack,p.pathname);r(i,{state:{pathnameStackToGoBack:l}})},onRegisteredAddressClick:(e,n)=>{const i=Ae(y,e,n),l=U(p.state?.pathnameStackToGoBack,p.pathname);r(i,{state:{pathnameStackToGoBack:l}})},onUpdateCustomerView:(e,n,i)=>{t(gt(s,!1,n,i,e))},onAddressEditHandler:e=>{if(e!=null){const n=$e(e);t(Ue({addressType:"subscription_billing_address",addressToCreate:n}))}},onSkipSetupClick:()=>{const e=U(p.state?.pathnameStackToGoBack,p.pathname);t(Be(s,!1,!1)),r("./activation",{state:{pathnameStackToGoBack:e}})},onUpdateStep:e=>{t(_e({step:e}))},onZeniLogoClick:()=>{c.toggle()},handleLogOutClick:()=>{const e=U(p.state?.pathnameStackToGoBack,p.pathname);r("/signout",{replace:!0,state:{pathnameStackToGoBack:e,message:"logout"}})},handleCockpitClick:()=>{window.open("/cockpit")},handleCreateCardSetupIntent:e=>{t(ve(e))},handleConfirmCardSetupIntent:e=>{t(mt(e))},updateCardPaymentModalState:e=>{t(X({isCardPaymentPopupOpen:e}))},handleAddCardPaymentSource:(e,n,i)=>{t(pt(e,n,i))},handleFetchPaymentSources:()=>{t(ae())},resetCardPaymentViewState:()=>{t(ut())},handleResetCardPaymentErrorStatuses:()=>{t(lt())},redirectToProductSuitePage:()=>{const e=U(p.state?.pathnameStackToGoBack,p.pathname);r(`/${y}/onboarding/thankyou`,{state:{pathnameStackToGoBack:e,message:"OnboardingThankyou"},replace:!0})}}})(We),W=({taxCFOCustomer:t=!1,isOnAddressPage:o=!1,appContent:s})=>{const d=oe(),c=se(),r=ie(),p=He(),y=de(),[e,n]=g.useState(!1),[i,l]=g.useState(!1),[C,T]=g.useState(!1),{tenantEmailDomain:A}=re(),x=le(),{useFeatureGate:k}=ue(),{isFeatureEnabled:S}=k(_.isDebitCardFeatureEnabled),v=ze("/:tenantEmailDomain/onboarding")!==null&&c.search?.includes("code"),I=j(f=>f.onboardingCustomerViewState.fetchState),h=j(f=>f.onboardingCustomerViewState.currentStep),G=j(f=>f.onboardingCustomerViewState.uiState),m=j(f=>Y(f)),B=j(f=>f.userRoleConfigState.fetchState),E=j(f=>f.cardPaymentViewState),F=Ie(E.addCardPaymentSourceStatus.fetchState),L=E.addCardPaymentSourceStatus.fetchState,{code:b,realmId:O,state:P}=At(c.search),N=m.externalConnections?.accounting[0],M=N?.connectionType,Q=N?.connectionName,$=N?.connectionId??"",z=V.getSignedInUser()?.userId??"";g.useEffect(()=>{i||(l(!0),r(ae()))},[i,r]),g.useEffect(()=>{C||(ve(["card"]),T(!0))},[C]),g.useEffect(()=>{F==="In-Progress"&&L==="Completed"&&r(ae())},[F,L]),g.useEffect(()=>{Ft(b,O,P,$,z)===!0&&m.externalConnections?.saveConnectionState!=="In-Progress"&&I==="Completed"&&(r(st(m.tenantId,{connection_type:M??"accounting",connection_name:Q??"quickbooks_online",authorization_code:b,realm_id:O,connection_id:$,user_id:z},it(window.location.origin+"/onboarding/auth"))),R.trackOnboardingSaveQBOConnection(O,$),d(c.pathname))},[b,O,P,c.pathname,I]),g.useEffect(()=>{ne.isInitiated===!1&&I==="Completed"&&ne.init("/onboarding/auth",m.tenantEmailDomain)},[I]);const u=m.companyId??V.getSignedInUserTenant(A)?.companyId,q=ge(m?.userRole??[]),w=j(f=>he(f,u));g.useEffect(()=>{e||I!=="Not-Started"||u==null||(n(!0),r(rt(u,!0,!v)))},[e,I,u]),g.useEffect(()=>{m.externalConnections?.saveConnectionState!=="Completed"&&m.externalConnections?.saveConnectionState!=="Error"||!G.isQBOPopupOpen||h!=="qbo_connection"||r(X({isQBOPopupOpen:!1}))},[m.externalConnections?.saveConnectionState]),g.useEffect(()=>{I==="Completed"&&v&&(r(_e({step:"qbo_connection"})),r(X({isQBOPopupOpen:!0})))},[v,I]),g.useEffect(()=>{B==="Not-Started"&&r(ct(!0))},[B,r]);const ee=Ie(w.companyDetailsLocalData?.addressStatus);g.useEffect(()=>{w.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate==null&&w.companyDetailsLocalData?.addressStatus?.addressToCreate!=null&&ee==null&&r(Ue({addressType:"company_registered_address",addressToCreate:w.companyDetailsLocalData?.addressStatus?.addressToCreate}))},[w.companyDetailsLocalData?.addressStatus?.addressToCreate,w.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate]);const Z=w.isInterimEmailSent;if(V.getSignedInUser()==null)throw Error("Can't access onboarding flow without signing in...");const Le=pe(S,m),Re=me(m),ye=m.company?.companyOnboardingInfo.isOnboardingCompleted,Se=f=>f.trackPageLoaded(J.Event.onboardingPage),be=m.productSettings.isOtherProductsEnabled,Ge=m.productSettings.isTreasuryEnabled;if(ye===!0){if(!be)return Ge?a.jsx(D,{to:"../../treasury"}):Le?a.jsx(D,{to:"../../checking"}):Re?a.jsx(D,{to:"../../cards"}):a.jsx(D,{to:"../../dashboard"});const f=w.updateStatus.fetchState==="In-Progress";if(be&&!f)return t?a.jsxs(Oe,{children:[a.jsx(H,{analytics:R,onLoad:Ne=>Se(Ne)}),a.jsx(De,{navigate:d,location:c,companyId:u,currentTenant:m,isAdmin:q,isOnAddressPage:o,themeState:y,googleAPIKey:te.googleMapsAPIKey}),s!=null?a.jsx(Pe,{windowSize:p,children:s}):null]}):a.jsx(D,{to:"../../onboarding/thankyou"})}else if(ye===!1&&x?.loggedInUserRoleMap!=null)return Z===!0?a.jsx(D,{to:"../../onboarding/thankyou"}):a.jsxs(Oe,{children:[a.jsx(H,{analytics:R,onLoad:f=>Se(f)}),a.jsx(De,{navigate:d,location:c,companyId:u,currentTenant:m,isAdmin:q,isOnAddressPage:o,themeState:y,googleAPIKey:te.googleMapsAPIKey}),s!=null?a.jsx(Pe,{windowSize:p,children:s}):null]});return null};function Ae(t,o,s){let d=`/${t}/onboarding/address`;return d=s!=null?d.concat(`/edit/${o}/${encodeURIComponent(s)}`):d.concat(`/new/${o}`),d}const Fe=fe.div`
|
|
20
|
+
display: flex;
|
|
21
|
+
height: 100vh;
|
|
22
|
+
background-color: ${t=>t.theme.colors.grey4};
|
|
23
|
+
`,je=ce(function(t,o){const{companyId:s,currentTenant:d}=o,c=he(t,s),r=Ve(t);return{hasVerifiedBankAccount:(c.paymentAccount?.providerVerificationStatus?.code?.includes("verified")??!1)||(r.bankAccountsList[0]?.providerVerificationStatus?.code?.includes("verified")??!1),isDisabled:ge(d?.userRole??[])&&c.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",signedInUser:V.getSignedInUser(),currentTenant:d,meetingUrl:"https://meetings.hubspot.com/niharn/zeni-onboarding-overview?embed=true"}},function(t,o){const{currentTenant:s,themeState:d,navigate:c,location:r}=o,{tenantEmailDomain:p}=s;return{onZeniLogoClick:()=>{d.toggle()},handleLogOutClick:()=>{const y=U(r.state?.pathnameStackToGoBack,r.pathname);c("/signout",{replace:!0,state:{pathnameStackToGoBack:y,message:"logout"}})},handleCockpitClick:()=>{window.open("/cockpit")},handleUpdatePaymentAddressDetailClick:()=>{const y=U(r.state?.pathnameStackToGoBack,r.pathname);c(`/${p}/onboarding/billing/edit`,{state:{pathnameStackToGoBack:y,message:"UpdatePaymentAddressDetail"}})}}})(Ye),vt=()=>{const t=oe(),o=ie(),s=se(),d=de(),{useFeatureGate:c}=ue(),{isFeatureEnabled:r}=c(_.isDebitCardFeatureEnabled),{tenantEmailDomain:p}=re(),y=le(),[e,n]=g.useState(!1);g.useEffect(()=>{e===!1&&s.state?.message==="OnboardingThankyou"&&n(!0)},[s.state]);const i=j(S=>Y(S)),l=i.productSettings.isOtherProductsEnabled;g.useEffect(()=>{o(Be(C,!1,!l))},[]);const C=i.companyId??V.getSignedInUserTenant(p)?.companyId;if(y.loggedInUser==null)throw Error("Can't access onboarding flow without signing in...");const T=pe(r,i),A=me(i),x=j(S=>S.onboardingCustomerViewState.updateStatus.fetchState),k=i.company?.companyOnboardingInfo.isOnboardingCompleted;return k!==!0||l?x==="Completed"&&k===!0&&l&&y?.loggedInUserRoleMap!=null?a.jsxs(Fe,{children:[a.jsx(H,{analytics:R,onLoad:S=>{S.trackPageLoaded(J.Event.onboardingLandingPage,"Onboarding",Dt(i.productSettings))}}),a.jsx(je,{navigate:t,showUpdatePaymentDetailButton:l,location:s,companyId:C,currentTenant:i,themeState:d,isVisitingFirstTime:e})]}):x==="Completed"&&k===!1&&y?.loggedInUserRoleMap!=null?a.jsxs(Fe,{children:[a.jsx(H,{analytics:R,onLoad:S=>{S.trackPageLoaded(J.Event.onboardingInterimPage)}}),a.jsx(je,{navigate:t,showUpdatePaymentDetailButton:l,location:s,companyId:C,currentTenant:i,themeState:d,isVisitingFirstTime:e})]}):a.jsx(we,{fetchState:x}):T?a.jsx(D,{to:"../../checking"}):A?a.jsx(D,{to:"../../cards"}):a.jsx(D,{to:"../../dashboard"})};function oa(){return a.jsxs(qe,{children:[a.jsx(K,{path:"/",element:a.jsx(W,{})}),a.jsx(K,{path:"/billing/edit",element:a.jsx(W,{taxCFOCustomer:!0})}),a.jsx(K,{path:"/thankyou",element:a.jsx(vt,{})}),a.jsx(K,{path:"/activation",element:a.jsx(wt,{})}),a.jsx(K,{path:"/address/edit/:addressType/:addressId",element:a.jsx(W,{isOnAddressPage:!0,appContent:a.jsx(Ce,{})})}),a.jsx(K,{path:"/address/new/:addressType",element:a.jsx(W,{isOnAddressPage:!0,appContent:a.jsx(Ce,{})})}),a.jsx(K,{path:"*",element:a.jsx(Ke,{})})]})}export{oa as default};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import{j as d}from"./liveblocks-CpSeBLzv.js";import{i as K,j as S,g as H,u as z,h as W,n as ee,k as ia,o as Ct,p as F}from"./core-DUPexJ3H.js";import{eQ as U,Le as We,bE as ca,bo as De,Mr as Pn,i7 as Fn,Ms as qt,Mt as On,ia as _t,Mu as Ze,Mv as Mn,ig as Rn,Mw as Zt,Mx as Bn,ik as St,My as Qe,Mz as jn,ck as vt,MA as Ln,MB as Un,Ly as Nn,jd as Gn,MC as Vn,bn as Xe,MD as la,L2 as ce,bc as da,jr as ua,nn as ma,ja as pa,L4 as le,L3 as J,eP as ha,eV as Yn,fr as kt,ME as $n,MF as zn,MG as fa,MH as Oe,uQ as Le,uR as Ue,vc as xe,v6 as de,uV as Ne,MI as Kn,MJ as qn,MK as Zn,ML as ga,MM as Me,MN as Qn,dD as Je,ri as ba,MO as Hn,MP as Wn,MQ as Xn,MR as At,Kr as Et,jH as we,vk as It,rq as Jn,MS as eo,uS as Qt,rl as Ie,rh as Ca,MT as ge,MU as to,MV as Tt,Kq as Dt,ti as _a,MW as ao,MX as no,MY as oo,MZ as xt,tv as so,M_ as ro,uU as Ht,th as Sa,M$ as be,N0 as io,bs as ka,vo as ya,N1 as co,N2 as lo,N3 as uo,N4 as wt,vj as mo,N5 as po,uT as Wt,vn as va,N6 as Ce,N7 as ho,N8 as fo,N9 as Aa,jw as Ea,nk as Ia,jB as Ta,ni as Da,nh as xa,ng as wa,sG as go,fh as bo,cM as Co,cN as _o,nd as So,fd as ko,nu as yo,EA as ut,Es as vo,Ew as Ao,Na as Eo,Nb as Io,Nc as To,b5 as et,f5 as Do,gS as xo,fH as wo,no as Po,j3 as Fo,nl as Oo,nj as Mo,e$ as Ro,eZ as Bo}from"./zeni-epic-state-DP595dtC.js";import{z as j,a2 as te,q as x,c as T,D as q,aV as jo,_ as Ge,x as Ve,aW as Pa,e as Y,aX as Lo,k as Se,aY as Fa,s as ke,U as R,m as Uo,aZ as No,a_ as Go,X as Oa,J as Ma,a as Ra,Z as Vo,a$ as Yo,R as $o,aN as Ba,$ as se,b0 as ja,b1 as La,a1 as Ua,b2 as zo,b3 as Ko,T as qo,aq as Zo,p as Qo,Y as Ho,b4 as Wo,b5 as Xo,b6 as Jo,b7 as es,b8 as _e}from"./index-B_Z_hpYg.js";import{n as Pt}from"./mui-BYcLUAn-.js";import{a as b}from"./sentry-BxlhxHUi.js";import{w as Na}from"./withTransactionSidePanel-DXm_Rajk.js";import{c as Ga,t as Pe,f as ue,a as Ft,v as ts}from"./routePaths-DpeDFIQv.js";import{u as ae}from"./useAskAiCfoHostNavButtonProps-D8UKtiUm.js";import je from"./NotFoundScreen-DcBza--g.js";import{u as Ot}from"./useInitialThreadRequest-hFu4tb2i.js";import{t as Va}from"./analyticsHelper-CScMfb2z.js";import{C as as}from"./CompanyPassportScreen-CG5-5eoy.js";import{u as ns}from"./useAiCfoDashboardSuggestedQuestionsChips-BK9arDN4.js";import{F as os}from"./FeaturePreviewScreen-BeSvOfyq.js";import{R as ss}from"./ReferralListScreen-Lnl80ls5.js";import"./recharts-Dp6Vlg5X.js";import"./analytics-wiEk3GGD.js";import"./plaid-DSCHiplf.js";import"./dnd-O-LDWVRl.js";import"./stripe-DMRn4zHo.js";import"./lottie-BpJoufaA.js";import"./lexical-D7D3BWIv.js";import"./pdf--1Oee4-D.js";import"./utils-BI-ymB94.js";import"./TransactionDetailScreen-DmE69GP7.js";import"./decodeURIComponentSafe-jbE9T9Sc.js";import"./MobileAppDrawer-BG5P4V6f.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]="8157ea92-8de3-4f79-9368-b8fcab4dd9db",e._sentryDebugIdIdentifier="sentry-dbid-8157ea92-8de3-4f79-9368-b8fcab4dd9db")}catch{}})();const rs=Na(function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{vendorId:o,reportDate:r}=K(),s=j.getSignedInUser(),i=S(E=>E.tenantState.currentTenantId),c=S(E=>U(E)),{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:`${te}/agingDetailedReport`,timezone:We()}),[]),h=b.useMemo(()=>r!=null?ca(r):De(),[r]),p=z(),f=W(),k=S(E=>Pn(E,h,o)),I=b.useCallback(()=>{o!=null&&k.fetchState!=="In-Progress"&&k.fetchState!=="Completed"&&p(Fn(o,h))},[h]),v=b.useCallback(()=>{f("../../",{relative:"path"})},[]),_=b.useCallback((E,L)=>{p(qt({sortKey:E,sortOrder:L}))},[]),D=b.useCallback(E=>{p(qt({downloadState:E}))},[]),w=b.useCallback(E=>{if(e)e(E.transactionId,E.transactionType);else if(m!=null){const L=Ga({id:E.transactionId,type:E.transactionType},m);f(L);const ne=x(g.state?.pathnameStackToGoBack,g.pathname);f(L,{state:{pathnameStackToGoBack:ne}})}},[m,e]),y=b.useCallback(()=>{k.vendor!=null&&T.trackApAgingDetail("AP Aging",h.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),k.vendor.id,k.vendor.name)},[k.vendor,h]);return b.useEffect(()=>{I()},[]),b.useEffect(()=>{k.fetchState==="Completed"&&y()},[y,k.fetchState]),d.jsx(jo,{apAgingDetail:k,downloadParams:l,reportDate:h,analytics:T,onTransactionClick:w,onReload:I,onBackClick:v,onColumnSortConfigChanged:_,updateDownloadStateHandler:D,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})}),is=()=>{const e=z(),a=W(),t=S(_=>On(_)),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=ae({mobileExploreReferrer:"AP Aging"});Ge({isDataReady:t.fetchState==="Completed"});const r=j.getSignedInUser(),s=S(_=>_.tenantState.currentTenantId),i=S(_=>U(_)),c=i?.companyName??"",m={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s??""},g=b.useMemo(()=>({authParams:m,companyName:c,downloadEndPoint:`${te}/agingReport`,timezone:We()}),[]),C=t.apAgingUIState.selectedDate??De(),u=b.useCallback(()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(_t(C))},[]);b.useEffect(()=>{u()},[]);const l=b.useCallback(()=>{a("../",{relative:"path"})},[]),h=b.useCallback(_=>{e(Ze({searchString:_}))},[]),p=b.useCallback((_,D)=>{e(Ze({sortKey:D,sortOrder:_}))},[]),f=b.useCallback(_=>{a(`./${_}/${C.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)},[C]),k=b.useCallback(_=>{e(Ze({downloadState:_}))},[]),I=b.useCallback((_,D)=>{},[]),v=b.useCallback((_,D)=>{e(Ze({selectedDate:_,agingDateSelectionType:D})),e(_t(_))},[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ve,{analytics:T,onLoad:_=>_.trackPageLoaded(Y.Event.agingReport,"AP Aging")}):null,d.jsx(Pa,{uiState:t.apAgingUIState,report:t,downloadParams:g,analytics:T,onReloadReport:u,onBackClick:l,onSearchTextChange:h,onSortOrderChange:p,onEntityNameClick:f,updateDownloadStateHandler:k,onSelectedDateChanged:v,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},cs=Na(function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{customerId:o,reportDate:r}=K(),s=j.getSignedInUser(),i=S(y=>U(y)),{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:`${te}/agingDetailedReport`,timezone:We()}),[]),l=b.useMemo(()=>r!=null?ca(r):De(),[r]),h=z(),p=W(),f=S(y=>Mn(y,l,o)),k=b.useCallback(()=>{o!=null&&f.fetchState!=="In-Progress"&&f.fetchState!=="Completed"&&h(Rn(o,l))},[l]),I=b.useCallback(()=>{p("../../",{relative:"path"})},[]),v=b.useCallback((y,E)=>{h(Zt({sortKey:y,sortOrder:E}))},[]),_=b.useCallback(y=>{h(Zt({downloadState:y}))},[]),D=b.useCallback(y=>{if(e)e(y.transactionId,y.transactionType);else if(c!=null){const E=Ga({id:y.transactionId,type:y.transactionType},c);p(E);const L=x(m.state?.pathnameStackToGoBack,m.pathname);p(E,{state:{pathnameStackToGoBack:L}})}},[c,e]),w=b.useCallback(()=>{f.customer!=null&&T.trackArAgingDetail("AR Aging",l.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),f.customer.id,f.customer.name)},[f.customer,l]);return b.useEffect(()=>{k()},[]),b.useEffect(()=>{f.fetchState==="Completed"&&w()},[f.fetchState,w]),d.jsx(Lo,{arAgingDetail:f,downloadParams:u,reportDate:l,analytics:T,onTransactionClick:D,onReload:k,onBackClick:I,onColumnSortConfigChanged:v,updateDownloadStateHandler:_,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})}),ls=()=>{const e=z(),a=W(),t=S(v=>Bn(v)),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=ae({mobileExploreReferrer:"AR Aging"});Ge({isDataReady:t.fetchState==="Completed"});const r=j.getSignedInUser(),s=S(v=>U(v)),i=s.companyName,c={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s.tenantId},m=b.useMemo(()=>({authParams:c,companyName:i,downloadEndPoint:`${te}/agingReport`,timezone:We()}),[]),g=t.arAgingUIState.selectedDate??De(),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(v=>{e(Qe({searchString:v}))},[]),h=b.useCallback((v,_)=>{e(Qe({sortKey:_,sortOrder:v}))},[]),p=b.useCallback(v=>{a(`./${v}/${g.format(q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)},[g]),f=b.useCallback(v=>{e(Qe({downloadState:v}))},[]),k=b.useCallback((v,_)=>{e(Qe({selectedDate:v,agingDateSelectionType:_})),e(St(v))},[]),I=b.useCallback((v,_)=>{e(jn({nodeId:v,isCollapsed:_}))},[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ve,{analytics:T,onLoad:v=>v.trackPageLoaded(Y.Event.agingReport,"AR Aging")}):null,d.jsx(Pa,{uiState:t.arAgingUIState,report:t,downloadParams:m,analytics:T,onReloadReport:C,onBackClick:u,onSearchTextChange:l,onSortOrderChange:h,onEntityNameClick:p,updateDownloadStateHandler:f,onSelectedDateChanged:k,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},Ya=(e,a)=>({key:a,title:e.accountName,amount:e.balance?.available,logoUri:e.logo?.toString(),source:e});function $a(e,a){const t=Nn(a.firstMonthOfFY);return{onItemClick:(n,o)=>{const r=o.accountName===""?o.accountDescription:o.accountName,s=Pe(a.tenantEmailDomain,o.accountId,o.accountType,r,"quarter",t,!1),i=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i,referrer:a.referrerType}})},onSetAccountsStatementDate:(n,o)=>{e(Gn(n,o))},onPromoCardBtnClick:n=>{if(a.isZeniAccountsAdmin){let o=`../../checking/${n}`;n?T.trackZeniAccountsCashBalancePromoClicked("Move Money"):(T.trackZeniAccountsCashBalancePromoClicked("Sign Up for Free"),o="../../checking/promo");const r=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(o,{state:{pathnameStackToGoBack:r}})}else T.trackZeniAccountsCashBalancePromoClicked("Learn More"),window.open("https://www.zeni.ai/product/business-checking-accounts","_blank")}}}const ds=ee(function(e){const a=Ln(e).accountsInOrder.map((n,o)=>Ya(n,o)),t=Un(e);return{sectionTitle:q.getLocalizedStrings().balanceCard.cashBalanceSectionTitle,transactionArray:a,zeniAccountsPromoCardReport:t,fetchState:e.cashBalanceState.fetchState,analytics:T}},$a)(Fa),us=ee(function(e){const a=Vn(e).accountsInOrder.map((o,r)=>Ya(o,r)),t=j.getSignedInUser(),n=Xe(t);return{sectionTitle:q.getLocalizedStrings().balanceCard.cardBalanceSectionTitle,transactionArray:a,isZeniUser:n,fetchState:e.cardBalanceState.fetchState,analytics:T}},$a)(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(je,{}):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(je,{}):d.jsx(us,{tenantEmailDomain:t,location:a,referrerType:"Card Balance",navigate:e,isZeniAccountsAdmin:o,firstMonthOfFY:r})}const hs=Pt.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=Pt.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=Uo();return d.jsxs(hs,{children:[d.jsx(No,{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(le({searchString:C,searchOrigin:"navbar"})):C.trim().length===0&&i(J("navbar"))},onAutoCompleteEntity:C=>{n!=null&&T?.trackSearch(Y.Event.search,bs(a),C.type,C.name,n);const u=ue(C,m),l=x(c.state?.pathnameStackToGoBack,c.pathname);s(u,{state:{pathnameStackToGoBack:l}})}}},rightSideComponent:d.jsx(Go,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r})}),d.jsx(fs,{children:a==="cash_balance"?d.jsx(ms,{}):d.jsx(ps,{})})]})}function Xt(){const e=H(),a=z(),{useFeatureGate:t}=ke(),{isFeatureEnabled:n}=t(R.isDepositAccountsFeatureEnabled),o=S(p=>p.cashBalanceState.fetchState),r=S(p=>p.cardBalanceState.fetchState),s=j.getSignedInUser();if(s==null)throw Error("Can't access dashboard detail without signing in...");const i=la((p=>{const f=da(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}=ae({mobileExploreReferrer:i==="card_balance"?"Card Balance":"Cash Balance"});Ge({isDataReady:c==="Completed"});const l=S(p=>p.entityAutoCompleteState.autoCompleteText.navbar),h=S(p=>ce(p,"navbar"));return b.useEffect(()=>{c==="Not-Started"&&function(p,f,k){switch(f){case"card_balance":p(pa());break;case"cash_balance":p(ua()),k===!0&&p(ma());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(Ve,{analytics:T,onLoad:p=>((f,k)=>{switch(k){case"card_balance":f.trackPageLoaded(Y.Event.cardBalance);break;case"cash_balance":f.trackPageLoaded(Y.Event.cashBalance);break;default:console.error(`Analytics: Not tracking Page Loaded for ${k}!`)}})(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 Ye(e){const{mobileExploreReferrer:a}=e,t=z(),n=W(),o=H(),{tenantEmailDomain:r}=K(),{setIsAiCfoOpen:s,setAiCfoSidePanelQuestionToSubmit:i}=Oa(),c=Ma(),m=Ua(c),g=ia(),C=S(O=>O.tenantState.fetchState==="Completed"||O.tenantState.activeTenantFetchState.fetchState==="Completed"?U(O):void 0),u=C?.masterTOSInfo?.isMasterTOSAccepted??!1,l=S(O=>ha(O)),h=l.uiState?.currentChatSessionId,p=l.allSessionsWithOrderedQuestionAnswers??Cs,f=j.getSignedInUser()?.userId,k=Ra(),I=Vo()&&k&&r!=null,v=Yo(),_=$o(!0),D=S(O=>v!=null?Yn(O,v):void 0),{useDynamicConfig:w}=ke(),{configValue:y}=w(Ba.aiCfoMessageDynamicConfig),E=b.useMemo(()=>Array.isArray(y.default_message_list)?y.default_message_list:[],[y.default_message_list]),L=b.useMemo(()=>E.slice(0,2),[E]),ne=v!=null&&D!=null&&D.fetchState!=="Completed"&&D.fetchState!=="Error"&&(_||D.fetchState==="In-Progress"),ze=b.useMemo(()=>{if(v==null||D?.fetchState==="Error")return L;if(ne)return[];const O=(D?.suggestedQuestions??[]).map(oe=>oe.trim()).filter(oe=>oe.length>0).slice(0,2);return O.length===0?L:O},[L,ne,v,D?.fetchState,D?.suggestedQuestions]),me=b.useCallback((O,oe)=>{if(f==null||O.trim()==="")return;if(!u)return void se({location:o,navigate:n,mergeState:{referrer:a}});const Fe=ja(g.getState());if(m){const qe=x(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:qe,referrer:a,aiCfoInitialQuestion:O,aiCfoShouldSubmit:!Fe}})}else{if(Fe)return t(kt(O)),void s(!0);i(O),s(!0),La(t,O,"insights_section",h,p,f,oe,void 0)}},[p,h,t,u,m,o,a,n,s,i,g,r,f]),Ke=b.useCallback(()=>{if(u)if(m){const O=x(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:O,referrer:a}})}else s(!0);else se({location:o,navigate:n,mergeState:{referrer:a}})},[u,m,o,a,n,s,r]);return b.useMemo(()=>{if(I)return{isSuggestedQuestionsLoading:ne,onAskSomethingElseClick:Ke,onSuggestedQuestionClick:me,suggestedQuestions:ze}},[I,ne,Ke,me,ze])}const $e=zo,_s=ee(function(e){const a=$n(e),t=zn(e),n=fa(e),{scrollPosition:o,...r}=n,s=q.getLocalizedStrings().reportTitleById.cash_in_cash_out,i=j.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=ce(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:g,statementEndPoint:`${te}/statement`,authParams:C},analytics:T,autoCompleteData:{autoCompleteText:u,entityAutoCompleteView:l}}},function(e,a){return{updateDownloadStateHandler:t=>{e(Kn(t))},onTimeframeSelectionChanged:()=>{},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(Oe({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(xe("month")),e(de(a.firstMonthOfFY,t)),e(Oe({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Le(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Ue(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout(()=>e(Oe({resetLeftScroll:!0})),50)},onElementCollapseStateChanged:(t,n)=>{e(Oe({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(Oe({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(le({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(J("navbar"))},onAutoCompleteEntity:t=>{const n=ue(t,a.tenantEmailDomain),o=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}})($e),Ss=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r}=ae({mobileExploreReferrer:"DashboardCashInCashOut"}),s=Ye({mobileExploreReferrer:"DashboardCashInCashOut"}),i=S(c=>fa(c)).mode==="compare_mode";return d.jsx(_s,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:i,navigate:n,insightsSectionAiCfoInfo:s,isAiCfoAccessEnabled:o,onAskAiCfoClick:r})},ks=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=ee(function(e){const a=qn(e),t=Zn(e),n=ga(e),{scrollPosition:o,...r}=n,s=q.getLocalizedStrings().reportTitleById.cash_position,i=j.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=ce(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:g,statementEndPoint:`${te}/statement`,authParams:C},analytics:T,autoCompleteData:{autoCompleteText:u,entityAutoCompleteView:l}}},function(e,a){return{updateDownloadStateHandler:t=>{e(Qn(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout(()=>e(Me({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(Me({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(de(a.firstMonthOfFY,t)),e(Me({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Le(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Ue(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout(()=>e(Me({resetLeftScroll:!0})),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=ks(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Pe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:c,referrer:"Cash Position"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(le({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(J("navbar"))},onAutoCompleteEntity:t=>{const n=ue(t,a.tenantEmailDomain),o=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onTableScroll:t=>{e(Me({scrollPosition:t}))},onBackClick:()=>{a.navigate("../")}}})($e),vs=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r}=ae({mobileExploreReferrer:"DashboardCashPosition"}),s=Ye({mobileExploreReferrer:"DashboardCashPosition"}),i=S(c=>ga(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(F,{path:"/",element:d.jsx(re,{})}),d.jsx(F,{path:"/:forecastId",element:d.jsx(re,{})}),d.jsx(F,{path:"/:forecastId/*",element:d.jsx(je,{})})]})}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}},Es=ee(function(e){const a=ba(e),t=Hn(e),n=Wn(e),o=Xn(e),r=At(e),{scrollPosition:s,...i}=r,c=t.reportTitle,m=j.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=ce(e,"navbar"),f=Et(C);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,reportLabels:{reportTitle:c},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,uiState:i,scrollPosition:s,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${te}/statement`,authParams:l},analytics:T,isZeniUser:Xe(m),autoCompleteData:{autoCompleteText:h,entityAutoCompleteView:p},isZeniCOAUsed:f,isAccountingClassesEnabled:we(e)}},function(e,a){return{updateDownloadStateHandler:t=>{e(to(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout(()=>e(ge({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(ge({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(de(a.firstMonthOfFY,t)),e(ge({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Le(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Ue(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?Ft(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Pe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=x(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(le({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(J("navbar"))},onAutoCompleteEntity:t=>{const n=ue(t,a.tenantEmailDomain),o=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?Te:Mt,n)),t==="forecast_mode"?(e(Qt({viewMode:"account_group"})),e(Ca(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(ge({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":"Accounts","Burn Rate"),e(Qt({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(eo({classesToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(Jn())},onResyncReports:()=>{e(It("net_burn_or_income_by_classes"))}}})($e),Is=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,{isAiCfoAccessEnabled:s,onAskAiCfoClick:i}=ae({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),c=Ye({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),m=S(y=>At(y)),g=m.isForecastModeOn,C=m.timeframe,u=m.selectedForecast?.id,l=S(y=>Tt(y.forecastState,u??"")),h=S(y=>ba(y)),p=S(y=>Dt(y)),f=S(y=>we(y)),k=m.mode==="compare_mode",I=h.dataAvailable;b.useEffect(()=>{if(u!=null&&g===!0&&($(g,r,u,o),l!=null)){const y=l?.forecastPeriod,E=I!=null&&y.endDate.isAfter(I?.endDate)===!0?I:y;a(de(e.firstMonthOfFY,{startDate:E.endDate.startOf(C),endDate:E?.endDate}))}},[u]);const v=Se(),{useFeatureGate:_}=ke(),{isFeatureEnabled:D}=_(R.isReportsCommentingEnabled),w=Ot(D?v?.currentTenant?.companyId:void 0,{clearParams:h.fetchState==="Completed"});return d.jsx(Es,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,forecastIdFromUrlPath:r,location:n,isAccountingClassesEnabled:f,isCompareModeOn:k,navigate:o,analytics:T,reportsResyncFetchState:p.reportsResyncFetchState,insightsSectionAiCfoInfo:c,isAiCfoAccessEnabled:s,onAskAiCfoClick:i,initialOpenThreadRequest:w,isReportsCommentingEnabled:D})},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}},Ds=ee(function(e){const a=_a(e),t=ao(e),n=no(e),o=oo(e),r=xt(e),{scrollPosition:s,...i}=r,c=q.getLocalizedStrings().reportTitleById.operating_expenses,m=j.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=ce(e,"navbar"),f=Et(C);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,reportLabels:{reportTitle:c},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,uiState:i,scrollPosition:s,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${te}/statement`,authParams:l},analytics:T,isZeniUser:Xe(m),autoCompleteData:{autoCompleteText:h,entityAutoCompleteView:p},isZeniCOAUsed:f,isAccountingClassesEnabled:we(e)}},function(e,a){return{updateDownloadStateHandler:t=>{e(io(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout(()=>e(be({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(be({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(de(a.firstMonthOfFY,t)),e(be({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Le(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Ue(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?Ft(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Pe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=x(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(le({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(J("navbar"))},onAutoCompleteEntity:t=>{const n=ue(t,a.tenantEmailDomain),o=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?Te:Mt,n)),t=="forecast_mode"?(e(Ht({viewMode:"account_group"})),e(Sa(!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(Ht({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(ro({classesToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(so())},onResyncReports:()=>{e(It("operating_expenses_by_classes"))}}})($e),xs=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,{isAiCfoAccessEnabled:s,onAskAiCfoClick:i}=ae({mobileExploreReferrer:"DashboardOpEx"}),c=Ye({mobileExploreReferrer:"DashboardOpEx"}),m=S(E=>xt(E)),g=m.isForecastModeOn,C=m.timeframe,u=m.selectedForecast?.id,l=S(E=>Tt(E.forecastState,u??"")),h=S(E=>_a(E)),p=S(E=>Dt(E)),f=S(E=>we(E)),k=m.mode==="compare_mode",I=h.dataAvailable;b.useEffect(()=>{if(u!=null&&g===!0&&($(g,r,u,o),l!=null)){const E=l?.forecastPeriod,L=I!=null&&E.endDate.isAfter(I?.endDate)===!0?I:E;a(de(e.firstMonthOfFY,{startDate:L.endDate.startOf(C),endDate:L?.endDate}))}},[u]);const v=Se(),_=v?.loggedInUserRole!=null&&ka(v?.loggedInUserRole)!==!0,{useFeatureGate:D}=ke(),{isFeatureEnabled:w}=D(R.isReportsCommentingEnabled),y=Ot(w?v?.currentTenant?.companyId:void 0,{clearParams:h.fetchState==="Completed"});return d.jsx(Ds,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,location:n,isAccountingClassesEnabled:f,isCompareModeOn:k,navigate:o,forecastIdFromUrlPath:r,analytics:T,hasTransactionAccess:_,reportsResyncFetchState:p.reportsResyncFetchState,insightsSectionAiCfoInfo:c,isAiCfoAccessEnabled:s,onAskAiCfoClick:i,initialOpenThreadRequest:y,isReportsCommentingEnabled:w})},ws=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}},Ps=ee(function(e){const a=ya(e),t=co(e),n=lo(e),o=uo(e),r=wt(e),{scrollPosition:s,...i}=r,c=q.getLocalizedStrings().reportTitleById.revenue,m=j.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=ce(e,"navbar"),f=Et(C);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,reportLabels:{reportTitle:c},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,uiState:i,scrollPosition:s,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${te}/statement`,authParams:l},analytics:T,isZeniUser:Xe(m),autoCompleteData:{autoCompleteText:h,entityAutoCompleteView:p},isZeniCOAUsed:f,isAccountingClassesEnabled:we(e)}},function(e,a){return{updateDownloadStateHandler:t=>{e(ho(t))},onTimeframeSelectionChanged:t=>{e(xe(t)),setTimeout(()=>e(Ce({resetLeftScroll:!0})),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ne(t,n)),e(Ce({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(de(a.firstMonthOfFY,t)),e(Ce({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Le(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Ue(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}=ws(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Ft(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Pe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=x(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(le({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(J("navbar"))},onAutoCompleteEntity:t=>{const n=ue(t,a.tenantEmailDomain),o=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?Te:Mt,n)),t==="forecast_mode"?(e(Wt({viewMode:"account_group"})),e(va(!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(Wt({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(po({classesToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(mo())},onResyncReports:()=>{e(It("revenue_by_classes"))}}})($e),Fs=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,{isAiCfoAccessEnabled:s,onAskAiCfoClick:i}=ae({mobileExploreReferrer:"DashboardRevenue"}),c=Ye({mobileExploreReferrer:"DashboardRevenue"}),m=S(y=>wt(y)),g=m.isForecastModeOn,C=m.timeframe,u=m.selectedForecast?.id,l=S(y=>Tt(y.forecastState,u??"")),h=S(y=>ya(y)),p=h.dataAvailable,f=m.mode==="compare_mode",k=S(y=>we(y)),I=S(y=>Dt(y));b.useEffect(()=>{if(u!=null&&g===!0&&($(g,r,u,o),l!=null)){const y=l?.forecastPeriod,E=p!=null&&y.endDate.isAfter(p?.endDate)===!0?p:y;a(de(e.firstMonthOfFY,{startDate:E.endDate.startOf(C),endDate:E?.endDate}))}},[u]);const v=Se(),{useFeatureGate:_}=ke(),{isFeatureEnabled:D}=_(R.isReportsCommentingEnabled),w=Ot(D?v?.currentTenant?.companyId:void 0,{clearParams:h.fetchState==="Completed"});return d.jsx(Ps,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,isAccountingClassesEnabled:k,isCompareModeOn:f,location:n,navigate:o,forecastIdFromUrlPath:r,analytics:T,reportsResyncFetchState:I.reportsResyncFetchState,insightsSectionAiCfoInfo:c,isAiCfoAccessEnabled:s,onAskAiCfoClick:i,initialOpenThreadRequest:w,isReportsCommentingEnabled:D})},Os=e=>{let a,t;if(e.endDate!=null)switch(e.timePeriod){case"this_month_to_date":case"last_month":case"this_week_to_date":case"last_week":a="month",t={startDate:e.endDate.startOf("month"),endDate:e.endDate};break;case"last_3_months":case"last_6_months":case"last_12_months":case"this_year_to_date":case"last_year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;default:console.error(`this timeperiod ${e.timePeriod} is not supported!`)}return{timeframe:a,timePeriod:t}},Ms=ee(function(e){const a=fo(e),t=e.entityAutoCompleteState.autoCompleteText.navbar,n=ce(e,"navbar");return{report:a,analytics:T,autoCompleteData:{autoCompleteText:t,entityAutoCompleteView:n}}},function(e,a){return{onTimeframeSelectionChanged:t=>{T.trackTimeframeSwitch(Va(t),"Top Expenses"),e(Aa(t))},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Os(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Pe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),c=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:c,referrer:"Top Expenses"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(le({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(J("navbar"))},onAutoCompleteEntity:t=>{const n=ue(t,a.tenantEmailDomain),o=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}})(Ko),Rs=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e;return d.jsx(Ms,{tenantEmailDomain:a,location:t,navigate:n})},Bs=Pt.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,Mt=1;function js({fetchState:e,firstMonthOfFY:a,reportId:t,forecastId:n}){const o=W(),r=H(),{tenantEmailDomain:s}=K();let i;Ge({isDataReady:!0});const c={firstMonthOfFY:a,tenantEmailDomain:s,location:r,navigate:o,forecastIdFromUrlPath:n,fetchState:e};switch(t){case"operating_expenses":i=d.jsx(xs,{...c});break;case"revenue":i=d.jsx(Fs,{...c});break;case"net_burn_or_income":i=d.jsx(Is,{...c});break;case"cash_position":i=d.jsx(vs,{...c});break;case"top_expenses":i=d.jsx(Rs,{...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(Bs,{children:i}):null}function re(){const e=H(),a=z(),{forecastId:t}=K();let n="Not-Started";const o=S(l=>xt(l).fetchState),r=S(l=>wt(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(j.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=la((l=>{const h=da(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(Ie(p,!0,Te,{id:f,index:0})),l(Sa(!1,f)));break;case"revenue":l(xa(!0)),f!=null&&(l(Ie(p,!0,Te,{id:f,index:0})),l(va(!1,f)));break;case"net_burn_or_income":l(Da(!0)),f!=null&&(l(Ie(p,!0,Te,{id:f,index:0})),l(Ca(!1,f)));break;case"cash_position":l(Ta(!0));break;case"top_expenses":l(Ia());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(Ve,{analytics:T,onLoad:l=>((h,p)=>{const f=e.state?.referrer;switch(p){case"operating_expenses":h.trackPageLoaded(Y.Event.operatingExpenses,f);break;case"revenue":h.trackPageLoaded(Y.Event.revenues,f);break;case"net_burn_or_income":h.trackPageLoaded(Y.Event.burnRate,f);break;case"cash_position":h.trackPageLoaded(Y.Event.cashPosition,f);break;case"top_expenses":h.trackPageLoaded(Y.Event.topExpenses,f);break;case"cash_in_cash_out":h.trackPageLoaded(Y.Event.cashInCashOut,f);break;default:console.error(`Analytics: Not tracking Page Loaded for ${p}!`)}})(l,u)}):null,d.jsx(js,{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 za(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 Ka(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 Rt={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},ie={"⇧":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},B={16:!1,18:!1,17:!1,91:!1},M={},He=1;He<20;He++)Rt["f".concat(He)]=111+He;var P=[],Jt=!1,qa="all",ea=[],tt=function(e){return Rt[e.toLowerCase()]||ie[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function ta(e){qa=e||"all"}function Be(){return qa||"all"}var ft=function(e){var a=e.key,t=e.scope,n=e.method,o=e.splitKey,r=o===void 0?"+":o;Ka(a).forEach(function(s){var i=s.split(r),c=i.length,m=i[c-1],g=m==="*"?"*":tt(m);if(M[g]){t||(t=Be());var C=c>1?za(ie,i):[];M[g]=M[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,k=!0,I=0;I<p.length;I++)f.indexOf(p[I])===-1&&(k=!1);return k}(u.mods,C))})}})};function aa(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,B)Object.prototype.hasOwnProperty.call(B,r)&&(!B[r]&&a.mods.indexOf(+r)>-1||B[r]&&a.mods.indexOf(+r)===-1)&&(o=!1);(a.mods.length!==0||B[16]||B[18]||B[17]||B[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 na(e,a){var t=M["*"],n=e.keyCode||e.which||e.charCode;if(N.filter.call(this,e)){if(n!==93&&n!==224||(n=91),P.indexOf(n)===-1&&n!==229&&P.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach(function(h){var p=yt[h];e[h]&&P.indexOf(p)===-1?P.push(p):!e[h]&&P.indexOf(p)>-1?P.splice(P.indexOf(p),1):h==="metaKey"&&e[h]&&P.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(P=P.slice(P.indexOf(p))))}),n in B){for(var o in B[n]=!0,ie)ie[o]===n&&(N[o]=!0);if(!t)return}for(var r in B)Object.prototype.hasOwnProperty.call(B,r)&&(B[r]=e[yt[r]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(P.indexOf(17)===-1&&P.push(17),P.indexOf(18)===-1&&P.push(18),B[17]=!0,B[18]=!0);var s=Be();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)&&aa(e,t[i],s,a);if(n in M){for(var c=0;c<M[n].length;c++)if((e.type==="keydown"&&M[n][c].keydown||e.type==="keyup"&&M[n][c].keyup)&&M[n][c].key){for(var m=M[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("")===P.sort().join("")&&aa(e,m,s,a)}}}}function N(e,a,t){P=[];var n=Ka(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=za(ie,e)),(e=(e=e[e.length-1])==="*"?"*":tt(e))in M||(M[e]=[]),M[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 ea.indexOf(u)>-1}(s)&&window&&(ea.push(s),ht(s,"keydown",function(u){na(u,s)},C),Jt||(Jt=!0,ht(window,"focus",function(){P=[]},C)),ht(s,"keyup",function(u){na(u,s),function(l){var h=l.keyCode||l.which||l.charCode,p=P.indexOf(h);if(p>=0&&P.splice(p,1),l.key&&l.key.toLowerCase()==="meta"&&P.splice(0,P.length),h!==93&&h!==224||(h=91),h in B)for(var f in B[h]=!1,ie)ie[f]===h&&(N[f]=!1)}(u)},C))}var gt={setScope:ta,getScope:Be,deleteScope:function(e,a){var t,n;for(var o in e||(e=Be()),M)if(Object.prototype.hasOwnProperty.call(M,o))for(t=M[o],n=0;n<t.length;)t[n].scope===e?t.splice(n,1):n++;Be()===e&&ta(a||"all")},getPressedKeyCodes:function(){return P.slice(0)},isPressed:function(e){return typeof e=="string"&&(e=tt(e)),P.indexOf(e)!==-1},filter:function(e){var a=e.target||e.srcElement,t=a.tagName,n=!0;return!a.isContentEditable&&(t!=="INPUT"&&t!=="TEXTAREA"&&t!=="SELECT"||a.readOnly)||(n=!1),n},trigger:function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(M).forEach(function(t){var n=M[t].find(function(o){return o.scope===a&&o.shortcut===e});n&&n.method&&n.method()})},unbind:function(e){if(e===void 0)Object.keys(M).forEach(function(s){return delete M[s]});else if(Array.isArray(e))e.forEach(function(s){s.key&&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:Rt,modifier:ie,modifierMap:yt};for(var bt in gt)Object.prototype.hasOwnProperty.call(gt,bt)&&(N[bt]=gt[bt]);if(typeof window<"u"){var Ls=window.hotkeys;N.noConflict=function(e){return e&&window.hotkeys===N&&(window.hotkeys=Ls),N},window.hotkeys=N}N.filter=function(){return!0};var oa=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(k,I){var v,_;return s&&!s(k)?!g:!!(oa(k,["INPUT","TEXTAREA","SELECT"])&&!oa(k,r)||(v=k.target)!=null&&v.isContentEditable&&!h)||!!(p.current===null||document.activeElement===p.current||(_=p.current)!=null&&_.contains(document.activeElement))&&(a(k,I),!0)},n?[p,r,s].concat(n):[p,r,s]);return b.useEffect(function(){if(u)return i&&c!==!0&&(t.keydown=!1),N(e,t||{},f),function(){return N.unbind(e,f)};N.unbind(e,f)},[f,e,u]),p}N.isPressed;const Ns=[],sa="dashboard_card",X="ai_cfo_dashboard_card";function ra(e,a){return a?e.some(t=>String(t)===X)?e.slice():[X,...e]:e.filter(t=>String(t)!==X)}const Gs=["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"],Vs=(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}),Re=(e,a,t,n,o)=>({card:{dimension:et(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e}),Ys=(e,a,t,n)=>Re(void 0,e,_e,a,t),$s=(e,a,t,n,o)=>({card:{dimension:et(_e),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(_e);return a.height=_e.height+10,{card:{dimension:a,cardType:X,cardIndex:e,fetchState:"Completed",disableAnimations:!1,spansFullDashboardWidth:!0}}},Ks=ee(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 Ys(t,u,l);if(u==="zeni_promo_card")return Re({isExpressedInterest:r,creditLimit:s,cashbackRate:i,fetchState:"Completed"},a.cardBalanceFetchState,_e,u,l);if(u==="treasury_promo_card")return $s(g,u,l,c,m);if(u==="information_card")return Re(void 0,"Completed",_e,u,l);if(u===X)return zs(l);{const h=o.find(p=>p?.reportId===u);return h?function(p,f,k,I){const v=p.reportId;switch(v){case"card_balance":case"cash_balance":return[Vs(p,f,k,v,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[Re(p,f,k,v,I)];case"net_burn_or_income_story_card":return[Re(p,f,k,"net_burn_or_income_story_card",I)];default:return console.error(`card type ${v} not yet supported!`),[]}}(h,h.fetchState,_e,l):[]}}).flat();return a.isSummaryCardsFiltered===!0&&(C=C.filter(u=>Gs.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:ce(e,"navbar")},analytics:T,isReimbursementEnabled:a.isReimbursementEnabled,isBillPayEnabled:a.isBillPayEnabled}},function(e,a){const t=a.tenantId,n=j.getSignedInUser();return{cardActions:{onCardClick:(o,r,s,i)=>{if(console.warn(`onCardClick at ${o} for the type ${r}`),r==="zeni_promo_card"&&i!=null)T.trackDashboardCardClicked("cards promo",2),T.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&&T.trackDashboardCardClicked("rewards promo",o+1),a.navigate("../../rewards/refer",{state:{referrer:s}})):r==="expense_automation_card"?(T.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!==X)switch(c){case"card_balance":i(pa());break;case"cash_balance":i(ua());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(Mo(!0));break;case"cash_position":i(Ta(!0));break;case"top_expenses":i(Ia());break;case"cash_in_cash_out":i(Ea());break;case"insights_dashboard":i(Oo());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(_t(De()));break;case"accounts_receivable_aging":i(St(De()));break;case"zeni_accounts_promo_card":g.includes("zeni_accounts_promo_card")===!1&&i(ma());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)=>{T.trackTimeframeSwitch(Va(r),Zs(o),"Dashboard"),function(s,i,c){switch(i){case"operating_expenses":case"revenue":case"net_burn_or_income":case"cash_position":s(xe(c));break;case"top_expenses":s(Aa(c));break;default:throw new Error(`report type ${i} doesn't support changeTimeframe`)}}(e,o,r)},onUpdateSelectedInsightIndex:o=>{e(To(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=x(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=x(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=x(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){j.saveTreasuryPopupSeen(a.tenantEmailDomain,!0);const s="../treasury",i=x(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"&&(T.trackUpdateBurnRateCalculatorSettings(r,s,Eo(s)),e(Io(t,r,s)))},onVideoPlay:()=>{e(ut())},onRemindMeLaterClick:()=>{e(Ao())},onDontShowAgainClick:()=>{e(ut())},onIntroOutsideClick:()=>{a.isTreasuryPromoIntroClosedByOutsideClick===!0&&a.isTreasuryPromoVideoPlayed!==!0?e(ut()):e(vo())}},autoCompleteActions:{onAutoCompleteInputChange:o=>{o.trim().length>=2?e(le({searchString:o,searchOrigin:"navbar"})):o.trim().length===0&&e(J("navbar"))},onCancelAutoComplete:()=>{e(J("navbar"))},onAutoCompleteEntity:o=>{let r="";r=o.type!=="vendor"||o.detailType!=="bank_merchant"&&o.detailType!=="card_merchant"?ue(o,a.tenantEmailDomain):ts(o.zeniId,o.qboId,a.tenantEmailDomain);const s=x(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s,referrer:"Search"}})}}}})(es);function qs(){const e=ia(),a=Ma(),t=Ua(a),{isAiCfoOpen:n,setIsAiCfoOpen:o,setAiCfoSidePanelQuestionToSubmit:r}=Oa(),s=W(),i=z(),c=H(),m=j.getSignedInUser(),{useFeatureGate:g,useDynamicConfig:C}=ke(),[u,l]=b.useState(!1),[h,p]=b.useState(!1),f=Ra(),{tenantEmailDomain:k}=K(),{isAiCfoAccessEnabled:I,onAskAiCfoClick:v}=ae({mobileExploreReferrer:"Dashboard"}),_=S(A=>A.tenantState.fetchState==="Completed"||A.tenantState.activeTenantFetchState.fetchState==="Completed"?U(A):void 0),D=_??j.getSignedInUserTenant(k),w=_?.masterTOSInfo?.isMasterTOSAccepted??!1,y=D.tenantId,E=D.companyId;b.useEffect(()=>{u===!1&&c.state?.message==="activation"&&(i(go(E)),l(!0))},[c.state,u,E,i]),b.useEffect(()=>{f&&!h&&c.state?.message==="open_ai_cfo_drawer"&&(p(!0),w?(o(!0),s({pathname:c.pathname,search:c.search,hash:c.hash},{replace:!0,state:{...c.state,message:void 0}})):se({location:c,navigate:s,mergeState:{referrer:"Dashboard",message:void 0}}))},[c,h,f,w,o,s]);const{isFeatureEnabled:L}=g(R.isApAgingFeatureEnabled),{isFeatureEnabled:ne}=g(R.isExpenseAutomationEnabled),{isFeatureEnabled:ze}=g(R.isExpenseAutomationEnabledV2),me=qo(),{isFeatureEnabled:Ke}=g(R.isTreasuryEnabled),O=Zo(me),{isFeatureEnabled:oe}=g(R.isArAgingFeatureEnabled),{isFeatureEnabled:Fe}=g(R.isDepositAccountsFeatureEnabled),{isFeatureEnabled:qe}=g(R.isReferralFeatureEnabled),{isFeatureEnabled:Za}=g(R.isChargeCardFeatureEnabled),{isFeatureEnabled:Qa}=g(R.isAiCfoFileUploadEnabled),{isFeatureEnabled:Ha}=g(R.isDashboardSidebarChristmasAnimationEnabled),{isFeatureEnabled:Wa}=g(R.isDashboardSidebarNewYearAnimationEnabled),{isFeatureEnabled:Xa}=g(R.aiAuditScorePercentage),{configValue:Bt}=C(Ba.zeniCardsConfig),Ja=Bt.charge_card_cashback_rate_per_transaction==null?.0175:Bt.charge_card_cashback_rate_per_transaction;if(c.state?.message==="activation"){const A=Qo(c.state?.pathnameStackToGoBack);s(c.pathname,{state:{...c.state,message:void 0,pathnameStackToGoBack:A.newStack}})}const[jt,en]=b.useState(!1),[at,tn]=b.useState(!1);Us("command+p, Control+p",A=>{tn(!at),A.preventDefault()},{enableOnContentEditable:!0,enableOnTags:["INPUT","SELECT","TEXTAREA"]},[at]);const Lt=_?.externalConnections?.accounting[0]?.isValid;if(m==null)throw Error("Can't access dashboard without signing in...");const pe=S(A=>U(A)?.excludedResources),an=S(A=>A.expenseAutomationViewState.selectedPeriodByTenantId),nn=!!_?.companyReimbursementInfo?.info?.isReimbursementEnabled,on=!!_?.companyBillPayInfo?.info?.isBillPayEnabled,sn=S(A=>A.treasurySetupViewState.treasuryFundsDetails).fetchStatus.fetchState,rn=_?.company!=null&&bo(_.company),nt=Ke&&rn,ot=Se(),cn=vt(ot?.loggedInUserRoleMap),G=[],Ut=pe?.resources?.find(A=>A.resource==="/reports/top_expenses")==null,ln=pe?.resources?.find(A=>A.resource==="/reports/task_card")==null,st=_?.userRole!=null&&ka(_?.userRole),dn=pe?.resources?.find(A=>A.resource==="/bills")==null&&!st,un=pe?.resources?.find(A=>A.resource==="/reimbursements")==null,mn=Co(ot?.loggedInUserRoleMap),pn=_o(ot?.loggedInUserRoleMap),hn=_?.company?.companyChargeCardInfo?.chargeCardsCreditAccountLimit??0,fn=_?.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1,gn=S(A=>A.treasurySetupViewState.treasuryFundsDetails).fundsDetails;Ut===!1&&G.push("top_expenses"),ln===!1&&G.push("task_card"),dn===!1&&G.push("bill_pay_card","bill_pay_promo_card"),L===!1&&G.push("accounts_payable_aging"),oe===!1&&G.push("accounts_receivable_aging"),(me===!1||st)&&G.push("expense_automation_card"),un===!1&&G.push("reimbursement_card","reimbursement_promo_card"),Fe===!1&&G.push("zeni_accounts_promo_card"),qe===!1&&G.push("rewards_card"),nt===!1&&G.push("treasury_promo_card");const{areTenantIdsInSync:Nt}=Ho();b.useLayoutEffect(()=>{jt&&O===me||Lt!==!0||!Nt||pe?.fetchState!=="Completed"&&pe?.fetchState!=="Error"||(en(!0),i(So(m.userId,E,y,!0,!1,G)))},[jt,m,y,i,Ut,Lt,pe?.fetchState,Nt]);const bn=S(A=>A.reportUIOptionsState.forecastOnDashboard.isForecastModeOn),Cn=S(A=>A.revenueState.uiState.selectedForecast?.id),_n=S(A=>A.cardBalanceState.fetchState),he=S(A=>ko(A,G,m,ze,ne,nt)),Sn=he.fetchState,kn=b.useMemo(()=>ra(he.cardsOrdered,I),[he.cardsOrdered,I]),yn=b.useMemo(()=>ra(he.cardsForDashboardUI,I),[he.cardsForDashboardUI,I]);Ge({isDataReady:!0});const{isSuggestedQuestionsLoading:vn,suggestedPromptQuestions:An}=ns(),rt=_?.isTreasuryPromoVideoPlayed===!0,Gt=_?.isTreasuryPromoVideoRemindMeLaterClicked===!0,Vt=_?.loginCounterForTreasuryPromoVideo??0,En=_?.isTreasuryPromoIntroClosedByOutsideClick===!0,Yt=S(A=>A.dashboardState.isTreasuryVideoClosed),$t=b.useMemo(()=>Wo({isTreasuryPromoVideoRemindMeLaterClicked:Gt,isTreasuryPromoVideoPlayed:rt,loginCounterForTreasuryPromoVideo:Vt,isTreasuryVideoClosed:Yt}),[Gt,rt,Vt,Yt]),zt=S(A=>ha(A)),ye=zt.uiState?.currentChatSessionId,it=zt.allSessionsWithOrderedQuestionAnswers??Ns,{currentSessionQuestionAnswers:In}=Xo(it,ye),Kt=In.length===0,Tn=b.useCallback((A,Z,fe)=>{const ve=m?.userId;if(ve==null)return;const V=A.trim();if(V.length===0&&Z.length===0)return;if(!w)return void se({location:c,navigate:s,mergeState:{referrer:"Dashboard"}});const Q=ja(e.getState()),Ae=()=>{const Ee=x(c.state?.pathnameStackToGoBack,c.pathname);s(`/${k}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Ee,referrer:"Dashboard",aiCfoInitialQuestion:V,aiCfoShouldSubmit:!Q&&V.length>0,aiCfoInitialSubmissionSource:sa,...typeof fe=="number"?{aiCfoSuggestionIndex:fe}:{}}})};return t?Z.length>0?void o(!0):void Ae():Z.length>0?Q?(i(kt(V)),void o(!0)):(r(V.length>0?V:null),o(!0),void(V.length>0&&La(i,V,sa,ye,it,ve,fe,Z.length>0?Z:void 0))):(Q&&i(kt(V)),void Ae())},[it,ye,i,w,t,c,s,r,o,m?.userId,e,k]),Dn=b.useCallback(()=>{w?o(!0):se({location:c,navigate:s,mergeState:{referrer:"Dashboard"}})},[w,c,s,o]),xn=b.useCallback(()=>{if(!w)return void se({location:c,navigate:s,mergeState:{referrer:"Dashboard"}});if(k==null)return;const A=x(c.state?.pathnameStackToGoBack,c.pathname);s(`/${k}/ai-cfo/explore`,{state:{pathnameStackToGoBack:A,referrer:"Dashboard"}})},[w,c,s,k]),wn=b.useCallback(()=>{if(w)if(t){if(k==null||_==null)return;const A=ye==null||Kt?`/${k}/ai-cfo/explore`:`/${k}/ai-cfo/${ye}`,Z=c.state?.pathnameStackToGoBack??[],fe=x(Z,c.pathname);s(A,{state:{...c.state,pathnameStackToGoBack:fe,[Jo]:!0}})}else se({location:c,navigate:s,mergeState:{referrer:"Dashboard"}});else se({location:c,navigate:s,mergeState:{referrer:"Dashboard"}})},[w,t,c,s,k,_,ye,Kt]);return d.jsxs(d.Fragment,{children:[Sn==="Completed"?d.jsx(Ve,{analytics:T,onLoad:A=>{A.trackPageLoaded(Y.Event.dashboard),nt&&$t===!0&&A.trackTreasuryPromoView("Dashboard Promo Video")}}):null,d.jsx(Ks,{maxColumns:n?2:void 0,isAiCfoAccessEnabled:I,onAskAiCfoClick:v,onAiCfoDashboardOpenPanel:Dn,onAiCfoDashboardOpenScopePage:wn,isAiCfoFileUploadEnabled:Qa===!0&&t===!1,onAiCfoDashboardPromptSubmit:Tn,onAiCfoDashboardExpandToFullPage:xn,aiCfoDashboardSuggestedPromptQuestions:An,aiCfoDashboardSuggestedPromptQuestionsLoading:vn,onDragAndDropCard:(A,Z)=>{if(A===X||Z===X)return;const fe=function(Q,Ae,Ee){const ct=Ee.indexOf(Q),lt=Ee.indexOf(Ae);if(ct===-1||lt===-1||ct===lt)return Ee;const dt=[...Ee];return dt.splice(ct,1),dt.splice(lt,0,Q),dt}(A,Z,kn),ve=fe.filter(Q=>Q!==X),V=he.cardsOrdered;(ve.length!==V.length||ve.some((Q,Ae)=>Q!==V[Ae]))&&i(yo(ve))},dashboardReport:he,passedCardsOrdered:yn,tenantId:y,companyId:E,tenantEmailDomain:k,location:c,navigate:s,isApAgingFeatureEnabled:L,isArAgingFeatureEnabled:oe,isBillPayEnabled:on,isReimbursementEnabled:nn,isSummaryCardsFiltered:at,isForecastOn:bn,selectedForecastOnDashboard:Cn,isVisitingFirstTime:u,isZeniAccountEnabled:Fe,isRewardsFeatureEnabled:qe,hasZeniAccountsAdminAccess:cn,isExpenseAutomationEnabledForUser:me&&st===!1,selectedPeriod:an[y],isChargeCardFeatureEnabled:Za,isUserHasCardsAccess:mn,isUserHasTreasuryAccess:pn,cardsCreditLimit:hn,cashbackRate:Ja,isInterestedInChargeCard:fn,cardBalanceFetchState:_n,christmasAnimationEnabled:Ha,newYearAnimationEnabled:Wa,treasuryFundDetails:gn,shouldShowTreasuryPromoIntroVideo:$t,isTreasuryPromoVideoPlayed:rt,isTreasuryPromoIntroClosedByOutsideClick:En,treasuryFetchState:sn,aiAuditScorePercentageEnabled:Xa})]})}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}=ke(),{isFeatureEnabled:n}=t(R.isApAgingFeatureEnabled),{isFeatureEnabled:o}=t(R.isArAgingFeatureEnabled),r=S(m=>U(m)),{isFeatureEnabled:s}=t(R.isDebitCardFeatureEnabled),i=Ro(s,r),c=Bo(r);return i===!0||c===!0?d.jsx(Ct,{children:d.jsx(F,{path:"/*",element:d.jsx(os,{})})}):d.jsxs(Ct,{children:[d.jsx(F,{path:"/",element:d.jsx(qs,{})}),d.jsx(F,{path:"cash_balance/*",element:d.jsx(Xt,{})}),d.jsx(F,{path:"card_balance/*",element:d.jsx(Xt,{})}),d.jsx(F,{path:"operating_expenses/*",element:d.jsx(re,{})}),d.jsx(F,{path:"operating_expenses/forecast/*",element:d.jsx(mt,{})}),d.jsx(F,{path:"revenue/forecast/*",element:d.jsx(mt,{})}),d.jsx(F,{path:"revenue/*",element:d.jsx(re,{})}),d.jsx(F,{path:"net_burn_or_income/forecast/*",element:d.jsx(mt,{})}),d.jsx(F,{path:"net_burn_or_income/*",element:d.jsx(re,{})}),n===!0&&d.jsxs(d.Fragment,{children:[d.jsx(F,{path:"accounts_payable_aging/*",element:d.jsx(is,{})}),d.jsx(F,{path:"accounts_payable_aging/:vendorId/:reportDate/*",element:d.jsx(rs,{})})]}),o&&d.jsxs(d.Fragment,{children:[d.jsx(F,{path:"accounts_receivable_aging/:customerId/:reportDate/*",element:d.jsx(cs,{})}),d.jsx(F,{path:"accounts_receivable_aging/*",element:d.jsx(ls,{})})]}),d.jsx(F,{path:"cash_position/*",element:d.jsx(re,{})}),d.jsx(F,{path:"top_expenses/*",element:a===!0?d.jsx(re,{}):d.jsx(je,{})}),d.jsx(F,{path:"cash_in_cash_out/*",element:d.jsx(re,{})}),d.jsx(F,{path:"company_details",element:d.jsx(as,{})}),d.jsx(F,{path:"referrals/*",element:d.jsx(ss,{})}),d.jsx(F,{path:"*",element:d.jsx(je,{})})]})}export{Ar as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as v}from"./liveblocks-CpSeBLzv.js";import{a as u}from"./sentry-BxlhxHUi.js";import{u as y,j as b,n as w,g as A,N}from"./core-DUPexJ3H.js";import{JV as U,eQ as _,fp as k,JW as L,nf as R,JX as z}from"./zeni-epic-state-DP595dtC.js";import{u as j,z as f,L as T,t as I,D as O,b as $}from"./index-B_Z_hpYg.js";import"./mui-BYcLUAn-.js";import{t as P}from"./getLocaleForTenant-BQer3J3i.js";import"./recharts-Dp6Vlg5X.js";import"./analytics-wiEk3GGD.js";import"./plaid-DSCHiplf.js";import"./dnd-O-LDWVRl.js";import"./stripe-DMRn4zHo.js";import"./lottie-BpJoufaA.js";import"./lexical-D7D3BWIv.js";import"./pdf--1Oee4-D.js";import"./utils-BI-ymB94.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new t.Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="18ba0186-39cb-4872-aeed-67a9d96bd87c",t._sentryDebugIdIdentifier="sentry-dbid-18ba0186-39cb-4872-aeed-67a9d96bd87c")}catch{}})();const Q=w(function(t){return{fetchState:t.tenantState.fetchState,activeTenantFetchState:t.tenantState.activeTenantFetchState.fetchState,currentTenant:_(t),tenantsInOrder:z(t).tenantsInOrder}})(function({fetchState:t,activeTenantFetchState:s,currentTenant:o,tenantsInOrder:h}){const r=A(),p=new URLSearchParams(r.search);if(o==null||t!=="Completed"&&s!=="Completed")return null;{let m="";const n=h.map(l=>l.tenantEmailDomain),i=r.state?.origin,a=r.state?.queryParams;let c=`../${o.tenantEmailDomain}`,d=null,e=!1,g=null,S=null;const C=E(r.pathname);if(C!=null)c=`../${o.tenantEmailDomain}/${C}`,m="comingFromV2UrlPath",C==="ai-cfo/explore"&&(d=p.get("question")?.replace(/^["']|["']$/g,"")??null,e=p.get("should_submit")==="true");else if(i!=null)if(n.reduce((l,F)=>l||i.split("/").find(D=>D===F)!=null,!1))c=i,i.includes("ai-cfo")&&a!=null&&(g=a.aiCfoRef??null,S=a.aiCfoEmailRefId??null);else{const l=E(i);l!=null?(c=`../${o.tenantEmailDomain}/${l}`,m="comingFromV2UrlPath",l==="ai-cfo/explore"&&a!=null&&(a.aiCfoQuestion!=null&&(d=a.aiCfoQuestion),a.aiCfoShouldSubmit==="true"&&(e=!0))):console.warn("Don't have access to previous path tenant!")}const x=$(c,p);return v.jsx(N,{to:x,replace:!0,state:{...r.state,origin:"",message:m,aiCfoInitialQuestion:d,aiCfoShouldSubmit:e,aiCfoRef:g,aiCfoEmailRefId:S}})}});function oe(){const t=y(),{setLoading:s,clearAllLoading:o}=j(),h=u.useRef(!1),r=u.useRef(!1),p=u.useRef(null),m=b(e=>U(e)),n=b(e=>e.tenantState.fetchState),i=b(e=>e.tenantState.error),a=b(e=>e.tenantState.activeTenantFetchState.fetchState),c=b(e=>_(e)),d=f.getSignedInUser();return u.useLayoutEffect(()=>{const e=f.getActiveTenantForUser()?.tenantId??null;p.current!==e&&(p.current=e,h.current=!1,r.current=!1,s(T.TENANT_FETCHING)),!h.current||a!=="Completed"&&a!=="Error"||(h.current=!1),!r.current||n!=="Completed"&&n!=="Error"||(r.current=!1)},[a,n]),u.useEffect(()=>{const e=f.getActiveTenantForUser()?.tenantId;h.current===!1&&d!=null&&e!=null&&I.shouldFetchActiveTenant(e)&&(h.current=!0,I.markActiveTenantFetchStarted(e),n==="Completed"||a!=="Not-Started"&&a!=="Error"||(s(T.TENANT_FETCHING),t(k(d.userId,e))))},[n,a,d,t]),u.useEffect(()=>{const e=f.getSignedInUser(),g=f.getActiveTenantForUser()?.tenantId,S=g==null||a==="Completed"||a==="Error";r.current===!1&&e!=null&&S&&I.shouldFetchAllTenants()&&(r.current=!0,I.markAllTenantsFetchStarted(),(n==="Not-Started"||n==="Error"&&!L(i))&&t(R(e.userId)))},[n,a,i,d,t]),u.useEffect(()=>{f.isSignedIn()&&n==="Completed"&&m.tenantsCoreDetailsInOrder.length>0&&(f.saveSignedInUserTenants(m.tenantsCoreDetailsInOrder),o())},[m.tenantsCoreDetailsInOrder,n]),u.useEffect(()=>{!f.isSignedIn()||n!=="Completed"&&a!=="Completed"||c==null||(O.updateAppLocaleID(P(c)),o())},[n,a,c]),v.jsx(Q,{})}const J=["dashboard/cash-balance","dashboard/card-balance","dashboard/operating-expenses","dashboard/revenue","dashboard/burn-rate","dashboard/cash-position","dashboard/top-expenses","dashboard/cash-in-cash-out","dashboard","reports","forecast","uncategorized-expense","uncategorized-income","missing-receipts","bills","cards/activate","cards","reimbursements","wise","checking","aicfo"],V={"dashboard/cash-balance":"dashboard/cash_balance","dashboard/card-balance":"dashboard/card_balance","dashboard/operating-expenses":"dashboard/operating_expenses","dashboard/revenue":"dashboard/revenue","dashboard/burn-rate":"dashboard/net_burn_or_income","dashboard/cash-position":"dashboard/cash_position","dashboard/top-expenses":"dashboard/top_expenses","dashboard/cash-in-cash-out":"dashboard/cash_in_cash_out",dashboard:"dashboard",reports:"reports",forecast:"forecast","uncategorized-expense":"transactions/uncategorized-expense","uncategorized-income":"transactions/uncategorized-income","missing-receipts":"transactions/missing-receipts",bills:"bills",reimbursements:"reimbursements","cards/activate":"cards/activate",cards:"cards",wise:"bills/wise/callback/link-account",checking:"checking",aicfo:"ai-cfo/explore"};function E(t){for(const s of J)if(t.toLocaleLowerCase().includes(s))return V[s]}export{oe as default};
|