@zeniai/client-epic-state 5.1.7 → 5.1.8

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 (415) hide show
  1. package/lib/common/aiCfo/aiCfoSuggestedQuestionsPageContext.d.ts +1 -1
  2. package/lib/commonStateTypes/amount.d.ts +1 -0
  3. package/lib/commonStateTypes/amount.js +9 -1
  4. package/lib/commonStateTypes/animations.d.ts +1 -1
  5. package/lib/commonStateTypes/animations.js +1 -0
  6. package/lib/commonStateTypes/workingDayHelper.d.ts +9 -0
  7. package/lib/commonStateTypes/workingDayHelper.js +28 -1
  8. package/lib/entity/aiCfo/aiCfoPayload.d.ts +63 -5
  9. package/lib/entity/aiCfo/aiCfoReducer.d.ts +23 -2
  10. package/lib/entity/aiCfo/aiCfoReducer.js +249 -9
  11. package/lib/entity/aiCfo/aiCfoSelector.d.ts +4 -1
  12. package/lib/entity/aiCfo/aiCfoSelector.js +19 -1
  13. package/lib/entity/aiCfo/aiCfoState.d.ts +97 -4
  14. package/lib/entity/aiCfo/aiCfoState.js +20 -1
  15. package/lib/entity/approvalRule/approvalRuleConflict.d.ts +56 -0
  16. package/lib/entity/approvalRule/approvalRuleConflict.js +77 -0
  17. package/lib/entity/approvalRule/approvalRulePayload.d.ts +34 -5
  18. package/lib/entity/approvalRule/approvalRulePayload.js +149 -10
  19. package/lib/entity/approvalRule/approvalRuleSelector.d.ts +25 -1
  20. package/lib/entity/approvalRule/approvalRuleSelector.js +40 -0
  21. package/lib/entity/approvalRule/approvalRuleState.d.ts +59 -7
  22. package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +277 -0
  23. package/lib/entity/cardPolicy/cardPolicyPayload.js +143 -0
  24. package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +19 -0
  25. package/lib/entity/cardPolicy/cardPolicyReducer.js +175 -0
  26. package/lib/entity/cardPolicy/cardPolicySelector.d.ts +32 -0
  27. package/lib/entity/cardPolicy/cardPolicySelector.js +99 -0
  28. package/lib/entity/cardPolicy/cardPolicyState.d.ts +205 -0
  29. package/lib/entity/cardPolicy/cardPolicyState.js +14 -0
  30. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +18 -0
  31. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +68 -0
  32. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +26 -0
  33. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +47 -0
  34. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +25 -0
  35. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +39 -0
  36. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +24 -0
  37. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +105 -0
  38. package/lib/entity/company/companyPayload.d.ts +4 -0
  39. package/lib/entity/company/companyPayload.js +6 -0
  40. package/lib/entity/company/companyStateTypes.d.ts +7 -0
  41. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +1 -0
  42. package/lib/entity/jeSchedules/jeSchedulesPayload.js +19 -0
  43. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +2 -0
  44. package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
  45. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -1
  46. package/lib/entity/paymentAccount/paymentAccountSelector.d.ts +1 -0
  47. package/lib/entity/paymentAccount/paymentAccountSelector.js +9 -0
  48. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  49. package/lib/entity/snackbar/snackbarTypes.js +5 -0
  50. package/lib/entity/task/taskPayload.d.ts +3 -1
  51. package/lib/entity/task/taskPayload.js +2 -0
  52. package/lib/entity/task/taskState.d.ts +2 -0
  53. package/lib/entity/tenant/clearAllEpic.d.ts +8 -2
  54. package/lib/entity/tenant/clearAllEpic.js +12 -0
  55. package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +1 -1
  56. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.d.ts +21 -0
  57. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.js +59 -0
  58. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +1 -1
  59. package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.d.ts +3 -3
  60. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +1 -1
  61. package/lib/entity/tenant/tenantPayload.d.ts +3 -2
  62. package/lib/entity/tenant/tenantReducer.d.ts +44 -30
  63. package/lib/entity/tenant/tenantReducer.js +130 -29
  64. package/lib/entity/tenant/tenantState.d.ts +3 -2
  65. package/lib/entity/transaction/payloadTypes/transactionPayload.js +4 -2
  66. package/lib/epic.d.ts +32 -4
  67. package/lib/epic.js +33 -4
  68. package/lib/esm/commonStateTypes/amount.js +7 -0
  69. package/lib/esm/commonStateTypes/animations.js +1 -0
  70. package/lib/esm/commonStateTypes/workingDayHelper.js +26 -0
  71. package/lib/esm/entity/aiCfo/aiCfoReducer.js +249 -9
  72. package/lib/esm/entity/aiCfo/aiCfoSelector.js +17 -1
  73. package/lib/esm/entity/aiCfo/aiCfoState.js +17 -0
  74. package/lib/esm/entity/approvalRule/approvalRuleConflict.js +74 -0
  75. package/lib/esm/entity/approvalRule/approvalRulePayload.js +149 -10
  76. package/lib/esm/entity/approvalRule/approvalRuleSelector.js +35 -0
  77. package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +130 -0
  78. package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +171 -0
  79. package/lib/esm/entity/cardPolicy/cardPolicySelector.js +75 -0
  80. package/lib/esm/entity/cardPolicy/cardPolicyState.js +9 -0
  81. package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +64 -0
  82. package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +43 -0
  83. package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +35 -0
  84. package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +101 -0
  85. package/lib/esm/entity/company/companyPayload.js +6 -0
  86. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +19 -0
  87. package/lib/esm/entity/paymentAccount/paymentAccountSelector.js +8 -0
  88. package/lib/esm/entity/snackbar/snackbarTypes.js +5 -0
  89. package/lib/esm/entity/task/taskPayload.js +2 -0
  90. package/lib/esm/entity/tenant/clearAllEpic.js +12 -0
  91. package/lib/esm/entity/tenant/epic/initEmailConnectOAuthEpic.js +55 -0
  92. package/lib/esm/entity/tenant/tenantReducer.js +128 -27
  93. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +4 -2
  94. package/lib/esm/epic.js +33 -4
  95. package/lib/esm/index.js +68 -27
  96. package/lib/esm/reducer.js +18 -0
  97. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +6 -3
  98. package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  99. package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +2 -1
  100. package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  101. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewReducer.js +39 -11
  102. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +14 -4
  103. package/lib/esm/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +38 -0
  104. package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  105. package/lib/esm/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +16 -0
  106. package/lib/esm/view/companyView/companyViewReducer.js +11 -10
  107. package/lib/esm/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
  108. package/lib/esm/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
  109. package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  110. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
  111. package/lib/esm/view/fileView/epic/deleteFileEpic.js +2 -2
  112. package/lib/esm/view/fileView/epic/deleteFileListEpic.js +2 -2
  113. package/lib/esm/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +40 -0
  114. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +29 -0
  115. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +40 -0
  116. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewEpic.js +24 -18
  117. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.js +29 -17
  118. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +223 -51
  119. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +36 -18
  120. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewState.js +45 -6
  121. package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +22 -2
  122. package/lib/esm/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  123. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +109 -12
  124. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  125. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  126. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +11 -7
  127. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +54 -0
  128. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +13 -4
  129. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +144 -16
  130. package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  131. package/lib/esm/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  132. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +29 -0
  133. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +78 -0
  134. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +49 -0
  135. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +47 -0
  136. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +32 -0
  137. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +32 -0
  138. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +54 -0
  139. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +92 -0
  140. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +212 -0
  141. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +10 -0
  142. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +23 -0
  143. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +36 -0
  144. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +27 -0
  145. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +28 -0
  146. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +52 -0
  147. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +22 -0
  148. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +1 -0
  149. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +36 -0
  150. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +39 -0
  151. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +34 -0
  152. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +71 -0
  153. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +21 -0
  154. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +1 -0
  155. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +38 -0
  156. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +289 -0
  157. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +109 -0
  158. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +44 -0
  159. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +111 -0
  160. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +25 -0
  161. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +363 -0
  162. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +36 -0
  163. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +19 -0
  164. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +6 -0
  165. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +119 -0
  166. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +154 -0
  167. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +22 -0
  168. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +1 -0
  169. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +49 -0
  170. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +140 -0
  171. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +20 -0
  172. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +100 -0
  173. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +96 -0
  174. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +59 -0
  175. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +24 -0
  176. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +25 -0
  177. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +1 -0
  178. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +34 -0
  179. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +57 -0
  180. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +35 -0
  181. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
  182. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +42 -4
  183. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +35 -0
  184. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +62 -0
  185. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +44 -0
  186. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +58 -0
  187. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +77 -0
  188. package/lib/esm/view/spendManagement/commonSetup/kycKybAutofillActions.js +14 -0
  189. package/lib/esm/view/spendManagement/commonSetup/kycKybParseMapper.js +221 -0
  190. package/lib/esm/view/spendManagement/commonSetup/setupViewReducer.js +106 -52
  191. package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  192. package/lib/esm/view/spendManagement/commonSetup/types/kycKybAutofill.js +41 -0
  193. package/lib/esm/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  194. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  195. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  196. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +11 -7
  197. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +61 -0
  198. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +13 -4
  199. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +80 -11
  200. package/lib/index.d.ts +84 -34
  201. package/lib/index.js +267 -35
  202. package/lib/reducer.d.ts +18 -0
  203. package/lib/reducer.js +18 -0
  204. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +11 -2
  205. package/lib/view/aiCfoView/aiCfoViewReducer.js +6 -3
  206. package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  207. package/lib/view/aiCfoView/epics/createSessionEpic.js +2 -1
  208. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +8 -1
  209. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  210. package/lib/view/companyTaskManagerView/companyTaskManagerViewPayload.d.ts +19 -11
  211. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +11 -5
  212. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.js +40 -12
  213. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +2 -0
  214. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +13 -3
  215. package/lib/view/companyTaskManagerView/companyTaskManagerViewState.d.ts +11 -3
  216. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.d.ts +10 -0
  217. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +42 -0
  218. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.d.ts +1 -3
  219. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  220. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.d.ts +6 -0
  221. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +20 -0
  222. package/lib/view/companyView/companyViewReducer.d.ts +8 -7
  223. package/lib/view/companyView/companyViewReducer.js +12 -11
  224. package/lib/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
  225. package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.d.ts +10 -0
  226. package/lib/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
  227. package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  228. package/lib/view/companyView/types/cockpitTypes.d.ts +3 -2
  229. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  230. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -1
  231. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -1
  232. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
  233. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
  234. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -1
  235. package/lib/view/fileView/epic/deleteFileEpic.js +1 -1
  236. package/lib/view/fileView/epic/deleteFileListEpic.js +1 -1
  237. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.d.ts +7 -0
  238. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +44 -0
  239. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.d.ts +8 -0
  240. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +33 -0
  241. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.d.ts +9 -0
  242. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +44 -0
  243. package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewEpic.js +24 -18
  244. package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.d.ts +2 -2
  245. package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.js +27 -15
  246. package/lib/view/onboardingView/customerView/onboardingCustomerViewPayload.d.ts +3 -0
  247. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +44 -5
  248. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +225 -52
  249. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.d.ts +6 -1
  250. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +39 -18
  251. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +53 -8
  252. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.js +47 -7
  253. package/lib/view/people/peopleTypes.d.ts +1 -1
  254. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  255. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.d.ts +8 -1
  256. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +21 -1
  257. package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +22 -0
  258. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.d.ts +7 -0
  259. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  260. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.d.ts +14 -3
  261. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +110 -13
  262. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewState.d.ts +16 -0
  263. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  264. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  265. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +10 -6
  266. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.d.ts +23 -0
  267. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +58 -0
  268. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +12 -3
  269. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +59 -1
  270. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +146 -17
  271. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +31 -5
  272. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +8 -1
  273. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  274. package/lib/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  275. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.d.ts +47 -0
  276. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +34 -0
  277. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.d.ts +23 -0
  278. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +82 -0
  279. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.d.ts +40 -0
  280. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +53 -0
  281. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.d.ts +37 -0
  282. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +53 -0
  283. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.d.ts +14 -0
  284. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +36 -0
  285. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.d.ts +7 -0
  286. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +36 -0
  287. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +56 -0
  288. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +60 -0
  289. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +22 -0
  290. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +96 -0
  291. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +59 -0
  292. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +217 -0
  293. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +122 -0
  294. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +13 -0
  295. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +7 -0
  296. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +27 -0
  297. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +9 -0
  298. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +40 -0
  299. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.d.ts +7 -0
  300. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +31 -0
  301. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.d.ts +15 -0
  302. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +32 -0
  303. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +14 -0
  304. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +56 -0
  305. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +15 -0
  306. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +28 -0
  307. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +8 -0
  308. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +2 -0
  309. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +8 -0
  310. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +40 -0
  311. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +8 -0
  312. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +43 -0
  313. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +8 -0
  314. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +38 -0
  315. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +15 -0
  316. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +75 -0
  317. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +15 -0
  318. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +27 -0
  319. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +7 -0
  320. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +2 -0
  321. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +8 -0
  322. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +42 -0
  323. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +8 -0
  324. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +294 -0
  325. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +8 -0
  326. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +113 -0
  327. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +9 -0
  328. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +48 -0
  329. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +8 -0
  330. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +115 -0
  331. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +13 -0
  332. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +29 -0
  333. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +14 -0
  334. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +369 -0
  335. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +6 -0
  336. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +40 -0
  337. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +7 -0
  338. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +26 -0
  339. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +116 -0
  340. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +10 -0
  341. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +33 -0
  342. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +126 -0
  343. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +52 -0
  344. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +158 -0
  345. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +11 -0
  346. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +31 -0
  347. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +12 -0
  348. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +2 -0
  349. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +9 -0
  350. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +53 -0
  351. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +10 -0
  352. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +144 -0
  353. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +7 -0
  354. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +24 -0
  355. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +11 -0
  356. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +104 -0
  357. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +22 -0
  358. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +100 -0
  359. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +8 -0
  360. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +63 -0
  361. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +3 -0
  362. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +28 -0
  363. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  364. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +14 -0
  365. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +27 -1
  366. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +34 -0
  367. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +2 -0
  368. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +7 -0
  369. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +38 -0
  370. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +12 -0
  371. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +61 -0
  372. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +9 -0
  373. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +39 -0
  374. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
  375. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
  376. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +12 -2
  377. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +43 -5
  378. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +7 -0
  379. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +42 -1
  380. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +5 -0
  381. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +11 -0
  382. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +66 -0
  383. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +3 -0
  384. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +48 -0
  385. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.d.ts +28 -0
  386. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +62 -0
  387. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.d.ts +9 -0
  388. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +81 -0
  389. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.d.ts +24 -0
  390. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.js +17 -0
  391. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.d.ts +29 -0
  392. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.js +229 -0
  393. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +28 -2
  394. package/lib/view/spendManagement/commonSetup/setupViewReducer.js +107 -53
  395. package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +7 -2
  396. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  397. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +19 -0
  398. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.d.ts +154 -0
  399. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.js +46 -0
  400. package/lib/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  401. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  402. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  403. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +10 -6
  404. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.d.ts +14 -0
  405. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +65 -0
  406. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +12 -3
  407. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.d.ts +14 -3
  408. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +81 -12
  409. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts +12 -0
  410. package/lib/view/taskManager/taskListView/taskList.d.ts +3 -3
  411. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
  412. package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
  413. package/lib/zeniAPI.d.ts +1 -0
  414. package/package.json +1 -1
  415. package/lib/view/companyView/epic/companyPassport/updateCapitalizationThresholdEpic.d.ts +0 -10
