@zeniai/client-epic-state 5.0.72 → 5.0.74

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 (163) hide show
  1. package/lib/commonStateTypes/cacheOverrideFetchReducer.d.ts +17 -0
  2. package/lib/commonStateTypes/cacheOverrideFetchReducer.js +20 -0
  3. package/lib/commonStateTypes/filterPrimitives.d.ts +23 -0
  4. package/lib/commonStateTypes/filterPrimitives.js +21 -0
  5. package/lib/commonStateTypes/pusherActions.d.ts +11 -0
  6. package/lib/commonStateTypes/pusherActions.js +6 -0
  7. package/lib/coreEpics.js +1 -1
  8. package/lib/entity/account/accountSelector.d.ts +27 -1
  9. package/lib/entity/account/accountSelector.js +47 -1
  10. package/lib/entity/account/accountState.d.ts +6 -1
  11. package/lib/entity/account/accountState.js +11 -4
  12. package/lib/entity/account/subAccountSelector.d.ts +1 -1
  13. package/lib/entity/aiAccountantCustomer/aiAccountantCustomerPayload.js +1 -3
  14. package/lib/entity/aiAccountantCustomer/aiAccountantCustomerReducer.js +1 -2
  15. package/lib/entity/aiAccountantCustomer/aiAccountantCustomerSelector.d.ts +1 -1
  16. package/lib/entity/chargeCard/chargeCardReducer.d.ts +19 -2
  17. package/lib/entity/chargeCard/chargeCardReducer.js +35 -2
  18. package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.d.ts +14 -1
  19. package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.js +36 -2
  20. package/lib/entity/class/classSelector.d.ts +35 -0
  21. package/lib/entity/class/classSelector.js +50 -0
  22. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksPayload.d.ts +2 -0
  23. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksPayload.js +2 -0
  24. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +2 -0
  25. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +1 -1
  26. package/lib/entity/sectionProjectView/sectionProjectViewSelector.js +1 -1
  27. package/lib/entity/tenant/SessionManager.js +6 -3
  28. package/lib/entity/tenant/clearAllEpic.d.ts +2 -2
  29. package/lib/entity/tenant/clearAllEpic.js +2 -2
  30. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.js +6 -2
  31. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.js +6 -2
  32. package/lib/entity/tenant/tenantReducer.js +6 -1
  33. package/lib/entity/transaction/payloadTypes/transactionLinePayload.js +3 -1
  34. package/lib/epic.d.ts +9 -9
  35. package/lib/epic.js +10 -10
  36. package/lib/esm/commonStateTypes/cacheOverrideFetchReducer.js +16 -0
  37. package/lib/esm/commonStateTypes/filterPrimitives.js +20 -0
  38. package/lib/esm/commonStateTypes/pusherActions.js +3 -0
  39. package/lib/esm/coreEpics.js +1 -1
  40. package/lib/esm/entity/account/accountSelector.js +46 -1
  41. package/lib/esm/entity/account/accountState.js +7 -1
  42. package/lib/esm/entity/aiAccountantCustomer/aiAccountantCustomerPayload.js +1 -3
  43. package/lib/esm/entity/aiAccountantCustomer/aiAccountantCustomerReducer.js +1 -2
  44. package/lib/esm/entity/chargeCard/chargeCardReducer.js +34 -1
  45. package/lib/esm/entity/chargeCardTransaction/chargeCardTransactionReducer.js +35 -1
  46. package/lib/esm/entity/class/classSelector.js +48 -0
  47. package/lib/esm/entity/monthEndCloseChecks/monthEndCloseChecksPayload.js +2 -0
  48. package/lib/esm/entity/sectionProjectView/sectionProjectViewSelector.js +1 -1
  49. package/lib/esm/entity/tenant/SessionManager.js +4 -1
  50. package/lib/esm/entity/tenant/clearAllEpic.js +2 -2
  51. package/lib/esm/entity/tenant/epic/saveAPIKeyConnectionEpic.js +6 -2
  52. package/lib/esm/entity/tenant/epic/saveOAuthConnectionEpic.js +6 -2
  53. package/lib/esm/entity/tenant/tenantReducer.js +6 -1
  54. package/lib/esm/entity/transaction/payloadTypes/transactionLinePayload.js +3 -1
  55. package/lib/esm/epic.js +10 -10
  56. package/lib/esm/index.js +26 -16
  57. package/lib/esm/reducer.js +2 -2
  58. package/lib/esm/view/aiAccountantView/epics/fetchAiAccountantCustomersEpic.js +2 -5
  59. package/lib/esm/view/aiAccountantView/epics/fetchAiAccountantJobsEpic.js +2 -5
  60. package/lib/esm/view/aiAccountantView/epics/triggerAiAccountantJobEpic.js +4 -1
  61. package/lib/esm/view/companyHealthMetricView/companyHealthMetricViewSelector.js +1 -1
  62. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +1 -1
  63. package/lib/esm/view/companyTaskManagerView/epics/fetchTaskManagerMetricsEpic.js +1 -1
  64. package/lib/esm/view/companyView/helpers/cockpitHelpers.js +1 -1
  65. package/lib/esm/view/companyView/selector/companyManagementViewSelector.js +1 -1
  66. package/lib/esm/view/companyView/selector/companyPortfolioViewSelector.js +1 -1
  67. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +2 -2
  68. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +2 -1
  69. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/restoreBulkUploadAutomatchingOnMountEpic.js +8 -6
  70. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +7 -1
  71. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +11 -1
  72. package/lib/esm/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -1
  73. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +137 -1
  74. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +89 -13
  75. package/lib/esm/view/expenseAutomationView/transactionFilterHelpers.js +258 -0
  76. package/lib/esm/view/expenseAutomationView/types/completedSubTab.js +17 -0
  77. package/lib/esm/view/expenseAutomationView/types/missingReceiptsViewState.js +0 -2
  78. package/lib/esm/view/financeStatement/financeStatementSelector.js +1 -1
  79. package/lib/esm/view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer.js +3 -2
  80. package/lib/esm/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer.js +3 -2
  81. package/lib/esm/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer.js +55 -18
  82. package/lib/esm/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailEpic.js +16 -2
  83. package/lib/esm/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailPageEpic.js +5 -4
  84. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.js +26 -9
  85. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/fetchChargeCardListPageEpic.js +9 -6
  86. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +3 -2
  87. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +1 -1
  88. package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailReducer.js +7 -3
  89. package/lib/esm/view/spendManagement/spendManagementFilterHelpers.js +4 -2
  90. package/lib/esm/view/subscriptionView/subscriptionViewSelector.js +1 -1
  91. package/lib/esm/view/taskManager/cannedResponsesView/epics/fetchCannedResponsesEpic.js +1 -1
  92. package/lib/esm/view/taskManager/cannedResponsesView/epics/saveCannedResponseEpic.js +1 -1
  93. package/lib/esm/view/taskManager/taskDetailView/epics/unsnoozeTaskEpic.js +1 -1
  94. package/lib/esm/view/taskManager/taskListView/taskListReducer.js +1 -1
  95. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +7 -1
  96. package/lib/index.d.ts +25 -19
  97. package/lib/index.js +81 -58
  98. package/lib/reducer.d.ts +2 -2
  99. package/lib/reducer.js +2 -2
  100. package/lib/view/aiAccountantView/aiAccountantViewPayload.d.ts +2 -2
  101. package/lib/view/aiAccountantView/aiAccountantViewReducer.d.ts +1 -1
  102. package/lib/view/aiAccountantView/epics/fetchAiAccountantCustomersEpic.js +2 -5
  103. package/lib/view/aiAccountantView/epics/fetchAiAccountantJobsEpic.js +2 -5
  104. package/lib/view/aiAccountantView/epics/triggerAiAccountantJobEpic.js +4 -1
  105. package/lib/view/companyHealthMetricView/companyHealthMetricViewSelector.js +1 -1
  106. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +1 -1
  107. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +1 -1
  108. package/lib/view/companyView/helpers/cockpitHelpers.js +1 -1
  109. package/lib/view/companyView/selector/companyManagementViewSelector.js +1 -1
  110. package/lib/view/companyView/selector/companyPortfolioViewSelector.js +1 -1
  111. package/lib/view/companyView/types/cockpitTypes.d.ts +1 -1
  112. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +2 -2
  113. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +2 -1
  114. package/lib/view/expenseAutomationView/epics/missingReceipts/restoreBulkUploadAutomatchingOnMountEpic.js +8 -6
  115. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +7 -1
  116. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.d.ts +2 -2
  117. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +10 -0
  118. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  119. package/lib/view/expenseAutomationView/payload/transactionCategorizationPayload.d.ts +21 -0
  120. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +2 -1
  121. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -1
  122. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +14 -4
  123. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +138 -2
  124. package/lib/view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes.d.ts +2 -1
  125. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +14 -0
  126. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +4 -1
  127. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +91 -13
  128. package/lib/view/expenseAutomationView/transactionFilterHelpers.d.ts +66 -0
  129. package/lib/view/expenseAutomationView/transactionFilterHelpers.js +262 -0
  130. package/lib/view/expenseAutomationView/types/completedSubTab.d.ts +10 -0
  131. package/lib/view/expenseAutomationView/types/completedSubTab.js +21 -0
  132. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +1 -2
  133. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.js +1 -4
  134. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +43 -2
  135. package/lib/view/financeStatement/financeStatementSelector.js +1 -1
  136. package/lib/view/profitAndLossProjectView/profitAndLossProjectViewSelectorTypes.d.ts +1 -1
  137. package/lib/view/spendManagement/billPay/billList/billListState.d.ts +1 -1
  138. package/lib/view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer.d.ts +3 -1
  139. package/lib/view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer.js +3 -2
  140. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer.d.ts +3 -1
  141. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer.js +3 -2
  142. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer.js +55 -18
  143. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailEpic.js +16 -2
  144. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailPageEpic.js +5 -4
  145. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.d.ts +18 -3
  146. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.js +27 -10
  147. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchChargeCardListPageEpic.js +9 -6
  148. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.d.ts +1 -1
  149. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.d.ts +3 -1
  150. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +3 -2
  151. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +1 -1
  152. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailReducer.d.ts +3 -1
  153. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailReducer.js +7 -3
  154. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.d.ts +1 -1
  155. package/lib/view/spendManagement/spendManagementFilterHelpers.d.ts +12 -3
  156. package/lib/view/spendManagement/spendManagementFilterHelpers.js +4 -2
  157. package/lib/view/subscriptionView/subscriptionViewSelector.js +1 -1
  158. package/lib/view/taskManager/taskListView/taskList.d.ts +1 -1
  159. package/lib/view/taskManager/taskListView/taskListReducer.js +1 -1
  160. package/lib/view/transactionDetail/transactionDetailSelector.js +7 -1
  161. package/lib/view/zeniOAuthView/zeniOAuthSelector.d.ts +1 -1
  162. package/package.json +9 -4
  163. package/lib/tsconfig.typecheck.tsbuildinfo +0 -1
