@zeniai/client-epic-state 5.0.95-betaAK1 → 5.0.95-betaML1

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.
Files changed (85) hide show
  1. package/lib/commonStateTypes/amount.d.ts +0 -1
  2. package/lib/commonStateTypes/amount.js +1 -9
  3. package/lib/commonStateTypes/workingDayHelper.d.ts +0 -9
  4. package/lib/commonStateTypes/workingDayHelper.js +1 -28
  5. package/lib/entity/tenant/clearAllEpic.d.ts +1 -3
  6. package/lib/entity/tenant/clearAllEpic.js +0 -4
  7. package/lib/epic.d.ts +1 -7
  8. package/lib/epic.js +1 -7
  9. package/lib/esm/commonStateTypes/amount.js +0 -7
  10. package/lib/esm/commonStateTypes/workingDayHelper.js +0 -26
  11. package/lib/esm/entity/tenant/clearAllEpic.js +0 -4
  12. package/lib/esm/epic.js +1 -7
  13. package/lib/esm/index.js +4 -9
  14. package/lib/esm/reducer.js +0 -6
  15. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/initializeTransactionCategorizationLocalDataEpic.js +15 -0
  16. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +63 -5
  17. package/lib/esm/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +12 -3
  18. package/lib/esm/view/recommendation/recommendationReducer.js +18 -1
  19. package/lib/esm/view/recommendation/recommendationStaleResponseHelper.js +26 -0
  20. package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +2 -22
  21. package/lib/esm/view/transactionDetail/epics/initializeTransactionDetailLocalDataEpic.js +7 -0
  22. package/lib/esm/view/transactionDetail/transactionDetailReducer.js +44 -3
  23. package/lib/index.d.ts +5 -14
  24. package/lib/index.js +4 -23
  25. package/lib/reducer.d.ts +0 -6
  26. package/lib/reducer.js +0 -6
  27. package/lib/view/expenseAutomationView/epics/transactionCategorization/initializeTransactionCategorizationLocalDataEpic.d.ts +2 -1
  28. package/lib/view/expenseAutomationView/epics/transactionCategorization/initializeTransactionCategorizationLocalDataEpic.js +15 -0
  29. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +63 -5
  30. package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.d.ts +2 -2
  31. package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +10 -1
  32. package/lib/view/recommendation/recommendationReducer.d.ts +3 -1
  33. package/lib/view/recommendation/recommendationReducer.js +19 -2
  34. package/lib/view/recommendation/recommendationStaleResponseHelper.d.ts +7 -0
  35. package/lib/view/recommendation/recommendationStaleResponseHelper.js +30 -0
  36. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.d.ts +1 -8
  37. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +1 -21
  38. package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +0 -22
  39. package/lib/view/transactionDetail/epics/initializeTransactionDetailLocalDataEpic.d.ts +2 -1
  40. package/lib/view/transactionDetail/epics/initializeTransactionDetailLocalDataEpic.js +7 -0
  41. package/lib/view/transactionDetail/transactionDetailReducer.js +44 -3
  42. package/lib/zeniAPI.d.ts +0 -1
  43. package/package.json +1 -1
  44. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +0 -29
  45. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +0 -78
  46. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +0 -47
  47. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +0 -47
  48. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +0 -34
  49. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +0 -32
  50. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +0 -54
  51. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +0 -92
  52. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +0 -225
  53. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +0 -10
  54. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +0 -23
  55. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +0 -36
  56. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +0 -27
  57. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +0 -28
  58. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.d.ts +0 -47
  59. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +0 -34
  60. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.d.ts +0 -23
  61. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +0 -82
  62. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.d.ts +0 -40
  63. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +0 -51
  64. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.d.ts +0 -37
  65. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +0 -53
  66. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.d.ts +0 -14
  67. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +0 -38
  68. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.d.ts +0 -7
  69. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +0 -36
  70. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +0 -56
  71. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +0 -60
  72. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +0 -22
  73. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +0 -96
  74. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +0 -59
  75. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +0 -230
  76. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +0 -122
  77. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +0 -13
  78. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +0 -7
  79. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +0 -27
  80. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +0 -9
  81. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +0 -40
  82. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.d.ts +0 -7
  83. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +0 -31
  84. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.d.ts +0 -15
  85. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +0 -32
