@zeniai/client-epic-state 5.1.12 → 5.1.13
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/lib/common/aiCfo/aiCfoSuggestedQuestionsPageContext.d.ts +1 -1
- package/lib/commonStateTypes/amount.d.ts +1 -0
- package/lib/commonStateTypes/amount.js +9 -1
- package/lib/commonStateTypes/animations.d.ts +1 -1
- package/lib/commonStateTypes/animations.js +1 -0
- package/lib/commonStateTypes/workingDayHelper.d.ts +9 -0
- package/lib/commonStateTypes/workingDayHelper.js +28 -1
- package/lib/entity/aiCfo/aiCfoPayload.d.ts +63 -5
- package/lib/entity/aiCfo/aiCfoReducer.d.ts +23 -2
- package/lib/entity/aiCfo/aiCfoReducer.js +249 -9
- package/lib/entity/aiCfo/aiCfoSelector.d.ts +4 -1
- package/lib/entity/aiCfo/aiCfoSelector.js +19 -1
- package/lib/entity/aiCfo/aiCfoState.d.ts +97 -4
- package/lib/entity/aiCfo/aiCfoState.js +20 -1
- package/lib/entity/approvalRule/approvalRuleConflict.d.ts +56 -0
- package/lib/entity/approvalRule/approvalRuleConflict.js +77 -0
- package/lib/entity/approvalRule/approvalRulePayload.d.ts +34 -5
- package/lib/entity/approvalRule/approvalRulePayload.js +149 -10
- package/lib/entity/approvalRule/approvalRuleSelector.d.ts +25 -1
- package/lib/entity/approvalRule/approvalRuleSelector.js +40 -0
- package/lib/entity/approvalRule/approvalRuleState.d.ts +59 -7
- package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +277 -0
- package/lib/entity/cardPolicy/cardPolicyPayload.js +143 -0
- package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +19 -0
- package/lib/entity/cardPolicy/cardPolicyReducer.js +175 -0
- package/lib/entity/cardPolicy/cardPolicySelector.d.ts +32 -0
- package/lib/entity/cardPolicy/cardPolicySelector.js +99 -0
- package/lib/entity/cardPolicy/cardPolicyState.d.ts +205 -0
- package/lib/entity/cardPolicy/cardPolicyState.js +14 -0
- package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +18 -0
- package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +68 -0
- package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +26 -0
- package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +47 -0
- package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +25 -0
- package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +39 -0
- package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +24 -0
- package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +105 -0
- package/lib/entity/company/cardsVisibilityHelpers.d.ts +4 -0
- package/lib/entity/company/cardsVisibilityHelpers.js +14 -0
- package/lib/entity/company/companyPayload.d.ts +4 -0
- package/lib/entity/company/companyPayload.js +6 -0
- package/lib/entity/company/companyStateTypes.d.ts +7 -0
- package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +1 -0
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +19 -0
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +2 -0
- package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
- package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -1
- package/lib/entity/paymentAccount/paymentAccountSelector.d.ts +1 -0
- package/lib/entity/paymentAccount/paymentAccountSelector.js +9 -0
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +5 -0
- package/lib/entity/task/taskPayload.d.ts +3 -1
- package/lib/entity/task/taskPayload.js +2 -0
- package/lib/entity/task/taskState.d.ts +2 -0
- package/lib/entity/tenant/clearAllEpic.d.ts +8 -2
- package/lib/entity/tenant/clearAllEpic.js +12 -0
- package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +1 -1
- package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.d.ts +21 -0
- package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.js +59 -0
- package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +1 -1
- package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.d.ts +3 -3
- package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +1 -1
- package/lib/entity/tenant/tenantPayload.d.ts +1 -0
- package/lib/entity/tenant/tenantReducer.d.ts +38 -25
- package/lib/entity/tenant/tenantReducer.js +70 -10
- package/lib/entity/tenant/tenantState.d.ts +1 -0
- package/lib/entity/transaction/payloadTypes/transactionPayload.js +14 -2
- package/lib/epic.d.ts +31 -3
- package/lib/epic.js +32 -3
- package/lib/esm/commonStateTypes/amount.js +7 -0
- package/lib/esm/commonStateTypes/animations.js +1 -0
- package/lib/esm/commonStateTypes/workingDayHelper.js +26 -0
- package/lib/esm/entity/aiCfo/aiCfoReducer.js +249 -9
- package/lib/esm/entity/aiCfo/aiCfoSelector.js +17 -1
- package/lib/esm/entity/aiCfo/aiCfoState.js +17 -0
- package/lib/esm/entity/approvalRule/approvalRuleConflict.js +74 -0
- package/lib/esm/entity/approvalRule/approvalRulePayload.js +149 -10
- package/lib/esm/entity/approvalRule/approvalRuleSelector.js +35 -0
- package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +130 -0
- package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +171 -0
- package/lib/esm/entity/cardPolicy/cardPolicySelector.js +75 -0
- package/lib/esm/entity/cardPolicy/cardPolicyState.js +9 -0
- package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +64 -0
- package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +43 -0
- package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +35 -0
- package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +101 -0
- package/lib/esm/entity/company/cardsVisibilityHelpers.js +9 -0
- package/lib/esm/entity/company/companyPayload.js +6 -0
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +19 -0
- package/lib/esm/entity/paymentAccount/paymentAccountSelector.js +8 -0
- package/lib/esm/entity/snackbar/snackbarTypes.js +5 -0
- package/lib/esm/entity/task/taskPayload.js +2 -0
- package/lib/esm/entity/tenant/clearAllEpic.js +12 -0
- package/lib/esm/entity/tenant/epic/initEmailConnectOAuthEpic.js +55 -0
- package/lib/esm/entity/tenant/tenantReducer.js +68 -8
- package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +14 -2
- package/lib/esm/epic.js +32 -3
- package/lib/esm/index.js +68 -26
- package/lib/esm/reducer.js +18 -0
- package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +6 -3
- package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
- package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +2 -1
- package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
- package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewReducer.js +39 -11
- package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +14 -4
- package/lib/esm/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +38 -0
- package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
- package/lib/esm/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +16 -0
- package/lib/esm/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.js +3 -3
- package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/esm/view/dashboard/dashboardSelector.js +8 -43
- package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
- package/lib/esm/view/fileView/epic/deleteFileEpic.js +2 -2
- package/lib/esm/view/fileView/epic/deleteFileListEpic.js +2 -2
- package/lib/esm/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +40 -0
- package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +29 -0
- package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +40 -0
- package/lib/esm/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewEpic.js +24 -18
- package/lib/esm/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.js +29 -17
- package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +223 -51
- package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +36 -18
- package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewState.js +45 -6
- package/lib/esm/view/people/initializeEditPersonEpic.js +5 -1
- package/lib/esm/view/people/invitePeopleEpic.js +6 -3
- package/lib/esm/view/people/peopleSaveUpdatesEpic.js +7 -3
- package/lib/esm/view/settingsView/settingsViewHelpers.js +5 -2
- package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +22 -2
- package/lib/esm/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +109 -12
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +11 -7
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +54 -0
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +13 -4
- package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +144 -16
- package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
- package/lib/esm/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
- package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +29 -0
- package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +78 -0
- package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +49 -0
- package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +47 -0
- package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +32 -0
- package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +32 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +54 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +92 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +212 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +10 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +23 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +36 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +27 -0
- package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +28 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +52 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +22 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +1 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +36 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +39 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +34 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +71 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +21 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +1 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +38 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +289 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +109 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +44 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +111 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +25 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +363 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +36 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +19 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +6 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +119 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +154 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +22 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +1 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +49 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +140 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +20 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +100 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +96 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +59 -0
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +24 -0
- package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +25 -0
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +1 -0
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +34 -0
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +57 -0
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +35 -0
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +42 -4
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +35 -0
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +62 -0
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +44 -0
- package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +58 -0
- package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +77 -0
- package/lib/esm/view/spendManagement/commonSetup/kycKybAutofillActions.js +14 -0
- package/lib/esm/view/spendManagement/commonSetup/kycKybParseMapper.js +221 -0
- package/lib/esm/view/spendManagement/commonSetup/setupViewReducer.js +106 -52
- package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
- package/lib/esm/view/spendManagement/commonSetup/types/kycKybAutofill.js +41 -0
- package/lib/esm/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +11 -7
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +61 -0
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +13 -4
- package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +80 -11
- package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
- package/lib/esm/view/transactionDetail/epics/updateTransactionDetailEpic.js +6 -0
- package/lib/esm/view/transactionDetail/transactionDetailLocalDataHelper.js +7 -1
- package/lib/index.d.ts +83 -32
- package/lib/index.js +264 -29
- package/lib/reducer.d.ts +18 -0
- package/lib/reducer.js +18 -0
- package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +11 -2
- package/lib/view/aiCfoView/aiCfoViewReducer.js +6 -3
- package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
- package/lib/view/aiCfoView/epics/createSessionEpic.js +2 -1
- package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +8 -1
- package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
- package/lib/view/companyTaskManagerView/companyTaskManagerViewPayload.d.ts +19 -11
- package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +11 -5
- package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.js +40 -12
- package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +2 -0
- package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +13 -3
- package/lib/view/companyTaskManagerView/companyTaskManagerViewState.d.ts +11 -3
- package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.d.ts +10 -0
- package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +42 -0
- package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.d.ts +1 -3
- package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
- package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.d.ts +6 -0
- package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +20 -0
- package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.d.ts +1 -1
- package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.js +2 -2
- package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/view/companyView/types/cockpitTypes.d.ts +3 -2
- package/lib/view/dashboard/dashboardSelector.js +8 -43
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -1
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -1
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
- package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -1
- package/lib/view/fileView/epic/deleteFileEpic.js +1 -1
- package/lib/view/fileView/epic/deleteFileListEpic.js +1 -1
- package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.d.ts +7 -0
- package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +44 -0
- package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.d.ts +8 -0
- package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +33 -0
- package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.d.ts +9 -0
- package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +44 -0
- package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewEpic.js +24 -18
- package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.d.ts +2 -2
- package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.js +27 -15
- package/lib/view/onboardingView/customerView/onboardingCustomerViewPayload.d.ts +3 -0
- package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +44 -5
- package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +225 -52
- package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.d.ts +6 -1
- package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +39 -18
- package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +53 -8
- package/lib/view/onboardingView/customerView/onboardingCustomerViewState.js +47 -7
- package/lib/view/people/initializeEditPersonEpic.js +5 -1
- package/lib/view/people/invitePeopleEpic.js +6 -3
- package/lib/view/people/peopleSaveUpdatesEpic.js +7 -3
- package/lib/view/people/peopleTypes.d.ts +1 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
- package/lib/view/settingsView/settingsViewHelpers.js +5 -2
- package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.d.ts +8 -1
- package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +21 -1
- package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +22 -0
- package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.d.ts +7 -0
- package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.d.ts +14 -3
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +110 -13
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewState.d.ts +16 -0
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +10 -6
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.d.ts +23 -0
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +58 -0
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +12 -3
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +59 -1
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +146 -17
- package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +31 -5
- package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +8 -1
- package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
- package/lib/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.d.ts +47 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +34 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.d.ts +23 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +82 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.d.ts +40 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +53 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.d.ts +37 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +53 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.d.ts +14 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +36 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.d.ts +7 -0
- package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +36 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +56 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +60 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +22 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +96 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +59 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +217 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +122 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +13 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +7 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +27 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +9 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +40 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.d.ts +7 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +31 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.d.ts +15 -0
- package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +32 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +14 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +56 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +15 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +28 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +2 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +40 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +43 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +38 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +15 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +75 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +15 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +27 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +7 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +2 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +42 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +294 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +113 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +9 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +48 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +115 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +13 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +29 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +14 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +369 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +6 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +40 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +7 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +26 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +116 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +10 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +33 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +126 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +52 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +158 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +11 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +31 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +12 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +2 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +9 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +53 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +10 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +144 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +7 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +24 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +11 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +104 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +22 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +100 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +8 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +63 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +3 -0
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +28 -0
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +14 -0
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +27 -1
- package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +34 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +2 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +7 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +38 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +12 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +61 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +9 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +39 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +12 -2
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +43 -5
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +7 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +42 -1
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +5 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +11 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +66 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +3 -0
- package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +48 -0
- package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.d.ts +28 -0
- package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +62 -0
- package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.d.ts +9 -0
- package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +81 -0
- package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.d.ts +24 -0
- package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.js +17 -0
- package/lib/view/spendManagement/commonSetup/kycKybParseMapper.d.ts +29 -0
- package/lib/view/spendManagement/commonSetup/kycKybParseMapper.js +229 -0
- package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +28 -2
- package/lib/view/spendManagement/commonSetup/setupViewReducer.js +107 -53
- package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +7 -2
- package/lib/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
- package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +19 -0
- package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.d.ts +154 -0
- package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.js +46 -0
- package/lib/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +10 -6
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.d.ts +14 -0
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +65 -0
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +12 -3
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.d.ts +14 -3
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +81 -12
- package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts +12 -0
- package/lib/view/taskManager/taskListView/taskList.d.ts +3 -3
- package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
- package/lib/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
- package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +6 -0
- package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
- package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +7 -1
- package/lib/view/transactionDetail/transactionDetailState.d.ts +1 -0
- package/lib/view/transactionDetail/transactionDetailTypes.d.ts +1 -0
- package/lib/zeniAPI.d.ts +1 -0
- package/package.json +6 -4
|
@@ -8,10 +8,10 @@ import { getUserRoleByUserIds } from '../../../entity/userRole/userRoleSelector'
|
|
|
8
8
|
import { getCompanyConfig } from '../../companyConfigView/companyConfigSelector';
|
|
9
9
|
import { getCompanyView } from '../../companyView/selectorHelpers/getCompanyView';
|
|
10
10
|
import { getCompanyAndIdentityDetails, } from '../../spendManagement/commonSetup/setupViewSelector';
|
|
11
|
-
import { ALL_ONBOARDING_STEPS, ALL_ZENI_USER_ONBOARDING_STEPS, REQUIRED_ONBOARDING_STEPS, ZENI_USER_REQUIRED_ONBOARDING_STEPS, toOnboardingStepType, } from './onboardingCustomerViewState';
|
|
11
|
+
import { ALL_ONBOARDING_STEPS, ALL_ZENI_USER_BOOKKEEPING_ONBOARDING_STEPS, ALL_ZENI_USER_ONBOARDING_STEPS, REQUIRED_ONBOARDING_STEPS, ZENI_USER_REQUIRED_ONBOARDING_STEPS, emptyAiAgentsActivationSubview, toOnboardingStepType, } from './onboardingCustomerViewState';
|
|
12
12
|
export function getOnboardingCustomerView(state, companyId) {
|
|
13
13
|
const { fileState, paymentAccountState, onboardingCustomerViewState, userState, userRoleState, subscriptionPaymentAccountState, companyConfigState, cardPaymentViewState, countryListState, addressViewState, } = state;
|
|
14
|
-
const { companyDetails, companyOfficerUpdateStatus, primaryContactDetails, subscriptionPaymentAccountIds, paymentAccountDetails, plaidConnectionDetails, updateStatus, saveStatus, currentStep, uiState, fetchState, error, } = onboardingCustomerViewState;
|
|
14
|
+
const { companyDetails, companyOfficerUpdateStatus, primaryContactDetails, subscriptionPaymentAccountIds, paymentAccountDetails, plaidConnectionDetails, parsingDocumentFileIds, updateStatus, saveStatus, currentStep, currentSubStep, uiState, fetchState, error, } = onboardingCustomerViewState;
|
|
15
15
|
const { paymentAccountIds } = paymentAccountDetails;
|
|
16
16
|
let subscriptionPaymentAccount;
|
|
17
17
|
let paymentAccount;
|
|
@@ -54,6 +54,7 @@ export function getOnboardingCustomerView(state, companyId) {
|
|
|
54
54
|
companyDetails,
|
|
55
55
|
companyOfficerUpdateStatus,
|
|
56
56
|
primaryContactDetails,
|
|
57
|
+
parsingDocumentFileIds,
|
|
57
58
|
});
|
|
58
59
|
const companyAddress = addressViewState.newAddressState?.company_address;
|
|
59
60
|
if (companyAddress == null &&
|
|
@@ -73,7 +74,7 @@ export function getOnboardingCustomerView(state, companyId) {
|
|
|
73
74
|
cardPaymentViewState.cardPaymentsIds.length > 0) &&
|
|
74
75
|
companyView?.company.company.companyOnboardingInfo
|
|
75
76
|
.subscriptionBillingAddressId != null) {
|
|
76
|
-
completedSteps.push('
|
|
77
|
+
completedSteps.push('setup_billing');
|
|
77
78
|
}
|
|
78
79
|
const isPaymentVerified = (paymentAccount?.providerVerificationStatus?.code?.includes('verified') ===
|
|
79
80
|
true &&
|
|
@@ -84,24 +85,25 @@ export function getOnboardingCustomerView(state, companyId) {
|
|
|
84
85
|
.subscriptionBillingAddressId != null;
|
|
85
86
|
if ((isPaymentVerified || hasSubscriptionBillingAddress) &&
|
|
86
87
|
!(isPaymentVerified && hasSubscriptionBillingAddress)) {
|
|
87
|
-
halfCompletedSteps.push('
|
|
88
|
+
halfCompletedSteps.push('setup_billing');
|
|
88
89
|
}
|
|
89
90
|
const isValidConnection = externalConnections?.accounting[0]?.isValid ?? false;
|
|
90
91
|
if (isValidConnection) {
|
|
91
|
-
completedSteps.push('
|
|
92
|
+
completedSteps.push('connect_ledger');
|
|
92
93
|
}
|
|
93
|
-
|
|
94
|
+
const isCompanyDetailsDone = companyDetails.localData != null &&
|
|
94
95
|
primaryContactDetails.localData != null &&
|
|
95
|
-
isCompanyDetailsCompleted(fileState, companyView, primaryContact)
|
|
96
|
-
completedSteps.push('company_details');
|
|
97
|
-
}
|
|
96
|
+
isCompanyDetailsCompleted(fileState, companyView, primaryContact);
|
|
98
97
|
const officerIndex = companyOfficers.length > 0
|
|
99
98
|
? Object.values(companyOfficerLocalData).findIndex((officer) => officer?.isSelectedForVerification === true)
|
|
100
99
|
: 0;
|
|
101
100
|
const selectedOfficerType = `Officer_${officerIndex < 0 ? 1 : officerIndex + 1}`;
|
|
102
|
-
|
|
103
|
-
isOfficerDetailsCompleted(companyOfficers, companyOfficerRoles, companyOfficerLocalData[selectedOfficerType], fileState)
|
|
104
|
-
|
|
101
|
+
const isOfficerDone = companyOfficerLocalData[selectedOfficerType] != null &&
|
|
102
|
+
isOfficerDetailsCompleted(companyOfficers, companyOfficerRoles, companyOfficerLocalData[selectedOfficerType], fileState);
|
|
103
|
+
// The verification step (single sidebar step) is only "complete" once both
|
|
104
|
+
// the company-officer and company-details sub-steps are fully filled in.
|
|
105
|
+
if (isCompanyDetailsDone && isOfficerDone) {
|
|
106
|
+
completedSteps.push('verification');
|
|
105
107
|
}
|
|
106
108
|
const { allStepsData, requiredStepsData } = onboardingStepsData(isValidConnection, currentTenant?.productSettings ?? [], accountingConnectionCreationMode);
|
|
107
109
|
const allRequiredStepsCompleted = requiredStepsData.every((step) => {
|
|
@@ -119,6 +121,7 @@ export function getOnboardingCustomerView(state, companyId) {
|
|
|
119
121
|
return {
|
|
120
122
|
companyDetailsLocalData,
|
|
121
123
|
companyOfficerLocalData,
|
|
124
|
+
parsingDocumentFileIds,
|
|
122
125
|
subscriptionBillingAddress: subscriptionBillingAddress?.addressToCreate,
|
|
123
126
|
companyView,
|
|
124
127
|
allNationalityCountries,
|
|
@@ -127,6 +130,7 @@ export function getOnboardingCustomerView(state, companyId) {
|
|
|
127
130
|
officer: isOfficerDetailsSavePending(companyOfficers, companyOfficerRoles, fileState, companyOfficerLocalData[selectedOfficerType]),
|
|
128
131
|
},
|
|
129
132
|
currentStep,
|
|
133
|
+
currentSubStep,
|
|
130
134
|
completedSteps,
|
|
131
135
|
halfCompletedSteps,
|
|
132
136
|
allRequiredStepsCompleted,
|
|
@@ -203,14 +207,20 @@ export function isOfficerDetailsCompleted(companyOfficers, companyOfficerRoles,
|
|
|
203
207
|
isPhoneVerified === true);
|
|
204
208
|
}
|
|
205
209
|
export const onboardingStepsData = (isValidConnection, productSettings, accountingConnectionCreationMode) => {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
210
|
+
// 3 cohorts:
|
|
211
|
+
// - Core-only (banking/cards, no bookkeeping): no ledger, no integrations.
|
|
212
|
+
// - Zeni-team-connects-QBO bookkeeping: skip ledger but keep integrations
|
|
213
|
+
// so the customer can still wire up Plaid / Stripe / HubSpot / email.
|
|
214
|
+
// - Customer-connects-QBO bookkeeping: full 4-step flow.
|
|
215
|
+
const isCoreOnlyTenant = (productSettings.isBankingEnabled || productSettings.isCardsEnabled) &&
|
|
216
|
+
!productSettings.isBookkeepingEnabled;
|
|
217
|
+
const allStepsData = isCoreOnlyTenant
|
|
209
218
|
? ALL_ZENI_USER_ONBOARDING_STEPS
|
|
210
|
-
:
|
|
219
|
+
: accountingConnectionCreationMode === 'zeni_user'
|
|
220
|
+
? ALL_ZENI_USER_BOOKKEEPING_ONBOARDING_STEPS
|
|
221
|
+
: ALL_ONBOARDING_STEPS;
|
|
211
222
|
const requiredStepsData = (accountingConnectionCreationMode === 'zeni_user' && isValidConnection) ||
|
|
212
|
-
|
|
213
|
-
!productSettings.isBookkeepingEnabled)
|
|
223
|
+
isCoreOnlyTenant
|
|
214
224
|
? ZENI_USER_REQUIRED_ONBOARDING_STEPS
|
|
215
225
|
: REQUIRED_ONBOARDING_STEPS;
|
|
216
226
|
return {
|
|
@@ -323,3 +333,11 @@ export const getProductSettingsString = (productSettings) => {
|
|
|
323
333
|
.map((key) => productKeyMap[key])
|
|
324
334
|
.join(',');
|
|
325
335
|
};
|
|
336
|
+
const fromActivationView = (state) =>
|
|
337
|
+
// Fall back to the empty subview so state hydrated from an older persisted
|
|
338
|
+
// version (before aiAgentsActivation existed) doesn't crash on .phases/.counts.
|
|
339
|
+
state.onboardingCustomerViewState.aiAgentsActivation ??
|
|
340
|
+
emptyAiAgentsActivationSubview;
|
|
341
|
+
export const getAiAgentsActivationSubview = (state) => fromActivationView(state);
|
|
342
|
+
export const getAiAgentsActivationPhases = (state) => fromActivationView(state).phases;
|
|
343
|
+
export const getAiAgentsActivationCounts = (state) => fromActivationView(state).counts;
|
|
@@ -1,28 +1,67 @@
|
|
|
1
1
|
import { stringToUnion } from '../../../commonStateTypes/stringToUnion';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
// Onboarding steps are the 4 top-level surfaces. Officer + details verification
|
|
3
|
+
// live as sub-steps under `verification` (state machine in CustomerOnboardingPage).
|
|
4
|
+
// The optional data-source step is its own surface; the legacy connect-data-source
|
|
5
|
+
// sub-step under the old `qbo_connection` no longer exists.
|
|
6
|
+
export const ZENI_USER_REQUIRED_ONBOARDING_STEPS = ['setup_billing'];
|
|
5
7
|
export const CUSTOMER_REQUIRED_ONBOARDING_STEPS_WITH_QBO = [
|
|
6
|
-
'
|
|
8
|
+
'connect_ledger',
|
|
7
9
|
];
|
|
8
10
|
export const REQUIRED_ONBOARDING_STEPS = [
|
|
9
11
|
...ZENI_USER_REQUIRED_ONBOARDING_STEPS,
|
|
10
12
|
...CUSTOMER_REQUIRED_ONBOARDING_STEPS_WITH_QBO,
|
|
11
13
|
];
|
|
12
14
|
export const ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT = [
|
|
13
|
-
'
|
|
14
|
-
'company_details',
|
|
15
|
+
'verification',
|
|
15
16
|
];
|
|
16
17
|
export const ALL_ZENI_USER_ONBOARDING_STEPS = [
|
|
17
18
|
...ZENI_USER_REQUIRED_ONBOARDING_STEPS,
|
|
18
19
|
...ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT,
|
|
19
20
|
];
|
|
21
|
+
// Zeni-team-connects-QBO bookkeeping tenants: skip the `connect_ledger` step
|
|
22
|
+
// (Zeni already did it) but keep `connect_data_source` so the customer can
|
|
23
|
+
// still wire up non-QBO integrations (Plaid, Stripe, HubSpot, email, etc.).
|
|
24
|
+
export const ALL_ZENI_USER_BOOKKEEPING_ONBOARDING_STEPS = [
|
|
25
|
+
...ZENI_USER_REQUIRED_ONBOARDING_STEPS,
|
|
26
|
+
'connect_data_source',
|
|
27
|
+
...ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT,
|
|
28
|
+
];
|
|
20
29
|
export const ALL_CUSTOMER_ONBOARDING_STEPS_WITH_QBO = [
|
|
21
30
|
...CUSTOMER_REQUIRED_ONBOARDING_STEPS_WITH_QBO,
|
|
31
|
+
'connect_data_source',
|
|
22
32
|
...ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT,
|
|
23
33
|
];
|
|
24
34
|
export const ALL_ONBOARDING_STEPS = [
|
|
25
35
|
...REQUIRED_ONBOARDING_STEPS,
|
|
36
|
+
'connect_data_source',
|
|
26
37
|
...ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT,
|
|
27
38
|
];
|
|
28
39
|
export const toOnboardingStepType = (v) => stringToUnion(v, ALL_ONBOARDING_STEPS);
|
|
40
|
+
// Per-step sub-state. Lives in Redux so the save epic can tell, for example,
|
|
41
|
+
// an officer-form save from a company-details save while both share
|
|
42
|
+
// currentStep = 'verification'.
|
|
43
|
+
// - 'default' generic landing sub-state.
|
|
44
|
+
// - 'ai-activating' connect_ledger interstitial during AI activation.
|
|
45
|
+
// - 'unlock-stack' verification landing — VerifyUnlockFinancialStackPage.
|
|
46
|
+
// - 'company_officer' verification → officer form.
|
|
47
|
+
// - 'company_details' verification → company details form.
|
|
48
|
+
export const ALL_ONBOARDING_SUB_STEPS = [
|
|
49
|
+
'default',
|
|
50
|
+
'ai-activating',
|
|
51
|
+
'unlock-stack',
|
|
52
|
+
'company_officer',
|
|
53
|
+
'company_details',
|
|
54
|
+
];
|
|
55
|
+
export const toOnboardingSubStepType = (v) => stringToUnion(v, ALL_ONBOARDING_SUB_STEPS);
|
|
56
|
+
export const emptyAiAgentsActivationCounts = {
|
|
57
|
+
customerCount: 0,
|
|
58
|
+
glAccountCount: 0,
|
|
59
|
+
targetTransactionCount: 0,
|
|
60
|
+
transactionCount: 0,
|
|
61
|
+
vendorCount: 0,
|
|
62
|
+
};
|
|
63
|
+
export const emptyAiAgentsActivationSubview = {
|
|
64
|
+
counts: emptyAiAgentsActivationCounts,
|
|
65
|
+
fetchStatus: { fetchState: 'Not-Started', error: undefined },
|
|
66
|
+
phases: [],
|
|
67
|
+
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { from } from 'rxjs';
|
|
2
2
|
import { filter, mergeMap } from 'rxjs/operators';
|
|
3
|
+
import { filterChargeCardRolesWhenProductDisabled } from '../../entity/company/cardsVisibilityHelpers';
|
|
4
|
+
import { getCurrentTenant } from '../../entity/tenant/tenantSelector';
|
|
3
5
|
import { getUserByUserId } from '../../entity/user/userSelector';
|
|
4
6
|
import { getUserRoleByUserId } from '../../entity/userRole/userRoleSelector';
|
|
5
7
|
import { initializeEditPerson, peopleSaveDataInLocalStore, } from './peopleReducer';
|
|
@@ -18,11 +20,13 @@ export const initializeEditPersonEpic = (actions$, state$) => actions$.pipe(filt
|
|
|
18
20
|
};
|
|
19
21
|
const email = person.user?.email;
|
|
20
22
|
const { userRoles, managerUserId: managerId, accountingClassIDs, } = person.userRole;
|
|
23
|
+
const currentTenant = getCurrentTenant(state$.value);
|
|
24
|
+
const rolesForLocalStore = filterChargeCardRolesWhenProductDisabled(userRoles, currentTenant.company);
|
|
21
25
|
fetchActions.push(peopleSaveDataInLocalStore({
|
|
22
26
|
peopleLocalData: [
|
|
23
27
|
{
|
|
24
28
|
email: email != null ? [email] : [],
|
|
25
|
-
role:
|
|
29
|
+
role: rolesForLocalStore,
|
|
26
30
|
managerId,
|
|
27
31
|
departmentId: accountingClassIDs[0],
|
|
28
32
|
},
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { of } from 'rxjs';
|
|
2
2
|
import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
|
|
3
|
+
import { filterChargeCardRolesWhenProductDisabled } from '../../entity/company/cardsVisibilityHelpers';
|
|
3
4
|
import { openSnackbar } from '../../entity/snackbar/snackbarReducer';
|
|
5
|
+
import { getCurrentTenant } from '../../entity/tenant/tenantSelector';
|
|
4
6
|
import { updateAllUsers } from '../../entity/user/userReducer';
|
|
5
7
|
import { updateUserRoles } from '../../entity/userRole/userRoleReducer';
|
|
6
8
|
import { createZeniAPIStatus, isSuccessResponse } from '../../responsePayload';
|
|
@@ -8,7 +10,8 @@ import { updateManagersListOnRoleChange, } from './helpers/updateManagersListOnR
|
|
|
8
10
|
import { invitePeople, invitePeopleFailure, invitePeopleSuccess, } from './peopleReducer';
|
|
9
11
|
export const invitePeopleEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(invitePeople.match), switchMap(() => {
|
|
10
12
|
const peopleLocalData = state$.value.peopleState.personDetails.localData;
|
|
11
|
-
const
|
|
13
|
+
const currentTenant = getCurrentTenant(state$.value);
|
|
14
|
+
const invitePayload = toInvitePayloadFromLocalData(peopleLocalData, currentTenant.company);
|
|
12
15
|
return zeniAPI
|
|
13
16
|
.postAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/invites`, invitePayload)
|
|
14
17
|
.pipe(mergeMap((response) => {
|
|
@@ -31,11 +34,11 @@ export const invitePeopleEpic = (actions$, state$, zeniAPI) => actions$.pipe(fil
|
|
|
31
34
|
}
|
|
32
35
|
}), catchError((error) => of(invitePeopleFailure(createZeniAPIStatus('Unexpected error', 'User Roles REST API call errored out' + JSON.stringify(error))))));
|
|
33
36
|
}));
|
|
34
|
-
const toInvitePayloadFromLocalData = (peopleLocalData) => {
|
|
37
|
+
const toInvitePayloadFromLocalData = (peopleLocalData, company) => {
|
|
35
38
|
const invitedPeople = peopleLocalData
|
|
36
39
|
.map((local) => {
|
|
37
40
|
const rolesPayload = {};
|
|
38
|
-
local.role.forEach((role) => {
|
|
41
|
+
filterChargeCardRolesWhenProductDisabled(local.role, company).forEach((role) => {
|
|
39
42
|
rolesPayload[`is_${role}`] = true;
|
|
40
43
|
});
|
|
41
44
|
return local.email.map((mail) => {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { from, of } from 'rxjs';
|
|
2
2
|
import { catchError, filter, mergeMap } from 'rxjs/operators';
|
|
3
|
+
import { filterChargeCardRolesWhenProductDisabled } from '../../entity/company/cardsVisibilityHelpers';
|
|
3
4
|
import { openSnackbar } from '../../entity/snackbar/snackbarReducer';
|
|
5
|
+
import { getCurrentTenant } from '../../entity/tenant/tenantSelector';
|
|
4
6
|
import { updateUserRoles } from '../../entity/userRole/userRoleReducer';
|
|
5
7
|
import { hasZeniRoleOrCompanyOfficerAccess } from '../../entity/userRole/userRoleType';
|
|
6
8
|
import { createZeniAPIStatus, isSuccessResponse } from '../../responsePayload';
|
|
@@ -10,7 +12,8 @@ export const peopleSaveUpdatesEpic = (actions$, state$, zeniAPI) => actions$.pip
|
|
|
10
12
|
const { localData, person } = state$.value.peopleState.personDetails;
|
|
11
13
|
const { userRole } = person;
|
|
12
14
|
const { isZeniTenant } = action.payload;
|
|
13
|
-
const
|
|
15
|
+
const currentTenant = getCurrentTenant(state$.value);
|
|
16
|
+
const updatesPayload = toPersonUpdatableInfoPayload(localData[0], isZeniTenant, person, currentTenant.company);
|
|
14
17
|
return zeniAPI
|
|
15
18
|
.putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/user-roles/${userRole.userRoleId}`, updatesPayload)
|
|
16
19
|
.pipe(mergeMap((response) => {
|
|
@@ -37,7 +40,7 @@ export const peopleSaveUpdatesEpic = (actions$, state$, zeniAPI) => actions$.pip
|
|
|
37
40
|
}
|
|
38
41
|
}), catchError((error) => of(peopleSaveUpdatesFailure(createZeniAPIStatus('Unexpected error', 'User Roles save updates errored out' + JSON.stringify(error))))));
|
|
39
42
|
}));
|
|
40
|
-
const toPersonUpdatableInfoPayload = (info, isZeniTenant, person) => {
|
|
43
|
+
const toPersonUpdatableInfoPayload = (info, isZeniTenant, person, company) => {
|
|
41
44
|
const payload = {};
|
|
42
45
|
const { accountingClassIDs, managerUserId, userRoles } = person.userRole;
|
|
43
46
|
if (info.departmentId != null &&
|
|
@@ -52,6 +55,7 @@ const toPersonUpdatableInfoPayload = (info, isZeniTenant, person) => {
|
|
|
52
55
|
info.managerId !== 'no_manager' ? info.managerId : null;
|
|
53
56
|
}
|
|
54
57
|
if (info.role != null) {
|
|
58
|
+
const rolesForUpdate = filterChargeCardRolesWhenProductDisabled(info.role, company);
|
|
55
59
|
/**
|
|
56
60
|
* Mark previously selected roles as false and new roles true
|
|
57
61
|
*/
|
|
@@ -62,7 +66,7 @@ const toPersonUpdatableInfoPayload = (info, isZeniTenant, person) => {
|
|
|
62
66
|
}
|
|
63
67
|
rolesPayload[`is_${role}`] = false;
|
|
64
68
|
});
|
|
65
|
-
|
|
69
|
+
rolesForUpdate.forEach((role) => {
|
|
66
70
|
rolesPayload[`is_${role}`] = true;
|
|
67
71
|
});
|
|
68
72
|
Object.assign(payload, rolesPayload);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isCardsProductEnabledOnCompany } from '../../entity/company/cardsVisibilityHelpers';
|
|
1
2
|
import { isTenantAccountingServicesEnabled, isTenantBankingOnly, isTenantCardsOnly, } from '../../entity/tenant/tenantSelector';
|
|
2
3
|
import { hasAnyAdminLevelAccess, hasBillPayAccessible, hasBookKeepingAdminLevelAccess, hasBookKeepingUserLevelAccess, hasChargeCardAccessible, hasFullOrAdminLevelAccess, hasInvestorBankerLevelAccess, hasReimbursementAccess, hasReimbursementAccessible, hasSuperAdminLevelAccess, hasZeniAccountsAccessible, isZeniSignedInUser, } from '../../entity/userRole/userRoleType';
|
|
3
4
|
import { isVendorsTabVisible } from '../vendorList/vendorListSelector';
|
|
@@ -57,7 +58,8 @@ export const isBankConnectionsTabVisible = (currentTenant, userRoleMap) => {
|
|
|
57
58
|
return (hasBillPayAccessible(currentTenant, userRoleMap) ||
|
|
58
59
|
hasReimbursementAccessible(currentTenant, userRoleMap) ||
|
|
59
60
|
hasZeniAccountsAccessible(currentTenant, userRoleMap) ||
|
|
60
|
-
hasChargeCardAccessible(currentTenant, userRoleMap)
|
|
61
|
+
(hasChargeCardAccessible(currentTenant, userRoleMap) &&
|
|
62
|
+
isCardsProductEnabledOnCompany(currentTenant.company)));
|
|
61
63
|
}
|
|
62
64
|
else {
|
|
63
65
|
return false;
|
|
@@ -71,7 +73,8 @@ export const isBusinessVerificationTabVisible = (currentTenant, userRoleMap) =>
|
|
|
71
73
|
return (hasBillPayAccessible(currentTenant, userRoleMap) ||
|
|
72
74
|
hasReimbursementAccessible(currentTenant, userRoleMap) ||
|
|
73
75
|
hasZeniAccountsAccessible(currentTenant, userRoleMap) ||
|
|
74
|
-
hasChargeCardAccessible(currentTenant, userRoleMap)
|
|
76
|
+
(hasChargeCardAccessible(currentTenant, userRoleMap) &&
|
|
77
|
+
isCardsProductEnabledOnCompany(currentTenant.company)));
|
|
75
78
|
}
|
|
76
79
|
else {
|
|
77
80
|
return false;
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
import recordGet from 'lodash/get';
|
|
2
2
|
import { reduceAllFetchState } from '../../../commonStateTypes/reduceFetchState';
|
|
3
|
-
import {
|
|
3
|
+
import { getDepositAccountByDepositAccountId } from '../../../entity/depositAccount/depositAccountSelector';
|
|
4
|
+
import { getAllFundingAccounts, mapDepositAccToFundingAccount, } from '../commonSetup/setupViewSelector';
|
|
4
5
|
import { getAllDepositAccounts } from '../zeniAccounts/depositAccountList/depositAccountListSelector';
|
|
5
6
|
import { getAllPaymentAccounts } from '../zeniAccounts/paymentAccountList/paymentAccountListSelector';
|
|
7
|
+
const buildCashManagementRule = (autoSweepFlowState, depositAccountState, treasuryDetailState) => {
|
|
8
|
+
const { settingsId, bufferAmount, frequency, memo, primaryFundingAccountId, nextTransferDate, } = autoSweepFlowState;
|
|
9
|
+
if (settingsId == null || primaryFundingAccountId == null) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const depositAccount = getDepositAccountByDepositAccountId(depositAccountState, primaryFundingAccountId);
|
|
13
|
+
return {
|
|
14
|
+
bufferAmount,
|
|
15
|
+
frequency,
|
|
16
|
+
memo,
|
|
17
|
+
settingsId,
|
|
18
|
+
primaryFundingAccount: depositAccount != null
|
|
19
|
+
? mapDepositAccToFundingAccount(depositAccount)
|
|
20
|
+
: undefined,
|
|
21
|
+
treasurySummary: treasuryDetailState.accountSummary,
|
|
22
|
+
nextTransferDate,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
6
25
|
export const getAutoTransferRules = (state) => {
|
|
7
|
-
const { autotransferRulesState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, treasuryDetailState, } = state;
|
|
26
|
+
const { autotransferRulesState, autoSweepFlowState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, treasuryDetailState, } = state;
|
|
8
27
|
const { rules, error, historyByRuleId, ruleUpdateLocalData, ruleUpdateStatusById, ruleDeleteStatusById, createRuleFetchState, autoTransferReviewDetail, } = autotransferRulesState;
|
|
9
28
|
const depositAccountsView = getAllDepositAccounts(depositAccountState, depositAccountListState);
|
|
10
29
|
const paymentAccountsView = getAllPaymentAccounts(paymentAccountState, paymentAccountListState);
|
|
@@ -39,6 +58,7 @@ export const getAutoTransferRules = (state) => {
|
|
|
39
58
|
transferMoneyParties,
|
|
40
59
|
transferMoneyPartiesFetchState,
|
|
41
60
|
createRuleFetchState,
|
|
61
|
+
cashManagementRule: buildCashManagementRule(autoSweepFlowState, depositAccountState, treasuryDetailState),
|
|
42
62
|
fetchState,
|
|
43
63
|
error,
|
|
44
64
|
version: 0,
|
|
@@ -52,6 +52,12 @@ export const getReviewPageBillDetail = (state, billId) => {
|
|
|
52
52
|
let recurringConfig;
|
|
53
53
|
let billPayInfo;
|
|
54
54
|
let isBillMarkedForRetry = false;
|
|
55
|
+
// Bill-level accounting class id. Approval Rules 3.0 'department'
|
|
56
|
+
// criteria match against this. Sourced from BillTransaction so
|
|
57
|
+
// any selector that needs it (e.g. creator-as-approver lookup)
|
|
58
|
+
// can read it off the view rather than reaching into
|
|
59
|
+
// 'state.billTransactionState' itself.
|
|
60
|
+
let classId;
|
|
55
61
|
const zeniAssistRetryStatus = billId != null
|
|
56
62
|
? billDetailViewState.billDetailById[key].zeniAssist.retryStatus
|
|
57
63
|
: undefined;
|
|
@@ -62,6 +68,13 @@ export const getReviewPageBillDetail = (state, billId) => {
|
|
|
62
68
|
transaction?.billPayInfo.isCollectToAccountInfoFromVendorContact ?? false;
|
|
63
69
|
isRecurring = transaction?.isRecurring ?? false;
|
|
64
70
|
billPayInfo = transaction?.billPayInfo;
|
|
71
|
+
// Normalise empty-string to undefined so downstream readers
|
|
72
|
+
// treat "no class" uniformly regardless of whether the wire
|
|
73
|
+
// used '' or omitted the field.
|
|
74
|
+
classId =
|
|
75
|
+
transaction?.classId != null && transaction.classId !== ''
|
|
76
|
+
? transaction.classId
|
|
77
|
+
: undefined;
|
|
65
78
|
if (isRecurring &&
|
|
66
79
|
transaction?.recurringBillConfigId != null &&
|
|
67
80
|
transaction.recurringBillInstance != null) {
|
|
@@ -178,5 +191,6 @@ export const getReviewPageBillDetail = (state, billId) => {
|
|
|
178
191
|
zeniAssistRetryStatus,
|
|
179
192
|
billPayInfo,
|
|
180
193
|
outsideZeniPaymentInfo,
|
|
194
|
+
classId,
|
|
181
195
|
};
|
|
182
196
|
};
|
|
@@ -13,6 +13,7 @@ export const initialState = {
|
|
|
13
13
|
newApprovalRuleId: undefined,
|
|
14
14
|
approvalRulesDeleteStatusById: {},
|
|
15
15
|
billPaySetupApproverViewUpdateData: undefined,
|
|
16
|
+
reorderStatus: { fetchState: 'Not-Started', error: undefined },
|
|
16
17
|
hasValidState() {
|
|
17
18
|
return this.fetchState === 'Completed';
|
|
18
19
|
},
|
|
@@ -26,8 +27,13 @@ const billPaySetupApproverView = createSlice({
|
|
|
26
27
|
draft.fetchState = 'In-Progress';
|
|
27
28
|
draft.error = undefined;
|
|
28
29
|
},
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
// Approval Rules 3.0 — `useV3` arrives from the screen connector
|
|
31
|
+
// ('approval_rule_v3_config' dynamic config) and picks the v1
|
|
32
|
+
// vs v2 endpoint in the fetch epic. Required (no default) so a
|
|
33
|
+
// missing screen-connector wire surfaces at compile time rather
|
|
34
|
+
// than silently falling back to v1 on a v3 tenant.
|
|
35
|
+
prepare(cacheOverride = false, includeUserRoles = true, useV3) {
|
|
36
|
+
return { payload: { cacheOverride, includeUserRoles, useV3 } };
|
|
31
37
|
},
|
|
32
38
|
},
|
|
33
39
|
fetchBillPaySetupApproverViewSuccess: {
|
|
@@ -112,8 +118,12 @@ const billPaySetupApproverView = createSlice({
|
|
|
112
118
|
error: undefined,
|
|
113
119
|
};
|
|
114
120
|
},
|
|
115
|
-
|
|
116
|
-
|
|
121
|
+
// Approval Rules 3.0 — `useV3` flows from the screen connector
|
|
122
|
+
// ('approval_rule_v3_config' dynamic config) so the delete epic
|
|
123
|
+
// can pick the v1 vs v2 endpoint. Required (no default) so a
|
|
124
|
+
// missing connector wire surfaces at compile time.
|
|
125
|
+
prepare(approvalRuleId, useV3) {
|
|
126
|
+
return { payload: { approvalRuleId, useV3 } };
|
|
117
127
|
},
|
|
118
128
|
},
|
|
119
129
|
deleteBillPayApprovalRuleSuccess: {
|
|
@@ -145,13 +155,100 @@ const billPaySetupApproverView = createSlice({
|
|
|
145
155
|
};
|
|
146
156
|
},
|
|
147
157
|
},
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Approval Rules 3.0 — list-page drag-and-drop reorder.
|
|
160
|
+
*
|
|
161
|
+
* The trigger action carries the desired ordering as an ID list.
|
|
162
|
+
* The reducer optimistically replaces 'approvalRuleIds' so the
|
|
163
|
+
* list page renders the new order immediately; the epic then
|
|
164
|
+
* fires the PUT and either confirms (success — pulls updated
|
|
165
|
+
* priorities from the response) or recovers (failure — refetches
|
|
166
|
+
* the view so we don't strand a stale local order).
|
|
167
|
+
*/
|
|
168
|
+
reorderBillPayApprovalRules: {
|
|
169
|
+
reducer(draft, action) {
|
|
170
|
+
const { approvalRuleIds } = action.payload;
|
|
171
|
+
const wasReorderInFlight = draft.reorderStatus.fetchState === 'In-Progress';
|
|
172
|
+
draft.reorderStatus = { fetchState: 'In-Progress', error: undefined };
|
|
173
|
+
// Stash the pre-reorder order so 'Failure' can restore it
|
|
174
|
+
// synchronously. The epic's refetch on failure remains as a
|
|
175
|
+
// safety net (covers cases where the server's truth has
|
|
176
|
+
// drifted from the local snapshot), but the snappy UX path
|
|
177
|
+
// is the in-memory rollback.
|
|
178
|
+
//
|
|
179
|
+
// Only capture a fresh snapshot when no reorder is already in
|
|
180
|
+
// flight. If a second drag fires before the first PUT lands,
|
|
181
|
+
// the existing snapshot already holds the last server-backed
|
|
182
|
+
// order; overwriting it with the first reorder's optimistic
|
|
183
|
+
// result would mean a Failure rolls back to an uncommitted
|
|
184
|
+
// intermediate order instead of the last good list.
|
|
185
|
+
if (!wasReorderInFlight) {
|
|
186
|
+
draft.reorderRollbackIds = draft.approvalRuleIds;
|
|
187
|
+
}
|
|
188
|
+
// Optimistic: render new order immediately. On failure, the
|
|
189
|
+
// reducer restores 'reorderRollbackIds' and the epic refetch
|
|
190
|
+
// reconciles any drift.
|
|
191
|
+
draft.approvalRuleIds = approvalRuleIds;
|
|
192
|
+
},
|
|
193
|
+
// Approval Rules 3.0 — `useV3` required so a missing wire
|
|
194
|
+
// surfaces at compile time. The reorder epic always hits the
|
|
195
|
+
// v2 endpoint (v1 has no reorder route), but the payload still
|
|
196
|
+
// carries the flag for the failure-path refetch which needs it.
|
|
197
|
+
prepare(approvalRuleIds, useV3) {
|
|
198
|
+
return { payload: { approvalRuleIds, useV3 } };
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
reorderBillPayApprovalRulesSuccess: {
|
|
202
|
+
reducer(draft, action) {
|
|
203
|
+
const { approvalRuleIds } = action.payload;
|
|
204
|
+
draft.reorderStatus = { fetchState: 'Completed', error: undefined };
|
|
205
|
+
// The API response is authoritative — overwrite with the
|
|
206
|
+
// server's reported order in case it normalised anything.
|
|
207
|
+
draft.approvalRuleIds = approvalRuleIds;
|
|
208
|
+
// Reorder succeeded — discard the snapshot so the next
|
|
209
|
+
// reorder starts from this committed order.
|
|
210
|
+
draft.reorderRollbackIds = undefined;
|
|
211
|
+
},
|
|
212
|
+
prepare(approvalRuleIds) {
|
|
213
|
+
return { payload: { approvalRuleIds } };
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
reorderBillPayApprovalRulesFailure: {
|
|
217
|
+
reducer(draft, action) {
|
|
218
|
+
const { status } = action.payload;
|
|
219
|
+
draft.reorderStatus = { fetchState: 'Error', error: status };
|
|
220
|
+
// Restore the snapshot taken on the trigger reducer before
|
|
221
|
+
// the optimistic mutation. The epic still fires a refetch
|
|
222
|
+
// alongside the failure action for cross-tab drift recovery,
|
|
223
|
+
// but locally the user sees their last good order instantly.
|
|
224
|
+
if (draft.reorderRollbackIds != null) {
|
|
225
|
+
draft.approvalRuleIds = draft.reorderRollbackIds;
|
|
226
|
+
draft.reorderRollbackIds = undefined;
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
prepare(status) {
|
|
230
|
+
return { payload: { status } };
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
saveBillPaySetupApproverViewUpdates: {
|
|
234
|
+
// Approval Rules 3.0 — `useV3` is sourced from the
|
|
235
|
+
// `approval_rule_v3_config` dynamic config in the screen
|
|
236
|
+
// connector. The reducer doesn't read it (the field only
|
|
237
|
+
// matters in the save epic), but it must be declared so the
|
|
238
|
+
// action's payload type is correctly inferred for downstream
|
|
239
|
+
// consumers.
|
|
240
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
241
|
+
reducer(draft, _action) {
|
|
242
|
+
if (draft.billPaySetupApproverViewUpdateData != null) {
|
|
243
|
+
draft.billPaySetupApproverViewUpdateData.updateStatus = {
|
|
244
|
+
fetchState: 'In-Progress',
|
|
245
|
+
error: undefined,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
prepare(useV3) {
|
|
250
|
+
return { payload: { useV3 } };
|
|
251
|
+
},
|
|
155
252
|
},
|
|
156
253
|
saveBillPaySetupApproverViewUpdatesSuccess: {
|
|
157
254
|
reducer(draft, action) {
|
|
@@ -240,5 +337,5 @@ const billPaySetupApproverView = createSlice({
|
|
|
240
337
|
},
|
|
241
338
|
},
|
|
242
339
|
});
|
|
243
|
-
export const { fetchBillPaySetupApproverView, fetchBillPaySetupApproverViewSuccess, fetchBillPaySetupApproverViewFailure, fetchBillPayApproversDetails, fetchBillPayApproversList, fetchBillPayApproversListSuccess, fetchBillPayApproversListFailure, deleteBillPayApprovalRule, deleteBillPayApprovalRuleSuccess, deleteBillPayApprovalRuleFailure, saveBillPaySetupApproverViewUpdates, saveBillPaySetupApproverViewUpdatesSuccess, saveBillPaySetupApproverViewUpdatesFailure, initializeBillPaySetupApproverViewUpdateData, saveBillPaySetupApproverViewUpdateData, clearBillPaySetupApproverViewUpdateData, setListeningToPusherEvent, clearBillPaySetupApproverView, } = billPaySetupApproverView.actions;
|
|
340
|
+
export const { fetchBillPaySetupApproverView, fetchBillPaySetupApproverViewSuccess, fetchBillPaySetupApproverViewFailure, fetchBillPayApproversDetails, fetchBillPayApproversList, fetchBillPayApproversListSuccess, fetchBillPayApproversListFailure, deleteBillPayApprovalRule, deleteBillPayApprovalRuleSuccess, deleteBillPayApprovalRuleFailure, reorderBillPayApprovalRules, reorderBillPayApprovalRulesSuccess, reorderBillPayApprovalRulesFailure, saveBillPaySetupApproverViewUpdates, saveBillPaySetupApproverViewUpdatesSuccess, saveBillPaySetupApproverViewUpdatesFailure, initializeBillPaySetupApproverViewUpdateData, saveBillPaySetupApproverViewUpdateData, clearBillPaySetupApproverViewUpdateData, setListeningToPusherEvent, clearBillPaySetupApproverView, } = billPaySetupApproverView.actions;
|
|
244
341
|
export default billPaySetupApproverView.reducer;
|
|
@@ -6,9 +6,17 @@ import { updateAllUsers } from '../../../../../entity/user/userReducer';
|
|
|
6
6
|
import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
|
|
7
7
|
import { deleteBillPayApprovalRule, deleteBillPayApprovalRuleFailure, deleteBillPayApprovalRuleSuccess, } from '../billPaySetupApproverViewReducer';
|
|
8
8
|
export const deleteBillPayApprovalRuleEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(deleteBillPayApprovalRule.match), switchMap((action) => {
|
|
9
|
-
const { approvalRuleId } = action.payload;
|
|
9
|
+
const { approvalRuleId, useV3 } = action.payload;
|
|
10
|
+
// Approval Rules 3.0 — flag-gated endpoint selection.
|
|
11
|
+
// Explicit `=== true` keeps `strict-boolean-expressions` happy
|
|
12
|
+
// when RTK's payload type widens to `any` in some configs.
|
|
13
|
+
const endpoint = useV3 === true
|
|
14
|
+
? `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules-v2`
|
|
15
|
+
: `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`;
|
|
10
16
|
return zeniAPI
|
|
11
|
-
.deleteAndGetJSON(
|
|
17
|
+
.deleteAndGetJSON(endpoint, {
|
|
18
|
+
approval_rule_id: approvalRuleId,
|
|
19
|
+
})
|
|
12
20
|
.pipe(mergeMap((response) => {
|
|
13
21
|
if (isSuccessResponse(response) && response.data != null) {
|
|
14
22
|
const approvalRuleIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
|
|
@@ -6,7 +6,7 @@ import { updateAllUsers } from '../../../../../entity/user/userReducer';
|
|
|
6
6
|
import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
|
|
7
7
|
import { fetchBillPaySetupApproverView, fetchBillPaySetupApproverViewFailure, fetchBillPaySetupApproverViewSuccess, } from '../billPaySetupApproverViewReducer';
|
|
8
8
|
export const fetchBillPaySetupApproverViewEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchBillPaySetupApproverView.match), switchMap((action) => {
|
|
9
|
-
const { cacheOverride } = action.payload;
|
|
9
|
+
const { cacheOverride, useV3 } = action.payload;
|
|
10
10
|
const { billPaySetupApproverViewState, approvalRuleState } = state$.value;
|
|
11
11
|
const approvalRules = getApprovalRulesByIds(approvalRuleState, billPaySetupApproverViewState.approvalRuleIds);
|
|
12
12
|
if (cacheOverride === true ||
|
|
@@ -14,9 +14,13 @@ export const fetchBillPaySetupApproverViewEpic = (actions$, state$, zeniAPI) =>
|
|
|
14
14
|
billPaySetupApproverViewState.approvalRuleIds.length ||
|
|
15
15
|
(billPaySetupApproverViewState.hasValidState() === false &&
|
|
16
16
|
billPaySetupApproverViewState.fetchState !== 'In-Progress')) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
// Approval Rules 3.0 — flag-gated endpoint selection.
|
|
18
|
+
// Explicit `=== true` keeps `strict-boolean-expressions` happy
|
|
19
|
+
// when RTK's payload type widens to `any` in some configs.
|
|
20
|
+
const endpoint = useV3 === true
|
|
21
|
+
? `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules-v2`
|
|
22
|
+
: `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`;
|
|
23
|
+
return zeniAPI.getJSON(endpoint).pipe(mergeMap((response) => {
|
|
20
24
|
if (isSuccessResponse(response) && response.data != null) {
|
|
21
25
|
const approvalRuleIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
|
|
22
26
|
const actions = [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { from } from 'rxjs';
|
|
2
2
|
import { filter, mergeMap } from 'rxjs/operators';
|
|
3
|
-
import { getApprovalRuleById } from '../../../../../entity/approvalRule/approvalRuleSelector';
|
|
3
|
+
import { getAmountCriteria, getApprovalRuleById, getDepartmentCriteria, getVendorCriteria, } from '../../../../../entity/approvalRule/approvalRuleSelector';
|
|
4
4
|
import { clearBillPaySetupApproverViewUpdateData, initializeBillPaySetupApproverViewUpdateData, saveBillPaySetupApproverViewUpdateData, } from '../billPaySetupApproverViewReducer';
|
|
5
5
|
export const initializeBillPaySetupApproverViewUpdateDataEpic = (actions$, state$) => actions$.pipe(filter(initializeBillPaySetupApproverViewUpdateData.match), mergeMap((action) => {
|
|
6
6
|
const { approvalRuleId } = action.payload;
|
|
@@ -8,16 +8,20 @@ export const initializeBillPaySetupApproverViewUpdateDataEpic = (actions$, state
|
|
|
8
8
|
if (approvalRuleId != null) {
|
|
9
9
|
const approvalRule = getApprovalRuleById(state$.value.approvalRuleState, approvalRuleId);
|
|
10
10
|
if (approvalRule != null) {
|
|
11
|
-
const criteria = approvalRule.criteria[0];
|
|
12
|
-
const range = criteria?.range;
|
|
13
11
|
const billPaySetupApproverViewUpdateData = {
|
|
14
12
|
approvalRuleId,
|
|
15
13
|
steps: approvalRule.steps,
|
|
16
14
|
criteria: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
amount: getAmountCriteria(approvalRule.criteria),
|
|
16
|
+
vendor: getVendorCriteria(approvalRule.criteria),
|
|
17
|
+
department: getDepartmentCriteria(approvalRule.criteria),
|
|
20
18
|
},
|
|
19
|
+
// Approval Rules 3.0 — seed rule-level fields so the form can
|
|
20
|
+
// round-trip them on edit. Each may be undefined on legacy rules.
|
|
21
|
+
name: approvalRule.name,
|
|
22
|
+
description: approvalRule.description,
|
|
23
|
+
separationOfDuties: approvalRule.separationOfDuties,
|
|
24
|
+
isFallback: approvalRule.isFallback,
|
|
21
25
|
};
|
|
22
26
|
fetchActions.push(clearBillPaySetupApproverViewUpdateData(), saveBillPaySetupApproverViewUpdateData(billPaySetupApproverViewUpdateData));
|
|
23
27
|
}
|
|
@@ -25,7 +29,7 @@ export const initializeBillPaySetupApproverViewUpdateDataEpic = (actions$, state
|
|
|
25
29
|
else {
|
|
26
30
|
const billPaySetupApproverViewCreateData = {
|
|
27
31
|
steps: [],
|
|
28
|
-
criteria:
|
|
32
|
+
criteria: {},
|
|
29
33
|
};
|
|
30
34
|
fetchActions.push(clearBillPaySetupApproverViewUpdateData(), saveBillPaySetupApproverViewUpdateData(billPaySetupApproverViewCreateData));
|
|
31
35
|
}
|