@zeniai/web-app-ui 5.3.55-qa → 5.3.56-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AccountMappingScreen-BxRledTj.js → AccountMappingScreen-BJKuQUQK.js} +2 -2
- package/dist/assets/{ActualMatchingMatchDetailScreen-oIbSJaIb.js → ActualMatchingMatchDetailScreen-CkH9aaHO.js} +1 -1
- package/dist/assets/AddressRoutes-CHBmN4QX.js +1 -0
- package/dist/assets/AddressScreen-DVcm6rtP.js +9 -0
- package/dist/assets/AiCfoScreen-DLhxVK3m.js +22 -0
- package/dist/assets/{AppDrawer-CS8wipli.js → AppDrawer-DFw9ygHT.js} +1 -1
- package/dist/assets/{BillPayApprovalRoutes-D4kOwTBO.js → BillPayApprovalRoutes-CrSvpjTF.js} +1 -1
- package/dist/assets/{BillPayRoutes-Do640K9D.js → BillPayRoutes-D25IkCRG.js} +7 -7
- package/dist/assets/BusinessVerificationPageScreen-C3i585S_.js +9 -0
- package/dist/assets/{CardsAiCfoScreen-BpdFcHVH.js → CardsAiCfoScreen-CGVXrGo3.js} +1 -1
- package/dist/assets/{ChargeCardRoutes-DZkHgl9s.js → ChargeCardRoutes-Be1yd7vs.js} +10 -10
- package/dist/assets/{CompanyPassportScreen-DSh6Ipzn.js → CompanyPassportScreen-BbxvKQ4h.js} +1 -1
- package/dist/assets/ConnectionAuthScreen-DW_RpnUG.js +11 -0
- package/dist/assets/CustomerOnboardingAuthScreen-B9oqAEpw.js +1 -0
- package/dist/assets/{CustomerOnboardingRoutes-L779kJOJ.js → CustomerOnboardingRoutes-DZPhXsuR.js} +2 -2
- package/dist/assets/{DashboardRoutes-C3KzBz6S.js → DashboardRoutes-BNQ_G2Ja.js} +3 -3
- package/dist/assets/{DefaultTenantHome-CHg3pC8G.js → DefaultTenantHome-CQb3BNY_.js} +1 -1
- package/dist/assets/DomesticWireDetailScreen-B1WqjoYC.js +18 -0
- package/dist/assets/{DrawerScreen-74QNRylU.js → DrawerScreen-BjVCvYOx.js} +1 -1
- package/dist/assets/EntityDetailRoutes-DPPxLcP3.js +1 -0
- package/dist/assets/ExpenseAutomationRoutes-Beqj_B98.js +38 -0
- package/dist/assets/FeaturePreviewScreen-DrZBk8z9.js +1 -0
- package/dist/assets/HubSpotOAuthCallbackScreen-uMS-Wn41.js +1 -0
- package/dist/assets/{InboxNotificationsProvider-CvLL3Xda.js → InboxNotificationsProvider-0KkUrcUF.js} +1 -1
- package/dist/assets/{InvoicingRoutes-CKT_RLJi.js → InvoicingRoutes-B7hVOPnd.js} +2 -2
- package/dist/assets/{MagicLinkRoutes-D0Ens08J.js → MagicLinkRoutes-0XNlBf8h.js} +6 -6
- package/dist/assets/MagicLinkSignInScreen-CmEuq8yZ.js +12 -0
- package/dist/assets/{MobileAppDrawer-COi151oe.js → MobileAppDrawer-C4BbqfYY.js} +1 -1
- package/dist/assets/NotFoundScreen-BudPMncf.js +1 -0
- package/dist/assets/NotificationRoutes-ui3la9Pl.js +1 -0
- package/dist/assets/OAuthConsentScreen-BxSGmmYb.js +1 -0
- package/dist/assets/PandLWithForecastRoutes-CQxitPGl.js +1 -0
- package/dist/assets/{PaymentLinkScreen-C6jtcPVb.js → PaymentLinkScreen-DZFH9-Dr.js} +3 -3
- package/dist/assets/PeopleRoutes-CTbqr9KR.js +22 -0
- package/dist/assets/PerformanceRoutes-DqqsTiLL.js +1 -0
- package/dist/assets/{Preview-CudBKEb3.js → Preview-CUqbKJrc.js} +1 -1
- package/dist/assets/{QBOConnectionScreen-BAF64NHf.js → QBOConnectionScreen-83wGiY1-.js} +1 -1
- package/dist/assets/{ReimbursementApprovalRoutes-Bu_MlS4C.js → ReimbursementApprovalRoutes-CefdRKJA.js} +1 -1
- package/dist/assets/{ReimbursementApprovalRuleDetailScreen-Basp-Q4U.js → ReimbursementApprovalRuleDetailScreen-DVIQ0iGz.js} +1 -1
- package/dist/assets/{ReimbursementRoutes-Bq2EqHO1.js → ReimbursementRoutes-CYSobdK2.js} +4 -4
- package/dist/assets/{ReportsRoutes-B0F6dmdv.js → ReportsRoutes-C0_U8cPe.js} +1 -1
- package/dist/assets/RewardsRoutes-Cuv6zmgH.js +1 -0
- package/dist/assets/{ScheduleDetailsPrepaidExpensesScreen-CpX86pSz.js → ScheduleDetailsPrepaidExpensesScreen-BQ_Jeykv.js} +5 -5
- package/dist/assets/ScreenRoutes-CWs8sPE7.js +2 -0
- package/dist/assets/{SettingsRoutes-BkkyebXa.js → SettingsRoutes-tupY8NX6.js} +6 -6
- package/dist/assets/{SetupPagesScreen-mUtIx0g7.js → SetupPagesScreen-IP9GnMvD.js} +5 -5
- package/dist/assets/SignInScreen-C_QB0DLT.js +1 -0
- package/dist/assets/SignOutScreen-Dlg2jHAz.js +9 -0
- package/dist/assets/{TaskListScreen-DQiYW5NR.js → TaskListScreen-BLrDzaze.js} +2 -2
- package/dist/assets/TaskRoutes-D1AnOebo.js +9 -0
- package/dist/assets/TransactionDetailRoutes-aJqQLpSX.js +1 -0
- package/dist/assets/{TransactionDetailScreen-qryWPLpS.js → TransactionDetailScreen-DVTW16A1.js} +2 -2
- package/dist/assets/{TransactionListRoutes-CsLIipC1.js → TransactionListRoutes-7PO54jHW.js} +1 -1
- package/dist/assets/{TreasuryRoutes-SaAnpSTn.js → TreasuryRoutes-BLoMlu93.js} +5 -5
- package/dist/assets/{VendorsRoutes-ZsiBTL9L.js → VendorsRoutes-u3UbdNbB.js} +12 -12
- package/dist/assets/WiseConfirmationScreen-BwqpmX8S.js +12 -0
- package/dist/assets/{ZeniAccountRoutes-CPGcNCoa.js → ZeniAccountRoutes-CDbRnTrg.js} +11 -11
- package/dist/assets/ZeniAccountStatementScreen-lhzrOeGm.js +9 -0
- package/dist/assets/{accountMappingHelper-DTr2dybD.js → accountMappingHelper-DAAt9xyM.js} +1 -1
- package/dist/assets/{analytics-BLHCH9ZW.js → analytics-B3pE_Rhv.js} +1 -1
- package/dist/assets/{analyticsHelper-4iM19yWB.js → analyticsHelper-DvdruwkE.js} +1 -1
- package/dist/assets/{core-_lmxLuL7.js → core-BtMsWhj9.js} +1 -1
- package/dist/assets/{decodeURIComponentSafe-CNj7wDd5.js → decodeURIComponentSafe-roe2OgG2.js} +1 -1
- package/dist/assets/{dnd-4_dRT_p_.js → dnd-NbF88ub7.js} +1 -1
- package/dist/assets/{empty-Bz6Du369.js → empty-CaVGMRjr.js} +1 -1
- package/dist/assets/{empty-B3p_skJy.js → empty-Cx0IX9BK.js} +1 -1
- package/dist/assets/{emptyVideoElement-DVls5c-N.js → emptyVideoElement-BixupcUv.js} +1 -1
- package/dist/assets/epic-CvUAcLT0.js +2 -0
- package/dist/assets/expenseAutomationHelper-oTNGiYVa.js +1 -0
- package/dist/assets/{getLocaleForTenant-B789-FKJ.js → getLocaleForTenant-omtGYMrM.js} +1 -1
- package/dist/assets/{index-B6grZ9sx.js → index-BdE3bEFg.js} +11876 -11875
- package/dist/assets/{index-Cg11XXLq.js → index-CgkBXLPm.js} +1 -1
- package/dist/assets/{index-DMJTTbIe.js → index-CscHaeoB.js} +1 -1
- package/dist/assets/{index-sGFH656b.js → index-D4z6ymU4.js} +1 -1
- package/dist/assets/{index-DYybIBq-.js → index-DH8aYJll.js} +1 -1
- package/dist/assets/{index-DLV1sgpa.js → index-De8Bm1rc.js} +1 -1
- package/dist/assets/{index-BXkbHEmr.js → index-Dh_E8szn.js} +2 -2
- package/dist/assets/{index-hIpaHuHG.js → index-Dpw9AdmE.js} +1 -1
- package/dist/assets/{lexical-BibO8P7-.js → lexical-OFbGuPVJ.js} +1 -1
- package/dist/assets/{liveblocks-C_txwMxP.js → liveblocks-CVtnm86a.js} +1 -1
- package/dist/assets/{lottie-CyJj6i4R.js → lottie-DX_KUXtr.js} +1 -1
- package/dist/assets/{mui-DbFwPEO7.js → mui-DdZ2UeI1.js} +1 -1
- package/dist/assets/{pathToGoBack-W4B39XGQ.js → pathToGoBack-DUa0cp7d.js} +1 -1
- package/dist/assets/{pdf-BfgO0ZZE.js → pdf-Ck6JVYdq.js} +3 -3
- package/dist/assets/{pdf-lib-B5AjOY9Z.js → pdf-lib-BXXBaukU.js} +1 -1
- package/dist/assets/{plaid-DHbQ1Fnc.js → plaid-nsaMWH8B.js} +1 -1
- package/dist/assets/{pusher--5P9Uwc_.js → pusher-D5GzcojU.js} +1 -1
- package/dist/assets/{react-DrxoeICl.js → react-0n9ZpUxt.js} +1 -1
- package/dist/assets/{react-BmknZowZ.js → react-BgVq8Vpa.js} +1 -1
- package/dist/assets/{react-CUz7FHyX.js → react-C-0cdt-e.js} +1 -1
- package/dist/assets/{react-h8fTHwLe.js → react-CWdFYh5J.js} +1 -1
- package/dist/assets/{react-IBoMtt1b.js → react-DXmkD3ns.js} +1 -1
- package/dist/assets/{react-BKa7fZpZ.js → react-DhgbPzuh.js} +1 -1
- package/dist/assets/{recharts-B43pV0TY.js → recharts-DhwkC6iY.js} +1 -1
- package/dist/assets/{routePaths-hwxApcva.js → routePaths-znAFGC3M.js} +1 -1
- package/dist/assets/{sentry-D_60LtUS.js → sentry-BzkfMVrG.js} +1 -1
- package/dist/assets/{stripSplatSuffix-BWXYYZxG.js → stripSplatSuffix-BORWr7jN.js} +1 -1
- package/dist/assets/{url-BryZycM8.js → url-B1VibTls.js} +1 -1
- package/dist/assets/{url-CvufulZn.js → url-DLwy6QED.js} +1 -1
- package/dist/assets/{useActualMatchingMatchDetail-CXEQCna3.js → useActualMatchingMatchDetail-BATx-hw7.js} +1 -1
- package/dist/assets/{useAiCfoDashboardSuggestedQuestionsChips-j_HLw6hE.js → useAiCfoDashboardSuggestedQuestionsChips-RBwji9iv.js} +1 -1
- package/dist/assets/{useAskAiCfoHostNavButtonProps-DycPeMu8.js → useAskAiCfoHostNavButtonProps-yiVAQfVL.js} +1 -1
- package/dist/assets/{useChargeCardPusherEvents-CeGBALEu.js → useChargeCardPusherEvents-D6w93u1p.js} +1 -1
- package/dist/assets/{useDeviceId-Dks2onQn.js → useDeviceId-Cvm1S2SE.js} +1 -1
- package/dist/assets/{useEmailConnectResultRefresh-VgqVnnGo.js → useEmailConnectResultRefresh-BuXXdg7d.js} +1 -1
- package/dist/assets/{useInitialThreadRequest-C01HUFbF.js → useInitialThreadRequest-CRJTlzEQ.js} +1 -1
- package/dist/assets/{useTaskManagerAccess-vvZ5G9JM.js → useTaskManagerAccess-CtzHb9vx.js} +1 -1
- package/dist/assets/{useTaskManagerPusherEvents-A5AmC0FP.js → useTaskManagerPusherEvents-BsdLgh09.js} +1 -1
- package/dist/assets/{utils-CPbtTTqo.js → utils-BrzWPNCR.js} +1 -1
- package/dist/assets/{withTransactionSidePanel-ByOeZF9g.js → withTransactionSidePanel-BrwXnQ2x.js} +4 -4
- package/dist/assets/{zeni-epic-state-CtlpRqoe.js → zeni-epic-state-xhG_euwn.js} +5 -5
- package/dist/index.html +1 -1
- package/package.json +3 -3
- package/dist/assets/AddressRoutes-DMjDwuiI.js +0 -1
- package/dist/assets/AddressScreen-CwA3IRwX.js +0 -9
- package/dist/assets/AiCfoScreen-DMPGHIZE.js +0 -22
- package/dist/assets/BusinessVerificationPageScreen-DeXHIi3R.js +0 -9
- package/dist/assets/ConnectionAuthScreen-BlJRL8Mn.js +0 -11
- package/dist/assets/CustomerOnboardingAuthScreen-CJH4ZFnL.js +0 -1
- package/dist/assets/DomesticWireDetailScreen-CWU_ak_S.js +0 -18
- package/dist/assets/EntityDetailRoutes-QM4GSAIU.js +0 -1
- package/dist/assets/ExpenseAutomationRoutes-DrJlIKSY.js +0 -38
- package/dist/assets/FeaturePreviewScreen-Bu4co2D3.js +0 -1
- package/dist/assets/HubSpotOAuthCallbackScreen-BmluxXLG.js +0 -1
- package/dist/assets/MagicLinkSignInScreen-B4KeCwE8.js +0 -12
- package/dist/assets/NotFoundScreen-DNVEwzIN.js +0 -1
- package/dist/assets/NotificationRoutes-C0PDOFur.js +0 -1
- package/dist/assets/OAuthConsentScreen--tcnvk2-.js +0 -1
- package/dist/assets/PandLWithForecastRoutes-CAv6HnFG.js +0 -1
- package/dist/assets/PeopleRoutes-BemO_mDq.js +0 -22
- package/dist/assets/PerformanceRoutes-CW_WQq6a.js +0 -1
- package/dist/assets/RewardsRoutes-DxjdRAJt.js +0 -1
- package/dist/assets/ScreenRoutes-BgOuemMY.js +0 -2
- package/dist/assets/SignInScreen-BT05e68g.js +0 -1
- package/dist/assets/SignOutScreen-kJg_YEBZ.js +0 -9
- package/dist/assets/TaskRoutes-xsPPcGb9.js +0 -9
- package/dist/assets/TransactionDetailRoutes-CaFbfMkp.js +0 -1
- package/dist/assets/WiseConfirmationScreen-DShAzwdG.js +0 -12
- package/dist/assets/ZeniAccountStatementScreen-j3HmxqHy.js +0 -9
- package/dist/assets/epic-Dg8E5zC1.js +0 -2
- package/dist/assets/expenseAutomationHelper-C8o4PBoS.js +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{j as I}from"./liveblocks-CVtnm86a.js";import{a as o}from"./sentry-BzkfMVrG.js";import{u as H,h as P,g as R,j as C,N as w}from"./core-BtMsWhj9.js";import{TV as q,fF as z,gl as G,pS as V,gM as A,gk as M,gi as Q,Uj as B,gh as O}from"./zeni-epic-state-xhG_euwn.js";import{u as J,z as E,L as D,G as K,H as W}from"./index-BdE3bEFg.js";import{n as X}from"./mui-DdZ2UeI1.js";import{P as h,a as _}from"./AccountMappingScreen-BJKuQUQK.js";import{t as Y}from"./getLocaleForTenant-omtGYMrM.js";import{g as Z,Q as ee}from"./QBOConnectionScreen-83wGiY1-.js";import"./recharts-DhwkC6iY.js";import"./analytics-B3pE_Rhv.js";import"./plaid-nsaMWH8B.js";import"./dnd-NbF88ub7.js";import"./stripe-cKAAJElX.js";import"./lottie-DX_KUXtr.js";import"./lexical-OFbGuPVJ.js";import"./pdf-Ck6JVYdq.js";import"./utils-BrzWPNCR.js";import"./MobileAppDrawer-C4BbqfYY.js";import"./InboxNotificationsProvider-0KkUrcUF.js";import"./useTaskManagerAccess-CtzHb9vx.js";import"./accountMappingHelper-DAAt9xyM.js";import"./empty-Cx0IX9BK.js";import"./pdf-lib-BXXBaukU.js";import"./index-D4z6ymU4.js";import"./url-B1VibTls.js";import"./index-CgkBXLPm.js";import"./decodeURIComponentSafe-roe2OgG2.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new t.Error().stack;i&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[i]="e0377fd0-9f4a-4b34-8b07-ff2a18316e70",t._sentryDebugIdIdentifier="sentry-dbid-e0377fd0-9f4a-4b34-8b07-ff2a18316e70")}catch{}})();const te=X.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex: 1 1 auto;
|
|
4
|
+
flex-direction: row;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
width: 100%;
|
|
8
|
+
height: 100vh;
|
|
9
|
+
background-color: ${t=>t.theme.colors.background};
|
|
10
|
+
box-shadow: ${t=>`0px 2px ${W.sp1} ${t.theme.colors.dropShadowNormal}`};
|
|
11
|
+
`;function we(){const t=H(),i=P(),v=R(),{setLoading:m,clearAllLoading:c}=J(),S=o.useRef(!1),b=o.useRef(!1),N=o.useRef(!1),f=o.useRef(!1),{code:U,realmId:$,state:F}=Z(v.search),p=U!==""&&$!==""&&F!=="";p&&(N.current=!0);const j=sessionStorage.getItem(h),u=j===_.pending,L=j===_.ready,x=C((s=>q(s))),e=C((s=>z(s))),n=C((s=>s.tenantState.fetchState)),r=C((s=>s.tenantState.activeTenantFetchState.fetchState)),a=E.getSignedInUser(),g=E.getActiveTenantForUser()?.tenantId,l=e?.externalConnections?.fetchState,d=e?.externalConnections?.saveConnectionState,y=e.externalConnections?.accounting[0]?.isValid;o.useLayoutEffect((()=>{m(D.CONNECTION_AUTH)}),[m]),o.useEffect((()=>{S.current||a==null||g==null||(S.current=!0,n==="Completed"||r!=="Not-Started"&&r!=="Error"||(m(D.TENANT_FETCHING),t(G(a.userId,g))))}),[S,n,m]),o.useEffect((()=>{e.tenantId==null&&!b.current&&a!=null&&(b.current=!0,!(g==null||g!=null&&(r==="Completed"||r==="Error"))||n!=="Not-Started"&&n!=="Error"||t(V(a.userId)))}),[b,n,r]),o.useEffect((()=>{a==null||e?.tenantId==null||e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||l==="In-Progress"||d!=="Error"||(m(D.CONNECTION_AUTH),t(A(a.userId,e.tenantId)))}),[d]),o.useEffect((()=>{n!=="Completed"&&r!=="Completed"||a==null||e?.tenantId==null||(t(M(e.tenantId)),E.saveActiveTenantDomainForUser(e.tenantEmailDomain),Q(a?.userId,a?.zeniSessionId,e.tenantId),K.updateAppLocaleID(Y(B(e))),e.externalConnections!=null||n!=="Completed"&&r!=="Completed"||l==="In-Progress"||a==null||e==null||t(A(a.userId,e.tenantId)))}),[n,r,l]),o.useEffect((()=>{x.tenantsCoreDetailsInOrder.length>0&&n==="Completed"&&E.saveSignedInUserTenants(x.tenantsCoreDetailsInOrder)}),[x.tenantsCoreDetailsInOrder.length,n]);const T=e==null||n!=="Completed"&&r!=="Completed"||l!=="Completed";if(o.useEffect((()=>{n!=="Completed"&&n!=="Error"||r!=="Completed"&&r!=="Error"||l!=="Completed"&&l!=="Error"||c()}),[n,r,l]),o.useEffect((()=>{u&&d==="In-Progress"&&(f.current=!0)}),[u,d]),o.useEffect((()=>{if(!u||T)return;const s=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return f.current&&d==="Completed"?(sessionStorage.setItem(h,_.ready),c(),void i(s,{replace:!0})):f.current&&d==="Error"?(sessionStorage.removeItem(h),t(O({messageSection:"accounting_projects_qbo_reconnect_failed",messageText:"failed",type:"error"})),c(),void i(s,{replace:!0})):void(p||N.current||f.current||y!==!0||(sessionStorage.removeItem(h),t(O({messageSection:"accounting_projects_qbo_reconnect_failed",messageText:"failed",type:"error"})),c(),i(s,{replace:!0})))}),[u,T,d,p,y,e.tenantEmailDomain,c,t,i]),T)return null;if(p||y!==!0)return I.jsx(te,{children:I.jsx(ee,{})});if(u)return null;const k=e.tenantEmailDomain!=null?`/${e.tenantEmailDomain}/settings/accounting`:"/";return L?I.jsx(w,{to:k,replace:!0}):I.jsx(w,{to:"/",replace:!0})}export{we as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as i}from"./liveblocks-CVtnm86a.js";import{z as m}from"./index-BdE3bEFg.js";import{g as n}from"./QBOConnectionScreen-83wGiY1-.js";import"./sentry-BzkfMVrG.js";import{g as p,N as a}from"./core-BtMsWhj9.js";import"./zeni-epic-state-xhG_euwn.js";import"./recharts-DhwkC6iY.js";import"./mui-DdZ2UeI1.js";import"./analytics-B3pE_Rhv.js";import"./plaid-nsaMWH8B.js";import"./dnd-NbF88ub7.js";import"./stripe-cKAAJElX.js";import"./lottie-DX_KUXtr.js";import"./lexical-OFbGuPVJ.js";import"./pdf-Ck6JVYdq.js";import"./utils-BrzWPNCR.js";import"./empty-Cx0IX9BK.js";import"./pdf-lib-BXXBaukU.js";import"./index-D4z6ymU4.js";import"./url-B1VibTls.js";import"./index-CgkBXLPm.js";import"./decodeURIComponentSafe-roe2OgG2.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new t.Error().stack;o&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[o]="a1205b81-d106-415b-bd92-85aeae53ace3",t._sentryDebugIdIdentifier="sentry-dbid-a1205b81-d106-415b-bd92-85aeae53ace3")}catch{}})();const U=()=>{const t=p(),{code:o,realmId:r,state:e}=n(t.search),s=m.getSignedInUser()?.userId??"";if(f(o,r,e,s)===!0){const d=`../../${e}/onboarding?code=${o}&realmId=${r}&state=auth_flow`;return i.jsx(a,{to:d})}return i.jsx(a,{to:"../../"})},f=(t,o,r,e)=>t!=""&&o!=""&&r!=""&&e!=null&&e!="";export{U as default,f as hasValidParams};
|
package/dist/assets/{CustomerOnboardingRoutes-L779kJOJ.js → CustomerOnboardingRoutes-DZPhXsuR.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as s}from"./liveblocks-
|
|
1
|
+
import{j as s}from"./liveblocks-CVtnm86a.js";import{t as Tt,A as $e}from"./AddressScreen-DVcm6rtP.js";import wt from"./NotFoundScreen-BudPMncf.js";import{a as d,t as Me}from"./sentry-BzkfMVrG.js";import{h as _e,g as xe,u as se,i as Ee,j as T,N as Q,q as At,l as it,n as Pt,o as H}from"./core-BtMsWhj9.js";import{fF as Y,d_ as Te,dZ as we,bq as Dt,Ua as jt,bR as Bt,pQ as Ft,Bo as Vt,Br as Ut,Vx as Rt,Vy as Lt,lu as Oe,lx as ct,UN as Nt,b$ as Gt,c8 as fe,BS as Ae,BD as $t,Vz as me,BT as dt,Sk as Mt,mH as ut,di as lt,VA as Qt,VB as zt,uE as Kt,UA as Ce,hV as qt,Uz as be,hS as Ht,Gf as Zt,uI as Jt,hK as Wt,hN as Qe,VC as pt,VD as Xt,M5 as Yt,VE as en,M9 as tn,Bu as nn,VF as an,VG as on,ls as sn,lv as rn,C3 as cn,BF as mt,BR as dn,bE as ze,cE as un,C2 as Ke,uX as ln,uL as pn,mz as mn,gG as gn,gF as fn,gE as yn,VH as hn,Bx as Cn,C4 as bn,C7 as Sn,Ca as In,Cg as kn,dj as On}from"./zeni-epic-state-xhG_euwn.js";import{z as K,c as Pe,v as W,Y as vn,p as q,a9 as re,j as g,aF as _n,aj as gt,a2 as xn,U as ft,Q as yt,h as X,Z as ge,T as ve,aG as En,H as qe,r as He,af as Tn,aH as Ze,aI as wn,aJ as An}from"./index-BdE3bEFg.js";import{n as De}from"./mui-DdZ2UeI1.js";import{g as Pn,h as Dn,q as ie}from"./QBOConnectionScreen-83wGiY1-.js";import{u as jn,a as Bn}from"./useEmailConnectResultRefresh-BuXXdg7d.js";import{u as Fn}from"./useChargeCardPusherEvents-D6w93u1p.js";import"./recharts-DhwkC6iY.js";import"./analytics-B3pE_Rhv.js";import"./plaid-nsaMWH8B.js";import"./dnd-NbF88ub7.js";import"./stripe-cKAAJElX.js";import"./lottie-DX_KUXtr.js";import"./lexical-OFbGuPVJ.js";import"./pdf-Ck6JVYdq.js";import"./utils-BrzWPNCR.js";import"./empty-Cx0IX9BK.js";import"./pdf-lib-BXXBaukU.js";import"./index-D4z6ymU4.js";import"./url-B1VibTls.js";import"./index-CgkBXLPm.js";import"./decodeURIComponentSafe-roe2OgG2.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},l=new e.Error().stack;l&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[l]="c5c56f50-67e4-40b0-8175-702824204895",e._sentryDebugIdIdentifier="sentry-dbid-c5c56f50-67e4-40b0-8175-702824204895")}catch{}})();const Je=e=>{switch(e){case"Complete":return"yes";case"Pending Review":case"Incomplete":return"partially";default:return"no"}},Vn=()=>{const e=_e(),l=xe(),i=se(),[a,p]=d.useState(!1),[u,c]=d.useState(!1),{tenantEmailDomain:v}=Ee(),t=K.getSignedInUser(),{useFeatureGate:n}=Pe(),{isFeatureEnabled:C}=n(W.isApAgingFeatureEnabled),{isFeatureEnabled:o}=n(W.isArAgingFeatureEnabled),{isFeatureEnabled:A}=n(W.isReferralFeatureEnabled),{isFeatureEnabled:w}=n(W.isDebitCardFeatureEnabled),k=vn(),O=T((S=>Y(S))),P=T((S=>S.onboardingCustomerViewState.fetchState)),_=O.excludedResources,F=O.companyId??K.getSignedInUserTenant(v)?.companyId;if(t==null)throw Error("Can't access onboarding flow without signing in...");const m=Te(w,O),b=we(O),D=[],U=_?.resources?.find((S=>S.resource==="/reports/top_expenses"))==null,h=_?.resources?.find((S=>S.resource==="/reports/task_card"))==null,r=O?.userRole!=null&&Dt(O?.userRole),x=_?.resources?.find((S=>S.resource==="/bills"))==null&&!r,E=_?.resources?.find((S=>S.resource==="/reimbursements"))==null;U===!1&&D.push("top_expenses"),h===!1&&D.push("task_card"),x===!1&&D.push("bill_pay_card","bill_pay_promo_card"),E===!1&&D.push("reimbursement_card","reimbursement_promo_card"),D.push("zeni_accounts_promo_card","treasury_promo_card"),A===!1&&D.push("rewards_card");const f=T((S=>{const V=[];C===!1&&V.push("accounts_payable_aging"),o===!1&&V.push("accounts_receivable_aging"),V.push("zeni_accounts_promo_card","treasury_promo_card"),A===!1&&V.push("rewards_card"),k===!1&&V.push("expense_automation_card");const Z=jt(S,V);return Bt(Z.reportsInOrder.map(($=>({fetchState:$.fetchState,error:$.error})))).fetchState}));d.useEffect((()=>{P!=="Completed"||a||m||b||(p(!0),i(Ft(t.userId,F,O.tenantId,!0,!1,D)))}),[a,P,m,b,t,O.tenantId,i]);const j=d.useRef(!1),N=d.useCallback((()=>{const S={pathnameStackToGoBack:q(l.state?.pathnameStackToGoBack,l.pathname),message:"activation"};e(m?"../../checking":b?"../../cards":"../../dashboard",{state:S})}),[e,l,m,b]),G=d.useCallback((()=>{j.current||(j.current=!0,N())}),[N]);if(d.useEffect((()=>{const S=setTimeout((()=>c(!0)),3e3);return()=>clearTimeout(S)}),[]),d.useEffect((()=>{const S=setTimeout(G,6e3);return()=>clearTimeout(S)}),[G]),d.useEffect((()=>{m||b||!u||f!=="Completed"&&f!=="Error"||G()}),[u,f,m,b,G]),P!=="Completed")return s.jsx(Q,{to:"../"});const L=O.company?.companyOnboardingInfo?.onboardingInfo,ee={timeSinceQuoteSign:L?.onboardingTimeSinceQuoteSigned??"",timeSinceQuoteSignInMinutes:L?.onboardingToQuoteSignMinutes??0,isKybDone:Je(L?.businessVerified?.status),isKycDone:Je(L?.identityVerified?.status),paymentType:"",paymentSource:"",qboConnectionSource:L?.accountingConnectionCreationMode??""};return s.jsxs(s.Fragment,{children:[s.jsx(re,{analytics:g,onLoad:S=>S.trackOnboardingDashboardActivation(ee)}),s.jsx(_n,{show:!0,onComplete:G})]})},Se=["reading_books","finance_graph","reconciliation","cfo_foundation"],Ie=["llm_fine_tuning","rag_knowledge_graph","personalized_context"],We=(e,l)=>{const i=new Map(e.map((a=>[a.key,a])));return l.map((a=>{return p=i.get(a)?.status,p==="starting"||p==="building"?p:"idle";var p}))},Xe=(e,l)=>{if(e.length===0)return!1;const i=new Map(e.map((a=>[a.key,a])));return l.every((a=>i.get(a)?.status==="ready"))},Ye=De.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
height: 100vh;
|
|
4
4
|
background-color: ${e=>e.theme.colors.grey4};
|
|
@@ -23,7 +23,7 @@ import{j as s}from"./liveblocks-C_txwMxP.js";import{t as Tt,A as $e}from"./Addre
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
${e=>e.windowSize!=="small"?"overflow: auto;":""}
|
|
26
|
-
`,tt=it((function(e,l){const{companyId:i,isAdmin:a,currentTenant:p,isOnAddressPage:u}=l,c=K.getSignedInUser(),v=p.tenantId,t={userId:c?.userId??"",sessionId:c?.zeniSessionId??"",tenantId:v??""},n=Y(e),C=Ae(e,i),o=pt(e),A=fe(p?.userRole??[])&&C.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",w=Xt(e.userRoleConfigState);return{onboardingCustomerView:C,analytics:g,isRefreshingViewInBackground:!1,isDisabled:A,companyTitles:w.companyTitles,connectedAccountProvider:n.company?.featuresActivationInfo.connectedAccountProvider??"",fileProps:{filesEndPoint:Tn.fileMicroServiceBaseUrl,authParams:t},signedInUser:K.getSignedInUser(),currentTenant:n,isAdmin:a,isOnAddressPage:u,cardPaymentView:o,isCardPaymentPopupOpen:!1,stripeKey:ge.stripeKey}}),(function(e,l){const{companyId:i,currentTenant:a,themeState:p,navigate:u,location:c}=l,{tenantEmailDomain:v}=a;return{onFetchLinkTokenClick:(t,n)=>{e(kn(t,n))},onEstablishConnectionClick:(t,n)=>{e(In(t,n))},onUpdatePaymentAccountStatus:(t,n,C)=>{e(Sn(t,n,C))},onUpdatePaymentAccountLoginStatus:(t,n)=>{e(bn(!1,t,n))},onEstablishConnectionSuccess:()=>{e(Cn(i,!0,!1))},handleOnConnectClick:()=>{g.trackOnboardingConnectQBO(),ie.handleClick()},updateQBOPopupState:t=>{e(me({isQBOPopupOpen:t}))},onCompanyOfficerUpdated:t=>{const n=t.map((C=>{const{officerType:o,userId:A,name:w,email:k,ssn:O,nationalityCountryCode:P,dob:_,phone:F,syncToken:m,selectDocument:b,role:D,ownership:U,isSelectedForVerification:h,userVerificationStatus:r,fileIds:x,isPhoneVerified:E}=C;let f;return b.selectDocumentType==="driverLicense"?f="driving_license":b.selectDocumentType==="passport"?f="passport":b.selectDocumentType==="stateId"?f="id_document":b.selectDocumentType==="ssnCard"&&(f="social_security_card"),{officerType:o,userId:A,firstName:w.firstName,lastName:w.lastName,email:k,ssn:O,nationalityCountryCode:P?.selectedOption!=null?Je(P.selectedOption):void 0,phone:F,birthday:_!=null?ze(_?.toString()):_,syncToken:m,titleAtCompany:D.selectedOption,ownershipInCompany:U,documentTypeSelectedForVerification:f,isSelectedForVerification:h,userVerificationStatus:r,fileIds:x,additionalDocumentTypesRequestedForVerification:[],additionalSubmittedDocumentsForVerificationFileIds:[],areAdditionalDocumentsRequestedForVerification:!1,areAdditionalDocumentsSubmittedForVerification:!1,isPhoneVerified:E}}));e(Ke({officers:n}))},onGetOtp:(t,n)=>{e(yn(t,"CustomerOnboarding")),n!=null&&e(hn({officerType:n,phone:t}))},onResendOtp:t=>{e(fn(t,"CustomerOnboarding"))},onVerifyOtp:(t,n)=>{g.trackOnboardingPhoneVerified(),e(gn(t,n,"CustomerOnboarding"))},updateFilesEntity:t=>{e(mn({files:t}))},onDeleteFile:t=>{e(pn(t))},onEditFileName:(t,n)=>{e(ln(t,n.split(".")[0]))},onCompanyDetailsChanged:t=>{const{companyDescription:n,companyIndustry:C,companyIndustryType:o,companyLegalName:A,companyTaxId:w,companyWebsite:k,companyPhone:O,primaryContactEmail:P,primaryContactName:_,primaryContactUserId:F,primaryContactSyncToken:m,syncToken:b,fileIds:D,typeOfIncorporation:U,stateOfIncorporation:h,incDate:r,companySourceOfFunds:x,companySourceOfFundsDescription:E,companySubIndustry:f,countriesOfOperations:B,purposeOfAccount:N,purposeOfAccountDescription:G,regulatedStatus:L,regulatedStatusDescription:ee,transactionVolume:S,transactionVolumeDescription:V,usNexus:J,usNexusTypes:$}=t,M={companyId:i,companyDescription:n,companyIndustry:C.selectedOption,companyIndustryType:o?.selectedOption??"",companyLegalName:A,taxIdOrEIN:w,website:k!=""&&k!=null?un(k):void 0,phone:O,syncToken:b,fileIds:D,incDate:r!=null?ze(r?.toString()):r,typeOfIncorporation:U?.selectedOption??"",stateOfIncorporation:h?.selectedOption??"",companySourceOfFunds:x?.selectedOption??"",companySourceOfFundsDescription:E,companySubIndustry:f?.selectedOption??"",countriesOfOperations:B?.selectedOptions.map((R=>R.length===2?R:Je(R)))??[],purposeOfAccount:N?.selectedOption??"",purposeOfAccountDescription:G,regulatedStatus:L??"",regulatedStatusDescription:ee,transactionVolume:S?.selectedOption??"",transactionVolumeDescription:V,usNexus:J,usNexusTypes:$?.selectedOptions??[]},ce={userId:F,firstName:_.firstName,lastName:_.lastName,email:P,syncToken:m};e(Ke({companyDetails:M,primaryContactDetails:ce}))},onAddressClick:(t,n)=>{const C=at(v,t,n),o=q(c.state?.pathnameStackToGoBack,c.pathname);u(C,{state:{pathnameStackToGoBack:o}})},onRegisteredAddressClick:(t,n)=>{const C=at(v,t,n),o=q(c.state?.pathnameStackToGoBack,c.pathname);u(C,{state:{pathnameStackToGoBack:o}})},onUpdateCustomerView:(t,n,C)=>{e(dn(i,!1,n,C,t))},onAddressEditHandler:t=>{if(t!=null){const n=Tt(t);e(ut({addressType:"subscription_billing_address",addressToCreate:n}))}},onSkipSetupClick:()=>{const t=q(c.state?.pathnameStackToGoBack,c.pathname);e(mt(i,!1,!1)),u("./activation",{state:{pathnameStackToGoBack:t}})},onUpdateStep:t=>{e(dt({step:t}))},onUpdateSubStep:t=>{e(cn({subStep:t}))},onZeniLogoClick:()=>{p.toggle()},handleLogOutClick:()=>{const t=q(c.state?.pathnameStackToGoBack,c.pathname);u("/signout",{replace:!0,state:{pathnameStackToGoBack:t,message:"logout"}})},handleCockpitClick:()=>{g.trackOnboardingFlowExited("cockpit"),window.open("/cockpit")},handleReferralsClick:()=>{u(`/${v}/rewards`)},handleCreateCardSetupIntent:t=>{e(ct(t))},handleConfirmCardSetupIntent:t=>{e(rn(t))},updateCardPaymentModalState:t=>{e(me({isCardPaymentPopupOpen:t}))},handleAddCardPaymentSource:(t,n,C)=>{e(sn(t,n,C))},handleFetchPaymentSources:()=>{e(Oe())},resetCardPaymentViewState:()=>{e(on())},handleResetCardPaymentErrorStatuses:()=>{e(an())},redirectToProductSuitePage:()=>{g.trackOnboardingFlowExited("product_suite");const t=q(c.state?.pathnameStackToGoBack,c.pathname);u(`/${v}/onboarding/thankyou`,{state:{pathnameStackToGoBack:t,message:"OnboardingThankyou"},replace:!0})},onAcknowledgeAiFinanceTeam:()=>{i!=null&&(g.trackOnboardingAiFinanceTeamAcknowledged(),e(nn(i)))},onIdentityDocumentUploadedForAutofill:t=>{if(i==null)return;const n=en(t.documentType);n!=null&&(g.trackOnboardingDocumentUploaded("kyc",n),e(tn({target:"onboarding",companyId:i,officerType:t.officerType,fileId:t.fileId,documentType:n})))},onCompanyDocumentUploadedForAutofill:t=>{i!=null&&(g.trackOnboardingDocumentUploaded("kyb",t.documentType),e(Yt({target:"onboarding",companyId:i,fileId:t.fileId,documentType:t.documentType})))}}}))(En),le=({taxCFOCustomer:e=!1,isOnAddressPage:l=!1,appContent:i})=>{const a=gt(),p=_e(),u=xe(),c=se(),v=xn(),t=ft(),[n,C]=d.useState(!1),[o,A]=d.useState(!1),[w,k]=d.useState(!1),{tenantEmailDomain:O}=Ee(),P=yt(),{useFeatureGate:_}=Pe(),{isFeatureEnabled:F}=_(W.isDebitCardFeatureEnabled),m=At("/:tenantEmailDomain/onboarding")!==null&&u.search?.includes("code"),b=T((y=>y.onboardingCustomerViewState.fetchState)),D=T((y=>y.onboardingCustomerViewState.currentStep)),U=T((y=>y.onboardingCustomerViewState.uiState)),h=T((y=>Y(y))),r=T((y=>y.userRoleConfigState.fetchState)),x=T((y=>y.cardPaymentViewState)),E=X(x.addCardPaymentSourceStatus.fetchState),f=x.addCardPaymentSourceStatus.fetchState,{code:B,realmId:N,state:G}=Pn(u.search),L=h.externalConnections?.accounting[0],ee=L?.connectionType,S=L?.connectionName,V=L?.connectionId??"",J=K.getSignedInUser()?.userId??"",$=d.useRef({realmId:"",connectionId:""});d.useEffect((()=>{o||(A(!0),c(Oe()))}),[o,c]),d.useEffect((()=>{w||(ct(["card"]),k(!0))}),[w]),d.useEffect((()=>{E==="In-Progress"&&f==="Completed"&&c(Oe())}),[E,f]),d.useEffect((()=>{Dn(B,N,G,V,J)===!0&&h.externalConnections?.saveConnectionState!=="In-Progress"&&b==="Completed"&&(c(Nt(h.tenantId,{connection_type:ee??"accounting",connection_name:S??"quickbooks_online",authorization_code:B,realm_id:N,connection_id:V,user_id:J},Gt(window.location.origin+"/onboarding/auth"))),$.current={realmId:N,connectionId:V},g.trackOnboardingSaveQBOConnection(N,V),p(u.pathname))}),[B,N,G,u.pathname,b]),d.useEffect((()=>{ie.isInitiated===!1&&b==="Completed"&&ie.init("/onboarding/auth",h.tenantEmailDomain)}),[b]);const M=h.companyId??K.getSignedInUserTenant(O)?.companyId,ce=fe(h?.userRole??[]),R=T((y=>Ae(y,M)));d.useEffect((()=>{n||b!=="Not-Started"||M==null||(C(!0),c($t(M,!0,!m)))}),[n,b,M]);const te=h.externalConnections?.saveConnectionState,Be=X(te);d.useEffect((()=>{Be==="In-Progress"&&(te==="Completed"||te==="Error")&&U.isQBOPopupOpen&&D==="connect_ledger"&&(te==="Completed"?g.trackOnboardingQBOConnectionSuccess($.current.realmId,$.current.connectionId):g.trackOnboardingQBOConnectionFailed($.current.realmId,$.current.connectionId,h.externalConnections?.saveOAuthConnectionError?.message??""),c(me({isQBOPopupOpen:!1})))}),[te,Be,U.isQBOPopupOpen,D,g,c]),d.useEffect((()=>{b==="Completed"&&m&&(c(dt({step:"connect_ledger"})),c(me({isQBOPopupOpen:!0})))}),[m,b]),d.useEffect((()=>{r==="Not-Started"&&c(Mt(!0))}),[r,c]);const ht=X(R.companyDetailsLocalData?.addressStatus);d.useEffect((()=>{R.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate==null&&R.companyDetailsLocalData?.addressStatus?.addressToCreate!=null&&ht==null&&c(ut({addressType:"company_registered_address",addressToCreate:R.companyDetailsLocalData?.addressStatus?.addressToCreate}))}),[R.companyDetailsLocalData?.addressStatus?.addressToCreate,R.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate]);const Ct=R.isInterimEmailSent,je=K.getSignedInUser();if(je==null)throw Error("Can't access onboarding flow without signing in...");const bt=Te(F,h),St=we(h),Fe=h.company?.companyOnboardingInfo.isOnboardingCompleted,Ve=y=>y.trackPageLoaded(ve.Event.onboardingPage),ye=h.productSettings.isOtherProductsEnabled,It=ye===!0&&!lt(h),kt=h.productSettings.isTreasuryEnabled,Ue=Un({tenantEmailDomain:O??"",signedInUserEmail:je.userEmail??"",companyId:M}),Re=(({companyId:y})=>{const z=se(),de=T((j=>j.onboardingCustomerViewState?.aiAgentsActivation)),ne=T((j=>Y(j).company?.companyOnboardingInfo?.onboardingInfo?.onboardingAiActivationInfo?.isOnboardingAiActivationViewed??!1)),he=d.useCallback((()=>{z(Vt())}),[z]);d.useEffect((()=>{he()}),[he]);const Le=d.useCallback((()=>{y==null||y===""||ne||z(Ut(y))}),[y,ne,z]),Ot=d.useMemo((()=>{if(y==null||y==="")return[];const j=`private-encrypted-${y}`;return[`${j}.ledger-ingestion.counts-updated`,`${j}.ai-agents-activation.phase-changed`]}),[y]),vt=d.useCallback(((j,ae)=>{if(ae==null||typeof ae!="object")return;const I=ae;if(j!=="ledger-ingestion.counts-updated"){if(j==="ai-agents-activation.phase-changed"){const ue=typeof I.phase_key=="string"?I.phase_key:typeof I.key=="string"?I.key:"",Z=typeof I.status=="string"?I.status:"idle";if(ue==="")return;z(Lt({key:ue,status:Z==="starting"||Z==="building"||Z==="ready"?Z:"idle",startedAt:typeof I.started_at=="string"?I.started_at:void 0,completedAt:typeof I.completed_at=="string"?I.completed_at:void 0}))}}else z(Rt({customerCount:typeof I.customer_count=="number"?I.customer_count:void 0,glAccountCount:typeof I.gl_account_count=="number"?I.gl_account_count:void 0,targetTransactionCount:typeof I.target_transaction_count=="number"?I.target_transaction_count:void 0,transactionCount:typeof I.transaction_count=="number"?I.transaction_count:void 0,vendorCount:typeof I.vendor_count=="number"?I.vendor_count:void 0}))}),[z]);return Fn({events:Ot,onEvent:vt,onSubscribed:he}),d.useMemo((()=>{const j=de?.phases??[],ae=We(j,Se),I=We(j,Ie),ue=Xe(j,Se),Z=Xe(j,Ie),Ne=j.some((Et=>Et.status!=="idle")),oe=!ne&&!Ne,Ge=ne&&!Ne,_t=Ge?Se.map((()=>"building")):ae,xt=Ge?Ie.map((()=>"building")):I;return{ledgerRowStatuses:oe?void 0:_t,backgroundRowStatuses:oe?void 0:xt,showLedgerReadyInLabel:oe?void 0:ue,showBackgroundReadyInLabel:oe?void 0:Z,forceContinueEnabled:!oe||void 0,counts:de?.counts,onContinueClicked:Le}}),[de?.phases,de?.counts,ne,Le])})({companyId:M});if(Fe===!0){if(!ye)return kt?s.jsx(Q,{to:"../../treasury"}):bt?s.jsx(Q,{to:"../../checking"}):St?s.jsx(Q,{to:"../../cards"}):s.jsx(Q,{to:"../../dashboard"});const y=R.updateStatus.fetchState==="In-Progress";if(ye&&!y)return e?s.jsxs(Ye,{children:[s.jsx(re,{analytics:g,onLoad:z=>Ve(z)}),s.jsx(tt,{navigate:p,location:u,companyId:M,currentTenant:h,isAdmin:ce,isOnAddressPage:l,themeState:t,googleAPIKey:ge.googleMapsAPIKey,integrationsSectionProps:Ue,aiAgentsActivationProps:Re,meetingUrl:a("onboarding_overview")}),i!=null?s.jsx(et,{windowSize:v,skipLegacyDrawerOffset:l&&h.productSettings.isOtherProductsEnabled!==!0,children:i}):null]}):s.jsx(Q,{to:"../../onboarding/thankyou"})}else if(Fe===!1&&P?.loggedInUserRoleMap!=null)return Ct===!0&&It?s.jsx(Q,{to:"../../onboarding/thankyou"}):s.jsxs(Ye,{children:[s.jsx(re,{analytics:g,onLoad:y=>Ve(y)}),s.jsx(tt,{navigate:p,location:u,companyId:M,currentTenant:h,isAdmin:ce,isOnAddressPage:l,themeState:t,googleAPIKey:ge.googleMapsAPIKey,integrationsSectionProps:Ue,aiAgentsActivationProps:Re,meetingUrl:a("onboarding_overview")}),i!=null?s.jsx(et,{windowSize:v,skipLegacyDrawerOffset:l&&h.productSettings.isOtherProductsEnabled!==!0,children:i}):null]});return null},ke="external_integrations",Un=({tenantEmailDomain:e,signedInUserEmail:l,companyId:i})=>{const a=se(),{pendingAutoFocusTabId:p}=Bn(),{plaidAccounts:u,onAddPlaidAccount:c,onReLoginPlaidAccount:v}=jn({companyId:i}),t=T((r=>r.plaidAccountViewState.external_account.plaidConnectionDetails)),n=T((r=>Y(r))),C=T((r=>r.tenantState.fetchState)),o=T((r=>Qt(r,i))),A=T((r=>zt(r,ke))),w=d.useMemo((()=>new Set(A.map((r=>r.additionalInfo)).filter((r=>r!=null)))),[A]),k=n.tenantId,O=fe(n.userRole??[]);d.useEffect((()=>{a(Kt(ke))}),[a]);const P=o.externalConnections?.saveAPIKeyConnectionState,_=o.externalConnections?.saveAPIKeyConnectionError?.message,F=X(P);d.useEffect((()=>{F==="In-Progress"&&(P==="Completed"?g.trackIntegrationConnected("chargebee","Onboarding","revenue"):P==="Error"&&g.trackIntegrationConnectFailed("chargebee","Onboarding","revenue",_??""))}),[P,F,_]);const m=o.externalConnections?.saveOAuthConnectionState,b=o.externalConnections?.saveOAuthConnectionError?.message,D=X(m);d.useEffect((()=>{D==="In-Progress"&&(m==="Completed"?g.trackIntegrationConnected("hubspot","Onboarding","revenue"):m==="Error"&&g.trackIntegrationConnectFailed("hubspot","Onboarding","revenue",b??""))}),[m,D,b]);const U=o.externalConnections?.saveConnectorCredentialsStateBySlug,h=X(U);return d.useEffect((()=>{const r=U??{},x=h??{},E=o.externalConnections?.saveConnectorCredentialsErrorBySlug??{};Object.keys(r).forEach((f=>{if(x[f]!=="In-Progress")return;let B;try{B=Ce(f)}catch{return}r[f]==="Completed"?g.trackIntegrationConnected(B,"Onboarding","payments"):r[f]==="Error"&&g.trackIntegrationConnectFailed(B,"Onboarding","payments",E[f]?.message??"")}))}),[U,h,o]),d.useMemo((()=>({isAdmin:O,analytics:g,referrer:"Onboarding",integrationsView:o,isLoading:C==="In-Progress",notifyMeRegisteredSlugs:w,autoFocusTabId:p??void 0,saveChargeBeeState:o.externalConnections?.saveAPIKeyConnectionState??"Not-Started",saveChargeBeeError:o.externalConnections?.saveAPIKeyConnectionError?.message,saveHubSpotState:o.externalConnections?.saveOAuthConnectionState??"Not-Started",saveHubSpotError:o.externalConnections?.saveOAuthConnectionError?.message,saveConnectorCredentialsStateBySlug:o.externalConnections?.saveConnectorCredentialsStateBySlug??{},saveConnectorCredentialsErrorBySlug:Object.fromEntries(Object.entries(o.externalConnections?.saveConnectorCredentialsErrorBySlug??{}).map((([r,x])=>[r,x?.message]))),deleteConnectionState:o.externalConnections?.deleteConnectionState??"Not-Started",deleteConnectionError:o.externalConnections?.deleteConnectionError?.message,onConnectGmail:()=>{g.trackIntegrationConnectClicked("gmail","Onboarding","email"),a(Qe(k,"gmail",nt()))},onConnectOutlook:()=>{g.trackIntegrationConnectClicked("outlook","Onboarding","email"),a(Qe(k,"outlook",nt()))},onConnectHubSpot:(r,x)=>{const E=o.externalConnections?.revenue?.find((B=>B.connectionName==="hubspot"))?.connectionId;if(E==null)return;g.trackIntegrationCredentialsSubmitted("hubspot","Onboarding","revenue");const f=`${window.location.origin}/oauth/hubspot/callback`;sessionStorage.setItem("hubspot_oauth_pending",JSON.stringify({client_id:r,client_secret:x,connection_id:E,redirect_uri:f,tenant_id:k})),window.location.href=`https://app.hubspot.com/oauth/authorize?client_id=${encodeURIComponent(r)}&scope=${encodeURIComponent("oauth crm.objects.deals.read crm.objects.owners.read")}&redirect_uri=${encodeURIComponent(f)}`},onDisconnect:(r,x)=>{const E=[...o.externalConnections?.accounting??[],...o.externalConnections?.payments??[],...o.externalConnections?.revenue??[]].find((B=>B.connectionId===r))?.connectionName;let f;try{f=E!=null?Ce(E):void 0}catch{f=void 0}f!=null&&g.trackIntegrationDisconnected(f,"Onboarding",x),a(Wt(k,r,be(x)))},onNotifyMe:r=>{g.trackIntegrationsNotifyMeClicked("Onboarding",r),a(Zt(ke,r,l))},onReconnectQBO:()=>{ie.init("/onboarding/auth",e),ie.handleClick()},onRefreshClick:()=>{o.integrations.refreshQBO.fetchState!=="In-Progress"&&a(Jt())},onSaveChargeBeeCredentials:(r,x)=>{const E=o.externalConnections?.revenue?.find((f=>f.connectionName==="chargebee"))?.connectionId;E!=null&&(g.trackIntegrationCredentialsSubmitted("chargebee","Onboarding","revenue"),a(Ht(k,E,be("revenue"),Ce("chargebee"),{api_key:r,site:x})))},onSaveConnectorCredentials:r=>{g.trackIntegrationCredentialsSubmitted(r.connectionName,"Onboarding","payments"),a(qt(k,be("payments"),r))},plaidAccounts:u,onAddPlaidAccount:c,onReLoginPlaidAccount:v,plaidConnectionDetails:t})),[O,o,C,w,p,k,l,e,a,u,c,v,t])};function nt(){const e=new URL(window.location.href);return e.searchParams.set("onboarding_step","connect_data_source"),e.toString()}function at(e,l,i){let a=`/${e}/onboarding/address`;return a=i!=null?a.concat(`/edit/${l}/${encodeURIComponent(i)}`):a.concat(`/new/${l}`),a}const ot=De.div`
|
|
26
|
+
`,tt=it((function(e,l){const{companyId:i,isAdmin:a,currentTenant:p,isOnAddressPage:u}=l,c=K.getSignedInUser(),v=p.tenantId,t={userId:c?.userId??"",sessionId:c?.zeniSessionId??"",tenantId:v??""},n=Y(e),C=Ae(e,i),o=pt(e),A=fe(p?.userRole??[])&&C.updateStatus.fetchState!=="In-Progress"?void 0:"readonly",w=Xt(e.userRoleConfigState);return{onboardingCustomerView:C,analytics:g,isRefreshingViewInBackground:!1,isDisabled:A,companyTitles:w.companyTitles,connectedAccountProvider:n.company?.featuresActivationInfo.connectedAccountProvider??"",fileProps:{filesEndPoint:Tn.fileMicroServiceBaseUrl,authParams:t},signedInUser:K.getSignedInUser(),currentTenant:n,isAdmin:a,isOnAddressPage:u,cardPaymentView:o,isCardPaymentPopupOpen:!1,stripeKey:ge.stripeKey}}),(function(e,l){const{companyId:i,currentTenant:a,themeState:p,navigate:u,location:c}=l,{tenantEmailDomain:v}=a;return{onFetchLinkTokenClick:(t,n)=>{e(kn(t,n))},onEstablishConnectionClick:(t,n)=>{e(In(t,n))},onUpdatePaymentAccountStatus:(t,n,C)=>{e(Sn(t,n,C))},onUpdatePaymentAccountLoginStatus:(t,n)=>{e(bn(!1,t,n))},onEstablishConnectionSuccess:()=>{e(Cn(i,!0,!1))},handleOnConnectClick:()=>{g.trackOnboardingConnectQBO(),ie.handleClick()},updateQBOPopupState:t=>{e(me({isQBOPopupOpen:t}))},onCompanyOfficerUpdated:t=>{const n=t.map((C=>{const{officerType:o,userId:A,name:w,email:k,ssn:O,nationalityCountryCode:P,dob:_,phone:F,syncToken:m,selectDocument:b,role:D,ownership:U,isSelectedForVerification:h,userVerificationStatus:r,fileIds:x,isPhoneVerified:E}=C;let f;return b.selectDocumentType==="driverLicense"?f="driving_license":b.selectDocumentType==="passport"?f="passport":b.selectDocumentType==="stateId"?f="id_document":b.selectDocumentType==="ssnCard"&&(f="social_security_card"),{officerType:o,userId:A,firstName:w.firstName,lastName:w.lastName,email:k,ssn:O,nationalityCountryCode:P?.selectedOption!=null?Ze(P.selectedOption):void 0,phone:F,birthday:_!=null?ze(_?.toString()):_,syncToken:m,titleAtCompany:D.selectedOption,ownershipInCompany:U,documentTypeSelectedForVerification:f,isSelectedForVerification:h,userVerificationStatus:r,fileIds:x,additionalDocumentTypesRequestedForVerification:[],additionalSubmittedDocumentsForVerificationFileIds:[],areAdditionalDocumentsRequestedForVerification:!1,areAdditionalDocumentsSubmittedForVerification:!1,isPhoneVerified:E}}));e(Ke({officers:n}))},onGetOtp:(t,n)=>{e(yn(t,"CustomerOnboarding")),n!=null&&e(hn({officerType:n,phone:t}))},onResendOtp:t=>{e(fn(t,"CustomerOnboarding"))},onVerifyOtp:(t,n)=>{g.trackOnboardingPhoneVerified(),e(gn(t,n,"CustomerOnboarding"))},updateFilesEntity:t=>{e(mn({files:t}))},onDeleteFile:t=>{e(pn(t))},onEditFileName:(t,n)=>{e(ln(t,n.split(".")[0]))},onCompanyDetailsChanged:t=>{const{companyDescription:n,companyIndustry:C,companyIndustryType:o,companyLegalName:A,companyTaxId:w,companyWebsite:k,companyPhone:O,primaryContactEmail:P,primaryContactName:_,primaryContactUserId:F,primaryContactSyncToken:m,syncToken:b,fileIds:D,typeOfIncorporation:U,stateOfIncorporation:h,incDate:r,companySourceOfFunds:x,companySourceOfFundsDescription:E,companySubIndustry:f,countriesOfOperations:j,purposeOfAccount:N,purposeOfAccountDescription:G,regulatedStatus:L,regulatedStatusDescription:ee,transactionVolume:S,transactionVolumeDescription:V,usNexus:Z,usNexusTypes:$}=t,M={companyId:i,companyDescription:n,companyIndustry:C.selectedOption,companyIndustryType:o?.selectedOption??"",companyLegalName:A,taxIdOrEIN:w,website:k!=""&&k!=null?un(k):void 0,phone:O,syncToken:b,fileIds:D,incDate:r!=null?ze(r?.toString()):r,typeOfIncorporation:U?.selectedOption??"",stateOfIncorporation:h?.selectedOption??"",companySourceOfFunds:x?.selectedOption??"",companySourceOfFundsDescription:E,companySubIndustry:f?.selectedOption??"",countriesOfOperations:j?.selectedOptions.map((R=>R.length===2?R:Ze(R)))??[],purposeOfAccount:N?.selectedOption??"",purposeOfAccountDescription:G,regulatedStatus:L??"",regulatedStatusDescription:ee,transactionVolume:S?.selectedOption??"",transactionVolumeDescription:V,usNexus:Z,usNexusTypes:$?.selectedOptions??[]},ce={userId:F,firstName:_.firstName,lastName:_.lastName,email:P,syncToken:m};e(Ke({companyDetails:M,primaryContactDetails:ce}))},onAddressClick:(t,n)=>{const C=at(v,t,n),o=q(c.state?.pathnameStackToGoBack,c.pathname);u(C,{state:{pathnameStackToGoBack:o}})},onRegisteredAddressClick:(t,n)=>{const C=at(v,t,n),o=q(c.state?.pathnameStackToGoBack,c.pathname);u(C,{state:{pathnameStackToGoBack:o}})},onUpdateCustomerView:(t,n,C)=>{e(dn(i,!1,n,C,t))},onAddressEditHandler:t=>{if(t!=null){const n=Tt(t);e(ut({addressType:"subscription_billing_address",addressToCreate:n}))}},onSkipSetupClick:()=>{const t=q(c.state?.pathnameStackToGoBack,c.pathname);e(mt(i,!1,!1)),u("./activation",{state:{pathnameStackToGoBack:t}})},onUpdateStep:t=>{e(dt({step:t}))},onUpdateSubStep:t=>{e(cn({subStep:t}))},onZeniLogoClick:()=>{p.toggle()},handleLogOutClick:()=>{const t=q(c.state?.pathnameStackToGoBack,c.pathname);u("/signout",{replace:!0,state:{pathnameStackToGoBack:t,message:"logout"}})},handleCockpitClick:()=>{g.trackOnboardingFlowExited("cockpit"),window.open("/cockpit")},handleReferralsClick:()=>{u(`/${v}/rewards`)},handleCreateCardSetupIntent:t=>{e(ct(t))},handleConfirmCardSetupIntent:t=>{e(rn(t))},updateCardPaymentModalState:t=>{e(me({isCardPaymentPopupOpen:t}))},handleAddCardPaymentSource:(t,n,C)=>{e(sn(t,n,C))},handleFetchPaymentSources:()=>{e(Oe())},resetCardPaymentViewState:()=>{e(on())},handleResetCardPaymentErrorStatuses:()=>{e(an())},redirectToProductSuitePage:()=>{g.trackOnboardingFlowExited("product_suite");const t=q(c.state?.pathnameStackToGoBack,c.pathname);u(`/${v}/onboarding/thankyou`,{state:{pathnameStackToGoBack:t,message:"OnboardingThankyou"},replace:!0})},onAcknowledgeAiFinanceTeam:()=>{i!=null&&(g.trackOnboardingAiFinanceTeamAcknowledged(),e(nn(i)))},onIdentityDocumentUploadedForAutofill:t=>{if(i==null)return;const n=en(t.documentType);n!=null&&(g.trackOnboardingDocumentUploaded("kyc",n),e(tn({target:"onboarding",companyId:i,officerType:t.officerType,fileId:t.fileId,documentType:n})))},onCompanyDocumentUploadedForAutofill:t=>{i!=null&&(g.trackOnboardingDocumentUploaded("kyb",t.documentType),e(Yt({target:"onboarding",companyId:i,fileId:t.fileId,documentType:t.documentType})))}}}))(En),le=({taxCFOCustomer:e=!1,isOnAddressPage:l=!1,appContent:i})=>{const a=gt(),p=_e(),u=xe(),c=se(),v=xn(),t=ft(),[n,C]=d.useState(!1),[o,A]=d.useState(!1),[w,k]=d.useState(!1),{tenantEmailDomain:O}=Ee(),P=yt(),{useFeatureGate:_}=Pe(),{isFeatureEnabled:F}=_(W.isDebitCardFeatureEnabled),m=At("/:tenantEmailDomain/onboarding")!==null&&u.search?.includes("code"),b=T((y=>y.onboardingCustomerViewState.fetchState)),D=T((y=>y.onboardingCustomerViewState.currentStep)),U=T((y=>y.onboardingCustomerViewState.uiState)),h=T((y=>Y(y))),r=T((y=>y.userRoleConfigState.fetchState)),x=T((y=>y.cardPaymentViewState)),E=X(x.addCardPaymentSourceStatus.fetchState),f=x.addCardPaymentSourceStatus.fetchState,{code:j,realmId:N,state:G}=Pn(u.search),L=h.externalConnections?.accounting[0],ee=L?.connectionType,S=L?.connectionName,V=L?.connectionId??"",Z=K.getSignedInUser()?.userId??"",$=d.useRef({realmId:"",connectionId:""});d.useEffect((()=>{o||(A(!0),c(Oe()))}),[o,c]),d.useEffect((()=>{w||(ct(["card"]),k(!0))}),[w]),d.useEffect((()=>{E==="In-Progress"&&f==="Completed"&&c(Oe())}),[E,f]),d.useEffect((()=>{Dn(j,N,G,V,Z)===!0&&h.externalConnections?.saveConnectionState!=="In-Progress"&&b==="Completed"&&(c(Nt(h.tenantId,{connection_type:ee??"accounting",connection_name:S??"quickbooks_online",authorization_code:j,realm_id:N,connection_id:V,user_id:Z},Gt(window.location.origin+"/onboarding/auth"))),$.current={realmId:N,connectionId:V},g.trackOnboardingSaveQBOConnection(N,V),p(u.pathname))}),[j,N,G,u.pathname,b]),d.useEffect((()=>{ie.isInitiated===!1&&b==="Completed"&&ie.init("/onboarding/auth",h.tenantEmailDomain)}),[b]);const M=h.companyId??K.getSignedInUserTenant(O)?.companyId,ce=fe(h?.userRole??[]),R=T((y=>Ae(y,M)));d.useEffect((()=>{n||b!=="Not-Started"||M==null||(C(!0),c($t(M,!0,!m)))}),[n,b,M]);const te=h.externalConnections?.saveConnectionState,je=X(te);d.useEffect((()=>{je==="In-Progress"&&(te==="Completed"||te==="Error")&&U.isQBOPopupOpen&&D==="connect_ledger"&&(te==="Completed"?g.trackOnboardingQBOConnectionSuccess($.current.realmId,$.current.connectionId):g.trackOnboardingQBOConnectionFailed($.current.realmId,$.current.connectionId,h.externalConnections?.saveOAuthConnectionError?.message??""),c(me({isQBOPopupOpen:!1})))}),[te,je,U.isQBOPopupOpen,D,g,c]),d.useEffect((()=>{b==="Completed"&&m&&(c(dt({step:"connect_ledger"})),c(me({isQBOPopupOpen:!0})))}),[m,b]),d.useEffect((()=>{r==="Not-Started"&&c(Mt(!0))}),[r,c]);const ht=X(R.companyDetailsLocalData?.addressStatus);d.useEffect((()=>{R.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate==null&&R.companyDetailsLocalData?.addressStatus?.addressToCreate!=null&&ht==null&&c(ut({addressType:"company_registered_address",addressToCreate:R.companyDetailsLocalData?.addressStatus?.addressToCreate}))}),[R.companyDetailsLocalData?.addressStatus?.addressToCreate,R.companyDetailsLocalData?.registeredAddressStatus?.addressToCreate]);const Ct=R.isInterimEmailSent,Be=K.getSignedInUser();if(Be==null)throw Error("Can't access onboarding flow without signing in...");const bt=Te(F,h),St=we(h),Fe=h.company?.companyOnboardingInfo.isOnboardingCompleted,Ve=y=>y.trackPageLoaded(ve.Event.onboardingPage),ye=h.productSettings.isOtherProductsEnabled,It=ye===!0&&!lt(h),kt=h.productSettings.isTreasuryEnabled,Ue=Un({tenantEmailDomain:O??"",signedInUserEmail:Be.userEmail??"",companyId:M}),Re=(({companyId:y})=>{const z=se(),de=T((B=>B.onboardingCustomerViewState?.aiAgentsActivation)),ne=T((B=>Y(B).company?.companyOnboardingInfo?.onboardingInfo?.onboardingAiActivationInfo?.isOnboardingAiActivationViewed??!1)),he=d.useCallback((()=>{z(Vt())}),[z]);d.useEffect((()=>{he()}),[he]);const Le=d.useCallback((()=>{y==null||y===""||ne||z(Ut(y))}),[y,ne,z]),Ot=d.useMemo((()=>{if(y==null||y==="")return[];const B=`private-encrypted-${y}`;return[`${B}.ledger-ingestion.counts-updated`,`${B}.ai-agents-activation.phase-changed`]}),[y]),vt=d.useCallback(((B,ae)=>{if(ae==null||typeof ae!="object")return;const I=ae;if(B!=="ledger-ingestion.counts-updated"){if(B==="ai-agents-activation.phase-changed"){const ue=typeof I.phase_key=="string"?I.phase_key:typeof I.key=="string"?I.key:"",J=typeof I.status=="string"?I.status:"idle";if(ue==="")return;z(Lt({key:ue,status:J==="starting"||J==="building"||J==="ready"?J:"idle",startedAt:typeof I.started_at=="string"?I.started_at:void 0,completedAt:typeof I.completed_at=="string"?I.completed_at:void 0}))}}else z(Rt({customerCount:typeof I.customer_count=="number"?I.customer_count:void 0,glAccountCount:typeof I.gl_account_count=="number"?I.gl_account_count:void 0,targetTransactionCount:typeof I.target_transaction_count=="number"?I.target_transaction_count:void 0,transactionCount:typeof I.transaction_count=="number"?I.transaction_count:void 0,vendorCount:typeof I.vendor_count=="number"?I.vendor_count:void 0}))}),[z]);return Fn({events:Ot,onEvent:vt,onSubscribed:he}),d.useMemo((()=>{const B=de?.phases??[],ae=We(B,Se),I=We(B,Ie),ue=Xe(B,Se),J=Xe(B,Ie),Ne=B.some((Et=>Et.status!=="idle")),oe=!ne&&!Ne,Ge=ne&&!Ne,_t=Ge?Se.map((()=>"building")):ae,xt=Ge?Ie.map((()=>"building")):I;return{ledgerRowStatuses:oe?void 0:_t,backgroundRowStatuses:oe?void 0:xt,showLedgerReadyInLabel:oe?void 0:ue,showBackgroundReadyInLabel:oe?void 0:J,forceContinueEnabled:!oe||void 0,counts:de?.counts,onContinueClicked:Le}}),[de?.phases,de?.counts,ne,Le])})({companyId:M});if(Fe===!0){if(!ye)return kt?s.jsx(Q,{to:"../../treasury"}):bt?s.jsx(Q,{to:"../../checking"}):St?s.jsx(Q,{to:"../../cards"}):s.jsx(Q,{to:"../../dashboard"});const y=R.updateStatus.fetchState==="In-Progress";if(ye&&!y)return e?s.jsxs(Ye,{children:[s.jsx(re,{analytics:g,onLoad:z=>Ve(z)}),s.jsx(tt,{navigate:p,location:u,companyId:M,currentTenant:h,isAdmin:ce,isOnAddressPage:l,themeState:t,googleAPIKey:ge.googleMapsAPIKey,integrationsSectionProps:Ue,aiAgentsActivationProps:Re,meetingUrl:a("onboarding_overview")}),i!=null?s.jsx(et,{windowSize:v,skipLegacyDrawerOffset:l&&h.productSettings.isOtherProductsEnabled!==!0,children:i}):null]}):s.jsx(Q,{to:"../../onboarding/thankyou"})}else if(Fe===!1&&P?.loggedInUserRoleMap!=null)return Ct===!0&&It?s.jsx(Q,{to:"../../onboarding/thankyou"}):s.jsxs(Ye,{children:[s.jsx(re,{analytics:g,onLoad:y=>Ve(y)}),s.jsx(tt,{navigate:p,location:u,companyId:M,currentTenant:h,isAdmin:ce,isOnAddressPage:l,themeState:t,googleAPIKey:ge.googleMapsAPIKey,integrationsSectionProps:Ue,aiAgentsActivationProps:Re,meetingUrl:a("onboarding_overview")}),i!=null?s.jsx(et,{windowSize:v,skipLegacyDrawerOffset:l&&h.productSettings.isOtherProductsEnabled!==!0,children:i}):null]});return null},ke="external_integrations",Un=({tenantEmailDomain:e,signedInUserEmail:l,companyId:i})=>{const a=se(),{pendingAutoFocusTabId:p}=jn(),{plaidAccounts:u,onAddPlaidAccount:c,onReLoginPlaidAccount:v}=Bn({companyId:i}),t=T((r=>r.plaidAccountViewState.external_account.plaidConnectionDetails)),n=T((r=>Y(r))),C=T((r=>r.tenantState.fetchState)),o=T((r=>Qt(r,i))),A=T((r=>zt(r,ke))),w=d.useMemo((()=>new Set(A.map((r=>r.additionalInfo)).filter((r=>r!=null)))),[A]),k=n.tenantId,O=fe(n.userRole??[]);d.useEffect((()=>{a(Kt(ke))}),[a]);const P=o.externalConnections?.saveAPIKeyConnectionState,_=o.externalConnections?.saveAPIKeyConnectionError?.message,F=X(P);d.useEffect((()=>{F==="In-Progress"&&(P==="Completed"?g.trackIntegrationConnected("chargebee","Onboarding","revenue"):P==="Error"&&g.trackIntegrationConnectFailed("chargebee","Onboarding","revenue",_??""))}),[P,F,_]);const m=o.externalConnections?.saveOAuthConnectionState,b=o.externalConnections?.saveOAuthConnectionError?.message,D=X(m);d.useEffect((()=>{D==="In-Progress"&&(m==="Completed"?g.trackIntegrationConnected("hubspot","Onboarding","revenue"):m==="Error"&&g.trackIntegrationConnectFailed("hubspot","Onboarding","revenue",b??""))}),[m,D,b]);const U=o.externalConnections?.saveConnectorCredentialsStateBySlug,h=X(U);return d.useEffect((()=>{const r=U??{},x=h??{},E=o.externalConnections?.saveConnectorCredentialsErrorBySlug??{};Object.keys(r).forEach((f=>{if(x[f]!=="In-Progress")return;let j;try{j=Ce(f)}catch{return}r[f]==="Completed"?g.trackIntegrationConnected(j,"Onboarding","payments"):r[f]==="Error"&&g.trackIntegrationConnectFailed(j,"Onboarding","payments",E[f]?.message??"")}))}),[U,h,o]),d.useMemo((()=>({isAdmin:O,analytics:g,referrer:"Onboarding",integrationsView:o,isLoading:C==="In-Progress",notifyMeRegisteredSlugs:w,autoFocusTabId:p??void 0,saveChargeBeeState:o.externalConnections?.saveAPIKeyConnectionState??"Not-Started",saveChargeBeeError:o.externalConnections?.saveAPIKeyConnectionError?.message,saveHubSpotState:o.externalConnections?.saveOAuthConnectionState??"Not-Started",saveHubSpotError:o.externalConnections?.saveOAuthConnectionError?.message,saveConnectorCredentialsStateBySlug:o.externalConnections?.saveConnectorCredentialsStateBySlug??{},saveConnectorCredentialsErrorBySlug:Object.fromEntries(Object.entries(o.externalConnections?.saveConnectorCredentialsErrorBySlug??{}).map((([r,x])=>[r,x?.message]))),deleteConnectionState:o.externalConnections?.deleteConnectionState??"Not-Started",deleteConnectionError:o.externalConnections?.deleteConnectionError?.message,onConnectGmail:()=>{g.trackIntegrationConnectClicked("gmail","Onboarding","email"),a(Qe(k,"gmail",nt()))},onConnectOutlook:()=>{g.trackIntegrationConnectClicked("outlook","Onboarding","email"),a(Qe(k,"outlook",nt()))},onConnectHubSpot:(r,x)=>{const E=o.externalConnections?.revenue?.find((j=>j.connectionName==="hubspot"))?.connectionId;if(E==null)return;g.trackIntegrationCredentialsSubmitted("hubspot","Onboarding","revenue");const f=`${window.location.origin}/oauth/hubspot/callback`;sessionStorage.setItem("hubspot_oauth_pending",JSON.stringify({client_id:r,client_secret:x,connection_id:E,redirect_uri:f,tenant_id:k})),window.location.href=`https://app.hubspot.com/oauth/authorize?client_id=${encodeURIComponent(r)}&scope=${encodeURIComponent("oauth crm.objects.deals.read crm.objects.owners.read")}&redirect_uri=${encodeURIComponent(f)}`},onDisconnect:(r,x)=>{const E=[...o.externalConnections?.accounting??[],...o.externalConnections?.payments??[],...o.externalConnections?.revenue??[]].find((j=>j.connectionId===r))?.connectionName;let f;try{f=E!=null?Ce(E):void 0}catch{f=void 0}f!=null&&g.trackIntegrationDisconnected(f,"Onboarding",x),a(Wt(k,r,be(x)))},onNotifyMe:r=>{g.trackIntegrationsNotifyMeClicked("Onboarding",r),a(Jt(ke,r,l))},onReconnectQBO:()=>{ie.init("/onboarding/auth",e),ie.handleClick()},onRefreshClick:()=>{o.integrations.refreshQBO.fetchState!=="In-Progress"&&a(Zt())},onSaveChargeBeeCredentials:(r,x)=>{const E=o.externalConnections?.revenue?.find((f=>f.connectionName==="chargebee"))?.connectionId;E!=null&&(g.trackIntegrationCredentialsSubmitted("chargebee","Onboarding","revenue"),a(Ht(k,E,be("revenue"),Ce("chargebee"),{api_key:r,site:x})))},onSaveConnectorCredentials:r=>{g.trackIntegrationCredentialsSubmitted(r.connectionName,"Onboarding","payments"),a(qt(k,be("payments"),r))},plaidAccounts:u,onAddPlaidAccount:c,onReLoginPlaidAccount:v,plaidConnectionDetails:t})),[O,o,C,w,p,k,l,e,a,u,c,v,t])};function nt(){const e=new URL(window.location.href);return e.searchParams.set("onboarding_step","connect_data_source"),e.toString()}function at(e,l,i){let a=`/${e}/onboarding/address`;return a=i!=null?a.concat(`/edit/${l}/${encodeURIComponent(i)}`):a.concat(`/new/${l}`),a}const ot=De.div`
|
|
27
27
|
display: flex;
|
|
28
28
|
height: 100vh;
|
|
29
29
|
background-color: ${e=>e.theme.colors.grey4};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as d}from"./liveblocks-C_txwMxP.js";import{i as q,j as _,g as H,u as z,h as J,l as oe,k as oa,n as ft,o as O,N as In}from"./core-_lmxLuL7.js";import{fF as L,VP as Je,bE as sa,br as Te,Xa as En,ka as Tn,Xb as Yt,Xc as wn,kd as gt,Xd as We,Xe as xn,ki as Dn,Xf as Xt,Xg as Pn,km as bt,Xh as Ze,Xi as Fn,Xj as On,W7 as jn,lo as Rn,Xk as Mn,bn as et,Xl as ra,WN as ue,bc as ia,lC as ca,ll as la,WP as me,WO as ne,fE as da,ga as Bn,gq as Ct,Xm as Un,Xn as Ln,Xo as ua,Xp as Oe,DV as Ue,DW as Le,Ei as we,Ec as pe,D_ as Ve,Xq as Vn,b$ as Ye,Xr as Yn,Xs as Xn,Xt as ma,Xu as je,Xv as Gn,ei as tt,A6 as pa,Xw as Nn,Xx as ha,Xy as $n,Xz as zn,XA as Kn,XB as St,UL as kt,u6 as xe,l$ as De,Es as yt,Ad as qn,Ak as Qn,XC as Wn,XD as Zn,DX as Gt,XE as Hn,A9 as Ie,A4 as fa,XF as be,XG as Nt,XH as Jn,XI as vt,UK as At,Ch as ga,XJ as eo,XK as ba,XL as to,XM as ao,XN as no,XO as It,Cw as oo,CD as so,XP as ro,XQ as io,DZ as $t,XR as co,Cf as Ca,XS as Ce,XT as zt,XU as lo,bq as _a,Ex as Sa,XV as uo,XW as ka,XX as mo,XY as po,XZ as ho,X_ as Et,Ep as fo,Er as go,X$ as bo,Y0 as Co,DY as Kt,Y1 as _o,Ev as ya,Y2 as _e,Y3 as qt,Y4 as So,Y5 as ko,Y6 as va,lQ as Aa,pX as Ia,lV as Ea,pV as Ta,pU as wa,pT as xa,BE as yo,dc as vo,pQ as Ao,U6 as Io,q5 as Eo,Y7 as To,Y8 as wo,Y9 as xo,b5 as Tt,p$ as Do,ic as Po,gI as Fo,p_ as Oo,le as jo,pY as Ro,pW as Mo,d_ as Bo,dZ as Uo}from"./zeni-epic-state-CtlpRqoe.js";import{z as V,aw as se,p as j,j as w,G as Q,bc as Lo,at as Xe,a9 as Ge,bd as Da,W as N,be as Vo,bf as Pa,E as Yo,bg as Xo,bh as Go,a as Fa,a2 as Oa,e as ja,as as No,bi as $o,ap as zo,c as Pe,bj as Ra,s as ce,bk as Ma,bl as Ba,av as Ua,bm as Ko,aj as Ne,Q as $e,v as Y,bn as qo,N as Qo,bo as Wo,H as Zo,h as Ho,a5 as Jo,ar as es,bp as ts,bq as as,br as ns,bs as Ee}from"./index-B6grZ9sx.js";import{n as wt}from"./mui-DbFwPEO7.js";import{a as b}from"./sentry-D_60LtUS.js";import{w as La}from"./withTransactionSidePanel-ByOeZF9g.js";import{c as Va,t as Fe,f as he,b as xt,a as Dt,v as os}from"./routePaths-hwxApcva.js";import{u as re}from"./useAskAiCfoHostNavButtonProps-DycPeMu8.js";import Be from"./NotFoundScreen-DNVEwzIN.js";import{u as Pt}from"./useInitialThreadRequest-C01HUFbF.js";import{t as Ya}from"./analyticsHelper-4iM19yWB.js";import{C as ss}from"./CompanyPassportScreen-DSh6Ipzn.js";import{u as rs}from"./useAiCfoDashboardSuggestedQuestionsChips-j_HLw6hE.js";import{F as is}from"./FeaturePreviewScreen-Bu4co2D3.js";import"./recharts-B43pV0TY.js";import"./analytics-BLHCH9ZW.js";import"./plaid-DHbQ1Fnc.js";import"./dnd-4_dRT_p_.js";import"./stripe-cKAAJElX.js";import"./lottie-CyJj6i4R.js";import"./lexical-BibO8P7-.js";import"./pdf-BfgO0ZZE.js";import"./utils-CPbtTTqo.js";import"./TransactionDetailScreen-qryWPLpS.js";import"./decodeURIComponentSafe-CNj7wDd5.js";import"./expenseAutomationHelper-C8o4PBoS.js";import"./stripSplatSuffix-BWXYYZxG.js";import"./MobileAppDrawer-COi151oe.js";import"./InboxNotificationsProvider-CvLL3Xda.js";import"./useTaskManagerAccess-vvZ5G9JM.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]="47f1d310-59bb-46ce-be0d-07abb1134caa",e._sentryDebugIdIdentifier="sentry-dbid-47f1d310-59bb-46ce-be0d-07abb1134caa")}catch{}})();const cs=La((function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{vendorId:o,reportDate:r}=q(),s=V.getSignedInUser(),i=_((E=>E.tenantState.currentTenantId)),l=_((E=>L(E))),{tenantEmailDomain:m}=q(),p=H(),h=l?.companyName??"",f={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i??""},c=b.useMemo((()=>({authParams:f,companyName:h,downloadEndPoint:`${se}/agingDetailedReport`,timezone:Je()})),[]),u=b.useMemo((()=>r!=null?sa(r):Te()),[r]),C=z(),g=J(),k=_((E=>En(E,u,o))),I=b.useCallback((()=>{o!=null&&k.fetchState!=="In-Progress"&&k.fetchState!=="Completed"&&C(Tn(o,u))}),[u]),v=b.useCallback((()=>{g("../../",{relative:"path"})}),[]),S=b.useCallback(((E,P)=>{C(Yt({sortKey:E,sortOrder:P}))}),[]),T=b.useCallback((E=>{C(Yt({downloadState:E}))}),[]),B=b.useCallback((E=>{if(e)e(E.transactionId,E.transactionType);else if(m!=null){const P=Va({id:E.transactionId,type:E.transactionType},m);g(P);const y=j(p.state?.pathnameStackToGoBack,p.pathname);g(P,{state:{pathnameStackToGoBack:y}})}}),[m,e]),D=b.useCallback((()=>{k.vendor!=null&&w.trackApAgingDetail("AP Aging",u.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),k.vendor.id,k.vendor.name)}),[k.vendor,u]);return b.useEffect((()=>{I()}),[]),b.useEffect((()=>{k.fetchState==="Completed"&&D()}),[D,k.fetchState]),d.jsx(Lo,{apAgingDetail:k,downloadParams:c,reportDate:u,analytics:w,onTransactionClick:B,onReload:I,onBackClick:v,onColumnSortConfigChanged:S,updateDownloadStateHandler:T,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})})),ls=()=>{const e=z(),a=J(),t=_((S=>wn(S))),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=re({mobileExploreReferrer:"AP Aging"});Xe({isDataReady:t.fetchState==="Completed"});const r=V.getSignedInUser(),s=_((S=>S.tenantState.currentTenantId)),i=_((S=>L(S))),l=i?.companyName??"",m={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s??""},p=b.useMemo((()=>({authParams:m,companyName:l,downloadEndPoint:`${se}/agingReport`,timezone:Je()})),[]),h=t.apAgingUIState.selectedDate??Te(),f=b.useCallback((()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(gt(h))}),[]);b.useEffect((()=>{f()}),[]);const c=b.useCallback((()=>{a("../",{relative:"path"})}),[]),u=b.useCallback((S=>{e(We({searchString:S}))}),[]),C=b.useCallback(((S,T)=>{e(We({sortKey:T,sortOrder:S}))}),[]),g=b.useCallback((S=>{a(`./${S}/${h.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)}),[h]),k=b.useCallback((S=>{e(We({downloadState:S}))}),[]),I=b.useCallback(((S,T)=>{}),[]),v=b.useCallback(((S,T)=>{e(We({selectedDate:S,agingDateSelectionType:T})),e(gt(S))}),[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ge,{analytics:w,onLoad:S=>S.trackPageLoaded(N.Event.agingReport,"AP Aging")}):null,d.jsx(Da,{uiState:t.apAgingUIState,report:t,downloadParams:p,analytics:w,onReloadReport:f,onBackClick:c,onSearchTextChange:u,onSortOrderChange:C,onEntityNameClick:g,updateDownloadStateHandler:k,onSelectedDateChanged:v,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},ds=La((function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{customerId:o,reportDate:r}=q(),s=V.getSignedInUser(),i=_((D=>L(D))),{tenantEmailDomain:l}=q(),m=H(),p=i.companyName,h={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i.tenantId},f=b.useMemo((()=>({authParams:h,companyName:p,downloadEndPoint:`${se}/agingDetailedReport`,timezone:Je()})),[]),c=b.useMemo((()=>r!=null?sa(r):Te()),[r]),u=z(),C=J(),g=_((D=>xn(D,c,o))),k=b.useCallback((()=>{o!=null&&g.fetchState!=="In-Progress"&&g.fetchState!=="Completed"&&u(Dn(o,c))}),[c]),I=b.useCallback((()=>{C("../../",{relative:"path"})}),[]),v=b.useCallback(((D,E)=>{u(Xt({sortKey:D,sortOrder:E}))}),[]),S=b.useCallback((D=>{u(Xt({downloadState:D}))}),[]),T=b.useCallback((D=>{if(e)e(D.transactionId,D.transactionType);else if(l!=null){const E=Va({id:D.transactionId,type:D.transactionType},l);C(E);const P=j(m.state?.pathnameStackToGoBack,m.pathname);C(E,{state:{pathnameStackToGoBack:P}})}}),[l,e]),B=b.useCallback((()=>{g.customer!=null&&w.trackArAgingDetail("AR Aging",c.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),g.customer.id,g.customer.name)}),[g.customer,c]);return b.useEffect((()=>{k()}),[]),b.useEffect((()=>{g.fetchState==="Completed"&&B()}),[g.fetchState,B]),d.jsx(Vo,{arAgingDetail:g,downloadParams:f,reportDate:c,analytics:w,onTransactionClick:T,onReload:k,onBackClick:I,onColumnSortConfigChanged:v,updateDownloadStateHandler:S,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})})),us=()=>{const e=z(),a=J(),t=_((v=>Pn(v))),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=re({mobileExploreReferrer:"AR Aging"});Xe({isDataReady:t.fetchState==="Completed"});const r=V.getSignedInUser(),s=_((v=>L(v))),i=s.companyName,l={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s.tenantId},m=b.useMemo((()=>({authParams:l,companyName:i,downloadEndPoint:`${se}/agingReport`,timezone:Je()})),[]),p=t.arAgingUIState.selectedDate??Te(),h=b.useCallback((()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(bt(p))}),[]);b.useEffect((()=>{h()}),[]);const f=b.useCallback((()=>{a("../",{relative:"path"})}),[]),c=b.useCallback((v=>{e(Ze({searchString:v}))}),[]),u=b.useCallback(((v,S)=>{e(Ze({sortKey:S,sortOrder:v}))}),[]),C=b.useCallback((v=>{a(`./${v}/${p.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)}),[p]),g=b.useCallback((v=>{e(Ze({downloadState:v}))}),[]),k=b.useCallback(((v,S)=>{e(Ze({selectedDate:v,agingDateSelectionType:S})),e(bt(v))}),[]),I=b.useCallback(((v,S)=>{e(Fn({nodeId:v,isCollapsed:S}))}),[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ge,{analytics:w,onLoad:v=>v.trackPageLoaded(N.Event.agingReport,"AR Aging")}):null,d.jsx(Da,{uiState:t.arAgingUIState,report:t,downloadParams:m,analytics:w,onReloadReport:h,onBackClick:f,onSearchTextChange:c,onSortOrderChange:u,onEntityNameClick:C,updateDownloadStateHandler:g,onSelectedDateChanged:k,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},Xa=(e,a)=>({key:a,title:e.accountName,amount:e.balance?.available,logoUri:e.logo?.toString(),source:e});function Ga(e,a){const t=jn(a.firstMonthOfFY);return{onItemClick:(n,o)=>{const r=o.accountName===""?o.accountDescription:o.accountName,s=Fe(a.tenantEmailDomain,o.accountId,o.accountType,r,"quarter",t,!1),i=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i,referrer:a.referrerType}})},onSetAccountsStatementDate:(n,o)=>{e(Rn(n,o))}}}const ms=oe((function(e){const a=On(e).accountsInOrder.map(((t,n)=>Xa(t,n)));return{sectionTitle:Q.getLocalizedStrings().balanceCard.cashBalanceSectionTitle,transactionArray:a,fetchState:e.cashBalanceState.fetchState,analytics:w}}),Ga)(Pa),ps=oe((function(e){const a=Mn(e).accountsInOrder.map(((o,r)=>Xa(o,r))),t=V.getSignedInUser(),n=et(t);return{sectionTitle:Q.getLocalizedStrings().balanceCard.cardBalanceSectionTitle,transactionArray:a,isZeniUser:n,fetchState:e.cardBalanceState.fetchState,analytics:w}}),Ga)(Pa);function hs(){const e=J(),a=H(),{tenantEmailDomain:t}=q(),n=_((o=>L(o).company?.companyInfo.firstMonthOfFY??1));return _((o=>o.cashBalanceState.fetchState))==="Error"?d.jsx(Be,{}):d.jsx(ms,{tenantEmailDomain:t,location:a,referrerType:"Cash Balance",navigate:e,firstMonthOfFY:n})}function fs(){const e=J(),a=H(),{tenantEmailDomain:t}=q(),n=_((o=>L(o).company?.companyInfo.firstMonthOfFY??1));return _((o=>o.cardBalanceState.fetchState))==="Error"?d.jsx(Be,{}):d.jsx(ps,{tenantEmailDomain:t,location:a,referrerType:"Card Balance",navigate:e,firstMonthOfFY:n})}const gs=wt.div`
|
|
1
|
+
import{j as d}from"./liveblocks-CVtnm86a.js";import{i as q,j as S,g as H,u as z,h as J,l as oe,k as oa,n as ft,o as O,N as In}from"./core-BtMsWhj9.js";import{fF as L,VT as Je,bE as sa,br as Te,Xe as En,ka as Tn,Xf as Vt,Xg as wn,kd as gt,Xh as We,Xi as xn,ki as Dn,Xj as Gt,Xk as Pn,km as bt,Xl as Ze,Xm as Fn,Xn as On,Wb as jn,lo as Rn,Xo as Mn,bn as et,Xp as ra,WR as ue,bc as ia,lC as ca,ll as la,WT as me,WS as ne,fE as da,ga as Bn,gq as Ct,Xq as Un,Xr as Ln,Xs as ua,Xt as Oe,DZ as Ue,D_ as Le,Em as we,Eg as pe,E2 as Ye,Xu as Yn,b$ as Ve,Xv as Vn,Xw as Gn,Xx as ma,Xy as je,Xz as Nn,ei as tt,Aa as pa,XA as Xn,XB as ha,XC as $n,XD as zn,XE as Kn,XF as _t,UP as kt,ua as xe,l$ as De,Ew as yt,Ah as qn,Ao as Qn,XG as Wn,XH as Zn,D$ as Nt,XI as Hn,Ad as Ie,A8 as fa,XJ as be,XK as Xt,XL as Jn,XM as vt,UO as At,Cl as ga,XN as eo,XO as ba,XP as to,XQ as ao,XR as no,XS as It,CA as oo,CH as so,XT as ro,XU as io,E1 as $t,XV as co,Cj as Ca,XW as Ce,XX as zt,XY as lo,bq as Sa,EB as _a,XZ as uo,X_ as ka,X$ as mo,Y0 as po,Y1 as ho,Y2 as Et,Et as fo,Ev as go,Y3 as bo,Y4 as Co,E0 as Kt,Y5 as So,Ez as ya,Y6 as Se,Y7 as qt,Y8 as _o,Y9 as ko,Ya as va,lQ as Aa,pX as Ia,lV as Ea,pV as Ta,pU as wa,pT as xa,BI as yo,dc as vo,pQ as Ao,Ua as Io,q5 as Eo,Yb as To,Yc as wo,Yd as xo,b5 as Tt,p$ as Do,ic as Po,gI as Fo,p_ as Oo,le as jo,pY as Ro,pW as Mo,d_ as Bo,dZ as Uo}from"./zeni-epic-state-xhG_euwn.js";import{z as Y,aw as se,p as j,j as w,G as Q,bc as Lo,at as Ge,a9 as Ne,bd as Da,T as X,be as Yo,bf as Pa,E as Vo,bg as Go,bh as No,a as Fa,a2 as Oa,e as ja,as as Xo,bi as $o,ap as zo,c as Pe,bj as Ra,s as ce,bk as Ma,bl as Ba,av as Ua,bm as Ko,aj as Xe,Q as $e,v as V,bn as qo,K as Qo,bo as Wo,Y as Zo,h as Ho,a5 as Jo,ar as es,bp as ts,bq as as,br as ns,bs as Ee}from"./index-BdE3bEFg.js";import{n as wt}from"./mui-DdZ2UeI1.js";import{a as b}from"./sentry-BzkfMVrG.js";import{w as La}from"./withTransactionSidePanel-BrwXnQ2x.js";import{c as Ya,t as Fe,f as he,b as xt,a as Dt,v as os}from"./routePaths-znAFGC3M.js";import{u as re}from"./useAskAiCfoHostNavButtonProps-yiVAQfVL.js";import Be from"./NotFoundScreen-BudPMncf.js";import{u as Pt}from"./useInitialThreadRequest-CRJTlzEQ.js";import{t as Va}from"./analyticsHelper-DvdruwkE.js";import{C as ss}from"./CompanyPassportScreen-BbxvKQ4h.js";import{u as rs}from"./useAiCfoDashboardSuggestedQuestionsChips-RBwji9iv.js";import{F as is}from"./FeaturePreviewScreen-DrZBk8z9.js";import"./recharts-DhwkC6iY.js";import"./analytics-B3pE_Rhv.js";import"./plaid-nsaMWH8B.js";import"./dnd-NbF88ub7.js";import"./stripe-cKAAJElX.js";import"./lottie-DX_KUXtr.js";import"./lexical-OFbGuPVJ.js";import"./pdf-Ck6JVYdq.js";import"./utils-BrzWPNCR.js";import"./TransactionDetailScreen-DVTW16A1.js";import"./decodeURIComponentSafe-roe2OgG2.js";import"./expenseAutomationHelper-oTNGiYVa.js";import"./stripSplatSuffix-BORWr7jN.js";import"./MobileAppDrawer-C4BbqfYY.js";import"./InboxNotificationsProvider-0KkUrcUF.js";import"./useTaskManagerAccess-CtzHb9vx.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]="46ccbbfc-be07-4042-9f41-51e1a4c96e73",e._sentryDebugIdIdentifier="sentry-dbid-46ccbbfc-be07-4042-9f41-51e1a4c96e73")}catch{}})();const cs=La((function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{vendorId:o,reportDate:r}=q(),s=Y.getSignedInUser(),i=S((E=>E.tenantState.currentTenantId)),l=S((E=>L(E))),{tenantEmailDomain:m}=q(),p=H(),h=l?.companyName??"",f={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i??""},c=b.useMemo((()=>({authParams:f,companyName:h,downloadEndPoint:`${se}/agingDetailedReport`,timezone:Je()})),[]),u=b.useMemo((()=>r!=null?sa(r):Te()),[r]),C=z(),g=J(),k=S((E=>En(E,u,o))),I=b.useCallback((()=>{o!=null&&k.fetchState!=="In-Progress"&&k.fetchState!=="Completed"&&C(Tn(o,u))}),[u]),v=b.useCallback((()=>{g("../../",{relative:"path"})}),[]),_=b.useCallback(((E,P)=>{C(Vt({sortKey:E,sortOrder:P}))}),[]),T=b.useCallback((E=>{C(Vt({downloadState:E}))}),[]),B=b.useCallback((E=>{if(e)e(E.transactionId,E.transactionType);else if(m!=null){const P=Ya({id:E.transactionId,type:E.transactionType},m);g(P);const y=j(p.state?.pathnameStackToGoBack,p.pathname);g(P,{state:{pathnameStackToGoBack:y}})}}),[m,e]),D=b.useCallback((()=>{k.vendor!=null&&w.trackApAgingDetail("AP Aging",u.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),k.vendor.id,k.vendor.name)}),[k.vendor,u]);return b.useEffect((()=>{I()}),[]),b.useEffect((()=>{k.fetchState==="Completed"&&D()}),[D,k.fetchState]),d.jsx(Lo,{apAgingDetail:k,downloadParams:c,reportDate:u,analytics:w,onTransactionClick:B,onReload:I,onBackClick:v,onColumnSortConfigChanged:_,updateDownloadStateHandler:T,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})})),ls=()=>{const e=z(),a=J(),t=S((_=>wn(_))),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=re({mobileExploreReferrer:"AP Aging"});Ge({isDataReady:t.fetchState==="Completed"});const r=Y.getSignedInUser(),s=S((_=>_.tenantState.currentTenantId)),i=S((_=>L(_))),l=i?.companyName??"",m={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s??""},p=b.useMemo((()=>({authParams:m,companyName:l,downloadEndPoint:`${se}/agingReport`,timezone:Je()})),[]),h=t.apAgingUIState.selectedDate??Te(),f=b.useCallback((()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(gt(h))}),[]);b.useEffect((()=>{f()}),[]);const c=b.useCallback((()=>{a("../",{relative:"path"})}),[]),u=b.useCallback((_=>{e(We({searchString:_}))}),[]),C=b.useCallback(((_,T)=>{e(We({sortKey:T,sortOrder:_}))}),[]),g=b.useCallback((_=>{a(`./${_}/${h.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)}),[h]),k=b.useCallback((_=>{e(We({downloadState:_}))}),[]),I=b.useCallback(((_,T)=>{}),[]),v=b.useCallback(((_,T)=>{e(We({selectedDate:_,agingDateSelectionType:T})),e(gt(_))}),[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ne,{analytics:w,onLoad:_=>_.trackPageLoaded(X.Event.agingReport,"AP Aging")}):null,d.jsx(Da,{uiState:t.apAgingUIState,report:t,downloadParams:p,analytics:w,onReloadReport:f,onBackClick:c,onSearchTextChange:u,onSortOrderChange:C,onEntityNameClick:g,updateDownloadStateHandler:k,onSelectedDateChanged:v,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},ds=La((function({openTransactionPanel:e,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n}){const{customerId:o,reportDate:r}=q(),s=Y.getSignedInUser(),i=S((D=>L(D))),{tenantEmailDomain:l}=q(),m=H(),p=i.companyName,h={userId:s?.userId??"",sessionId:s?.zeniSessionId??"",tenantId:i.tenantId},f=b.useMemo((()=>({authParams:h,companyName:p,downloadEndPoint:`${se}/agingDetailedReport`,timezone:Je()})),[]),c=b.useMemo((()=>r!=null?sa(r):Te()),[r]),u=z(),C=J(),g=S((D=>xn(D,c,o))),k=b.useCallback((()=>{o!=null&&g.fetchState!=="In-Progress"&&g.fetchState!=="Completed"&&u(Dn(o,c))}),[c]),I=b.useCallback((()=>{C("../../",{relative:"path"})}),[]),v=b.useCallback(((D,E)=>{u(Gt({sortKey:D,sortOrder:E}))}),[]),_=b.useCallback((D=>{u(Gt({downloadState:D}))}),[]),T=b.useCallback((D=>{if(e)e(D.transactionId,D.transactionType);else if(l!=null){const E=Ya({id:D.transactionId,type:D.transactionType},l);C(E);const P=j(m.state?.pathnameStackToGoBack,m.pathname);C(E,{state:{pathnameStackToGoBack:P}})}}),[l,e]),B=b.useCallback((()=>{g.customer!=null&&w.trackArAgingDetail("AR Aging",c.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat),g.customer.id,g.customer.name)}),[g.customer,c]);return b.useEffect((()=>{k()}),[]),b.useEffect((()=>{g.fetchState==="Completed"&&B()}),[g.fetchState,B]),d.jsx(Yo,{arAgingDetail:g,downloadParams:f,reportDate:c,analytics:w,onTransactionClick:T,onReload:k,onBackClick:I,onColumnSortConfigChanged:v,updateDownloadStateHandler:_,panelContent:a,sidePanelIsOpen:t,sidePanelIsFullView:n})})),us=()=>{const e=z(),a=J(),t=S((v=>Pn(v))),{isAiCfoAccessEnabled:n,onAskAiCfoClick:o}=re({mobileExploreReferrer:"AR Aging"});Ge({isDataReady:t.fetchState==="Completed"});const r=Y.getSignedInUser(),s=S((v=>L(v))),i=s.companyName,l={userId:r?.userId??"",sessionId:r?.zeniSessionId??"",tenantId:s.tenantId},m=b.useMemo((()=>({authParams:l,companyName:i,downloadEndPoint:`${se}/agingReport`,timezone:Je()})),[]),p=t.arAgingUIState.selectedDate??Te(),h=b.useCallback((()=>{t.fetchState!=="In-Progress"&&t.fetchState!=="Completed"&&e(bt(p))}),[]);b.useEffect((()=>{h()}),[]);const f=b.useCallback((()=>{a("../",{relative:"path"})}),[]),c=b.useCallback((v=>{e(Ze({searchString:v}))}),[]),u=b.useCallback(((v,_)=>{e(Ze({sortKey:_,sortOrder:v}))}),[]),C=b.useCallback((v=>{a(`./${v}/${p.format(Q.getLocalizedStrings().dateFormat.analytics.YYYYDashMMDashDDFormat)}`)}),[p]),g=b.useCallback((v=>{e(Ze({downloadState:v}))}),[]),k=b.useCallback(((v,_)=>{e(Ze({selectedDate:v,agingDateSelectionType:_})),e(bt(v))}),[]),I=b.useCallback(((v,_)=>{e(Fn({nodeId:v,isCollapsed:_}))}),[]);return d.jsxs(d.Fragment,{children:[t.fetchState==="Completed"?d.jsx(Ne,{analytics:w,onLoad:v=>v.trackPageLoaded(X.Event.agingReport,"AR Aging")}):null,d.jsx(Da,{uiState:t.arAgingUIState,report:t,downloadParams:m,analytics:w,onReloadReport:h,onBackClick:f,onSearchTextChange:c,onSortOrderChange:u,onEntityNameClick:C,updateDownloadStateHandler:g,onSelectedDateChanged:k,onNodeCollapseToggled:I,isAiCfoAccessEnabled:n,onAskAiCfoClick:o})]})},Ga=(e,a)=>({key:a,title:e.accountName,amount:e.balance?.available,logoUri:e.logo?.toString(),source:e});function Na(e,a){const t=jn(a.firstMonthOfFY);return{onItemClick:(n,o)=>{const r=o.accountName===""?o.accountDescription:o.accountName,s=Fe(a.tenantEmailDomain,o.accountId,o.accountType,r,"quarter",t,!1),i=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(s,{state:{pathnameStackToGoBack:i,referrer:a.referrerType}})},onSetAccountsStatementDate:(n,o)=>{e(Rn(n,o))}}}const ms=oe((function(e){const a=On(e).accountsInOrder.map(((t,n)=>Ga(t,n)));return{sectionTitle:Q.getLocalizedStrings().balanceCard.cashBalanceSectionTitle,transactionArray:a,fetchState:e.cashBalanceState.fetchState,analytics:w}}),Na)(Pa),ps=oe((function(e){const a=Mn(e).accountsInOrder.map(((o,r)=>Ga(o,r))),t=Y.getSignedInUser(),n=et(t);return{sectionTitle:Q.getLocalizedStrings().balanceCard.cardBalanceSectionTitle,transactionArray:a,isZeniUser:n,fetchState:e.cardBalanceState.fetchState,analytics:w}}),Na)(Pa);function hs(){const e=J(),a=H(),{tenantEmailDomain:t}=q(),n=S((o=>L(o).company?.companyInfo.firstMonthOfFY??1));return S((o=>o.cashBalanceState.fetchState))==="Error"?d.jsx(Be,{}):d.jsx(ms,{tenantEmailDomain:t,location:a,referrerType:"Cash Balance",navigate:e,firstMonthOfFY:n})}function fs(){const e=J(),a=H(),{tenantEmailDomain:t}=q(),n=S((o=>L(o).company?.companyInfo.firstMonthOfFY??1));return S((o=>o.cardBalanceState.fetchState))==="Error"?d.jsx(Be,{}):d.jsx(ps,{tenantEmailDomain:t,location:a,referrerType:"Card Balance",navigate:e,firstMonthOfFY:n})}const gs=wt.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex: 1 1 auto;
|
|
4
4
|
min-height: 100%;
|
|
@@ -10,11 +10,11 @@ import{j as d}from"./liveblocks-C_txwMxP.js";import{i as q,j as _,g as H,u as z,
|
|
|
10
10
|
flex-direction: column;
|
|
11
11
|
align-items: center;
|
|
12
12
|
background-color: ${e=>e.theme.colors.grey4};
|
|
13
|
-
`;function Cs({title:e,reportId:a,entityAutoCompleteView:t,autoCompleteText:n,isAiCfoAccessEnabled:o,onAskAiCfoClick:r}){const s=J(),i=z(),l=H(),{tenantEmailDomain:m}=q(),p=Yo();return d.jsxs(gs,{children:[d.jsx(Xo,{source:a==="cash_balance"?"CashBalanceDetailScreen":"CardBalanceDetailScreen",title:e,onBackClick:()=>{s("../")},hideSearchBtn:!0,backgroundColor:p.colors.grey4,searchAutoComplete:{autoCompleteData:{entityAutoCompleteView:t,autoCompleteText:n},autoCompleteActions:{onAutoCompleteInputChange:h=>{h.trim().length>=2?i(me({searchString:h,searchOrigin:"navbar"})):h.trim().length===0&&i(ne("navbar"))},onAutoCompleteEntity:h=>{n!=null&&w?.trackSearch(N.Event.search,_s(a),h.type,h.name,n);const f=he(h,m),c=j(l.state?.pathnameStackToGoBack,l.pathname);s(f,{state:{pathnameStackToGoBack:c}})}}},rightSideComponent:d.jsx(Go,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r})}),d.jsx(bs,{children:a==="cash_balance"?d.jsx(hs,{}):d.jsx(fs,{})})]})}function Qt(){const e=H(),a=z(),t=_((c=>c.cashBalanceState.fetchState)),n=_((c=>c.cardBalanceState.fetchState)),o=V.getSignedInUser();if(o==null)throw Error("Can't access dashboard detail without signing in...");const r=ra((c=>{const u=ia(c,"/").split("/");return u[u.length-1]})(e.pathname));let s="Not-Started",i="";const l=Q.getLocalizedStrings();switch(r){case"cash_balance":s=t,i=l.common.texts.cashBalance;break;case"card_balance":s=n,i=l.reportTitleById.card_balance;break;default:console.error(`${r} is not supported!`)}const{isAiCfoAccessEnabled:m,onAskAiCfoClick:p}=re({mobileExploreReferrer:r==="card_balance"?"Card Balance":"Cash Balance"});Xe({isDataReady:s==="Completed"});const h=_((c=>c.entityAutoCompleteState.autoCompleteText.navbar)),f=_((c=>ue(c,"navbar")));return b.useEffect((()=>{s==="Not-Started"&&(function(c,u){switch(u){case"card_balance":c(la());break;case"cash_balance":c(ca());break;default:throw new Error(`balance report type ${u} is not yet supported`)}})(a,r)}),[o,a,s]),d.jsxs(d.Fragment,{children:[s==="Completed"?d.jsx(Ge,{analytics:w,onLoad:c=>((u,C)=>{switch(C){case"card_balance":u.trackPageLoaded(N.Event.cardBalance);break;case"cash_balance":u.trackPageLoaded(N.Event.cashBalance);break;default:console.error(`Analytics: Not tracking Page Loaded for ${C}!`)}})(c,r)}):null,d.jsx(Cs,{title:i,reportId:r,autoCompleteText:h,entityAutoCompleteView:f,isAiCfoAccessEnabled:m,onAskAiCfoClick:p})]})}const _s=e=>{switch(e){case"cash_balance":return"Cash Balance";case"card_balance":return"Card Balance";default:return"Dashboard"}},Ss=[],Wt="insights_section";function ze(e){const{mobileExploreReferrer:a}=e,t=z(),n=J(),o=H(),{tenantEmailDomain:r}=q(),{setIsAiCfoOpen:s,setAiCfoSidePanelQuestionToSubmit:i}=Fa(),l=Oa(),m=Ua(l),p=oa(),h=_((R=>R.tenantState.fetchState==="Completed"||R.tenantState.activeTenantFetchState.fetchState==="Completed"?L(R):void 0)),f=h?.masterTOSInfo?.isMasterTOSAccepted??!1,c=_((R=>da(R))),u=c.uiState?.currentChatSessionId,C=c.allSessionsWithOrderedQuestionAnswers??Ss,g=V.getSignedInUser()?.userId,k=ja(),I=No()&&k&&r!=null,v=$o(),S=zo(!0),T=_((R=>v!=null?Bn(R,v):void 0)),{useDynamicConfig:B}=Pe(),{configValue:D}=B(Ra.aiCfoMessageDynamicConfig),E=b.useMemo((()=>Array.isArray(D.default_message_list)?D.default_message_list:[]),[D.default_message_list]),P=b.useMemo((()=>E.slice(0,2)),[E]),y=v!=null&&T!=null&&T.fetchState!=="Completed"&&T.fetchState!=="Error"&&(S||T.fetchState==="In-Progress"),x=b.useMemo((()=>{if(v==null||T?.fetchState==="Error")return P;if(y)return[];const R=(T?.suggestedQuestions??[]).map((ee=>ee.trim())).filter((ee=>ee.length>0)).slice(0,2);return R.length===0?P:R}),[P,y,v,T?.fetchState,T?.suggestedQuestions]),ie=b.useCallback(((R,ee)=>{if(g==null||R.trim()==="")return;if(!f)return void ce({location:o,navigate:n,mergeState:{referrer:a,aiCfoInitialQuestion:R,aiCfoInitialSubmissionSource:Wt,aiCfoSuggestionIndex:ee}});const qe=Ma(p.getState());if(m){const Qe=j(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Qe,referrer:a,aiCfoInitialQuestion:R,aiCfoShouldSubmit:!qe}})}else{if(qe)return t(Ct(R)),void s(!0);i(R),s(!0),Ba(t,R,Wt,u,C,g,ee,void 0)}}),[C,u,t,f,m,o,a,n,s,i,p,r,g]),Se=b.useCallback((()=>{if(f)if(m){const R=j(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:R,referrer:a}})}else s(!0);else ce({location:o,navigate:n,mergeState:{referrer:a}})}),[f,m,o,a,n,s,r]);return b.useMemo((()=>{if(I)return{isSuggestedQuestionsLoading:y,onAskSomethingElseClick:Se,onSuggestedQuestionClick:ie,suggestedQuestions:x}}),[I,y,Se,ie,x])}const Ke=Ko,ks=oe((function(e){const a=Un(e),t=Ln(e),n=ua(e),{scrollPosition:o,...r}=n,s=Q.getLocalizedStrings().reportTitleById.cash_in_cash_out,i=V.getSignedInUser(),l=e.tenantState.currentTenantId,m=L(e),p=m?.companyName??"",h={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:l??""},f=e.entityAutoCompleteState.autoCompleteText.navbar,c=ue(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:p,statementEndPoint:`${se}/statement`,authParams:h},analytics:w,autoCompleteData:{autoCompleteText:f,entityAutoCompleteView:c}}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Vn(t))},onTimeframeSelectionChanged:()=>{},onCOABalancesRangeChanged:(t,n)=>{e(Ve(t,n)),e(Oe({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(we("month")),e(pe(a.firstMonthOfFY,t)),e(Oe({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout((()=>e(Oe({resetLeftScroll:!0}))),50)},onElementCollapseStateChanged:(t,n)=>{e(Oe({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(Oe({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}}))(Ke),ys=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,o=Ne(),{isAiCfoAccessEnabled:r,onAskAiCfoClick:s}=re({mobileExploreReferrer:"DashboardCashInCashOut"}),i=ze({mobileExploreReferrer:"DashboardCashInCashOut"}),l=_((m=>ua(m))).mode==="compare_mode";return d.jsx(ks,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:l,navigate:n,insightsSectionAiCfoInfo:i,isAiCfoAccessEnabled:r,onAskAiCfoClick:s,meetingUrl:Ye(o("dashboard_report_filters"))})},vs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},As=oe((function(e){const a=Yn(e),t=Xn(e),n=ma(e),{scrollPosition:o,...r}=n,s=Q.getLocalizedStrings().reportTitleById.cash_position,i=V.getSignedInUser(),l=e.tenantState.currentTenantId,m=L(e),p=m?.companyName??"",h={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:l??""},f=e.entityAutoCompleteState.autoCompleteText.navbar,c=ue(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:p,statementEndPoint:`${se}/statement`,authParams:h},analytics:w,autoCompleteData:{autoCompleteText:f,entityAutoCompleteView:c}}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Gn(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(je({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ve(t,n)),e(je({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(je({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout((()=>e(je({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=vs(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Cash Position"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onTableScroll:t=>{e(je({scrollPosition:t}))},onBackClick:()=>{a.navigate("../")}}}))(Ke),Is=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,o=Ne(),{isAiCfoAccessEnabled:r,onAskAiCfoClick:s}=re({mobileExploreReferrer:"DashboardCashPosition"}),i=ze({mobileExploreReferrer:"DashboardCashPosition"}),l=_((m=>ma(m))).mode==="compare_mode";return d.jsx(As,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:l,navigate:n,insightsSectionAiCfoInfo:i,isAiCfoAccessEnabled:r,onAskAiCfoClick:s,meetingUrl:Ye(o("dashboard_report_filters"))})},$=(e,a,t,n)=>{e===!1?a!=null&&n("../../",{relative:"path"}):a!==t&&(a!=null&&a.length>0?n(`../${t}`,{replace:!0}):n(`./forecast/${t}`,{replace:!0}))},Es=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Ts=oe((function(e){const a=pa(e),t=Nn(e),n=ha(e),o=$n(e),r=zn(e),s=Kn(e),i=St(e),{scrollPosition:l,...m}=i,p=t.reportTitle,h=V.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:w,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:xe(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Jn(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(be({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ve(t,n)),e(be({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(be({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(be({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Es(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?xt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Burn Rate"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(be({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(Nt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(be({scrollPosition:t})):e(Nt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t==="forecast_mode"?(e(Gt({viewMode:"account_group"})),e(fa(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(be({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Burn Rate"),e(Gt({viewMode:t})),e(Hn({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(Zn({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(Wn({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(qn()),a.isAccountingProjectsEnabled&&e(Qn())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"net_burn_or_income_by_projects":"net_burn_or_income_by_classes"))}}}))(Ke),ws=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Ne(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),m=ze({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),p=_((y=>St(y))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=_((y=>vt(y.forecastState,c??""))),C=_((y=>pa(y))),g=_((y=>At(y))),k=_((y=>De(y))),I=_((y=>xe(y))),v=_((y=>ha(y).uiState.accountViewMode)),S=p.mode==="compare_mode",T=C.dataAvailable;b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const y=u?.forecastPeriod,x=T!=null&&y.endDate.isAfter(T?.endDate)===!0?T:y;a(pe(e.firstMonthOfFY,{startDate:x.endDate.startOf(f),endDate:x?.endDate}))}}),[c]);const B=$e(),{useFeatureGate:D}=Pe(),{isFeatureEnabled:E}=D(Y.isReportsCommentingEnabled),P=Pt(E?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Ts,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,forecastIdFromUrlPath:r,location:n,isAccountingClassesEnabled:k,isAccountingProjectsEnabled:I,accountViewMode:v,isCompareModeOn:S,navigate:o,analytics:w,reportsResyncFetchState:g.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:P,isReportsCommentingEnabled:E,meetingUrl:Ye(s("dashboard_report_filters"))})},xs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Ds=oe((function(e){const a=ga(e),t=eo(e),n=ba(e),o=to(e),r=ao(e),s=no(e),i=It(e),{scrollPosition:l,...m}=i,p=Q.getLocalizedStrings().common.texts.operatingExpenses,h=V.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:w,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:xe(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(lo(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(Ce({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ve(t,n)),e(Ce({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(Ce({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(Ce({resetLeftScroll:!0}))),50)},onAccountBalanceClick:a.hasTransactionAccess!==!0?void 0:(t,n)=>{const{timePeriod:o,timeframe:r}=xs(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?xt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Operating Expenses"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(Ce({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(zt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(Ce({scrollPosition:t})):e(zt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t=="forecast_mode"?(e($t({viewMode:"account_group"})),e(Ca(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(Ce({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Operating Expenses"),e($t({viewMode:t})),e(co({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(io({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(ro({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(oo()),a.isAccountingProjectsEnabled&&e(so())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"operating_expenses_by_projects":"operating_expenses_by_classes"))}}}))(Ke),Ps=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Ne(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardOpEx"}),m=ze({mobileExploreReferrer:"DashboardOpEx"}),p=_((x=>It(x))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=_((x=>vt(x.forecastState,c??""))),C=_((x=>ga(x))),g=_((x=>At(x))),k=_((x=>De(x))),I=_((x=>xe(x))),v=_((x=>ba(x).uiState.accountViewMode)),S=p.mode==="compare_mode",T=C.dataAvailable;b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const x=u?.forecastPeriod,ie=T!=null&&x.endDate.isAfter(T?.endDate)===!0?T:x;a(pe(e.firstMonthOfFY,{startDate:ie.endDate.startOf(f),endDate:ie?.endDate}))}}),[c]);const B=$e(),D=B?.loggedInUserRole!=null&&_a(B?.loggedInUserRole)!==!0,{useFeatureGate:E}=Pe(),{isFeatureEnabled:P}=E(Y.isReportsCommentingEnabled),y=Pt(P?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Ds,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,location:n,isAccountingClassesEnabled:k,isAccountingProjectsEnabled:I,accountViewMode:v,isCompareModeOn:S,navigate:o,forecastIdFromUrlPath:r,analytics:w,hasTransactionAccess:D,reportsResyncFetchState:g.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:y,isReportsCommentingEnabled:P,meetingUrl:Ye(s("dashboard_report_filters"))})},Fs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Os=oe((function(e){const a=Sa(e),t=uo(e),n=ka(e),o=mo(e),r=po(e),s=ho(e),i=Et(e),{scrollPosition:l,...m}=i,p=Q.getLocalizedStrings().common.texts.revenue,h=V.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:w,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:xe(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(So(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(_e({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ve(t,n)),e(_e({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(_e({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(_e({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Fs(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?xt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Revenues"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(_e({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(qt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(_e({scrollPosition:t})):e(qt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t==="forecast_mode"?(e(Kt({viewMode:"account_group"})),e(ya(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(_e({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Revenues"),e(Kt({viewMode:t})),e(_o({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(Co({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(bo({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(fo()),a.isAccountingProjectsEnabled&&e(go())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"revenue_by_projects":"revenue_by_classes"))}}}))(Ke),js=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Ne(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardRevenue"}),m=ze({mobileExploreReferrer:"DashboardRevenue"}),p=_((y=>Et(y))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=_((y=>vt(y.forecastState,c??""))),C=_((y=>Sa(y))),g=C.dataAvailable,k=p.mode==="compare_mode",I=_((y=>De(y))),v=_((y=>xe(y))),S=_((y=>ka(y).uiState.accountViewMode)),T=_((y=>At(y)));b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const y=u?.forecastPeriod,x=g!=null&&y.endDate.isAfter(g?.endDate)===!0?g:y;a(pe(e.firstMonthOfFY,{startDate:x.endDate.startOf(f),endDate:x?.endDate}))}}),[c]);const B=$e(),{useFeatureGate:D}=Pe(),{isFeatureEnabled:E}=D(Y.isReportsCommentingEnabled),P=Pt(E?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Os,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,isAccountingClassesEnabled:I,isAccountingProjectsEnabled:v,accountViewMode:S,isCompareModeOn:k,location:n,navigate:o,forecastIdFromUrlPath:r,analytics:w,reportsResyncFetchState:T.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:P,isReportsCommentingEnabled:E,meetingUrl:Ye(s("dashboard_report_filters"))})},Rs=e=>{let a,t;if(e.endDate!=null)switch(e.timePeriod){case"this_month_to_date":case"last_month":case"this_week_to_date":case"last_week":a="month",t={startDate:e.endDate.startOf("month"),endDate:e.endDate};break;case"last_3_months":case"last_6_months":case"last_12_months":case"this_year_to_date":case"last_year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;default:console.error(`this timeperiod ${e.timePeriod} is not supported!`)}return{timeframe:a,timePeriod:t}},Ms=oe((function(e){const a=ko(e),t=e.entityAutoCompleteState.autoCompleteText.navbar,n=ue(e,"navbar");return{report:a,analytics:w,autoCompleteData:{autoCompleteText:t,entityAutoCompleteView:n}}}),(function(e,a){return{onTimeframeSelectionChanged:t=>{w.trackTimeframeSwitch(Ya(t),"Top Expenses"),e(va(t))},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Rs(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Top Expenses"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}}))(qo),Bs=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e;return d.jsx(Ms,{tenantEmailDomain:a,location:t,navigate:n})},Us=wt.div`
|
|
13
|
+
`;function Cs({title:e,reportId:a,entityAutoCompleteView:t,autoCompleteText:n,isAiCfoAccessEnabled:o,onAskAiCfoClick:r}){const s=J(),i=z(),l=H(),{tenantEmailDomain:m}=q(),p=Vo();return d.jsxs(gs,{children:[d.jsx(Go,{source:a==="cash_balance"?"CashBalanceDetailScreen":"CardBalanceDetailScreen",title:e,onBackClick:()=>{s("../")},hideSearchBtn:!0,backgroundColor:p.colors.grey4,searchAutoComplete:{autoCompleteData:{entityAutoCompleteView:t,autoCompleteText:n},autoCompleteActions:{onAutoCompleteInputChange:h=>{h.trim().length>=2?i(me({searchString:h,searchOrigin:"navbar"})):h.trim().length===0&&i(ne("navbar"))},onAutoCompleteEntity:h=>{n!=null&&w?.trackSearch(X.Event.search,Ss(a),h.type,h.name,n);const f=he(h,m),c=j(l.state?.pathnameStackToGoBack,l.pathname);s(f,{state:{pathnameStackToGoBack:c}})}}},rightSideComponent:d.jsx(No,{isAiCfoAccessEnabled:o,onAskAiCfoClick:r})}),d.jsx(bs,{children:a==="cash_balance"?d.jsx(hs,{}):d.jsx(fs,{})})]})}function Qt(){const e=H(),a=z(),t=S((c=>c.cashBalanceState.fetchState)),n=S((c=>c.cardBalanceState.fetchState)),o=Y.getSignedInUser();if(o==null)throw Error("Can't access dashboard detail without signing in...");const r=ra((c=>{const u=ia(c,"/").split("/");return u[u.length-1]})(e.pathname));let s="Not-Started",i="";const l=Q.getLocalizedStrings();switch(r){case"cash_balance":s=t,i=l.common.texts.cashBalance;break;case"card_balance":s=n,i=l.reportTitleById.card_balance;break;default:console.error(`${r} is not supported!`)}const{isAiCfoAccessEnabled:m,onAskAiCfoClick:p}=re({mobileExploreReferrer:r==="card_balance"?"Card Balance":"Cash Balance"});Ge({isDataReady:s==="Completed"});const h=S((c=>c.entityAutoCompleteState.autoCompleteText.navbar)),f=S((c=>ue(c,"navbar")));return b.useEffect((()=>{s==="Not-Started"&&(function(c,u){switch(u){case"card_balance":c(la());break;case"cash_balance":c(ca());break;default:throw new Error(`balance report type ${u} is not yet supported`)}})(a,r)}),[o,a,s]),d.jsxs(d.Fragment,{children:[s==="Completed"?d.jsx(Ne,{analytics:w,onLoad:c=>((u,C)=>{switch(C){case"card_balance":u.trackPageLoaded(X.Event.cardBalance);break;case"cash_balance":u.trackPageLoaded(X.Event.cashBalance);break;default:console.error(`Analytics: Not tracking Page Loaded for ${C}!`)}})(c,r)}):null,d.jsx(Cs,{title:i,reportId:r,autoCompleteText:h,entityAutoCompleteView:f,isAiCfoAccessEnabled:m,onAskAiCfoClick:p})]})}const Ss=e=>{switch(e){case"cash_balance":return"Cash Balance";case"card_balance":return"Card Balance";default:return"Dashboard"}},_s=[],Wt="insights_section";function ze(e){const{mobileExploreReferrer:a}=e,t=z(),n=J(),o=H(),{tenantEmailDomain:r}=q(),{setIsAiCfoOpen:s,setAiCfoSidePanelQuestionToSubmit:i}=Fa(),l=Oa(),m=Ua(l),p=oa(),h=S((R=>R.tenantState.fetchState==="Completed"||R.tenantState.activeTenantFetchState.fetchState==="Completed"?L(R):void 0)),f=h?.masterTOSInfo?.isMasterTOSAccepted??!1,c=S((R=>da(R))),u=c.uiState?.currentChatSessionId,C=c.allSessionsWithOrderedQuestionAnswers??_s,g=Y.getSignedInUser()?.userId,k=ja(),I=Xo()&&k&&r!=null,v=$o(),_=zo(!0),T=S((R=>v!=null?Bn(R,v):void 0)),{useDynamicConfig:B}=Pe(),{configValue:D}=B(Ra.aiCfoMessageDynamicConfig),E=b.useMemo((()=>Array.isArray(D.default_message_list)?D.default_message_list:[]),[D.default_message_list]),P=b.useMemo((()=>E.slice(0,2)),[E]),y=v!=null&&T!=null&&T.fetchState!=="Completed"&&T.fetchState!=="Error"&&(_||T.fetchState==="In-Progress"),x=b.useMemo((()=>{if(v==null||T?.fetchState==="Error")return P;if(y)return[];const R=(T?.suggestedQuestions??[]).map((ee=>ee.trim())).filter((ee=>ee.length>0)).slice(0,2);return R.length===0?P:R}),[P,y,v,T?.fetchState,T?.suggestedQuestions]),ie=b.useCallback(((R,ee)=>{if(g==null||R.trim()==="")return;if(!f)return void ce({location:o,navigate:n,mergeState:{referrer:a,aiCfoInitialQuestion:R,aiCfoInitialSubmissionSource:Wt,aiCfoSuggestionIndex:ee}});const qe=Ma(p.getState());if(m){const Qe=j(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Qe,referrer:a,aiCfoInitialQuestion:R,aiCfoShouldSubmit:!qe}})}else{if(qe)return t(Ct(R)),void s(!0);i(R),s(!0),Ba(t,R,Wt,u,C,g,ee,void 0)}}),[C,u,t,f,m,o,a,n,s,i,p,r,g]),_e=b.useCallback((()=>{if(f)if(m){const R=j(o.state?.pathnameStackToGoBack,o.pathname);n(`/${r}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:R,referrer:a}})}else s(!0);else ce({location:o,navigate:n,mergeState:{referrer:a}})}),[f,m,o,a,n,s,r]);return b.useMemo((()=>{if(I)return{isSuggestedQuestionsLoading:y,onAskSomethingElseClick:_e,onSuggestedQuestionClick:ie,suggestedQuestions:x}}),[I,y,_e,ie,x])}const Ke=Ko,ks=oe((function(e){const a=Un(e),t=Ln(e),n=ua(e),{scrollPosition:o,...r}=n,s=Q.getLocalizedStrings().reportTitleById.cash_in_cash_out,i=Y.getSignedInUser(),l=e.tenantState.currentTenantId,m=L(e),p=m?.companyName??"",h={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:l??""},f=e.entityAutoCompleteState.autoCompleteText.navbar,c=ue(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:p,statementEndPoint:`${se}/statement`,authParams:h},analytics:w,autoCompleteData:{autoCompleteText:f,entityAutoCompleteView:c}}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Yn(t))},onTimeframeSelectionChanged:()=>{},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(Oe({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(we("month")),e(pe(a.firstMonthOfFY,t)),e(Oe({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout((()=>e(Oe({resetLeftScroll:!0}))),50)},onElementCollapseStateChanged:(t,n)=>{e(Oe({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{e(Oe({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}}))(Ke),ys=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,o=Xe(),{isAiCfoAccessEnabled:r,onAskAiCfoClick:s}=re({mobileExploreReferrer:"DashboardCashInCashOut"}),i=ze({mobileExploreReferrer:"DashboardCashInCashOut"}),l=S((m=>ua(m))).mode==="compare_mode";return d.jsx(ks,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:l,navigate:n,insightsSectionAiCfoInfo:i,isAiCfoAccessEnabled:r,onAskAiCfoClick:s,meetingUrl:Ve(o("dashboard_report_filters"))})},vs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},As=oe((function(e){const a=Vn(e),t=Gn(e),n=ma(e),{scrollPosition:o,...r}=n,s=Q.getLocalizedStrings().reportTitleById.cash_position,i=Y.getSignedInUser(),l=e.tenantState.currentTenantId,m=L(e),p=m?.companyName??"",h={userId:i?.userId??"",sessionId:i?.zeniSessionId??"",tenantId:l??""},f=e.entityAutoCompleteState.autoCompleteText.navbar,c=ue(e,"navbar");return{selectedRangeReport:a,reportLabels:{reportTitle:s},highlightedRangeReport:t,uiState:r,scrollPosition:o,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:p,statementEndPoint:`${se}/statement`,authParams:h},analytics:w,autoCompleteData:{autoCompleteText:f,entityAutoCompleteView:c}}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Nn(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(je({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(je({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(je({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.isCompareModeOn!==t&&setTimeout((()=>e(je({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=vs(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Cash Position"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onTableScroll:t=>{e(je({scrollPosition:t}))},onBackClick:()=>{a.navigate("../")}}}))(Ke),Is=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e,o=Xe(),{isAiCfoAccessEnabled:r,onAskAiCfoClick:s}=re({mobileExploreReferrer:"DashboardCashPosition"}),i=ze({mobileExploreReferrer:"DashboardCashPosition"}),l=S((m=>ma(m))).mode==="compare_mode";return d.jsx(As,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:a,location:t,isCompareModeOn:l,navigate:n,insightsSectionAiCfoInfo:i,isAiCfoAccessEnabled:r,onAskAiCfoClick:s,meetingUrl:Ve(o("dashboard_report_filters"))})},$=(e,a,t,n)=>{e===!1?a!=null&&n("../../",{relative:"path"}):a!==t&&(a!=null&&a.length>0?n(`../${t}`,{replace:!0}):n(`./forecast/${t}`,{replace:!0}))},Es=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Ts=oe((function(e){const a=pa(e),t=Xn(e),n=ha(e),o=$n(e),r=zn(e),s=Kn(e),i=_t(e),{scrollPosition:l,...m}=i,p=t.reportTitle,h=Y.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:w,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:xe(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(Jn(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(be({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(be({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(be({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(be({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Es(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?xt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Burn Rate"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(be({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(Xt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(be({scrollPosition:t})):e(Xt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t==="forecast_mode"?(e(Nt({viewMode:"account_group"})),e(fa(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(be({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Burn Rate"),e(Nt({viewMode:t})),e(Hn({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(Zn({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(Wn({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(qn()),a.isAccountingProjectsEnabled&&e(Qn())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"net_burn_or_income_by_projects":"net_burn_or_income_by_classes"))}}}))(Ke),ws=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Xe(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),m=ze({mobileExploreReferrer:"DashboardNetBurnOrIncome"}),p=S((y=>_t(y))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=S((y=>vt(y.forecastState,c??""))),C=S((y=>pa(y))),g=S((y=>At(y))),k=S((y=>De(y))),I=S((y=>xe(y))),v=S((y=>ha(y).uiState.accountViewMode)),_=p.mode==="compare_mode",T=C.dataAvailable;b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const y=u?.forecastPeriod,x=T!=null&&y.endDate.isAfter(T?.endDate)===!0?T:y;a(pe(e.firstMonthOfFY,{startDate:x.endDate.startOf(f),endDate:x?.endDate}))}}),[c]);const B=$e(),{useFeatureGate:D}=Pe(),{isFeatureEnabled:E}=D(V.isReportsCommentingEnabled),P=Pt(E?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Ts,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,forecastIdFromUrlPath:r,location:n,isAccountingClassesEnabled:k,isAccountingProjectsEnabled:I,accountViewMode:v,isCompareModeOn:_,navigate:o,analytics:w,reportsResyncFetchState:g.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:P,isReportsCommentingEnabled:E,meetingUrl:Ve(s("dashboard_report_filters"))})},xs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Ds=oe((function(e){const a=ga(e),t=eo(e),n=ba(e),o=to(e),r=ao(e),s=no(e),i=It(e),{scrollPosition:l,...m}=i,p=Q.getLocalizedStrings().common.texts.operatingExpenses,h=Y.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:w,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:xe(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(lo(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(Ce({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(Ce({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(Ce({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(Ce({resetLeftScroll:!0}))),50)},onAccountBalanceClick:a.hasTransactionAccess!==!0?void 0:(t,n)=>{const{timePeriod:o,timeframe:r}=xs(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?xt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Operating Expenses"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(Ce({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(zt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(Ce({scrollPosition:t})):e(zt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t=="forecast_mode"?(e($t({viewMode:"account_group"})),e(Ca(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(Ce({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Operating Expenses"),e($t({viewMode:t})),e(co({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(io({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(ro({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(oo()),a.isAccountingProjectsEnabled&&e(so())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"operating_expenses_by_projects":"operating_expenses_by_classes"))}}}))(Ke),Ps=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Xe(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardOpEx"}),m=ze({mobileExploreReferrer:"DashboardOpEx"}),p=S((x=>It(x))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=S((x=>vt(x.forecastState,c??""))),C=S((x=>ga(x))),g=S((x=>At(x))),k=S((x=>De(x))),I=S((x=>xe(x))),v=S((x=>ba(x).uiState.accountViewMode)),_=p.mode==="compare_mode",T=C.dataAvailable;b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const x=u?.forecastPeriod,ie=T!=null&&x.endDate.isAfter(T?.endDate)===!0?T:x;a(pe(e.firstMonthOfFY,{startDate:ie.endDate.startOf(f),endDate:ie?.endDate}))}}),[c]);const B=$e(),D=B?.loggedInUserRole!=null&&Sa(B?.loggedInUserRole)!==!0,{useFeatureGate:E}=Pe(),{isFeatureEnabled:P}=E(V.isReportsCommentingEnabled),y=Pt(P?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Ds,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,location:n,isAccountingClassesEnabled:k,isAccountingProjectsEnabled:I,accountViewMode:v,isCompareModeOn:_,navigate:o,forecastIdFromUrlPath:r,analytics:w,hasTransactionAccess:D,reportsResyncFetchState:g.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:y,isReportsCommentingEnabled:P,meetingUrl:Ve(s("dashboard_report_filters"))})},Fs=e=>{let a,t;switch(e.balanceTimeFrame){case"month":case"quarter":a=e.balanceTimeFrame,t=tt(e);break;case"year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;case"free_range":console.error("free_range timeframe is not supported!")}return{timeframe:a,timePeriod:t}},Os=oe((function(e){const a=_a(e),t=uo(e),n=ka(e),o=mo(e),r=po(e),s=ho(e),i=Et(e),{scrollPosition:l,...m}=i,p=Q.getLocalizedStrings().common.texts.revenue,h=Y.getSignedInUser(),f=e.tenantState.currentTenantId,c=L(e),u=c?.companyName??"",C={userId:h?.userId??"",sessionId:h?.zeniSessionId??"",tenantId:f??""},g=e.entityAutoCompleteState.autoCompleteText.navbar,k=ue(e,"navbar"),I=kt(c);return{selectedRangeReport:a,selectedClassesViewRangeReport:n,selectedProjectViewRangeReport:r,reportLabels:{reportTitle:p},highlightedRangeReport:t,highlightedClassesViewRangeReport:o,highlightedProjectViewRangeReport:s,uiState:m,scrollPosition:l,downloadParams:{downloadState:a.downloadState,currentTenantCompanyName:u,statementEndPoint:`${se}/statement`,authParams:C},analytics:w,isZeniUser:et(h),autoCompleteData:{autoCompleteText:g,entityAutoCompleteView:k},isZeniCOAUsed:I,isAccountingClassesEnabled:De(e),isAccountingProjectsEnabled:xe(e)}}),(function(e,a){return{updateDownloadStateHandler:t=>{e(_o(t))},onTimeframeSelectionChanged:t=>{e(we(t)),setTimeout((()=>e(Se({resetLeftScroll:!0}))),50)},onCOABalancesRangeChanged:(t,n)=>{e(Ye(t,n)),e(Se({resetLeftScroll:!0}))},onThisPeriodChanged:t=>{e(pe(a.firstMonthOfFY,t)),e(Se({resetLeftScroll:!0}))},onAdditionalBalanceSelectionChanged:(t,n,o)=>{e(Ue(a.firstMonthOfFY,t,o,n)),n.length>0&&(e(Le(a.firstMonthOfFY,n.includes("this_period_vs_last_period")?"compare_mode_amount":"compare_mode_percent",o,n)),a.forecastIdFromUrlPath!=null&&t==1&&$(!1,a.forecastIdFromUrlPath,"",a.navigate)),a.isCompareModeOn!==t&&setTimeout((()=>e(Se({resetLeftScroll:!0}))),50)},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Fs(n);if(o!=null&&r!=null){const s=t.accountName===""?t.accountDescription:t.accountName,i=t.projectsViewParentId?.projectId!=null?xt(a.tenantEmailDomain,t.accountId,t.accountType,t.projectsViewParentId.projectId,s,r,o):t.classesViewParentId!=null&&t.classesViewParentId.parentClassId!=null?Dt(a.tenantEmailDomain,t.accountId,t.accountType,t.classesViewParentId.parentClassId?.[0],s,r,o):Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Revenues"}})}},onElementCollapseStateChanged:(t,n)=>{a.accountViewMode!=="project"?e(Se({nodeCollapseState:{nodeId:t,isCollapsed:n}})):e(qt({nodeCollapseState:{nodeId:t,isCollapsed:n}}))},onTableScroll:t=>{a.accountViewMode!=="project"?e(Se({scrollPosition:t})):e(qt({scrollPosition:t}))},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.selectedForecastId!=null?a.navigate("../../../"):a.navigate("../")},onForecastToggle:(t,n)=>{e(Ie(a.firstMonthOfFY,t==="forecast_mode",t==="forecast_mode"?3:1,n)),t==="forecast_mode"?(e(Kt({viewMode:"account_group"})),e(ya(!1,n?.id)),n!=null&&$(!0,a.forecastIdFromUrlPath,n?.id??"",a.navigate)):$(!1,a.forecastIdFromUrlPath,n?.id??"",a.navigate),e(Se({resetLeftScroll:!0}))},onUpdateAccountViewMode:t=>{a.analytics?.trackGroupBySwitch(t==="classes"?"Classes":t==="project"?"Projects":"Accounts","Revenues"),e(Kt({viewMode:t})),e(So({viewMode:t}))},onUpdateClassesToFilterOut:t=>{e(Co({classesToFilterOut:t}))},onUpdateProjectsToFilterOut:t=>{e(bo({projectsToFilterOut:t}))},onOpenAccountViewMode:()=>{a.isAccountingClassesEnabled&&e(fo()),a.isAccountingProjectsEnabled&&e(go())},onResyncReports:()=>{e(yt(a.accountViewMode==="project"?"revenue_by_projects":"revenue_by_classes"))}}}))(Ke),js=e=>{const a=z(),{tenantEmailDomain:t,location:n,navigate:o,forecastIdFromUrlPath:r}=e,s=Xe(),{isAiCfoAccessEnabled:i,onAskAiCfoClick:l}=re({mobileExploreReferrer:"DashboardRevenue"}),m=ze({mobileExploreReferrer:"DashboardRevenue"}),p=S((y=>Et(y))),h=p.isForecastModeOn,f=p.timeframe,c=p.selectedForecast?.id,u=S((y=>vt(y.forecastState,c??""))),C=S((y=>_a(y))),g=C.dataAvailable,k=p.mode==="compare_mode",I=S((y=>De(y))),v=S((y=>xe(y))),_=S((y=>ka(y).uiState.accountViewMode)),T=S((y=>At(y)));b.useEffect((()=>{if(c!=null&&h===!0&&($(h,r,c,o),u!=null)){const y=u?.forecastPeriod,x=g!=null&&y.endDate.isAfter(g?.endDate)===!0?g:y;a(pe(e.firstMonthOfFY,{startDate:x.endDate.startOf(f),endDate:x?.endDate}))}}),[c]);const B=$e(),{useFeatureGate:D}=Pe(),{isFeatureEnabled:E}=D(V.isReportsCommentingEnabled),P=Pt(E?B?.currentTenant?.companyId:void 0,{clearParams:C.fetchState==="Completed"});return d.jsx(Os,{firstMonthOfFY:e.firstMonthOfFY,tenantEmailDomain:t,selectedForecastId:r,isAccountingClassesEnabled:I,isAccountingProjectsEnabled:v,accountViewMode:_,isCompareModeOn:k,location:n,navigate:o,forecastIdFromUrlPath:r,analytics:w,reportsResyncFetchState:T.reportsResyncFetchState,insightsSectionAiCfoInfo:m,isAiCfoAccessEnabled:i,onAskAiCfoClick:l,initialOpenThreadRequest:P,isReportsCommentingEnabled:E,meetingUrl:Ve(s("dashboard_report_filters"))})},Rs=e=>{let a,t;if(e.endDate!=null)switch(e.timePeriod){case"this_month_to_date":case"last_month":case"this_week_to_date":case"last_week":a="month",t={startDate:e.endDate.startOf("month"),endDate:e.endDate};break;case"last_3_months":case"last_6_months":case"last_12_months":case"this_year_to_date":case"last_year":a="quarter",t={startDate:e.endDate.startOf("quarter"),endDate:e.endDate};break;default:console.error(`this timeperiod ${e.timePeriod} is not supported!`)}return{timeframe:a,timePeriod:t}},Ms=oe((function(e){const a=ko(e),t=e.entityAutoCompleteState.autoCompleteText.navbar,n=ue(e,"navbar");return{report:a,analytics:w,autoCompleteData:{autoCompleteText:t,entityAutoCompleteView:n}}}),(function(e,a){return{onTimeframeSelectionChanged:t=>{w.trackTimeframeSwitch(Va(t),"Top Expenses"),e(va(t))},onAccountBalanceClick:(t,n)=>{const{timePeriod:o,timeframe:r}=Rs(n),s=t.accountName===""?t.accountDescription:t.accountName;if(o!=null&&r!=null){const i=Fe(a.tenantEmailDomain,t.accountId,t.accountType,s,r,o),l=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(i,{state:{pathnameStackToGoBack:l,referrer:"Top Expenses"}})}},autoCompleteActions:{onAutoCompleteInputChange:t=>{t.trim().length>=2?e(me({searchString:t,searchOrigin:"navbar"})):t.trim().length===0&&e(ne("navbar"))},onAutoCompleteEntity:t=>{const n=he(t,a.tenantEmailDomain),o=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(n,{state:{pathnameStackToGoBack:o}})}},onBackClick:()=>{a.navigate("../")}}}))(qo),Bs=e=>{const{tenantEmailDomain:a,location:t,navigate:n}=e;return d.jsx(Ms,{tenantEmailDomain:a,location:t,navigate:n})},Us=wt.div`
|
|
14
14
|
display: flex;
|
|
15
15
|
flex: 1 1 auto;
|
|
16
16
|
min-height: 100%;
|
|
17
17
|
flex-direction: column;
|
|
18
18
|
background-color: ${e=>e.theme.colors.grey5};
|
|
19
19
|
align-items: center;
|
|
20
|
-
`;function Ls({fetchState:e,firstMonthOfFY:a,reportId:t,forecastId:n}){const o=J(),r=H(),{tenantEmailDomain:s}=q();let i;Xe({isDataReady:!0});const l={firstMonthOfFY:a,tenantEmailDomain:s,location:r,navigate:o,forecastIdFromUrlPath:n,fetchState:e};switch(t){case"operating_expenses":i=d.jsx(Ps,{...l});break;case"revenue":i=d.jsx(js,{...l});break;case"net_burn_or_income":i=d.jsx(ws,{...l});break;case"cash_position":i=d.jsx(Is,{...l});break;case"top_expenses":i=d.jsx(Bs,{...l});break;case"cash_in_cash_out":i=d.jsx(ys,{...l});break;default:console.error(`${t} is not supported!`),i=null}return i!=null?d.jsx(Us,{children:i}):null}function le(){const e=H(),a=z(),{forecastId:t}=q();let n="Not-Started";const o=_((c=>It(c).fetchState)),r=_((c=>Et(c).fetchState)),s=_((c=>St(c).fetchState)),i=_((c=>c.cashPositionState.fetchState)),l=_((c=>c.topExState.fetchState)),m=_((c=>c.cashInCashOutState.fetchState));if(V.getSignedInUser()==null)throw Error("Can't access dashboard detail without signing in...");const p=_((c=>L(c))),h=p?.company?.companyInfo?.firstMonthOfFY??1,f=ra((c=>{const u=ia(c,"/").split("/");return t!=null?u[u.length-3]:u[u.length-1]})(e.pathname));switch(f){case"operating_expenses":n=o;break;case"revenue":n=r;break;case"net_burn_or_income":n=s;break;case"cash_position":n=i;break;case"top_expenses":n=l;break;case"cash_in_cash_out":n=m;break;default:console.error(`${f} is not supported!`)}return b.useEffect((()=>{n==="Not-Started"&&(function(c,u,C,g){switch(u){case"operating_expenses":c(xa(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(Ca(!1,g)));break;case"revenue":c(wa(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(ya(!1,g)));break;case"net_burn_or_income":c(Ta(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(fa(!1,g)));break;case"cash_position":c(Ea(!0));break;case"top_expenses":c(Ia());break;case"cash_in_cash_out":c(Aa());break;default:throw new Error(`report type ${u} is not yet supported`)}})(a,f,h,t)}),[t]),d.jsxs(d.Fragment,{children:[n==="Completed"?d.jsx(Ge,{analytics:w,onLoad:c=>((u,C)=>{const g=e.state?.referrer;switch(C){case"operating_expenses":u.trackPageLoaded(N.Event.operatingExpenses,g);break;case"revenue":u.trackPageLoaded(N.Event.revenues,g);break;case"net_burn_or_income":u.trackPageLoaded(N.Event.burnRate,g);break;case"cash_position":u.trackPageLoaded(N.Event.cashPosition,g);break;case"top_expenses":u.trackPageLoaded(N.Event.topExpenses,g);break;case"cash_in_cash_out":u.trackPageLoaded(N.Event.cashInCashOut,g);break;default:console.error(`Analytics: Not tracking Page Loaded for ${C}!`)}})(c,f)}):null,d.jsx(Ls,{firstMonthOfFY:h,fetchState:n,reportId:f,forecastId:t})]})}var ct=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function lt(e,a,t,n){e.addEventListener?e.addEventListener(a,t,n):e.attachEvent&&e.attachEvent("on".concat(a),(function(){t(window.event)}))}function Na(e,a){for(var t=a.slice(0,a.length-1),n=0;n<t.length;n++)t[n]=e[t[n].toLowerCase()];return t}function $a(e){typeof e!="string"&&(e="");for(var a=(e=e.replace(/\s/g,"")).split(","),t=a.lastIndexOf("");t>=0;)a[t-1]+=",",a.splice(t,1),t=a.lastIndexOf("");return a}for(var Ft={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":ct?173:189,"=":ct?61:187,";":ct?59:186,"'":222,"[":219,"]":221,"\\":220},de={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},_t={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},U={16:!1,18:!1,17:!1,91:!1},M={},He=1;He<20;He++)Ft["f".concat(He)]=111+He;var F=[],Zt=!1,za="all",Ht=[],at=function(e){return Ft[e.toLowerCase()]||de[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function Jt(e){za=e||"all"}function Me(){return za||"all"}var dt=function(e){var a=e.key,t=e.scope,n=e.method,o=e.splitKey,r=o===void 0?"+":o;$a(a).forEach((function(s){var i=s.split(r),l=i.length,m=i[l-1],p=m==="*"?"*":at(m);if(M[p]){t||(t=Me());var h=l>1?Na(de,i):[];M[p]=M[p].filter((function(f){return!((!n||f.method===n)&&f.scope===t&&(function(c,u){for(var C=c.length>=u.length?c:u,g=c.length>=u.length?u:c,k=!0,I=0;I<C.length;I++)g.indexOf(C[I])===-1&&(k=!1);return k})(f.mods,h))}))}}))};function ea(e,a,t,n){var o;if(a.element===n&&(a.scope===t||a.scope==="all")){for(var r in o=a.mods.length>0,U)Object.prototype.hasOwnProperty.call(U,r)&&(!U[r]&&a.mods.indexOf(+r)>-1||U[r]&&a.mods.indexOf(+r)===-1)&&(o=!1);(a.mods.length!==0||U[16]||U[18]||U[17]||U[91])&&!o&&a.shortcut!=="*"||a.method(e,a)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function ta(e,a){var t=M["*"],n=e.keyCode||e.which||e.charCode;if(G.filter.call(this,e)){if(n!==93&&n!==224||(n=91),F.indexOf(n)===-1&&n!==229&&F.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(u){var C=_t[u];e[u]&&F.indexOf(C)===-1?F.push(C):!e[u]&&F.indexOf(C)>-1?F.splice(F.indexOf(C),1):u==="metaKey"&&e[u]&&F.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(F=F.slice(F.indexOf(C))))})),n in U){for(var o in U[n]=!0,de)de[o]===n&&(G[o]=!0);if(!t)return}for(var r in U)Object.prototype.hasOwnProperty.call(U,r)&&(U[r]=e[_t[r]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(F.indexOf(17)===-1&&F.push(17),F.indexOf(18)===-1&&F.push(18),U[17]=!0,U[18]=!0);var s=Me();if(t)for(var i=0;i<t.length;i++)t[i].scope===s&&(e.type==="keydown"&&t[i].keydown||e.type==="keyup"&&t[i].keyup)&&ea(e,t[i],s,a);if(n in M){for(var l=0;l<M[n].length;l++)if((e.type==="keydown"&&M[n][l].keydown||e.type==="keyup"&&M[n][l].keyup)&&M[n][l].key){for(var m=M[n][l],p=m.splitKey,h=m.key.split(p),f=[],c=0;c<h.length;c++)f.push(at(h[c]));f.sort().join("")===F.sort().join("")&&ea(e,m,s,a)}}}}function G(e,a,t){F=[];var n=$a(e),o=[],r="all",s=document,i=0,l=!1,m=!0,p="+",h=!1;for(t===void 0&&typeof a=="function"&&(t=a),Object.prototype.toString.call(a)==="[object Object]"&&(a.scope&&(r=a.scope),a.element&&(s=a.element),a.keyup&&(l=a.keyup),a.keydown!==void 0&&(m=a.keydown),a.capture!==void 0&&(h=a.capture),typeof a.splitKey=="string"&&(p=a.splitKey)),typeof a=="string"&&(r=a);i<n.length;i++)o=[],(e=n[i].split(p)).length>1&&(o=Na(de,e)),(e=(e=e[e.length-1])==="*"?"*":at(e))in M||(M[e]=[]),M[e].push({keyup:l,keydown:m,scope:r,mods:o,shortcut:n[i],method:t,key:n[i],splitKey:p,element:s});s!==void 0&&!(function(f){return Ht.indexOf(f)>-1})(s)&&window&&(Ht.push(s),lt(s,"keydown",(function(f){ta(f,s)}),h),Zt||(Zt=!0,lt(window,"focus",(function(){F=[]}),h)),lt(s,"keyup",(function(f){ta(f,s),(function(c){var u=c.keyCode||c.which||c.charCode,C=F.indexOf(u);if(C>=0&&F.splice(C,1),c.key&&c.key.toLowerCase()==="meta"&&F.splice(0,F.length),u!==93&&u!==224||(u=91),u in U)for(var g in U[u]=!1,de)de[g]===u&&(G[g]=!1)})(f)}),h))}var ut={setScope:Jt,getScope:Me,deleteScope:function(e,a){var t,n;for(var o in e||(e=Me()),M)if(Object.prototype.hasOwnProperty.call(M,o))for(t=M[o],n=0;n<t.length;)t[n].scope===e?t.splice(n,1):n++;Me()===e&&Jt(a||"all")},getPressedKeyCodes:function(){return F.slice(0)},isPressed:function(e){return typeof e=="string"&&(e=at(e)),F.indexOf(e)!==-1},filter:function(e){var a=e.target||e.srcElement,t=a.tagName,n=!0;return!a.isContentEditable&&(t!=="INPUT"&&t!=="TEXTAREA"&&t!=="SELECT"||a.readOnly)||(n=!1),n},trigger:function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(M).forEach((function(t){var n=M[t].find((function(o){return o.scope===a&&o.shortcut===e}));n&&n.method&&n.method()}))},unbind:function(e){if(e===void 0)Object.keys(M).forEach((function(s){return delete M[s]}));else if(Array.isArray(e))e.forEach((function(s){s.key&&dt(s)}));else if(typeof e=="object")e.key&&dt(e);else if(typeof e=="string"){for(var a=arguments.length,t=new Array(a>1?a-1:0),n=1;n<a;n++)t[n-1]=arguments[n];var o=t[0],r=t[1];typeof o=="function"&&(r=o,o=""),dt({key:e,scope:o,method:r,splitKey:"+"})}},keyMap:Ft,modifier:de,modifierMap:_t};for(var mt in ut)Object.prototype.hasOwnProperty.call(ut,mt)&&(G[mt]=ut[mt]);if(typeof window<"u"){var Vs=window.hotkeys;G.noConflict=function(e){return e&&window.hotkeys===G&&(window.hotkeys=Vs),G},window.hotkeys=G}G.filter=function(){return!0};var aa=function(e,a){var t=e.target,n=t&&t.tagName;return!!(n&&a&&a.includes(n))};function Ys(e,a,t,n){t instanceof Array&&(n=t,t=void 0);var o=t||{},r=o.enableOnTags,s=o.filter,i=o.keyup,l=o.keydown,m=o.filterPreventDefault,p=m===void 0||m,h=o.enabled,f=h===void 0||h,c=o.enableOnContentEditable,u=c!==void 0&&c,C=b.useRef(null),g=b.useCallback((function(k,I){var v,S;return s&&!s(k)?!p:!!(aa(k,["INPUT","TEXTAREA","SELECT"])&&!aa(k,r)||(v=k.target)!=null&&v.isContentEditable&&!u)||!!(C.current===null||document.activeElement===C.current||(S=C.current)!=null&&S.contains(document.activeElement))&&(a(k,I),!0)}),n?[C,r,s].concat(n):[C,r,s]);return b.useEffect((function(){if(f)return i&&l!==!0&&(t.keydown=!1),G(e,t||{},g),function(){return G.unbind(e,g)};G.unbind(e,g)}),[g,e,f]),C}G.isPressed;const Xs=[],pt="dashboard_card",ae="ai_cfo_dashboard_card";function na(e,a){return a?e.some((t=>String(t)===ae))?e.slice():[ae,...e]:e.filter((t=>String(t)!==ae))}const 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","rewards_card"],Ns=(e,a,t,n,o)=>({card:{dimension:Tt(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e.status!=null?{balanceAmount:e.balance?.available,lastUpdatedTime:e.status.lastRefreshSuccessTime,changePercent:e.balance?.change?.percent,changeComparedToDate:e.balance?.change?.since}:void 0}),Re=(e,a,t,n,o)=>({card:{dimension:Tt(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e}),$s=(e,a,t,n)=>Re(void 0,e,Ee,a,t),zs=e=>{const a=Tt(Ee);return a.height=Ee.height+10,{card:{dimension:a,cardType:ae,cardIndex:e,fetchState:"Completed",disableAnimations:!1,spansFullDashboardWidth:!0}}},Ks=oe((function(e,a){const t=Ws(a.dashboardReport),n=a.passedCardsOrdered,o=a.dashboardReport.reportsInOrder,{isInterestedInChargeCard:r,cardsCreditLimit:s,cashbackRate:i}=a;let l=n.map(((m,p)=>{if(m==="reimbursement_promo_card"||m==="bill_pay_promo_card")return $s(t,m,p);if(m==="zeni_promo_card")return Re({isExpressedInterest:r,creditLimit:s,cashbackRate:i,fetchState:"Completed"},a.cardBalanceFetchState,Ee,m,p);if(m==="information_card")return Re(void 0,"Completed",Ee,m,p);if(m===ae)return zs(p);{const h=o.find((f=>f?.reportId===m));return h?(function(f,c,u,C){const g=f.reportId;switch(g){case"card_balance":case"cash_balance":return[Ns(f,c,u,g,C)];case"expense_automation_card":case"operating_expenses":case"revenue":case"top_expenses":case"cash_position":case"cash_in_cash_out":case"insights_dashboard":case"company_details":case"task_card":case"bill_pay_card":case"reimbursement_card":case"net_burn_or_income":case"accounts_payable_aging":case"accounts_receivable_aging":case"rewards_card":return[Re(f,c,u,g,C)];case"net_burn_or_income_story_card":return[Re(f,c,u,"net_burn_or_income_story_card",C)];default:return console.error(`card type ${g} not yet supported!`),[]}})(h,h.fetchState,Ee,p):[]}})).flat();return a.isSummaryCardsFiltered===!0&&(l=l.filter((m=>Gs.includes(m.card.cardType)==0)).filter((m=>{const p=m.data?.availableNumberOfPeriods;return p!=null?p>0:m.card.cardType!="top_expenses"||m.data==null||(function(h){if(h==null||h.length===0)return!0;let f=!0;for(const c of h)if(c.balance.available.amount!==0){f=!1;break}return f})(m.data.topExpenses.accountsOrdered)===!1}))),{cardDataArray:l,autoCompleteData:{autoCompleteText:e.entityAutoCompleteState.autoCompleteText.navbar,entityAutoCompleteView:ue(e,"navbar")},analytics:w,isReimbursementEnabled:a.isReimbursementEnabled,isBillPayEnabled:a.isBillPayEnabled}}),(function(e,a){const t=a.tenantId,n=V.getSignedInUser();return{cardActions:{onCardClick:(o,r,s,i)=>{if(console.warn(`onCardClick at ${o} for the type ${r}`),r==="zeni_promo_card"&&i!=null)w.trackDashboardCardClicked("cards promo",2),w.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&&w.trackDashboardCardClicked("rewards promo",o+1),a.navigate("../../rewards/refer",{state:{referrer:s}})):r==="expense_automation_card"?(w.trackMonthEndCloseClicked(a.selectedPeriod.month,a.selectedPeriod.year,"Dashboard"),a.navigate("../../month_end_close_checks/review",{state:{referrer:"Dashboard"}})):a.navigate(`${r}`,{state:{referrer:s}})},onReloadData:(o,r)=>{const s=[];a.isApAgingFeatureEnabled===!1&&s.push("accounts_payable_aging"),a.isArAgingFeatureEnabled===!1&&s.push("accounts_receivable_aging"),a.isRewardsFeatureEnabled===!1&&s.push("rewards_card"),(function(i,l,m,p){if(l!==ae)switch(l){case"card_balance":i(la());break;case"cash_balance":i(ca());break;case"operating_expenses":i(xa(!0));break;case"revenue":i(wa(!0));break;case"net_burn_or_income":i(Ta(!0));break;case"net_burn_or_income_story_card":i(Mo(!0));break;case"cash_position":i(Ea(!0));break;case"top_expenses":i(Ia());break;case"cash_in_cash_out":i(Aa());break;case"insights_dashboard":i(Ro());break;case"bill_pay_card":i(jo());break;case"reimbursement_card":i(Oo());break;case"company_details":i(Fo(m));break;case"task_card":i(Po());break;case"accounts_payable_aging":p.includes("accounts_payable_aging")===!1&&i(gt(Te()));break;case"accounts_receivable_aging":i(bt(Te()));break;case"rewards_card":p.includes("rewards_card")===!1&&i(Do(!0));break;default:throw new Error(`report type ${l} is not yet supported`)}})(e,r,a.companyId,s)},onTimeframeChange:(o,r)=>{w.trackTimeframeSwitch(Ya(r),Qs(o),"Dashboard"),(function(s,i,l){switch(i){case"operating_expenses":case"revenue":case"net_burn_or_income":case"cash_position":s(we(l));break;case"top_expenses":s(va(l));break;default:throw new Error(`report type ${i} doesn't support changeTimeframe`)}})(e,o,r)},onUpdateSelectedInsightIndex:o=>{e(xo(o))},onCategoryClick:(o,r,s)=>{o==="bill-pay"?a.navigate("../bills",{state:{tab:r,subTab:s},relative:"path"}):o==="reimbursement"?a.navigate("../reimbursements",{state:{tab:r,subTab:s},relative:"path"}):o==="uncategorized-account-mapping"?a.navigate("../settings/accounting",{relative:"path"}):o==="show-all-tasks"?a.navigate("../tasks",{relative:"path"}):a.navigate(`../../transactions/${o}`)},onCardBtnClick:o=>{if(o==="bill_pay_promo_card"){const r="../bills",s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s},relative:"path"})}else if(o==="reimbursement_promo_card"){const r="../reimbursements",s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s},relative:"path"})}},onSaveClick:(o,r,s)=>{o==="net_burn_or_income_story_card"&&(w.trackUpdateBurnRateCalculatorSettings(r,s,To(s)),e(wo(t,r,s)))}},autoCompleteActions:{onAutoCompleteInputChange:o=>{o.trim().length>=2?e(me({searchString:o,searchOrigin:"navbar"})):o.trim().length===0&&e(ne("navbar"))},onCancelAutoComplete:()=>{e(ne("navbar"))},onAutoCompleteEntity:o=>{let r="";r=o.type!=="vendor"||o.detailType!=="bank_merchant"&&o.detailType!=="card_merchant"?he(o,a.tenantEmailDomain):os(o.zeniId,o.qboId,a.tenantEmailDomain);const s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s,referrer:"Search"}})}}}}))(ns);function qs(){const e=oa(),a=Oa(),t=Ua(a),{isAiCfoOpen:n,setIsAiCfoOpen:o,setAiCfoSidePanelQuestionToSubmit:r}=Fa(),s=J(),i=z(),l=H(),m=V.getSignedInUser(),{useFeatureGate:p,useDynamicConfig:h}=Pe(),[f,c]=b.useState(!1),[u,C]=b.useState(!1),g=ja(),{tenantEmailDomain:k}=q(),{isAiCfoAccessEnabled:I,onAskAiCfoClick:v}=re({mobileExploreReferrer:"Dashboard"}),S=_((A=>A.tenantState.fetchState==="Completed"||A.tenantState.activeTenantFetchState.fetchState==="Completed"?L(A):void 0)),T=S??V.getSignedInUserTenant(k),{isCardsShuttingDown:B,shutdownContent:D}=Qo(T?.tenantId,S?.company?.managementInfo?.receiverEmails),E=b.useMemo((()=>B===!0&&D!=null?d.jsx(Wo,{shutdownContent:D}):null),[B,D]),P=S?.masterTOSInfo?.isMasterTOSAccepted??!1,y=T.tenantId,x=T.companyId;b.useEffect((()=>{f===!1&&l.state?.message==="activation"&&(i(yo(x)),c(!0))}),[l.state,f,x,i]),b.useEffect((()=>{g&&!u&&l.state?.message==="open_ai_cfo_drawer"&&(C(!0),P?(o(!0),s({pathname:l.pathname,search:l.search,hash:l.hash},{replace:!0,state:{...l.state,message:void 0}})):ce({location:l,navigate:s,mergeState:{referrer:"Dashboard",message:void 0}}))}),[l,u,g,P,o,s]);const{isFeatureEnabled:ie}=p(Y.isApAgingFeatureEnabled),Se=Zo(),R=Ho(Se),{isFeatureEnabled:ee}=p(Y.isArAgingFeatureEnabled),{isFeatureEnabled:qe}=p(Y.isDepositAccountsFeatureEnabled),{isFeatureEnabled:Qe}=p(Y.isReferralFeatureEnabled),{isFeatureEnabled:Ka}=p(Y.isChargeCardFeatureEnabled),{isFeatureEnabled:qa}=p(Y.isAiCfoFileUploadEnabled),{isFeatureEnabled:Qa}=p(Y.isDashboardSidebarChristmasAnimationEnabled),{isFeatureEnabled:Wa}=p(Y.isDashboardSidebarNewYearAnimationEnabled),{isFeatureEnabled:Za}=p(Y.aiAuditScorePercentage),{configValue:Ot}=h(Ra.zeniCardsConfig),Ha=Ot.charge_card_cashback_rate_per_transaction==null?.0175:Ot.charge_card_cashback_rate_per_transaction;if(l.state?.message==="activation"){const A=Jo(l.state?.pathnameStackToGoBack);s(l.pathname,{state:{...l.state,message:void 0,pathnameStackToGoBack:A.newStack}})}const[jt,Ja]=b.useState(!1),[nt,en]=b.useState(!1);Ys("command+p, Control+p",(A=>{en(!nt),A.preventDefault()}),{enableOnContentEditable:!0,enableOnTags:["INPUT","SELECT","TEXTAREA"]},[nt]);const Rt=S?.externalConnections?.accounting[0]?.isValid;if(m==null)throw Error("Can't access dashboard without signing in...");const fe=_((A=>L(A)?.excludedResources)),tn=_((A=>A.expenseAutomationViewState.selectedPeriodByTenantId)),an=!!S?.companyReimbursementInfo?.info?.isReimbursementEnabled,nn=!!S?.companyBillPayInfo?.info?.isBillPayEnabled,on=$e(),K=[],Mt=fe?.resources?.find((A=>A.resource==="/reports/top_expenses"))==null,sn=fe?.resources?.find((A=>A.resource==="/reports/task_card"))==null,Bt=S?.userRole!=null&&_a(S?.userRole),rn=fe?.resources?.find((A=>A.resource==="/bills"))==null&&!Bt,cn=fe?.resources?.find((A=>A.resource==="/reimbursements"))==null,ln=vo(on?.loggedInUserRoleMap),dn=S?.company?.companyChargeCardInfo?.chargeCardsCreditAccountLimit??0,un=S?.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1;Mt===!1&&K.push("top_expenses"),sn===!1&&K.push("task_card"),rn===!1&&K.push("bill_pay_card","bill_pay_promo_card"),ie===!1&&K.push("accounts_payable_aging"),ee===!1&&K.push("accounts_receivable_aging"),(Se===!1||Bt)&&K.push("expense_automation_card"),cn===!1&&K.push("reimbursement_card","reimbursement_promo_card"),K.push("zeni_accounts_promo_card","treasury_promo_card"),Qe===!1&&K.push("rewards_card");const{areTenantIdsInSync:Ut}=es();b.useLayoutEffect((()=>{jt&&R===Se||Rt!==!0||!Ut||fe?.fetchState!=="Completed"&&fe?.fetchState!=="Error"||(Ja(!0),i(Ao(m.userId,x,y,!0,!1,K)))}),[jt,m,y,i,Mt,Rt,fe?.fetchState,Ut]);const mn=_((A=>A.reportUIOptionsState.forecastOnDashboard.isForecastModeOn)),pn=_((A=>A.revenueState.uiState.selectedForecast?.id)),hn=_((A=>A.cardBalanceState.fetchState)),ge=_((A=>Io(A,K))),fn=ge.fetchState,gn=b.useMemo((()=>na(ge.cardsOrdered,I)),[ge.cardsOrdered,I]),bn=b.useMemo((()=>na(ge.cardsForDashboardUI,I)),[ge.cardsForDashboardUI,I]);Xe({isDataReady:!0});const{isSuggestedQuestionsLoading:Cn,suggestedPromptQuestions:_n}=rs(),Lt=_((A=>da(A))),ke=Lt.uiState?.currentChatSessionId,ot=Lt.allSessionsWithOrderedQuestionAnswers??Xs,{currentSessionQuestionAnswers:Sn}=ts(ot,ke),Vt=Sn.length===0,kn=b.useCallback(((A,W,te)=>{const ye=m?.userId;if(ye==null)return;const X=A.trim();if(X.length===0&&W.length===0)return;if(!P)return void ce({location:l,navigate:s,mergeState:{referrer:"Dashboard",...X.length>0?{aiCfoInitialQuestion:X,aiCfoInitialSubmissionSource:pt,...typeof te=="number"?{aiCfoSuggestionIndex:te}:{}}:{}}});const Z=Ma(e.getState()),ve=()=>{const Ae=j(l.state?.pathnameStackToGoBack,l.pathname);s(`/${k}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Ae,referrer:"Dashboard",aiCfoInitialQuestion:X,aiCfoShouldSubmit:!Z&&X.length>0,aiCfoInitialSubmissionSource:pt,...typeof te=="number"?{aiCfoSuggestionIndex:te}:{}}})};return t?W.length>0?void o(!0):void ve():W.length>0?Z?(i(Ct(X)),void o(!0)):(r(X.length>0?X:null),o(!0),void(X.length>0&&Ba(i,X,pt,ke,ot,ye,te,W.length>0?W:void 0))):(Z&&i(Ct(X)),void ve())}),[ot,ke,i,P,t,l,s,r,o,m?.userId,e,k]),yn=b.useCallback((()=>{P?o(!0):ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}})}),[P,l,s,o]),vn=b.useCallback((()=>{if(!P)return void ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}});if(k==null)return;const A=j(l.state?.pathnameStackToGoBack,l.pathname);s(`/${k}/ai-cfo/explore`,{state:{pathnameStackToGoBack:A,referrer:"Dashboard"}})}),[P,l,s,k]),An=b.useCallback((()=>{if(P)if(t){if(k==null||S==null)return;const A=ke==null||Vt?`/${k}/ai-cfo/explore`:`/${k}/ai-cfo/${ke}`,W=l.state?.pathnameStackToGoBack??[],te=j(W,l.pathname);s(A,{state:{...l.state,pathnameStackToGoBack:te,[as]:!0}})}else ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}});else ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}})}),[P,t,l,s,k,S,ke,Vt]);return d.jsxs(d.Fragment,{children:[fn==="Completed"?d.jsx(Ge,{analytics:w,onLoad:A=>{A.trackPageLoaded(N.Event.dashboard)}}):null,d.jsx(Ks,{cardsShutdownBanner:E,maxColumns:n?2:void 0,isAiCfoAccessEnabled:I,onAskAiCfoClick:v,onAiCfoDashboardOpenPanel:yn,onAiCfoDashboardOpenScopePage:An,isAiCfoFileUploadEnabled:qa===!0&&t===!1,onAiCfoDashboardPromptSubmit:kn,onAiCfoDashboardExpandToFullPage:vn,aiCfoDashboardShouldClearPromptOnSubmit:P,aiCfoDashboardSuggestedPromptQuestions:_n,aiCfoDashboardSuggestedPromptQuestionsLoading:Cn,onDragAndDropCard:(A,W)=>{if(A===ae||W===ae)return;const te=(function(Z,ve,Ae){const st=Ae.indexOf(Z),rt=Ae.indexOf(ve);if(st===-1||rt===-1||st===rt)return Ae;const it=[...Ae];return it.splice(st,1),it.splice(rt,0,Z),it})(A,W,gn),ye=te.filter((Z=>Z!==ae)),X=ge.cardsOrdered;(ye.length!==X.length||ye.some(((Z,ve)=>Z!==X[ve])))&&i(Eo(ye))},dashboardReport:ge,passedCardsOrdered:bn,tenantId:y,companyId:x,tenantEmailDomain:k,location:l,navigate:s,isApAgingFeatureEnabled:ie,isArAgingFeatureEnabled:ee,isBillPayEnabled:nn,isReimbursementEnabled:an,isSummaryCardsFiltered:nt,isForecastOn:mn,selectedForecastOnDashboard:pn,isVisitingFirstTime:f,isZeniAccountEnabled:qe,isRewardsFeatureEnabled:Qe,selectedPeriod:tn[y],isChargeCardFeatureEnabled:Ka,isUserHasCardsAccess:ln,cardsCreditLimit:dn,cashbackRate:Ha,isInterestedInChargeCard:un,cardBalanceFetchState:hn,christmasAnimationEnabled:Qa,newYearAnimationEnabled:Wa,aiAuditScorePercentageEnabled:Za})]})}const Qs=e=>{switch(e){case"operating_expenses":return"Operating Expenses";case"revenue":return"Revenues";case"top_expenses":return"Top Expenses";case"net_burn_or_income":return"Burn Rate";case"cash_in_cash_out":return"Cash In, Cash Out";case"cash_position":return"Cash Position"}return"Dashboard"},Ws=e=>e.fetchState!=="Error"?e.fetchState:e.reportsInOrder.map((a=>a.fetchState)).reduce(((a,t)=>a==="In-Progress"||a==="Not-Started"?a:t));function ht(){return d.jsxs(ft,{children:[d.jsx(O,{path:"/",element:d.jsx(le,{})}),d.jsx(O,{path:"/:forecastId",element:d.jsx(le,{})}),d.jsx(O,{path:"/:forecastId/*",element:d.jsx(Be,{})})]})}function wr(){const e=$e(),a=e?.excludedResources?.find((m=>m.resource==="/reports/top_expenses"))==null,{useFeatureGate:t}=Pe(),{isFeatureEnabled:n}=t(Y.isApAgingFeatureEnabled),{isFeatureEnabled:o}=t(Y.isArAgingFeatureEnabled),r=_((m=>L(m))),{isFeatureEnabled:s}=t(Y.isDebitCardFeatureEnabled),i=Bo(s,r),l=Uo(r);return i===!0||l===!0?d.jsx(ft,{children:d.jsx(O,{path:"/*",element:d.jsx(is,{})})}):d.jsxs(ft,{children:[d.jsx(O,{path:"/",element:d.jsx(qs,{})}),d.jsx(O,{path:"cash_balance/*",element:d.jsx(Qt,{})}),d.jsx(O,{path:"card_balance/*",element:d.jsx(Qt,{})}),d.jsx(O,{path:"operating_expenses/*",element:d.jsx(le,{})}),d.jsx(O,{path:"operating_expenses/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"revenue/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"revenue/*",element:d.jsx(le,{})}),d.jsx(O,{path:"net_burn_or_income/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"net_burn_or_income/*",element:d.jsx(le,{})}),n===!0&&d.jsxs(d.Fragment,{children:[d.jsx(O,{path:"accounts_payable_aging/*",element:d.jsx(ls,{})}),d.jsx(O,{path:"accounts_payable_aging/:vendorId/:reportDate/*",element:d.jsx(cs,{})})]}),o&&d.jsxs(d.Fragment,{children:[d.jsx(O,{path:"accounts_receivable_aging/:customerId/:reportDate/*",element:d.jsx(ds,{})}),d.jsx(O,{path:"accounts_receivable_aging/*",element:d.jsx(us,{})})]}),d.jsx(O,{path:"cash_position/*",element:d.jsx(le,{})}),d.jsx(O,{path:"top_expenses/*",element:a===!0?d.jsx(le,{}):d.jsx(Be,{})}),d.jsx(O,{path:"cash_in_cash_out/*",element:d.jsx(le,{})}),d.jsx(O,{path:"company_details",element:d.jsx(ss,{})}),d.jsx(O,{path:"referrals/*",element:d.jsx(In,{to:"../../rewards/refer",replace:!0})}),d.jsx(O,{path:"*",element:d.jsx(Be,{})})]})}export{wr as default};
|
|
20
|
+
`;function Ls({fetchState:e,firstMonthOfFY:a,reportId:t,forecastId:n}){const o=J(),r=H(),{tenantEmailDomain:s}=q();let i;Ge({isDataReady:!0});const l={firstMonthOfFY:a,tenantEmailDomain:s,location:r,navigate:o,forecastIdFromUrlPath:n,fetchState:e};switch(t){case"operating_expenses":i=d.jsx(Ps,{...l});break;case"revenue":i=d.jsx(js,{...l});break;case"net_burn_or_income":i=d.jsx(ws,{...l});break;case"cash_position":i=d.jsx(Is,{...l});break;case"top_expenses":i=d.jsx(Bs,{...l});break;case"cash_in_cash_out":i=d.jsx(ys,{...l});break;default:console.error(`${t} is not supported!`),i=null}return i!=null?d.jsx(Us,{children:i}):null}function le(){const e=H(),a=z(),{forecastId:t}=q();let n="Not-Started";const o=S((c=>It(c).fetchState)),r=S((c=>Et(c).fetchState)),s=S((c=>_t(c).fetchState)),i=S((c=>c.cashPositionState.fetchState)),l=S((c=>c.topExState.fetchState)),m=S((c=>c.cashInCashOutState.fetchState));if(Y.getSignedInUser()==null)throw Error("Can't access dashboard detail without signing in...");const p=S((c=>L(c))),h=p?.company?.companyInfo?.firstMonthOfFY??1,f=ra((c=>{const u=ia(c,"/").split("/");return t!=null?u[u.length-3]:u[u.length-1]})(e.pathname));switch(f){case"operating_expenses":n=o;break;case"revenue":n=r;break;case"net_burn_or_income":n=s;break;case"cash_position":n=i;break;case"top_expenses":n=l;break;case"cash_in_cash_out":n=m;break;default:console.error(`${f} is not supported!`)}return b.useEffect((()=>{n==="Not-Started"&&(function(c,u,C,g){switch(u){case"operating_expenses":c(xa(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(Ca(!1,g)));break;case"revenue":c(wa(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(ya(!1,g)));break;case"net_burn_or_income":c(Ta(!0)),g!=null&&(c(Ie(C,!0,3,{id:g,index:0})),c(fa(!1,g)));break;case"cash_position":c(Ea(!0));break;case"top_expenses":c(Ia());break;case"cash_in_cash_out":c(Aa());break;default:throw new Error(`report type ${u} is not yet supported`)}})(a,f,h,t)}),[t]),d.jsxs(d.Fragment,{children:[n==="Completed"?d.jsx(Ne,{analytics:w,onLoad:c=>((u,C)=>{const g=e.state?.referrer;switch(C){case"operating_expenses":u.trackPageLoaded(X.Event.operatingExpenses,g);break;case"revenue":u.trackPageLoaded(X.Event.revenues,g);break;case"net_burn_or_income":u.trackPageLoaded(X.Event.burnRate,g);break;case"cash_position":u.trackPageLoaded(X.Event.cashPosition,g);break;case"top_expenses":u.trackPageLoaded(X.Event.topExpenses,g);break;case"cash_in_cash_out":u.trackPageLoaded(X.Event.cashInCashOut,g);break;default:console.error(`Analytics: Not tracking Page Loaded for ${C}!`)}})(c,f)}):null,d.jsx(Ls,{firstMonthOfFY:h,fetchState:n,reportId:f,forecastId:t})]})}var ct=typeof navigator<"u"&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function lt(e,a,t,n){e.addEventListener?e.addEventListener(a,t,n):e.attachEvent&&e.attachEvent("on".concat(a),(function(){t(window.event)}))}function Xa(e,a){for(var t=a.slice(0,a.length-1),n=0;n<t.length;n++)t[n]=e[t[n].toLowerCase()];return t}function $a(e){typeof e!="string"&&(e="");for(var a=(e=e.replace(/\s/g,"")).split(","),t=a.lastIndexOf("");t>=0;)a[t-1]+=",",a.splice(t,1),t=a.lastIndexOf("");return a}for(var Ft={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":ct?173:189,"=":ct?61:187,";":ct?59:186,"'":222,"[":219,"]":221,"\\":220},de={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},St={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},U={16:!1,18:!1,17:!1,91:!1},M={},He=1;He<20;He++)Ft["f".concat(He)]=111+He;var F=[],Zt=!1,za="all",Ht=[],at=function(e){return Ft[e.toLowerCase()]||de[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function Jt(e){za=e||"all"}function Me(){return za||"all"}var dt=function(e){var a=e.key,t=e.scope,n=e.method,o=e.splitKey,r=o===void 0?"+":o;$a(a).forEach((function(s){var i=s.split(r),l=i.length,m=i[l-1],p=m==="*"?"*":at(m);if(M[p]){t||(t=Me());var h=l>1?Xa(de,i):[];M[p]=M[p].filter((function(f){return!((!n||f.method===n)&&f.scope===t&&(function(c,u){for(var C=c.length>=u.length?c:u,g=c.length>=u.length?u:c,k=!0,I=0;I<C.length;I++)g.indexOf(C[I])===-1&&(k=!1);return k})(f.mods,h))}))}}))};function ea(e,a,t,n){var o;if(a.element===n&&(a.scope===t||a.scope==="all")){for(var r in o=a.mods.length>0,U)Object.prototype.hasOwnProperty.call(U,r)&&(!U[r]&&a.mods.indexOf(+r)>-1||U[r]&&a.mods.indexOf(+r)===-1)&&(o=!1);(a.mods.length!==0||U[16]||U[18]||U[17]||U[91])&&!o&&a.shortcut!=="*"||a.method(e,a)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function ta(e,a){var t=M["*"],n=e.keyCode||e.which||e.charCode;if(N.filter.call(this,e)){if(n!==93&&n!==224||(n=91),F.indexOf(n)===-1&&n!==229&&F.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(u){var C=St[u];e[u]&&F.indexOf(C)===-1?F.push(C):!e[u]&&F.indexOf(C)>-1?F.splice(F.indexOf(C),1):u==="metaKey"&&e[u]&&F.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(F=F.slice(F.indexOf(C))))})),n in U){for(var o in U[n]=!0,de)de[o]===n&&(N[o]=!0);if(!t)return}for(var r in U)Object.prototype.hasOwnProperty.call(U,r)&&(U[r]=e[St[r]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(F.indexOf(17)===-1&&F.push(17),F.indexOf(18)===-1&&F.push(18),U[17]=!0,U[18]=!0);var s=Me();if(t)for(var i=0;i<t.length;i++)t[i].scope===s&&(e.type==="keydown"&&t[i].keydown||e.type==="keyup"&&t[i].keyup)&&ea(e,t[i],s,a);if(n in M){for(var l=0;l<M[n].length;l++)if((e.type==="keydown"&&M[n][l].keydown||e.type==="keyup"&&M[n][l].keyup)&&M[n][l].key){for(var m=M[n][l],p=m.splitKey,h=m.key.split(p),f=[],c=0;c<h.length;c++)f.push(at(h[c]));f.sort().join("")===F.sort().join("")&&ea(e,m,s,a)}}}}function N(e,a,t){F=[];var n=$a(e),o=[],r="all",s=document,i=0,l=!1,m=!0,p="+",h=!1;for(t===void 0&&typeof a=="function"&&(t=a),Object.prototype.toString.call(a)==="[object Object]"&&(a.scope&&(r=a.scope),a.element&&(s=a.element),a.keyup&&(l=a.keyup),a.keydown!==void 0&&(m=a.keydown),a.capture!==void 0&&(h=a.capture),typeof a.splitKey=="string"&&(p=a.splitKey)),typeof a=="string"&&(r=a);i<n.length;i++)o=[],(e=n[i].split(p)).length>1&&(o=Xa(de,e)),(e=(e=e[e.length-1])==="*"?"*":at(e))in M||(M[e]=[]),M[e].push({keyup:l,keydown:m,scope:r,mods:o,shortcut:n[i],method:t,key:n[i],splitKey:p,element:s});s!==void 0&&!(function(f){return Ht.indexOf(f)>-1})(s)&&window&&(Ht.push(s),lt(s,"keydown",(function(f){ta(f,s)}),h),Zt||(Zt=!0,lt(window,"focus",(function(){F=[]}),h)),lt(s,"keyup",(function(f){ta(f,s),(function(c){var u=c.keyCode||c.which||c.charCode,C=F.indexOf(u);if(C>=0&&F.splice(C,1),c.key&&c.key.toLowerCase()==="meta"&&F.splice(0,F.length),u!==93&&u!==224||(u=91),u in U)for(var g in U[u]=!1,de)de[g]===u&&(N[g]=!1)})(f)}),h))}var ut={setScope:Jt,getScope:Me,deleteScope:function(e,a){var t,n;for(var o in e||(e=Me()),M)if(Object.prototype.hasOwnProperty.call(M,o))for(t=M[o],n=0;n<t.length;)t[n].scope===e?t.splice(n,1):n++;Me()===e&&Jt(a||"all")},getPressedKeyCodes:function(){return F.slice(0)},isPressed:function(e){return typeof e=="string"&&(e=at(e)),F.indexOf(e)!==-1},filter:function(e){var a=e.target||e.srcElement,t=a.tagName,n=!0;return!a.isContentEditable&&(t!=="INPUT"&&t!=="TEXTAREA"&&t!=="SELECT"||a.readOnly)||(n=!1),n},trigger:function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"all";Object.keys(M).forEach((function(t){var n=M[t].find((function(o){return o.scope===a&&o.shortcut===e}));n&&n.method&&n.method()}))},unbind:function(e){if(e===void 0)Object.keys(M).forEach((function(s){return delete M[s]}));else if(Array.isArray(e))e.forEach((function(s){s.key&&dt(s)}));else if(typeof e=="object")e.key&&dt(e);else if(typeof e=="string"){for(var a=arguments.length,t=new Array(a>1?a-1:0),n=1;n<a;n++)t[n-1]=arguments[n];var o=t[0],r=t[1];typeof o=="function"&&(r=o,o=""),dt({key:e,scope:o,method:r,splitKey:"+"})}},keyMap:Ft,modifier:de,modifierMap:St};for(var mt in ut)Object.prototype.hasOwnProperty.call(ut,mt)&&(N[mt]=ut[mt]);if(typeof window<"u"){var Ys=window.hotkeys;N.noConflict=function(e){return e&&window.hotkeys===N&&(window.hotkeys=Ys),N},window.hotkeys=N}N.filter=function(){return!0};var aa=function(e,a){var t=e.target,n=t&&t.tagName;return!!(n&&a&&a.includes(n))};function Vs(e,a,t,n){t instanceof Array&&(n=t,t=void 0);var o=t||{},r=o.enableOnTags,s=o.filter,i=o.keyup,l=o.keydown,m=o.filterPreventDefault,p=m===void 0||m,h=o.enabled,f=h===void 0||h,c=o.enableOnContentEditable,u=c!==void 0&&c,C=b.useRef(null),g=b.useCallback((function(k,I){var v,_;return s&&!s(k)?!p:!!(aa(k,["INPUT","TEXTAREA","SELECT"])&&!aa(k,r)||(v=k.target)!=null&&v.isContentEditable&&!u)||!!(C.current===null||document.activeElement===C.current||(_=C.current)!=null&&_.contains(document.activeElement))&&(a(k,I),!0)}),n?[C,r,s].concat(n):[C,r,s]);return b.useEffect((function(){if(f)return i&&l!==!0&&(t.keydown=!1),N(e,t||{},g),function(){return N.unbind(e,g)};N.unbind(e,g)}),[g,e,f]),C}N.isPressed;const Gs=[],pt="dashboard_card",ae="ai_cfo_dashboard_card";function na(e,a){return a?e.some((t=>String(t)===ae))?e.slice():[ae,...e]:e.filter((t=>String(t)!==ae))}const Ns=["net_burn_or_income_story_card","cash_balance","task_card","card_balance","zeni_promo_card","insights_dashboard","information_card","company_details","bill_pay_promo_card","bill_pay_card","reimbursement_card","reimbursement_promo_card","rewards_card"],Xs=(e,a,t,n,o)=>({card:{dimension:Tt(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e.status!=null?{balanceAmount:e.balance?.available,lastUpdatedTime:e.status.lastRefreshSuccessTime,changePercent:e.balance?.change?.percent,changeComparedToDate:e.balance?.change?.since}:void 0}),Re=(e,a,t,n,o)=>({card:{dimension:Tt(t),cardType:n,cardIndex:o,fetchState:a,disableAnimations:!1,spansFullDashboardWidth:!1},data:e}),$s=(e,a,t,n)=>Re(void 0,e,Ee,a,t),zs=e=>{const a=Tt(Ee);return a.height=Ee.height+10,{card:{dimension:a,cardType:ae,cardIndex:e,fetchState:"Completed",disableAnimations:!1,spansFullDashboardWidth:!0}}},Ks=oe((function(e,a){const t=Ws(a.dashboardReport),n=a.passedCardsOrdered,o=a.dashboardReport.reportsInOrder,{isInterestedInChargeCard:r,cardsCreditLimit:s,cashbackRate:i}=a;let l=n.map(((m,p)=>{if(m==="reimbursement_promo_card"||m==="bill_pay_promo_card")return $s(t,m,p);if(m==="zeni_promo_card")return Re({isExpressedInterest:r,creditLimit:s,cashbackRate:i,fetchState:"Completed"},a.cardBalanceFetchState,Ee,m,p);if(m==="information_card")return Re(void 0,"Completed",Ee,m,p);if(m===ae)return zs(p);{const h=o.find((f=>f?.reportId===m));return h?(function(f,c,u,C){const g=f.reportId;switch(g){case"card_balance":case"cash_balance":return[Xs(f,c,u,g,C)];case"expense_automation_card":case"operating_expenses":case"revenue":case"top_expenses":case"cash_position":case"cash_in_cash_out":case"insights_dashboard":case"company_details":case"task_card":case"bill_pay_card":case"reimbursement_card":case"net_burn_or_income":case"accounts_payable_aging":case"accounts_receivable_aging":case"rewards_card":return[Re(f,c,u,g,C)];case"net_burn_or_income_story_card":return[Re(f,c,u,"net_burn_or_income_story_card",C)];default:return console.error(`card type ${g} not yet supported!`),[]}})(h,h.fetchState,Ee,p):[]}})).flat();return a.isSummaryCardsFiltered===!0&&(l=l.filter((m=>Ns.includes(m.card.cardType)==0)).filter((m=>{const p=m.data?.availableNumberOfPeriods;return p!=null?p>0:m.card.cardType!="top_expenses"||m.data==null||(function(h){if(h==null||h.length===0)return!0;let f=!0;for(const c of h)if(c.balance.available.amount!==0){f=!1;break}return f})(m.data.topExpenses.accountsOrdered)===!1}))),{cardDataArray:l,autoCompleteData:{autoCompleteText:e.entityAutoCompleteState.autoCompleteText.navbar,entityAutoCompleteView:ue(e,"navbar")},analytics:w,isReimbursementEnabled:a.isReimbursementEnabled,isBillPayEnabled:a.isBillPayEnabled}}),(function(e,a){const t=a.tenantId,n=Y.getSignedInUser();return{cardActions:{onCardClick:(o,r,s,i)=>{if(console.warn(`onCardClick at ${o} for the type ${r}`),r==="zeni_promo_card"&&i!=null)w.trackDashboardCardClicked("cards promo",2),w.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&&w.trackDashboardCardClicked("rewards promo",o+1),a.navigate("../../rewards/refer",{state:{referrer:s}})):r==="expense_automation_card"?(w.trackMonthEndCloseClicked(a.selectedPeriod.month,a.selectedPeriod.year,"Dashboard"),a.navigate("../../month_end_close_checks/review",{state:{referrer:"Dashboard"}})):a.navigate(`${r}`,{state:{referrer:s}})},onReloadData:(o,r)=>{const s=[];a.isApAgingFeatureEnabled===!1&&s.push("accounts_payable_aging"),a.isArAgingFeatureEnabled===!1&&s.push("accounts_receivable_aging"),a.isRewardsFeatureEnabled===!1&&s.push("rewards_card"),(function(i,l,m,p){if(l!==ae)switch(l){case"card_balance":i(la());break;case"cash_balance":i(ca());break;case"operating_expenses":i(xa(!0));break;case"revenue":i(wa(!0));break;case"net_burn_or_income":i(Ta(!0));break;case"net_burn_or_income_story_card":i(Mo(!0));break;case"cash_position":i(Ea(!0));break;case"top_expenses":i(Ia());break;case"cash_in_cash_out":i(Aa());break;case"insights_dashboard":i(Ro());break;case"bill_pay_card":i(jo());break;case"reimbursement_card":i(Oo());break;case"company_details":i(Fo(m));break;case"task_card":i(Po());break;case"accounts_payable_aging":p.includes("accounts_payable_aging")===!1&&i(gt(Te()));break;case"accounts_receivable_aging":i(bt(Te()));break;case"rewards_card":p.includes("rewards_card")===!1&&i(Do(!0));break;default:throw new Error(`report type ${l} is not yet supported`)}})(e,r,a.companyId,s)},onTimeframeChange:(o,r)=>{w.trackTimeframeSwitch(Va(r),Qs(o),"Dashboard"),(function(s,i,l){switch(i){case"operating_expenses":case"revenue":case"net_burn_or_income":case"cash_position":s(we(l));break;case"top_expenses":s(va(l));break;default:throw new Error(`report type ${i} doesn't support changeTimeframe`)}})(e,o,r)},onUpdateSelectedInsightIndex:o=>{e(xo(o))},onCategoryClick:(o,r,s)=>{o==="bill-pay"?a.navigate("../bills",{state:{tab:r,subTab:s},relative:"path"}):o==="reimbursement"?a.navigate("../reimbursements",{state:{tab:r,subTab:s},relative:"path"}):o==="uncategorized-account-mapping"?a.navigate("../settings/accounting",{relative:"path"}):o==="show-all-tasks"?a.navigate("../tasks",{relative:"path"}):a.navigate(`../../transactions/${o}`)},onCardBtnClick:o=>{if(o==="bill_pay_promo_card"){const r="../bills",s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s},relative:"path"})}else if(o==="reimbursement_promo_card"){const r="../reimbursements",s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s},relative:"path"})}},onSaveClick:(o,r,s)=>{o==="net_burn_or_income_story_card"&&(w.trackUpdateBurnRateCalculatorSettings(r,s,To(s)),e(wo(t,r,s)))}},autoCompleteActions:{onAutoCompleteInputChange:o=>{o.trim().length>=2?e(me({searchString:o,searchOrigin:"navbar"})):o.trim().length===0&&e(ne("navbar"))},onCancelAutoComplete:()=>{e(ne("navbar"))},onAutoCompleteEntity:o=>{let r="";r=o.type!=="vendor"||o.detailType!=="bank_merchant"&&o.detailType!=="card_merchant"?he(o,a.tenantEmailDomain):os(o.zeniId,o.qboId,a.tenantEmailDomain);const s=j(a.location.state?.pathnameStackToGoBack,a.location.pathname);a.navigate(r,{state:{pathnameStackToGoBack:s,referrer:"Search"}})}}}}))(ns);function qs(){const e=oa(),a=Oa(),t=Ua(a),{isAiCfoOpen:n,setIsAiCfoOpen:o,setAiCfoSidePanelQuestionToSubmit:r}=Fa(),s=J(),i=z(),l=H(),m=Y.getSignedInUser(),{useFeatureGate:p,useDynamicConfig:h}=Pe(),[f,c]=b.useState(!1),[u,C]=b.useState(!1),g=ja(),{tenantEmailDomain:k}=q(),{isAiCfoAccessEnabled:I,onAskAiCfoClick:v}=re({mobileExploreReferrer:"Dashboard"}),_=S((A=>A.tenantState.fetchState==="Completed"||A.tenantState.activeTenantFetchState.fetchState==="Completed"?L(A):void 0)),T=_??Y.getSignedInUserTenant(k),{isCardsShuttingDown:B,shutdownContent:D}=Qo(T?.tenantId,_?.company?.managementInfo?.receiverEmails),E=b.useMemo((()=>B===!0&&D!=null?d.jsx(Wo,{shutdownContent:D}):null),[B,D]),P=_?.masterTOSInfo?.isMasterTOSAccepted??!1,y=T.tenantId,x=T.companyId;b.useEffect((()=>{f===!1&&l.state?.message==="activation"&&(i(yo(x)),c(!0))}),[l.state,f,x,i]),b.useEffect((()=>{g&&!u&&l.state?.message==="open_ai_cfo_drawer"&&(C(!0),P?(o(!0),s({pathname:l.pathname,search:l.search,hash:l.hash},{replace:!0,state:{...l.state,message:void 0}})):ce({location:l,navigate:s,mergeState:{referrer:"Dashboard",message:void 0}}))}),[l,u,g,P,o,s]);const{isFeatureEnabled:ie}=p(V.isApAgingFeatureEnabled),_e=Zo(),R=Ho(_e),{isFeatureEnabled:ee}=p(V.isArAgingFeatureEnabled),{isFeatureEnabled:qe}=p(V.isDepositAccountsFeatureEnabled),{isFeatureEnabled:Qe}=p(V.isReferralFeatureEnabled),{isFeatureEnabled:Ka}=p(V.isChargeCardFeatureEnabled),{isFeatureEnabled:qa}=p(V.isAiCfoFileUploadEnabled),{isFeatureEnabled:Qa}=p(V.isDashboardSidebarChristmasAnimationEnabled),{isFeatureEnabled:Wa}=p(V.isDashboardSidebarNewYearAnimationEnabled),{isFeatureEnabled:Za}=p(V.aiAuditScorePercentage),{configValue:Ot}=h(Ra.zeniCardsConfig),Ha=Ot.charge_card_cashback_rate_per_transaction==null?.0175:Ot.charge_card_cashback_rate_per_transaction;if(l.state?.message==="activation"){const A=Jo(l.state?.pathnameStackToGoBack);s(l.pathname,{state:{...l.state,message:void 0,pathnameStackToGoBack:A.newStack}})}const[jt,Ja]=b.useState(!1),[nt,en]=b.useState(!1);Vs("command+p, Control+p",(A=>{en(!nt),A.preventDefault()}),{enableOnContentEditable:!0,enableOnTags:["INPUT","SELECT","TEXTAREA"]},[nt]);const Rt=_?.externalConnections?.accounting[0]?.isValid;if(m==null)throw Error("Can't access dashboard without signing in...");const fe=S((A=>L(A)?.excludedResources)),tn=S((A=>A.expenseAutomationViewState.selectedPeriodByTenantId)),an=!!_?.companyReimbursementInfo?.info?.isReimbursementEnabled,nn=!!_?.companyBillPayInfo?.info?.isBillPayEnabled,on=$e(),K=[],Mt=fe?.resources?.find((A=>A.resource==="/reports/top_expenses"))==null,sn=fe?.resources?.find((A=>A.resource==="/reports/task_card"))==null,Bt=_?.userRole!=null&&Sa(_?.userRole),rn=fe?.resources?.find((A=>A.resource==="/bills"))==null&&!Bt,cn=fe?.resources?.find((A=>A.resource==="/reimbursements"))==null,ln=vo(on?.loggedInUserRoleMap),dn=_?.company?.companyChargeCardInfo?.chargeCardsCreditAccountLimit??0,un=_?.companyChargeCardInfo?.info?.isCompanyInterestedInChargeCard??!1;Mt===!1&&K.push("top_expenses"),sn===!1&&K.push("task_card"),rn===!1&&K.push("bill_pay_card","bill_pay_promo_card"),ie===!1&&K.push("accounts_payable_aging"),ee===!1&&K.push("accounts_receivable_aging"),(_e===!1||Bt)&&K.push("expense_automation_card"),cn===!1&&K.push("reimbursement_card","reimbursement_promo_card"),K.push("zeni_accounts_promo_card","treasury_promo_card"),Qe===!1&&K.push("rewards_card");const{areTenantIdsInSync:Ut}=es();b.useLayoutEffect((()=>{jt&&R===_e||Rt!==!0||!Ut||fe?.fetchState!=="Completed"&&fe?.fetchState!=="Error"||(Ja(!0),i(Ao(m.userId,x,y,!0,!1,K)))}),[jt,m,y,i,Mt,Rt,fe?.fetchState,Ut]);const mn=S((A=>A.reportUIOptionsState.forecastOnDashboard.isForecastModeOn)),pn=S((A=>A.revenueState.uiState.selectedForecast?.id)),hn=S((A=>A.cardBalanceState.fetchState)),ge=S((A=>Io(A,K))),fn=ge.fetchState,gn=b.useMemo((()=>na(ge.cardsOrdered,I)),[ge.cardsOrdered,I]),bn=b.useMemo((()=>na(ge.cardsForDashboardUI,I)),[ge.cardsForDashboardUI,I]);Ge({isDataReady:!0});const{isSuggestedQuestionsLoading:Cn,suggestedPromptQuestions:Sn}=rs(),Lt=S((A=>da(A))),ke=Lt.uiState?.currentChatSessionId,ot=Lt.allSessionsWithOrderedQuestionAnswers??Gs,{currentSessionQuestionAnswers:_n}=ts(ot,ke),Yt=_n.length===0,kn=b.useCallback(((A,W,te)=>{const ye=m?.userId;if(ye==null)return;const G=A.trim();if(G.length===0&&W.length===0)return;if(!P)return void ce({location:l,navigate:s,mergeState:{referrer:"Dashboard",...G.length>0?{aiCfoInitialQuestion:G,aiCfoInitialSubmissionSource:pt,...typeof te=="number"?{aiCfoSuggestionIndex:te}:{}}:{}}});const Z=Ma(e.getState()),ve=()=>{const Ae=j(l.state?.pathnameStackToGoBack,l.pathname);s(`/${k}/ai-cfo/explore`,{state:{message:"",origin:"",pathnameStackToGoBack:Ae,referrer:"Dashboard",aiCfoInitialQuestion:G,aiCfoShouldSubmit:!Z&&G.length>0,aiCfoInitialSubmissionSource:pt,...typeof te=="number"?{aiCfoSuggestionIndex:te}:{}}})};return t?W.length>0?void o(!0):void ve():W.length>0?Z?(i(Ct(G)),void o(!0)):(r(G.length>0?G:null),o(!0),void(G.length>0&&Ba(i,G,pt,ke,ot,ye,te,W.length>0?W:void 0))):(Z&&i(Ct(G)),void ve())}),[ot,ke,i,P,t,l,s,r,o,m?.userId,e,k]),yn=b.useCallback((()=>{P?o(!0):ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}})}),[P,l,s,o]),vn=b.useCallback((()=>{if(!P)return void ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}});if(k==null)return;const A=j(l.state?.pathnameStackToGoBack,l.pathname);s(`/${k}/ai-cfo/explore`,{state:{pathnameStackToGoBack:A,referrer:"Dashboard"}})}),[P,l,s,k]),An=b.useCallback((()=>{if(P)if(t){if(k==null||_==null)return;const A=ke==null||Yt?`/${k}/ai-cfo/explore`:`/${k}/ai-cfo/${ke}`,W=l.state?.pathnameStackToGoBack??[],te=j(W,l.pathname);s(A,{state:{...l.state,pathnameStackToGoBack:te,[as]:!0}})}else ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}});else ce({location:l,navigate:s,mergeState:{referrer:"Dashboard"}})}),[P,t,l,s,k,_,ke,Yt]);return d.jsxs(d.Fragment,{children:[fn==="Completed"?d.jsx(Ne,{analytics:w,onLoad:A=>{A.trackPageLoaded(X.Event.dashboard)}}):null,d.jsx(Ks,{cardsShutdownBanner:E,maxColumns:n?2:void 0,isAiCfoAccessEnabled:I,onAskAiCfoClick:v,onAiCfoDashboardOpenPanel:yn,onAiCfoDashboardOpenScopePage:An,isAiCfoFileUploadEnabled:qa===!0&&t===!1,onAiCfoDashboardPromptSubmit:kn,onAiCfoDashboardExpandToFullPage:vn,aiCfoDashboardShouldClearPromptOnSubmit:P,aiCfoDashboardSuggestedPromptQuestions:Sn,aiCfoDashboardSuggestedPromptQuestionsLoading:Cn,onDragAndDropCard:(A,W)=>{if(A===ae||W===ae)return;const te=(function(Z,ve,Ae){const st=Ae.indexOf(Z),rt=Ae.indexOf(ve);if(st===-1||rt===-1||st===rt)return Ae;const it=[...Ae];return it.splice(st,1),it.splice(rt,0,Z),it})(A,W,gn),ye=te.filter((Z=>Z!==ae)),G=ge.cardsOrdered;(ye.length!==G.length||ye.some(((Z,ve)=>Z!==G[ve])))&&i(Eo(ye))},dashboardReport:ge,passedCardsOrdered:bn,tenantId:y,companyId:x,tenantEmailDomain:k,location:l,navigate:s,isApAgingFeatureEnabled:ie,isArAgingFeatureEnabled:ee,isBillPayEnabled:nn,isReimbursementEnabled:an,isSummaryCardsFiltered:nt,isForecastOn:mn,selectedForecastOnDashboard:pn,isVisitingFirstTime:f,isZeniAccountEnabled:qe,isRewardsFeatureEnabled:Qe,selectedPeriod:tn[y],isChargeCardFeatureEnabled:Ka,isUserHasCardsAccess:ln,cardsCreditLimit:dn,cashbackRate:Ha,isInterestedInChargeCard:un,cardBalanceFetchState:hn,christmasAnimationEnabled:Qa,newYearAnimationEnabled:Wa,aiAuditScorePercentageEnabled:Za})]})}const Qs=e=>{switch(e){case"operating_expenses":return"Operating Expenses";case"revenue":return"Revenues";case"top_expenses":return"Top Expenses";case"net_burn_or_income":return"Burn Rate";case"cash_in_cash_out":return"Cash In, Cash Out";case"cash_position":return"Cash Position"}return"Dashboard"},Ws=e=>e.fetchState!=="Error"?e.fetchState:e.reportsInOrder.map((a=>a.fetchState)).reduce(((a,t)=>a==="In-Progress"||a==="Not-Started"?a:t));function ht(){return d.jsxs(ft,{children:[d.jsx(O,{path:"/",element:d.jsx(le,{})}),d.jsx(O,{path:"/:forecastId",element:d.jsx(le,{})}),d.jsx(O,{path:"/:forecastId/*",element:d.jsx(Be,{})})]})}function wr(){const e=$e(),a=e?.excludedResources?.find((m=>m.resource==="/reports/top_expenses"))==null,{useFeatureGate:t}=Pe(),{isFeatureEnabled:n}=t(V.isApAgingFeatureEnabled),{isFeatureEnabled:o}=t(V.isArAgingFeatureEnabled),r=S((m=>L(m))),{isFeatureEnabled:s}=t(V.isDebitCardFeatureEnabled),i=Bo(s,r),l=Uo(r);return i===!0||l===!0?d.jsx(ft,{children:d.jsx(O,{path:"/*",element:d.jsx(is,{})})}):d.jsxs(ft,{children:[d.jsx(O,{path:"/",element:d.jsx(qs,{})}),d.jsx(O,{path:"cash_balance/*",element:d.jsx(Qt,{})}),d.jsx(O,{path:"card_balance/*",element:d.jsx(Qt,{})}),d.jsx(O,{path:"operating_expenses/*",element:d.jsx(le,{})}),d.jsx(O,{path:"operating_expenses/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"revenue/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"revenue/*",element:d.jsx(le,{})}),d.jsx(O,{path:"net_burn_or_income/forecast/*",element:d.jsx(ht,{})}),d.jsx(O,{path:"net_burn_or_income/*",element:d.jsx(le,{})}),n===!0&&d.jsxs(d.Fragment,{children:[d.jsx(O,{path:"accounts_payable_aging/*",element:d.jsx(ls,{})}),d.jsx(O,{path:"accounts_payable_aging/:vendorId/:reportDate/*",element:d.jsx(cs,{})})]}),o&&d.jsxs(d.Fragment,{children:[d.jsx(O,{path:"accounts_receivable_aging/:customerId/:reportDate/*",element:d.jsx(ds,{})}),d.jsx(O,{path:"accounts_receivable_aging/*",element:d.jsx(us,{})})]}),d.jsx(O,{path:"cash_position/*",element:d.jsx(le,{})}),d.jsx(O,{path:"top_expenses/*",element:a===!0?d.jsx(le,{}):d.jsx(Be,{})}),d.jsx(O,{path:"cash_in_cash_out/*",element:d.jsx(le,{})}),d.jsx(O,{path:"company_details",element:d.jsx(ss,{})}),d.jsx(O,{path:"referrals/*",element:d.jsx(In,{to:"../../rewards/refer",replace:!0})}),d.jsx(O,{path:"*",element:d.jsx(Be,{})})]})}export{wr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as v}from"./liveblocks-
|
|
1
|
+
import{j as v}from"./liveblocks-CVtnm86a.js";import{a as u}from"./sentry-BzkfMVrG.js";import{u as y,j as b,l as w,g as A,N}from"./core-BtMsWhj9.js";import{TV as U,fF as _,gl as k,TW as L,pS as R,TX as z}from"./zeni-epic-state-xhG_euwn.js";import{u as j,z as f,L as C,t as I,G as O,b as $}from"./index-BdE3bEFg.js";import"./mui-DdZ2UeI1.js";import{t as P}from"./getLocaleForTenant-omtGYMrM.js";import"./recharts-DhwkC6iY.js";import"./analytics-B3pE_Rhv.js";import"./plaid-nsaMWH8B.js";import"./dnd-NbF88ub7.js";import"./stripe-cKAAJElX.js";import"./lottie-DX_KUXtr.js";import"./lexical-OFbGuPVJ.js";import"./pdf-Ck6JVYdq.js";import"./utils-BrzWPNCR.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]="0375f4de-e96c-4a0c-97b2-e5716fad0b6c",t._sentryDebugIdIdentifier="sentry-dbid-0375f4de-e96c-4a0c-97b2-e5716fad0b6c")}catch{}})();const G=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 T=E(r.pathname);if(T!=null)c=`../${o.tenantEmailDomain}/${T}`,m="comingFromV2UrlPath",T==="ai-cfo/explore"&&(d=p.get("question")?.replace(/^["']|["']$/g,"")??null,e=p.get("should_submit")==="true");else if(i!=null)if(n.reduce(((l,x)=>l||i.split("/").find((D=>D===x))!=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 F=$(c,p);return v.jsx(N,{to:F,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(C.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(C.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(G,{})}const Q=["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 Q)if(t.toLocaleLowerCase().includes(s))return V[s]}export{oe as default};
|