@zeniai/client-epic-state 5.1.41-betaDI3 → 5.1.41-betaRD1

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 (59) hide show
  1. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  2. package/lib/entity/snackbar/snackbarTypes.js +1 -1
  3. package/lib/entity/task/taskPayload.d.ts +1 -2
  4. package/lib/entity/task/taskPayload.js +1 -8
  5. package/lib/entity/task/taskReducer.d.ts +1 -8
  6. package/lib/entity/task/taskReducer.js +4 -29
  7. package/lib/entity/task/taskState.d.ts +0 -1
  8. package/lib/entity/tenant/epic/saveExternalConnectionEpic.js +15 -11
  9. package/lib/epic.d.ts +3 -5
  10. package/lib/epic.js +3 -5
  11. package/lib/esm/entity/snackbar/snackbarTypes.js +1 -1
  12. package/lib/esm/entity/task/taskPayload.js +1 -8
  13. package/lib/esm/entity/task/taskReducer.js +3 -28
  14. package/lib/esm/entity/tenant/epic/saveExternalConnectionEpic.js +15 -11
  15. package/lib/esm/epic.js +3 -5
  16. package/lib/esm/index.js +3 -3
  17. package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +0 -3
  18. package/lib/esm/view/companyTaskManagerView/epics/fetchTaskManagerMetricsEpic.js +1 -7
  19. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +7 -0
  20. package/lib/esm/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +0 -1
  21. package/lib/esm/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +9 -70
  22. package/lib/esm/view/taskManager/taskDetailView/taskDetailReducer.js +2 -56
  23. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +9 -32
  24. package/lib/esm/view/taskManager/taskListView/epics/fetchTaskListEpic.js +1 -3
  25. package/lib/esm/view/taskManager/taskListView/taskList.js +0 -1
  26. package/lib/esm/view/taskManager/taskListView/taskListReducer.js +12 -240
  27. package/lib/esm/view/taskManager/taskListView/taskListSelector.js +0 -1
  28. package/lib/esm/view/taskManager/taskListView/taskListViewHelpers.js +0 -58
  29. package/lib/index.d.ts +6 -6
  30. package/lib/index.js +9 -13
  31. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +0 -3
  32. package/lib/view/companyTaskManagerView/epics/fetchTaskManagerMetricsEpic.js +1 -7
  33. package/lib/view/companyView/types/cockpitTypes.d.ts +0 -3
  34. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  35. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +7 -0
  36. package/lib/view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic.js +0 -1
  37. package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.d.ts +2 -2
  38. package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +8 -69
  39. package/lib/view/taskManager/taskDetailView/taskDetail.d.ts +0 -15
  40. package/lib/view/taskManager/taskDetailView/taskDetailReducer.d.ts +2 -14
  41. package/lib/view/taskManager/taskDetailView/taskDetailReducer.js +3 -57
  42. package/lib/view/taskManager/taskDetailView/taskDetailSelector.d.ts +1 -2
  43. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +7 -30
  44. package/lib/view/taskManager/taskListView/epics/fetchTaskListEpic.js +1 -3
  45. package/lib/view/taskManager/taskListView/taskList.d.ts +1 -1
  46. package/lib/view/taskManager/taskListView/taskList.js +0 -1
  47. package/lib/view/taskManager/taskListView/taskListPayload.d.ts +0 -4
  48. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +2 -6
  49. package/lib/view/taskManager/taskListView/taskListReducer.js +13 -241
  50. package/lib/view/taskManager/taskListView/taskListSelector.js +0 -1
  51. package/lib/view/taskManager/taskListView/taskListViewHelpers.d.ts +0 -11
  52. package/lib/view/taskManager/taskListView/taskListViewHelpers.js +1 -60
  53. package/package.json +1 -1
  54. package/lib/esm/view/taskManager/taskDetailView/epics/createSubTaskEpic.js +0 -96
  55. package/lib/esm/view/taskManager/taskDetailView/epics/fetchSubTasksEpic.js +0 -53
  56. package/lib/view/taskManager/taskDetailView/epics/createSubTaskEpic.d.ts +0 -9
  57. package/lib/view/taskManager/taskDetailView/epics/createSubTaskEpic.js +0 -100
  58. package/lib/view/taskManager/taskDetailView/epics/fetchSubTasksEpic.d.ts +0 -8
  59. package/lib/view/taskManager/taskDetailView/epics/fetchSubTasksEpic.js +0 -57
@@ -2,7 +2,7 @@ import { convertMinutesToHHMM } from '../../commonStateTypes/fiscalYearHelpers/f
2
2
  import { toRecurringFrequencyStrict } from '../../view/common/recurringViewHelper';
3
3
  import { date } from '../../zeniDayJS';
4
4
  import { toDayOfWeekStrict, toPriorityCodeType, toTaskCodeType, toTaskStatusCodeType, } from './taskState';
