@zeniai/client-epic-state 5.0.76 → 5.0.77-betaAK1

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 (223) hide show
  1. package/lib/commonStateTypes/amount.d.ts +1 -0
  2. package/lib/commonStateTypes/amount.js +3 -1
  3. package/lib/commonStateTypes/cacheOverrideFetchReducer.d.ts +17 -0
  4. package/lib/commonStateTypes/cacheOverrideFetchReducer.js +20 -0
  5. package/lib/commonStateTypes/filterPrimitives.d.ts +23 -0
  6. package/lib/commonStateTypes/filterPrimitives.js +21 -0
  7. package/lib/commonStateTypes/pusherActions.d.ts +11 -0
  8. package/lib/commonStateTypes/pusherActions.js +6 -0
  9. package/lib/coreEpics.js +1 -1
  10. package/lib/entity/account/accountSelector.d.ts +27 -1
  11. package/lib/entity/account/accountSelector.js +47 -1
  12. package/lib/entity/account/accountState.d.ts +6 -1
  13. package/lib/entity/account/accountState.js +11 -4
  14. package/lib/entity/account/subAccountSelector.d.ts +1 -1
  15. package/lib/entity/aiAccountantCustomer/aiAccountantCustomerPayload.js +1 -3
  16. package/lib/entity/aiAccountantCustomer/aiAccountantCustomerReducer.js +1 -2
  17. package/lib/entity/aiAccountantCustomer/aiAccountantCustomerSelector.d.ts +1 -1
  18. package/lib/entity/chargeCard/chargeCardReducer.d.ts +19 -2
  19. package/lib/entity/chargeCard/chargeCardReducer.js +35 -2
  20. package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.d.ts +14 -1
  21. package/lib/entity/chargeCardTransaction/chargeCardTransactionReducer.js +36 -2
  22. package/lib/entity/class/classSelector.d.ts +35 -0
  23. package/lib/entity/class/classSelector.js +50 -0
  24. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +1 -1
  25. package/lib/entity/sectionProjectView/sectionProjectViewSelector.js +1 -1
  26. package/lib/entity/tenant/SessionManager.js +6 -3
  27. package/lib/entity/tenant/clearAllEpic.d.ts +2 -2
  28. package/lib/entity/tenant/clearAllEpic.js +2 -2
  29. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.js +6 -2
  30. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.js +6 -2
  31. package/lib/entity/tenant/tenantReducer.js +6 -1
  32. package/lib/entity/transaction/payloadTypes/transactionLinePayload.js +3 -1
  33. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventPayload.d.ts +11 -0
  34. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventPayload.js +23 -0
  35. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventReducer.d.ts +6 -0
  36. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventReducer.js +31 -0
  37. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventSelector.d.ts +4 -0
  38. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventSelector.js +16 -0
  39. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventState.d.ts +13 -0
  40. package/lib/entity/upcomingPaymentEvent/upcomingPaymentEventState.js +2 -0
  41. package/lib/epic.d.ts +16 -10
  42. package/lib/epic.js +17 -11
  43. package/lib/esm/commonStateTypes/amount.js +1 -0
  44. package/lib/esm/commonStateTypes/cacheOverrideFetchReducer.js +16 -0
  45. package/lib/esm/commonStateTypes/filterPrimitives.js +20 -0
  46. package/lib/esm/commonStateTypes/pusherActions.js +3 -0
  47. package/lib/esm/coreEpics.js +1 -1
  48. package/lib/esm/entity/account/accountSelector.js +46 -1
  49. package/lib/esm/entity/account/accountState.js +7 -1
  50. package/lib/esm/entity/aiAccountantCustomer/aiAccountantCustomerPayload.js +1 -3
  51. package/lib/esm/entity/aiAccountantCustomer/aiAccountantCustomerReducer.js +1 -2
  52. package/lib/esm/entity/chargeCard/chargeCardReducer.js +34 -1
  53. package/lib/esm/entity/chargeCardTransaction/chargeCardTransactionReducer.js +35 -1
  54. package/lib/esm/entity/class/classSelector.js +48 -0
  55. package/lib/esm/entity/sectionProjectView/sectionProjectViewSelector.js +1 -1
  56. package/lib/esm/entity/tenant/SessionManager.js +4 -1
  57. package/lib/esm/entity/tenant/clearAllEpic.js +2 -2
  58. package/lib/esm/entity/tenant/epic/saveAPIKeyConnectionEpic.js +6 -2
  59. package/lib/esm/entity/tenant/epic/saveOAuthConnectionEpic.js +6 -2
  60. package/lib/esm/entity/tenant/tenantReducer.js +6 -1
  61. package/lib/esm/entity/transaction/payloadTypes/transactionLinePayload.js +3 -1
  62. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventPayload.js +19 -0
  63. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventReducer.js +27 -0
  64. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventSelector.js +11 -0
  65. package/lib/esm/entity/upcomingPaymentEvent/upcomingPaymentEventState.js +1 -0
  66. package/lib/esm/epic.js +17 -11
  67. package/lib/esm/index.js +34 -22
  68. package/lib/esm/reducer.js +8 -2
  69. package/lib/esm/view/aiAccountantView/epics/fetchAiAccountantCustomersEpic.js +2 -5
  70. package/lib/esm/view/aiAccountantView/epics/fetchAiAccountantJobsEpic.js +2 -5
  71. package/lib/esm/view/aiAccountantView/epics/triggerAiAccountantJobEpic.js +4 -1
  72. package/lib/esm/view/companyHealthMetricView/companyHealthMetricViewSelector.js +1 -1
  73. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +1 -1
  74. package/lib/esm/view/companyTaskManagerView/epics/fetchTaskManagerMetricsEpic.js +1 -1
  75. package/lib/esm/view/companyView/helpers/cockpitHelpers.js +1 -1
  76. package/lib/esm/view/companyView/selector/companyManagementViewSelector.js +1 -1
  77. package/lib/esm/view/companyView/selector/companyPortfolioViewSelector.js +1 -1
  78. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +2 -2
  79. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +2 -1
  80. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +21 -5
  81. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/refreshBatchDetailsForBatchIdEpic.js +52 -0
  82. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/restoreBulkUploadAutomatchingOnMountEpic.js +8 -6
  83. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +7 -1
  84. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/syncTabsAfterAutomatchEpic.js +56 -0
  85. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +13 -9
  86. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +11 -1
  87. package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +21 -1
  88. package/lib/esm/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +81 -2
  89. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +253 -14
  90. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +2 -0
  91. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +147 -13
  92. package/lib/esm/view/expenseAutomationView/transactionFilterHelpers.js +258 -0
  93. package/lib/esm/view/expenseAutomationView/types/completedSubTab.js +17 -0
  94. package/lib/esm/view/expenseAutomationView/types/missingReceiptsViewState.js +0 -2
  95. package/lib/esm/view/financeStatement/financeStatementSelector.js +1 -1
  96. package/lib/esm/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +87 -0
  97. package/lib/esm/view/recommendation/recommendationHelper.js +29 -0
  98. package/lib/esm/view/recommendation/recommendationReducer.js +26 -1
  99. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +1 -0
  100. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +82 -0
  101. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +93 -0
  102. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +14 -0
  103. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +6 -0
  104. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +42 -0
  105. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchUpcomingPaymentEventsEpic.js +22 -0
  106. package/lib/esm/view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer.js +3 -2
  107. package/lib/esm/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer.js +3 -2
  108. package/lib/esm/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer.js +55 -18
  109. package/lib/esm/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailEpic.js +16 -2
  110. package/lib/esm/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailPageEpic.js +5 -4
  111. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.js +26 -9
  112. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/fetchChargeCardListPageEpic.js +9 -6
  113. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +3 -2
  114. package/lib/esm/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +1 -1
  115. package/lib/esm/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailReducer.js +7 -3
  116. package/lib/esm/view/spendManagement/spendManagementFilterHelpers.js +4 -2
  117. package/lib/esm/view/subscriptionView/subscriptionViewSelector.js +1 -1
  118. package/lib/esm/view/taskManager/cannedResponsesView/epics/fetchCannedResponsesEpic.js +1 -1
  119. package/lib/esm/view/taskManager/cannedResponsesView/epics/saveCannedResponseEpic.js +1 -1
  120. package/lib/esm/view/taskManager/taskDetailView/epics/unsnoozeTaskEpic.js +1 -1
  121. package/lib/esm/view/taskManager/taskListView/taskListReducer.js +1 -1
  122. package/lib/esm/view/transactionDetail/transactionDetailReducer.js +121 -6
  123. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +29 -1
  124. package/lib/index.d.ts +34 -24
  125. package/lib/index.js +92 -58
  126. package/lib/reducer.d.ts +8 -2
  127. package/lib/reducer.js +8 -2
  128. package/lib/view/aiAccountantView/aiAccountantViewPayload.d.ts +2 -2
  129. package/lib/view/aiAccountantView/aiAccountantViewReducer.d.ts +1 -1
  130. package/lib/view/aiAccountantView/epics/fetchAiAccountantCustomersEpic.js +2 -5
  131. package/lib/view/aiAccountantView/epics/fetchAiAccountantJobsEpic.js +2 -5
  132. package/lib/view/aiAccountantView/epics/triggerAiAccountantJobEpic.js +4 -1
  133. package/lib/view/companyHealthMetricView/companyHealthMetricViewSelector.js +1 -1
  134. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +1 -1
  135. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +1 -1
  136. package/lib/view/companyView/helpers/cockpitHelpers.js +1 -1
  137. package/lib/view/companyView/selector/companyManagementViewSelector.js +1 -1
  138. package/lib/view/companyView/selector/companyPortfolioViewSelector.js +1 -1
  139. package/lib/view/companyView/types/cockpitTypes.d.ts +1 -1
  140. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +2 -2
  141. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +2 -1
  142. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +21 -5
  143. package/lib/view/expenseAutomationView/epics/missingReceipts/refreshBatchDetailsForBatchIdEpic.d.ts +18 -0
  144. package/lib/view/expenseAutomationView/epics/missingReceipts/refreshBatchDetailsForBatchIdEpic.js +56 -0
  145. package/lib/view/expenseAutomationView/epics/missingReceipts/restoreBulkUploadAutomatchingOnMountEpic.js +8 -6
  146. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +7 -1
  147. package/lib/view/expenseAutomationView/epics/missingReceipts/syncTabsAfterAutomatchEpic.d.ts +28 -0
  148. package/lib/view/expenseAutomationView/epics/missingReceipts/syncTabsAfterAutomatchEpic.js +60 -0
  149. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.d.ts +11 -5
  150. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +12 -8
  151. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.d.ts +2 -2
  152. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +10 -0
  153. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +2 -1
  154. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +23 -2
  155. package/lib/view/expenseAutomationView/payload/transactionCategorizationPayload.d.ts +21 -0
  156. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +15 -2
  157. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +83 -3
  158. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +28 -5
  159. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +253 -14
  160. package/lib/view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes.d.ts +14 -1
  161. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +16 -0
  162. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +2 -0
  163. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +7 -1
  164. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +150 -13
  165. package/lib/view/expenseAutomationView/transactionFilterHelpers.d.ts +66 -0
  166. package/lib/view/expenseAutomationView/transactionFilterHelpers.js +262 -0
  167. package/lib/view/expenseAutomationView/types/completedSubTab.d.ts +10 -0
  168. package/lib/view/expenseAutomationView/types/completedSubTab.js +21 -0
  169. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +20 -2
  170. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.js +1 -4
  171. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +44 -2
  172. package/lib/view/financeStatement/financeStatementSelector.js +1 -1
  173. package/lib/view/profitAndLossProjectView/profitAndLossProjectViewSelectorTypes.d.ts +1 -1
  174. package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.d.ts +9 -0
  175. package/lib/view/recommendation/fetchEntityRecommendationsForLineUpdateEpic.js +91 -0
  176. package/lib/view/recommendation/recommendationHelper.d.ts +9 -0
  177. package/lib/view/recommendation/recommendationHelper.js +31 -1
  178. package/lib/view/recommendation/recommendationReducer.d.ts +20 -1
  179. package/lib/view/recommendation/recommendationReducer.js +27 -2
  180. package/lib/view/spendManagement/billPay/billList/billListState.d.ts +1 -1
  181. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +10 -0
  182. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +2 -0
  183. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +20 -0
  184. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +86 -0
  185. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +20 -0
  186. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +98 -0
  187. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +21 -0
  188. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +17 -0
  189. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +5 -0
  190. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +10 -0
  191. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +9 -0
  192. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +46 -0
  193. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchUpcomingPaymentEventsEpic.d.ts +8 -0
  194. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchUpcomingPaymentEventsEpic.js +26 -0
  195. package/lib/view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer.d.ts +3 -1
  196. package/lib/view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer.js +3 -2
  197. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer.d.ts +3 -1
  198. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer.js +3 -2
  199. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer.js +55 -18
  200. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailEpic.js +16 -2
  201. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailPageEpic.js +5 -4
  202. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.d.ts +18 -3
  203. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.js +27 -10
  204. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchChargeCardListPageEpic.js +9 -6
  205. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory.d.ts +1 -1
  206. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.d.ts +3 -1
  207. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryReducer.js +3 -2
  208. package/lib/view/spendManagement/chargeCards/chargeCardPaymentHistory/fetchChargeCardPaymentPageEpic.js +1 -1
  209. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailReducer.d.ts +3 -1
  210. package/lib/view/spendManagement/chargeCards/chargeCardRepaymentDetail/chargeCardRepaymentDetailReducer.js +7 -3
  211. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.d.ts +1 -1
  212. package/lib/view/spendManagement/spendManagementFilterHelpers.d.ts +12 -3
  213. package/lib/view/spendManagement/spendManagementFilterHelpers.js +4 -2
  214. package/lib/view/subscriptionView/subscriptionViewSelector.js +1 -1
  215. package/lib/view/taskManager/taskListView/taskList.d.ts +1 -1
  216. package/lib/view/taskManager/taskListView/taskListReducer.js +1 -1
  217. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +11 -1
  218. package/lib/view/transactionDetail/transactionDetailReducer.js +122 -7
  219. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +2 -0
  220. package/lib/view/transactionDetail/transactionDetailSelector.js +31 -2
  221. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +1 -0
  222. package/lib/view/zeniOAuthView/zeniOAuthSelector.d.ts +1 -1
  223. package/package.json +9 -4
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';
@@ -165,17 +167,20 @@ import { isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType
165
167
  import { MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, } from './view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper';
166
168
  import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview, } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
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
- 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';
170
+ import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearBulkUploadBatchDetailsForScopeChange, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markBatchDetailRefreshAttempted, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, refreshBatchDetailsForBatchId, 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, markCategoryClassRecommendationsFailureForCategorization, 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,14 +227,16 @@ 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';
234
- import { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName, } from './view/recommendation/recommendationReducer';
237
+ import { fetchProjectList } from './view/projectList/projectListReducer';
238
+ import { getProjectList, } from './view/projectList/projectListSelector';
239
+ import { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, 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';
237
242
  import { AmountStatusTypes, StatusTypes, toReferralListViewSortKeyType, } from './view/referralView/referralState';
@@ -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';
@@ -378,15 +384,15 @@ import { getAllTopExpenses, getTop6Expenses, getTopExpenses, } from './view/topE
378
384
  import { TOP_EX_TIME_PERIODS, } from './view/topEx/topExState';
379
385
  import { getAccountingProviderAttachment, } from './view/transactionDetail/getAccountingProviderAttachmentSelector';
380
386
  import { getChangedLineItemCountFromLocalData, isAccountUncategorized, } from './view/transactionDetail/transactionDetailLocalDataHelper';
381
- import { clearTransactionDetailSaveStatus, deleteTransactionAttachment, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentFailure, downloadAccountingProviderAttachmentSuccess, fetchTransactionDetail, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, resetAllLineItemsToVendor, resetLineItemsCategoryClassInLocalData, resetSelectedCustomer, resetVendor, saveTransactionDetail, saveTransactionDetailLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setAllLineItemsToCategoryClassInLocalData, setIsVendorUpdateAllChecked, updateLatestSelectedEntity, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateSelectedCustomer, updateSelectedVendor, updateTransactionDetail, updateVendorBulkRecommendationsFetchStatus, updateVendorToAllLineItems, uploadMissingAttachmentSuccess, } from './view/transactionDetail/transactionDetailReducer';
387
+ import { clearTransactionDetailSaveStatus, deleteTransactionAttachment, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentFailure, downloadAccountingProviderAttachmentSuccess, fetchTransactionDetail, initializeTransactionDetailLocalData, markCategoryClassRecommendationsFailureForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, resetAllLineItemsToVendor, resetLineItemsCategoryClassInLocalData, resetSelectedCustomer, resetVendor, saveTransactionDetail, saveTransactionDetailLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setAllLineItemsToCategoryClassInLocalData, setIsVendorUpdateAllChecked, updateLatestSelectedEntity, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateSelectedCustomer, updateSelectedVendor, updateTransactionDetail, updateVendorBulkRecommendationsFetchStatus, updateVendorToAllLineItems, uploadMissingAttachmentSuccess, } from './view/transactionDetail/transactionDetailReducer';
382
388
  import { getInitialUpdatablePeriodsForTransactionRecommendations, getTransactionDetail, getTransactionDetailForTransaction, } from './view/transactionDetail/transactionDetailSelector';
383
389
  import { getThirdPartyIdFromTransactionId, } from './view/transactionDetail/transactionDetailState';
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
- 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, };
452
+ bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, clearBulkUploadBatchDetailsForScopeChange, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, 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, };
453
+ export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateTransactionFilters, updateSelectedCheckboxTransactionIds, markCategoryClassRecommendationsFailureForCategorization, 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, };
@@ -497,7 +503,7 @@ export { isTransferTransaction };
497
503
  export { getSupportedTransactionById, };