package/lib/index.d.ts CHANGED
@@ -38,7 +38,7 @@ import { TimeframeTick, TimeframeTickWithMetaData, mapTimePeriodtoTimeframeTick,
38
38
  import { AgingDateSelectionType, AgingDetailReportInvoice, AgingDetailReportUIState, AgingReportId, AgingReportInvoice, AgingReportSortKey, AgingReportUIState } from './commonStateTypes/viewAndReport/agingReportStateTypes';
39
39
  import { isAgingReport, isCashFlowOrBalanceSheetReport, isDashboardClassesViewReport, isDashboardReport, isFluxAnalysisOpExReport, isOpExByVendorReport, isPAndLClassesViewReport, isPAndLProjectViewReport, isPAndLReport } from './commonStateTypes/viewAndReport/reportIDHelper';
40
40
  import { PageToken, Report, ReportFormat, ReportID, ReportIDPlusForecastID, SelectorReport, SelectorView, View, toReportFormatStrict, toReportID } from './commonStateTypes/viewAndReport/viewAndReport';
41
- import { PAYMENT_BUSINESS_DAYS, filterDays, getNextNthWorkingDay, getNextTransferDate, getPreviousNthWorkingDay, getYearsList, holidaysFormatted, isHoliday, isHolidayToday } from './commonStateTypes/workingDayHelper';
41
+ import { PAYMENT_BUSINESS_DAYS, filterDays, getNextNthWorkingDay, getPreviousNthWorkingDay, getYearsList, holidaysFormatted, isHoliday, isHolidayToday } from './commonStateTypes/workingDayHelper';
42
42
  import { AccountFilterOption, AccountReport, AccountWithBalanceReport, getAllAccounts, getTransactionFilterAccountOptions } from './entity/account/accountSelector';
43
43
  import { Account, AccountBase, AccountType, RecommendedAccountBase, ReconciliationAccountSourceType, StatementCloseDay, toAccountType, toReconciliationAccountSource } from './entity/account/accountState';
44
44
  import { NestedAccountReport } from './entity/account/subAccountSelector';
@@ -374,7 +374,7 @@ import { ProfitAndLossProjectViewReport } from './view/profitAndLossProjectView/
374
374
  import { ProfitAndLossProjectViewUIState } from './view/profitAndLossProjectView/profitAndLossProjectViewState';
375
375
  import { fetchProjectList } from './view/projectList/projectListReducer';
376
376
  import { ProjectListSelectorView, getProjectList } from './view/projectList/projectListSelector';
377
- import { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName } from './view/recommendation/recommendationReducer';
377
+ import { cancelEntityRecommendationsForLineUpdate, fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName } from './view/recommendation/recommendationReducer';
378
378
  import { clearReferrals, fetchReferrals, fetchRewardsPlan, resendReferralInvite, saveReferralFormDataInLocalStore, sendReferralInvite, updateReferViewed, updateReferralListSortUiState } from './view/referralView/referralReducer';
379
379
  import { ReferralListSelectorView, RewardsPlanCardReport, getInviteFormView, getReferralListView, getRewardsPlanCard } from './view/referralView/referralSelector';
380
380
  import { AmountStatusTypes, InviteCompanyLocalData, ReferralAmountStatus, ReferralInvitation, ReferralListViewSortKey, ReferralStatus, ReferralViewState, ReferralViewUIState, RewardsPlanData, StatusTypes, toReferralListViewSortKeyType } from './view/referralView/referralState';
@@ -830,7 +830,7 @@ export { Merchant };
830
830
  export { fetchEditRemiDetailPage, fetchRecommendationsAndUpdateMerchantRecommendations, fetchRemiAndInitializeLocalStore, initializeRemiToLocalStore, saveRemiUpdatesToLocalStore, fetchCurrencyConversionValue, discardRemiUpdatesInLocalStore, removeFileFromRemiUpdatesInLocalStore, saveRemiDetail, saveRemiSuccessOrFailure, parseReceiptsToRemi, clearEditRemiViewDetail, updateAddRemiAutoFields, updateUploadFetchState, updateTentativeMerchantNames, clearTentativeMerchantName, updateReimbursementType, updateHomeCurrencyConversion, clearAddRemiAutoFields, };
831
831
  export { AnimationFileName };
832
832
  export { reduceFetchState, reduceFetchStateParallelTimeframes, reduceAnyFetchState, reduceAllFetchState, reduceAnyCompletedFetchState, isAnyFetchInProgress, isAllFetchCompleted, SortOrder, ALL_FILE_TYPES, FileType, toFileTypeStrict, };
833
- export { getNextNthWorkingDay, getNextTransferDate, getPreviousNthWorkingDay, isHolidayToday, filterDays, getYearsList, isHoliday, holidaysFormatted, PAYMENT_BUSINESS_DAYS, };
833
+ export { getNextNthWorkingDay, getPreviousNthWorkingDay, isHolidayToday, filterDays, getYearsList, isHoliday, holidaysFormatted, PAYMENT_BUSINESS_DAYS, };
834
834
  export { CustomerRatingCodeType, TeamRatingCodeType };
835
835
  export { CustomerSatisfactionInfo };
836
836
  export { fetchCompanyOnboardingView, fetchQBOConnectionPool, updateQBOConnectionPoolExternalConnection, fetchOnboardingCompletedCompanies, saveOnboardingCustomerCompletedStatus, ProductType, ProductGroupType, toProductType, toProductTypeStrict, ProductInfo, getOnboardingCockpitView, getNewOnboardingCustomerView, getOnboardingEmailGroup, initializeOnboardingCustomerViewUpdateData, clearOnboardingCustomerViewUpdateData, saveOnboardingCustomerViewUpdateData, updateOnboardingCustomerListUIState, updateCustomerCreationStatus, updateStatusAfterOnboardingCompleted, saveOnboardingCustomerViewUpdates, saveOnboardingCustomerNotes, saveOnboardingCustomerDataInLocalStore, updateOnboardingCustomerDataInLocalStore, NewOnboardingCustomer, OnboardingCustomer, OnboardingCockpitView, NewOnboardingCustomerView, NewOnboardingCustomerLocalData, OnboardingCustomerCompletedStatus, OnboardingCustomerListUIState, QBOConnectionPool, CustomerCreationStatus, OnboardingCompanyDetails, resetNewOnboardedCustomerId, sendOnboardingCustomerViewInvite, retryBankAccountConnectionForOnboarding, };
@@ -848,7 +848,7 @@ export { Filing1099TinType };
848
848
  export { BillPayCardReport };
849
849
  export { ReimbursementCardReport };
850
850
  export { VendorListViewSortKey, VendorViewUIState, VendorListSelectorView, VendorListQuery, getVendorList, VendorListView, updateSortUiState, updatePageToken, updateYTDSelectionUIState, VendorListViewYTDSpendSortKey, isColumnYTDSpend, isVendorsTabVisible, VendorViewType, VendorReportIDType, toVendorReportIDType, VendorFiling1099ListSelectorView, getVendorFiling1099List, VendorFiling1099ListViewSortKey, VendorFiling1099ViewUIState, VendorFiling1099DownloadData, fetchVendorsFiling1099Download, Type1099Download, VendorFiling1099DownloadDataForType, };
851
- export { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
851
+ export { cancelEntityRecommendationsForLineUpdate, fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
852
852
  export type { FetchEntityRecommendationsForLineUpdatePayload, RecommendationLineUpdateFlowType, } from './view/recommendation/recommendationReducer';
853
853
  export { fetchOwnerList };
854
854
  export { ZeniAccountsConfigSelectorView, getZeniAccountsConfigDetail, ZeniAccountListSelectorView, getZeniAccountList, fetchZeniAccountList, fetchAccountList, DepositAccount, createCheckingAccount, fetchPaymentAccountList, unlinkPaymentAccount, getDepositAccountDetail, DepositAccountDetailSelectorView, DepositAccountListSelectorView, getAllDepositAccounts, getDepositAccountDetailForPDF, DepositAccountDetailForPDF, fetchDepositAccount, fetchZeniAccountsConfig, AccountHistoryWithBalances, TransferDetailLocalData, ReviewTransferDetail, updateTransferMoneyLocalData, updateTransferToLocalData, updateDepositToLocalData, transferMoney, getTransferDetail, TransferDetailSelectorView, clearTransferDetail, clearReviewTransferDetail, fetchReviewTransferDetail, fetchDepositAccountDetail, DepositAccountTransaction, DepositAccountWithAutoTransferRules, DepositTransactionStatusCode, DepositTransactionStatus, CheckDepositLocalData, depositCheck, updateCheckDepositLocalData, clearCheckDeposit, CheckDepositSelectorView, getCheckDepositDetail, updateDepositAccount, fetchDepositAccountHistorySuccess, fetchDepositAccountHistoryFailure, DepositAccountUpdateType, ZeniAccountSummaryWithBalance, fetchZeniAccStatementPage, getZeniAccStatements, ZeniAccStatementsSelectorView, ZeniAccountPaymentMethod, };
@@ -965,7 +965,7 @@ export { TreasuryTaxLettersSelectorView, getTreasuryTaxLetters, } from './view/s
965
965
  export { TreasuryTransactionStatus } from './view/spendManagement/treasury/treasuryList/treasuryDetailPayload';
966
966
  export { fetchAutoTransferRules, createAutoTransferRule, updateAutoTransferRule, deleteAutoTransferRule, fetchAutoTransferRuleHistory, fetchAutoTransferReviewDetail, updateRuleLocalData, clearRuleUpdateLocalData, } from './view/spendManagement/autotransferRules/autoTransferRulesReducer';
967
967
  export { AutoTransferRulesSelectorView, getAutoTransferRules, getAutoTransferRuleById, getAutoTransferRuleHistory, } from './view/spendManagement/autotransferRules/autoTransferRulesSelector';
968
- export { AutoTransferRule, CashManagementRule, } from './view/spendManagement/autotransferRules/autoTransferRulesState';
968
+ export { AutoTransferRule } from './view/spendManagement/autotransferRules/autoTransferRulesState';
969
969
  export { AutoTransferRuleType, AutoTransferRuleFrequency, AutoTransferRuleLocalData, } from './view/spendManagement/autotransferRules/autoTransferRulesPayload';
970
970
  export type { TransactionActivityLog } from './entity/transactionActivityLog/transactionActivityLogState';
971
971
  export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS, } from './view/expenseAutomationView/helpers/bulkUploadTiming';
@@ -975,12 +975,3 @@ export { UserGroup } from './entity/userGroups/userGroupsState';
975
975
  export { SessionManager } from './entity/tenant/SessionManager';
976
976
  export type { SessionCallbacks, SessionConfig, } from './entity/tenant/sessionTypes';
977
977
  export { DEFAULT_SESSION_CONFIG } from './entity/tenant/sessionTypes';
978
- export { fetchCashManagementBanner, fetchCashManagementOverviewPage, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer';
979
- export { clearAutoSweepFlow, saveAutoSweepSettings, updateAutoSweepDraft, updateAutoSweepRisk, updateAutoSweepSettingsFetchStatus, updateCashManagementSettings, updateCashManagementSettingsFetchStatus, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer';
980
- export { getAutoSweepFlow } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector';
981
- export type { AutoSweepFlowFormData, AutoSweepFlowSelectorView, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector';
982
- export { RISK_BUFFER_AMOUNT, bufferAmountToRisk, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState';
983
- export type { AutoSweepFlowState, AutoSweepFrequency, RiskLevel, } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState';
984
- export { getCashManagementOverview, getCashManagementOverviewBanner, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector';
985
- export type { CashManagementOverviewBannerSelectorView, CashManagementOverviewSelectorView, CashProjectionPoint, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector';
986
- export type { CashManagementScenario, CashManagementTransfer, CashManagementTransferStatus, UpcomingPaymentEvent, UpcomingPaymentEventAccountType, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState';
package/lib/index.js CHANGED
@@ -58,8 +58,8 @@ exports.deleteBill = exports.updateApprovalStatusOnSuccess = exports.approveOrRe
58
58
  exports.updatePaymentAccount = exports.updateBusinessVerificationDetails = exports.updateSetupViewLocalStoreData = exports.updateSelectedCompanyOfficer = exports.getPlaidLinkToken = exports.getPaymentAccounts = exports.enableSetup = exports.fetchZeniAccountSetupView = exports.fetchBillPaySetupView = exports.applyTransactionFilters = exports.TRANSACTION_FILTER_CATEGORIES = exports.hideCreatedByFilter = exports.updateShouldReplaceBillData = exports.replaceBillFileInLocalStore = exports.removeBillFileFromLocalStore = exports.updateWithdrawFromAccountId = exports.markBillForRetry = exports.fetchVendorAndUpdateBillLocalData = exports.convertAmountToHomeCurrency = exports.toPaymentToOption = exports.updateVendorContact = exports.verifyUser = exports.fetchUserDetails = exports.updateBillListSearchResult = exports.updateBillUploadFetchState = exports.updateContactsInVendorTabDetailLocalData = exports.updateVendorTabDetailUIState = exports.updateContactsInVendorDetailLocalData = exports.resetVendorSaveStatus = exports.resetVendorDetailLocalData = exports.updateVendorDetailLocalData = exports.BILL_PAY_FILTER_CATEGORIES = exports.updateBillListUIState = exports.saveVendorSuccessOrFailure = exports.updateShowAutofill = exports.fetchBillAndInitializeLocalStore = exports.getReviewPageBillDetail = exports.getEditBillDetail = exports.clearBillPayReview = exports.fetchDuplicateBill = exports.fetchAndUpdateVendorRecommendations = exports.fetchEditBillDetailPage = exports.fetchBillDetail = exports.getBillTransactionDetailKey = exports.checkApproveRejectBtnShowForBill = exports.getBillDetailView = exports.getBillDownloadList = exports.getBillList = exports.retryOrRefundBill = exports.cancelAndDeleteBill = void 0;
59
59
  exports.toRoleTypeStrict = exports.toAttributeOrRoleTypeStrict = exports.toAttributeTypeStrict = exports.isAccessDeniedError = exports.isInvalidSessionError = exports.isSuccessResponse = exports.VERIFIED_PAYMENT_ACCOUNT_PROVIDER_VERIFICATION_STATUS = exports.getRemiBusinessVerificationDetails = exports.getRemiSetupViewDetails = exports.clearRemiSetupView = exports.acceptEmployeeRemiTerms = exports.acceptRemiTerms = exports.saveRemiSetupViewDataInLocalStore = exports.updateMileageDetails = exports.fetchRemiSetupView = exports.getUserFinancialAccount = exports.fetchUserFinancialAccount = exports.getIntegrationsView = exports.getBankConnectionsSetupViewDetails = exports.getApprovalRuleViewDetails = exports.getTwoFactorAuthenticationViewForChargeCardHolder = exports.getTwoFactorAuthenticationViewForCardUserOnboarding = exports.getTwoFactorAuthenticationView = exports.getCommonSetupViewDetails = exports.getTreasuryBusinessVerificationDetails = exports.getZeniAccountBusinessVerificationDetails = exports.getBillPayBusinessVerificationDetails = exports.getBusinessVerificationDetails = exports.getZeniAccountSetupViewDetails = exports.getPlaidAccountDetails = exports.getBillPaySetupViewDetails = exports.verifyOtp = exports.resendOtp = exports.sendOtp = exports.clearZeniAccountSetupView = exports.clearBillPaySetupView = exports.clearSetupViewDataInLocalStore = exports.saveIndustryAndIncDateInLocalStore = exports.saveTreasuryAdditionalDocumentsInLocalStore = exports.saveCompnayOfficerAdditionalDocumentsInLocalStore = exports.saveCompnayOfficerPhoneInLocalStore = exports.saveSetupViewDataInLocalStore = exports.acceptBillPayUpdatedTerms = exports.acceptZeniAccountTerms = exports.acceptBillPayTerms = exports.updatePrimaryFundingAccount = exports.updateMappedCashAccount = exports.establishPlaidConnection = exports.updatePaymentAccountStatus = exports.updatePaymentAccountLoginStatus = void 0;
60
60
  exports.updateAddRemiAutoFields = exports.clearEditRemiViewDetail = exports.parseReceiptsToRemi = exports.saveRemiSuccessOrFailure = exports.saveRemiDetail = exports.removeFileFromRemiUpdatesInLocalStore = exports.discardRemiUpdatesInLocalStore = exports.fetchCurrencyConversionValue = exports.saveRemiUpdatesToLocalStore = exports.initializeRemiToLocalStore = exports.fetchRemiAndInitializeLocalStore = exports.fetchRecommendationsAndUpdateMerchantRecommendations = exports.fetchEditRemiDetailPage = exports.getEditRemiDetail = exports.removeDuplicateReimbursementByLineId = exports.clearDuplicateReimbursementDetail = exports.fetchDuplicateReimbursement = exports.clearRemiDetailView = exports.approveOrRejectRemi = exports.cancelAndDeleteRemi = exports.fetchRemiDetail = exports.deleteRemi = exports.updateIsEditModeRealTimeApprovals = exports.saveRealTimeApproval = exports.checkApproveRejectBtnShowForRemi = exports.getRemiDetailView = exports.clearRemiSetupApproverView = exports.clearRemiSetupApproverViewUpdateData = exports.setRemiSetupApproverViewListeningToPusherEvent = exports.initializeRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdates = exports.saveRemiSetupApproverViewUpdateData = exports.deleteRemiApprovalRule = exports.fetchRemiApproversDetails = exports.fetchRemiApproversList = exports.fetchRemiSetupApproverView = exports.getRemiSetupApproverUpdateDataView = exports.getRemiSetupApproverView = exports.clearBillPaySetupApproverView = exports.clearBillPaySetupApproverViewUpdateData = exports.initializeBillPaySetupApproverViewUpdateData = exports.setBillsSetupApproverViewListeningToPusherEvent = exports.saveBillPaySetupApproverViewUpdates = exports.saveBillPaySetupApproverViewUpdateData = exports.deleteBillPayApprovalRule = exports.fetchBillPayApproversList = exports.fetchBillPayApproversDetails = exports.fetchBillPaySetupApproverView = exports.getBillPaySetupApproverUpdateDataView = exports.getBillPaySetupApproverView = void 0;
61
- exports.getChangedLineItemCountFromLocalData = exports.getTransactionListUIStateByCategoryType = exports.getTransactionsListByCategoryType = exports.retryBankAccountConnectionForOnboarding = exports.sendOnboardingCustomerViewInvite = exports.resetNewOnboardedCustomerId = exports.updateOnboardingCustomerDataInLocalStore = exports.saveOnboardingCustomerDataInLocalStore = exports.saveOnboardingCustomerNotes = exports.saveOnboardingCustomerViewUpdates = exports.updateStatusAfterOnboardingCompleted = exports.updateCustomerCreationStatus = exports.updateOnboardingCustomerListUIState = exports.saveOnboardingCustomerViewUpdateData = exports.clearOnboardingCustomerViewUpdateData = exports.initializeOnboardingCustomerViewUpdateData = exports.getOnboardingEmailGroup = exports.getNewOnboardingCustomerView = exports.getOnboardingCockpitView = exports.toProductTypeStrict = exports.toProductType = exports.saveOnboardingCustomerCompletedStatus = exports.fetchOnboardingCompletedCompanies = exports.updateQBOConnectionPoolExternalConnection = exports.fetchQBOConnectionPool = exports.fetchCompanyOnboardingView = exports.PAYMENT_BUSINESS_DAYS = exports.holidaysFormatted = exports.isHoliday = exports.getYearsList = exports.filterDays = exports.isHolidayToday = exports.getPreviousNthWorkingDay = exports.getNextTransferDate = exports.getNextNthWorkingDay = exports.toFileTypeStrict = exports.ALL_FILE_TYPES = exports.isAllFetchCompleted = exports.isAnyFetchInProgress = exports.reduceAnyCompletedFetchState = exports.reduceAllFetchState = exports.reduceAnyFetchState = exports.reduceFetchStateParallelTimeframes = exports.reduceFetchState = exports.clearAddRemiAutoFields = exports.updateHomeCurrencyConversion = exports.updateReimbursementType = exports.clearTentativeMerchantName = exports.updateTentativeMerchantNames = exports.updateUploadFetchState = void 0;
62
- exports.getZeniAccountList = exports.getZeniAccountsConfigDetail = exports.fetchOwnerList = exports.fetchRecommendationByEntityName = exports.fetchRecommendationByEntityId = exports.fetchEntityRecommendationsForLineUpdate = exports.fetchEntityRecommendationsByTransactionId = exports.fetchVendorsFiling1099Download = exports.getVendorFiling1099List = exports.toVendorReportIDType = exports.isVendorsTabVisible = exports.isColumnYTDSpend = exports.updateYTDSelectionUIState = exports.updatePageToken = exports.updateSortUiState = exports.getVendorList = exports.LOCAL_CURRENCY_INTERNATIONAL_METHOD_SUBTEXT = exports.SWIFT_OUR_INTERNATIONAL_METHOD_SUBTEXT = exports.NEW_INTERNATIONAL_METHOD_SUBTEXT = exports.BILL_NEW_PAYMENT_METHODS = exports.getInternationalSubConfigCodeKey = exports.shouldEnableCalendarPickerForLastReportSent = exports.canSendMonthEndEmailReport = exports.checkIfLowBalance = exports.isAwaitingMarkAsPaid = exports.isPaymentMethodOutsideZeni = exports.toSameDayAchDisablementConfig = exports.toAccountsPromoConfig = exports.getBulkOperationSuffix = exports.getRemiListUniqueType = exports.getBillListUniqueType = exports.isBulkProcessing = exports.isVerifiedPaymentAccountProviderStatusCode = exports.isVerifiedStatusCode = exports.getActualPaymentDate = exports.showReimbursementPromoPage = exports.showBillPayPromoPage = exports.getSelectedCompanyOfficer = exports.getSpendManagementEffectiveListPeriod = exports.getSnackbar = exports.closeSnackbar = exports.openSnackbar = exports.toJournalEntrySortKey = exports.sumJournalEntryAmounts = exports.sortJournalEntryLines = exports.journalEntryTotalsByPostingSide = exports.journalEntryDefaultSortConfig = exports.filterJournalEntryLinesExcludingLinked = exports.JOURNAL_ENTRY_SORT_KEYS = exports.isAccountUncategorized = void 0;
61
+ exports.isAccountUncategorized = exports.getChangedLineItemCountFromLocalData = exports.getTransactionListUIStateByCategoryType = exports.getTransactionsListByCategoryType = exports.retryBankAccountConnectionForOnboarding = exports.sendOnboardingCustomerViewInvite = exports.resetNewOnboardedCustomerId = exports.updateOnboardingCustomerDataInLocalStore = exports.saveOnboardingCustomerDataInLocalStore = exports.saveOnboardingCustomerNotes = exports.saveOnboardingCustomerViewUpdates = exports.updateStatusAfterOnboardingCompleted = exports.updateCustomerCreationStatus = exports.updateOnboardingCustomerListUIState = exports.saveOnboardingCustomerViewUpdateData = exports.clearOnboardingCustomerViewUpdateData = exports.initializeOnboardingCustomerViewUpdateData = exports.getOnboardingEmailGroup = exports.getNewOnboardingCustomerView = exports.getOnboardingCockpitView = exports.toProductTypeStrict = exports.toProductType = exports.saveOnboardingCustomerCompletedStatus = exports.fetchOnboardingCompletedCompanies = exports.updateQBOConnectionPoolExternalConnection = exports.fetchQBOConnectionPool = exports.fetchCompanyOnboardingView = exports.PAYMENT_BUSINESS_DAYS = exports.holidaysFormatted = exports.isHoliday = exports.getYearsList = exports.filterDays = exports.isHolidayToday = exports.getPreviousNthWorkingDay = exports.getNextNthWorkingDay = exports.toFileTypeStrict = exports.ALL_FILE_TYPES = exports.isAllFetchCompleted = exports.isAnyFetchInProgress = exports.reduceAnyCompletedFetchState = exports.reduceAllFetchState = exports.reduceAnyFetchState = exports.reduceFetchStateParallelTimeframes = exports.reduceFetchState = exports.clearAddRemiAutoFields = exports.updateHomeCurrencyConversion = exports.updateReimbursementType = exports.clearTentativeMerchantName = exports.updateTentativeMerchantNames = exports.updateUploadFetchState = void 0;
62
+ exports.getZeniAccountList = exports.getZeniAccountsConfigDetail = exports.fetchOwnerList = exports.fetchRecommendationByEntityName = exports.fetchRecommendationByEntityId = exports.fetchEntityRecommendationsForLineUpdate = exports.fetchEntityRecommendationsByTransactionId = exports.cancelEntityRecommendationsForLineUpdate = exports.fetchVendorsFiling1099Download = exports.getVendorFiling1099List = exports.toVendorReportIDType = exports.isVendorsTabVisible = exports.isColumnYTDSpend = exports.updateYTDSelectionUIState = exports.updatePageToken = exports.updateSortUiState = exports.getVendorList = exports.LOCAL_CURRENCY_INTERNATIONAL_METHOD_SUBTEXT = exports.SWIFT_OUR_INTERNATIONAL_METHOD_SUBTEXT = exports.NEW_INTERNATIONAL_METHOD_SUBTEXT = exports.BILL_NEW_PAYMENT_METHODS = exports.getInternationalSubConfigCodeKey = exports.shouldEnableCalendarPickerForLastReportSent = exports.canSendMonthEndEmailReport = exports.checkIfLowBalance = exports.isAwaitingMarkAsPaid = exports.isPaymentMethodOutsideZeni = exports.toSameDayAchDisablementConfig = exports.toAccountsPromoConfig = exports.getBulkOperationSuffix = exports.getRemiListUniqueType = exports.getBillListUniqueType = exports.isBulkProcessing = exports.isVerifiedPaymentAccountProviderStatusCode = exports.isVerifiedStatusCode = exports.getActualPaymentDate = exports.showReimbursementPromoPage = exports.showBillPayPromoPage = exports.getSelectedCompanyOfficer = exports.getSpendManagementEffectiveListPeriod = exports.getSnackbar = exports.closeSnackbar = exports.openSnackbar = exports.toJournalEntrySortKey = exports.sumJournalEntryAmounts = exports.sortJournalEntryLines = exports.journalEntryTotalsByPostingSide = exports.journalEntryDefaultSortConfig = exports.filterJournalEntryLinesExcludingLinked = exports.JOURNAL_ENTRY_SORT_KEYS = void 0;
63
63
  exports.updateOnboardingPaymentAccountStatus = exports.updateOnboardingPaymentAccountLoginStatus = exports.updateOnboardingCustomerViewDashboardLoaded = exports.updateOnboardingCustomerViewCompleteStatus = exports.updateOnboardingCustomerViewAccountDetails = exports.establishOnboardingPlaidConnection = exports.getOnboardingPlaidLinkToken = exports.fetchOnboardingCustomerSetupView = exports.fetchOnboardingCustomerView = exports.isZeniClearingAccount = exports.ZENI_CLEARING_ACCOUNT = exports.isZeniClearingAccountReport = exports.getCompanyConfig = exports.fetchCompanyConfig = exports.clearTransactionVendorSaveStatus = exports.resetTransactionVendorLocalData = exports.updateTransactionVendorLocalData = exports.saveTransactionVendorSuccessOrFailure = exports.saveTransactionVendor = exports.getTransactionVendorView = exports.getDepositAccountTransactionList = exports.fetchDepositAccountTransactionList = exports.getZeniAccStatements = exports.fetchZeniAccStatementPage = exports.fetchDepositAccountHistoryFailure = exports.fetchDepositAccountHistorySuccess = exports.updateDepositAccount = exports.getCheckDepositDetail = exports.clearCheckDeposit = exports.updateCheckDepositLocalData = exports.depositCheck = exports.fetchDepositAccountDetail = exports.fetchReviewTransferDetail = exports.clearReviewTransferDetail = exports.clearTransferDetail = exports.getTransferDetail = exports.transferMoney = exports.updateDepositToLocalData = exports.updateTransferToLocalData = exports.updateTransferMoneyLocalData = exports.fetchZeniAccountsConfig = exports.fetchDepositAccount = exports.getDepositAccountDetailForPDF = exports.getAllDepositAccounts = exports.getDepositAccountDetail = exports.unlinkPaymentAccount = exports.fetchPaymentAccountList = exports.createCheckingAccount = exports.fetchAccountList = exports.fetchZeniAccountList = void 0;
64
64
  exports.updateCompanyHealthMetricViewErrorStatus = exports.updateCompanyHealthMetricLocalStore = exports.saveCompanyHealthMetricById = exports.removeSelectedCompanyId = exports.initializeCompanyHealthMetricViewLocalData = exports.fetchCompanyHealthMetricView = exports.clearCompanyHealthMetricView = exports.updateCompanyHealth = exports.updateCompaniesHealth = exports.fetchCompanyHealthMetricConfig = exports.getCompanyHealthMetricConfig = exports.getUserRoleConfig = exports.fetchUserRoleConfig = exports.clearInternationalWire = exports.deletePaymentInstrument = exports.createPaymentInstrumentUpdateStatus = exports.createPaymentInstrument = exports.fetchInternationalWireDynamicForm = exports.initializeDynamicForm = exports.updateInternationalWireLocalStoreData = exports.initializeInternationalWireLocalData = exports.getInternationalWireView = exports.fetchWiseRedirectStatus = exports.getWiseRedirect = exports.saveMagicLinkAddressInLocalStore = exports.fetchMagicLinkBankNameBySwift = exports.fetchMagicLinkBankNameByRouting = exports.updateMagicLinkInternationalBankAccountLocalStoreData = exports.updateMagicLinkBankAccountLocalStoreData = exports.saveBankAccount = exports.fetchBillAttachment = exports.fetchMagicLinkTenant = exports.getMagicLinkCurrentAddressState = exports.getMagicLinkBankAccountView = exports.getMagicLinkView = exports.initializeAccountMappingView = exports.getAccountMappingView = exports.clearAccountMappingLocalData = exports.saveAccountMappingLocalData = exports.saveAccountMapping = exports.getProductSettingsString = exports.getOnboardingCustomerView = exports.clearOnboardingCustomerViewDataInLocalStore = exports.clearOnboardingCustomerView = exports.saveOnboardingCustomerViewDataInLocalStore = exports.saveOnboardingCompnayOfficerPhoneInLocalStore = exports.updateOnboardingCustomerViewUIState = exports.updateCurrentStep = exports.updateOnboardingCustomerViewLocalStoreData = exports.updateOnboardingCustomerView = void 0;
65
65
  exports.getChargeCardControlDetailView = exports.getChargeCardDetailView = exports.fetchDepositAccountLimit = exports.fetchChargeCardTransactionStatistics = exports.fetchChargeCardDetail = exports.fetchChargeCardDetailPage = exports.getCreditAccountDetails = exports.PAYMENT_HISTORY_FILTER_CATEGORIES = exports.getPaymentStatusDisplayText = exports.getPaymentHistorySourceAccountName = exports.getChargeCardPaymentHistoryView = exports.getChargeCardPaymentHistoryDownloadReport = exports.updatePaymentHistoryUIState = exports.updatePaymentHistorySearchText = exports.updatePaymentHistoryFilters = exports.updatePaymentHistoryDownloadUIState = exports.fetchChargeCardPaymentHistory = exports.fetchChargeCardPaymentPage = exports.getChargeCardRepaymentDetail = exports.updateChargeCardRepaymentLocalStore = exports.initiateChargeCardRepayment = exports.fetchChargeCardRepaymentDetail = exports.clearChargeCardRepaymentDetail = exports.getMyRequestOnHoldChargeCardListWithShippingAddress = exports.getMyPendingActivationChargeCardListView = exports.getChargeCardListView = exports.getAllChargeCardsWithUser = exports.fetchCreditAccountRepayment = exports.fetchCreditAccount = exports.fetchChargeCardConfig = exports.fetchChargeCardListPage = exports.fetchChargeCardList = exports.fetchDebitCardSummary = exports.getChargeCardBusinessVerificationDetails = exports.companyHealthMetricDropDownOptions = exports.hasCompanyHealthMetricFormFieldChanged = exports.getCompanyHealthMetricView = exports.isCompanyRunwayInfinite = exports.attachmentFilePathToAttachment = exports.addDeclinedChargeCardTransactionFromPusher = exports.addChargeCardTransactionFromPusher = exports.updateCreditAccountBalanceFromPusher = exports.updateChargeCardTransactionReceiptFromPusher = exports.updateChargeCardTransactionFromPusher = exports.updateChargeCardTransactionStatusFromPusher = exports.updateChargeCardSpendingFromPusher = exports.updateChargeCardStatusFromPusher = exports.updateChargeCardTransactionAttachments = exports.updateCompanyHealthViewUIState = exports.updateCompanyHealthMetricViewSuccessStatus = void 0;
@@ -74,7 +74,7 @@ exports.deleteChatSession = exports.acceptMasterTOS = exports.fetchChatHistory =
74
74
  exports.fetchCardPolicyVendorOptions = exports.fetchCardPolicyRecommendationFromUpload = exports.fetchCardPolicyMccCategories = exports.extractPolicyDocument = exports.clearPolicyDocumentExtraction = exports.toMessageType = exports.toMessageSender = exports.ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS = exports.toInteractiveFormTypeStrict = exports.toInteractiveFormType = exports.toAiCfoAnswerResponseTypeStrict = exports.toAiCfoAnswerResponseType = exports.toAiCfoAnswerStateTypeStrict = exports.toAiCfoAnswerStateType = exports.toAiCfoChartTypeStrict = exports.toAiCfoChartType = exports.toAiCfoVisualizationTypeStrict = exports.toAiCfoVisualizationType = exports.ALL_INTERACTIVE_FORM_TYPES = exports.ALL_AI_CFO_ANSWER_RESPONSE_TYPES = exports.ALL_AI_CFO_ANSWER_STATE_TYPES = exports.ALL_AI_CFO_VISUALIZATION_TYPES = exports.ALL_AI_CFO_CHARTS_TYPES = exports.getSyntheticAiCfoAnswerByQuestionAnswerId = exports.getSyntheticAiCfoAnswersForChatSession = exports.getAiCfoSelectorView = exports.getAllQuestionsForChatSession = exports.getQuestionAnswerByIdForChatSession = exports.getAllQuestionAnswersForChatSession = exports.clearSyntheticAiCfoAnswers = exports.removeSyntheticAiCfoAnswer = exports.updateSyntheticAiCfoAnswer = exports.appendSyntheticAiCfoAnswer = exports.toAiCfoVisualization = exports.clearAiCfo = exports.clearSession = exports.addQuestionPayload = exports.upsertOrAddQuestionAnswerPayload = exports.upsertAnswerPayload = exports.updateAiCfoAnswerCardPolicyWizardPlan = exports.setSessions = exports.setNewSession = exports.getSuggestedQuestionsForPageContext = exports.getAiCfoView = exports.clearAiCfoSidePanelHostPageContext = exports.applyAiCfoSidePanelHostPageTransition = exports.fetchSuggestedQuestionsFailure = exports.fetchSuggestedQuestionsSuccess = exports.fetchSuggestedQuestions = exports.updateResponseState = void 0;
75
75
  exports.applyExtractedPolicyToAiCardPolicyDraft = exports.toUpdateCardPolicyTemplateRequestBody = exports.toExtractedCardPolicyRules = exports.toCreateCardPolicyTemplatesRequestBody = exports.toCreateCardPolicyTemplateRequestBody = exports.toCardPolicyVendorSearchOption = exports.toCardPolicyTemplateList = exports.toCardPolicyTemplate = exports.toCardPolicyStats = exports.toCardPolicyEditFormDraft = exports.toBulkCreateCardPolicyTemplateError = exports.toCardPolicyTemplateStatus = exports.toCardPolicyTemplateMode = exports.ALL_CARD_POLICY_TEMPLATE_STATUSES = exports.ALL_CARD_POLICY_TEMPLATE_MODES = exports.getUploadedPolicyDocumentFileName = exports.getPolicyRecommendationFromUploadFetchState = exports.getPolicyRecommendationFromUploadError = exports.getPolicyRecommendationFromUploadChatSessionId = exports.getPolicyRecommendationFromUploadAnswerId = exports.getPolicyDocumentExtractionFetchState = exports.getPolicyDocumentExtractionError = exports.getExtractedCardPolicyRules = exports.getCardPolicyVendorSearchString = exports.getCardPolicyVendorSearchOptions = exports.getCardPolicyVendorSearchFetchState = exports.getCardPolicyTemplatesByIds = exports.getCardPolicyTemplateById = exports.getCardPolicySuggestedBlockMerchants = exports.getCardPolicySuggestedBlockCategories = exports.getCardPolicySuggestedAllowMerchants = exports.getCardPolicySuggestedAllowCategories = exports.getCardPolicyStats = exports.getCardPolicyMccCategoriesFetchState = exports.getCardPolicyMccCategoriesError = exports.getCardPolicyMccCategories = exports.getAllCardPolicyTemplates = exports.clearCardPolicy = exports.updatePolicyRecommendationFromUploadSuccess = exports.updatePolicyRecommendationFromUploadFailure = exports.updatePolicyDocumentExtractionSuccess = exports.updatePolicyDocumentExtractionFailure = exports.updateCreatedCardPolicyTemplate = exports.updateCardPolicyVendorOptionsFailure = exports.updateCardPolicyVendorOptions = exports.updateCardPolicyTemplates = exports.updateCardPolicyStats = exports.updateCardPolicyMccCategoriesFailure = exports.updateCardPolicyMccCategories = exports.removeCardPolicyTemplate = void 0;
76
76
  exports.updateCardPolicyFetchStatus = exports.updateCardPolicyDetailFetchStatus = exports.updateCardPolicy = exports.fetchCardPolicyDetail = exports.clearCardPolicyDetail = exports.getCardPolicyTemplateIds = exports.getCardPolicyListView = exports.getCardPolicyListFetchState = exports.getArchiveCardPolicyFetchState = exports.updateCardPolicyListFetchStatus = exports.updateArchiveCardPolicyFetchStatus = exports.fetchCardPolicyList = exports.clearCardPolicyList = exports.archiveCardPolicy = exports.toManualCardPolicyTemplateRequestFromDraft = exports.toBulkCardPolicyTemplateRequestsFromDraft = exports.toCardPolicyTemplateRequestFromDraft = exports.applyAiCardPolicyFormDraftUpdate = exports.deriveAiPolicyReviewRowsFromInputs = exports.buildManualCardPolicyFormDraftSeed = exports.buildUploadReviewRows = exports.buildEmptyLimitRows = exports.buildAiCardPolicyFormDraftSeed = exports.toVendorChipFieldValue = exports.toMccCategoryChipFieldValue = exports.buildVendorChipId = exports.buildMccCategoryChipId = exports.VENDOR_CHIP_ID_PREFIX = exports.MCC_CHIP_ID_PREFIX = exports.toMccCategoryLike = exports.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION = exports.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT = exports.getManualCardPolicyFormDraft = exports.getLastCreatedCardPolicyTemplateIds = exports.getLastCreatedCardPolicyTemplateId = exports.getLastCreateCardPolicyTemplateErrors = exports.getLastCreateCardPolicySourceChatSessionId = exports.getCreateCardPolicyTemplateRequestState = exports.getAiCardPolicyFormDraft = exports.updateManualCardPolicyFormDraft = exports.updateCreateCardPolicyTemplateRequestState = exports.updateAiCardPolicyFormDraftFromUploadPlan = exports.updateAiCardPolicyFormDraft = exports.seedManualCardPolicyFormDraft = exports.seedAiCardPolicyFormDraft = exports.createCardPolicyTemplates = exports.clearManualCardPolicyFormDraft = exports.clearCreateCardPolicy = exports.clearAiCardPolicyFormDraft = exports.applyExtractedPolicyToManualCardPolicyDraft = void 0;
77
- exports.getCashManagementOverviewBanner = exports.getCashManagementOverview = exports.bufferAmountToRisk = exports.RISK_BUFFER_AMOUNT = exports.getAutoSweepFlow = exports.updateCashManagementSettingsFetchStatus = exports.updateCashManagementSettings = exports.updateAutoSweepSettingsFetchStatus = exports.updateAutoSweepRisk = exports.updateAutoSweepDraft = exports.saveAutoSweepSettings = exports.clearAutoSweepFlow = exports.fetchCashManagementOverviewPage = exports.fetchCashManagementBanner = exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = exports.getTransactionActivityLogView = exports.fetchTransactionActivityLog = exports.BULK_UPLOAD_BAR_COMPLETE_HOLD_MS = exports.BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS = exports.getAutoTransferRuleHistory = exports.getAutoTransferRuleById = exports.getAutoTransferRules = exports.clearRuleUpdateLocalData = exports.updateRuleLocalData = exports.fetchAutoTransferReviewDetail = exports.fetchAutoTransferRuleHistory = exports.deleteAutoTransferRule = exports.updateAutoTransferRule = exports.createAutoTransferRule = exports.fetchAutoTransferRules = exports.getTreasuryTaxLetters = exports.fetchTreasuryTaxLetterList = exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryTransactionList = exports.fetchTreasuryOverviewDetail = exports.getUpdateCardPolicyFetchState = exports.getCardPolicyFormDraft = exports.getCardPolicyDetailView = exports.getCardPolicyDetailFetchState = exports.updateCardPolicyFormDraft = void 0;
77
+ exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = exports.getTransactionActivityLogView = exports.fetchTransactionActivityLog = exports.BULK_UPLOAD_BAR_COMPLETE_HOLD_MS = exports.BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS = exports.getAutoTransferRuleHistory = exports.getAutoTransferRuleById = exports.getAutoTransferRules = exports.clearRuleUpdateLocalData = exports.updateRuleLocalData = exports.fetchAutoTransferReviewDetail = exports.fetchAutoTransferRuleHistory = exports.deleteAutoTransferRule = exports.updateAutoTransferRule = exports.createAutoTransferRule = exports.fetchAutoTransferRules = exports.getTreasuryTaxLetters = exports.fetchTreasuryTaxLetterList = exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryTransactionList = exports.fetchTreasuryOverviewDetail = exports.getUpdateCardPolicyFetchState = exports.getCardPolicyFormDraft = exports.getCardPolicyDetailView = exports.getCardPolicyDetailFetchState = exports.updateCardPolicyFormDraft = void 0;
78
78
  const allowedValue_1 = require("./commonStateTypes/allowedValue");
79
79
  Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
80
80
  Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
@@ -168,7 +168,6 @@ const workingDayHelper_1 = require("./commonStateTypes/workingDayHelper");
168
168
  Object.defineProperty(exports, "PAYMENT_BUSINESS_DAYS", { enumerable: true, get: function () { return workingDayHelper_1.PAYMENT_BUSINESS_DAYS; } });
169
169
  Object.defineProperty(exports, "filterDays", { enumerable: true, get: function () { return workingDayHelper_1.filterDays; } });
170
170
  Object.defineProperty(exports, "getNextNthWorkingDay", { enumerable: true, get: function () { return workingDayHelper_1.getNextNthWorkingDay; } });
171
- Object.defineProperty(exports, "getNextTransferDate", { enumerable: true, get: function () { return workingDayHelper_1.getNextTransferDate; } });
172
171
  Object.defineProperty(exports, "getPreviousNthWorkingDay", { enumerable: true, get: function () { return workingDayHelper_1.getPreviousNthWorkingDay; } });
173
172
  Object.defineProperty(exports, "getYearsList", { enumerable: true, get: function () { return workingDayHelper_1.getYearsList; } });
174
173
  Object.defineProperty(exports, "holidaysFormatted", { enumerable: true, get: function () { return workingDayHelper_1.holidaysFormatted; } });
@@ -1188,6 +1187,7 @@ Object.defineProperty(exports, "fetchProjectList", { enumerable: true, get: func
1188
1187
  const projectListSelector_1 = require("./view/projectList/projectListSelector");
1189
1188
  Object.defineProperty(exports, "getProjectList", { enumerable: true, get: function () { return projectListSelector_1.getProjectList; } });
1190
1189
  const recommendationReducer_1 = require("./view/recommendation/recommendationReducer");
1190
+ Object.defineProperty(exports, "cancelEntityRecommendationsForLineUpdate", { enumerable: true, get: function () { return recommendationReducer_1.cancelEntityRecommendationsForLineUpdate; } });
1191
1191
  Object.defineProperty(exports, "fetchEntityRecommendationsByTransactionId", { enumerable: true, get: function () { return recommendationReducer_1.fetchEntityRecommendationsByTransactionId; } });
1192
1192
  Object.defineProperty(exports, "fetchEntityRecommendationsForLineUpdate", { enumerable: true, get: function () { return recommendationReducer_1.fetchEntityRecommendationsForLineUpdate; } });
1193
1193
  Object.defineProperty(exports, "fetchRecommendationByEntityId", { enumerable: true, get: function () { return recommendationReducer_1.fetchRecommendationByEntityId; } });
@@ -2515,22 +2515,3 @@ var SessionManager_1 = require("./entity/tenant/SessionManager");
2515
2515
  Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return SessionManager_1.SessionManager; } });
2516
2516
  var sessionTypes_1 = require("./entity/tenant/sessionTypes");
2517
2517
  Object.defineProperty(exports, "DEFAULT_SESSION_CONFIG", { enumerable: true, get: function () { return sessionTypes_1.DEFAULT_SESSION_CONFIG; } });
2518
- var cashManagementOverviewReducer_1 = require("./view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer");
2519
- Object.defineProperty(exports, "fetchCashManagementBanner", { enumerable: true, get: function () { return cashManagementOverviewReducer_1.fetchCashManagementBanner; } });
2520
- Object.defineProperty(exports, "fetchCashManagementOverviewPage", { enumerable: true, get: function () { return cashManagementOverviewReducer_1.fetchCashManagementOverviewPage; } });
2521
- var autoSweepFlowReducer_1 = require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer");
2522
- Object.defineProperty(exports, "clearAutoSweepFlow", { enumerable: true, get: function () { return autoSweepFlowReducer_1.clearAutoSweepFlow; } });
2523
- Object.defineProperty(exports, "saveAutoSweepSettings", { enumerable: true, get: function () { return autoSweepFlowReducer_1.saveAutoSweepSettings; } });
2524
- Object.defineProperty(exports, "updateAutoSweepDraft", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateAutoSweepDraft; } });
2525
- Object.defineProperty(exports, "updateAutoSweepRisk", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateAutoSweepRisk; } });
2526
- Object.defineProperty(exports, "updateAutoSweepSettingsFetchStatus", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateAutoSweepSettingsFetchStatus; } });
2527
- Object.defineProperty(exports, "updateCashManagementSettings", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateCashManagementSettings; } });
2528
- Object.defineProperty(exports, "updateCashManagementSettingsFetchStatus", { enumerable: true, get: function () { return autoSweepFlowReducer_1.updateCashManagementSettingsFetchStatus; } });
2529
- var autoSweepFlowSelector_1 = require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector");
2530
- Object.defineProperty(exports, "getAutoSweepFlow", { enumerable: true, get: function () { return autoSweepFlowSelector_1.getAutoSweepFlow; } });
2531
- var autoSweepFlowState_1 = require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState");
2532
- Object.defineProperty(exports, "RISK_BUFFER_AMOUNT", { enumerable: true, get: function () { return autoSweepFlowState_1.RISK_BUFFER_AMOUNT; } });
2533
- Object.defineProperty(exports, "bufferAmountToRisk", { enumerable: true, get: function () { return autoSweepFlowState_1.bufferAmountToRisk; } });
2534
- var cashManagementOverviewSelector_1 = require("./view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector");
2535
- Object.defineProperty(exports, "getCashManagementOverview", { enumerable: true, get: function () { return cashManagementOverviewSelector_1.getCashManagementOverview; } });
2536
- Object.defineProperty(exports, "getCashManagementOverviewBanner", { enumerable: true, get: function () { return cashManagementOverviewSelector_1.getCashManagementOverviewBanner; } });
package/lib/reducer.d.ts CHANGED
@@ -160,8 +160,6 @@ import { InternationalWireVerificationState } from './view/spendManagement/billP
160
160
  import { MagicLinkViewState } from './view/spendManagement/billPay/magicLinkView/magicLinkViewState';