5
- export const mapTaskPayloadToTask = (payload, previousTask) => ({
5
+ export const mapTaskPayloadToTask = (payload) => ({
6
6
  id: payload.task_id,
7
7
  assignees: payload.assignees,
8
8
  createdBy: payload.created_by,
@@ -52,11 +52,4 @@ export const mapTaskPayloadToTask = (payload, previousTask) => ({
52
52
  ? convertMinutesToHHMM(payload.time_spent)
53
53
  : convertMinutesToHHMM(0),
54
54
  groupAssignees: payload.group_assignees ?? [],
55
- // `subtasks` may be absent on partial updates (e.g. pusher-driven task
56
- // refreshes that don't include the children list). Falling back to `[]`
57
- // there would clobber a parent's known children to empty — preserve the
58
- // previously-known list instead. Explicit `[]` from the BE still wins.
59
- subTasksIds: payload.subtasks !== undefined
60
- ? (payload.subtasks ?? [])
61
- : (previousTask?.subTasksIds ?? []),
62
55
  });
@@ -9,46 +9,21 @@ const task = createSlice({
9
9
  reducers: {
10
10
  updateTasks(draft, action) {
11
11
  action.payload.forEach((taskPayload) => {
12
- const previousTask = draft.taskByID[taskPayload.task_id];
13
- const latestTask = mapTaskPayloadToTask(taskPayload, previousTask);
12
+ const latestTask = mapTaskPayloadToTask(taskPayload);
14
13
  draft.taskByID[latestTask.id] = latestTask;
15
14
  });
16
15
  },
17
16
  updateTask(draft, action) {
18
- const previousTask = draft.taskByID[action.payload.task_id];
19
- const latestTask = mapTaskPayloadToTask(action.payload, previousTask);
17
+ const latestTask = mapTaskPayloadToTask(action.payload);
20
18
  draft.taskByID[latestTask.id] = latestTask;
21
19
  },
22
20
  removeTask(draft, action) {
23
21
  delete draft.taskByID[action.payload];
24
22
  },
25
- appendSubTaskId(draft, action) {
26
- const parentTask = draft.taskByID[action.payload.parentTaskId];
27
- if (parentTask != null) {
28
- // Dedupe: createSubTaskEpic dispatches `updateTasks` before
29
- // `appendSubTaskId`. If the create response includes the parent's
30
- // `subtasks`, `updateTasks` has already mirrored the new child
31
- // into `subTasksIds`, so a naive push here would double-add.
32
- if (!parentTask.subTasksIds.includes(action.payload.subTaskId)) {
33
- parentTask.subTasksIds.push(action.payload.subTaskId);
34
- }
35
- }
36
- },
37
- // Replace a parent's children list outright. Used after a subtask
38
- // fetch (`fetchSubTasksEpic`) where the response is the authoritative
39
- // children set — the parent's entity record should track it directly
40
- // so consumers reading from the entity store don't drift from
41
- // the fetched bucket.
42
- setSubTaskIds(draft, action) {
43
- const parentTask = draft.taskByID[action.payload.parentTaskId];
44
- if (parentTask != null) {
45
- parentTask.subTasksIds = action.payload.subTaskIds;
46
- }
47
- },
48
23
  clearAllTasks(draft) {
49
24
  draft.taskByID = {};
50
25
  },
51
26
  },
52
27
  });
53
- export const { updateTasks, updateTask, removeTask, appendSubTaskId, setSubTaskIds, clearAllTasks, } = task.actions;
28
+ export const { updateTasks, updateTask, removeTask, clearAllTasks } = task.actions;
54
29
  export default task.reducer;
@@ -5,10 +5,9 @@ import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload
5
5
  import { updateQBOConnectionStatusForCompany } from '../../company/companyReducer';
6
6
  import { openSnackbar } from '../../snackbar/snackbarReducer';
7
7
  import { saveExternalConnection, saveExternalConnectionFailure, saveExternalConnectionSuccess, } from '../tenantReducer';
8
- // Backend returns 409 with a user-facing message when the QBO realm is
9
- // already linked to another active tenant (tenant PR #1950). Surface that
10
- // specific case via snackbar so the user sees the rejection copy rather than
11
- // the generic save-connection failure UI.
8
+ // Backend returns 409 when the QBO realm is already linked to another active
9
+ // tenant. That case gets specific rejection copy; every other connect failure
10
+ // falls back to the generic connect-failure snackbar.
12
11
  const QBO_REALM_ALREADY_LINKED_STATUS = 409;
13
12
  export const saveExternalConnectionEpic = (actions$, _, zeniAPI) => actions$.pipe(filter(saveExternalConnection.match), switchMap((action) => zeniAPI
14
13
  .putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/connections/${action.payload.connectionMeta.connection_id}`, {
@@ -37,13 +36,13 @@ export const saveExternalConnectionEpic = (actions$, _, zeniAPI) => actions$.pip
37
36
  }
38
37
  else {
39
38
  actions.push(saveExternalConnectionFailure(action.payload.tenantId, response.status));
40
- if (response.status?.code === QBO_REALM_ALREADY_LINKED_STATUS) {
41
- actions.push(openSnackbar({
42
- messageSection: 'qbo_connection_already_linked',
43
- messageText: 'failed',
44
- type: 'error',
45
- }));
46
- }
39
+ actions.push(openSnackbar({
40
+ messageSection: response.status?.code === QBO_REALM_ALREADY_LINKED_STATUS
41
+ ? 'qbo_connection_already_linked'
42
+ : 'qbo_connection_failed',
43
+ messageText: 'failed',
44
+ type: 'error',
45
+ }));
47
46
  if (action.payload.companyId != null &&
48
47
  action.payload.userId != null) {
49
48
  actions.push(updateQBOConnectionStatusForCompany({
@@ -59,6 +58,11 @@ export const saveExternalConnectionEpic = (actions$, _, zeniAPI) => actions$.pip
59
58
  const actions = [];
60
59
  actions.push(saveExternalConnectionFailure(action.payload.tenantId, createZeniAPIStatus('Unexpected error', 'Save Connection REST API call errored out' +
61
60
  JSON.stringify(error))));
61
+ actions.push(openSnackbar({
62
+ messageSection: 'qbo_connection_failed',
63
+ messageText: 'failed',
64
+ type: 'error',
65
+ }));
62
66
  if (action.payload.companyId != null &&
63
67
  action.payload.userId != null) {
64
68
  actions.push(updateQBOConnectionStatusForCompany({
package/lib/esm/epic.js CHANGED
@@ -52,8 +52,8 @@ import { createSessionEpic, } from './view/aiCfoView/epics/createSessionEpic';
52
52
  import { deleteChatSessionEpic, } from './view/aiCfoView/epics/deleteChatSessionEpic';
53
53
  import { fetchChatHistoryEpic, } from './view/aiCfoView/epics/fetchChatHistoryEpic';
54
54
  import { fetchChatSessionsForUserEpic, } from './view/aiCfoView/epics/fetchChatSessionsForUserEpic';
55
- import { fetchSkillsEpic, } from './view/aiCfoView/epics/fetchSkillsEpic';
56
55
  import { fetchSuggestedQuestionsEpic, } from './view/aiCfoView/epics/fetchSuggestedQuestionsEpic';
56
+ import { fetchSkillsEpic, } from './view/aiCfoView/epics/fetchSkillsEpic';
57
57
  import { stopSubmitEpic, } from './view/aiCfoView/epics/stopSubmitEpic';
58
58
  import { stopSubmitQuestionEpic, } from './view/aiCfoView/epics/stopSubmitQuestionEpic';
59
59
  import { submitFeedbackEpic, } from './view/aiCfoView/epics/submitFeedbackEpic';
@@ -165,8 +165,8 @@ import { reparseStatementEpic, } from './view/expenseAutomationView/epics/accoun
165
165
  import { saveReconciliationDetailsEpic as saveExpenseAutomationReconciliationDetailsEpic, } from './view/expenseAutomationView/epics/accountRecon/saveReconciliationDetailEpic';
166
166
  import { saveReconciliationReviewEpic as saveExpenseAutomationReconciliationReviewEpic, } from './view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic';
167
167
  import { updateReconcileTabLocalDataEpic as updateExpenseAutomationReconciliationBalanceLocalDataEpic, } from './view/expenseAutomationView/epics/accountRecon/updateReconcileTabLocalDataEpic';
168
- import { updateStatementInfoEpic, } from './view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic';
169
168
  import { uploadAccountStatementEpic, } from './view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic';
169
+ import { updateStatementInfoEpic, } from './view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic';
170
170
  import { fetchAllExpenseAutomationTabsEpic, } from './view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic';
171
171
  import { refreshExpenseAutomationCurrentTabEpic, } from './view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic';
172
172
  import { fetchFluxAnalysisViewEpic as fetchExpenseAutomationFluxAnalysisViewEpic, } from './view/expenseAutomationView/epics/fluxAnalysis/fetchFluxAnalysisViewEpic';
@@ -551,9 +551,7 @@ import { deleteCannedResponseEpic, } from './view/taskManager/cannedResponsesVie
551
551
  import { fetchCannedResponsesEpic, } from './view/taskManager/cannedResponsesView/epics/fetchCannedResponsesEpic';
552
552
  import { saveCannedResponseEpic, } from './view/taskManager/cannedResponsesView/epics/saveCannedResponseEpic';
553
553
  import { archiveTaskEpic, } from './view/taskManager/taskDetailView/epics/archiveTaskEpic';
554
- import { createSubTaskEpic, } from './view/taskManager/taskDetailView/epics/createSubTaskEpic';
555
554
  import { deleteTaskEpic, } from './view/taskManager/taskDetailView/epics/deleteTaskEpic';
556
- import { fetchSubTasksEpic, } from './view/taskManager/taskDetailView/epics/fetchSubTasksEpic';
557
555
  import { fetchTaskDetailEpic, } from './view/taskManager/taskDetailView/epics/fetchTaskDetailEpic';
558
556
  import { fetchTaskDetailPageEpic, } from './view/taskManager/taskDetailView/epics/fetchTaskDetailPageEpic';
559
557
  import { fetchTaskHistoryEpic, } from './view/taskManager/taskDetailView/epics/fetchTaskHistoryEpic';
@@ -623,7 +621,7 @@ import { fetchZeniAccStatementPageEpic, } from './view/zeniAccStatementList/fetc
623
621
  import { fetchZeniAccountsPromoCardEpic, } from './view/zeniAccountsPromoCard/zeniAccountsPromoCardEpic';
624
622
  import { approveOAuthConsentEpic, } from './view/zeniOAuthView/epics/approveOAuthConsentEpic';
625
623
  // Note: Please maintain strict alphabetical order
626
- const combinedEpics = combineEpics(acceptBillPayTermsEpic, acceptBillPayUpdatedTermsEpic, acceptChargeCardTermsEpic, acceptEmployeeRemiTermsEpic, acceptMasterTOSEpic, acceptRemiTermsEpic, acceptTreasuryTermsEpic, acceptZeniAccountTermsEpic, acknowledgeOnboardingAiActivationViewedEpic, acknowledgeOnboardingAiFinanceTeamEpic, addCardPaymentSourceEpic, applyExtractedPolicyToDraftEpic, approveOAuthConsentEpic, approveOrRejectBillEpic, approveOrRejectBillsBulkActionEpic, approveOrRejectRemiEpic, approveOrRejectRemisBulkActionEpic, approveVendorGlobalReviewEpic, archiveCardPolicyEpic, archiveTaskEpic, backgroundRefetchReviewTabEpic, bulkUpdateTaskListEpic, bulkUploadAutomatchingTimeoutEpic, bulkUploadMatchResultToastEpic, bulkUploadReceiptsEpic, cancelAiAccountantOnboardingEpic, cancelAndDeleteBillEpic, cancelAndDeleteRemiEpic, cancelOrDeleteBillsBulkActionEpic, cancelOrDeleteRemisBulkActionEpic, cancelScheduleAccruedJournalEntryEpic, changeZeniPersonRolesEpic, checkDepositEpic, clearAllEpic, closeChargeCardEpic, closeChargeCardsEpic, companyManagementSavePendingUpdatesEpic, companyManagementSaveUpdatesEpic, confirmBulkUploadMatchEpic, confirmCardSetupIntentEpic, convertAmountToHomeCurrencyEpic, createAddressEpic, createAutoTransferRuleEpic, createBankAccountEpic, createCardPolicyTemplatesEpic, createCardSetupIntentEpic, createCheckingAccountEpic, createCompanyAddressEpic, createCompanyOfficersEpic, createCompanyUserAddressEpic, createGlobalMerchantEpic, createInternationalBankAccountEpic, createNewSchedulesAccruedEpic, createNewSchedulesEpic, createNewTaskGroupEpic, createPaymentInstrumentEpic, createSessionAndSubmitEpic, createSessionEpic, createSubTaskEpic, createTagEpic, createTaskFromTaskGroupTemplateEpic, createTransferEntryEpic, createUserBankAccountEpic, deleteAccountStatementEpic, deleteAutoTransferRuleEpic, deleteBankAccountEpic, deleteBillEpic, deleteBillPayApprovalRuleEpic, deleteCannedResponseEpic, deleteChatSessionEpic, deleteConnectionEpic, deleteFileEpic, deleteFileListEpic, deleteInternationalBankAccountEpic, deletePaymentInstrumentEpic, deletePersonEpic, deleteRemiApprovalRuleEpic, deleteRemiEpic, deleteScheduleAccruedDetailEpic, deleteScheduleDetailEpic, deleteTagEpic, deleteTaskEpic, deleteTaskGroupEpic, deleteTransactionAttachmentEpic, deleteUserBankAccountEpic, dismissCapitalizationOnboardingEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic, downloadAccountingProviderAttachmentEpic, dragNDropTasksEpic, enableChargeCardAutoPayEpic, enableSetupEpic, establishOnboardingPlaidConnectionEpic, establishPlaidConnectionEpic, excludeAccountFromReconciliationEpic, expressInterestChargeCardEpic, extractPolicyDocumentEpic, fetchAccountListEpic, fetchAccountListForAccountTypesEpic, fetchAccountSettingsListForAccountTypesEpic, fetchAccruedScheduleListEpic, fetchActiveTenantEpic, fetchAddressEpic, fetchAggregatedReportEpic, fetchAiAccountantCustomersEpic, fetchAiAccountantJobsEpic, fetchAiAgentsActivationStatusEpic, fetchAllCockpitViewsEpic, fetchAllExpenseAutomationTabsEpic, fetchAllPeopleRequiredViewsEpic, fetchAllTagsEpic, fetchAllTaskGroupsEpic, fetchAllTenantsEpic, fetchAndUpdateVendorRecommendationsEpic, fetchApAgingDetailEpic, fetchApAgingEpic, fetchArAgingDetailEpic, fetchArAgingEpic, fetchAuditReportGroupViewEpic, fetchAuditRuleGroupViewEpic, fetchAutoTransferReviewDetailEpic, fetchAutoTransferRuleHistoryEpic, fetchAutoTransferRulesEpic, fetchBalanceSheetEpic, fetchBalanceSheetForTimeframeEpic, fetchBankAccountsListEpic, fetchBankConnectionsViewEpic, fetchBankCountryNameByIbanEpic, fetchBankNameByRoutingEpic, fetchBankNameBySwiftEpic, fetchBillAndInitializeLocalStoreEpic, fetchBillDetailEpic, fetchBillingAccountsListEpic, fetchBillListEpic, fetchBillListPerTabEpic, fetchBillPayApproversDetailsEpic, fetchBillPayApproversListEpic, fetchBillPayCardEpic, fetchBillPayConfigEpic, fetchBillPaySetupApproverViewEpic, fetchBillPaySetupViewEpic, fetchBulkUploadBatchDetailsEpic, fetchBulkUploadBatchesEpic, fetchCannedResponsesEpic, fetchCardBalanceEpic, fetchCardPolicyDetailEpic, fetchCardPolicyListEpic, fetchCardPolicyMccCategoriesEpic, fetchCardPolicyVendorOptionsEpic, fetchCardProfilesEpic, fetchCashbackDetailEpic, fetchCashBalanceEpic, fetchCashFlowEpic, fetchCashFlowForTimeframeEpic, fetchCashInCashOutEpic, fetchCashManagementBannerEpic, fetchCashManagementOverviewPageEpic, fetchCashManagementRecommendationEpic, fetchCashManagementSettingsEpic, fetchCashPositionEpic, fetchChargeCardConfigEpic, fetchChargeCardDetailEpic, fetchChargeCardDetailPageEpic, fetchChargeCardListEpic, fetchChargeCardListPageEpic, fetchChargeCardPaymentHistoryEpic, fetchChargeCardPaymentPageEpic, fetchChargeCardRepaymentDetailEpic, fetchChargeCardSetupViewEpic, fetchChargeCardsRecurringExpensesEpic, fetchChargeCardStatementListEpic, fetchChargeCardTransactionAttachmentsEpic, fetchChargeCardTransactionListEpic, fetchChargeCardTransactionStatisticsEpic, fetchChatHistoryEpic, fetchChatSessionsForUserEpic, fetchClassListEpic, fetchCockpitContextEpic, fetchCollaborationAuthTokenEpic, fetchCompanyBillingAddressEpic, fetchCompanyConfigEpic, fetchCompanyHealthMetricConfigEpic, fetchCompanyHealthMetricViewEpic, fetchCompanyManagementViewEpic, fetchCompanyMetaDataEpic, fetchCompanyMonthEndReportHistoricDataEpic, fetchCompanyMonthEndReportHistoricDatesEpic, fetchCompanyMonthEndReportTemplatesEpic, fetchCompanyMonthEndReportViewEpic, fetchCompanyOnboardingViewEpic, fetchCompanyPassportViewEpic, fetchCompanyPortfolioViewEpic, fetchCompanyTaskManagerViewEpic, fetchCompletedTransactionsEpic, fetchCreditAccountEpic, fetchCreditAccountRepaymentEpic, fetchCreditAgentMacroEpic, fetchCurrencyConversionValueEpic, fetchDashboardEpic, fetchDashboardLayoutEpic, fetchDebitCardSummaryEpic, fetchDepositAccountDetailEpic, fetchDepositAccountEpic, fetchDepositAccountHistoryEpic, fetchDepositAccountLimitEpic, fetchDepositAccountListEpic, fetchDepositAccountListForCardsEpic, fetchDepositAccountTransactionListEpic, fetchDownloadSchedulesEpic, fetchDuplicateBillPayReviewEpic, fetchDuplicateReimbursementEpic, fetchEditBillDetailPageEpic, fetchEditRemiDetailPageEpic, fetchEligibleActionsForBillEpic, fetchEntityAutoCompleteEpic, fetchEntityHistoryEpic, fetchEntityRecommendationsByTransactionIdEpic, fetchEntityRecommendationsForLineUpdateEpic, fetchExcludedResourcesEpic, fetchExpenseAutomationFluxAnalysisViewEpic, fetchExpenseAutomationInitializeTransactionCategorizationViewLocalDataEpic, fetchExpenseAutomationJeSchedulesEpic, fetchExpenseAutomationJESchedulesPageEpic, fetchExpenseAutomationMarkTransactionAsNotMiscategorizedEpic, fetchExpenseAutomationMissingReceiptsEpic, fetchExpenseAutomationReconciliationsViewEpic, fetchExpenseAutomationSaveTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationViewEpic, fetchExpenseAutomationUpdateTransactionCategorizationEpic, fetchExpenseTrendEpic, fetchExpressPayInitialDetailsEpic, fetchExternalConnectionsEpic, fetchFileEpic, fetchFileListEpic, fetchFinanceStatementEpic, fetchForecastListEpic, fetchGlobalMerchantAutoCompleteViewEpic, fetchGlobalMerchantRecommendationEpic, fetchIncomeTrendEpic, fetchInsightsCardEpic, fetchInternationalWireDynamicFormEpic, fetchIntlVerificationFormEpic, fetchIssueCardPageEpic, fetchMagicLinkBankNameByRoutingEpic, fetchMagicLinkBankNameBySwiftEpic, fetchMagicLinkBillEpic, fetchMagicLinkTenantEpic, fetchManagementViewEpic, fetchMerchantListEpic, fetchMonthClosePerformanceTrendEpic, fetchMonthEndCloseChecksEpic, fetchMoreBatchDetailsEpic, fetchMultipleBatchDetailsEpic, fetchMyProfileEpic, fetchMyProfileViewEpic, fetchNetBurnOrIncomeClassesViewEpic, fetchNetBurnOrIncomeEpic, fetchNetBurnOrIncomeForTimeframeClassesViewEpic, fetchNetBurnOrIncomeForTimeframeEpic, fetchNetBurnOrIncomeStoryCardEpic, fetchNetBurnOrIncomeWithForecastEpic, fetchNotificationSettingsEpic, fetchNotificationSettingsViewEpic, fetchNotificationUnreadCountEpic, fetchNotificationViewEpic, fetchOnboardingCompletedCompaniesEpic, fetchOnboardingCustomerSetupViewEpic, fetchOnboardingCustomerViewEpic, fetchOnboardingViewEpic, fetchOpExByVendorEpic, fetchOpExByVendorReportForTimeframeEpic, fetchOpExByVendorReportSummaryEpic, fetchOpExClassesViewEpic, fetchOpExEpic, fetchOpExForTimeframeClassesViewEpic, fetchOpExReportForTimeframeEpic, fetchOpExWithForecastEpic, fetchOwnerListEpic, fetchParentSubsidiaryManagementViewEpic, fetchPaymentAccountBalanceEpic, fetchPaymentAccountListEpic, fetchPaymentSourcesEpic, fetchPeopleEpic, fetchPeoplePageEpic, fetchPortfolioAllocationEpic, fetchPortfolioViewEpic, fetchPreviousBillsEpic, fetchProfitAndLossClassesViewEpic, fetchProfitAndLossEpic, fetchProfitAndLossForTimeframeClassesViewEpic, fetchProfitAndLossForTimeframeEpic, fetchProfitAndLossForTimeframeProjectViewEpic, fetchProfitAndLossProjectViewEpic, fetchProjectListEpic, fetchQBOConnectionPoolEpic, fetchRecentTransferEpic, fetchRecommendationByEntityIdEpic, fetchRecommendationByEntityNameEpic, fetchRecommendationForAccountSettingsEpic, fetchRecommendationForAccountTypeEpic, fetchRecommendationsAndUpdateMerchantRecommendationsEpic, fetchRecommendedTransactionRowIndexEpic, fetchReferralsEpic, fetchRegisteredInterestsEpic, fetchReimbursementCardEpic, fetchReimbursementConfigEpic, fetchRemiAndInitializeLocalStoreEpic, fetchRemiApproversDetailsEpic, fetchRemiApproversListEpic, fetchRemiDetailEpic, fetchRemiListEpic, fetchRemiListPerTabEpic, fetchRemiSetupApproverViewEpic, fetchRemiSetupViewEpic, fetchRevenueClassesViewEpic, fetchRevenueEpic, fetchRevenueForTimeframeClassesViewEpic, fetchRevenueForTimeframeEpic, fetchRevenueWithForecastEpic, fetchReviewCompanyViewEpic, fetchReviewTransferDetailEpic, fetchRewardsPlanEpic, fetchScheduleAccruedDetailsEpic, fetchScheduleAccruedDetailsPageEpic, fetchScheduleDetailsEpic, fetchScheduleDetailsPageEpic, fetchScheduleListEpic, fetchSchedulesAccountEpic, fetchSkillsEpic, fetchSubscriptionAddOnsEpic, fetchSubscriptionCouponsEpic, fetchSubscriptionCreateEstimateEpic, fetchSubscriptionDetailsEpic, fetchSubscriptionListEpic, fetchSubscriptionPlansEpic, fetchSubscriptionSummaryForTenantEpic, fetchSubscriptionUpdateEstimateEpic, fetchSubscriptionViewEpic, fetchSubTasksEpic, fetchSuggestedQuestionsEpic, fetchTaskDetailEpic, fetchTaskDetailPageEpic, fetchTaskGroupTemplatesEpic, fetchTaskHistoryEpic, fetchTaskListEpic, fetchTaskListPageEpic, fetchTaskManagerMetricsEpic, fetchTasksCardEpic, fetchTopExEpic, fetchTransactionActivityLogEpic, fetchTransactionDetailEpic, fetchTransactionListByAccountEpic, fetchTransactionListByClassEpic, fetchTransactionListByEntityEpic, fetchTransactionListByProjectEpic, fetchTransactionsForEntityEpic, fetchTransactionsListByCategoryTypeEpic, fetchTransferAccountsEpic, fetchTreasuryDetailEpic, fetchTreasuryFundsEpic, fetchTreasuryHistoryEpic, fetchTreasurySetupViewEpic, fetchTreasuryStatementListEpic, fetchTreasuryTaxLetterListEpic, fetchTreasuryTransactionListEpic, fetchTrendForEntityEpic, fetchUserDetailEpic, fetchUserFinancialAccountEpic, fetchUserListByTypeEpic, fetchUserRoleConfigEpic, fetchVendor1099TypeListEpic, fetchVendorAndUpdateBillLocalDataEpic, fetchVendorByNameAndParseInvoiceEpic, fetchVendorDetailsEpic, fetchVendorEpic, fetchVendorFirstReviewAttachmentsEpic, fetchVendorFirstReviewViewEpic, fetchVendorGlobalReviewViewEpic, fetchVendorsFiling1099AllEpic, fetchVendorsFiling1099DownloadEpic, fetchVendorsFiling1099ListEpic, fetchVendorsListEpic, fetchVendorsTabVendorDetailPageViewEpic, fetchVendorsTabVendorDetailsEpic, fetchVendorsTabVendorEpic, fetchVendorTabViewEpic, fetchVendorTypeListEpic, fetchZeniAccountListEpic, fetchZeniAccountsConfigEpic, fetchZeniAccountSetupViewEpic, fetchZeniAccountsPromoCardEpic, fetchZeniAccStatementListEpic, fetchZeniAccStatementPageEpic, fetchZeniUsersEpic, getOnboardingEmailGroupEpic, getOnboardingPlaidLinkTokenEpic, getPaymentAccountsEpic, getPlaidLinkTokenEpic, ignoreExpenseAutomationJEScheduleEpic, improveUsingZeniGPTEpic, includeAccountInReconciliationEpic, initEmailConnectOAuthEpic, initialiseExpenseAutomationReconciliationLocalDataForSelectedAccountIdEpic, initializeAccountMappingViewEpic, initializeAccountSettingsViewEpic, initializeBillPaySetupApproverViewUpdateDataEpic, initializeBillToLocalStoreEpic, initializeCardUserOnboardingLocalDataEpic, initializeCompanyHealthMetricViewLocalDataEpic, initializeDynamicFormEpic, initializeEditPersonEpic, initializeExpenseAutomationJeScheduleLocalDataEpic, initializeInternationalWireLocalDataEpic, initializeIntlVerificationFormEpic, initializeMyProfileLocalDataEpic, initializeOnboardingCustomerViewUpdateDataEpic, initializeRemiSetupApproverViewUpdateDataEpic, initializeRemiToLocalStoreEpic, initializeScheduleAccruedDetailLocalDataEpic, initializeScheduleDetailLocalDataEpic, initializeSubscriptionLocalDataEpic, initializeTaskToLocalStoreEpic, initializeTransactionDetailLocalDataEpic, initializeVendorAddressEpic, initiateChargeCardRepaymentEpic, initiateReportsClassViewRefetchingEpic, invitePeopleEpic, inviteZeniPeopleEpic, issueChargeCardEpic, lockChargeCardEpic, lockChargeCardsEpic, markAsCompleteScheduleDetailEpic, markTransactionAsNotMiscategorizedEpic, notifyMeForFeatureEpic, parallelFetchAccountTransactionListEpic, parallelFetchClassTransactionListEpic, parallelFetchEntityTransactionListEpic, parallelFetchProjectTransactionListEpic, parallelFetchTransactionListByCategoryTypeEpic, parseInvoiceToBillEpic, parseReceiptsToRemiEpic, parseStatementEpic, parseUploadedKybDocumentEpic, parseUploadedKycDocumentEpic, peopleSaveUpdatesEpic, policyDocumentExtractionToRecommendationBridgeEpic, policyRecommendationFromUploadEpic, pollBulkUploadBatchStatusEpic, pusherBatchStatusCompletionEpic, pushToastNotificationEpic, refetchCompletedTransactionsOnBulkUploadSortEpic, refreshBatchDetailsForBatchIdEpic, refreshExpenseAutomationCurrentTabEpic, refreshIntegrationsDataEpic, refreshOpExByVendorReportEpic, rejectVendorGlobalReviewEpic, reorderBillPayApprovalRulesEpic, reorderRemiApprovalRulesEpic, reparseStatementEpic, reportsResyncEpic, resendCardInviteEpic, resendInviteEpic, resendOtpEpic, resendReferralInviteEpic, resendVerifyDeviceOTPEpic, resetTransactionVendorLocalDataEpic, resetVendorDetailLocalDataEpic, resetVendorsTabVendorDetailLocalDataEpic, restoreBulkUploadAutomatchingOnMountEpic, retryBankAccountConnectionEpic, retryBankAccountConnectionForOnboardingEpic, retryExpenseAutomationJEScheduleEpic, retryOrRefundBillEpic, reviewDraftRemisBulkActionEpic, reviewExpenseAutomationFluxAnalysisViewEpic, revokeCardInviteEpic, revokeChargeCardsInviteEpic, saveAccountMappingViewEpic, saveAccountSettingsViewEpic, saveAPIKeyConnectionEpic, saveAutoSweepSettingsEpic, saveBillDetailEpic, saveBillPaySetupApproverViewUpdatesEpic, saveCannedResponseEpic, saveCardOnboardingUserDetailsEpic, saveCompanyBillingAddressEpic, saveCompanyHealthMetricByIdEpic, saveCompanyMonthEndReportEpic, saveCompanyPassportDetailsEpic, saveConnectorCredentialsEpic, saveCreditAgentMacroEpic, saveExpenseAutomationReconciliationDetailsEpic, saveExpenseAutomationReconciliationReviewEpic, saveExternalConnectionEpic, saveMagicLinkBankAccountEpic, saveNewAddressEpic, saveNotificationSettingsEpic, saveOAuthConnectionEpic, saveOnboardingCustomerCompletedStatusEpic, saveOnboardingCustomerNotesEpic, saveOnboardingCustomerViewUpdatesEpic, saveRealTimeApprovalEpic, saveReasonForAuditRuleEpic, saveRemiDetailEpic, saveRemiSetupApproverViewUpdatesEpic, saveScheduleAccruedDetailsEpic, saveScheduleDetailsEpic, saveSubscriptionNotesUpdatesEpic, saveSubscriptionUpdatesEpic, saveTaskDetailEpic, saveTransactionDetailEpic, saveTransactionVendorEpic, saveVendorDetailsViewEpic, saveVendorEpic, saveVendorFirstReviewViewEpic, saveVendorsTabVendorEpic, scheduleTenantCreditScoreCronEpic, searchTransactionsForManualMatchEpic, seedAiCardCreationFormDraftEpic, seedAiCardPolicyFormDraftEpic, sendCompanyMonthEndReportEpic, sendEmailMagicLinkToUserEpic, sendOnboardingCustomerViewInviteEpic, sendOtpEpic, sendReferralInviteEpic, sessionHeartbeatEpic, snoozeTaskEpic, statementCloseDayEpic, stopSubmitEpic, stopSubmitQuestionEpic, submitDraftBillsBulkActionEpic, submitDraftRemisBulkActionEpic, submitExpressPayEpic, submitFeedbackEpic, submitIntlVerificationEpic, submitQuestionEpic, syncTabsAfterAutomatchEpic, toggleReportUIOptionForecastModeEpic, transferMoneyEpic, treasuryTransferMoneyEpic, triggerAiAccountantJobEpic, triggerReviewTabRefetchEpic, unlinkPaymentAccountEpic, unlockChargeCardEpic, unlockChargeCardsEpic, unsnoozeTaskEpic, updateAccountingClassesEnabledEpic, updateAccruedJESchedulesEpic, updateAddressEpic, updateAmountsInScheduleAccruedDetailEpic, updateAmountsInScheduleDetailEpic, updateAutoTransferRuleEpic, updateBusinessVerificationDetailsEpic, updateCapitalizationAccountThresholdEpic, updateCardPolicyEpic, updateCardProfileEpic, updateChargeCardDetailEpic, updateChargeCardLimitEpic, updateChargeCardNameEpic, updateChargeCardsLimitEpic, updateCompanyDetailsEpic, updateCompanyOfficerEpic, updateCompanyPassportLocalStoreDataEpic, updateCompanyTaskManagerViewFiltersEpic, updateDashboardLayoutEpic, updateDebitCardPinAttemptEpic, updateDepositAccountEpic, updateExpenseAutomationReconciliationBalanceLocalDataEpic, updateFileNameEpic, updateFilesMetadataEpic, updateJESchedulesEpic, updateMappedCashAccountEpic, updateMileageDetailsEpic, updateMyProfileEpic, updateNetBurnOrIncomeStoryCardSettingsEpic, updateNotificationViewAllNotificationsStatusEpic, updateNotificationViewNotificationStatusEpic, updateOnboardingCustomerViewCompleteStatusEpic, updateOnboardingCustomerViewDashboardLoadedEpic, updateOnboardingCustomerViewEpic, updateOnboardingCustomerViewLocalStoreDataEpic, updateOnboardingPaymentAccountLoginStatusEpic, updateOnboardingPaymentAccountStatusEpic, updatePaymentAccountEpic, updatePaymentAccountLoginStatusEpic, updatePaymentAccountStatusEpic, updatePhysicalChargeCardAttemptEpic, updatePortfolioAllocationEpic, updatePrimaryContactEpic, updatePrimaryFundingAccountEpic, updateQBOConnectionPoolExternalConnectionEpic, updateReferViewedEpic, updateRemiSetupViewLocalStoreDataEpic, updateReportUIOptionCOABalancesRangeEpic, updateReportUIOptionIsCompareModeEpic, updateReportUIOptionIsCompareModeOnEpic, updateReportUIOptionThisPeriodEpic, updateReportUIOptionTimeFrameEpic, updateSectionAccountsViewEpic, updateSectionClassesViewEpicV2, updateSectionProjectViewEpic, updateSelectedVendorForCreateFlowEpic, updateSetupViewLocalStoreDataEpic, updateStatementInfoEpic, updateTaskFromListViewEpic, updateTaskGroupNameEpic, updateTransactionDetailEpic, updateTreasuryPromoIntroClosedByOutsideClickEpic, updateTreasuryPromoRemindMeLaterClickedEpic, updateTreasuryVideoViewedEpic, updateVendorContactEpic, uploadAccountStatementEpic, uploadMissingAttachmentSuccessEpic, uploadMissingReceiptSuccessEpic, uploadTransactionReceiptSuccessEpic, validateBillsBulkActionEpic, vendorFiling1099UploadDetailsSaveEpic, verifyDeviceWithTwoFAEpic, verifyOtpEpic, verifyUserEpic, waitForBillDetailThenInitializeLocalStoreEpic, waitForForecastListThenFetchNetBurnOrIncomeWithForecastEpic, waitForForecastListThenFetchOpExWithForecastEpic, waitForForecastListThenFetchRevenueWithForecastEpic, waitForMerchantRecommendationFetchThenUpdateRecommendationInMerchantEpic, waitForVendorByIdThenSaveBillUpdatetoLocalStoreEpic, waitForVendorByNameThenParsetoLocalStoreEpic, waitForVendorByNameThenUpdateBillDetailEpic, waitForVendorRecommendationFetchThenUpdateRecommendationInBillEpic, wiseRedirectEpic);
624
+ const combinedEpics = combineEpics(acceptBillPayTermsEpic, acceptBillPayUpdatedTermsEpic, acceptChargeCardTermsEpic, acceptEmployeeRemiTermsEpic, acceptMasterTOSEpic, acceptRemiTermsEpic, acceptTreasuryTermsEpic, acceptZeniAccountTermsEpic, addCardPaymentSourceEpic, approveOAuthConsentEpic, approveOrRejectBillEpic, approveOrRejectBillsBulkActionEpic, approveOrRejectRemiEpic, approveOrRejectRemisBulkActionEpic, approveVendorGlobalReviewEpic, archiveTaskEpic, backgroundRefetchReviewTabEpic, bulkUpdateTaskListEpic, cancelAiAccountantOnboardingEpic, cancelAndDeleteBillEpic, cancelAndDeleteRemiEpic, cancelOrDeleteBillsBulkActionEpic, cancelOrDeleteRemisBulkActionEpic, cancelScheduleAccruedJournalEntryEpic, changeZeniPersonRolesEpic, checkDepositEpic, clearAllEpic, closeChargeCardEpic, closeChargeCardsEpic, companyManagementSavePendingUpdatesEpic, companyManagementSaveUpdatesEpic, confirmCardSetupIntentEpic, convertAmountToHomeCurrencyEpic, createAddressEpic, createAutoTransferRuleEpic, createBankAccountEpic, createCardSetupIntentEpic, createCheckingAccountEpic, createCompanyAddressEpic, createCompanyOfficersEpic, createCompanyUserAddressEpic, createGlobalMerchantEpic, createInternationalBankAccountEpic, createNewSchedulesAccruedEpic, createNewSchedulesEpic, createNewTaskGroupEpic, createPaymentInstrumentEpic, createSessionAndSubmitEpic, createSessionEpic, createTagEpic, createTaskFromTaskGroupTemplateEpic, createTransferEntryEpic, createUserBankAccountEpic, deleteAccountStatementEpic, deleteAutoTransferRuleEpic, excludeAccountFromReconciliationEpic, includeAccountInReconciliationEpic, deleteBankAccountEpic, deleteBillEpic, deleteChatSessionEpic, deleteConnectionEpic, deleteBillPayApprovalRuleEpic, reorderBillPayApprovalRulesEpic, deleteFileEpic, deleteFileListEpic, deleteInternationalBankAccountEpic, deletePaymentInstrumentEpic, deletePersonEpic, deleteRemiApprovalRuleEpic, reorderRemiApprovalRulesEpic, deleteRemiEpic, deleteScheduleAccruedDetailEpic, deleteScheduleDetailEpic, deleteTagEpic, deleteTaskEpic, snoozeTaskEpic, unsnoozeTaskEpic, deleteTaskGroupEpic, deleteTransactionAttachmentEpic, deleteUserBankAccountEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic, sendEmailMagicLinkToUserEpic, sessionHeartbeatEpic, verifyDeviceWithTwoFAEpic, downloadAccountingProviderAttachmentEpic, dragNDropTasksEpic, enableChargeCardAutoPayEpic, enableSetupEpic, establishOnboardingPlaidConnectionEpic, establishPlaidConnectionEpic, expressInterestChargeCardEpic, fetchAccountListEpic, fetchAccountListForAccountTypesEpic, fetchAccountSettingsListForAccountTypesEpic, fetchAccruedScheduleListEpic, fetchActiveTenantEpic, fetchAddressEpic, fetchAiAccountantCustomersEpic, fetchAiAccountantJobsEpic, fetchAllCockpitViewsEpic, fetchAllExpenseAutomationTabsEpic, fetchAllPeopleRequiredViewsEpic, fetchAllTagsEpic, fetchAllTaskGroupsEpic, fetchAllTenantsEpic, fetchAndUpdateVendorRecommendationsEpic, fetchAggregatedReportEpic, fetchApAgingDetailEpic, fetchApAgingEpic, fetchArAgingDetailEpic, fetchArAgingEpic, fetchAuditReportGroupViewEpic, fetchAuditRuleGroupViewEpic, fetchAutoTransferReviewDetailEpic, fetchAutoTransferRuleHistoryEpic, fetchAutoTransferRulesEpic, fetchBalanceSheetEpic, fetchBalanceSheetForTimeframeEpic, fetchBankAccountsListEpic, fetchBankConnectionsViewEpic, fetchBankCountryNameByIbanEpic, fetchBankNameByRoutingEpic, fetchBankNameBySwiftEpic, fetchBillAndInitializeLocalStoreEpic, fetchBillDetailEpic, fetchBillingAccountsListEpic, fetchBillListEpic, fetchBillListPerTabEpic, fetchBillPayApproversDetailsEpic, fetchBillPayApproversListEpic, fetchBillPayCardEpic, fetchBillPayConfigEpic, fetchBillPaySetupApproverViewEpic, fetchBillPaySetupViewEpic, fetchCardBalanceEpic, archiveCardPolicyEpic, createCardPolicyTemplatesEpic, extractPolicyDocumentEpic, policyRecommendationFromUploadEpic, policyDocumentExtractionToRecommendationBridgeEpic, fetchCardPolicyDetailEpic, fetchCardPolicyListEpic, fetchCardPolicyMccCategoriesEpic, fetchCardPolicyVendorOptionsEpic, fetchCardProfilesEpic, updateCardPolicyEpic, fetchCashbackDetailEpic, fetchCashBalanceEpic, fetchCashFlowEpic, fetchCashFlowForTimeframeEpic, fetchCashInCashOutEpic, fetchCashManagementSettingsEpic, saveAutoSweepSettingsEpic, fetchCashManagementBannerEpic, fetchCashManagementOverviewPageEpic, fetchCashManagementRecommendationEpic, fetchRecentTransferEpic, fetchCashPositionEpic, fetchChargeCardConfigEpic, fetchChargeCardDetailEpic, fetchChargeCardDetailPageEpic, fetchChargeCardListEpic, fetchChargeCardListPageEpic, fetchChargeCardPaymentPageEpic, fetchChargeCardRepaymentDetailEpic, fetchChargeCardPaymentHistoryEpic, fetchChargeCardSetupViewEpic, fetchChargeCardStatementListEpic, fetchChargeCardTransactionAttachmentsEpic, fetchChargeCardTransactionListEpic, fetchChargeCardTransactionStatisticsEpic, fetchChargeCardsRecurringExpensesEpic, fetchChatHistoryEpic, fetchChatSessionsForUserEpic, fetchClassListEpic, fetchCollaborationAuthTokenEpic, fetchCockpitContextEpic, fetchCompanyBillingAddressEpic, fetchCompanyConfigEpic, fetchCompanyHealthMetricConfigEpic, fetchCompanyHealthMetricViewEpic, fetchCompanyManagementViewEpic, fetchCompanyMetaDataEpic, fetchCompanyMonthEndReportHistoricDataEpic, fetchCompanyMonthEndReportHistoricDatesEpic, fetchCompanyMonthEndReportTemplatesEpic, fetchCompanyMonthEndReportViewEpic, fetchCompanyOnboardingViewEpic, fetchCompanyPassportViewEpic, fetchCompanyPortfolioViewEpic, fetchCompanyTaskManagerViewEpic, fetchTaskManagerMetricsEpic, updateCompanyTaskManagerViewFiltersEpic, fetchCreditAccountEpic, fetchCreditAccountRepaymentEpic, fetchCreditAgentMacroEpic, fetchCurrencyConversionValueEpic, fetchDashboardEpic, fetchDashboardLayoutEpic, fetchDebitCardSummaryEpic, fetchDepositAccountDetailEpic, fetchDepositAccountEpic, fetchDepositAccountHistoryEpic, fetchDepositAccountLimitEpic, fetchDepositAccountListEpic, fetchDepositAccountListForCardsEpic, fetchDepositAccountTransactionListEpic, fetchDownloadSchedulesEpic, fetchDuplicateBillPayReviewEpic, fetchDuplicateReimbursementEpic, fetchEditBillDetailPageEpic, fetchEditRemiDetailPageEpic, fetchEligibleActionsForBillEpic, fetchEntityAutoCompleteEpic, fetchEntityHistoryEpic, fetchEntityRecommendationsByTransactionIdEpic, fetchEntityRecommendationsForLineUpdateEpic, fetchExcludedResourcesEpic, fetchExpenseAutomationFluxAnalysisViewEpic, fetchExpenseAutomationInitializeTransactionCategorizationViewLocalDataEpic, fetchExpenseAutomationJeSchedulesEpic, fetchExpenseAutomationJESchedulesPageEpic, fetchExpenseAutomationMarkTransactionAsNotMiscategorizedEpic, fetchExpenseAutomationMissingReceiptsEpic, bulkUploadReceiptsEpic, confirmBulkUploadMatchEpic, fetchBulkUploadBatchDetailsEpic, fetchMultipleBatchDetailsEpic, fetchMoreBatchDetailsEpic, fetchBulkUploadBatchesEpic, fetchCompletedTransactionsEpic, refetchCompletedTransactionsOnBulkUploadSortEpic, refreshBatchDetailsForBatchIdEpic, bulkUploadAutomatchingTimeoutEpic, bulkUploadMatchResultToastEpic, syncTabsAfterAutomatchEpic, pollBulkUploadBatchStatusEpic, pusherBatchStatusCompletionEpic, restoreBulkUploadAutomatchingOnMountEpic, searchTransactionsForManualMatchEpic, fetchExpenseAutomationReconciliationsViewEpic, fetchExpenseAutomationSaveTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationViewEpic, fetchExpenseAutomationUpdateTransactionCategorizationEpic, fetchExpenseTrendEpic, fetchExpressPayInitialDetailsEpic, fetchExternalConnectionsEpic, fetchFileEpic, fetchFileListEpic, fetchFinanceStatementEpic, fetchForecastListEpic, initiateReportsClassViewRefetchingEpic, reportsResyncEpic, fetchGlobalMerchantAutoCompleteViewEpic, fetchGlobalMerchantRecommendationEpic, fetchIncomeTrendEpic, fetchInsightsCardEpic, fetchInternationalWireDynamicFormEpic, fetchIntlVerificationFormEpic, fetchIssueCardPageEpic, seedAiCardCreationFormDraftEpic, seedAiCardPolicyFormDraftEpic, applyExtractedPolicyToDraftEpic, fetchMagicLinkBankNameByRoutingEpic, fetchMagicLinkBankNameBySwiftEpic, fetchMagicLinkBillEpic, fetchMagicLinkTenantEpic, fetchManagementViewEpic, fetchMerchantListEpic, fetchMonthClosePerformanceTrendEpic, fetchMonthEndCloseChecksEpic, fetchMyProfileEpic, fetchMyProfileViewEpic, fetchNetBurnOrIncomeClassesViewEpic, fetchNetBurnOrIncomeEpic, fetchNetBurnOrIncomeForTimeframeClassesViewEpic, fetchNetBurnOrIncomeForTimeframeEpic, fetchNetBurnOrIncomeStoryCardEpic, fetchNetBurnOrIncomeWithForecastEpic, fetchNotificationSettingsEpic, fetchNotificationSettingsViewEpic, fetchNotificationUnreadCountEpic, fetchNotificationViewEpic, fetchRegisteredInterestsEpic, fetchOnboardingCompletedCompaniesEpic, fetchOnboardingCustomerSetupViewEpic, fetchOnboardingCustomerViewEpic, fetchOnboardingViewEpic, fetchOpExByVendorEpic, fetchOpExByVendorReportForTimeframeEpic, fetchOpExByVendorReportSummaryEpic, refreshOpExByVendorReportEpic, fetchOpExClassesViewEpic, fetchOpExEpic, fetchOpExForTimeframeClassesViewEpic, fetchOpExReportForTimeframeEpic, fetchOpExWithForecastEpic, fetchOwnerListEpic, fetchParentSubsidiaryManagementViewEpic, fetchPaymentAccountBalanceEpic, fetchPaymentAccountListEpic, fetchPaymentSourcesEpic, fetchPeopleEpic, fetchPeoplePageEpic, fetchPortfolioViewEpic, fetchPreviousBillsEpic, fetchProfitAndLossClassesViewEpic, fetchProfitAndLossEpic, fetchProfitAndLossForTimeframeClassesViewEpic, fetchProfitAndLossForTimeframeProjectViewEpic, fetchProfitAndLossForTimeframeEpic, fetchProfitAndLossProjectViewEpic, fetchProjectListEpic, fetchQBOConnectionPoolEpic, fetchRecommendationByEntityIdEpic, fetchRecommendationByEntityNameEpic, fetchRecommendationForAccountSettingsEpic, fetchRecommendationForAccountTypeEpic, fetchRecommendationsAndUpdateMerchantRecommendationsEpic, fetchRecommendedTransactionRowIndexEpic, fetchReferralsEpic, fetchReimbursementCardEpic, fetchReimbursementConfigEpic, fetchRemiAndInitializeLocalStoreEpic, fetchRemiApproversDetailsEpic, fetchRemiApproversListEpic, fetchRemiDetailEpic, fetchRemiListEpic, fetchRemiListPerTabEpic, fetchRemiSetupApproverViewEpic, fetchRemiSetupViewEpic, fetchRevenueClassesViewEpic, fetchRevenueEpic, fetchRevenueForTimeframeClassesViewEpic, fetchRevenueForTimeframeEpic, fetchRevenueWithForecastEpic, fetchReviewCompanyViewEpic, fetchReviewTransferDetailEpic, fetchRewardsPlanEpic, fetchScheduleAccruedDetailsEpic, fetchScheduleAccruedDetailsPageEpic, fetchScheduleDetailsEpic, fetchScheduleDetailsPageEpic, fetchScheduleListEpic, fetchSchedulesAccountEpic, fetchSubscriptionAddOnsEpic, fetchSubscriptionCouponsEpic, fetchSubscriptionCreateEstimateEpic, fetchSubscriptionDetailsEpic, fetchSubscriptionListEpic, fetchSubscriptionPlansEpic, fetchSubscriptionSummaryForTenantEpic, fetchSubscriptionUpdateEstimateEpic, fetchSubscriptionViewEpic, fetchSuggestedQuestionsEpic, fetchSkillsEpic, fetchTaskDetailEpic, fetchTaskDetailPageEpic, fetchTaskGroupTemplatesEpic, fetchTaskHistoryEpic, fetchTaskListEpic, fetchTaskListPageEpic, fetchTasksCardEpic, fetchTopExEpic, fetchTransactionActivityLogEpic, fetchTransactionDetailEpic, fetchTransactionListByAccountEpic, fetchTransactionListByClassEpic, fetchTransactionListByProjectEpic, fetchTransactionListByEntityEpic, fetchTransactionsForEntityEpic, fetchTransactionsListByCategoryTypeEpic, fetchTransferAccountsEpic, fetchTreasuryDetailEpic, fetchTreasuryFundsEpic, fetchTreasuryHistoryEpic, fetchTreasurySetupViewEpic, fetchTreasuryStatementListEpic, fetchTreasuryTaxLetterListEpic, fetchTreasuryTransactionListEpic, updatePortfolioAllocationEpic, fetchPortfolioAllocationEpic, fetchTrendForEntityEpic, fetchUserDetailEpic, fetchUserFinancialAccountEpic, fetchUserListByTypeEpic, fetchUserRoleConfigEpic, fetchVendor1099TypeListEpic, fetchVendorAndUpdateBillLocalDataEpic, fetchVendorByNameAndParseInvoiceEpic, fetchVendorDetailsEpic, fetchVendorEpic, fetchVendorFirstReviewAttachmentsEpic, fetchVendorFirstReviewViewEpic, fetchVendorGlobalReviewViewEpic, fetchVendorsFiling1099AllEpic, fetchVendorsFiling1099DownloadEpic, fetchVendorsFiling1099ListEpic, fetchVendorsListEpic, fetchVendorsTabVendorDetailPageViewEpic, fetchVendorsTabVendorDetailsEpic, fetchVendorsTabVendorEpic, fetchVendorTabViewEpic, fetchVendorTypeListEpic, fetchZeniAccountListEpic, fetchZeniAccountsConfigEpic, fetchZeniAccountSetupViewEpic, fetchZeniAccountsPromoCardEpic, fetchZeniAccStatementListEpic, fetchZeniAccStatementPageEpic, fetchZeniUsersEpic, getOnboardingEmailGroupEpic, getOnboardingPlaidLinkTokenEpic, getPaymentAccountsEpic, getPlaidLinkTokenEpic, ignoreExpenseAutomationJEScheduleEpic, improveUsingZeniGPTEpic, initialiseExpenseAutomationReconciliationLocalDataForSelectedAccountIdEpic, initializeAccountMappingViewEpic, initializeAccountSettingsViewEpic, initializeBillPaySetupApproverViewUpdateDataEpic, initializeBillToLocalStoreEpic, initializeCardUserOnboardingLocalDataEpic, initializeCompanyHealthMetricViewLocalDataEpic, initializeDynamicFormEpic, initializeEditPersonEpic, initializeExpenseAutomationJeScheduleLocalDataEpic, initializeInternationalWireLocalDataEpic, initializeIntlVerificationFormEpic, initializeMyProfileLocalDataEpic, initializeOnboardingCustomerViewUpdateDataEpic, initializeRemiSetupApproverViewUpdateDataEpic, initializeRemiToLocalStoreEpic, initializeScheduleAccruedDetailLocalDataEpic, initializeScheduleDetailLocalDataEpic, initializeSubscriptionLocalDataEpic, initializeTaskToLocalStoreEpic, initializeTransactionDetailLocalDataEpic, initializeVendorAddressEpic, initiateChargeCardRepaymentEpic, invitePeopleEpic, inviteZeniPeopleEpic, issueChargeCardEpic, lockChargeCardEpic, lockChargeCardsEpic, markAsCompleteScheduleDetailEpic, markTransactionAsNotMiscategorizedEpic, notifyMeForFeatureEpic, parallelFetchAccountTransactionListEpic, parallelFetchClassTransactionListEpic, parallelFetchProjectTransactionListEpic, parallelFetchEntityTransactionListEpic, parallelFetchTransactionListByCategoryTypeEpic, parseInvoiceToBillEpic, parseReceiptsToRemiEpic, peopleSaveUpdatesEpic, pushToastNotificationEpic, refreshExpenseAutomationCurrentTabEpic, refreshIntegrationsDataEpic, rejectVendorGlobalReviewEpic, resendCardInviteEpic, resendInviteEpic, resendOtpEpic, resendVerifyDeviceOTPEpic, resendReferralInviteEpic, resetTransactionVendorLocalDataEpic, resetVendorDetailLocalDataEpic, resetVendorsTabVendorDetailLocalDataEpic, retryBankAccountConnectionEpic, retryBankAccountConnectionForOnboardingEpic, retryExpenseAutomationJEScheduleEpic, retryOrRefundBillEpic, validateBillsBulkActionEpic, reviewDraftRemisBulkActionEpic, reviewExpenseAutomationFluxAnalysisViewEpic, revokeCardInviteEpic, revokeChargeCardsInviteEpic, saveAccountMappingViewEpic, saveAccountSettingsViewEpic, saveAPIKeyConnectionEpic, saveBillDetailEpic, saveBillPaySetupApproverViewUpdatesEpic, saveCardOnboardingUserDetailsEpic, saveCompanyBillingAddressEpic, saveCompanyHealthMetricByIdEpic, saveCompanyMonthEndReportEpic, saveCompanyPassportDetailsEpic, initEmailConnectOAuthEpic, saveConnectorCredentialsEpic, saveCreditAgentMacroEpic, saveExpenseAutomationReconciliationDetailsEpic, saveExpenseAutomationReconciliationReviewEpic, saveExternalConnectionEpic, saveMagicLinkBankAccountEpic, saveNewAddressEpic, saveNotificationSettingsEpic, saveOAuthConnectionEpic, saveOnboardingCustomerCompletedStatusEpic, saveOnboardingCustomerNotesEpic, saveOnboardingCustomerViewUpdatesEpic, saveRealTimeApprovalEpic, saveReasonForAuditRuleEpic, saveRemiDetailEpic, saveRemiSetupApproverViewUpdatesEpic, saveScheduleAccruedDetailsEpic, saveScheduleDetailsEpic, saveSubscriptionNotesUpdatesEpic, saveSubscriptionUpdatesEpic, saveTaskDetailEpic, saveTransactionDetailEpic, saveTransactionVendorEpic, saveVendorDetailsViewEpic, saveVendorEpic, saveVendorFirstReviewViewEpic, saveVendorsTabVendorEpic, scheduleTenantCreditScoreCronEpic, sendCompanyMonthEndReportEpic, sendOnboardingCustomerViewInviteEpic, sendOtpEpic, sendReferralInviteEpic, statementCloseDayEpic, stopSubmitEpic, stopSubmitQuestionEpic, submitDraftBillsBulkActionEpic, submitDraftRemisBulkActionEpic, submitExpressPayEpic, submitFeedbackEpic, submitIntlVerificationEpic, submitQuestionEpic, toggleReportUIOptionForecastModeEpic, transferMoneyEpic, treasuryTransferMoneyEpic, triggerAiAccountantJobEpic, triggerReviewTabRefetchEpic, unlinkPaymentAccountEpic, unlockChargeCardEpic, unlockChargeCardsEpic, updateAccruedJESchedulesEpic, updateAddressEpic, updateAmountsInScheduleAccruedDetailEpic, updateAmountsInScheduleDetailEpic, updateAutoTransferRuleEpic, updateBusinessVerificationDetailsEpic, updateCardProfileEpic, updateChargeCardDetailEpic, updateChargeCardLimitEpic, updateChargeCardNameEpic, updateChargeCardsLimitEpic, updateAccountingClassesEnabledEpic, dismissCapitalizationOnboardingEpic, updateCapitalizationAccountThresholdEpic, updateCompanyDetailsEpic, updateCompanyOfficerEpic, updateCompanyPassportLocalStoreDataEpic, updateDashboardLayoutEpic, updateDebitCardPinAttemptEpic, updateDepositAccountEpic, updateExpenseAutomationReconciliationBalanceLocalDataEpic, updateFileNameEpic, updateFilesMetadataEpic, updateJESchedulesEpic, updateMappedCashAccountEpic, updateMileageDetailsEpic, updateMyProfileEpic, updateNetBurnOrIncomeStoryCardSettingsEpic, updateNotificationViewAllNotificationsStatusEpic, updateNotificationViewNotificationStatusEpic, updateOnboardingCustomerViewCompleteStatusEpic, acknowledgeOnboardingAiActivationViewedEpic, acknowledgeOnboardingAiFinanceTeamEpic, fetchAiAgentsActivationStatusEpic, updateOnboardingCustomerViewDashboardLoadedEpic, updateOnboardingCustomerViewEpic, updateOnboardingCustomerViewLocalStoreDataEpic, updateOnboardingPaymentAccountLoginStatusEpic, updateOnboardingPaymentAccountStatusEpic, updatePaymentAccountEpic, updatePaymentAccountLoginStatusEpic, updatePaymentAccountStatusEpic, updatePhysicalChargeCardAttemptEpic, updatePrimaryContactEpic, updatePrimaryFundingAccountEpic, updateQBOConnectionPoolExternalConnectionEpic, updateReferViewedEpic, updateRemiSetupViewLocalStoreDataEpic, updateReportUIOptionCOABalancesRangeEpic, updateReportUIOptionIsCompareModeEpic, updateReportUIOptionIsCompareModeOnEpic, updateReportUIOptionThisPeriodEpic, updateReportUIOptionTimeFrameEpic, updateSectionAccountsViewEpic, updateSectionClassesViewEpicV2, updateSectionProjectViewEpic, updateSelectedVendorForCreateFlowEpic, updateSetupViewLocalStoreDataEpic, parseUploadedKycDocumentEpic, parseUploadedKybDocumentEpic, updateTaskFromListViewEpic, updateTaskGroupNameEpic, fetchCannedResponsesEpic, saveCannedResponseEpic, deleteCannedResponseEpic, updateTransactionDetailEpic, updateTreasuryPromoIntroClosedByOutsideClickEpic, updateTreasuryPromoRemindMeLaterClickedEpic, updateTreasuryVideoViewedEpic, updateVendorContactEpic, uploadAccountStatementEpic, parseStatementEpic, reparseStatementEpic, updateStatementInfoEpic, uploadMissingAttachmentSuccessEpic, uploadMissingReceiptSuccessEpic, uploadTransactionReceiptSuccessEpic, vendorFiling1099UploadDetailsSaveEpic, verifyOtpEpic, verifyUserEpic, waitForBillDetailThenInitializeLocalStoreEpic, waitForForecastListThenFetchNetBurnOrIncomeWithForecastEpic, waitForForecastListThenFetchOpExWithForecastEpic, waitForForecastListThenFetchRevenueWithForecastEpic, waitForMerchantRecommendationFetchThenUpdateRecommendationInMerchantEpic, waitForVendorByIdThenSaveBillUpdatetoLocalStoreEpic, waitForVendorByNameThenParsetoLocalStoreEpic, waitForVendorByNameThenUpdateBillDetailEpic, waitForVendorRecommendationFetchThenUpdateRecommendationInBillEpic, wiseRedirectEpic);
627
625
  const rootEpic = (action$, store$, dependencies) => combinedEpics(action$, store$, dependencies).pipe(map(identity), catchError((error, source) => {
628
626
  console.error(error);
629
627
  return source;
package/lib/esm/index.js CHANGED
@@ -379,14 +379,14 @@ import { getAllTags } from './view/tagView/tagViewSelector';
379
379
  import { deleteCannedResponse, fetchCannedResponses, saveCannedResponse, } from './view/taskManager/cannedResponsesView/cannedResponsesReducer';
380
380
  import { getCannedResponsesView } from './view/taskManager/cannedResponsesView/cannedResponsesSelector';
381
381
  import { initialTaskDetail, initialTaskDetailLocalData, } from './view/taskManager/taskDetailView/taskDetail';
382
- import { archiveTask, createSubTask, deleteTask, discardTaskUpdatesInLocalStore, fetchSubTasks, fetchTaskDetailPage, resetSubTaskCreateStatus, saveTaskDetail, saveTaskUpdatesToLocalStore, snoozeTask, unsnoozeTask, } from './view/taskManager/taskDetailView/taskDetailReducer';
382
+ import { archiveTask, deleteTask, discardTaskUpdatesInLocalStore, fetchTaskDetailPage, saveTaskDetail, saveTaskUpdatesToLocalStore, snoozeTask, unsnoozeTask, } from './view/taskManager/taskDetailView/taskDetailReducer';
383
383
  import { allTaskPriority, allTaskStatus, getTaskDetail, } from './view/taskManager/taskDetailView/taskDetailSelector';
384
384
  import { createTaskFromTaskGroupTemplate } from './view/taskManager/taskGroupTemplateView/taskGroupTemplateViewReducer';
385
385
  import { createNewTaskGroup, deleteTaskGroup, fetchAllTaskGroups, updateTaskGroupName, } from './view/taskManager/taskGroupView/taskGroupViewReducer';
386
386
  import { ALL_TASK_LIST_TABS, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, toDueDateGroupKeyType, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, } from './view/taskManager/taskListView/taskList';
387
387
  import { bulkUpdateTaskList, dragNDropTasks, fetchTaskListPage, initiateTaskListLocalData, removeTaskFromList, updateTaskFilters, updateTaskFromListView, updateTaskListLocalData, updateTaskListSearchText, updateTaskListTab, updateTaskListUIState, } from './view/taskManager/taskListView/taskListReducer';
388
388
  import { getAllTasks, } from './view/taskManager/taskListView/taskListSelector';
389
- import { getDueDateValueFromDueDateGroupId, getTaskUpdates, sortSubtasks, } from './view/taskManager/taskListView/taskListViewHelpers';
389
+ import { getDueDateValueFromDueDateGroupId, getTaskUpdates, } from './view/taskManager/taskListView/taskListViewHelpers';
390
390
  import { fetchTasksCard } from './view/tasksCard/tasksCardReducer';
391
391
  import { fetchTopEx, updateTopExDownloadState, updateTopExTimeFrame, } from './view/topEx/topExReducer';
392
392
  import { getAllTopExpenses, getTop6Expenses, getTopExpenses, } from './view/topEx/topExSelector';
@@ -632,7 +632,7 @@ export { fetchGlobalMerchantRecommendation, createGlobalMerchant, updateCreateGl
632
632
  export { approveVendorGlobalReview, rejectVendorGlobalReview, fetchVendorGlobalReviewView, updateSelectedGlobalMerchant, updateVendorGlobalReviewViewUIState, getVendorGlobalReviewView, getTenantMerchantByMerchantId, toVendorGlobalReviewColumnSortKeyType, updateVendorGlobalReviewViewLocalData, };
633
633
  export { fetchArAging, updateArAgingUIState, fetchArAgingDetail, updateArAgingDetailUIState, getArAgingReport, getArAgingDetailForCustomer, updateArAgingNodeCollapseState, };
634
634
  export { toRecurringBillFrequency, toRecurringBillFrequencyStrict, };
635
- export { getTaskGroupById, getAllTasks, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, createSubTask, resetSubTaskCreateStatus, fetchSubTasks, archiveTask, fetchCannedResponses, saveCannedResponse, deleteCannedResponse, getCannedResponsesView, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, deleteTask, discardTaskUpdatesInLocalStore, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, getTaskUpdates, sortSubtasks, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, toDueDateGroupKeyType, updateTaskFromListView, updateTaskListTab, removeTaskFromList, snoozeTask, unsnoozeTask, convertHHMMStrToMinutes, initialTaskDetailLocalData, ALL_TASK_LIST_TABS, };
635
+ export { getTaskGroupById, getAllTasks, fetchTaskListPage, getTaskDetail, fetchTaskDetailPage, saveTaskUpdatesToLocalStore, saveTaskDetail, archiveTask, fetchCannedResponses, saveCannedResponse, deleteCannedResponse, getCannedResponsesView, updateTaskListSearchText, updateTaskListUIState, allTaskStatus, allTaskPriority, updateTaskFilters, TASK_LIST_FILTER_CATEGORIES, TASK_LIST_GROUP_BY_CATEGORIES, deleteTask, discardTaskUpdatesInLocalStore, bulkUpdateTaskList, createNewTaskGroup, initiateTaskListLocalData, deleteTaskGroup, updateTaskListLocalData, dragNDropTasks, updateTaskGroupName, toTaskListGroupByKeyType, toTaskListGroupByKeyTypeStrict, getTaskUpdates, fetchAllTaskGroups, initialTaskDetail, getDueDateValueFromDueDateGroupId, toPriorityCodeType, toTaskStatusCodeType, toDueDateGroupKeyType, updateTaskFromListView, updateTaskListTab, removeTaskFromList, snoozeTask, unsnoozeTask, convertHHMMStrToMinutes, initialTaskDetailLocalData, ALL_TASK_LIST_TABS, };
636
636
  export { getAllTags, fetchTagList, createTag, deleteTag, };
637
637
  export { getAllCardsAndBankPaymentMethods, createCardSetupIntent, confirmCardSetupIntent, addCardPaymentSource, fetchPaymentSources, resetCardPaymentErrorStatuses, clearCardPaymentView, };
638
638
  export { getAuditReportGroupViewSelectorView, getAuditRuleGroupViewSelectorView, getUserFromAllUsers, fetchAuditRuleGroupView, fetchAuditReportGroupView, saveReasonForAuditRule, clearAuditReportGroupViewByCompanyId, };
@@ -18,9 +18,6 @@ export const fetchCompanyTaskManagerViewEpic = (actions$, _state$, zeniAPI) => a
18
18
  ...(filters?.categories != null && filters.categories.length > 0
19
19
  ? { filter_by: toFilterByPayload(filters) }
20
20
  : {}),
21
- task_group_scopes: filters?.taskGroupScopes != null && filters.taskGroupScopes.length > 0
22
- ? filters.taskGroupScopes
23
- : ['internal'],
24
21
  };
25
22
  return zeniAPI
26
23
  .getJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/cockpit-panels/tasks-es?query=${encodeURIComponent(JSON.stringify(queryValue))}`)
@@ -3,13 +3,7 @@ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
3
  import { isSuccessResponse } from '../../../responsePayload';
4
4
  import { fetchTaskManagerMetrics, updateTaskManagerMetrics, updateTaskManagerMetricsOnFailure, } from '../companyTaskManagerViewReducer';
5
5
  export const fetchTaskManagerMetricsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchTaskManagerMetrics.match), switchMap(() => {
6
- // Include subtasks so the cockpit count matches the customer dashboard
7
- // pending count. The dashboard counts every task (subtasks included);
8
- // cockpit's default of include_subtasks=false otherwise undercounts.
9
- const query = JSON.stringify({
10
- is_filter_by_logged_in_user: true,
11
- include_subtasks: true,
12
- });
6
+ const query = JSON.stringify({ is_filter_by_logged_in_user: true });
13
7
  return zeniAPI
14
8
  .getJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/cockpit-panels/tasks-es-metrics?query=${encodeURIComponent(query)}`)
15
9
  .pipe(mergeMap((response) => {
@@ -168,6 +168,13 @@ const expenseAutomationTransactionsView = createSlice({
168
168
  if (searchString !== undefined) {
169
169
  draft.transactionCategorizationView[selectedTab].uiState.searchString =
170
170
  searchString;
171
+ // When search is cleared, drop all sub-tab snapshots. A snapshot
172
+ // captured while search was active holds filtered row IDs — restoring
173
+ // it after the clear would show stale search results instead of the
174
+ // full unfiltered list.
175
+ if (searchString === '' && selectedTab === 'autoCategorized') {
176
+ draft.autoCategorizedSubTabCache = {};
177
+ }
171
178
  }
172
179
  draft.transactionCategorizationView[selectedTab].error = undefined;
173
180
  const monthYearPeriod = {
@@ -28,7 +28,6 @@ export const initializeTaskToLocalStoreEpic = (actions$, state$) => actions$.pip
28
28
  recurringStartDate: task.recurringStartDate,
29
29
  timeSpent: task.timeSpent,
30
30
  isPrivate: task.isPrivate,
31
- taskGroupId: task.taskGroupIds[0],
32
31
  };
33
32
  const actions = [
34
33
  saveTaskUpdatesToLocalStore({ taskDetailLocalData, taskId }),
@@ -6,52 +6,23 @@ import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
6
6
  import { updateTasks } from '../../../../entity/task/taskReducer';
7
7
  import { getTaskById } from '../../../../entity/task/taskSelector';
8
8
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
9
- import { removeTaskFromGroupBucket, updateTaskListOnNewTaskCreationSuccess, } from '../../taskListView/taskListReducer';
9
+ import { updateTaskListOnNewTaskCreationSuccess } from '../../taskListView/taskListReducer';
10
10
  import { saveTaskDetail, saveTaskSuccessOrFailure } from '../taskDetailReducer';
11
11
  export const saveTaskDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(saveTaskDetail.match), mergeMap((action) => {
12
12
  const { taskId, taskGroupId } = action.payload;
13
13
  const state = state$.value;
14
14
  const isTaskListFetched = state.taskListState.fetchState === 'Completed';
15
- // On edit, prefer the locally-edited group; fall back to the entity's
16
- // current group. On create, use the taskGroupId from the action payload.
17
- const localTaskGroupId = taskId != null
18
- ? state.taskDetailState.editTaskStateById[taskId]?.taskDetailLocalData
19
- ?.taskGroupId
20
- : undefined;
21
- // groupWasCleared distinguishes "user explicitly cleared the group"
22
- // (localTaskGroupId === null → send []) from "user did not touch it"
23
- // (undefined → fall back to entity). Without this, the `??` fallback
24
- // would resurrect the stale entity value after a clear.
25
- const groupWasCleared = taskId != null && localTaskGroupId === null;
26
- const entityTaskGroupIds = taskId != null
27
- ? (getTaskById(state.taskState, taskId)?.taskGroupIds ?? [])
28
- : [];
29
- // Distinguish three save shapes:
30
- // - cleared → []
31
- // - user picked a different group locally → [localTaskGroupId]
32
- // - no local edit → entire entityTaskGroupIds (preserves multi-
33
- // group membership; without this, unrelated field edits silently
34
- // drop extra groups).
35
- const localGroupChanged = localTaskGroupId != null;
36
- const taskGroupIdsForPayload = groupWasCleared
37
- ? []
38
- : localGroupChanged
39
- ? [localTaskGroupId]
40
- : taskId != null
41
- ? entityTaskGroupIds
42
- : taskGroupId != null
43
- ? [taskGroupId]
44
- : [];
45
- // Keep `updatedTaskGroupId` (single id) for downstream list-update
46
- // dispatches that still bucket against one group at a time.
47
- const updatedTaskGroupId = taskGroupIdsForPayload[0];
48
- const payload = prepareTaskPayload(state, taskId, taskGroupIdsForPayload);
15
+ const updatedTaskGroupId = taskId == null
16
+ ? taskGroupId
17
+ : getTaskById(state.taskState, taskId)?.taskGroupIds[0];
18
+ const payload = prepareTaskPayload(state, taskId, updatedTaskGroupId);
49
19
  const saveTaskApi = taskId != null
50
20
  ? zeniAPI.putAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks/${taskId}`, payload)
51
21
  : zeniAPI.postAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks`, payload);
52
22
  return saveTaskApi.pipe(mergeMap((response) => {
53
23
  if (isSuccessResponse(response) &&
54
24
  response.data != null &&
25
+ updatedTaskGroupId != null &&
55
26
  response.data.tasks.length > 0) {
56
27
  const newTaskId = response.data.tasks[0].task_id;
57
28
  const actions = [
@@ -62,24 +33,7 @@ export const saveTaskDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe(f
62
33
  taskId,
63
34
  }),
64
35
  ];
65
- // Only suppress the list-insert on the live/completed tabs
66
- // when the saved task's status no longer matches the tab —
67
- // otherwise doUpdateTaskList writes the row back into the
68
- // current tab's grouping arrays even after updateTasks moved
69
- // it to Completed. Archived/snoozed/deleted are owned by
70
- // their dedicated actions and must keep the pre-PR optimistic
71
- // update path so their grouping arrays don't go stale.
72
- const savedTask = response.data.tasks[0];
73
- const savedIsCompleted = savedTask.status?.code === 'resolved';
74
- const activeTab = state.taskListState.currentTab;
75
- const isLiveOrCompletedTab = activeTab === 'live' || activeTab === 'completed';
76
- const statusMatchesActiveTab = !isLiveOrCompletedTab ||
77
- (savedIsCompleted && activeTab === 'completed') ||
78
- (!savedIsCompleted && activeTab === 'live');
79
- if (isTaskListFetched === true &&
80
- groupWasCleared === false &&
81
- updatedTaskGroupId != null &&
82
- statusMatchesActiveTab === true) {
36
+ if (isTaskListFetched === true) {
83
37
  actions.push(updateTaskListOnNewTaskCreationSuccess({
84
38
  taskGroupId: updatedTaskGroupId,
85
39
  task: response.data.tasks[0],
@@ -88,21 +42,6 @@ export const saveTaskDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe(f
88
42
  : undefined,
89
43
  }));
90
44
  }
91
- else if (isTaskListFetched === true &&
92
- groupWasCleared === true &&
93
- taskId != null) {
94
- // Group was cleared — skip the list-insert action (no
95
- // destination bucket) and explicitly drop the row from every
96
- // previously-held group so the list re-renders without the
97
- // stale entry under the old group until next refetch.
98
- const previousTask = getTaskById(state.taskState, taskId);
99
- previousTask?.taskGroupIds.forEach((previousGroupId) => {
100
- actions.push(removeTaskFromGroupBucket({
101
- taskId,
102
- taskGroupId: previousGroupId,
103
- }));
104
- });
105
- }
106
45
  return from(actions);
107
46
  }
108
47
  else {
@@ -128,7 +67,7 @@ export const saveTaskDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe(f
128
67
  error: createZeniAPIStatus('Unexpected Error', 'Save Task REST API call errored out' + JSON.stringify(error)),
129
68
  }))));
130
69
  }));
131
- const prepareTaskPayload = (state, taskId, taskGroupIds) => {
70
+ const prepareTaskPayload = (state, taskId, taskGroupId) => {
132
71
  const { taskDetailState, taskState } = state;
133
72
  const syncToken = taskId != null ? (getTaskById(taskState, taskId)?.syncToken ?? '') : '';
134
73
  const sourceState = taskId != null
@@ -157,7 +96,7 @@ const prepareTaskPayload = (state, taskId, taskGroupIds) => {
157
96
  ? (localData.recurringDaysOfWeek ?? [])
158
97
  : [],
159
98
  sync_token: syncToken,
160
- task_group_ids: taskGroupIds,
99
+ task_group_ids: taskGroupId != null ? [taskGroupId] : [],
161
100
  time_spent: convertHHMMStrToMinutes(localData.timeSpent),
162
101
  group_assignees: localData.groupAssignees,
163
102
  ...(taskId == null ? { is_private: localData.isPrivate ?? false } : {}),
@@ -6,11 +6,6 @@ import { initialTaskDetail, } from './taskDetail';
6
6
  export const initialState = {
7
7
  newTaskState: initialTaskDetail,
8
8
  editTaskStateById: {},
9
- subTaskCreateStatus: {
10
- fetchState: 'Not-Started',
11
- error: undefined,
12
- },
13
- subTaskListFetchStatusByParentId: {},
14
9
  taskHistoryById: {},
15
10
  };
16
11
  const taskDetailView = createSlice({
@@ -55,7 +50,7 @@ const taskDetailView = createSlice({
55
50
  updateEditTaskFetchStatus(draft, action) {
56
51
  const { taskId, fetchState, error } = action.payload;
57
52
  draft.editTaskStateById[taskId] = {
58
- ...(draft.editTaskStateById[taskId] ?? initialTaskDetail),
53
+ ...draft.editTaskStateById[taskId],
59
54
  fetchTaskStatus: {
60
55
  fetchState,
61
56
  error: fetchState === 'Error' ? error : undefined,
@@ -323,59 +318,10 @@ const taskDetailView = createSlice({
323
318
  error,
324
319
  };
325
320
  },
326
- createSubTask: {
327
- reducer(draft) {
328
- draft.subTaskCreateStatus = {
329
- fetchState: 'In-Progress',
330
- error: undefined,
331
- };
332
- },
333
- prepare(payload) {
334
- return { payload };
335
- },
336
- },
337
- createSubTaskSuccessOrFailure(draft, action) {
338
- const { fetchState, error } = action.payload;
339
- draft.subTaskCreateStatus = {
340
- fetchState,
341
- error,
342
- };
343
- },
344
- resetSubTaskCreateStatus(draft) {
345
- draft.subTaskCreateStatus = {
346
- ...initialState.subTaskCreateStatus,
347
- };
348
- },
349
- fetchSubTasks: {
350
- reducer(draft, action) {
351
- const { parentTaskId } = action.payload;
352
- draft.subTaskListFetchStatusByParentId[parentTaskId] = {
353
- fetchState: 'In-Progress',
354
- error: undefined,
355
- };
356
- },
357
- prepare(parentTaskId) {
358
- return { payload: { parentTaskId } };
359
- },
360
- },
361
- updateSubTasks(draft, action) {
362
- const { parentTaskId } = action.payload;
363
- draft.subTaskListFetchStatusByParentId[parentTaskId] = {
364
- fetchState: 'Completed',
365
- error: undefined,
366
- };
367
- },
368
- updateSubTasksFetchStatus(draft, action) {
369
- const { parentTaskId, fetchState, error } = action.payload;
370
- draft.subTaskListFetchStatusByParentId[parentTaskId] = {
371
- fetchState,
372
- error,
373
- };
374
- },
375
321
  clearTaskDetail(draft) {
376
322
  Object.assign(draft, initialState);
377
323
  },
378
324
  },
379
325
  });
380
- export const { fetchTaskDetailPage, fetchTaskDetail, initializeTaskToLocalStore, updateEditTaskFetchStatus, saveTaskUpdatesToLocalStore, discardTaskUpdatesInLocalStore, saveTaskDetail, archiveTask, archiveTaskSuccessOrFailure, saveTaskSuccessOrFailure, createSubTask, createSubTaskSuccessOrFailure, resetSubTaskCreateStatus, fetchSubTasks, updateSubTasks, updateSubTasksFetchStatus, deleteTask, removeTaskDetail, deleteTaskSuccessOrFailure, snoozeTask, snoozeTaskSuccessOrFailure, unsnoozeTask, fetchTaskHistory, updateTaskHistory, updateTaskHistoryFetchStatus, clearTaskDetail, updateCreatedTagToLocalStore, updateDeletedTagToLocalStore, } = taskDetailView.actions;
326
+ export const { fetchTaskDetailPage, fetchTaskDetail, initializeTaskToLocalStore, updateEditTaskFetchStatus, saveTaskUpdatesToLocalStore, discardTaskUpdatesInLocalStore, saveTaskDetail, archiveTask, archiveTaskSuccessOrFailure, saveTaskSuccessOrFailure, deleteTask, removeTaskDetail, deleteTaskSuccessOrFailure, snoozeTask, snoozeTaskSuccessOrFailure, unsnoozeTask, fetchTaskHistory, updateTaskHistory, updateTaskHistoryFetchStatus, clearTaskDetail, updateCreatedTagToLocalStore, updateDeletedTagToLocalStore, } = taskDetailView.actions;
381
327
  export default taskDetailView.reducer;