@@ -0,0 +1,78 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ import { toAutoSweepFlowStatePatch, } from './autoSweepFlowPayload';
3
+ import { initialAutoSweepFlowState, } from './autoSweepFlowState';
4
+ export const initialState = initialAutoSweepFlowState;
5
+ const autoSweepFlow = createSlice({
6
+ name: 'autoSweepFlow',
7
+ initialState,
8
+ reducers: {
9
+ /**
10
+ * Kicks off `GET /cash-management/settings`. Flips the top-level
11
+ * fetchState to `In-Progress`; the fetch epic picks this up.
12
+ */
13
+ fetchCashManagementSettings(draft) {
14
+ draft.fetchState = 'In-Progress';
15
+ draft.error = undefined;
16
+ },
17
+ /**
18
+ * Hydrates the form fields with the server-side settings (and stashes
19
+ * the settings id for subsequent saves). Marks the GET as `Completed`.
20
+ */
21
+ updateCashManagementSettings(draft, action) {
22
+ const patch = toAutoSweepFlowStatePatch(action.payload.data);
23
+ draft.bufferAmount = patch.bufferAmount;
24
+ draft.frequency = patch.frequency;
25
+ draft.nextTransferDate = patch.nextTransferDate;
26
+ draft.primaryFundingAccountId = patch.primaryFundingAccountId;
27
+ draft.settingsId = patch.settingsId;
28
+ draft.fetchState = 'Completed';
29
+ draft.error = undefined;
30
+ },
31
+ updateCashManagementSettingsFetchStatus(draft, action) {
32
+ draft.fetchState = action.payload.fetchState;
33
+ draft.error = action.payload.error;
34
+ },
35
+ /**
36
+ * Live-update the buffer (risk band) as the user toggles the risk picker
37
+ * on the setup page, without staging frequency/memo. The selector derives
38
+ * the risk-adjusted sweep amount off `bufferAmount`, so dispatching this on
39
+ * every risk change keeps the setup and review screens in sync.
40
+ */
41
+ updateAutoSweepRisk(draft, action) {
42
+ draft.bufferAmount = action.payload.bufferAmount;
43
+ },
44
+ /**
45
+ * Stage the in-flight form values without submitting them — fired from
46
+ * the setup→review transition so other selectors (and devtools) can see
47
+ * what the user is about to confirm. Leaves `saveStatus` untouched; the
48
+ * actual PUT only kicks off when the user clicks "Confirm Sweep" via
49
+ * `saveAutoSweepSettings`.
50
+ */
51
+ updateAutoSweepDraft(draft, action) {
52
+ draft.bufferAmount = action.payload.bufferAmount;
53
+ draft.frequency = action.payload.frequency;
54
+ draft.memo = action.payload.memo;
55
+ },
56
+ /**
57
+ * Trigger the PUT for the auto-sweep settings already staged via
58
+ * `updateAutoSweepDraft`. Carries no payload — flips `saveStatus` to
59
+ * `In-Progress` and the save epic reads `bufferAmount` / `frequency` /
60
+ * `memo` straight from the slice. Callers must ensure those fields
61
+ * reflect the user's latest input before dispatching.
62
+ */
63
+ saveAutoSweepSettings(draft) {
64
+ draft.saveStatus = { fetchState: 'In-Progress', error: undefined };
65
+ },
66
+ updateAutoSweepSettingsFetchStatus(draft, action) {
67
+ draft.saveStatus = {
68
+ fetchState: action.payload.fetchState,
69
+ error: action.payload.error,
70
+ };
71
+ },
72
+ clearAutoSweepFlow() {
73
+ return initialAutoSweepFlowState;
74
+ },
75
+ },
76
+ });
77
+ export const { fetchCashManagementSettings, updateCashManagementSettings, updateCashManagementSettingsFetchStatus, updateAutoSweepRisk, updateAutoSweepDraft, saveAutoSweepSettings, updateAutoSweepSettingsFetchStatus, clearAutoSweepFlow, } = autoSweepFlow.actions;
78
+ export default autoSweepFlow.reducer;
@@ -0,0 +1,49 @@
1
+ import { getDepositAccountByDepositAccountId } from '../../../../entity/depositAccount/depositAccountSelector';
2
+ import { mapDepositAccToFundingAccount, } from '../../commonSetup/setupViewSelector';
3
+ import { getTreasuryDetail } from '../../treasury/treasuryList/treasuryDetailSelector';
4
+ import { getCashManagementOverviewBanner } from '../cashManagementOverview/cashManagementOverviewSelector';
5
+ import { RISK_BUFFER_AMOUNT, bufferAmountToRisk, } from './autoSweepFlowState';
6
+ /**
7
+ * Risk band the agent's recommended sweep amount is computed against. The
8
+ * `sweepAmount` returned by the banner assumes this buffer, so the selector
9
+ * adjusts the displayed sweep by the delta between the user's selected band
10
+ * and this default.
11
+ */
12
+ const DEFAULT_RISK_LEVEL = 'moderate';
13
+ export const getAutoSweepFlow = (state) => {
14
+ const { bufferAmount, frequency, memo, saveStatus, settingsId, primaryFundingAccountId, fetchState, error, } = state.autoSweepFlowState;
15
+ const depositAccount = primaryFundingAccountId != null
16
+ ? getDepositAccountByDepositAccountId(state.depositAccountState, primaryFundingAccountId)
17
+ : undefined;
18
+ const risk = bufferAmountToRisk(bufferAmount.amount);
19
+ // The banner's recommended sweep assumes the default buffer band; shift it
20
+ // by the delta between the default buffer and the user's selected band so a
21
+ // tighter buffer (higher risk → smaller buffer) sweeps more and a looser
22
+ // buffer (lower risk → larger buffer) sweeps less. Clamp at zero so a buffer
23
+ // larger than the available surplus never yields a negative sweep.
24
+ const baseSweepAmount = getCashManagementOverviewBanner(state).amount;
25
+ const sweepAmount = {
26
+ ...baseSweepAmount,
27
+ amount: Math.max(0, baseSweepAmount.amount +
28
+ RISK_BUFFER_AMOUNT[DEFAULT_RISK_LEVEL] -
29
+ RISK_BUFFER_AMOUNT[risk]),
30
+ };
31
+ return {
32
+ fetchState,
33
+ error,
34
+ formData: {
35
+ bufferAmount,
36
+ frequency,
37
+ memo,
38
+ risk,
39
+ },
40
+ primaryFundingAccount: depositAccount != null
41
+ ? mapDepositAccToFundingAccount(depositAccount)
42
+ : undefined,
43
+ saveStatus,
44
+ settingsId,
45
+ sweepAmount,
46
+ treasurySummary: getTreasuryDetail(state).accountSummary,
47
+ version: 0,
48
+ };
49
+ };
@@ -0,0 +1,47 @@
1
+ import { toAmount } from '../../../../commonStateTypes/amount';
2
+ import { stringToUnion } from '../../../../commonStateTypes/stringToUnion';
3
+ /**
4
+ * Cadence at which the auto-sweep transfer fires. Lowercase to match the
5
+ * cash-management settings API contract (and the `SweepFrequency` literal
6
+ * already used by `<AutoSweepSetupPage>` in web-components).
7
+ */
8
+ export const ALL_AUTO_SWEEP_FREQUENCIES = [
9
+ 'daily',
10
+ 'weekly',
11
+ 'biweekly',
12
+ 'monthly',
13
+ ];
14
+ export const toAutoSweepFrequency = (v) => stringToUnion(v ?? '', ALL_AUTO_SWEEP_FREQUENCIES);
15
+ /**
16
+ * Risk presets the auto-sweep setup form exposes. Each level maps to a
17
+ * canonical minimum-buffer amount (USD). Selecting a level in the UI is
18
+ * shorthand for choosing that buffer.
19
+ */
20
+ export const ALL_AUTO_SWEEP_RISK_LEVELS = ['low', 'moderate', 'high'];
21
+ export const toAutoSweepRiskLevel = (v) => stringToUnion(v ?? '', ALL_AUTO_SWEEP_RISK_LEVELS);
22
+ export const RISK_BUFFER_AMOUNT = {
23
+ low: 15000,
24
+ moderate: 10000,
25
+ high: 5000,
26
+ };
27
+ /**
28
+ * Maps a buffer amount back onto the closest preset risk level. Falls back
29
+ * to `'moderate'` when the amount doesn't match a known preset (e.g. the
30
+ * server returned a custom value). The dropdown in `<AutoSweepSetupPage>`
31
+ * uses this so it can pre-select the user's existing band on edit.
32
+ */
33
+ export const bufferAmountToRisk = (amount) => {
34
+ const match = Object.entries(RISK_BUFFER_AMOUNT).find(([, presetAmount]) => presetAmount === amount);
35
+ return match != null ? match[0] : 'moderate';
36
+ };
37
+ export const initialAutoSweepFlowState = {
38
+ bufferAmount: toAmount(10000, 'USD', '$'),
39
+ frequency: 'weekly',
40
+ memo: '',
41
+ saveStatus: { fetchState: 'Not-Started', error: undefined },
42
+ nextTransferDate: undefined,
43
+ primaryFundingAccountId: undefined,
44
+ settingsId: undefined,
45
+ fetchState: 'Not-Started',
46
+ error: undefined,
47
+ };
@@ -0,0 +1,32 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { updateDepositAccounts } from '../../../../../entity/depositAccount/depositAccountReducer';
4
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
5
+ import { fetchCashManagementSettings, updateCashManagementSettings, updateCashManagementSettingsFetchStatus, } from '../autoSweepFlowReducer';
6
+ /**
7
+ * Hits `GET /cash-management/settings` and hydrates the auto-sweep slice
8
+ * with the server's existing settings (frequency, minimum buffer, settings
9
+ * id). Called from the cash management overview page-fetch epic alongside
10
+ * the other top-level fetches.
11
+ */
12
+ export const fetchCashManagementSettingsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchCashManagementSettings.match), switchMap(() => {
13
+ const endpoint = `${zeniAPI.apiEndPoints.cashManagementAgentBaseUrl}/1.0/cash-management/settings`;
14
+ return zeniAPI.getJSON(endpoint).pipe(mergeMap((response) => {
15
+ if (isSuccessResponse(response) && response.data != null) {
16
+ return of(
17
+ // Publish the source deposit account into the shared entity
18
+ // bucket so the selector can hydrate the full `FundingAccount`
19
+ // from `getDepositAccountByDepositAccountId` rather than the
20
+ // auto-sweep slice holding a duplicate copy.
21
+ updateDepositAccounts([response.data.source_bank_account]), updateCashManagementSettings({ data: response.data }));
22
+ }
23
+ return of(updateCashManagementSettingsFetchStatus({
24
+ fetchState: 'Error',
25
+ error: response.status,
26
+ }));
27
+ }), catchError((error) => of(updateCashManagementSettingsFetchStatus({
28
+ fetchState: 'Error',
29
+ error: createZeniAPIStatus('Unexpected Error', 'Fetch cash management settings REST API call errored out: ' +
30
+ (error?.message ?? String(error))),
31
+ }))));
32
+ }));
@@ -0,0 +1,32 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
4
+ import { toSaveAutoSweepSettingsBody, } from '../autoSweepFlowPayload';
5
+ import { saveAutoSweepSettings, updateAutoSweepSettingsFetchStatus, } from '../autoSweepFlowReducer';
6
+ export const saveAutoSweepSettingsEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(saveAutoSweepSettings.match), switchMap(() => {
7
+ const endpoint = `${zeniAPI.apiEndPoints.cashManagementAgentBaseUrl}/1.0/cash-management/settings`;
8
+ const { bufferAmount, frequency, memo, settingsId } = state$.value.autoSweepFlowState;
9
+ const payload = toSaveAutoSweepSettingsBody({
10
+ bufferAmount,
11
+ frequency,
12
+ memo,
13
+ });
14
+ // First-time setup (no settings id from the GET yet) → POST a new
15
+ // record. Subsequent edits update the existing one via PUT.
16
+ const request$ = settingsId == null
17
+ ? zeniAPI.postAndGetJSON(endpoint, payload)
18
+ : zeniAPI.putAndGetJSON(endpoint, payload);
19
+ return request$.pipe(mergeMap((response) => {
20
+ if (isSuccessResponse(response) && response.data != null) {
21
+ return of(updateAutoSweepSettingsFetchStatus({ fetchState: 'Completed' }));
22
+ }
23
+ return of(updateAutoSweepSettingsFetchStatus({
24
+ fetchState: 'Error',
25
+ error: response?.status,
26
+ }));
27
+ }), catchError((error) => of(updateAutoSweepSettingsFetchStatus({
28
+ fetchState: 'Error',
29
+ error: createZeniAPIStatus('Unexpected Error', 'Save auto-sweep settings REST API call errored out: ' +
30
+ (error?.message ?? String(error))),
31
+ }))));
32
+ }));
@@ -0,0 +1,54 @@
1
+ import { toAmount } from '../../../../commonStateTypes/amount';
2
+ import { date as zeniDate } from '../../../../zeniDayJS';
3
+ // ---------------------------------------------------------------------------
4
+ // Converters
5
+ // ---------------------------------------------------------------------------
6
+ // The cash agent payload reports `currency_code` only; the v1 surface is
7
+ // USD-only, so we pair it with the canonical `$` symbol here. If the agent
8
+ // grows multi-currency support, this is the single place to widen.
9
+ const CASH_AGENT_CURRENCY_SYMBOL = '$';
10
+ export const toUpcomingPaymentEvent = (event) => ({
11
+ accountId: event.account_id,
12
+ accountType: event.account_type,
13
+ amount: toAmount(event.amount_usd, event.currency_code, CASH_AGENT_CURRENCY_SYMBOL),
14
+ label: event.label,
15
+ paymentDate: zeniDate(event.payment_date),
16
+ });
17
+ /**
18
+ * The agent reports a `null` account id whenever the "account" in question is
19
+ * a singleton inferred from the account type (today: the treasury account —
20
+ * there's only one per company, so the type alone identifies it). Callers
21
+ * already branch on `*BankAccountType`, so collapsing the id to `""` keeps the
22
+ * state type a plain `ID` (string) without losing information.
23
+ */
24
+ const toCashManagementMovement = (payload) => ({
25
+ amount: toAmount(payload.amount, payload.currency_code, CASH_AGENT_CURRENCY_SYMBOL),
26
+ destinationBankAccountId: payload.destination_bank_account_id ?? '',
27
+ destinationBankAccountType: payload.destination_bank_account_type,
28
+ reasoning: payload.reasoning,
29
+ sourceBankAccountId: payload.source_bank_account_id ?? '',
30
+ sourceBankAccountType: payload.source_bank_account_type,
31
+ subMovementType: payload.sub_movement_type,
32
+ });
33
+ const toCashManagementMoneyMovementGroup = (payload) => ({
34
+ movements: payload.movements.map(toCashManagementMovement),
35
+ movementType: payload.movement_type,
36
+ });
37
+ export const toCashManagementBannerData = (payload) => ({
38
+ inflows: payload.inflows.map(toUpcomingPaymentEvent),
39
+ moneyMovements: payload.money_movements.map(toCashManagementMoneyMovementGroup),
40
+ outflows: payload.outflows.map(toUpcomingPaymentEvent),
41
+ });
42
+ export const toCashManagementTransfer = (payload) => ({
43
+ amount: toAmount(payload.amount, payload.currency_code, CASH_AGENT_CURRENCY_SYMBOL),
44
+ atomicTransactionId: payload.atomic_transaction_id,
45
+ cashManagementTransferId: payload.cash_management_transfer_id,
46
+ createTime: zeniDate(payload.create_time),
47
+ date: zeniDate(payload.date),
48
+ depositAccountId: payload.deposit_account_id,
49
+ reasoning: payload.reasoning,
50
+ scenario: payload.scenario,
51
+ status: payload.status,
52
+ transactionType: payload.transaction_type,
53
+ updateTime: zeniDate(payload.update_time),
54
+ });
@@ -0,0 +1,92 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ import { toCashManagementBannerData, toCashManagementTransfer, } from './cashManagementOverviewPayload';
3
+ import { initialCashManagementBannerState, initialCashManagementRecentTransferState, } from './cashManagementOverviewState';
4
+ export const initialState = {
5
+ banner: initialCashManagementBannerState,
6
+ recentTransfer: initialCashManagementRecentTransferState,
7
+ };
8
+ const cashManagementOverview = createSlice({
9
+ name: 'cashManagementOverview',
10
+ initialState,
11
+ reducers: {
12
+ fetchCashManagementOverviewPage: {
13
+ reducer() { },
14
+ prepare(cacheOverride) {
15
+ return { payload: { cacheOverride } };
16
+ },
17
+ },
18
+ /**
19
+ * Public banner-fetch entry point. Triggers an orchestrator epic that
20
+ * fans out to the recommend, settings, and recent-transfer API calls
21
+ * in parallel. No reducer-side state change — each inner action drives
22
+ * its own sub-state.
23
+ *
24
+ * `cacheOverride === true` forces all three inner fetches regardless
25
+ * of current slice state; `false` keeps the per-slice dedup so repeat
26
+ * dispatches are no-ops once a slice is loaded or in-flight.
27
+ */
28
+ fetchCashManagementBanner: {
29
+ reducer() { },
30
+ prepare(cacheOverride) {
31
+ return { payload: { cacheOverride } };
32
+ },
33
+ },
34
+ /**
35
+ * Internal trigger for the recommend API (`/cash-agent/recommend`).
36
+ * Dispatched by the orchestrator; not exported.
37
+ */
38
+ fetchCashManagementRecommendation(draft) {
39
+ // Keep `draft.banner.data` so the projection chart renders the last
40
+ // good payload while the refetch is in flight, instead of flickering
41
+ // to the empty/skeleton state on every page revisit.
42
+ draft.banner.fetchState = 'In-Progress';
43
+ draft.banner.error = undefined;
44
+ },
45
+ updateCashManagementRecommendation(draft, action) {
46
+ draft.banner = {
47
+ fetchState: 'Completed',
48
+ error: undefined,
49
+ data: toCashManagementBannerData(action.payload.data),
50
+ };
51
+ },
52
+ updateCashManagementRecommendationFetchStatus(draft, action) {
53
+ draft.banner = {
54
+ ...draft.banner,
55
+ fetchState: action.payload.fetchState,
56
+ error: action.payload.error,
57
+ };
58
+ },
59
+ /**
60
+ * Internal trigger for the recent-transfer API
61
+ * (`/cash-management/transfers`). Dispatched by the orchestrator; not
62
+ * exported.
63
+ */
64
+ fetchRecentTransfer(draft) {
65
+ // Same anti-flicker pattern as the recommend fetch: keep prior data
66
+ // while the refetch is in flight.
67
+ draft.recentTransfer.fetchState = 'In-Progress';
68
+ draft.recentTransfer.error = undefined;
69
+ },
70
+ updateRecentTransfer(draft, action) {
71
+ draft.recentTransfer = {
72
+ fetchState: 'Completed',
73
+ error: undefined,
74
+ data: action.payload.data != null
75
+ ? toCashManagementTransfer(action.payload.data)
76
+ : undefined,
77
+ };
78
+ },
79
+ updateRecentTransferFetchStatus(draft, action) {
80
+ draft.recentTransfer = {
81
+ ...draft.recentTransfer,
82
+ fetchState: action.payload.fetchState,
83
+ error: action.payload.error,
84
+ };
85
+ },
86
+ clearCashManagementOverview(draft) {
87
+ Object.assign(draft, initialState);
88
+ },
89
+ },
90
+ });
91
+ export const { fetchCashManagementOverviewPage, fetchCashManagementBanner, fetchCashManagementRecommendation, updateCashManagementRecommendation, updateCashManagementRecommendationFetchStatus, fetchRecentTransfer, updateRecentTransfer, updateRecentTransferFetchStatus, clearCashManagementOverview, } = cashManagementOverview.actions;
92
+ export default cashManagementOverview.reducer;
@@ -0,0 +1,212 @@
1
+ import { zeroAmount } from '../../../../commonStateTypes/amount';
2
+ import { reduceAllFetchState } from '../../../../commonStateTypes/reduceFetchState';
3
+ import { getDepositAccountByDepositAccountId } from '../../../../entity/depositAccount/depositAccountSelector';
4
+ import { mapDepositAccToFundingAccount, } from '../../commonSetup/setupViewSelector';
5
+ /**
6
+ * Default account type used when the recommend payload has no movement to
7
+ * expose yet (e.g. before the first fetch resolves). Callers that care about
8
+ * the movement should also gate on `fetchState === 'Completed'`.
9
+ */
10
+ const DEFAULT_BANK_ACCOUNT_TYPE = 'deposit_account';
11
+ const DEFAULT_SUB_MOVEMENT_TYPE = 'push';
12
+ export const getCashManagementOverviewBanner = (state) => {
13
+ const { banner, recentTransfer } = state.cashManagementOverviewState;
14
+ const autoSweep = state.autoSweepFlowState;
15
+ // The banner today surfaces a single recommended movement (the first one
16
+ // returned by the agent). When the agent returns multiple groups/movements
17
+ // we'll need to broaden this — for now consumers only render one.
18
+ const movement = banner.data?.moneyMovements[0]?.movements[0];
19
+ const aggregate = reduceAllFetchState([
20
+ { fetchState: banner.fetchState, error: banner.error },
21
+ { fetchState: autoSweep.fetchState, error: autoSweep.error },
22
+ { fetchState: recentTransfer.fetchState, error: recentTransfer.error },
23
+ ]);
24
+ const subMovementType = movement?.subMovementType ?? DEFAULT_SUB_MOVEMENT_TYPE;
25
+ // The "primary" account is the deposit-account side of the movement —
26
+ // source for a push (money leaving primary → treasury) and destination
27
+ // for a pull (money returning to primary).
28
+ const primaryAccountId = subMovementType === 'pull'
29
+ ? movement?.destinationBankAccountId
30
+ : movement?.sourceBankAccountId;
31
+ const primaryDepositAccount = primaryAccountId != null && primaryAccountId !== ''
32
+ ? getDepositAccountByDepositAccountId(state.depositAccountState, primaryAccountId)
33
+ : undefined;
34
+ const primaryFundingAccount = primaryDepositAccount != null
35
+ ? mapDepositAccToFundingAccount(primaryDepositAccount)
36
+ : undefined;
37
+ // For pull, surface the largest outflow in the horizon as the
38
+ // "triggering" event. This is a heuristic — the agent doesn't tag a
39
+ // specific outflow today, but the largest one is the most likely cause
40
+ // of the buffer breach and matches what the design wants to highlight.
41
+ const triggeringOutflow = subMovementType === 'pull'
42
+ ? pickLargestOutflow(banner.data?.outflows)
43
+ : undefined;
44
+ return {
45
+ fetchState: aggregate.fetchState,
46
+ error: aggregate.error,
47
+ amount: movement?.amount ?? zeroAmount(),
48
+ cashManagementSettingsId: autoSweep.settingsId,
49
+ destinationBankAccountId: movement?.destinationBankAccountId ?? '',
50
+ destinationBankAccountType: movement?.destinationBankAccountType ?? DEFAULT_BANK_ACCOUNT_TYPE,
51
+ reasoning: movement?.reasoning ?? '',
52
+ sourceBankAccountId: movement?.sourceBankAccountId ?? '',
53
+ sourceBankAccountType: movement?.sourceBankAccountType ?? DEFAULT_BANK_ACCOUNT_TYPE,
54
+ subMovementType,
55
+ primaryFundingAccount,
56
+ triggeringOutflow,
57
+ recentTransfer: recentTransfer.data,
58
+ version: 0,
59
+ };
60
+ };
61
+ const pickLargestOutflow = (outflows) => {
62
+ if (outflows == null || outflows.length === 0) {
63
+ return undefined;
64
+ }
65
+ return outflows.reduce((largest, event) => event.amount.amount > largest.amount.amount ? event : largest);
66
+ };
67
+ export const getCashManagementOverview = (state) => {
68
+ const { cashManagementOverviewState, depositAccountListState, paymentAccountListState, treasuryDetailState, } = state;
69
+ const aggregate = reduceAllFetchState([
70
+ {
71
+ fetchState: paymentAccountListState.fetchState,
72
+ error: paymentAccountListState.error,
73
+ },
74
+ {
75
+ fetchState: depositAccountListState.fetchState,
76
+ error: depositAccountListState.error,
77
+ },
78
+ {
79
+ fetchState: treasuryDetailState.fetchState,
80
+ error: treasuryDetailState.error,
81
+ },
82
+ {
83
+ fetchState: cashManagementOverviewState.banner.fetchState,
84
+ error: cashManagementOverviewState.banner.error,
85
+ },
86
+ {
87
+ fetchState: state.autoSweepFlowState.fetchState,
88
+ error: state.autoSweepFlowState.error,
89
+ },
90
+ ]);
91
+ const treasuryBalance = treasuryDetailState.accountSummary?.totalBalance ?? zeroAmount();
92
+ const bannerView = getCashManagementOverviewBanner(state);
93
+ // cashBalance is the primary (agent-managed) deposit account's available
94
+ // balance — the account the banner resolves as primaryFundingAccount — not
95
+ // the sum of all cash accounts. Zero until that account resolves.
96
+ const cashBalance = bannerView.primaryFundingAccount?.accountBalance?.available ?? zeroAmount();
97
+ const totalCash = addAmounts(treasuryBalance, cashBalance);
98
+ const bannerData = cashManagementOverviewState.banner.data;
99
+ const inflowEvents = bannerData?.inflows ?? [];
100
+ const outflowEvents = bannerData?.outflows ?? [];
101
+ const totalInFlow = sumEventAmounts(inflowEvents);
102
+ const totalOutFlow = sumEventAmounts(outflowEvents);
103
+ const cashflow = subtractAmounts(totalInFlow, totalOutFlow);
104
+ const projectionData = buildProjectionData(cashBalance, inflowEvents, outflowEvents);
105
+ return {
106
+ banner: bannerView,
107
+ cashBalance,
108
+ cashflow,
109
+ inflowEvents,
110
+ outflowEvents,
111
+ projectionData,
112
+ totalCash,
113
+ totalInFlow,
114
+ totalOutFlow,
115
+ treasuryBalance,
116
+ fetchState: aggregate.fetchState,
117
+ error: aggregate.error,
118
+ version: 0,
119
+ };
120
+ };
121
+ /**
122
+ * Walks the inflow / outflow events in chronological order, stepping the
123
+ * running balance from today's `cashBalance`. Emits a point per event so the
124
+ * chart can render colored markers at each cash event. Events with the same
125
+ * payment date are kept as separate steps (preserves the marker count even
126
+ * if Recharts overlays them at the same X position).
127
+ */
128
+ const buildProjectionData = (cashBalance, inflowEvents, outflowEvents) => {
129
+ const events = [
130
+ ...inflowEvents.map((e) => ({
131
+ amount: e.amount,
132
+ date: e.paymentDate,
133
+ isInflow: true,
134
+ })),
135
+ ...outflowEvents.map((e) => ({
136
+ amount: e.amount,
137
+ date: e.paymentDate,
138
+ isInflow: false,
139
+ })),
140
+ ].sort((a, b) => {
141
+ const diff = a.date.valueOf() - b.date.valueOf();
142
+ if (diff !== 0) {
143
+ return diff;
144
+ }
145
+ // Same-day tie-breaker: apply outflows before inflows so the projection
146
+ // shows the worst-case low first, then the recovery — matches the
147
+ // "show me the dip" framing on the cash management overview.
148
+ if (a.isInflow === b.isInflow) {
149
+ return 0;
150
+ }
151
+ return a.isInflow ? 1 : -1;
152
+ });
153
+ let balance = cashBalance;
154
+ const points = [{ balance, date: 'Today' }];
155
+ events.forEach((event) => {
156
+ balance = event.isInflow
157
+ ? addAmounts(balance, event.amount)
158
+ : subtractAmounts(balance, event.amount);
159
+ points.push({
160
+ balance,
161
+ date: event.date.format('MMM D'),
162
+ isInflow: event.isInflow ? true : undefined,
163
+ isOutflow: event.isInflow ? undefined : true,
164
+ });
165
+ });
166
+ return points;
167
+ };
168
+ const sumEventAmounts = (events) => events.reduce((acc, event) => addAmounts(acc, event.amount), zeroAmount());
169
+ /**
170
+ * Subtracts `b` from `a`, sharing the currency-match guard with `addAmounts`.
171
+ * Used to compute net cash flow (`inflow - outflow`).
172
+ */
173
+ const subtractAmounts = (a, b) => {
174
+ if (isZeroAmount(b)) {
175
+ return { ...a };
176
+ }
177
+ if (isZeroAmount(a)) {
178
+ return { ...b, amount: -b.amount };
179
+ }
180
+ if (a.currencyCode !== b.currencyCode ||
181
+ a.currencySymbol !== b.currencySymbol) {
182
+ console.warn(`cashManagementOverview: skipping balance with mismatched currency. Expected ${a.currencyCode} (${a.currencySymbol}), got ${b.currencyCode} (${b.currencySymbol}).`);
183
+ return a;
184
+ }
185
+ return {
186
+ amount: a.amount - b.amount,
187
+ currencyCode: a.currencyCode,
188
+ currencySymbol: a.currencySymbol,
189
+ };
190
+ };
191
+ const isZeroAmount = (a) => a.amount === 0 && a.currencyCode === 'USD' && a.currencySymbol === '$';
192
+ /**
193
+ * Adds two Amounts. Currencies must match (the seeded zeroAmount() counts as
194
+ * "no currency yet" and adopts `b`'s currency). Mismatches return `a`
195
+ * unchanged and warn — mixing currencies in a total is a bug, not silent
196
+ * conversion.
197
+ */
198
+ const addAmounts = (a, b) => {
199
+ if (isZeroAmount(a)) {
200
+ return { ...b };
201
+ }
202
+ if (a.currencyCode !== b.currencyCode ||
203
+ a.currencySymbol !== b.currencySymbol) {
204
+ console.warn(`cashManagementOverview: skipping balance with mismatched currency. Expected ${a.currencyCode} (${a.currencySymbol}), got ${b.currencyCode} (${b.currencySymbol}).`);
205
+ return a;
206
+ }
207
+ return {
208
+ amount: a.amount + b.amount,
209
+ currencyCode: a.currencyCode,
210
+ currencySymbol: a.currencySymbol,
211
+ };
212
+ };
@@ -0,0 +1,10 @@
1
+ export const initialCashManagementBannerState = {
2
+ fetchState: 'Not-Started',
3
+ error: undefined,
4
+ data: undefined,
5
+ };
6
+ export const initialCashManagementRecentTransferState = {
7
+ fetchState: 'Not-Started',
8
+ error: undefined,
9
+ data: undefined,
10
+ };
@@ -0,0 +1,23 @@
1
+ import { from } from 'rxjs';
2
+ import { filter, mergeMap } from 'rxjs/operators';
3
+ import { fetchCashManagementSettings } from '../../autoSweepFlow/autoSweepFlowReducer';
4
+ import { fetchCashManagementBanner, fetchCashManagementRecommendation, fetchRecentTransfer, } from '../cashManagementOverviewReducer';
5
+ export const fetchCashManagementBannerEpic = (actions$, state$) => actions$.pipe(filter(fetchCashManagementBanner.match), mergeMap((action) => {
6
+ const { cacheOverride } = action.payload;
7
+ const state = state$.value;
8
+ const actions = [];
9
+ if (cacheOverride === true ||
10
+ needsFetch(state.cashManagementOverviewState.banner.fetchState)) {
11
+ actions.push(fetchCashManagementRecommendation());
12
+ }
13
+ if (cacheOverride === true ||
14
+ needsFetch(state.autoSweepFlowState.fetchState)) {
15
+ actions.push(fetchCashManagementSettings());
16
+ }
17
+ if (cacheOverride === true ||
18
+ needsFetch(state.cashManagementOverviewState.recentTransfer.fetchState)) {
19
+ actions.push(fetchRecentTransfer());
20
+ }
21
+ return from(actions);
22
+ }));
23
+ const needsFetch = (fetchState) => fetchState !== 'Completed' && fetchState !== 'In-Progress';