161
161
  import { PreviousBillsState } from './view/spendManagement/billPay/previousBills/previousBillsState';
162
162
  import { WiseRedirectState } from './view/spendManagement/billPay/wiseRedirectView/wiseRedirectState';
163
- import { AutoSweepFlowState } from './view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState';
164
- import { CashManagementOverviewState } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState';
165
163
  import { CardUserOnboardingState } from './view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingState';
166
164
  import { CashbackDetailState } from './view/spendManagement/chargeCards/cashbackDetail/cashbackDetailState';
167
165
  import { ChargeCardConfigState } from './view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigState';
@@ -312,7 +310,6 @@ type ViewsState = {
312
310
  arAgingState: ArAgingState;
313
311
  auditReportViewState: AuditReportViewState;
314
312
  authenticationViewState: AuthenticationViewState;
315
- autoSweepFlowState: AutoSweepFlowState;
316
313
  autotransferRulesState: AutoTransferRulesState;
317
314
  balanceSheetState: BalanceSheetState;
318
315
  bankAccountViewState: BankAccountViewState;
@@ -334,7 +331,6 @@ type ViewsState = {
334
331
  cashBalanceState: CashBalanceState;
335
332
  cashFlowState: CashFlowState;
336
333
  cashInCashOutState: CashInCashOutState;
337
- cashManagementOverviewState: CashManagementOverviewState;
338
334
  cashPositionState: CashPositionState;
339
335
  chargeCardConfigState: ChargeCardConfigState;
340
336
  chargeCardDetailState: ChargeCardDetailState;
@@ -480,7 +476,6 @@ declare const reducers: import("redux").Reducer<import("redux").CombinedState<{
480
476
  arAgingState: ArAgingState;
481
477
  auditReportViewState: AuditReportViewState;
482
478
  authenticationViewState: AuthenticationViewState;
483
- autoSweepFlowState: AutoSweepFlowState;
484
479
  autotransferRulesState: AutoTransferRulesState;
485
480
  balanceSheetState: BalanceSheetState;
486
481
  bankAccountViewState: BankAccountViewState;
@@ -500,7 +495,6 @@ declare const reducers: import("redux").Reducer<import("redux").CombinedState<{
500
495
  cashBalanceState: CashBalanceState;
501
496
  cashFlowState: CashFlowState;
502
497
  cashInCashOutState: CashInCashOutState;
503
- cashManagementOverviewState: CashManagementOverviewState;
504
498
  cashPositionState: CashPositionState;
505
499
  chargeCardConfigState: ChargeCardConfigState;
506
500
  chargeCardDetailState: ChargeCardDetailState;
package/lib/reducer.js CHANGED
@@ -201,8 +201,6 @@ const internationalWireVerificationReducer_1 = __importStar(require("./view/spen
201
201
  const magicLinkViewReducer_1 = __importStar(require("./view/spendManagement/billPay/magicLinkView/magicLinkViewReducer"));
202
202
  const previousBillsReducer_1 = __importStar(require("./view/spendManagement/billPay/previousBills/previousBillsReducer"));
203
203
  const wiseRedirectReducer_1 = __importStar(require("./view/spendManagement/billPay/wiseRedirectView/wiseRedirectReducer"));
204
- const autoSweepFlowReducer_1 = __importStar(require("./view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer"));
205
- const cashManagementOverviewReducer_1 = __importStar(require("./view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer"));
206
204
  const cardUserOnboardingReducer_1 = __importStar(require("./view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingReducer"));
207
205
  const cashbackDetailReducer_1 = __importStar(require("./view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer"));
208
206
  const chargeCardConfigReducer_1 = __importStar(require("./view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer"));
@@ -355,7 +353,6 @@ const initialViewsState = {
355
353
  arAgingState: arAgingReducer_1.initialState,
356
354
  auditReportViewState: auditReportViewReducer_1.initialState,
357
355
  authenticationViewState: authenticationViewReducer_1.initialState,
358
- autoSweepFlowState: autoSweepFlowReducer_1.initialState,
359
356
  autotransferRulesState: autoTransferRulesReducer_1.initialState,
360
357
  balanceSheetState: balanceSheetReducer_1.initialState,
361
358
  bankAccountViewState: bankAccountViewReducer_1.initialState,
@@ -376,7 +373,6 @@ const initialViewsState = {
376
373
  cashBalanceState: cashBalanceReducer_1.initialState,
377
374
  cashFlowState: cashFlowReducer_1.initialState,
378
375
  cashInCashOutState: cashInCashOutReducer_1.initialState,
379
- cashManagementOverviewState: cashManagementOverviewReducer_1.initialState,
380
376
  cashPositionState: cashPositionReducer_1.initialState,
381
377
  chargeCardConfigState: chargeCardConfigReducer_1.initialState,
382
378
  chargeCardDetailState: chargeCardDetailReducer_1.initialState,
@@ -598,7 +594,6 @@ const viewReducers = {
598
594
  arAgingState: arAgingReducer_1.default,
599
595
  auditReportViewState: auditReportViewReducer_1.default,
600
596
  authenticationViewState: authenticationViewReducer_1.default,
601
- autoSweepFlowState: autoSweepFlowReducer_1.default,
602
597
  autotransferRulesState: autoTransferRulesReducer_1.default,
603
598
  balanceSheetState: balanceSheetReducer_1.default,
604
599
  bankAccountViewState: bankAccountViewReducer_1.default,
@@ -618,7 +613,6 @@ const viewReducers = {
618
613
  cashBalanceState: cashBalanceReducer_1.default,
619
614
  cashFlowState: cashFlowReducer_1.default,
620
615
  cashInCashOutState: cashInCashOutReducer_1.default,
621
- cashManagementOverviewState: cashManagementOverviewReducer_1.default,
622
616
  cashPositionState: cashPositionReducer_1.default,
623
617
  chargeCardConfigState: chargeCardConfigReducer_1.default,
624
618
  chargeCardDetailState: chargeCardDetailReducer_1.default,
@@ -1,5 +1,6 @@
1
1
  import { ActionsObservable, StateObservable } from 'redux-observable';
2
2
  import { RootState } from '../../../../reducer';
3
+ import { cancelEntityRecommendationsForLineUpdate } from '../../../recommendation/recommendationReducer';
3
4
  import { initializeTransactionCategorizationViewLocalData, saveTransactionCategorizationLocalData } from '../../reducers/transactionsViewReducer';
4
- export type ActionType = ReturnType<typeof initializeTransactionCategorizationViewLocalData> | ReturnType<typeof saveTransactionCategorizationLocalData>;
5
+ export type ActionType = ReturnType<typeof initializeTransactionCategorizationViewLocalData> | ReturnType<typeof saveTransactionCategorizationLocalData> | ReturnType<typeof cancelEntityRecommendationsForLineUpdate>;
5
6
  export declare const initializeTransactionCategorizationViewLocalDataEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => import("rxjs").Observable<ActionType>;
@@ -6,6 +6,7 @@ const operators_1 = require("rxjs/operators");
6
6
  const transactionHelper_1 = require("../../../../entity/transaction/transactionHelper");
7
7
  const transactionSelector_1 = require("../../../../entity/transaction/transactionSelector");
8
8
  const accountListSelector_1 = require("../../../accountList/accountListSelector");
9
+ const recommendationReducer_1 = require("../../../recommendation/recommendationReducer");
9
10
  const transactionCategorizationLocalDataHelper_1 = require("../../helpers/transactionCategorizationLocalDataHelper");
10
11
  const transactionsViewReducer_1 = require("../../reducers/transactionsViewReducer");
11
12
  const transactionsViewState_1 = require("../../types/transactionsViewState");
@@ -54,6 +55,20 @@ const initializeTransactionCategorizationViewLocalDataEpic = (actions$, state$)
54
55
  };
55
56
  }
56
57
  });
58
+ // Cancel any in-flight line-update recommendations fetch for the
59
+ // transactions whose local data is about to be wiped. Only runs
60
+ // for the destructive `keepExistingListItems === false` branch
61
+ // (list-page Cancel footer, modal confirm-reset, and the silent
62
+ // `backgroundRefetchReviewTab` path); the merge branch keeps
63
+ // existing per-line state intact and races no fetches.
64
+ if (keepExistingListItems === false) {
65
+ transactions.forEach((transaction) => {
66
+ fetchActions.push((0, recommendationReducer_1.cancelEntityRecommendationsForLineUpdate)({
67
+ id: transaction.id,
68
+ type: transaction.type,
69
+ }));
70
+ });
71
+ }
57
72
  fetchActions.push((0, transactionsViewReducer_1.saveTransactionCategorizationLocalData)({
58
73
  selectedTab,
59
74
  transactionIds,
@@ -10,6 +10,7 @@ const get_1 = __importDefault(require("lodash/get"));
10
10
  const uniq_1 = __importDefault(require("lodash/uniq"));
11
11
  const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
12
12
  const vendorTransaction_1 = require("../../../entity/transaction/stateTypes/vendorTransaction");
13
+ const recommendationStaleResponseHelper_1 = require("../../recommendation/recommendationStaleResponseHelper");
13
14
  const transactionCategorizationLocalDataHelper_1 = require("../helpers/transactionCategorizationLocalDataHelper");
14
15
  const completedSubTab_1 = require("../types/completedSubTab");
15
16
  const transactionsViewState_1 = require("../types/transactionsViewState");
@@ -523,11 +524,66 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
523
524
  const transactionLocalData = (0, get_1.default)(draft.transactionCategorizationView[selectedTab]
524
525
  .transactionReviewLocalDataById, transactionId.id, undefined);
525
526
  if (transactionLocalData != null) {
526
- const newLocalData = (0, transactionCategorizationLocalDataHelper_1.setEntityRecommendationForLineIdInLocalData)(draft.transactionCategorizationView[selectedTab], transaction, transactionLocalData.transactionReviewLocalData, entity, lineIds, uncategorizedAccounts, action.payload.recommendationWithCOTByLineId, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled);
527
+ // Stale-response guard. Filter `lineIds` down to lines whose
528
+ // currently selected entity still matches the payload
529
+ // entity, so a response that lands after the user (or the
530
+ // silent backgroundRefetchReviewTab path) wiped local data
531
+ // can't overwrite the restored state. Lines that fail the
532
+ // guard are still released to Completed below so their
533
+ // inline skeletons resolve. Complements the epic-level
534
+ // `takeUntil`.
535
+ //
536
+ // List flow: ONLY vendor uses page-level `selectedEntity`;
537
+ // customer + JE + deposit all use per-line
538
+ // `selectedEntityLine`. This differs from the detail flow
539
+ // (where customer is page-level too) and matches the
540
+ // dichotomy in `setEntityRecommendationForLineIdInLocalData`.
541
+ const usesPageLevelEntity = (0, vendorTransaction_1.isVendorTransaction)(transaction);
542
+ const matchedLineIds = (0, recommendationStaleResponseHelper_1.getLineIdsWhereEntityStillMatches)({
543
+ lineIds,
544
+ payloadEntity: entity,
545
+ getCurrentEntityForLine: (lineId) => usesPageLevelEntity
546
+ ? transactionLocalData.transactionReviewLocalData.selectedEntity
547
+ : transactionLocalData.transactionReviewLocalData.lineItemById[lineId]?.selectedEntityLine,
548
+ });
549
+ // When every line failed the guard, skip the helper entirely.
550
+ // The list-flow helper's `else` branch writes
551
+ // recommendations + account/class onto vendor-txn lines even
552
+ // when they're not in `recommendationLineIds` (so callers
553
+ // can fold full-transaction recs into untouched lines), and
554
+ // we don't want any of those writes when the whole response
555
+ // is stale. We still flip the per-line fetch flag so
556
+ // skeletons resolve.
557
+ if (matchedLineIds.length === 0) {
558
+ const existingLocalData = transactionLocalData.transactionReviewLocalData;
559
+ const releasedLineItems = { ...existingLocalData.lineItemById };
560
+ lineIds.forEach((lineId) => {
561
+ const lineItem = releasedLineItems[lineId];
562
+ if (lineItem != null) {
563
+ releasedLineItems[lineId] = {
564
+ ...lineItem,
565
+ categoryClassRecommendationsFetchState: {
566
+ fetchState: 'Completed',
567
+ error: undefined,
568
+ },
569
+ };
570
+ }
571
+ });
572
+ draft.transactionCategorizationView[selectedTab].transactionReviewLocalDataById[transaction.id] = {
573
+ transactionId: transaction.id,
574
+ transactionReviewLocalData: {
575
+ ...existingLocalData,
576
+ lineItemById: releasedLineItems,
577
+ },
578
+ };
579
+ return;
580
+ }
581
+ const newLocalData = (0, transactionCategorizationLocalDataHelper_1.setEntityRecommendationForLineIdInLocalData)(draft.transactionCategorizationView[selectedTab], transaction, transactionLocalData.transactionReviewLocalData, entity, matchedLineIds, uncategorizedAccounts, action.payload.recommendationWithCOTByLineId, isUncategorizedExpenseCategoryEnabled, isAccountingClassesEnabled);
527
582
  // Release the per-line fetch flag for every line this fetch
528
- // covered. Done in-place on the freshly returned local data
529
- // (the helper produces a new mutable object), before we write
530
- // it back to the draft.
583
+ // covered (matched AND unmatched) so the inline skeleton
584
+ // resolves on stale lines too. Done in-place on the freshly
585
+ // returned local data (the helper produces a new mutable
586
+ // object), before we write it back to the draft.
531
587
  lineIds.forEach((lineId) => {
532
588
  const lineItem = newLocalData.lineItemById[lineId];
533
589
  if (lineItem != null) {
@@ -544,7 +600,9 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
544
600
  transactionId: transaction.id,
545
601
  transactionReviewLocalData: newLocalData,
546
602
  };
547
- // Mark transaction as dirty (autofill happened)
603
+ // Mark transaction as dirty (autofill happened). We only
604
+ // reach this point with at least one matched line, so
605
+ // recommendations were applied.
548
606
  if (!draft.transactionCategorizationView[selectedTab].transactionIdsWithUnsavedData.includes(transaction.id)) {
549
607
  draft.transactionCategorizationView[selectedTab].transactionIdsWithUnsavedData = [
550
608
  ...draft.transactionCategorizationView[selectedTab]
@@ -4,6 +4,6 @@ import { RootState } from '../../reducer';
4
4
  import { ZeniAPI } from '../../zeniAPI';
5
5
  import { markCategoryClassRecommendationsCompletedForCategorization, markCategoryClassRecommendationsFailureForCategorization, markCategoryClassRecommendationsInProgressForCategorization, setEntityRecommendationForLineIdsForCategorization } from '../expenseAutomationView/reducers/transactionsViewReducer';
6
6
  import { markCategoryClassRecommendationsCompletedForTransactionDetail, markCategoryClassRecommendationsFailureForTransactionDetail, markCategoryClassRecommendationsInProgressForTransactionDetail, setEntityRecommendationForLineIdsForTransactionDetail } from '../transactionDetail/transactionDetailReducer';
7
- import { fetchEntityRecommendationsForLineUpdate } from './recommendationReducer';
8
- export type ActionType = ReturnType<typeof fetchEntityRecommendationsForLineUpdate> | ReturnType<typeof markCategoryClassRecommendationsInProgressForCategorization> | ReturnType<typeof markCategoryClassRecommendationsCompletedForCategorization> | ReturnType<typeof markCategoryClassRecommendationsFailureForCategorization> | ReturnType<typeof markCategoryClassRecommendationsInProgressForTransactionDetail> | ReturnType<typeof markCategoryClassRecommendationsCompletedForTransactionDetail> | ReturnType<typeof markCategoryClassRecommendationsFailureForTransactionDetail> | ReturnType<typeof setEntityRecommendationForLineIdsForCategorization> | ReturnType<typeof setEntityRecommendationForLineIdsForTransactionDetail>;
7
+ import { cancelEntityRecommendationsForLineUpdate, fetchEntityRecommendationsForLineUpdate } from './recommendationReducer';
8
+ export type ActionType = ReturnType<typeof fetchEntityRecommendationsForLineUpdate> | ReturnType<typeof cancelEntityRecommendationsForLineUpdate> | ReturnType<typeof markCategoryClassRecommendationsInProgressForCategorization> | ReturnType<typeof markCategoryClassRecommendationsCompletedForCategorization> | ReturnType<typeof markCategoryClassRecommendationsFailureForCategorization> | ReturnType<typeof markCategoryClassRecommendationsInProgressForTransactionDetail> | ReturnType<typeof markCategoryClassRecommendationsCompletedForTransactionDetail> | ReturnType<typeof markCategoryClassRecommendationsFailureForTransactionDetail> | ReturnType<typeof setEntityRecommendationForLineIdsForCategorization> | ReturnType<typeof setEntityRecommendationForLineIdsForTransactionDetail>;
9
9
  export declare const fetchEntityRecommendationsForLineUpdateEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -86,6 +86,15 @@ const fetchEntityRecommendationsForLineUpdateEpic = (actions$, state$, zeniAPI)
86
86
  ? (0, transactionsViewReducer_1.markCategoryClassRecommendationsFailureForCategorization)(payload.selectedTab, transactionId, lineIds, status)
87
87
  : (0, transactionDetailReducer_1.markCategoryClassRecommendationsFailureForTransactionDetail)(transactionId, lineIds, status));
88
88
  }));
89
- return (0, rxjs_1.concat)((0, rxjs_1.of)(startAction), httpStream$);
89
+ // takeUntil kills the in-flight HTTP and suppresses every
90
+ // downstream success/failure/markCompleted emission once a
91
+ // cancel action lands for the same transactionId. groupBy +
92
+ // switchMap already handle re-fetch-on-same-target; takeUntil
93
+ // covers the user-initiated Cancel (detail footer + list
94
+ // footer) and the silent backgroundRefetchReviewTab path,
95
+ // which both wipe local data without dispatching another
96
+ // fetch on the same target.
97
+ const cancel$ = actions$.pipe((0, operators_1.filter)(recommendationReducer_1.cancelEntityRecommendationsForLineUpdate.match), (0, operators_1.filter)((a) => a.payload.transactionId.id === transactionId.id));
98
+ return (0, rxjs_1.concat)((0, rxjs_1.of)(startAction), httpStream$.pipe((0, operators_1.takeUntil)(cancel$)));
90
99
  }))));
91
100
  exports.fetchEntityRecommendationsForLineUpdateEpic = fetchEntityRecommendationsForLineUpdateEpic;
@@ -41,7 +41,9 @@ export declare const fetchEntityRecommendationsByTransactionId: import("@reduxjs
41
41
  isTransactionCategorizationFlow: any;
42
42
  isFetchCOT: any;
43
43
  isUncategorizedExpenseCategoryEnabled: boolean | undefined;
44
- }, "recommendation/fetchEntityRecommendationsByTransactionId", never, never>, fetchEntityRecommendationsForLineUpdate: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[args: FetchEntityRecommendationsForLineUpdatePayload], FetchEntityRecommendationsForLineUpdatePayload, "recommendation/fetchEntityRecommendationsForLineUpdate", never, never>, fetchRecommendationByEntityName: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[entityName: string, entityType: EntityType], {
44
+ }, "recommendation/fetchEntityRecommendationsByTransactionId", never, never>, fetchEntityRecommendationsForLineUpdate: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[args: FetchEntityRecommendationsForLineUpdatePayload], FetchEntityRecommendationsForLineUpdatePayload, "recommendation/fetchEntityRecommendationsForLineUpdate", never, never>, cancelEntityRecommendationsForLineUpdate: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: TransactionID], {
45
+ transactionId: TransactionID;
46
+ }, "recommendation/cancelEntityRecommendationsForLineUpdate", never, never>, fetchRecommendationByEntityName: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[entityName: string, entityType: EntityType], {
45
47
  entityName: string;
46
48
  entityType: EntityType;
47
49
  }, "recommendation/fetchRecommendationByEntityName", never, never>, fetchRecommendationByEntityId: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[entityId: string, entityType: EntityType], {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearRecommendation = exports.indicateReadyToInitializeRecommendation = exports.updateRecommendationForEntityFailure = exports.updateRecommendationForEntity = exports.fetchRecommendationByEntityId = exports.fetchRecommendationByEntityName = exports.fetchEntityRecommendationsForLineUpdate = exports.fetchEntityRecommendationsByTransactionId = exports.initialState = void 0;
4
+ exports.clearRecommendation = exports.indicateReadyToInitializeRecommendation = exports.updateRecommendationForEntityFailure = exports.updateRecommendationForEntity = exports.fetchRecommendationByEntityId = exports.fetchRecommendationByEntityName = exports.cancelEntityRecommendationsForLineUpdate = exports.fetchEntityRecommendationsForLineUpdate = exports.fetchEntityRecommendationsByTransactionId = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const recommendationState_1 = require("./recommendationState");
7
7
  exports.initialState = {
@@ -62,6 +62,23 @@ const recommendation = (0, toolkit_1.createSlice)({
62
62
  return { payload: args };
63
63
  },
64
64
  },
65
+ // No-op reducer; the action exists purely so the line-update epic
66
+ // can observe it via `takeUntil` and kill an in-flight HTTP request
67
+ // when the user (or a background refresh) wipes local data before
68
+ // the response lands. Without this, a stale response races the reset
69
+ // and overwrites the user's intent. Cancel is keyed by
70
+ // `transactionId` only: per-page Cancel buttons cancel everything
71
+ // under that transaction (including JE sibling line sets), which
72
+ // matches the UI semantics on both detail and categorization pages.
73
+ cancelEntityRecommendationsForLineUpdate: {
74
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
75
+ reducer(_draft, _action) {
76
+ // intentionally empty
77
+ },
78
+ prepare(transactionId) {
79
+ return { payload: { transactionId } };
80
+ },
81
+ },
65
82
  fetchRecommendationByEntityName: {
66
83
  reducer(draft, action) {
67
84
  const { entityName, entityType } = action.payload;
@@ -140,7 +157,7 @@ const recommendation = (0, toolkit_1.createSlice)({
140
157
  },
141
158
  },
142
159
  });
143
- _a = recommendation.actions, exports.fetchEntityRecommendationsByTransactionId = _a.fetchEntityRecommendationsByTransactionId, exports.fetchEntityRecommendationsForLineUpdate = _a.fetchEntityRecommendationsForLineUpdate, exports.fetchRecommendationByEntityName = _a.fetchRecommendationByEntityName, exports.fetchRecommendationByEntityId = _a.fetchRecommendationByEntityId, exports.updateRecommendationForEntity = _a.updateRecommendationForEntity, exports.updateRecommendationForEntityFailure = _a.updateRecommendationForEntityFailure, exports.indicateReadyToInitializeRecommendation = _a.indicateReadyToInitializeRecommendation, exports.clearRecommendation = _a.clearRecommendation;
160
+ _a = recommendation.actions, exports.fetchEntityRecommendationsByTransactionId = _a.fetchEntityRecommendationsByTransactionId, exports.fetchEntityRecommendationsForLineUpdate = _a.fetchEntityRecommendationsForLineUpdate, exports.cancelEntityRecommendationsForLineUpdate = _a.cancelEntityRecommendationsForLineUpdate, exports.fetchRecommendationByEntityName = _a.fetchRecommendationByEntityName, exports.fetchRecommendationByEntityId = _a.fetchRecommendationByEntityId, exports.updateRecommendationForEntity = _a.updateRecommendationForEntity, exports.updateRecommendationForEntityFailure = _a.updateRecommendationForEntityFailure, exports.indicateReadyToInitializeRecommendation = _a.indicateReadyToInitializeRecommendation, exports.clearRecommendation = _a.clearRecommendation;
144
161
  exports.default = recommendation.reducer;
145
162
  const doUpdateRecommendationForEntity = (draft, entityId, entityType, payload) => {
146
163
  const key = (0, recommendationState_1.getEntityRecommendationKey)(entityType, entityId);
@@ -0,0 +1,7 @@
1
+ import { ID } from '../../commonStateTypes/common';
2
+ import { Entity } from '../../entity/genericEntity/entity';
3
+ export declare const getLineIdsWhereEntityStillMatches: (args: {
4
+ lineIds: ID[];
5
+ payloadEntity: Entity;
6
+ getCurrentEntityForLine: (lineId: ID) => Entity | undefined;
7
+ }) => ID[];
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getLineIdsWhereEntityStillMatches = void 0;
4
+ // Two entities refer to the same real-world thing iff they share both
5
+ // type and id. We deliberately compare on these fields only — qboId /
6
+ // zeniId can lag during entity-create flows where the persisted id
7
+ // hasn't been roundtripped yet, while `id` is the local-source-of-truth
8
+ // the line carries.
9
+ const entitiesMatch = (a, b) => a != null && b != null && a.type === b.type && a.id === b.id;
10
+ // Filters `lineIds` down to those whose currently selected entity (as
11
+ // reported by the caller) still matches the payload entity at the
12
+ // moment the success reducer fires. Used by the two
13
+ // `setEntityRecommendationForLineIds…` reducers as a defensive guard
14
+ // against stale responses landing after the user (or a background
15
+ // refresh) has changed or wiped their selection.
16
+ //
17
+ // Each flow decides separately where the "current entity" lives,
18
+ // because the rules diverge:
19
+ // - Detail flow: vendor + customer transactions read from page-level
20
+ // `selectedEntity`; JE / deposit reads per-line `lineEntity`.
21
+ // - List flow: ONLY vendor reads from page-level `selectedEntity`;
22
+ // customer, JE, deposit all read per-line `selectedEntityLine`.
23
+ // Pushing the lookup into the caller keeps this helper a pure
24
+ // comparator and avoids the helper having to know which flow / page-
25
+ // level rule applies.
26
+ const getLineIdsWhereEntityStillMatches = (args) => {
27
+ const { lineIds, payloadEntity, getCurrentEntityForLine } = args;
28
+ return lineIds.filter((lineId) => entitiesMatch(payloadEntity, getCurrentEntityForLine(lineId)));
29
+ };
30
+ exports.getLineIdsWhereEntityStillMatches = getLineIdsWhereEntityStillMatches;
@@ -6,7 +6,7 @@ import { FundingAccount } from '../commonSetup/setupViewSelector';
6
6
  import { TreasuryAccount } from '../treasury/treasuryTransferMoney/treasuryTransferMoneyState';
7
7
  import { ReviewTransferDetail } from '../zeniAccounts/transferDetail/transferDetailState';
8
8
  import { AutoTransferRuleLocalData } from './autoTransferRulesPayload';
9
- import { AutoTransferRule, CashManagementRule } from './autoTransferRulesState';
9
+ import { AutoTransferRule } from './autoTransferRulesState';
10
10
  export interface AutoTransferRulesSelectorView extends SelectorView {
11
11
  autoTransferReviewDetail: ReviewTransferDetail;
12
12
  createRuleFetchState: FetchStateAndError;
@@ -17,13 +17,6 @@ export interface AutoTransferRulesSelectorView extends SelectorView {
17
17
  transferMoneyParties: FundingAccount[];
18
18
  transferMoneyPartiesFetchState: FetchState;
19
19
  treasuryAccount: TreasuryAccount;
20
- /**
21
- * The user's saved auto-sweep cash-management config, surfaced here so the
22
- * rules list page can render it alongside the auto-transfer rules.
23
- * `undefined` when the user hasn't saved auto-sweep settings yet
24
- * (i.e. `autoSweepFlowState.settingsId == null`).
25
- */
26
- cashManagementRule?: CashManagementRule;
27
20
  ruleHistory?: Record<string, CommonHistoryView>;
28
21
  }
29
22
  export declare const getAutoTransferRules: (state: RootState) => AutoTransferRulesSelectorView;
@@ -6,30 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getAutoTransferRuleHistory = exports.getAutoTransferRuleById = exports.getAutoTransferRules = void 0;
7
7
  const get_1 = __importDefault(require("lodash/get"));
8
8
  const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState");
9
- const depositAccountSelector_1 = require("../../../entity/depositAccount/depositAccountSelector");
10
9
  const setupViewSelector_1 = require("../commonSetup/setupViewSelector");
11
10
  const depositAccountListSelector_1 = require("../zeniAccounts/depositAccountList/depositAccountListSelector");
12
11
  const paymentAccountListSelector_1 = require("../zeniAccounts/paymentAccountList/paymentAccountListSelector");
13
- const buildCashManagementRule = (autoSweepFlowState, depositAccountState, treasuryDetailState) => {
14
- const { settingsId, bufferAmount, frequency, memo, primaryFundingAccountId, nextTransferDate } = autoSweepFlowState;
15
- if (settingsId == null || primaryFundingAccountId == null) {
16
- return undefined;
17
- }
18
- const depositAccount = (0, depositAccountSelector_1.getDepositAccountByDepositAccountId)(depositAccountState, primaryFundingAccountId);
19
- return {
20
- bufferAmount,
21
- frequency,
22
- memo,
23
- settingsId,
24
- primaryFundingAccount: depositAccount != null
25
- ? (0, setupViewSelector_1.mapDepositAccToFundingAccount)(depositAccount)
26
- : undefined,
27
- treasurySummary: treasuryDetailState.accountSummary,
28
- nextTransferDate,
29
- };
30
- };
31
12
  const getAutoTransferRules = (state) => {
32
- const { autotransferRulesState, autoSweepFlowState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, treasuryDetailState, } = state;
13
+ const { autotransferRulesState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, treasuryDetailState, } = state;
33
14
  const { rules, error, historyByRuleId, ruleUpdateLocalData, ruleUpdateStatusById, ruleDeleteStatusById, createRuleFetchState, autoTransferReviewDetail, } = autotransferRulesState;
34
15
  const depositAccountsView = (0, depositAccountListSelector_1.getAllDepositAccounts)(depositAccountState, depositAccountListState);
35
16
  const paymentAccountsView = (0, paymentAccountListSelector_1.getAllPaymentAccounts)(paymentAccountState, paymentAccountListState);
@@ -64,7 +45,6 @@ const getAutoTransferRules = (state) => {
64
45
  transferMoneyParties,
65
46
  transferMoneyPartiesFetchState,
66
47
  createRuleFetchState,
67
- cashManagementRule: buildCashManagementRule(autoSweepFlowState, depositAccountState, treasuryDetailState),
68
48
  fetchState,
69
49
  error,
70
50
  version: 0,