@zeniai/client-epic-state 5.1.7 → 5.1.8-betaSS1
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/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 +3 -2
- package/lib/entity/tenant/tenantReducer.d.ts +44 -30
- package/lib/entity/tenant/tenantReducer.js +130 -29
- package/lib/entity/tenant/tenantState.d.ts +3 -2
- package/lib/entity/transaction/payloadTypes/transactionPayload.js +4 -2
- package/lib/epic.d.ts +32 -4
- package/lib/epic.js +33 -4
- 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/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 +128 -27
- package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +4 -2
- package/lib/esm/epic.js +33 -4
- package/lib/esm/index.js +70 -29
- 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/companyViewReducer.js +11 -10
- package/lib/esm/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
- package/lib/esm/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
- package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/esm/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +3 -3
- package/lib/esm/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +4 -3
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +12 -13
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/backgroundRefetchReviewTabEpic.js +19 -3
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +19 -9
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +2 -2
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/markTransactionAsNotMiscategorizedEpic.js +13 -2
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/saveTransactionCategorizationEpic.js +6 -2
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +2 -2
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +6 -2
- package/lib/esm/view/expenseAutomationView/expenseAutomationViewReducer.js +20 -3
- package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +48 -8
- package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +6 -5
- 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/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/index.d.ts +86 -36
- package/lib/index.js +268 -35
- 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/companyViewReducer.d.ts +8 -7
- package/lib/view/companyView/companyViewReducer.js +12 -11
- package/lib/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
- package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.d.ts +10 -0
- package/lib/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
- package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/view/companyView/types/cockpitTypes.d.ts +3 -2
- package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +3 -3
- package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +4 -3
- package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.d.ts +0 -6
- package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +13 -14
- package/lib/view/expenseAutomationView/epics/transactionCategorization/backgroundRefetchReviewTabEpic.js +19 -3
- package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +19 -9
- package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +2 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/markTransactionAsNotMiscategorizedEpic.js +13 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/saveTransactionCategorizationEpic.js +6 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +2 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +6 -2
- package/lib/view/expenseAutomationView/expenseAutomationViewReducer.d.ts +6 -2
- package/lib/view/expenseAutomationView/expenseAutomationViewReducer.js +20 -3
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/payload/transactionCategorizationPayload.d.ts +9 -20
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +18 -9
- package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +48 -8
- package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +5 -4
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -1
- package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +6 -5
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
- package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +3 -2
- 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/peopleTypes.d.ts +1 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
- 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/journalEntryLinesViewModel.d.ts +1 -1
- package/lib/zeniAPI.d.ts +1 -0
- package/package.json +6 -4
- package/lib/view/companyView/epic/companyPassport/updateCapitalizationThresholdEpic.d.ts +0 -10
|
@@ -2,21 +2,35 @@ import { from } from 'rxjs';
|
|
|
2
2
|
import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
|
|
3
3
|
import { updateCompanies } from '../../../../entity/company/companyReducer';
|
|
4
4
|
import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
|
|
5
|
-
import {
|
|
5
|
+
import { updateTenantCapitalizationAccountOverride, updateTenantCapitalizationOnboardingDismissed, } from '../../../../entity/tenant/tenantReducer';
|
|
6
6
|
import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
|
|
7
|
-
import {
|
|
8
|
-
export const
|
|
9
|
-
const { companyId,
|
|
7
|
+
import { updateCapitalizationAccountThreshold, updateCapitalizationAccountThresholdFailure, updateCapitalizationAccountThresholdSuccess, } from '../../companyViewReducer';
|
|
8
|
+
export const updateCapitalizationAccountThresholdEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(updateCapitalizationAccountThreshold.match), switchMap((action) => {
|
|
9
|
+
const { companyId, accountId, threshold, dismissOnboardingForAccount, allOverrides, } = action.payload;
|
|
10
10
|
const tenantId = Object.values(state$.value.tenantState.tenantsById).find((t) => t.companyId === companyId)?.tenantId;
|
|
11
|
+
let finalOverrides;
|
|
12
|
+
if (allOverrides !== undefined) {
|
|
13
|
+
finalOverrides = allOverrides ?? {};
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
finalOverrides = {
|
|
17
|
+
...(tenantId != null
|
|
18
|
+
? state$.value.tenantState.tenantsById[tenantId]
|
|
19
|
+
?.capitalizableAccountOverrides
|
|
20
|
+
: {}),
|
|
21
|
+
};
|
|
22
|
+
if (threshold === null) {
|
|
23
|
+
delete finalOverrides[accountId];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
finalOverrides[accountId] = threshold;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
11
29
|
const body = {
|
|
12
|
-
|
|
13
|
-
capitalization_threshold_max_ceiling: capitalizationThresholdMaxCeiling,
|
|
30
|
+
capitalizable_account_overrides: Object.keys(finalOverrides).length > 0 ? finalOverrides : null,
|
|
14
31
|
};
|
|
15
|
-
if (
|
|
16
|
-
body.
|
|
17
|
-
}
|
|
18
|
-
else if (dismissOnboardingForPopupType === 'fixed_asset') {
|
|
19
|
-
body.capitalization_onboarding_shown_for_fixed_asset = true;
|
|
32
|
+
if (dismissOnboardingForAccount === true) {
|
|
33
|
+
body.capitalization_onboarding_dismissed_accounts = { [accountId]: true };
|
|
20
34
|
}
|
|
21
35
|
return zeniAPI
|
|
22
36
|
.putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/companies/${companyId}`, body)
|
|
@@ -31,19 +45,24 @@ export const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) =>
|
|
|
31
45
|
}));
|
|
32
46
|
}
|
|
33
47
|
if (tenantId != null) {
|
|
34
|
-
actions.push(
|
|
48
|
+
actions.push(updateTenantCapitalizationAccountOverride({
|
|
35
49
|
tenantId,
|
|
36
|
-
|
|
37
|
-
|
|
50
|
+
accountId,
|
|
51
|
+
threshold,
|
|
52
|
+
allOverrides: allOverrides !== undefined
|
|
53
|
+
? Object.keys(finalOverrides).length > 0
|
|
54
|
+
? finalOverrides
|
|
55
|
+
: null
|
|
56
|
+
: undefined,
|
|
38
57
|
}));
|
|
39
|
-
if (
|
|
58
|
+
if (dismissOnboardingForAccount === true) {
|
|
40
59
|
actions.push(updateTenantCapitalizationOnboardingDismissed({
|
|
41
60
|
tenantId,
|
|
42
|
-
|
|
61
|
+
accountId,
|
|
43
62
|
}));
|
|
44
63
|
}
|
|
45
64
|
}
|
|
46
|
-
actions.push(
|
|
65
|
+
actions.push(updateCapitalizationAccountThresholdSuccess());
|
|
47
66
|
actions.push(openSnackbar({
|
|
48
67
|
messageSection: 'capitalization_threshold_update',
|
|
49
68
|
messageText: 'success',
|
|
@@ -53,7 +72,7 @@ export const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) =>
|
|
|
53
72
|
}
|
|
54
73
|
else {
|
|
55
74
|
return from([
|
|
56
|
-
|
|
75
|
+
updateCapitalizationAccountThresholdFailure({
|
|
57
76
|
status: response.status,
|
|
58
77
|
}),
|
|
59
78
|
openSnackbar({
|
|
@@ -64,7 +83,7 @@ export const updateCapitalizationThresholdEpic = (actions$, state$, zeniAPI) =>
|
|
|
64
83
|
]);
|
|
65
84
|
}
|
|
66
85
|
}), catchError((error) => from([
|
|
67
|
-
|
|
86
|
+
updateCapitalizationAccountThresholdFailure({
|
|
68
87
|
status: createZeniAPIStatus('Unexpected error', 'Update Capitalization Threshold errored out' +
|
|
69
88
|
(error instanceof Error
|
|
70
89
|
? error.message
|
|
@@ -21,7 +21,7 @@ export const fetchAllCockpitViewsEpic = (actions$, state$) => actions$.pipe(filt
|
|
|
21
21
|
fetchReviewCompanyView(),
|
|
22
22
|
fetchCompanyHealthMetricView(),
|
|
23
23
|
fetchCompanyMetaData(),
|
|
24
|
-
fetchCompanyTaskManagerView(
|
|
24
|
+
fetchCompanyTaskManagerView(0, 'dueDate', 'descending', false),
|
|
25
25
|
fetchCompanyHealthMetricConfig(),
|
|
26
26
|
]);
|
|
27
27
|
}
|
|
@@ -74,7 +74,7 @@ export const fetchAllCockpitViewsEpic = (actions$, state$) => actions$.pipe(filt
|
|
|
74
74
|
}
|
|
75
75
|
if (state.companyTaskManagerViewState.fetchState !== 'In-Progress' &&
|
|
76
76
|
state.companyTaskManagerViewState.hasValidState() === false) {
|
|
77
|
-
fetchActions.push(fetchCompanyTaskManagerView(
|
|
77
|
+
fetchActions.push(fetchCompanyTaskManagerView(0, 'dueDate', 'descending', false));
|
|
78
78
|
}
|
|
79
79
|
return from(fetchActions);
|
|
80
80
|
}
|
package/lib/esm/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js
CHANGED
|
@@ -9,7 +9,7 @@ import { fetchMissingReceipts } from '../../reducers/missingReceiptsViewReducer'
|
|
|
9
9
|
import { fetchReconciliation } from '../../reducers/reconciliationViewReducer';
|
|
10
10
|
import { fetchTransactionCategorizationView } from '../../reducers/transactionsViewReducer';
|
|
11
11
|
export const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.pipe(filter(fetchAllExpenseAutomationTabs.match), switchMap((action) => {
|
|
12
|
-
const { cacheOverride, refreshViewInBackground, isUncategorizedExpenseCategoryEnabled, } = action.payload;
|
|
12
|
+
const { cacheOverride, refreshViewInBackground, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses, } = action.payload;
|
|
13
13
|
const state = state$.value;
|
|
14
14
|
const { monthEndCloseChecksState } = state;
|
|
15
15
|
const { monthEndCloseChecksByTenantId } = monthEndCloseChecksState;
|
|
@@ -30,7 +30,7 @@ export const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.
|
|
|
30
30
|
}
|
|
31
31
|
if (cacheOverride === true) {
|
|
32
32
|
const actions = [];
|
|
33
|
-
actions.push(fetchTransactionCategorizationView(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, cacheOverride, false, undefined, undefined, refreshViewInBackground, false, isUncategorizedExpenseCategoryEnabled), fetchMissingReceipts({ start: timePeriodStart, end: timePeriodEnd }, {
|
|
33
|
+
actions.push(fetchTransactionCategorizationView(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, cacheOverride, false, undefined, undefined, refreshViewInBackground, false, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses), fetchMissingReceipts({ start: timePeriodStart, end: timePeriodEnd }, {
|
|
34
34
|
amount: 75.0,
|
|
35
35
|
currencyCode: 'USD',
|
|
36
36
|
currencySymbol: '$',
|
|
@@ -83,7 +83,7 @@ export const fetchAllExpenseAutomationTabsEpic = (actions$, state$) => actions$.
|
|
|
83
83
|
(state.expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab].hasValidState() === false ||
|
|
84
84
|
state.expenseAutomationTransactionsViewState
|
|
85
85
|
.transactionCategorizationView[selectedTransactionCategorizationTab].transactionIdsBySelectedPeriod[monthYearPeriodId] == null)) {
|
|
86
|
-
fetchActions.push(fetchTransactionCategorizationView(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, cacheOverride, false, undefined, undefined, refreshViewInBackground, false, isUncategorizedExpenseCategoryEnabled));
|
|
86
|
+
fetchActions.push(fetchTransactionCategorizationView(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, cacheOverride, false, undefined, undefined, refreshViewInBackground, false, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses));
|
|
87
87
|
}
|
|
88
88
|
return from(fetchActions);
|
|
89
89
|
}
|
package/lib/esm/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js
CHANGED
|
@@ -10,7 +10,7 @@ import { fetchMissingReceipts } from '../../reducers/missingReceiptsViewReducer'
|
|
|
10
10
|
import { fetchReconciliation } from '../../reducers/reconciliationViewReducer';
|
|
11
11
|
import { fetchTransactionCategorizationView } from '../../reducers/transactionsViewReducer';
|
|
12
12
|
export const refreshExpenseAutomationCurrentTabEpic = (actions$, state$) => actions$.pipe(filter(refreshExpenseAutomationCurrentTab.match), switchMap((action) => {
|
|
13
|
-
const { isUncategorizedExpenseCategoryEnabled } = action.payload;
|
|
13
|
+
const { countOnlyStatuses, isUncategorizedExpenseCategoryEnabled, statuses, } = action.payload;
|
|
14
14
|
const state = state$.value;
|
|
15
15
|
const currentTenant = getCurrentTenant(state);
|
|
16
16
|
const companyId = currentTenant.companyId;
|
|
@@ -61,9 +61,10 @@ export const refreshExpenseAutomationCurrentTabEpic = (actions$, state$) => acti
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
case 'transaction_categorization':
|
|
64
|
-
default:
|
|
64
|
+
default: {
|
|
65
65
|
return from([
|
|
66
|
-
fetchTransactionCategorizationView(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, true, false, undefined, undefined, true, undefined, isUncategorizedExpenseCategoryEnabled),
|
|
66
|
+
fetchTransactionCategorizationView(selectedTransactionCategorizationTab, { start: timePeriodStart, end: timePeriodEnd }, true, false, undefined, undefined, true, undefined, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses),
|
|
67
67
|
]);
|
|
68
|
+
}
|
|
68
69
|
}
|
|
69
70
|
}));
|
|
@@ -5,14 +5,9 @@ import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePay
|
|
|
5
5
|
import { rollingCalendarDateRangeInclusive } from '../../helpers/rollingCalendarDateRangeInclusive';
|
|
6
6
|
import { supportedTransactionPayloadToManualSearchResult } from '../../payload/missingReceiptsPayload';
|
|
7
7
|
import { searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, } from '../../reducers/missingReceiptsViewReducer';
|
|
8
|
-
import { DEFAULT_COMPLETED_SUB_TAB } from '../../types/completedSubTab';
|
|
9
8
|
import { toTransactionsSortKey } from '../../types/transactionsViewState';
|
|
10
9
|
/**
|
|
11
|
-
|
|
12
|
-
* Backend contract TBD — align with `fetchTransactionCategorizationEpic` (`selectedTab === 'autoCategorized'`)
|
|
13
|
-
* when the expense-automation API documents the intended filter for this flow.
|
|
14
|
-
*/
|
|
15
|
-
export const MANUAL_TRANSACTION_SEARCH_AUTO_CATEGORIZED = false;
|
|
10
|
+
|
|
16
11
|
/** Inclusive rolling window for manual match search (ignores accounting period picker). */
|
|
17
12
|
const MANUAL_SEARCH_TRANSACTION_DATE_RANGE_DAYS = 90;
|
|
18
13
|
export const searchTransactionsForManualMatchEpic = (actions$, state$, zeniAPI) => {
|
|
@@ -41,20 +36,24 @@ export const searchTransactionsForManualMatchEpic = (actions$, state$, zeniAPI)
|
|
|
41
36
|
const queryParam = {
|
|
42
37
|
start_date: start,
|
|
43
38
|
end_date: end,
|
|
44
|
-
auto_categorized: MANUAL_TRANSACTION_SEARCH_AUTO_CATEGORIZED,
|
|
45
39
|
sort_by: toTransactionsSortKey(manualSearchSortKey),
|
|
46
40
|
sort_order: manualSearchSortOrder === 'ascending' ? 'asc' : 'desc',
|
|
47
41
|
page_token: pageToken ?? null,
|
|
48
42
|
page_size: manualSearch.pageSize,
|
|
49
43
|
search_text: query,
|
|
50
|
-
// Manual search ignores the Completed sub-tab axis — always span the
|
|
51
|
-
// default sentinel so the receipt-matching UX returns results
|
|
52
|
-
// regardless of where the transaction would otherwise be bucketed on
|
|
53
|
-
// the Completed tab.
|
|
54
|
-
sub_tab: DEFAULT_COMPLETED_SUB_TAB,
|
|
55
44
|
};
|
|
45
|
+
// BETA TEST — Shubham dev namespace for transaction-categorization
|
|
46
|
+
// `statuses` / `count_only_statuses` rollout. Revert before merge by
|
|
47
|
+
// restoring `${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}` in
|
|
48
|
+
// place of the hardcoded base. Mirrored in
|
|
49
|
+
// `fetchTransactionCategorizationEpic.ts` and
|
|
50
|
+
// `backgroundRefetchReviewTabEpic.ts` — grep `BETA TEST` to find
|
|
51
|
+
// every override site.
|
|
52
|
+
// #region agent log
|
|
53
|
+
fetch('http://127.0.0.1:7755/ingest/4e987812-899d-4b9b-8ed6-a799cd019b33', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': 'f3bde0' }, body: JSON.stringify({ sessionId: 'f3bde0', hypothesisId: 'D', location: 'searchTransactionsForManualMatchEpic.ts:117', message: 'searchTransactionsForManualMatchEpic firing API', data: { query, pageToken, start: queryParam.start_date, end: queryParam.end_date, stack: (new Error().stack || '').split('\n').slice(1, 10).join(' | ') }, timestamp: Date.now() }) }).catch(() => { });
|
|
54
|
+
// #endregion
|
|
56
55
|
return zeniAPI
|
|
57
|
-
.getJSON(
|
|
56
|
+
.getJSON(`https://dev.api.zeni.ai/version/accounting/shubham/1.0/expense-automation/transactions?query=${encodeURIComponent(JSON.stringify(queryParam))}`)
|
|
58
57
|
.pipe(mergeMap((response) => {
|
|
59
58
|
if (isSuccessResponse(response) && response.data != null) {
|
|
60
59
|
const { transactions, next_page_token, total_count } = response.data;
|
|
@@ -10,8 +10,14 @@ import { toTransactionsSortKey } from '../../types/transactionsViewState';
|
|
|
10
10
|
const SELECTED_TAB = 'review';
|
|
11
11
|
const PAGE_SIZE = 25;
|
|
12
12
|
export const backgroundRefetchReviewTabEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(backgroundRefetchReviewTab.match), switchMap((action) => {
|
|
13
|
-
const { period, isUncategorizedExpenseCategoryEnabled } = action.payload;
|
|
13
|
+
const { period, isUncategorizedExpenseCategoryEnabled, reviewStatuses } = action.payload;
|
|
14
14
|
const state = state$.value;
|
|
15
|
+
// Background refetch must never widen the listing to "all statuses".
|
|
16
|
+
// Dispatchers that have access to the Statsig-resolved Review-tab
|
|
17
|
+
// status set (e.g. the EA-screen save chain) pass it through on the
|
|
18
|
+
// action; everyone else falls back to the hardcoded sentinel so the
|
|
19
|
+
// refetch matches what the user sees on the Review tab.
|
|
20
|
+
const effectiveReviewStatuses = reviewStatuses ?? ['pending_review'];
|
|
15
21
|
const currentTenant = getCurrentTenant(state);
|
|
16
22
|
const selectedPeriod = state.expenseAutomationViewState.selectedPeriodByTenantId[currentTenant.tenantId];
|
|
17
23
|
const reviewUiState = state.expenseAutomationTransactionsViewState
|
|
@@ -21,14 +27,24 @@ export const backgroundRefetchReviewTabEpic = (actions$, state$, zeniAPI) => act
|
|
|
21
27
|
const queryParam = {
|
|
22
28
|
start_date: toString(period.start),
|
|
23
29
|
end_date: toString(period.end),
|
|
24
|
-
auto_categorized: false,
|
|
25
30
|
sort_by: toTransactionsSortKey(reviewUiState.sortKey),
|
|
26
31
|
sort_order: reviewUiState.sortOrder === 'ascending' ? 'asc' : 'desc',
|
|
27
32
|
page_token: pageToken,
|
|
28
33
|
page_size: PAGE_SIZE,
|
|
29
34
|
search_text: reviewUiState.searchString,
|
|
35
|
+
statuses: effectiveReviewStatuses,
|
|
30
36
|
};
|
|
31
|
-
|
|
37
|
+
// BETA TEST — Shubham dev namespace for transaction-categorization
|
|
38
|
+
// `statuses` / `count_only_statuses` rollout. Revert before merge by
|
|
39
|
+
// restoring `${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}` in
|
|
40
|
+
// place of the hardcoded base. Mirrored in
|
|
41
|
+
// `fetchTransactionCategorizationEpic.ts` and
|
|
42
|
+
// `searchTransactionsForManualMatchEpic.ts` — grep `BETA TEST` to
|
|
43
|
+
// find every override site.
|
|
44
|
+
// #region agent log
|
|
45
|
+
fetch('http://127.0.0.1:7755/ingest/4e987812-899d-4b9b-8ed6-a799cd019b33', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': 'f3bde0' }, body: JSON.stringify({ sessionId: 'f3bde0', hypothesisId: 'E', location: 'backgroundRefetchReviewTabEpic.ts:112', message: 'backgroundRefetchReviewTabEpic firing API', data: { pageToken, effectiveReviewStatuses, start: queryParam.start_date, end: queryParam.end_date, stack: (new Error().stack || '').split('\n').slice(1, 10).join(' | ') }, timestamp: Date.now() }) }).catch(() => { });
|
|
46
|
+
// #endregion
|
|
47
|
+
return zeniAPI.getJSON(`https://dev.api.zeni.ai/version/accounting/shubham/1.0/expense-automation/transactions?query=${encodeURIComponent(JSON.stringify(queryParam))}`);
|
|
32
48
|
};
|
|
33
49
|
return fetchPage(null).pipe(expand((response) => {
|
|
34
50
|
if (!isSuccessResponse(response) || response.data == null) {
|
|
@@ -6,11 +6,10 @@ import { updateTransactions } from '../../../../entity/transaction/transactionRe
|
|
|
6
6
|
import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
|
|
7
7
|
import { getLineItemsByTransactionsIdsFromResponse } from '../../helpers/transactionCategorizationLocalDataHelper';
|
|
8
8
|
import { fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationSuccess, initializeTransactionCategorizationViewLocalData, resetOtherTabsFetchState, updateParentTotalCountForTab, updateTotalCountForTransactionCategorization, updateTransactionCategorizationUIState, } from '../../reducers/transactionsViewReducer';
|
|
9
|
-
import { DEFAULT_COMPLETED_SUB_TAB } from '../../types/completedSubTab';
|
|
10
9
|
import { TRANSACTIONS_TABS, toTransactionsSortKey, } from '../../types/transactionsViewState';
|
|
11
10
|
export const fetchTransactionCategorizationEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchTransactionCategorization.match), switchMap((action) => {
|
|
12
11
|
const { expenseAutomationViewState: { selectedPeriodByTenantId }, expenseAutomationTransactionsViewState, } = state$.value;
|
|
13
|
-
const { period, keepExistingListItems, selectedTab, refreshViewInBackground, } = action.payload;
|
|
12
|
+
const { period, keepExistingListItems, selectedTab, refreshViewInBackground, statuses, countOnlyStatuses, } = action.payload;
|
|
14
13
|
const uiState = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTab].uiState;
|
|
15
14
|
const { pageToken, sortOrder, sortKey } = uiState;
|
|
16
15
|
const currentTenant = getCurrentTenant(state$.value);
|
|
@@ -18,18 +17,26 @@ export const fetchTransactionCategorizationEpic = (actions$, state$, zeniAPI) =>
|
|
|
18
17
|
const queryParam = {
|
|
19
18
|
start_date: toString(period.start),
|
|
20
19
|
end_date: toString(period.end),
|
|
21
|
-
auto_categorized: selectedTab === 'autoCategorized',
|
|
22
20
|
sort_by: toTransactionsSortKey(sortKey),
|
|
23
21
|
sort_order: sortOrder === 'ascending' ? 'asc' : 'desc',
|
|
24
22
|
page_token: pageToken,
|
|
25
23
|
page_size: 25,
|
|
26
24
|
search_text: uiState.searchString,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
: DEFAULT_COMPLETED_SUB_TAB,
|
|
25
|
+
statuses,
|
|
26
|
+
count_only_statuses: countOnlyStatuses,
|
|
30
27
|
};
|
|
28
|
+
// #region agent log
|
|
29
|
+
fetch('http://127.0.0.1:7755/ingest/4e987812-899d-4b9b-8ed6-a799cd019b33', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': 'f3bde0' }, body: JSON.stringify({ sessionId: 'f3bde0', hypothesisId: 'A/B/C', location: 'fetchTransactionCategorizationEpic.ts:84', message: 'fetchTransactionCategorizationEpic firing API', data: { selectedTab, incomingStatuses: statuses, incomingCountOnlyStatuses: countOnlyStatuses, refreshViewInBackground, keepExistingListItems, searchString: uiState.searchString, pageToken, start: toString(period.start), end: toString(period.end), statusesIsUndefined: statuses === undefined, stack: (new Error().stack || '').split('\n').slice(1, 10).join(' | ') }, timestamp: Date.now() }) }).catch(() => { });
|
|
30
|
+
// #endregion
|
|
31
|
+
// BETA TEST — Shubham dev namespace for transaction-categorization
|
|
32
|
+
// `statuses` / `count_only_statuses` rollout. Revert before merge by
|
|
33
|
+
// restoring `${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}` in
|
|
34
|
+
// place of the hardcoded base. Mirrored in
|
|
35
|
+
// `backgroundRefetchReviewTabEpic.ts` and
|
|
36
|
+
// `searchTransactionsForManualMatchEpic.ts` — grep `BETA TEST` to
|
|
37
|
+
// find every override site.
|
|
31
38
|
return zeniAPI
|
|
32
|
-
.getJSON(
|
|
39
|
+
.getJSON(`https://dev.api.zeni.ai/version/accounting/shubham/1.0/expense-automation/transactions?query=${encodeURIComponent(JSON.stringify(queryParam))}`)
|
|
33
40
|
.pipe(mergeMap((response) => {
|
|
34
41
|
if (isSuccessResponse(response) && response.data != null) {
|
|
35
42
|
const updateActions = [];
|
|
@@ -52,8 +59,11 @@ export const fetchTransactionCategorizationEpic = (actions$, state$, zeniAPI) =>
|
|
|
52
59
|
updateActions.push(updateParentTotalCountForTab({
|
|
53
60
|
selectedPeriod,
|
|
54
61
|
selectedTab,
|
|
55
|
-
|
|
56
|
-
|
|
62
|
+
// Optional — present only when the request supplied
|
|
63
|
+
// `count_only_statuses`. The reducer no-ops on undefined so
|
|
64
|
+
// any cached parent badge stays intact across scoped
|
|
65
|
+
// fetches (sort changes, pagination, etc.).
|
|
66
|
+
parentTotalCount: response.data.count_only_total,
|
|
57
67
|
}));
|
|
58
68
|
updateActions.push(resetOtherTabsFetchState({
|
|
59
69
|
refreshViewInBackground,
|
|
@@ -8,7 +8,7 @@ import { fetchOwnerList } from '../../../ownerList/ownerListReducer';
|
|
|
8
8
|
import { fetchProjectList } from '../../../projectList/projectListReducer';
|
|
9
9
|
import { fetchTransactionCategorization, fetchTransactionCategorizationView, } from '../../reducers/transactionsViewReducer';
|
|
10
10
|
export const fetchTransactionCategorizationViewEpic = (actions$, state$) => actions$.pipe(filter(fetchTransactionCategorizationView.match), mergeMap((action) => {
|
|
11
|
-
const { selectedTab, cacheOverride, keepExistingListItems, pageToken, period, refreshViewInBackground, searchString, resetListItems, isUncategorizedExpenseCategoryEnabled, } = action.payload;
|
|
11
|
+
const { selectedTab, cacheOverride, keepExistingListItems, pageToken, period, refreshViewInBackground, searchString, resetListItems, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses, } = action.payload;
|
|
12
12
|
const updateActions = [];
|
|
13
13
|
const { expenseAutomationTransactionsViewState } = state$.value;
|
|
14
14
|
const { fetchState, transactionIdsBySelectedPeriod } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTab];
|
|
@@ -42,7 +42,7 @@ export const fetchTransactionCategorizationViewEpic = (actions$, state$) => acti
|
|
|
42
42
|
if (cacheOverride === true ||
|
|
43
43
|
fetchState === 'Not-Started' ||
|
|
44
44
|
transactionIds.length === 0) {
|
|
45
|
-
updateActions.push(fetchTransactionCategorization(selectedTab, period, cacheOverride, keepExistingListItems, searchString, pageToken, refreshViewInBackground, resetListItems, isUncategorizedExpenseCategoryEnabled));
|
|
45
|
+
updateActions.push(fetchTransactionCategorization(selectedTab, period, cacheOverride, keepExistingListItems, searchString, pageToken, refreshViewInBackground, resetListItems, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses));
|
|
46
46
|
}
|
|
47
47
|
return from(updateActions);
|
|
48
48
|
}));
|
|
@@ -10,7 +10,7 @@ import { getSnackbarMessageForTransactionReview } from '../../helpers/transactio
|
|
|
10
10
|
import { fetchTransactionCategorizationView, markTransactionAsNotMiscategorized, updateStatusForTransactionNotMiscategorizedUpdateForCategorization, updateTotalCountForTransactionCategorization, } from '../../reducers/transactionsViewReducer';
|
|
11
11
|
export const markTransactionAsNotMiscategorizedEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(markTransactionAsNotMiscategorized.match), mergeMap((action) => {
|
|
12
12
|
const { expenseAutomationViewState, expenseAutomationTransactionsViewState, } = state$.value;
|
|
13
|
-
const { transactionsInReview, selectedTab, isUncategorizedExpenseCategoryEnabled, } = action.payload;
|
|
13
|
+
const { transactionsInReview, selectedTab, isUncategorizedExpenseCategoryEnabled, reviewStatuses: reviewStatusesFromAction, } = action.payload;
|
|
14
14
|
const transactionsSuccess = transactionsInReview.transactions_update_success;
|
|
15
15
|
const transactionsFailed = transactionsInReview.transactions_update_failed;
|
|
16
16
|
const currentTenant = getCurrentTenant(state$.value);
|
|
@@ -105,9 +105,20 @@ export const markTransactionAsNotMiscategorizedEpic = (actions$, state$, zeniAPI
|
|
|
105
105
|
const timePeriodStart = toAbsoluteDay(period.start);
|
|
106
106
|
const timePeriodEnd = toAbsoluteDay(period.end);
|
|
107
107
|
if (timePeriodStart != null && timePeriodEnd != null) {
|
|
108
|
+
// Statsig-resolved Review-tab statuses are threaded
|
|
109
|
+
// through the EA save chain by `ExpenseAutomationScreen`
|
|
110
|
+
// (resolves via `useDynamicConfig` +
|
|
111
|
+
// `resolveTransactionCategorizationStatuses`). The
|
|
112
|
+
// hardcoded `['pending_review']` last-resort prevents
|
|
113
|
+
// accidental "all statuses" widening if the chain ever
|
|
114
|
+
// delivers `undefined` (defensive — every live caller
|
|
115
|
+
// should be passing this through).
|
|
116
|
+
const reviewStatuses = reviewStatusesFromAction ?? [
|
|
117
|
+
'pending_review',
|
|
118
|
+
];
|
|
108
119
|
actions.push(fetchTransactionCategorizationView('review', { start: timePeriodStart, end: timePeriodEnd }, true, // cacheOverride = true to force refresh
|
|
109
120
|
false, undefined, undefined, true, // refreshViewInBackground
|
|
110
|
-
false, isUncategorizedExpenseCategoryEnabled));
|
|
121
|
+
false, isUncategorizedExpenseCategoryEnabled, reviewStatuses));
|
|
111
122
|
}
|
|
112
123
|
}
|
|
113
124
|
actions.push(updateTotalCountForTransactionCategorization({
|
|
@@ -6,7 +6,7 @@ import { getUncategorizedAccounts } from '../../../accountList/accountListSelect
|
|
|
6
6
|
import { toTransactionUpdatesFromTransactionCategorizationLocalData } from '../../helpers/saveTransactionHelper';
|
|
7
7
|
import { saveTransactionCategorization, updateTransactionCategorization, } from '../../reducers/transactionsViewReducer';
|
|
8
8
|
export const saveTransactionCategorizationEpic = (actions$, state$) => actions$.pipe(filter(saveTransactionCategorization.match), mergeMap((action) => {
|
|
9
|
-
const { transactionIds, cotTrackingByTransactionId, selectedTab, isUncategorizedExpenseCategoryEnabled, } = action.payload;
|
|
9
|
+
const { transactionIds, cotTrackingByTransactionId, selectedTab, isUncategorizedExpenseCategoryEnabled, reviewStatuses, } = action.payload;
|
|
10
10
|
const fetchActions = [];
|
|
11
11
|
const { transactionState, expenseAutomationTransactionsViewState } = state$.value;
|
|
12
12
|
const transactionSaveUpdates = [];
|
|
@@ -19,6 +19,10 @@ export const saveTransactionCategorizationEpic = (actions$, state$) => actions$.
|
|
|
19
19
|
transactionSaveUpdates.push(toTransactionUpdatesFromTransactionCategorizationLocalData(localData, transaction, uncategorizedIncomeExpense));
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
|
-
|
|
22
|
+
// Forward `reviewStatuses` so the downstream
|
|
23
|
+
// `updateTransactionCategorizationEpic` -> `markTransactionAsNotMiscategorized`
|
|
24
|
+
// chain receives the Statsig-resolved Review-tab statuses end-to-end
|
|
25
|
+
// without reading Statsig from epic-land.
|
|
26
|
+
fetchActions.push(updateTransactionCategorization(selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled, reviewStatuses));
|
|
23
27
|
return from(fetchActions);
|
|
24
28
|
}));
|
|
@@ -4,7 +4,7 @@ import { convertToPeriod, toAbsoluteDay, } from '../../../../commonStateTypes/ti
|
|
|
4
4
|
import { getCurrentTenant } from '../../../../entity/tenant/tenantSelector';
|
|
5
5
|
import { backgroundRefetchReviewTab, syncTransactionCategorizationFromDetailSave, } from '../../reducers/transactionsViewReducer';
|
|
6
6
|
export const triggerReviewTabRefetchEpic = (actions$, state$) => actions$.pipe(filter(syncTransactionCategorizationFromDetailSave.match), mergeMap((action) => {
|
|
7
|
-
const { pendingReviewLineIds, transactionId, isUncategorizedExpenseCategoryEnabled, } = action.payload;
|
|
7
|
+
const { pendingReviewLineIds, transactionId, isUncategorizedExpenseCategoryEnabled, reviewStatuses, } = action.payload;
|
|
8
8
|
if (pendingReviewLineIds.length === 0) {
|
|
9
9
|
return EMPTY;
|
|
10
10
|
}
|
|
@@ -23,5 +23,5 @@ export const triggerReviewTabRefetchEpic = (actions$, state$) => actions$.pipe(f
|
|
|
23
23
|
if (timePeriodStart == null || timePeriodEnd == null) {
|
|
24
24
|
return EMPTY;
|
|
25
25
|
}
|
|
26
|
-
return of(backgroundRefetchReviewTab({ start: timePeriodStart, end: timePeriodEnd }, isUncategorizedExpenseCategoryEnabled));
|
|
26
|
+
return of(backgroundRefetchReviewTab({ start: timePeriodStart, end: timePeriodEnd }, isUncategorizedExpenseCategoryEnabled, reviewStatuses));
|
|
27
27
|
}));
|
|
@@ -15,7 +15,7 @@ import { getVendorByVendorId } from '../../../../entity/vendor/vendorSelector';
|
|
|
15
15
|
import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
|
|
16
16
|
import { markTransactionAsNotMiscategorized, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, } from '../../reducers/transactionsViewReducer';
|
|
17
17
|
export const updateTransactionCategorizationEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(updateTransactionCategorization.match), mergeMap((action) => {
|
|
18
|
-
const { selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled, } = action.payload;
|
|
18
|
+
const { selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled, reviewStatuses, } = action.payload;
|
|
19
19
|
const { transactionState, vendorState, expenseAutomationTransactionsViewState, } = state$.value;
|
|
20
20
|
const payloadArray = preparePayload(selectedTab, transactionState, vendorState, expenseAutomationTransactionsViewState, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId).filter((payload) => payload != null);
|
|
21
21
|
return zeniAPI
|
|
@@ -24,7 +24,11 @@ export const updateTransactionCategorizationEpic = (actions$, state$, zeniAPI) =
|
|
|
24
24
|
if (isSuccessResponse(response) && response.data != null) {
|
|
25
25
|
const transactionsInReview = response.data;
|
|
26
26
|
const actions = [];
|
|
27
|
-
|
|
27
|
+
// Forward `reviewStatuses` so the downstream
|
|
28
|
+
// `markTransactionAsNotMiscategorizedEpic` can request the
|
|
29
|
+
// Statsig-resolved Review-tab statuses for its conditional
|
|
30
|
+
// background refetch via `fetchTransactionCategorizationView`.
|
|
31
|
+
actions.push(markTransactionAsNotMiscategorized(selectedTab, transactionsInReview, isUncategorizedExpenseCategoryEnabled, reviewStatuses), updateTransactionCategorizationSaveStatus(selectedTab, 'Completed', createZeniAPIStatus('Completed', 'Transaction categorization updated successfully')));
|
|
28
32
|
return from(actions);
|
|
29
33
|
}
|
|
30
34
|
else {
|
|
@@ -18,20 +18,37 @@ const expenseAutomationView = createSlice({
|
|
|
18
18
|
reducer() {
|
|
19
19
|
//do nothing
|
|
20
20
|
},
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* `statuses` / `countOnlyStatuses` carry the Statsig-resolved values
|
|
23
|
+
* for the currently selected transaction-categorization tab. The
|
|
24
|
+
* host (`ExpenseAutomationScreen`) resolves them via
|
|
25
|
+
* `useDynamicConfig` + `resolveTransactionCategorizationStatuses`
|
|
26
|
+
* and passes them in so the downstream bootstrap fetch hits the
|
|
27
|
+
* listing API with the correct status filter. Optional only as a
|
|
28
|
+
* defensive type concession for non-categorization callers (the
|
|
29
|
+
* action is also used to bootstrap the missing-receipts / reconciliation
|
|
30
|
+
* / month-end views, which don't consume these args).
|
|
31
|
+
*/
|
|
32
|
+
prepare(cacheOverride = false, refreshViewInBackground = false, isUncategorizedExpenseCategoryEnabled = false, statuses, countOnlyStatuses) {
|
|
22
33
|
return {
|
|
23
34
|
payload: {
|
|
24
35
|
cacheOverride,
|
|
25
36
|
refreshViewInBackground,
|
|
26
37
|
isUncategorizedExpenseCategoryEnabled,
|
|
38
|
+
statuses,
|
|
39
|
+
countOnlyStatuses,
|
|
27
40
|
},
|
|
28
41
|
};
|
|
29
42
|
},
|
|
30
43
|
},
|
|
31
44
|
refreshExpenseAutomationCurrentTab: {
|
|
32
|
-
prepare(isUncategorizedExpenseCategoryEnabled) {
|
|
45
|
+
prepare(isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses) {
|
|
33
46
|
return {
|
|
34
|
-
payload: {
|
|
47
|
+
payload: {
|
|
48
|
+
isUncategorizedExpenseCategoryEnabled,
|
|
49
|
+
statuses,
|
|
50
|
+
countOnlyStatuses,
|
|
51
|
+
},
|
|
35
52
|
};
|
|
36
53
|
},
|
|
37
54
|
reducer() {
|
|
@@ -121,7 +121,7 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
121
121
|
reducers: {
|
|
122
122
|
fetchTransactionCategorizationView: {
|
|
123
123
|
prepare(selectedTab, period, cacheOverride = false, keepExistingListItems = false, searchString, // when this is defined the output should go to search result IDs
|
|
124
|
-
pageToken, refreshViewInBackground = false, resetListItems = false, isUncategorizedExpenseCategoryEnabled) {
|
|
124
|
+
pageToken, refreshViewInBackground = false, resetListItems = false, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses) {
|
|
125
125
|
return {
|
|
126
126
|
payload: {
|
|
127
127
|
selectedTab,
|
|
@@ -133,6 +133,8 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
133
133
|
refreshViewInBackground,
|
|
134
134
|
resetListItems,
|
|
135
135
|
isUncategorizedExpenseCategoryEnabled,
|
|
136
|
+
statuses,
|
|
137
|
+
countOnlyStatuses,
|
|
136
138
|
},
|
|
137
139
|
};
|
|
138
140
|
},
|
|
@@ -181,7 +183,7 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
181
183
|
}
|
|
182
184
|
},
|
|
183
185
|
prepare(selectedTab, period, cacheOverride = false, keepExistingListItems = false, searchString, // when this is defined the output should go to search result IDs
|
|
184
|
-
pageToken, refreshViewInBackground = false, resetListItems, isUncategorizedExpenseCategoryEnabled) {
|
|
186
|
+
pageToken, refreshViewInBackground = false, resetListItems, isUncategorizedExpenseCategoryEnabled, statuses, countOnlyStatuses) {
|
|
185
187
|
return {
|
|
186
188
|
payload: {
|
|
187
189
|
selectedTab,
|
|
@@ -193,6 +195,8 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
193
195
|
refreshViewInBackground,
|
|
194
196
|
resetListItems,
|
|
195
197
|
isUncategorizedExpenseCategoryEnabled,
|
|
198
|
+
statuses,
|
|
199
|
+
countOnlyStatuses,
|
|
196
200
|
},
|
|
197
201
|
};
|
|
198
202
|
},
|
|
@@ -311,13 +315,25 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
311
315
|
draft.transactionCategorizationView[selectedTab].filters = filters;
|
|
312
316
|
},
|
|
313
317
|
saveTransactionCategorization: {
|
|
314
|
-
|
|
318
|
+
/**
|
|
319
|
+
* `reviewStatuses` carries the Statsig-resolved Review-tab statuses
|
|
320
|
+
* forwarded by `ExpenseAutomationScreen`.
|
|
321
|
+
* `saveTransactionCategorizationEpic` threads them downstream into
|
|
322
|
+
* `updateTransactionCategorization` -> `markTransactionAsNotMiscategorized`
|
|
323
|
+
* so the conditional background Review-tab refetch in
|
|
324
|
+
* `markTransactionAsNotMiscategorizedEpic` can request the correct
|
|
325
|
+
* status set without reading Statsig from epic-land. Optional during
|
|
326
|
+
* the deprecation window so un-migrated callers continue to work via
|
|
327
|
+
* slice fallback.
|
|
328
|
+
*/
|
|
329
|
+
prepare(selectedTab, transactionIds, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled, reviewStatuses) {
|
|
315
330
|
return {
|
|
316
331
|
payload: {
|
|
317
332
|
selectedTab,
|
|
318
333
|
transactionIds,
|
|
319
334
|
cotTrackingByTransactionId,
|
|
320
335
|
isUncategorizedExpenseCategoryEnabled,
|
|
336
|
+
reviewStatuses,
|
|
321
337
|
},
|
|
322
338
|
};
|
|
323
339
|
},
|
|
@@ -391,9 +407,16 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
391
407
|
fetchState: 'In-Progress',
|
|
392
408
|
};
|
|
393
409
|
},
|
|
394
|
-
|
|
410
|
+
/**
|
|
411
|
+
* `reviewStatuses` carries the Statsig-resolved Review-tab statuses
|
|
412
|
+
* forwarded from `saveTransactionCategorization`.
|
|
413
|
+
* `updateTransactionCategorizationEpic` threads them downstream into
|
|
414
|
+
* `markTransactionAsNotMiscategorized`.
|
|
415
|
+
*/
|
|
416
|
+
prepare(selectedTab, transactionIds, transactionSaveUpdates, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled, reviewStatuses) {
|
|
395
417
|
return {
|
|
396
418
|
payload: {
|
|
419
|
+
reviewStatuses,
|
|
397
420
|
selectedTab,
|
|
398
421
|
transactionIds,
|
|
399
422
|
transactionSaveUpdates,
|
|
@@ -858,12 +881,20 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
858
881
|
error: undefined,
|
|
859
882
|
};
|
|
860
883
|
},
|
|
861
|
-
|
|
884
|
+
/**
|
|
885
|
+
* `reviewStatuses` carries the Statsig-resolved Review-tab statuses
|
|
886
|
+
* forwarded from the EA-screen save chain.
|
|
887
|
+
* `markTransactionAsNotMiscategorizedEpic` reads this payload value
|
|
888
|
+
* when dispatching the conditional background Review-tab refetch via
|
|
889
|
+
* `fetchTransactionCategorizationView`.
|
|
890
|
+
*/
|
|
891
|
+
prepare(selectedTab, transactionsInReview, isUncategorizedExpenseCategoryEnabled, reviewStatuses) {
|
|
862
892
|
return {
|
|
863
893
|
payload: {
|
|
864
894
|
selectedTab,
|
|
865
895
|
transactionsInReview,
|
|
866
896
|
isUncategorizedExpenseCategoryEnabled,
|
|
897
|
+
reviewStatuses,
|
|
867
898
|
},
|
|
868
899
|
};
|
|
869
900
|
},
|
|
@@ -921,10 +952,17 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
921
952
|
},
|
|
922
953
|
updateTotalCountForTransactionCategorization(draft, action) {
|
|
923
954
|
const { selectedTab, selectedPeriod, totalCount } = action.payload;
|
|
924
|
-
|
|
955
|
+
const periodId = toMonthYearPeriodId(selectedPeriod);
|
|
956
|
+
draft.transactionCategorizationView[selectedTab].uiState.totalCount[periodId] = totalCount;
|
|
957
|
+
if (selectedTab === 'review') {
|
|
958
|
+
draft.parentTotalCountByTab.review[periodId] = totalCount;
|
|
959
|
+
}
|
|
925
960
|
},
|
|
926
961
|
updateParentTotalCountForTab(draft, action) {
|
|
927
962
|
const { selectedTab, selectedPeriod, parentTotalCount } = action.payload;
|
|
963
|
+
if (parentTotalCount == null) {
|
|
964
|
+
return;
|
|
965
|
+
}
|
|
928
966
|
draft.parentTotalCountByTab[selectedTab][toMonthYearPeriodId(selectedPeriod)] = parentTotalCount;
|
|
929
967
|
},
|
|
930
968
|
updateSelectedCheckboxTransactionIds(draft, action) {
|
|
@@ -973,7 +1011,7 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
973
1011
|
},
|
|
974
1012
|
},
|
|
975
1013
|
syncTransactionCategorizationFromDetailSave: {
|
|
976
|
-
prepare(transactionId, updatedTransaction, pendingReviewLineIds, uncategorizedIncomeExpense, isUncategorizedExpenseCategoryEnabled) {
|
|
1014
|
+
prepare(transactionId, updatedTransaction, pendingReviewLineIds, uncategorizedIncomeExpense, isUncategorizedExpenseCategoryEnabled, reviewStatuses) {
|
|
977
1015
|
return {
|
|
978
1016
|
payload: {
|
|
979
1017
|
transactionId,
|
|
@@ -981,6 +1019,7 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
981
1019
|
pendingReviewLineIds,
|
|
982
1020
|
uncategorizedIncomeExpense,
|
|
983
1021
|
isUncategorizedExpenseCategoryEnabled,
|
|
1022
|
+
reviewStatuses,
|
|
984
1023
|
},
|
|
985
1024
|
};
|
|
986
1025
|
},
|
|
@@ -1026,11 +1065,12 @@ const expenseAutomationTransactionsView = createSlice({
|
|
|
1026
1065
|
},
|
|
1027
1066
|
},
|
|
1028
1067
|
backgroundRefetchReviewTab: {
|
|
1029
|
-
prepare(period, isUncategorizedExpenseCategoryEnabled) {
|
|
1068
|
+
prepare(period, isUncategorizedExpenseCategoryEnabled, reviewStatuses) {
|
|
1030
1069
|
return {
|
|
1031
1070
|
payload: {
|
|
1032
1071
|
period,
|
|
1033
1072
|
isUncategorizedExpenseCategoryEnabled,
|
|
1073
|
+
reviewStatuses,
|
|
1034
1074
|
},
|
|
1035
1075
|
};
|
|
1036
1076
|
},
|