@@ -1,4 +1,6 @@
1
1
  import { createSlice } from '@reduxjs/toolkit';
2
+ import { addChargeCardTransactionFromPusher, addDeclinedChargeCardTransactionFromPusher, } from '../../commonStateTypes/pusherActions';
3
+ import { toCardTransactionStatusCode, } from './chargeCardTransaction';
2
4
  import { toChargeCardTransaction, } from './chargeCardTransactionPayload';
3
5
  export const initialState = {
4
6
  chargeCardTransactionById: {},
@@ -46,10 +48,42 @@ const chargeCardTransaction = createSlice({
46
48
  }
47
49
  }
48
50
  },
51
+ updateChargeCardTransactionStatusFromPusher(draft, action) {
52
+ const { transactionId, transactionStatus } = action.payload;
53
+ const transaction = draft.chargeCardTransactionById[transactionId];
54
+ if (transaction != null) {
55
+ transaction.transactionStatus = {
56
+ code: toCardTransactionStatusCode(transactionStatus.code),
57
+ name: transactionStatus.name,
58
+ };
59
+ }
60
+ },
61
+ updateChargeCardTransactionFromPusher(draft, action) {
62
+ const entity = toChargeCardTransaction(action.payload.transaction);
63
+ draft.chargeCardTransactionById[entity.id] = entity;
64
+ },
65
+ updateChargeCardTransactionReceiptFromPusher(draft, action) {
66
+ const { transactionId, attachmentFilePaths } = action.payload;
67
+ const transaction = draft.chargeCardTransactionById[transactionId];
68
+ if (transaction != null) {
69
+ transaction.attachmentFilePaths = attachmentFilePaths;
70
+ }
71
+ },
49
72
  clearAllChargeCardTransactions(draft) {
50
73
  draft.chargeCardTransactionById = {};
51
74
  },
52
75
  },
76
+ extraReducers: (builder) => {
77
+ builder
78
+ .addCase(addChargeCardTransactionFromPusher, (draft, action) => {
79
+ const entity = toChargeCardTransaction(action.payload.transaction);
80
+ draft.chargeCardTransactionById[entity.id] = entity;
81
+ })
82
+ .addCase(addDeclinedChargeCardTransactionFromPusher, (draft, action) => {
83
+ const entity = toChargeCardTransaction(action.payload.transaction);
84
+ draft.chargeCardTransactionById[entity.id] = entity;
85
+ });
86
+ },
53
87
  });
54
- export const { updateChargeCardTransactions, updateChargeCardTransaction, updateChargeCardTransactionAttachments, removeChargeCardTransaction, removeChargeCardTransactionAttachmentByThirdPartyTransactionId, clearAllChargeCardTransactions, } = chargeCardTransaction.actions;
88
+ export const { updateChargeCardTransactions, updateChargeCardTransaction, updateChargeCardTransactionAttachments, updateChargeCardTransactionStatusFromPusher, updateChargeCardTransactionFromPusher, updateChargeCardTransactionReceiptFromPusher, removeChargeCardTransaction, removeChargeCardTransactionAttachmentByThirdPartyTransactionId, clearAllChargeCardTransactions, } = chargeCardTransaction.actions;
55
89
  export default chargeCardTransaction.reducer;
@@ -1,3 +1,4 @@
1
+ import { createSelector } from '@reduxjs/toolkit';
1
2
  import recordGet from 'lodash/get';
2
3
  import { getCOABalances } from '../../commonStateTypes/coaBalance/coaBalance';
3
4
  import { getAccount } from '../account/accountSelector';
@@ -50,3 +51,50 @@ export function getClassReport(classState, accountState, id, filter) {
50
51
  accounts: accountReport,
51
52
  };
52
53
  }