498
504
  export { clearTransactionList, updateLatestTransactionId, parallelFetchAccountTransactionList, parallelFetchEntityTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, updateTransactionListByClassUIState, updateTransactionListByClass, parallelFetchProjectTransactionList, updateTransactionListByProjectUIState, updateTransactionListByProject, updateTransactionListUIStateByCategoryType, parallelFetchTransactionListByCategoryType, };
499
505
  export { getTransactionListByAccount, getTransactionListUIStateByAccountKey, };
500
- export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetSelectedCustomer, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, };
506
+ export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, markCategoryClassRecommendationsFailureForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetSelectedCustomer, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, };
501
507
  export { downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetail, uploadMissingAttachmentSuccess, deleteTransactionAttachment, getThirdPartyIdFromTransactionId, };
502
508
  export { getTransactionListByEntity };
503
509
  export { getTransactionListByClass, getTransactionListUIStateByClassKey, getTransactionListByProject, getTransactionListUIStateByProjectKey, getTransactionListByEntityForSinglePeriod, };
@@ -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 };
@@ -577,7 +587,7 @@ export { getSpendManagementEffectiveListPeriod, getSelectedCompanyOfficer, showB
577
587
  export { canSendMonthEndEmailReport, shouldEnableCalendarPickerForLastReportSent, };
578
588
  export { getInternationalSubConfigCodeKey, BILL_NEW_PAYMENT_METHODS, NEW_INTERNATIONAL_METHOD_SUBTEXT, SWIFT_OUR_INTERNATIONAL_METHOD_SUBTEXT, LOCAL_CURRENCY_INTERNATIONAL_METHOD_SUBTEXT, };
579
589
  export { getVendorList, updateSortUiState, updatePageToken, updateYTDSelectionUIState, isColumnYTDSpend, isVendorsTabVisible, toVendorReportIDType, getVendorFiling1099List, fetchVendorsFiling1099Download, };
580
- export { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
590
+ export { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
581
591
  export { fetchOwnerList };
582
592
  export { getZeniAccountsConfigDetail, getZeniAccountList, fetchZeniAccountList, fetchAccountList, createCheckingAccount, fetchPaymentAccountList, unlinkPaymentAccount, getDepositAccountDetail, getAllDepositAccounts, getDepositAccountDetailForPDF, fetchDepositAccount, fetchZeniAccountsConfig, updateTransferMoneyLocalData, updateTransferToLocalData, updateDepositToLocalData, transferMoney, getTransferDetail, clearTransferDetail, clearReviewTransferDetail, fetchReviewTransferDetail, fetchDepositAccountDetail, depositCheck, updateCheckDepositLocalData, clearCheckDeposit, getCheckDepositDetail, updateDepositAccount, fetchDepositAccountHistorySuccess, fetchDepositAccountHistoryFailure, fetchZeniAccStatementPage, getZeniAccStatements, };
583
593
  export { fetchDepositAccountTransactionList, getDepositAccountTransactionList, };
@@ -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, };
@@ -653,3 +663,5 @@ export { getTransactionActivityLogView, } from './view/transactionActivityLogVie
653
663
  // ── Session Management ──────────────────────────────────────────────
654
664
  export { SessionManager } from './entity/tenant/SessionManager';
655
665
  export { DEFAULT_SESSION_CONFIG } from './entity/tenant/sessionTypes';
666
+ export { fetchCashManagementOverviewPage } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer';
667
+ export { getCashManagementOverview, getCashManagementOverviewBanner, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector';
@@ -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';
@@ -61,6 +61,7 @@ import tenant, { initialState as initialTenantState, } from './entity/tenant/ten
61
61
  import toastNotification, { initialState as initialToastNotificationState, } from './entity/toastNotification/toastNotificationReducer';
62
62
  import transaction, { initialState as initialTransactionState, } from './entity/transaction/transactionReducer';
63
63
  import transactionActivityLog, { initialState as initialTransactionActivityLogState, } from './entity/transactionActivityLog/transactionActivityLogReducer';
64
+ import upcomingPaymentEvent, { initialState as initialUpcomingPaymentEventState, } from './entity/upcomingPaymentEvent/upcomingPaymentEventReducer';
64
65
  import user, { initialState as initialUserState, } from './entity/user/userReducer';
65
66
  import userGroups, { initialState as initialUserGroupsState, } from './entity/userGroups/userGroupsReducer';
66
67
  import userRole, { initialState as initialUserRoleState, } from './entity/userRole/userRoleReducer';
@@ -107,9 +108,9 @@ import expenseAutomationJESchedulesView, { initialState as initialExpenseAutomat
107
108
  import expenseAutomationMissingReceiptsView, { initialState as initialExpenseAutomationMissingReceiptsViewState, } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
108
109
  import expenseAutomationReconciliationView, { initialState as initialExpenseAutomationReconciliationViewState, } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
109
110
  import expenseAutomationTransactionsView, { initialState as initialExpenseAutomationTransactionsViewState, } from './view/expenseAutomationView/reducers/transactionsViewReducer';
111
+ import featureNotificationView, { initialState as initialFeatureNotificationViewState, } from './view/featureNotificationView/featureNotificationViewReducer';
110
112
  import fileView from './view/fileView/fileViewReducer';
111
113
  import { initialFileViewState, } from './view/fileView/fileViewState';
112
- import featureNotificationView, { initialState as initialFeatureNotificationViewState, } from './view/featureNotificationView/featureNotificationViewReducer';
113
114
  import financeStatement, { initialFinanceStatementState, } from './view/financeStatement/financeStatementReducer';
114
115
  import forecastList, { initialState as initialForecastListState, } from './view/forecastList/forecastListReducer';
115
116
  import globalMerchantAutoComplete, { initialState as initialGlobalMerchantAutoCompleteState, } from './view/globalMerchantView/globalMerchantAutoCompleteView/globalMerchantAutoCompleteViewReducer';
@@ -157,6 +158,7 @@ import internationalWireVerification, { initialState as initialInternationalWire
157
158
  import magicLinkView, { initialState as initialMagicLinkViewState, } from './view/spendManagement/billPay/magicLinkView/magicLinkViewReducer';
158
159
  import previousBills, { initialState as initialPreviousBillsState, } from './view/spendManagement/billPay/previousBills/previousBillsReducer';
159
160
  import wiseRedirect, { initialState as initialWiseRedirectState, } from './view/spendManagement/billPay/wiseRedirectView/wiseRedirectReducer';
161
+ import cashManagementOverview, { initialState as initialCashManagementOverviewState, } from './view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer';
160
162
  import cardUserOnboarding, { initialState as initialCardUserOnboardingState, } from './view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingReducer';
161
163
  import cashbackDetail, { initialState as initialCashbackDetailState, } from './view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer';
162
164
  import chargeCardConfig, { initialState as initialChargeCardConfigState, } from './view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer';
@@ -287,6 +289,7 @@ const initialEntitiesState = {
287
289
  toastNotificationState: initialToastNotificationState,
288
290
  transactionActivityLogState: initialTransactionActivityLogState,
289
291
  transactionState: initialTransactionState,
292
+ upcomingPaymentEventState: initialUpcomingPaymentEventState,
290
293
  userGroupsState: initialUserGroupsState,
291
294
  userRoleState: initialUserRoleState,
292
295
  userState: initialUserState,
@@ -326,6 +329,7 @@ const initialViewsState = {
326
329
  cashBalanceState: initialCashBalanceState,
327
330
  cashFlowState: initialCashFlowState,
328
331
  cashInCashOutState: initialCashInCashOutState,
332
+ cashManagementOverviewState: initialCashManagementOverviewState,
329
333
  cashPositionState: initialCashPositionState,
330
334
  chargeCardConfigState: initialChargeCardConfigState,
331
335
  chargeCardDetailState: initialChargeCardDetailState,
@@ -523,6 +527,7 @@ const entityReducers = {
523
527
  toastNotificationState: toastNotification,
524
528
  transactionActivityLogState: transactionActivityLog,
525
529
  transactionState: transaction,
530
+ upcomingPaymentEventState: upcomingPaymentEvent,
526
531
  userGroupsState: userGroups,
527
532
  userRoleState: userRole,
528
533
  userState: user,
@@ -561,6 +566,7 @@ const viewReducers = {
561
566
  cashBalanceState: cashBalance,
562
567
  cashFlowState: cashFlow,
563
568
  cashInCashOutState: cashInCashOut,
569
+ cashManagementOverviewState: cashManagementOverview,
564
570
  cashPositionState: cashPosition,
565
571
  chargeCardConfigState: chargeCardConfig,
566
572
  chargeCardDetailState: chargeCardDetail,
@@ -7,9 +7,7 @@ import { fetchAiAccountantCustomers, updateAiAccountantCustomers, updateAiAccoun
7
7
  export const fetchAiAccountantCustomersEpic = (actions$, _, zeniAPI) => actions$.pipe(filter(fetchAiAccountantCustomers.match), switchMap(() => {
8
8
  const base = `${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/cockpit-panels`;
9
9
  const url = `${base}/ai-accountant/customers`;
10
- return zeniAPI
11
- .getJSON(url)
12
- .pipe(mergeMap((response) => {
10
+ return zeniAPI.getJSON(url).pipe(mergeMap((response) => {
13
11
  if (isSuccessResponse(response)) {
14
12
  const customers = response.data?.customers ?? [];
15
13
  const users = response.data?.users ?? [];
@@ -22,6 +20,5 @@ export const fetchAiAccountantCustomersEpic = (actions$, _, zeniAPI) => actions$
22
20
  else {
23
21
  return of(updateAiAccountantCustomersFailure(response.status));
24
22
  }
25
- }), catchError((error) => of(updateAiAccountantCustomersFailure(createZeniAPIStatus('Unexpected error', 'AI Accountant customers fetch failed: ' +
26
- JSON.stringify(error))))));
23
+ }), catchError((error) => of(updateAiAccountantCustomersFailure(createZeniAPIStatus('Unexpected error', 'AI Accountant customers fetch failed: ' + JSON.stringify(error))))));
27
24
  }));
@@ -20,9 +20,7 @@ export const fetchAiAccountantJobsEpic = (actions$, state$, zeniAPI) => actions$
20
20
  }
21
21
  const base = `${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/cockpit-panels`;
22
22
  const url = `${base}/ai-accountant/jobs?${params.toString()}`;
23
- return zeniAPI
24
- .getJSON(url)
25
- .pipe(mergeMap((response) => {
23
+ return zeniAPI.getJSON(url).pipe(mergeMap((response) => {
26
24
  if (isSuccessResponse(response)) {
27
25
  const jobs = response.data?.jobs ?? [];
28
26
  const users = response.data?.users ?? [];
@@ -41,7 +39,6 @@ export const fetchAiAccountantJobsEpic = (actions$, state$, zeniAPI) => actions$
41
39
  }
42
40
  }), catchError((error) => of(updateAiAccountantJobsFailure({
43
41
  tenantId,
44
- error: createZeniAPIStatus('Unexpected error', 'AI Accountant jobs fetch failed: ' +
45
- JSON.stringify(error)),
42
+ error: createZeniAPIStatus('Unexpected error', 'AI Accountant jobs fetch failed: ' + JSON.stringify(error)),
46
43
  }))));
47
44
  }));
@@ -51,7 +51,10 @@ export const triggerAiAccountantJobEpic = (actions$, state$, zeniAPI) => actions
51
51
  messageText: 'failed',
52
52
  type: 'error',
53
53
  variables: [
54
- { variableName: '__reason__', variableValue: 'Unexpected error' },
54
+ {
55
+ variableName: '__reason__',
56
+ variableValue: 'Unexpected error',
57
+ },
55
58
  ],
56
59
  }),
57
60
  ])));
@@ -291,7 +291,7 @@ const applyAdvancedFiltersOnCompaniesList = (allCompanies, filters, filteredComp
291
291
  const key = currentFilter.field;
292
292
  const categoryValue = getCategoryValueForCompany(key, company);
293
293
  if (categoryValue == null) {
294
- if (currentFilter.matchingOperator === 'not-equal') {
294
+ if (currentFilter.matchingOperator === 'not_equal') {
295
295
  return true;
296
296
  }
297
297
  return false;
@@ -4,7 +4,7 @@ import { getTagsByIds } from '../../entity/tag/tagSelector';
4
4
  import { getTaskById } from '../../entity/task/taskSelector';
5
5
  import { getUserByUserId, getUsersByUserIds, } from '../../entity/user/userSelector';
6
6
  export const getCompanyTaskManagerView = createSelector((state) => state.companyTaskManagerViewState, (state) => state.companyState, (state) => state.userState, (state) => state.taskState, (state) => state.tagState, (companyTaskManagerViewState, companyState, userState, taskState, tagState) => {
7
- const { taskIds, uiState, fetchState, error, totalTaskCount, metrics, metricsFetchState } = companyTaskManagerViewState;
7
+ const { taskIds, uiState, fetchState, error, totalTaskCount, metrics, metricsFetchState, } = companyTaskManagerViewState;
8
8
  const tasksList = [];
9
9
  taskIds.forEach((taskId) => {
10
10
  const task = getTaskById(taskState, taskId);
@@ -1,6 +1,6 @@
1
1
  import { of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
- import { isSuccessResponse, } from '../../../responsePayload';
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
6
  const query = JSON.stringify({ is_filter_by_logged_in_user: true });
@@ -48,7 +48,7 @@ export const filterCompanyOnCategoriesWithSingleValue = (categoryValue, currentF
48
48
  return filterCompanyOnRangeCategoryType(categoryValue, currentFilter);
49
49
  }
50
50
  // if filter category is not annualRecurringRevenue OR monthlyRecurringRevenue
51
- if (currentFilter.matchingOperator === 'not-equal') {
51
+ if (currentFilter.matchingOperator === 'not_equal') {
52
52
  return currentFilter.values.indexOf(categoryValue) === -1;
53
53
  }
54
54
  return currentFilter.values.indexOf(categoryValue) > -1;
@@ -150,7 +150,7 @@ const applyAdvancedFiltersOnCompaniesList = (allCompanies, filters, filteredComp
150
150
  const key = currentFilter.field;
151
151
  const categoryValue = getCategoryValueForCompany(key, company);
152
152
  if (categoryValue == null) {
153
- if (currentFilter.matchingOperator === 'not-equal') {
153
+ if (currentFilter.matchingOperator === 'not_equal') {
154
154
  return true;
155
155
  }
156
156
  return false;
@@ -116,7 +116,7 @@ const applyAdvancedFiltersOnCompaniesList = (allCompanies, filters, filteredComp
116
116
  const key = currentFilter.field;
117
117
  const categoryValue = getCategoryValueForCompany(key, company);
118
118
  if (categoryValue == null) {
119
- if (currentFilter.matchingOperator === 'not-equal') {
119
+ if (currentFilter.matchingOperator === 'not_equal') {
120
120
  return true;
121
121
  }
122
122
  return false;
@@ -3,10 +3,10 @@ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
3
  import { toMonthYearPeriodId } from '../../../../commonStateTypes/timePeriod';
4
4
  import { getCurrentTenant } from '../../../../entity/tenant/tenantSelector';
5
5
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
6
- import { toBatchListItem, } from '../../payload/missingReceiptsPayload';
7
- import { fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, } from '../../reducers/missingReceiptsViewReducer';
8
6
  import { BULK_UPLOAD_BATCH_LIST_DATE_RANGE_DAYS } from '../../helpers/bulkUploadTiming';
9
7
  import { rollingCalendarDateRangeInclusive } from '../../helpers/rollingCalendarDateRangeInclusive';
8
+ import { toBatchListItem, } from '../../payload/missingReceiptsPayload';
9
+ import { fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, } from '../../reducers/missingReceiptsViewReducer';
10
10
  export const fetchBulkUploadBatchesEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchBulkUploadBatches.match), switchMap((action) => {
11
11
  const { cacheOverride } = action.payload;
12
12
  const state = state$.value;
@@ -5,6 +5,7 @@ import { getCurrentTenant } from '../../../../entity/tenant/tenantSelector';
5
5
  import { updateTransactions } from '../../../../entity/transaction/transactionReducer';
6
6
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
7
7
  import { fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, getCompletedTransactionsCacheKey, } from '../../reducers/missingReceiptsViewReducer';
8
+ import { DEFAULT_COMPLETED_SUB_TAB } from '../../types/completedSubTab';
8
9
  export const fetchCompletedTransactionsEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchCompletedTransactions.match), switchMap((action) => {
9
10
  const state = state$.value;
10
11
  const { expenseAutomationViewState: { selectedPeriodByTenantId }, expenseAutomationMissingReceiptsViewState: { bulkUpload }, } = state;
@@ -39,7 +40,7 @@ export const fetchCompletedTransactionsEpic = (actions$, state$, zeniAPI) => act
39
40
  if (sortOrder != null) {
40
41
  queryPayload.sort_order = sortOrder === 'ascending' ? 'asc' : 'desc';
41
42
  }
42
- if (completedSubTab !== 'all') {
43
+ if (completedSubTab !== DEFAULT_COMPLETED_SUB_TAB) {
43
44
  queryPayload.match_type = completedSubTab;
44
45
  }
45
46
  const encodedQuery = encodeURIComponent(JSON.stringify(queryPayload));
@@ -31,10 +31,19 @@ export function fetchBatchDetailsByIds(batchIds, zeniAPI) {
31
31
  }
32
32
  export const fetchMultipleBatchDetailsEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchBulkUploadBatchesSuccess.match), mergeMap((action) => {
33
33
  const batchList = action.payload.batchList;
34
- const { batchDetailsById } = state$.value.expenseAutomationMissingReceiptsViewState.bulkUpload;
34
+ const bulkUpload = state$.value.expenseAutomationMissingReceiptsViewState.bulkUpload;
35
+ const { batchDetailsById, batchDetailsRevalidating } = bulkUpload;
35
36
  /** Only completed list rows may trigger batch-details API; preserve platform order. */
36
- const completedBatchesMissingDetails = filterBatchListItemsForBatchDetailsFetch(batchList).filter((batch) => batchDetailsById[batch.batchId] == null);
37
- const completedBatchIds = completedBatchesMissingDetails.map((batch) => batch.batchId);
37
+ const completedRows = filterBatchListItemsForBatchDetailsFetch(batchList);
38
+ /**
39
+ * Stale-while-revalidate: when a manual refresh has set `batchDetailsRevalidating`, refresh
40
+ * every completed list row (replacing entries via `storeBatchDetails` as they arrive). On a
41
+ * normal first fetch we still only request rows whose details are missing.
42
+ */
43
+ const candidateRows = batchDetailsRevalidating === true
44
+ ? completedRows
45
+ : completedRows.filter((batch) => batchDetailsById[batch.batchId] == null);
46
+ const completedBatchIds = candidateRows.map((batch) => batch.batchId);
38
47
  const batchIdsToFetch = completedBatchIds.slice(0, INITIAL_BATCH_PAGE_SIZE);
39
48
  if (batchIdsToFetch.length === 0) {
40
49
  /**
@@ -42,7 +51,6 @@ export const fetchMultipleBatchDetailsEpic = (actions$, state$, zeniAPI) => acti
42
51
  * `currentBatchId` may not appear in the filtered list but still needs `GET /batches/:id`.
43
52
  * Fall back to the single-batch-details epic so `phase` and details can resolve.
44
53
  */
45
- const bulkUpload = state$.value.expenseAutomationMissingReceiptsViewState.bulkUpload;
46
54
  const currentId = bulkUpload.currentBatchId;
47
55
  if (currentId != null &&
48
56
  bulkUpload.phase === 'matching' &&
@@ -50,7 +58,15 @@ export const fetchMultipleBatchDetailsEpic = (actions$, state$, zeniAPI) => acti
50
58
  shouldFetchBatchDetailsForBatchId(bulkUpload.batchStatusById, bulkUpload.batchListByPeriod, currentId)) {
51
59
  return of(fetchBulkUploadBatchDetails());
52
60
  }
53
- return EMPTY;
61
+ /**
62
+ * Close the pagination loop so the Unmatched-tab loading heuristic can settle.
63
+ * `fetchMoreBatchDetailsComplete` also clears `batchDetailsRevalidating` and flips
64
+ * `initialBatchDetailsLoaded` to true. Without this, `batchDetailsPaginationState` stays
65
+ * at `Not-Started` forever after a list refresh that finds zero completed rows (or all
66
+ * already cached) — the direct-open-Unmatched-without-upload path used to render an
67
+ * infinite skeleton.
68
+ */
69
+ return of(fetchMoreBatchDetailsComplete());
54
70
  }
55
71
  return concat(of(setInitialBatchDetailsLoading()), fetchBatchDetailsByIds(batchIdsToFetch, zeniAPI), of(fetchMoreBatchDetailsComplete()));
56
72
  }));