54
+ /**
55
+ * Returns all classes currently in state (single pass over classesByKey).
56
+ * Use for dropdowns that need class names; map to { classId, className } as needed.
57
+ */
58
+ export function getAllClasses(classState) {
59
+ return Object.values(classState.classesByKey);
60
+ }
61
+ /**
62
+ * Memoised projection of `getAllClasses` to the `{classId, className}` shape
63
+ * expected by filter dropdowns. Consumers should prefer this over inlining a
64
+ * `getAllClasses(...).map(...)` inside `useSelector`: the inline map allocates
65
+ * a fresh array on every Redux dispatch, breaking `useSelector`'s
66
+ * reference-equality optimisation and triggering re-renders on every state
67
+ * change unrelated to class data.
68
+ *
69
+ * Two cleanups happen here, intentionally inside the selector so every
70
+ * consumer benefits uniformly:
71
+ * 1. **Drop entries with a blank `className`.** Soft-deleted classes can
72
+ * retain their classId in state while the human name is blanked, which
73
+ * would otherwise render as an empty row in the filter dropdown.
74
+ * 2. **Dedupe by `classId`.** `classesByKey` is keyed by
75
+ * `${classId}-${reportId}` (see `getClassKey`), so a class loaded under
76
+ * multiple report contexts appears as multiple entries from
77
+ * `Object.values(classesByKey)`. The first non-blank entry per
78
+ * `classId` wins.
79
+ */
80
+ export const getClassFilterOptions = createSelector(
81
+ // Key the memo on the underlying `classesByKey` record rather than on
82
+ // `getAllClasses` output: the latter returns a fresh `Object.values(...)`
83
+ // array on every call, which would defeat reselect's reference-equality
84
+ // check and re-run the projection on every dispatch.
85
+ [(classState) => classState.classesByKey], (classesByKey) => {
86
+ const classes = Object.values(classesByKey);
87
+ const seenClassIds = new Set();
88
+ const options = [];
89
+ for (const c of classes) {
90
+ if (c.classId == null || seenClassIds.has(c.classId)) {
91
+ continue;
92
+ }
93
+ if (c.className == null || c.className.trim() === '') {
94
+ continue;
95
+ }
96
+ seenClassIds.add(c.classId);
97
+ options.push({ classId: c.classId, className: c.className });
98
+ }
99
+ return options;
100
+ });
@@ -18,6 +18,7 @@ const toMonthEndCloseCheck = (monthCloseCheck) => {
18
18
  title: monthCloseCheck.month_close_check_title,
19
19
  frequency: toMonthEndCloseCheckFrequency(monthCloseCheck.action_frequency),
20
20
  progress: monthCloseCheck.progress_percentage,
21
+ progressAI: monthCloseCheck.progress_percentage_ai ?? 0,
21
22
  sequence: monthCloseCheck.sequence,
22
23
  isDisabled: toExpenseAutomationViewType(monthCloseCheck.month_close_check_type) ===
23
24
  'month_end_insights',
@@ -58,6 +59,7 @@ export const toMonthEndCloseChecksInfo = (payload, period) => ({
58
59
  monthEndCloseCheckList: payload.month_close_checks.map((monthCloseCheck) => toMonthEndCloseCheck(monthCloseCheck)),
59
60
  auditSummary: {
60
61
  auditScorePercentage: payload.audit_summary.audit_score_percentage,
62
+ auditScorePercentageAI: payload.audit_summary.audit_score_percentage_ai ?? 0,
61
63
  auditReportLastGeneratedDate: payload.audit_summary.audit_report_last_generated_date != null
62
64
  ? date(payload.audit_summary.audit_report_last_generated_date)
63
65
  : null,
@@ -1,6 +1,6 @@
1
1
  import recordGet from 'lodash/get';
2
- import { getCOABalances, } from '../../commonStateTypes/coaBalance/coaBalance';
3
2
  import { getSumOfBalancesByGroupedByPeriod } from '../../commonStateTypes/coaBalance/classBalances/getSumOfBalancesGroupedByPeriod';
3
+ import { getCOABalances, } from '../../commonStateTypes/coaBalance/coaBalance';
4
4
  import { getNestedAccountReportForAccount, } from '../account/subAccountSelector';
5
5
  import { getProjectById } from '../project/projectSelector';
6
6
  import { getSectionProjectViewKey } from './sectionProjectView';
@@ -260,7 +260,10 @@ export class SessionManager {
260
260
  this.callbacks?.onHeartbeat();
261
261
  // Let other tabs know we just fired a heartbeat — they can skip theirs
262
262
  // this cycle to avoid N tabs all firing heartbeats.
263
- this.broadcast({ type: 'heartbeat-fired', timestamp: this.lastHeartbeatTime });
263
+ this.broadcast({
264
+ type: 'heartbeat-fired',
265
+ timestamp: this.lastHeartbeatTime,
266
+ });
264
267
  }
265
268
  // ─── BroadcastChannel (cross-tab activity sync) ───────────
266
269
  setupBroadcastChannel() {
@@ -3,13 +3,13 @@ import { filter, mergeMap } from 'rxjs/operators';
3
3
  import { clearAllAiAccountantCustomers } from '../../entity/aiAccountantCustomer/aiAccountantCustomerReducer';
4
4
  import { clearAiCfo } from '../../entity/aiCfo/aiCfoReducer';
5
5
  import { clearAllApprovalRules } from '../../entity/approvalRule/approvalRuleReducer';
6
+ import { clearAllCreditAgent } from '../../entity/creditAgent/creditAgentReducer';
6
7
  import { clearAllEntityApprovalStatus } from '../../entity/entityApprovalStatus/entityApprovalStatusReducer';
7
8
  import { clearAllMonthEndCloseChecks } from '../../entity/monthEndCloseChecks/monthEndCloseChecksReducer';
8
9
  import { clearAllNotifications } from '../../entity/notification/notificationReducer';
9
10
  import { clearAllSectionsClassesViewV2 } from '../../entity/sectionClassesViewV2/sectionClassesViewReducer';
10
11
  import { clearAllSectionsProjectView } from '../../entity/sectionProjectView/sectionProjectViewReducer';
11
12
  import { clearAllTaskGroups } from '../../entity/taskGroup/taskGroupReducer';
12
- import { clearCannedResponses } from '../../view/taskManager/cannedResponsesView/cannedResponsesReducer';
13
13
  import { clearAllToastNotifications } from '../../entity/toastNotification/toastNotificationReducer';
14
14
  import { clearAccountList } from '../../view/accountList/accountListReducer';
15
15
  import { clearAccountMappingView } from '../../view/accountMappingView/accountMappingReducer';
@@ -40,7 +40,6 @@ import { clearCompanyHealthMetricView } from '../../view/companyHealthMetricView
40
40
  import { clearCompanyMonthEndReportView } from '../../view/companyMonthEndReportView/companyMonthEndReportViewReducer';
41
41
  import { clearCompanyTaskManagerView } from '../../view/companyTaskManagerView/companyTaskManagerViewReducer';
42
42
  import { clearCompanyView } from '../../view/companyView/companyViewReducer';
43
- import { clearAllCreditAgent } from '../../entity/creditAgent/creditAgentReducer';
44
43
  import { clearCreditAgentView } from '../../view/creditAgentView/creditAgentViewReducer';
45
44
  import { clearDashboard } from '../../view/dashboard/dashboardReducer';
46
45
  import { clearDashboardLayout } from '../../view/dashboardLayout/dashboardLayoutReducer';
@@ -135,6 +134,7 @@ import { clearZeniAccountSetupView } from '../../view/spendManagement/zeniAccoun
135
134
  import { clearZeniAccountsConfig } from '../../view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigReducer';
136
135
  import { clearSubscriptionView } from '../../view/subscriptionView/subscriptionViewReducer';
137
136
  import { clearTagView } from '../../view/tagView/tagViewReducer';
137
+ import { clearCannedResponses } from '../../view/taskManager/cannedResponsesView/cannedResponsesReducer';
138
138
  import { clearTaskDetail } from '../../view/taskManager/taskDetailView/taskDetailReducer';
139
139
  import { clearTaskGroupTemplatesView } from '../../view/taskManager/taskGroupTemplateView/taskGroupTemplateViewReducer';
140
140
  import { clearTaskGroupView } from '../../view/taskManager/taskGroupView/taskGroupViewReducer';
@@ -18,9 +18,13 @@ export const saveAPIKeyConnectionEpic = (actions$, _, zeniAPI) => actions$.pipe(
18
18
  }
19
19
  const status = response.status ??
20
20
  createZeniAPIStatus('Failed to save connection. Please try again.');
21
- return from([saveAPIKeyConnectionFailure(action.payload.tenantId, status)]);
21
+ return from([
22
+ saveAPIKeyConnectionFailure(action.payload.tenantId, status),
23
+ ]);
22
24
  }), catchError((error) => {
23
- const message = error instanceof Error ? error.message : 'Unexpected error saving connection.';
25
+ const message = error instanceof Error
26
+ ? error.message
27
+ : 'Unexpected error saving connection.';
24
28
  return from([
25
29
  saveAPIKeyConnectionFailure(action.payload.tenantId, createZeniAPIStatus(message)),
26
30
  ]);
@@ -20,9 +20,13 @@ export const saveOAuthConnectionEpic = (actions$, _, zeniAPI) => actions$.pipe(f
20
20
  }
21
21
  const status = response.status ??
22
22
  createZeniAPIStatus('Failed to save connection. Please try again.');
23
- return from([saveOAuthConnectionFailure(action.payload.tenantId, status)]);
23
+ return from([
24
+ saveOAuthConnectionFailure(action.payload.tenantId, status),
25
+ ]);
24
26
  }), catchError((error) => {
25
- const message = error instanceof Error ? error.message : 'Unexpected error saving connection.';
27
+ const message = error instanceof Error
28
+ ? error.message
29
+ : 'Unexpected error saving connection.';
26
30
  return from([
27
31
  saveOAuthConnectionFailure(action.payload.tenantId, createZeniAPIStatus(message)),
28
32
  ]);
@@ -563,7 +563,12 @@ const tenant = createSlice({
563
563
  saveConnectorCredentialsSuccess: {
564
564
  prepare(tenantId, connectionType, connectionName, connectionPayload) {
565
565
  return {
566
- payload: { tenantId, connectionType, connectionName, connectionPayload },
566
+ payload: {
567
+ tenantId,
568
+ connectionType,
569
+ connectionName,
570
+ connectionPayload,
571
+ },
567
572
  };
568
573
  },
569
574
  reducer(draft, action) {
@@ -23,7 +23,9 @@ const toTransactionLineBase = (payload, lineType, currency) => ({
23
23
  });
24
24
  const toLinkedTransactionLine = (payload, currency) => ({
25
25
  ...toTransactionLineBase(payload, 'linked_transaction_line', currency),
26
- linkedTransactions: payload.linked_transactions != null ? payload.linked_transactions.map((transactionIDPayload) => toTransactionID(transactionIDPayload)) : [],
26
+ linkedTransactions: payload.linked_transactions != null
27
+ ? payload.linked_transactions.map((transactionIDPayload) => toTransactionID(transactionIDPayload))
28
+ : [],
27
29
  });
28
30
  /**
29
31
  * Transaction with account and class line payload with COT tracking
package/lib/esm/epic.js CHANGED
@@ -7,6 +7,7 @@ import { updateSectionAccountsViewEpic, } from './entity/sectionAccountsView/sec
7
7
  import { updateSectionClassesViewEpic as updateSectionClassesViewEpicV2, } from './entity/sectionClassesViewV2/sectionClassesViewEpic';
8
8
  import { updateSectionProjectViewEpic, } from './entity/sectionProjectView/sectionProjectViewEpic';
9
9
  import { clearAllEpic, } from './entity/tenant/clearAllEpic';
10
+ import { deleteConnectionEpic } from './entity/tenant/epic/deleteConnectionEpic';
10
11
  import { doMagicLinkSignInEpic, } from './entity/tenant/epic/doMagicLinkSignInEpic';
11
12
  import { fetchActiveTenantEpic, } from './entity/tenant/epic/fetchActiveTenantEpic';
12
13
  import { fetchAllTenantsEpic, } from './entity/tenant/epic/fetchAllTenantsEpic';
@@ -14,7 +15,6 @@ import { fetchExcludedResourcesEpic, } from './entity/tenant/epic/fetchExcludedR
14
15
  import { fetchExternalConnectionsEpic, } from './entity/tenant/epic/fetchExternalConnectionsEpic';
15
16
  import { fetchSubscriptionSummaryForTenantEpic, } from './entity/tenant/epic/fetchSubscriptionSummaryForTenantEpic';
16
17
  import { resendVerifyDeviceOTPEpic, } from './entity/tenant/epic/resendVerifyDeviceOTPEpic';
17
- import { deleteConnectionEpic } from './entity/tenant/epic/deleteConnectionEpic';
18
18
  import { saveAPIKeyConnectionEpic } from './entity/tenant/epic/saveAPIKeyConnectionEpic';
19
19
  import { saveConnectorCredentialsEpic } from './entity/tenant/epic/saveConnectorCredentialsEpic';
20
20
  import { saveExternalConnectionEpic, } from './entity/tenant/epic/saveExternalConnectionEpic';
@@ -188,6 +188,8 @@ import { saveTransactionCategorizationEpic as fetchExpenseAutomationSaveTransact
188
188
  import { triggerReviewTabRefetchEpic, } from './view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic';
189
189
  import { updateTransactionCategorizationEpic as fetchExpenseAutomationUpdateTransactionCategorizationEpic, } from './view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic';
190
190
  import { uploadTransactionReceiptSuccessEpic, } from './view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic';
191
+ import { fetchRegisteredInterestsEpic, } from './view/featureNotificationView/epics/fetchRegisteredInterestsEpic';
192
+ import { notifyMeForFeatureEpic, } from './view/featureNotificationView/epics/notifyMeForFeatureEpic';
191
193
  import { deleteFileEpic, } from './view/fileView/epic/deleteFileEpic';
192
194
  import { deleteFileListEpic, } from './view/fileView/epic/deleteFileListEpic';
193
195
  import { fetchFileEpic, } from './view/fileView/epic/fetchFileEpic';
@@ -213,8 +215,6 @@ import { fetchNotificationUnreadCountEpic, } from './view/notificationView/epics
213
215
  import { fetchNotificationViewEpic, } from './view/notificationView/epics/fetchNotificationViewEpic';
214
216
  import { updateNotificationViewAllNotificationsStatusEpic, } from './view/notificationView/epics/updateNotificationViewAllNotificationsStatusEpic';
215
217
  import { updateNotificationViewNotificationStatusEpic, } from './view/notificationView/epics/updateNotificationViewNotificationStatusEpic';
216
- import { fetchRegisteredInterestsEpic, } from './view/featureNotificationView/epics/fetchRegisteredInterestsEpic';
217
- import { notifyMeForFeatureEpic, } from './view/featureNotificationView/epics/notifyMeForFeatureEpic';
218
218
  import { fetchCompanyOnboardingViewEpic, } from './view/onboardingView/cockpitView/epic/fetchCompanyOnboardingViewEpic';
219
219
  import { fetchOnboardingCompletedCompaniesEpic, } from './view/onboardingView/cockpitView/epic/fetchOnboardingCompletedCompaniesEpic';
220
220
  import { fetchQBOConnectionPoolEpic, } from './view/onboardingView/cockpitView/epic/fetchQBOConnectionPoolEpic';
@@ -504,15 +504,18 @@ import { saveSubscriptionUpdatesEpic, } from './view/subscriptionView/epic/saveS
504
504
  import { createTagEpic, } from './view/tagView/epics/createTagEpic';
505
505
  import { deleteTagEpic, } from './view/tagView/epics/deleteTagEpic';
506
506
  import { fetchAllTagsEpic, } from './view/tagView/epics/fetchAllTagsEpic';
507
+ import { deleteCannedResponseEpic, } from './view/taskManager/cannedResponsesView/epics/deleteCannedResponseEpic';
508
+ import { fetchCannedResponsesEpic, } from './view/taskManager/cannedResponsesView/epics/fetchCannedResponsesEpic';
509
+ import { saveCannedResponseEpic, } from './view/taskManager/cannedResponsesView/epics/saveCannedResponseEpic';
507
510
  import { archiveTaskEpic, } from './view/taskManager/taskDetailView/epics/archiveTaskEpic';
508
511
  import { deleteTaskEpic, } from './view/taskManager/taskDetailView/epics/deleteTaskEpic';
509
- import { snoozeTaskEpic, } from './view/taskManager/taskDetailView/epics/snoozeTaskEpic';
510
- import { unsnoozeTaskEpic, } from './view/taskManager/taskDetailView/epics/unsnoozeTaskEpic';
511
512
  import { fetchTaskDetailEpic, } from './view/taskManager/taskDetailView/epics/fetchTaskDetailEpic';
512
513
  import { fetchTaskDetailPageEpic, } from './view/taskManager/taskDetailView/epics/fetchTaskDetailPageEpic';
513
514
  import { fetchTaskHistoryEpic, } from './view/taskManager/taskDetailView/epics/fetchTaskHistoryEpic';
514
515
  import { initializeTaskToLocalStoreEpic, } from './view/taskManager/taskDetailView/epics/initializeTaskToLocalStoreEpic';
515
516
  import { saveTaskDetailEpic, } from './view/taskManager/taskDetailView/epics/saveTaskDetailEpic';
517
+ import { snoozeTaskEpic, } from './view/taskManager/taskDetailView/epics/snoozeTaskEpic';
518
+ import { unsnoozeTaskEpic, } from './view/taskManager/taskDetailView/epics/unsnoozeTaskEpic';
516
519
  import { createTaskFromTaskGroupTemplateEpic, } from './view/taskManager/taskGroupTemplateView/epics/createTaskFromTaskGroupTemplateEpic';
517
520
  import { fetchTaskGroupTemplatesEpic, } from './view/taskManager/taskGroupTemplateView/epics/fetchTaskGroupTemplatesEpic';
518
521
  import { createNewTaskGroupEpic, } from './view/taskManager/taskGroupView/epics/createNewTaskGroupEpic';
@@ -524,9 +527,6 @@ import { dragNDropTasksEpic, } from './view/taskManager/taskListView/epics/dragN
524
527
  import { fetchTaskListEpic, } from './view/taskManager/taskListView/epics/fetchTaskListEpic';
525
528
  import { fetchTaskListPageEpic, } from './view/taskManager/taskListView/epics/fetchTaskListPageEpic';
526
529
  import { updateTaskFromListViewEpic, } from './view/taskManager/taskListView/epics/updateTaskFromListViewEpic';
527
- import { fetchCannedResponsesEpic, } from './view/taskManager/cannedResponsesView/epics/fetchCannedResponsesEpic';
528
- import { saveCannedResponseEpic, } from './view/taskManager/cannedResponsesView/epics/saveCannedResponseEpic';
529
- import { deleteCannedResponseEpic, } from './view/taskManager/cannedResponsesView/epics/deleteCannedResponseEpic';
530
530
  import { fetchTasksCardEpic, } from './view/tasksCard/fetchTasksCardEpic';
531
531
  import { fetchTopExEpic, } from './view/topEx/topExEpic';
532
532
  import { fetchTransactionActivityLogEpic, } from './view/transactionActivityLogView/fetchTransactionActivityLogEpic';
@@ -540,13 +540,13 @@ import { updateTransactionDetailEpic, } from './view/transactionDetail/epics/upd
540
540
  import { uploadMissingAttachmentSuccessEpic, } from './view/transactionDetail/epics/uploadMissingAttachmentSuccessEpic';
541
541
  import { fetchTransactionListByAccountEpic, } from './view/transactionList/fetchTransactionListByAccountEpic';
542
542
  import { fetchTransactionListByClassEpic, } from './view/transactionList/fetchTransactionListByClassEpic';
543
- import { fetchTransactionListByProjectEpic, } from './view/transactionList/fetchTransactionListByProjectEpic';
544
543
  import { fetchTransactionListByEntityEpic, } from './view/transactionList/fetchTransactionListByEntityEpic';
544
+ import { fetchTransactionListByProjectEpic, } from './view/transactionList/fetchTransactionListByProjectEpic';
545
545
  import { fetchTransactionsListByCategoryTypeEpic, } from './view/transactionList/fetchTransactionsListByCategoryTypeEpic';
546
546
  import { parallelFetchAccountTransactionListEpic, } from './view/transactionList/parallelFetchAccountTransactionListEpic';
547
547
  import { parallelFetchClassTransactionListEpic, } from './view/transactionList/parallelFetchClassTransactionListEpic';
548
- import { parallelFetchProjectTransactionListEpic, } from './view/transactionList/parallelFetchProjectTransactionListEpic';
549
548
  import { parallelFetchEntityTransactionListEpic, } from './view/transactionList/parallelFetchEntityTransactionListEpic';
549
+ import { parallelFetchProjectTransactionListEpic, } from './view/transactionList/parallelFetchProjectTransactionListEpic';
550
550
  import { parallelFetchTransactionListByCategoryTypeEpic, } from './view/transactionList/parallelFetchTransactionListByCategoryTypeEpic';
551
551
  import { fetchExpenseTrendEpic, } from './view/trend/fetchExpenseTrendEpic';
552
552
  import { fetchIncomeTrendEpic, } from './view/trend/fetchIncomeTrendEpic';
package/lib/esm/index.js CHANGED
@@ -15,6 +15,7 @@ import { getActualPeriodOfFY, getActualPeriodOfFYQtr, } from './commonStateTypes
15
15
  import { getFYMonths } from './commonStateTypes/fiscalYearHelpers/getFYMonths';
16
16
  import { getFYQuarterAndYear, getLastMonthOfFYQuarter, getLastMonthOfFYYear, } from './commonStateTypes/fiscalYearHelpers/getFYQuarterAndYear';
17
17
  import { getStartOfAndEndOfTimeframeForFY } from './commonStateTypes/fiscalYearHelpers/getStartOfAndEndOfTimeframeFY';
18
+ import { addChargeCardTransactionFromPusher, addDeclinedChargeCardTransactionFromPusher, } from './commonStateTypes/pusherActions';
18
19
  import { isAllFetchCompleted, isAnyFetchInProgress, reduceAllFetchState, reduceAnyCompletedFetchState, reduceAnyFetchState, reduceFetchState, reduceFetchStateParallelTimeframes, } from './commonStateTypes/reduceFetchState';
19
20
  import { toReimbursementTypeCode } from './commonStateTypes/reimbursementTypeCode';
20
21
  import { stringToUnion, stringToUnionStrict, } from './commonStateTypes/stringToUnion';
@@ -23,6 +24,7 @@ import { mapTimePeriodtoTimeframeTick, toTimePeriod, toTimeframeTick, } from './
23
24
  import { isAgingReport, isCashFlowOrBalanceSheetReport, isDashboardClassesViewReport, isDashboardReport, isFluxAnalysisOpExReport, isOpExByVendorReport, isPAndLClassesViewReport, isPAndLProjectViewReport, isPAndLReport, } from './commonStateTypes/viewAndReport/reportIDHelper';
24
25
  import { toReportFormatStrict, toReportID, } from './commonStateTypes/viewAndReport/viewAndReport';
25
26
  import { PAYMENT_BUSINESS_DAYS, filterDays, getNextNthWorkingDay, getPreviousNthWorkingDay, getYearsList, holidaysFormatted, isHoliday, isHolidayToday, } from './commonStateTypes/workingDayHelper';
27
+ import { getAllAccounts, getTransactionFilterAccountOptions, } from './entity/account/accountSelector';
26
28
  import { toAccountType, toReconciliationAccountSource, } from './entity/account/accountState';
27
29
  import { getAccountGroupKey, toAccountGroupType, } from './entity/accountGroup/accountGroupState';
28
30
  /**
@@ -34,9 +36,11 @@ import { toAttributeOrRoleTypeStrict, toAttributeTypeStrict, toRoleTypeStrict, }
34
36
  import { toOutsideZeniPaymentModeType, } from './entity/billPay/billTransaction/billTransactionState';
35
37
  import { toRecurringBillFrequency, toRecurringBillFrequencyStrict, } from './entity/billPay/recurringBills/recurringBillsState';
36
38
  import { toCardAddressType, toCardType, toCreditLimitFrequencyCodeType, toShippingAddressType, } from './entity/chargeCard/chargeCard';
39
+ import { updateChargeCardSpendingFromPusher, updateChargeCardStatusFromPusher, } from './entity/chargeCard/chargeCardReducer';
37
40
  import { getChargeCardById } from './entity/chargeCard/chargeCardSelector';
38
41
  import { attachmentFilePathToAttachment, } from './entity/chargeCardTransaction/chargeCardTransactionPayload';
39
42
  import { updateChargeCardTransactionAttachments } from './entity/chargeCardTransaction/chargeCardTransactionReducer';
43
+ import { updateChargeCardTransactionFromPusher, updateChargeCardTransactionReceiptFromPusher, updateChargeCardTransactionStatusFromPusher, } from './entity/chargeCardTransaction/chargeCardTransactionReducer';
40
44
  import { getControllersName, getFirstControllerEmail, getFirstControllerId, } from './entity/company/companyHelper';
41
45
  import { getCompanyByCompanyId, getCompanyInfoForAllCockpitCompaniesInState, getControllersForCompany, } from './entity/company/companySelector';
42
46
  import { ALL_ACCOUNTING_CONNECTION_CREATION_MODES, isCompanyEligibleForTreasury, } from './entity/company/companyStateTypes';
@@ -59,7 +63,7 @@ import { closeSnackbar, openSnackbar } from './entity/snackbar/snackbarReducer';
59
63
  import { getSnackbar } from './entity/snackbar/snackbarSelector';
60
64
  import { ALL_WEEK_DAYS, toDayOfWeek, toPriorityCodeType, toTaskStatusCodeType, } from './entity/task/taskState';
61
65
  import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
62
- import { clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, deleteConnection, saveAPIKeyConnection, saveConnectorCredentials, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, sendEmailMagicLinkToUser, sendSessionHeartbeat, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
66
+ import { clearAll, deleteConnection, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, saveAPIKeyConnection, saveConnectorCredentials, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, sendEmailMagicLinkToUser, sendSessionHeartbeat, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
63
67
  import { getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView, } from './entity/tenant/tenantSelector';
64
68
  import { pushToastNotification } from './entity/toastNotification/toastNotificationReducer';
65
69
  import { getLastNotificationTime, getNotifications, } from './entity/toastNotification/toastNotificationSelector';
@@ -123,8 +127,6 @@ import { fetchCashPosition, updateCashPositionCOABalancesRange, updateCashPositi
123
127
  import { getCashPosition, getCashPositionForHighlightedRange, getCashPositionForSelectedRange, getCashPositionUIState, } from './view/cashPosition/cashPositionSelector';
124
128
  import { fetchClassList } from './view/classList/classListReducer';
125
129
  import { getClassList, } from './view/classList/classListSelector';
126
- import { fetchProjectList } from './view/projectList/projectListReducer';
127
- import { getProjectList, } from './view/projectList/projectListSelector';
128
130
  import { SEMI_WEEKLY_REQUIRED_DAYS_COUNT, getMinAllowedEndDate, getRecurringEndDateFromCount, toRecurringFrequency, } from './view/common/recurringViewHelper';
129
131
  import { ZENI_CLEARING_ACCOUNT, isZeniClearingAccount, isZeniClearingAccountReport, } from './view/common/zeniClearingAccountHelper';
130
132
  import { clearTransactionVendorSaveStatus, resetTransactionVendorLocalData, saveTransactionVendor, saveTransactionVendorSuccessOrFailure, updateTransactionVendorLocalData, } from './view/commonVendorView/transactionVendorView/transactionVendorViewReducer';
@@ -167,15 +169,18 @@ import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFl
167
169
  import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys, } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
168
170
  import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess, } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
169
171
  import { deleteAccountStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateNodeCollapseState, updateStatementUploadChosen, uploadAccountStatement, } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
170
- import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, } from './view/expenseAutomationView/reducers/transactionsViewReducer';
172
+ import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationCompletedSubTab, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, updateTransactionFilters, uploadTransactionCategorizationReceiptSuccess, } from './view/expenseAutomationView/reducers/transactionsViewReducer';
171
173
  import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
172
174
  import { getExpenseAutomationReconciliationView, isAccountReconReport, } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
173
175
  import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
176
+ import { DEFAULT_COMPLETED_SUB_TAB, toCompletedSubTab, } from './view/expenseAutomationView/types/completedSubTab';
174
177
  import { toJEScheduleMainTab as toExpenseAutomationJEScheduleMainTab, toJEScheduleSortKey as toExpenseAutomationJEScheduleSortKey, } from './view/expenseAutomationView/types/jeSchedulesViewState';
175
- import { BATCH_FILE_STATUSES, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, } from './view/expenseAutomationView/types/missingReceiptsViewState';
178
+ import { BATCH_FILE_STATUSES, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toMatchSource, toMissingReceiptsTab, } from './view/expenseAutomationView/types/missingReceiptsViewState';
176
179
  import { toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey, } from './view/expenseAutomationView/types/missingReceiptsViewState';
177
180
  import { toReconciliationTabsType, } from './view/expenseAutomationView/types/reconciliationViewState';
178
181
  import { toTransactionsTabKey as toExpenseAutomationTransactionsTabKey, toTransactionsSortKey, } from './view/expenseAutomationView/types/transactionsViewState';
182
+ import { clearFeatureNotificationView, fetchRegisteredInterests, notifyMeForFeature, } from './view/featureNotificationView/featureNotificationViewReducer';
183
+ import { getFeatureNotificationView, getRegisteredInterests, getRegisteredInterestsByFeature, isFeatureInterestRegistered, } from './view/featureNotificationView/featureNotificationViewSelector';
179
184
  import downloadFile from './view/fileView/fileDownloadHelpers';
180
185
  import uploadFile from './view/fileView/fileUploadHelpers';
181
186
  import { clearFileViewList, deleteFile, deleteFileFailure, deleteFileList, deleteFileListFailure, deleteFileListSuccess, deleteFileSuccess, fetchFile, fetchFileList, fetchFileListFailure, fetchFileListSuccess, updateFileName, updateFileNameFailure, updateFileNameSuccess, updateFilesMetadata, } from './view/fileView/fileViewReducer';
@@ -202,8 +207,6 @@ import { getNetBurnOrIncomeStoryCardReport } from './view/netBurnOrIncomeStoryCa
202
207
  import { fetchNotificationUnreadCount, fetchNotificationUnreadCountSuccess, fetchNotificationView, updateNotificationViewAllNotificationsStatus, updateNotificationViewCurrentTabAndSubTab, updateNotificationViewNotificationStatus, updateNotificationViewSubTab, updateNotificationViewTabState, updateNotificationViewUIState, } from './view/notificationView/notificationViewReducer';
203
208
  import { getExternalNotificationsForSelectedSubTab, getNotificationView, getNotificationsForSelectedSubTab, } from './view/notificationView/notificationViewSelector';
204
209
  import { toNotificationSubTabTypeStrict, toNotificationTabTypeStrict, } from './view/notificationView/notificationViewState';
205
- import { clearFeatureNotificationView, fetchRegisteredInterests, notifyMeForFeature, } from './view/featureNotificationView/featureNotificationViewReducer';
206
- import { getFeatureNotificationView, getRegisteredInterests, getRegisteredInterestsByFeature, isFeatureInterestRegistered, } from './view/featureNotificationView/featureNotificationViewSelector';
207
210
  import { clearOnboardingCustomerViewUpdateData, fetchCompanyOnboardingView, fetchOnboardingCompletedCompanies, fetchQBOConnectionPool, getOnboardingEmailGroup, initializeOnboardingCustomerViewUpdateData, resetNewOnboardedCustomerId, retryBankAccountConnectionForOnboarding, saveOnboardingCustomerCompletedStatus, saveOnboardingCustomerDataInLocalStore, saveOnboardingCustomerNotes, saveOnboardingCustomerViewUpdateData, saveOnboardingCustomerViewUpdates, sendOnboardingCustomerViewInvite, updateCustomerCreationStatus, updateOnboardingCustomerDataInLocalStore, updateOnboardingCustomerListUIState, updateQBOConnectionPoolExternalConnection, updateStatusAfterOnboardingCompleted, } from './view/onboardingView/cockpitView/onboardingCockpitViewReducer';
208
211
  import { getNewOnboardingCustomerView, getOnboardingCockpitView, } from './view/onboardingView/cockpitView/onboardingCockpitViewSelector';
209
212
  import { toProductType, toProductTypeStrict, } from './view/onboardingView/cockpitView/types/onboardingCockpitViewTypes';
@@ -224,13 +227,15 @@ import { fetchProfitAndLoss, fetchProfitAndLossForTimeframe, resetProfitAndLossN
224
227
  import { getPandLReportFetchState, getProfitAndLossReport, } from './view/profitAndLoss/profitAndLossSelector';
225
228
  import { getEmptyHorizontalSectionBalancesSlice } from './view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice';
226
229
  import { getProfitAndLossClassesHorizontalView } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector';
227
- import { aggregateHorizontalDescendantBalances } from './view/profitAndLossClassesView/profitAndLossHorizontalEnrichment';
228
230
  import { HORIZONTAL_CLASS_TOTAL_BALANCE_ID, isHorizontalAccountReportData, } from './view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes';
229
231
  import { fetchProfitAndLossClassesView, resetProfitAndLossClassesNodeCollapseState, updateClassViewLayout, updateAccountViewMode as updateProfitAndLossAccountViewMode, updateClassesToFilterOut as updateProfitAndLossClassesToFilterOut, updateProfitAndLossClassesViewUIState, } from './view/profitAndLossClassesView/profitAndLossClassesViewReducer';
230
232
  import { getProfitAndLossClassesView } from './view/profitAndLossClassesView/profitAndLossClassesViewSelector';
231
233
  import { isPandLReportViewCalculatedSectionID, isPandLReportViewSectionID, } from './view/profitAndLossClassesView/profitAndLossClassesViewSelectorTypes';
234
+ import { aggregateHorizontalDescendantBalances } from './view/profitAndLossClassesView/profitAndLossHorizontalEnrichment';
232
235
  import { clearProfitAndLossProjectView, fetchProfitAndLossForTimeframeProjectView, fetchProfitAndLossProjectView, resetProfitAndLossProjectNodeCollapseState, updateProfitAndLossProjectViewUIState, updateProjectViewAccountViewMode, updateProjectsToFilterOut, } from './view/profitAndLossProjectView/profitAndLossProjectViewReducer';
233
236
  import { getProfitAndLossProjectView } from './view/profitAndLossProjectView/profitAndLossProjectViewSelector';
237
+ import { fetchProjectList } from './view/projectList/projectListReducer';
238
+ import { getProjectList, } from './view/projectList/projectListSelector';
234
239
  import { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName, } from './view/recommendation/recommendationReducer';
235
240
  import { clearReferrals, fetchReferrals, fetchRewardsPlan, resendReferralInvite, saveReferralFormDataInLocalStore, sendReferralInvite, updateReferViewed, updateReferralListSortUiState, } from './view/referralView/referralReducer';
236
241
  import { getInviteFormView, getReferralListView, getRewardsPlanCard, } from './view/referralView/referralSelector';
@@ -295,7 +300,7 @@ import { fetchChargeCardConfig } from './view/spendManagement/chargeCards/charge
295
300
  import { closeChargeCard, completeCVVActivationWait, completeDebitCardSetPinWait, fetchChargeCardDetail, fetchChargeCardDetailPage, fetchChargeCardTransactionAttachments, fetchChargeCardTransactionList, fetchChargeCardTransactionStatistics, fetchChargeCardsRecurringExpenses, fetchDepositAccountLimit, lockChargeCard, startCVVActivationWait, startDebitCardSetPinWait, unlockChargeCard, updateChargeCardDetail, updateChargeCardName, updateChargeCardSpendLimit, updateChargeCardSpendLimitSuccessOrFailure, updateChargeCardTransactionIsViewReceiptClicked, updateChargeCardTransactionReceiptsShowTickFetchStatus, updateChargeCardTransactionUploadReceiptsFetchStatus, updateDebitCardPinAttempt, updatePhysicalChargeCardAttempt, } from './view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer';
296
301
  import { getChargeCardCVVActivateView, getChargeCardControlDetailView, getChargeCardDetailView, getChargeCardRecurringExpensesView, getChargeCardTransactionAttachmentView, getDebitCardSetPinView, getDepositAccountLimitFetchStateByDepositAccountId, } from './view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailSelector';
297
302
  import { toChargeCardSortKeyType, } from './view/spendManagement/chargeCards/chargeCardList/chargeCardList';
298
- import { closeChargeCards, fetchChargeCardList, fetchChargeCardListPage, fetchCreditAccount, fetchCreditAccountRepayment, fetchDebitCardSummary, lockChargeCards, resendCardInvite, revokeCardInvite, revokeChargeCardsInvite, unlockChargeCards, updateBulkActionCardIds, updateSearchText as updateChargeCardListSearchText, updateChargeCardListUIState, updateChargeCardsSpendLimit, updateRowActionCardId, } from './view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer';
303
+ import { closeChargeCards, fetchChargeCardList, fetchChargeCardListPage, fetchCreditAccount, fetchCreditAccountRepayment, fetchDebitCardSummary, lockChargeCards, resendCardInvite, revokeCardInvite, revokeChargeCardsInvite, unlockChargeCards, updateBulkActionCardIds, updateSearchText as updateChargeCardListSearchText, updateChargeCardListUIState, updateChargeCardsSpendLimit, updateCreditAccountBalanceFromPusher, updateRowActionCardId, } from './view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer';
299
304
  import { anyCardOnHold, getChargeCardBulkActionView, getChargeCardListView, getChargeCardRecurringExpensesByCardIds, getChargeCardRowActionView, getCreditAccountDetails, getDebitCardList, getDebitCardSummary, getDepositAccountListWithDebitCardIssued, getMyPendingActivationChargeCardListView, getMyRequestOnHoldChargeCardListWithShippingAddress, } from './view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector';
300
305
  import { PAYMENT_HISTORY_FILTER_CATEGORIES, } from './view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory';
301
306
  import { getChargeCardPaymentHistoryDownloadReport, } from './view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector';
@@ -332,6 +337,7 @@ import { getRemiBusinessVerificationDetails, getRemiSetupViewDetails, } from './
332
337
  import { approveOrRejectRemisBulkAction, autoReviewPendingApprovalRemis, cancelOrDeleteRemisBulkAction, clearAllRemisFromBulkActionList, clearRemiBulkActionView, incrementRemiBulkActionProcessedCount, removeRemiFromBulkActionList, reviewDraftRemisBulkAction, submitDraftRemisBulkAction, updateRemisBulkActionList, } from './view/spendManagement/reimbursement/remisBulkActionView/remisBulkActionViewReducer';
333
338
  import { getRemisBulkOperationProgress, getRemisBulkReviewView, } from './view/spendManagement/reimbursement/remisBulkActionView/remisBulkActionViewSelector';
334
339
  import { hideCreatedByFilter, } from './view/spendManagement/spendManagementFilterHelpers';
340
+ import { TRANSACTION_FILTER_CATEGORIES, applyTransactionFilters, } from './view/expenseAutomationView/transactionFilterHelpers';
335
341
  import { acceptTreasuryTerms, clearTreasurySetupView, fetchPortfolioAllocation, fetchTreasuryFunds, fetchTreasurySetupView, updateFundAllocationLocalData, updatePortfolioAllocation, updateTreasuryVideoViewed, } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewReducer';
336
342
  import { getTreasuryBusinessVerificationDetails, getTreasurySetupViewDetails, } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewSelector';
337
343
  import { getTreasuryFundsMaximumYield, } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewState';
@@ -384,9 +390,9 @@ import { getThirdPartyIdFromTransactionId, } from './view/transactionDetail/tran
384
390
  import { getTransactionListByAccount, getTransactionListUIStateByAccountKey, } from './view/transactionList/transactionListByAccountSelector';
385
391
  import { getTransactionListUIStateByCategoryType, getTransactionsListByCategoryType, } from './view/transactionList/transactionListByCategoryTypeSelector';
386
392
  import { getTransactionListByClass, getTransactionListUIStateByClassKey, } from './view/transactionList/transactionListByClassSelector';
387
- import { getTransactionListByProject, getTransactionListUIStateByProjectKey, } from './view/transactionList/transactionListByProjectSelector';
388
393
  import { getTransactionListByEntity, getTransactionListByEntityForSinglePeriod, } from './view/transactionList/transactionListByEntitySelector';
389
- import { clearTransactionList, fetchAccountTransactionList, fetchEntityTransactionList, parallelFetchAccountTransactionList, parallelFetchClassTransactionList, parallelFetchProjectTransactionList, parallelFetchEntityTransactionList, parallelFetchTransactionListByCategoryType, updateLatestTransactionId, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByProject, updateTransactionListByProjectUIState, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListUIStateByCategoryType, } from './view/transactionList/transactionListReducer';
394
+ import { getTransactionListByProject, getTransactionListUIStateByProjectKey, } from './view/transactionList/transactionListByProjectSelector';
395
+ import { clearTransactionList, fetchAccountTransactionList, fetchEntityTransactionList, parallelFetchAccountTransactionList, parallelFetchClassTransactionList, parallelFetchEntityTransactionList, parallelFetchProjectTransactionList, parallelFetchTransactionListByCategoryType, updateLatestTransactionId, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListByProject, updateTransactionListByProjectUIState, updateTransactionListUIStateByCategoryType, } from './view/transactionList/transactionListReducer';
390
396
  import { clearTrendData, fetchExpenseTrend, fetchIncomeTrend, } from './view/trend/trendReducer';
391
397
  import { getCurrentFiscalQuarterDateRange, getTrendForEntity, } from './view/trend/trendSelector';
392
398
  import { clearTrendWithTransactions, fetchTransactionsForEntity, fetchTrendForEntity, updateSelectedTimeperiod, } from './view/trendWithTransactions/trendWithTransactionsReducer';
@@ -441,18 +447,18 @@ export { stringToUnion, stringToUnionStrict };
441
447
  export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, getMonthEndCloseChecksViewByTenantId, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, };
442
448
  export {
443
449
  // Bulk Upload Types
444
- BATCH_FILE_STATUSES, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts,
450
+ BATCH_FILE_STATUSES, isUnmatchedTabFileStatus, DEFAULT_COMPLETED_SUB_TAB, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, fetchExpenseAutomationMissingReceipts,
445
451
  // Bulk Upload Actions
446
452
  bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, getExpenseAutomationFluxAnalysisView, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, updateFluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, getExpenseAutomationReconciliationView, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, getAccountReconByAccountIdAndSelectedPeriod, toReconciliationTabsType, isAccountReconReport, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, toReconciliationAccountSource, deleteAccountStatement, uploadAccountStatement, updateNodeCollapseState, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
447
- export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, toTransactionsSortKey, };
453
+ export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateTransactionFilters, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, toTransactionsSortKey, };
448
454
  export { TOP_EX_TIME_PERIODS };
449
455
  export { toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsoluteDay, toMonthYearPeriodId, convertToPeriod, };
450
456
  export { toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
451
457
  export { getNumberOfPeriods };
452
458
  export { SCHEDULE_DAYS_OF_MONTH, toScheduleDaysOfMonth, toMonth, toMonthStrict, toQuarter, toQuarterStrict, };
453
459
  export { getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut, sendSessionHeartbeat, resetSignInState, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, deleteConnection, saveAPIKeyConnection, saveConnectorCredentials, saveOAuthConnection, toExternalIntegrationType, toExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
454
- export { toAccountType, toAccountGroupType, getAccountGroupKey, };
455
- export { getClassById } from './entity/class/classSelector';
460
+ export { toAccountType, toAccountGroupType, getAccountGroupKey, getAllAccounts, getTransactionFilterAccountOptions, };
461
+ export { getAllClasses, getClassById, getClassFilterOptions, } from './entity/class/classSelector';
456
462
  export { getForecast };
457
463
  export { getUserName, getUserByUserId, getUsersByUserIds, getAllZeniUsersFromState, } from './entity/user/userSelector';
458
464
  export { toUserRoleType, toUserRoleTypeStrict, isFinOpsUserRoleType, hasAdminLevelAccess, hasFullOrAdminLevelAccess, hasReimbursementUserAccess, hasEmployeeLevelAccess, hasBookKeepingAdminLevelAccess, hasBookKeepingUserLevelAccess, isNonZeniRole, hasInvestorBankerLevelAccess, getUserRoleMap, hasOnlyBillPayAccess, hasZeniRoleOrCompanyOfficerAccess, hasSuperAdminLevelAccess, hasBillPayFallbackAdminLevelAccess, hasRemiFallbackAdminLevelAccess, hasOnlyReimbursementAccess, hasOnlyChargeCardAccess, hasOnlyZeniAccountsAccess, isZeniSignedInUser, getUserRoleByUserId, getUserRoleByUserIds, hasChargeCardAccess, hasZeniAccountsAccess, hasTreasuryAccess, hasTreasuryAdminLevelAccess, hasBillPayAccess, hasReimbursementAccess, hasReimbursementAdminLevelAccess, hasBillPayAdminLevelAccess, hasChargeCardAdminLevelAccess, hasSpendManagementAccess, hasSpendManagementAdminLevelAccess, hasZeniAccountsAdminLevelAccess, hasAnyCompanyRole, hasAnyFinOpRole, hasBillPayAccessible, hasReimbursementAccessible, hasZeniAccountsAccessible, hasChargeCardAccessible, hasTreasuryAccessible, hasAICFOAccess, };
@@ -552,6 +558,10 @@ export { toRemiSubTabType, toRemiSubTabTypeStrict, toRemiTabType, toRemiTabTypeS
552
558
  export { getClassList, fetchClassList, getProjectList, fetchProjectList, };
553
559
  export { fetchBillList, fetchBillListPerTab, updateTab, updateSubTab, updateSelectedBillId, updateBillDetailSaveBillCode, fetchVendorByNameAndParseInvoice, saveBillUpdatesToLocalStore, discardBillUpdatesInLocalStore, saveBillDetail, approveOrRejectBill, updateApprovalStatusOnSuccess, deleteBill, cancelAndDeleteBill, retryOrRefundBill, getBillList, getBillDownloadList, getBillDetailView, checkApproveRejectBtnShowForBill, getBillTransactionDetailKey, fetchBillDetail, fetchEditBillDetailPage, fetchAndUpdateVendorRecommendations, fetchDuplicateBill, clearBillPayReview, getEditBillDetail, getReviewPageBillDetail, fetchBillAndInitializeLocalStore, updateShowAutofill, saveVendorSuccessOrFailure, updateBillListUIState, BILL_PAY_FILTER_CATEGORIES, updateVendorDetailLocalData, resetVendorDetailLocalData, resetVendorSaveStatus, updateContactsInVendorDetailLocalData, updateVendorTabDetailUIState, updateContactsInVendorTabDetailLocalData, updateBillUploadFetchState, updateBillListSearchResult, fetchUserDetails, verifyUser, updateVendorContact, toPaymentToOption, convertAmountToHomeCurrency, fetchVendorAndUpdateBillLocalData, markBillForRetry, updateWithdrawFromAccountId, removeBillFileFromLocalStore, replaceBillFileInLocalStore, updateShouldReplaceBillData, };
554
560
  export { hideCreatedByFilter, };
561
+ // Transaction Categorization filter API — lives under Expense Automation,
562
+ // not Spend Management. Kept in a separate re-export block to make the
563
+ // separation visible at the barrel level.
564
+ export { TRANSACTION_FILTER_CATEGORIES, applyTransactionFilters, };
555
565
  export { fetchBillPaySetupView, fetchZeniAccountSetupView, enableSetup, getPaymentAccounts, getPlaidLinkToken, updateSelectedCompanyOfficer, updateSetupViewLocalStoreData, updateBusinessVerificationDetails, updatePaymentAccount, updatePaymentAccountLoginStatus, updatePaymentAccountStatus, establishPlaidConnection, updateMappedCashAccount, updatePrimaryFundingAccount, acceptBillPayTerms, acceptZeniAccountTerms, acceptBillPayUpdatedTerms, saveSetupViewDataInLocalStore, saveCompnayOfficerPhoneInLocalStore, saveCompnayOfficerAdditionalDocumentsInLocalStore, saveTreasuryAdditionalDocumentsInLocalStore, saveIndustryAndIncDateInLocalStore, clearSetupViewDataInLocalStore, clearBillPaySetupView, clearZeniAccountSetupView, sendOtp, resendOtp, verifyOtp, getBillPaySetupViewDetails, getPlaidAccountDetails, getZeniAccountSetupViewDetails, getBusinessVerificationDetails, getBillPayBusinessVerificationDetails, getZeniAccountBusinessVerificationDetails, getTreasuryBusinessVerificationDetails, getCommonSetupViewDetails, getTwoFactorAuthenticationView, getTwoFactorAuthenticationViewForCardUserOnboarding, getTwoFactorAuthenticationViewForChargeCardHolder, };
556
566
  export { getApprovalRuleViewDetails, getBankConnectionsSetupViewDetails, getIntegrationsView, };
557
567
  export { fetchUserFinancialAccount };
@@ -596,7 +606,7 @@ export { fetchUserRoleConfig, getUserRoleConfig };
596
606
  export { getCompanyHealthMetricConfig, fetchCompanyHealthMetricConfig, };
597
607
  export { updateCompaniesHealth, updateCompanyHealth, };
598
608
  export { clearCompanyHealthMetricView, fetchCompanyHealthMetricView, initializeCompanyHealthMetricViewLocalData, removeSelectedCompanyId, saveCompanyHealthMetricById, updateCompanyHealthMetricLocalStore, updateCompanyHealthMetricViewErrorStatus, updateCompanyHealthMetricViewSuccessStatus, updateCompanyHealthViewUIState, };
599
- export { updateChargeCardTransactionAttachments, attachmentFilePathToAttachment, isCompanyRunwayInfinite, getCompanyHealthMetricView, hasCompanyHealthMetricFormFieldChanged, companyHealthMetricDropDownOptions, getChargeCardBusinessVerificationDetails, fetchDebitCardSummary, fetchChargeCardList, fetchChargeCardListPage, fetchChargeCardConfig, fetchCreditAccount, fetchCreditAccountRepayment, getChargeCardListView, getMyPendingActivationChargeCardListView, getMyRequestOnHoldChargeCardListWithShippingAddress, clearChargeCardRepaymentDetail, fetchChargeCardRepaymentDetail, initiateChargeCardRepayment, updateChargeCardRepaymentLocalStore, getChargeCardRepaymentDetail, fetchChargeCardPaymentPage, fetchChargeCardPaymentHistory, updatePaymentHistoryDownloadUIState, updatePaymentHistoryFilters, updatePaymentHistorySearchText, updatePaymentHistoryUIState, getChargeCardPaymentHistoryDownloadReport, getChargeCardPaymentHistoryView, getPaymentHistorySourceAccountName, getPaymentStatusDisplayText, PAYMENT_HISTORY_FILTER_CATEGORIES, getCreditAccountDetails, fetchChargeCardDetailPage, fetchChargeCardDetail, fetchChargeCardTransactionStatistics, fetchDepositAccountLimit, getChargeCardDetailView, getChargeCardControlDetailView, getDepositAccountLimitFetchStateByDepositAccountId, getChargeCardTransactionAttachmentView, getDebitCardSetPinView, getChargeCardRecurringExpensesByCardIds, getChargeCardRecurringExpensesView, getChargeCardRowActionView, getChargeCardBulkActionView, getChargeCardCVVActivateView, fetchChargeCardTransactionList, fetchCashbackDetail, toChargeCardSortKeyType, getCashbackDetail, getZeniDateFromPeriod, toCreditLimitFrequencyCodeType, getDepositAccountListWithDebitCardIssued, getIssueChargeCardView, getChargeCardSetupViewDetails, fetchChargeCardStatementList, getChargeCardStatements, fetchChargeCardSetupView, enableChargeCardAutoPay, acceptChargeCardTerms, expressInterestInChargeCard, getDepositAccountLimitForChargeCardByDepositAccountId, toCardAddressType, toShippingAddressType, toCardType, issueChargeCards, fetchIssueCardPage, fetchDepositAccountListForCards, getDebitCardList, getDebitCardSummary, updateCustomAddressId, updateChargeCardsLocalStore, resetIssueChargeCardForm, updateBulkActionCardIds, updateChargeCardListSearchText, updateChargeCardListUIState, updateCashbackDetailUIState, updateChargeCardDetail, updatePhysicalChargeCardAttempt, lockChargeCard, unlockChargeCard, closeChargeCard, updateChargeCardName, getCardUserOnboardingView, initializeCardUserOnboardingLocalData, updateCardUserOnboardingLocalData, saveCardOnboardingUserDetails, updateChargeCardTransactionUploadReceiptsFetchStatus, completeDebitCardSetPinWait, startDebitCardSetPinWait, updateDebitCardPinAttempt, updateChargeCardTransactionReceiptsShowTickFetchStatus, updateChargeCardTransactionIsViewReceiptClicked, fetchChargeCardTransactionAttachments, completeCVVActivationWait, startCVVActivationWait, updateChargeCardSpendLimit, updateChargeCardSpendLimitSuccessOrFailure, resendCardInvite, revokeCardInvite, updateRowActionCardId, revokeChargeCardsInvite, lockChargeCards, unlockChargeCards, closeChargeCards, updateChargeCardsSpendLimit, fetchChargeCardsRecurringExpenses, startCardUserOnboardingActivationWait, completeCardUserOnboardingActivationWait, setFirstViewAfterActivation, setFirstViewCompleteAfterActivation, setCurrentDisplayedCardId, getChargeCardById, anyCardOnHold, };
609
+ export { updateChargeCardTransactionAttachments, updateChargeCardStatusFromPusher, updateChargeCardSpendingFromPusher, updateChargeCardTransactionStatusFromPusher, updateChargeCardTransactionFromPusher, updateChargeCardTransactionReceiptFromPusher, updateCreditAccountBalanceFromPusher, addChargeCardTransactionFromPusher, addDeclinedChargeCardTransactionFromPusher, attachmentFilePathToAttachment, isCompanyRunwayInfinite, getCompanyHealthMetricView, hasCompanyHealthMetricFormFieldChanged, companyHealthMetricDropDownOptions, getChargeCardBusinessVerificationDetails, fetchDebitCardSummary, fetchChargeCardList, fetchChargeCardListPage, fetchChargeCardConfig, fetchCreditAccount, fetchCreditAccountRepayment, getChargeCardListView, getMyPendingActivationChargeCardListView, getMyRequestOnHoldChargeCardListWithShippingAddress, clearChargeCardRepaymentDetail, fetchChargeCardRepaymentDetail, initiateChargeCardRepayment, updateChargeCardRepaymentLocalStore, getChargeCardRepaymentDetail, fetchChargeCardPaymentPage, fetchChargeCardPaymentHistory, updatePaymentHistoryDownloadUIState, updatePaymentHistoryFilters, updatePaymentHistorySearchText, updatePaymentHistoryUIState, getChargeCardPaymentHistoryDownloadReport, getChargeCardPaymentHistoryView, getPaymentHistorySourceAccountName, getPaymentStatusDisplayText, PAYMENT_HISTORY_FILTER_CATEGORIES, getCreditAccountDetails, fetchChargeCardDetailPage, fetchChargeCardDetail, fetchChargeCardTransactionStatistics, fetchDepositAccountLimit, getChargeCardDetailView, getChargeCardControlDetailView, getDepositAccountLimitFetchStateByDepositAccountId, getChargeCardTransactionAttachmentView, getDebitCardSetPinView, getChargeCardRecurringExpensesByCardIds, getChargeCardRecurringExpensesView, getChargeCardRowActionView, getChargeCardBulkActionView, getChargeCardCVVActivateView, fetchChargeCardTransactionList, fetchCashbackDetail, toChargeCardSortKeyType, getCashbackDetail, getZeniDateFromPeriod, toCreditLimitFrequencyCodeType, getDepositAccountListWithDebitCardIssued, getIssueChargeCardView, getChargeCardSetupViewDetails, fetchChargeCardStatementList, getChargeCardStatements, fetchChargeCardSetupView, enableChargeCardAutoPay, acceptChargeCardTerms, expressInterestInChargeCard, getDepositAccountLimitForChargeCardByDepositAccountId, toCardAddressType, toShippingAddressType, toCardType, issueChargeCards, fetchIssueCardPage, fetchDepositAccountListForCards, getDebitCardList, getDebitCardSummary, updateCustomAddressId, updateChargeCardsLocalStore, resetIssueChargeCardForm, updateBulkActionCardIds, updateChargeCardListSearchText, updateChargeCardListUIState, updateCashbackDetailUIState, updateChargeCardDetail, updatePhysicalChargeCardAttempt, lockChargeCard, unlockChargeCard, closeChargeCard, updateChargeCardName, getCardUserOnboardingView, initializeCardUserOnboardingLocalData, updateCardUserOnboardingLocalData, saveCardOnboardingUserDetails, updateChargeCardTransactionUploadReceiptsFetchStatus, completeDebitCardSetPinWait, startDebitCardSetPinWait, updateDebitCardPinAttempt, updateChargeCardTransactionReceiptsShowTickFetchStatus, updateChargeCardTransactionIsViewReceiptClicked, fetchChargeCardTransactionAttachments, completeCVVActivationWait, startCVVActivationWait, updateChargeCardSpendLimit, updateChargeCardSpendLimitSuccessOrFailure, resendCardInvite, revokeCardInvite, updateRowActionCardId, revokeChargeCardsInvite, lockChargeCards, unlockChargeCards, closeChargeCards, updateChargeCardsSpendLimit, fetchChargeCardsRecurringExpenses, startCardUserOnboardingActivationWait, completeCardUserOnboardingActivationWait, setFirstViewAfterActivation, setFirstViewCompleteAfterActivation, setCurrentDisplayedCardId, getChargeCardById, anyCardOnHold, };
600
610
  export { TIME_SERIES_DURATIONS, convertToTimeSeriesSelectionRange, toTimeSeriesDuration, fetchAggregatedReport, aggregatedReportView, };
601
611
  export { fetchApAging, getApAgingReport, updateApAgingUIState, };
602
612
  export { fetchApAgingDetail, getApAgingDetailForVendor, updateApAgingDetailUIState, };
@@ -4,7 +4,6 @@ import accountGroup, { initialState as initialAccountGroupState, } from './entit
4
4
  import accountRecon, { initialState as initialAccountReconState, } from './entity/accountRecon/accountReconReducer';
5
5
  import address, { initialState as initialAddressState, } from './entity/address/addressReducer';
6
6
  import aiAccountantCustomer, { initialAiAccountantCustomerState, } from './entity/aiAccountantCustomer/aiAccountantCustomerReducer';
7
- import creditAgentEntity, { initialCreditAgentEntityState, } from './entity/creditAgent/creditAgentReducer';
8
7
  import aiCfo, { initialAiCfoState } from './entity/aiCfo/aiCfoReducer';
9
8
  import approvalRule, { initialState as initialApprovalRuleState, } from './entity/approvalRule/approvalRuleReducer';
10
9
  import bankAccount, { initialState as initialBankAccountState, } from './entity/bankAccount/bankAccountReducer';
@@ -20,6 +19,7 @@ import company, { initialState as initialCompanyState, } from './entity/company/
20
19
  import companyHealthMetric, { initialState as initialCompanyHealthMetricState, } from './entity/companyHealthMetric/companyHealthMetricReducer';
21
20
  import connectedAccount, { initialState as initialConnectedAccountState, } from './entity/connectedAccount/connectedAccountReducer';
22
21
  import countryList, { initialState as initialCountryListState, } from './entity/countryList/countryListReducer';
22
+ import creditAgentEntity, { initialCreditAgentEntityState, } from './entity/creditAgent/creditAgentReducer';
23
23
  import currency, { initialState as initialCurrencyState, } from './entity/currency/currencyReducer';
24
24
  import customer, { initialState as initialCustomerState, } from './entity/customer/customerReducer';
25
25
  import customerIncome, { initialState as initialCustomerIncomeState, } from './entity/customerIncome/customerIncomeTrendReducer';
@@ -107,9 +107,9 @@ import expenseAutomationJESchedulesView, { initialState as initialExpenseAutomat
107
107
  import expenseAutomationMissingReceiptsView, { initialState as initialExpenseAutomationMissingReceiptsViewState, } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
108
108
  import expenseAutomationReconciliationView, { initialState as initialExpenseAutomationReconciliationViewState, } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
109
109
  import expenseAutomationTransactionsView, { initialState as initialExpenseAutomationTransactionsViewState, } from './view/expenseAutomationView/reducers/transactionsViewReducer';
110
+ import featureNotificationView, { initialState as initialFeatureNotificationViewState, } from './view/featureNotificationView/featureNotificationViewReducer';
110
111
  import fileView from './view/fileView/fileViewReducer';
111
112
  import { initialFileViewState, } from './view/fileView/fileViewState';
112
- import featureNotificationView, { initialState as initialFeatureNotificationViewState, } from './view/featureNotificationView/featureNotificationViewReducer';
113
113
  import financeStatement, { initialFinanceStatementState, } from './view/financeStatement/financeStatementReducer';
114
114
  import forecastList, { initialState as initialForecastListState, } from './view/forecastList/forecastListReducer';
115
115
  import globalMerchantAutoComplete, { initialState as initialGlobalMerchantAutoCompleteState, } from './view/globalMerchantView/globalMerchantAutoCompleteView/globalMerchantAutoCompleteViewReducer';