@zeniai/client-epic-state 5.1.10 → 5.1.11-betaAY1

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 (428) 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/transactionLinePayload.js +1 -1
  66. package/lib/entity/transaction/payloadTypes/transactionPayload.js +14 -2
  67. package/lib/entity/vendor/vendorPayload.d.ts +7 -0
  68. package/lib/entity/vendor/vendorPayload.js +9 -2
  69. package/lib/epic.d.ts +32 -4
  70. package/lib/epic.js +33 -4
  71. package/lib/esm/commonStateTypes/amount.js +7 -0
  72. package/lib/esm/commonStateTypes/animations.js +1 -0
  73. package/lib/esm/commonStateTypes/workingDayHelper.js +26 -0
  74. package/lib/esm/entity/aiCfo/aiCfoReducer.js +249 -9
  75. package/lib/esm/entity/aiCfo/aiCfoSelector.js +17 -1
  76. package/lib/esm/entity/aiCfo/aiCfoState.js +17 -0
  77. package/lib/esm/entity/approvalRule/approvalRuleConflict.js +74 -0
  78. package/lib/esm/entity/approvalRule/approvalRulePayload.js +149 -10
  79. package/lib/esm/entity/approvalRule/approvalRuleSelector.js +35 -0
  80. package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +130 -0
  81. package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +171 -0
  82. package/lib/esm/entity/cardPolicy/cardPolicySelector.js +75 -0
  83. package/lib/esm/entity/cardPolicy/cardPolicyState.js +9 -0
  84. package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +64 -0
  85. package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +43 -0
  86. package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +35 -0
  87. package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +101 -0
  88. package/lib/esm/entity/company/companyPayload.js +6 -0
  89. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +19 -0
  90. package/lib/esm/entity/paymentAccount/paymentAccountSelector.js +8 -0
  91. package/lib/esm/entity/snackbar/snackbarTypes.js +5 -0
  92. package/lib/esm/entity/task/taskPayload.js +2 -0
  93. package/lib/esm/entity/tenant/clearAllEpic.js +12 -0
  94. package/lib/esm/entity/tenant/epic/initEmailConnectOAuthEpic.js +55 -0
  95. package/lib/esm/entity/tenant/tenantReducer.js +128 -27
  96. package/lib/esm/entity/transaction/payloadTypes/transactionLinePayload.js +2 -2
  97. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +14 -2
  98. package/lib/esm/entity/vendor/vendorPayload.js +7 -1
  99. package/lib/esm/epic.js +33 -4
  100. package/lib/esm/index.js +68 -27
  101. package/lib/esm/reducer.js +18 -0
  102. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +6 -3
  103. package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  104. package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +2 -1
  105. package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  106. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewReducer.js +39 -11
  107. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +14 -4
  108. package/lib/esm/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +38 -0
  109. package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  110. package/lib/esm/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +16 -0
  111. package/lib/esm/view/companyView/companyViewReducer.js +11 -10
  112. package/lib/esm/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
  113. package/lib/esm/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
  114. package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  115. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
  116. package/lib/esm/view/fileView/epic/deleteFileEpic.js +2 -2
  117. package/lib/esm/view/fileView/epic/deleteFileListEpic.js +2 -2
  118. package/lib/esm/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +40 -0
  119. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +29 -0
  120. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +40 -0
  121. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewEpic.js +24 -18
  122. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.js +29 -17
  123. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +223 -51
  124. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +36 -18
  125. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewState.js +45 -6
  126. package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +22 -2
  127. package/lib/esm/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  128. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +109 -12
  129. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  130. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  131. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +11 -7
  132. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +54 -0
  133. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +13 -4
  134. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +144 -16
  135. package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  136. package/lib/esm/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  137. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +29 -0
  138. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +78 -0
  139. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +49 -0
  140. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +47 -0
  141. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +32 -0
  142. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +32 -0
  143. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +54 -0
  144. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +92 -0
  145. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +212 -0
  146. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +10 -0
  147. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +23 -0
  148. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +36 -0
  149. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +27 -0
  150. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +28 -0
  151. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +52 -0
  152. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +22 -0
  153. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +1 -0
  154. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +36 -0
  155. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +39 -0
  156. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +34 -0
  157. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +71 -0
  158. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +21 -0
  159. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +1 -0
  160. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +38 -0
  161. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +289 -0
  162. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +109 -0
  163. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +44 -0
  164. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +111 -0
  165. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +25 -0
  166. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +363 -0
  167. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +36 -0
  168. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +19 -0
  169. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +6 -0
  170. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +119 -0
  171. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +154 -0
  172. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +22 -0
  173. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +1 -0
  174. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +49 -0
  175. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +140 -0
  176. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +20 -0
  177. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +100 -0
  178. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +96 -0
  179. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +59 -0
  180. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +24 -0
  181. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +25 -0
  182. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +1 -0
  183. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +34 -0
  184. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +57 -0
  185. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +35 -0
  186. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
  187. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +42 -4
  188. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +35 -0
  189. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +62 -0
  190. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +44 -0
  191. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +58 -0
  192. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +77 -0
  193. package/lib/esm/view/spendManagement/commonSetup/kycKybAutofillActions.js +14 -0
  194. package/lib/esm/view/spendManagement/commonSetup/kycKybParseMapper.js +221 -0
  195. package/lib/esm/view/spendManagement/commonSetup/setupViewReducer.js +106 -52
  196. package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  197. package/lib/esm/view/spendManagement/commonSetup/types/kycKybAutofill.js +41 -0
  198. package/lib/esm/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  199. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  200. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  201. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +11 -7
  202. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +61 -0
  203. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +13 -4
  204. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +80 -11
  205. package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
  206. package/lib/esm/view/transactionDetail/epics/updateTransactionDetailEpic.js +6 -0
  207. package/lib/esm/view/transactionDetail/transactionDetailLocalDataHelper.js +7 -1
  208. package/lib/index.d.ts +84 -34
  209. package/lib/index.js +267 -35
  210. package/lib/reducer.d.ts +18 -0
  211. package/lib/reducer.js +18 -0
  212. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +11 -2
  213. package/lib/view/aiCfoView/aiCfoViewReducer.js +6 -3
  214. package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  215. package/lib/view/aiCfoView/epics/createSessionEpic.js +2 -1
  216. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +8 -1
  217. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  218. package/lib/view/companyTaskManagerView/companyTaskManagerViewPayload.d.ts +19 -11
  219. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +11 -5
  220. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.js +40 -12
  221. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +2 -0
  222. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +13 -3
  223. package/lib/view/companyTaskManagerView/companyTaskManagerViewState.d.ts +11 -3
  224. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.d.ts +10 -0
  225. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +42 -0
  226. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.d.ts +1 -3
  227. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  228. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.d.ts +6 -0
  229. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +20 -0
  230. package/lib/view/companyView/companyViewReducer.d.ts +8 -7
  231. package/lib/view/companyView/companyViewReducer.js +12 -11
  232. package/lib/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +5 -5
  233. package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.d.ts +10 -0
  234. package/lib/view/companyView/epic/companyPassport/{updateCapitalizationThresholdEpic.js → updateCapitalizationAccountThresholdEpic.js} +38 -19
  235. package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  236. package/lib/view/companyView/types/cockpitTypes.d.ts +3 -2
  237. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  238. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -1
  239. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -1
  240. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
  241. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
  242. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -1
  243. package/lib/view/fileView/epic/deleteFileEpic.js +1 -1
  244. package/lib/view/fileView/epic/deleteFileListEpic.js +1 -1
  245. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.d.ts +7 -0
  246. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +44 -0
  247. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.d.ts +8 -0
  248. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +33 -0
  249. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.d.ts +9 -0
  250. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +44 -0
  251. package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewEpic.js +24 -18
  252. package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.d.ts +2 -2
  253. package/lib/view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewLocalStoreDataEpic.js +27 -15
  254. package/lib/view/onboardingView/customerView/onboardingCustomerViewPayload.d.ts +3 -0
  255. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +44 -5
  256. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +225 -52
  257. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.d.ts +6 -1
  258. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +39 -18
  259. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +53 -8
  260. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.js +47 -7
  261. package/lib/view/people/peopleTypes.d.ts +1 -1
  262. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  263. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.d.ts +8 -1
  264. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +21 -1
  265. package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +22 -0
  266. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.d.ts +7 -0
  267. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  268. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.d.ts +14 -3
  269. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +110 -13
  270. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewState.d.ts +16 -0
  271. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  272. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  273. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +10 -6
  274. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.d.ts +23 -0
  275. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +58 -0
  276. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +12 -3
  277. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +59 -1
  278. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +146 -17
  279. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +31 -5
  280. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +8 -1
  281. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  282. package/lib/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  283. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.d.ts +47 -0
  284. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +34 -0
  285. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.d.ts +23 -0
  286. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +82 -0
  287. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.d.ts +40 -0
  288. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +53 -0
  289. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.d.ts +37 -0
  290. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +53 -0
  291. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.d.ts +14 -0
  292. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +36 -0
  293. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.d.ts +7 -0
  294. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +36 -0
  295. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +56 -0
  296. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +60 -0
  297. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +22 -0
  298. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +96 -0
  299. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +59 -0
  300. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +217 -0
  301. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +122 -0
  302. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +13 -0
  303. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +7 -0
  304. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +27 -0
  305. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +9 -0
  306. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +40 -0
  307. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.d.ts +7 -0
  308. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +31 -0
  309. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.d.ts +15 -0
  310. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +32 -0
  311. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +14 -0
  312. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +56 -0
  313. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +15 -0
  314. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +28 -0
  315. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +8 -0
  316. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +2 -0
  317. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +8 -0
  318. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +40 -0
  319. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +8 -0
  320. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +43 -0
  321. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +8 -0
  322. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +38 -0
  323. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +15 -0
  324. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +75 -0
  325. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +15 -0
  326. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +27 -0
  327. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +7 -0
  328. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +2 -0
  329. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +8 -0
  330. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +42 -0
  331. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +8 -0
  332. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +294 -0
  333. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +8 -0
  334. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +113 -0
  335. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +9 -0
  336. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +48 -0
  337. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +8 -0
  338. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +115 -0
  339. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +13 -0
  340. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +29 -0
  341. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +14 -0
  342. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +369 -0
  343. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +6 -0
  344. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +40 -0
  345. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +7 -0
  346. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +26 -0
  347. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +116 -0
  348. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +10 -0
  349. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +33 -0
  350. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +126 -0
  351. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +52 -0
  352. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +158 -0
  353. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +11 -0
  354. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +31 -0
  355. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +12 -0
  356. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +2 -0
  357. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +9 -0
  358. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +53 -0
  359. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +10 -0
  360. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +144 -0
  361. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +7 -0
  362. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +24 -0
  363. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +11 -0
  364. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +104 -0
  365. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +22 -0
  366. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +100 -0
  367. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +8 -0
  368. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +63 -0
  369. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +3 -0
  370. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +28 -0
  371. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  372. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +14 -0
  373. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +27 -1
  374. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +34 -0
  375. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +2 -0
  376. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +7 -0
  377. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +38 -0
  378. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +12 -0
  379. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +61 -0
  380. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +9 -0
  381. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +39 -0
  382. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
  383. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
  384. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +12 -2
  385. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +43 -5
  386. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +7 -0
  387. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +42 -1
  388. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +5 -0
  389. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +11 -0
  390. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +66 -0
  391. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +3 -0
  392. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +48 -0
  393. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.d.ts +28 -0
  394. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +62 -0
  395. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.d.ts +9 -0
  396. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +81 -0
  397. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.d.ts +24 -0
  398. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.js +17 -0
  399. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.d.ts +29 -0
  400. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.js +229 -0
  401. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +28 -2
  402. package/lib/view/spendManagement/commonSetup/setupViewReducer.js +107 -53
  403. package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +7 -2
  404. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  405. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +19 -0
  406. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.d.ts +154 -0
  407. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.js +46 -0
  408. package/lib/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  409. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  410. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  411. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +10 -6
  412. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.d.ts +14 -0
  413. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +65 -0
  414. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +12 -3
  415. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.d.ts +14 -3
  416. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +81 -12
  417. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts +12 -0
  418. package/lib/view/taskManager/taskListView/taskList.d.ts +3 -3
  419. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
  420. package/lib/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
  421. package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +6 -0
  422. package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
  423. package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +7 -1
  424. package/lib/view/transactionDetail/transactionDetailState.d.ts +1 -0
  425. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +1 -0
  426. package/lib/zeniAPI.d.ts +1 -0
  427. package/package.json +65 -34
  428. package/lib/view/companyView/epic/companyPassport/updateCapitalizationThresholdEpic.d.ts +0 -10
@@ -13,6 +13,7 @@ export const initialState = {
13
13
  newApprovalRuleId: undefined,
14
14
  approvalRulesDeleteStatusById: {},
15
15
  billPaySetupApproverViewUpdateData: undefined,
16
+ reorderStatus: { fetchState: 'Not-Started', error: undefined },
16
17
  hasValidState() {
17
18
  return this.fetchState === 'Completed';
18
19
  },
@@ -26,8 +27,13 @@ const billPaySetupApproverView = createSlice({
26
27
  draft.fetchState = 'In-Progress';
27
28
  draft.error = undefined;
28
29
  },
29
- prepare(cacheOverride = false, includeUserRoles = true) {
30
- return { payload: { cacheOverride, includeUserRoles } };
30
+ // Approval Rules 3.0 `useV3` arrives from the screen connector
31
+ // ('approval_rule_v3_config' dynamic config) and picks the v1
32
+ // vs v2 endpoint in the fetch epic. Required (no default) so a
33
+ // missing screen-connector wire surfaces at compile time rather
34
+ // than silently falling back to v1 on a v3 tenant.
35
+ prepare(cacheOverride = false, includeUserRoles = true, useV3) {
36
+ return { payload: { cacheOverride, includeUserRoles, useV3 } };
31
37
  },
32
38
  },
33
39
  fetchBillPaySetupApproverViewSuccess: {
@@ -112,8 +118,12 @@ const billPaySetupApproverView = createSlice({
112
118
  error: undefined,
113
119
  };
114
120
  },
115
- prepare(approvalRuleId) {
116
- return { payload: { approvalRuleId } };
121
+ // Approval Rules 3.0 — `useV3` flows from the screen connector
122
+ // ('approval_rule_v3_config' dynamic config) so the delete epic
123
+ // can pick the v1 vs v2 endpoint. Required (no default) so a
124
+ // missing connector wire surfaces at compile time.
125
+ prepare(approvalRuleId, useV3) {
126
+ return { payload: { approvalRuleId, useV3 } };
117
127
  },
118
128
  },
119
129
  deleteBillPayApprovalRuleSuccess: {
@@ -145,13 +155,100 @@ const billPaySetupApproverView = createSlice({
145
155
  };
146
156
  },
147
157
  },
148
- saveBillPaySetupApproverViewUpdates(draft) {
149
- if (draft.billPaySetupApproverViewUpdateData != null) {
150
- draft.billPaySetupApproverViewUpdateData.updateStatus = {
151
- fetchState: 'In-Progress',
152
- error: undefined,
153
- };
154
- }
158
+ /**
159
+ * Approval Rules 3.0 list-page drag-and-drop reorder.
160
+ *
161
+ * The trigger action carries the desired ordering as an ID list.
162
+ * The reducer optimistically replaces 'approvalRuleIds' so the
163
+ * list page renders the new order immediately; the epic then
164
+ * fires the PUT and either confirms (success — pulls updated
165
+ * priorities from the response) or recovers (failure — refetches
166
+ * the view so we don't strand a stale local order).
167
+ */
168
+ reorderBillPayApprovalRules: {
169
+ reducer(draft, action) {
170
+ const { approvalRuleIds } = action.payload;
171
+ const wasReorderInFlight = draft.reorderStatus.fetchState === 'In-Progress';
172
+ draft.reorderStatus = { fetchState: 'In-Progress', error: undefined };
173
+ // Stash the pre-reorder order so 'Failure' can restore it
174
+ // synchronously. The epic's refetch on failure remains as a
175
+ // safety net (covers cases where the server's truth has
176
+ // drifted from the local snapshot), but the snappy UX path
177
+ // is the in-memory rollback.
178
+ //
179
+ // Only capture a fresh snapshot when no reorder is already in
180
+ // flight. If a second drag fires before the first PUT lands,
181
+ // the existing snapshot already holds the last server-backed
182
+ // order; overwriting it with the first reorder's optimistic
183
+ // result would mean a Failure rolls back to an uncommitted
184
+ // intermediate order instead of the last good list.
185
+ if (!wasReorderInFlight) {
186
+ draft.reorderRollbackIds = draft.approvalRuleIds;
187
+ }
188
+ // Optimistic: render new order immediately. On failure, the
189
+ // reducer restores 'reorderRollbackIds' and the epic refetch
190
+ // reconciles any drift.
191
+ draft.approvalRuleIds = approvalRuleIds;
192
+ },
193
+ // Approval Rules 3.0 — `useV3` required so a missing wire
194
+ // surfaces at compile time. The reorder epic always hits the
195
+ // v2 endpoint (v1 has no reorder route), but the payload still
196
+ // carries the flag for the failure-path refetch which needs it.
197
+ prepare(approvalRuleIds, useV3) {
198
+ return { payload: { approvalRuleIds, useV3 } };
199
+ },
200
+ },
201
+ reorderBillPayApprovalRulesSuccess: {
202
+ reducer(draft, action) {
203
+ const { approvalRuleIds } = action.payload;
204
+ draft.reorderStatus = { fetchState: 'Completed', error: undefined };
205
+ // The API response is authoritative — overwrite with the
206
+ // server's reported order in case it normalised anything.
207
+ draft.approvalRuleIds = approvalRuleIds;
208
+ // Reorder succeeded — discard the snapshot so the next
209
+ // reorder starts from this committed order.
210
+ draft.reorderRollbackIds = undefined;
211
+ },
212
+ prepare(approvalRuleIds) {
213
+ return { payload: { approvalRuleIds } };
214
+ },
215
+ },
216
+ reorderBillPayApprovalRulesFailure: {
217
+ reducer(draft, action) {
218
+ const { status } = action.payload;
219
+ draft.reorderStatus = { fetchState: 'Error', error: status };
220
+ // Restore the snapshot taken on the trigger reducer before
221
+ // the optimistic mutation. The epic still fires a refetch
222
+ // alongside the failure action for cross-tab drift recovery,
223
+ // but locally the user sees their last good order instantly.
224
+ if (draft.reorderRollbackIds != null) {
225
+ draft.approvalRuleIds = draft.reorderRollbackIds;
226
+ draft.reorderRollbackIds = undefined;
227
+ }
228
+ },
229
+ prepare(status) {
230
+ return { payload: { status } };
231
+ },
232
+ },
233
+ saveBillPaySetupApproverViewUpdates: {
234
+ // Approval Rules 3.0 — `useV3` is sourced from the
235
+ // `approval_rule_v3_config` dynamic config in the screen
236
+ // connector. The reducer doesn't read it (the field only
237
+ // matters in the save epic), but it must be declared so the
238
+ // action's payload type is correctly inferred for downstream
239
+ // consumers.
240
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
241
+ reducer(draft, _action) {
242
+ if (draft.billPaySetupApproverViewUpdateData != null) {
243
+ draft.billPaySetupApproverViewUpdateData.updateStatus = {
244
+ fetchState: 'In-Progress',
245
+ error: undefined,
246
+ };
247
+ }
248
+ },
249
+ prepare(useV3) {
250
+ return { payload: { useV3 } };
251
+ },
155
252
  },
156
253
  saveBillPaySetupApproverViewUpdatesSuccess: {
157
254
  reducer(draft, action) {
@@ -240,5 +337,5 @@ const billPaySetupApproverView = createSlice({
240
337
  },
241
338
  },
242
339
  });
243
- export const { fetchBillPaySetupApproverView, fetchBillPaySetupApproverViewSuccess, fetchBillPaySetupApproverViewFailure, fetchBillPayApproversDetails, fetchBillPayApproversList, fetchBillPayApproversListSuccess, fetchBillPayApproversListFailure, deleteBillPayApprovalRule, deleteBillPayApprovalRuleSuccess, deleteBillPayApprovalRuleFailure, saveBillPaySetupApproverViewUpdates, saveBillPaySetupApproverViewUpdatesSuccess, saveBillPaySetupApproverViewUpdatesFailure, initializeBillPaySetupApproverViewUpdateData, saveBillPaySetupApproverViewUpdateData, clearBillPaySetupApproverViewUpdateData, setListeningToPusherEvent, clearBillPaySetupApproverView, } = billPaySetupApproverView.actions;
340
+ export const { fetchBillPaySetupApproverView, fetchBillPaySetupApproverViewSuccess, fetchBillPaySetupApproverViewFailure, fetchBillPayApproversDetails, fetchBillPayApproversList, fetchBillPayApproversListSuccess, fetchBillPayApproversListFailure, deleteBillPayApprovalRule, deleteBillPayApprovalRuleSuccess, deleteBillPayApprovalRuleFailure, reorderBillPayApprovalRules, reorderBillPayApprovalRulesSuccess, reorderBillPayApprovalRulesFailure, saveBillPaySetupApproverViewUpdates, saveBillPaySetupApproverViewUpdatesSuccess, saveBillPaySetupApproverViewUpdatesFailure, initializeBillPaySetupApproverViewUpdateData, saveBillPaySetupApproverViewUpdateData, clearBillPaySetupApproverViewUpdateData, setListeningToPusherEvent, clearBillPaySetupApproverView, } = billPaySetupApproverView.actions;
244
341
  export default billPaySetupApproverView.reducer;
@@ -6,9 +6,17 @@ import { updateAllUsers } from '../../../../../entity/user/userReducer';
6
6
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
7
7
  import { deleteBillPayApprovalRule, deleteBillPayApprovalRuleFailure, deleteBillPayApprovalRuleSuccess, } from '../billPaySetupApproverViewReducer';
8
8
  export const deleteBillPayApprovalRuleEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(deleteBillPayApprovalRule.match), switchMap((action) => {
9
- const { approvalRuleId } = action.payload;
9
+ const { approvalRuleId, useV3 } = action.payload;
10
+ // Approval Rules 3.0 — flag-gated endpoint selection.
11
+ // Explicit `=== true` keeps `strict-boolean-expressions` happy
12
+ // when RTK's payload type widens to `any` in some configs.
13
+ const endpoint = useV3 === true
14
+ ? `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules-v2`
15
+ : `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`;
10
16
  return zeniAPI
11
- .deleteAndGetJSON(`${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`, { approval_rule_id: approvalRuleId })
17
+ .deleteAndGetJSON(endpoint, {
18
+ approval_rule_id: approvalRuleId,
19
+ })
12
20
  .pipe(mergeMap((response) => {
13
21
  if (isSuccessResponse(response) && response.data != null) {
14
22
  const approvalRuleIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
@@ -6,7 +6,7 @@ import { updateAllUsers } from '../../../../../entity/user/userReducer';
6
6
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
7
7
  import { fetchBillPaySetupApproverView, fetchBillPaySetupApproverViewFailure, fetchBillPaySetupApproverViewSuccess, } from '../billPaySetupApproverViewReducer';
8
8
  export const fetchBillPaySetupApproverViewEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchBillPaySetupApproverView.match), switchMap((action) => {
9
- const { cacheOverride } = action.payload;
9
+ const { cacheOverride, useV3 } = action.payload;
10
10
  const { billPaySetupApproverViewState, approvalRuleState } = state$.value;
11
11
  const approvalRules = getApprovalRulesByIds(approvalRuleState, billPaySetupApproverViewState.approvalRuleIds);
12
12
  if (cacheOverride === true ||
@@ -14,9 +14,13 @@ export const fetchBillPaySetupApproverViewEpic = (actions$, state$, zeniAPI) =>
14
14
  billPaySetupApproverViewState.approvalRuleIds.length ||
15
15
  (billPaySetupApproverViewState.hasValidState() === false &&
16
16
  billPaySetupApproverViewState.fetchState !== 'In-Progress')) {
17
- return zeniAPI
18
- .getJSON(`${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`)
19
- .pipe(mergeMap((response) => {
17
+ // Approval Rules 3.0 — flag-gated endpoint selection.
18
+ // Explicit `=== true` keeps `strict-boolean-expressions` happy
19
+ // when RTK's payload type widens to `any` in some configs.
20
+ const endpoint = useV3 === true
21
+ ? `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules-v2`
22
+ : `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`;
23
+ return zeniAPI.getJSON(endpoint).pipe(mergeMap((response) => {
20
24
  if (isSuccessResponse(response) && response.data != null) {
21
25
  const approvalRuleIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
22
26
  const actions = [
@@ -1,6 +1,6 @@
1
1
  import { from } from 'rxjs';
2
2
  import { filter, mergeMap } from 'rxjs/operators';
3
- import { getApprovalRuleById } from '../../../../../entity/approvalRule/approvalRuleSelector';
3
+ import { getAmountCriteria, getApprovalRuleById, getDepartmentCriteria, getVendorCriteria, } from '../../../../../entity/approvalRule/approvalRuleSelector';
4
4
  import { clearBillPaySetupApproverViewUpdateData, initializeBillPaySetupApproverViewUpdateData, saveBillPaySetupApproverViewUpdateData, } from '../billPaySetupApproverViewReducer';
5
5
  export const initializeBillPaySetupApproverViewUpdateDataEpic = (actions$, state$) => actions$.pipe(filter(initializeBillPaySetupApproverViewUpdateData.match), mergeMap((action) => {
6
6
  const { approvalRuleId } = action.payload;
@@ -8,16 +8,20 @@ export const initializeBillPaySetupApproverViewUpdateDataEpic = (actions$, state
8
8
  if (approvalRuleId != null) {
9
9
  const approvalRule = getApprovalRuleById(state$.value.approvalRuleState, approvalRuleId);
10
10
  if (approvalRule != null) {
11
- const criteria = approvalRule.criteria[0];
12
- const range = criteria?.range;
13
11
  const billPaySetupApproverViewUpdateData = {
14
12
  approvalRuleId,
15
13
  steps: approvalRule.steps,
16
14
  criteria: {
17
- rangeType: criteria?.rangeType,
18
- rangeEntity: criteria?.rangeEntity,
19
- range,
15
+ amount: getAmountCriteria(approvalRule.criteria),
16
+ vendor: getVendorCriteria(approvalRule.criteria),
17
+ department: getDepartmentCriteria(approvalRule.criteria),
20
18
  },
19
+ // Approval Rules 3.0 — seed rule-level fields so the form can
20
+ // round-trip them on edit. Each may be undefined on legacy rules.
21
+ name: approvalRule.name,
22
+ description: approvalRule.description,
23
+ separationOfDuties: approvalRule.separationOfDuties,
24
+ isFallback: approvalRule.isFallback,
21
25
  };
22
26
  fetchActions.push(clearBillPaySetupApproverViewUpdateData(), saveBillPaySetupApproverViewUpdateData(billPaySetupApproverViewUpdateData));
23
27
  }
@@ -25,7 +29,7 @@ export const initializeBillPaySetupApproverViewUpdateDataEpic = (actions$, state
25
29
  else {
26
30
  const billPaySetupApproverViewCreateData = {
27
31
  steps: [],
28
- criteria: undefined,
32
+ criteria: {},
29
33
  };
30
34
  fetchActions.push(clearBillPaySetupApproverViewUpdateData(), saveBillPaySetupApproverViewUpdateData(billPaySetupApproverViewCreateData));
31
35
  }
@@ -0,0 +1,54 @@
1
+ import { from } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { updateApprovalRules } from '../../../../../entity/approvalRule/approvalRuleReducer';
4
+ import { openSnackbar } from '../../../../../entity/snackbar/snackbarReducer';
5
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
6
+ import { fetchBillPaySetupApproverView, reorderBillPayApprovalRules, reorderBillPayApprovalRulesFailure, reorderBillPayApprovalRulesSuccess, } from '../billPaySetupApproverViewReducer';
7
+ export const reorderBillPayApprovalRulesEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(reorderBillPayApprovalRules.match), switchMap((action) => {
8
+ const { approvalRuleIds, useV3 } = action.payload;
9
+ // Approval Rules 3.0 — flag-gated endpoint selection. Mirrors
10
+ // the pattern used by delete + fetch epics: the v3 dev host
11
+ // until the production base URL ships the v2 reorder route.
12
+ const endpoint = `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules-v2/reorder`;
13
+ return zeniAPI
14
+ .putAndGetJSON(endpoint, {
15
+ rule_ids: approvalRuleIds,
16
+ })
17
+ .pipe(mergeMap((response) => {
18
+ if (isSuccessResponse(response) && response.data != null) {
19
+ const serverOrderedIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
20
+ const actions = [
21
+ updateApprovalRules(response.data.approval_rules),
22
+ reorderBillPayApprovalRulesSuccess(serverOrderedIds),
23
+ openSnackbar({
24
+ messageSection: `bill_pay_approval_reorder`,
25
+ messageText: 'success',
26
+ type: 'success',
27
+ }),
28
+ ];
29
+ return from(actions);
30
+ }
31
+ else {
32
+ const recovery = [
33
+ reorderBillPayApprovalRulesFailure(response.status),
34
+ openSnackbar({
35
+ messageSection: `bill_pay_approval_reorder`,
36
+ messageText: 'failed',
37
+ type: 'error',
38
+ }),
39
+ // Refetch to revert the optimistic order to server truth.
40
+ fetchBillPaySetupApproverView(true, true, useV3),
41
+ ];
42
+ return from(recovery);
43
+ }
44
+ }), catchError((error) => from([
45
+ reorderBillPayApprovalRulesFailure(createZeniAPIStatus('Unexpected Error', 'Reorder Bill Pay Approval Rules errored out' +
46
+ JSON.stringify(error))),
47
+ openSnackbar({
48
+ messageSection: `bill_pay_approval_reorder`,
49
+ messageText: 'failed',
50
+ type: 'error',
51
+ }),
52
+ fetchBillPaySetupApproverView(true, true, useV3),
53
+ ])));
54
+ }));
@@ -5,15 +5,24 @@ import { openSnackbar } from '../../../../../entity/snackbar/snackbarReducer';
5
5
  import { updateAllUsers } from '../../../../../entity/user/userReducer';
6
6
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
7
7
  import { saveBillPaySetupApproverViewUpdates, saveBillPaySetupApproverViewUpdatesFailure, saveBillPaySetupApproverViewUpdatesSuccess, } from '../billPaySetupApproverViewReducer';
8
- import { toApprovalChangableInfoPayload } from '../types/commonPayload';
9
- export const saveBillPaySetupApproverViewUpdatesEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(saveBillPaySetupApproverViewUpdates.match), switchMap(() => {
8
+ import { toApprovalChangableInfoPayload, toApprovalChangableInfoPayloadV1, } from '../types/commonPayload';
9
+ export const saveBillPaySetupApproverViewUpdatesEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(saveBillPaySetupApproverViewUpdates.match), switchMap((action) => {
10
10
  const { billPaySetupApproverViewState } = state$.value;
11
11
  const billPaySetupApproverViewUpdateData = billPaySetupApproverViewState.billPaySetupApproverViewUpdateData;
12
12
  if (billPaySetupApproverViewUpdateData != null &&
13
13
  billPaySetupApproverViewUpdateData.data != null) {
14
- const payload = toApprovalChangableInfoPayload(billPaySetupApproverViewUpdateData.data);
14
+ // Approval Rules 3.0 — gate URL + write-side payload mapper on
15
+ // the `approval_rule_v3_config` dynamic config. `useV3` arrives
16
+ // on the action payload from the screen connector.
17
+ const { useV3 } = action.payload;
18
+ const payload = useV3
19
+ ? toApprovalChangableInfoPayload(billPaySetupApproverViewUpdateData.data)
20
+ : toApprovalChangableInfoPayloadV1(billPaySetupApproverViewUpdateData.data);
21
+ const endpoint = useV3
22
+ ? `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules-v2`
23
+ : `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`;
15
24
  return zeniAPI
16
- .postAndGetJSON(`${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/bill-pay/approval-rules`, payload)
25
+ .postAndGetJSON(endpoint, payload)
17
26
  .pipe(mergeMap((response) => {
18
27
  if (isSuccessResponse(response) && response.data != null) {
19
28
  const approvalRuleIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
@@ -1,20 +1,52 @@
1
1
  export const toApprovalChangableInfoPayload = (approverViewUpdateData) => {
2
- let criteriaPayload = [];
2
+ // Form-side criteria is a structured object with optional slots for
3
+ // amount / vendor / department; flatten it into the wire format's
4
+ // `conditions[]` array.
5
+ let criteriaPayload;
3
6
  if (approverViewUpdateData.criteria != null) {
4
- const criteria = approverViewUpdateData.criteria;
5
- const { rangeType, rangeEntity, range } = criteria;
6
- const { min, max } = range;
7
- const { currencyCode, currencySymbol } = min;
8
- criteriaPayload = [
9
- {
10
- type: rangeType,
11
- range_entity: rangeEntity,
12
- min: min.amount,
13
- max: max?.amount ?? null,
14
- currency_code: currencyCode,
15
- currency_symbol: currencySymbol,
16
- },
17
- ];
7
+ const { amount, vendor, department } = approverViewUpdateData.criteria;
8
+ const conditions = [];
9
+ if (amount?.min != null) {
10
+ conditions.push({
11
+ field: 'amount',
12
+ type: 'gte',
13
+ value: amount.min.amount,
14
+ });
15
+ }
16
+ if (amount?.max != null) {
17
+ conditions.push({
18
+ field: 'amount',
19
+ type: 'lte',
20
+ value: amount.max.amount,
21
+ });
22
+ }
23
+ if (vendor != null && vendor.vendorIds.length > 0) {
24
+ conditions.push({
25
+ field: 'vendor_id',
26
+ type: vendor.operator === 'is_not' ? 'not_in' : 'in',
27
+ value: vendor.vendorIds,
28
+ });
29
+ }
30
+ if (department != null && department.departmentIds.length > 0) {
31
+ conditions.push({
32
+ // The backend models 'department' as the accounting class
33
+ // entity, so the wire field name is 'accounting_class_id'
34
+ // (not 'department_id'). State-side and form-side keep
35
+ // 'department' / 'departmentIds' to match product copy.
36
+ field: 'accounting_class_id',
37
+ type: department.operator === 'is_not' ? 'not_in' : 'in',
38
+ value: department.departmentIds,
39
+ });
40
+ }
41
+ if (conditions.length > 0) {
42
+ const currency = amount?.min ?? amount?.max ?? null;
43
+ criteriaPayload = {
44
+ conditions,
45
+ criteria_operator: 'and',
46
+ currency_code: currency?.currencyCode ?? 'USD',
47
+ currency_symbol: currency?.currencySymbol ?? '$',
48
+ };
49
+ }
18
50
  }
19
51
  const steps = approverViewUpdateData.steps.map((step) => {
20
52
  return {
@@ -35,10 +67,106 @@ export const toApprovalChangableInfoPayload = (approverViewUpdateData) => {
35
67
  });
36
68
  const isUpdate = approverViewUpdateData.approvalRuleId != null;
37
69
  const payload = {
38
- criteria: criteriaPayload,
39
70
  steps,
40
71
  is_applicable_on_pending_approval_entity: approverViewUpdateData.isApplicableOnPendingApprovalEntity ?? true,
41
72
  };
73
+ if (criteriaPayload != null) {
74
+ payload.criteria = criteriaPayload;
75
+ }
76
+ // Approval Rules 3.0 — surface rule-level fields when the form set them.
77
+ // Send only what the user actually entered: an undefined value means
78
+ // "no opinion" and stays off the wire.
79
+ if (approverViewUpdateData.name != null) {
80
+ payload.name = approverViewUpdateData.name;
81
+ }
82
+ if (approverViewUpdateData.description != null) {
83
+ payload.description = approverViewUpdateData.description;
84
+ }
85
+ if (approverViewUpdateData.separationOfDuties != null) {
86
+ payload.is_separation_of_duty_enabled =
87
+ approverViewUpdateData.separationOfDuties;
88
+ }
89
+ if (approverViewUpdateData.isFallback != null) {
90
+ payload.is_fallback = approverViewUpdateData.isFallback;
91
+ }
92
+ if (isUpdate) {
93
+ payload.approval_rule_id = approverViewUpdateData.approvalRuleId;
94
+ }
95
+ return payload;
96
+ };
97
+ /**
98
+ * V1 wire mapper — used when 'approval_rule_v3_config' resolves to OFF
99
+ * for the current tenant. Emits the legacy snake_case array shape that
100
+ * '/approval-rules' historically consumed (see the V1 fixture in
101
+ * 'entity/entityApprovalStatus/__mocks__/json/entityApprovalStatusPayload.json'):
102
+ * criteria: [{type: 'range', range_entity: 'currency', min, max,
103
+ * currency_code, currency_symbol}]
104
+ *
105
+ * Open-ended semantics are preserved on the wire: an absent 'min' or
106
+ * 'max' is sent as 'null' rather than synthesised to '0' or
107
+ * 'MAX_SAFE_INTEGER', so a 'greater_than' / 'less_than' rule stays
108
+ * one-sided after rollback rather than collapsing into a closed range.
109
+ *
110
+ * The V1 backend does not understand vendor / department criteria or
111
+ * the rule-level 3.0 fields, so those are dropped on the wire.
112
+ */
113
+ export const toApprovalChangableInfoPayloadV1 = (approverViewUpdateData) => {
114
+ const amount = approverViewUpdateData.criteria?.amount;
115
+ const minAmount = amount?.min;
116
+ const maxAmount = amount?.max;
117
+ const currencyCode = minAmount?.currencyCode ?? maxAmount?.currencyCode ?? 'USD';
118
+ const currencySymbol = minAmount?.currencySymbol ?? maxAmount?.currencySymbol ?? '$';
119
+ const steps = approverViewUpdateData.steps.map((step) => {
120
+ return {
121
+ action: step.action,
122
+ operator: step.operator,
123
+ actors: step.actors
124
+ .filter((actor) => actor.subType !== 'admin')
125
+ .map((actor) => {
126
+ return {
127
+ type: actor.type,
128
+ id: actor.userId ?? null,
129
+ sub_type: actor.subType ?? null,
130
+ id_type: actor.idType ?? null,
131
+ is_implicit_actor: actor.isImplicitActor ?? false,
132
+ };
133
+ }),
134
+ };
135
+ });
136
+ const isUpdate = approverViewUpdateData.approvalRuleId != null;
137
+ const minValue = minAmount?.amount ?? null;
138
+ const maxValue = maxAmount?.amount ?? null;
139
+ // Approval Rules 3.0 — guard against the both-null case. The form
140
+ // is expected to always set at least one bound, but if drift ever
141
+ // hands us a rule with no min and no max we'd otherwise emit
142
+ // '[{type: range, min: null, max: null, ...}]' — a payload that
143
+ // (a) the read-side 'legacyAmountRangeToCriteria' decodes back to
144
+ // '[]' (asymmetric round-trip), and (b) the V1 backend will
145
+ // reject anyway. Emit 'criteria: []' instead so the save fails
146
+ // cleanly on the server side and we leave a breadcrumb in the
147
+ // console for diagnosis rather than persisting mis-shaped data.
148
+ const criteria = [];
149
+ if (minValue == null && maxValue == null) {
150
+ console.warn('[approvalRules][V1] toApprovalChangableInfoPayloadV1: rule has ' +
151
+ 'no amount bounds; emitting empty criteria array. The V1 backend ' +
152
+ 'will reject this save — caller should ensure at least one bound ' +
153
+ 'is set on the form.');
154
+ }
155
+ else {
156
+ criteria.push({
157
+ type: 'range',
158
+ range_entity: 'currency',
159
+ min: minValue,
160
+ max: maxValue,
161
+ currency_code: currencyCode,
162
+ currency_symbol: currencySymbol,
163
+ });
164
+ }
165
+ const payload = {
166
+ steps,
167
+ is_applicable_on_pending_approval_entity: approverViewUpdateData.isApplicableOnPendingApprovalEntity ?? true,
168
+ criteria,
169
+ };
42
170
  if (isUpdate) {
43
171
  payload.approval_rule_id = approverViewUpdateData.approvalRuleId;
44
172
  }
@@ -1,6 +1,7 @@
1
1
  import recordGet from 'lodash/get';
2
2
  import has from 'lodash/has';
3
3
  import { reduceFetchState } from '../../../../commonStateTypes/reduceFetchState';
4
+ import { getAmountCriteria, getDepartmentCriteria, getVendorCriteria, } from '../../../../entity/approvalRule/approvalRuleSelector';
4
5
  import { getBankAccountByBankAccountId, getBankAccountsByBankAccountIds, } from '../../../../entity/bankAccount/bankAccountSelector';
5
6
  import { getContactById, getContactsByIds, } from '../../../../entity/billPay/contact/contactSelector';
6
7
  import { getCompanyByCompanyId } from '../../../../entity/company/companySelector';
@@ -356,6 +357,14 @@ export const getEditBillDetail = (state, isVendorRecommendationFeatureEnabled, i
356
357
  isDeleted,
357
358
  showAutofill,
358
359
  addBillAutoFields,
360
+ // Bill-level accounting class. Approval Rules 3.0 'department'
361
+ // criteria match against this. Lives on BillTransaction; not on
362
+ // any sub-section. Empty-string is normalised to 'undefined'
363
+ // so downstream readers treat "no class" uniformly regardless
364
+ // of whether the wire used '' or omitted the field.
365
+ classId: transaction?.classId != null && transaction.classId !== ''
366
+ ? transaction.classId
367
+ : undefined,
359
368
  billStage,
360
369
  deleteStatus,
361
370
  billActivities,
@@ -678,12 +687,59 @@ export const getDefaultWithdrawFromAccount = (state, depositAccounts, companyId,
678
687
  }
679
688
  return undefined;
680
689
  };
681
- export const checkIfCreatorIsApprover = (billAmount, approvalRules, signedInUser) => {
690
+ export const checkIfCreatorIsApprover = (billAmount, approvalRules, signedInUser, billVendorId, billDepartmentId) => {
682
691
  let isCreatorAlsoApprover = false;
692
+ // Approval Rules 3.0 — a rule applies to a bill only when all of
693
+ // its present criteria are satisfied. Criteria not declared on
694
+ // the rule are treated as "no narrowing on this axis".
695
+ //
696
+ // Strict-match semantics for vendor / department: if the rule
697
+ // narrows by an axis but the bill has no value on that axis, the
698
+ // rule does NOT apply (an absent bill-side value can't satisfy
699
+ // either 'is' or 'is_not'). Amount is always present on a rule
700
+ // (the form enforces this), but bounds may be one-sided.
683
701
  const approvalRule = approvalRules.find((rule) => {
684
- const { max, min } = rule.criteria[0].range;
685
- return (billAmount > min.amount &&
686
- (max?.amount != null ? billAmount <= max?.amount : true));
702
+ const vendorCriteria = getVendorCriteria(rule.criteria);
703
+ if (vendorCriteria != null) {
704
+ if (billVendorId == null) {
705
+ return false;
706
+ }
707
+ const includesVendor = vendorCriteria.vendorIds.includes(billVendorId);
708
+ if (vendorCriteria.operator === 'is' && !includesVendor) {
709
+ return false;
710
+ }
711
+ if (vendorCriteria.operator === 'is_not' && includesVendor) {
712
+ return false;
713
+ }
714
+ }
715
+ const departmentCriteria = getDepartmentCriteria(rule.criteria);
716
+ if (departmentCriteria != null) {
717
+ if (billDepartmentId == null) {
718
+ return false;
719
+ }
720
+ const includesDepartment = departmentCriteria.departmentIds.includes(billDepartmentId);
721
+ if (departmentCriteria.operator === 'is' && !includesDepartment) {
722
+ return false;
723
+ }
724
+ if (departmentCriteria.operator === 'is_not' && includesDepartment) {
725
+ return false;
726
+ }
727
+ }
728
+ const amountCriteria = getAmountCriteria(rule.criteria);
729
+ if (amountCriteria == null) {
730
+ // The form guarantees an amount criterion on every rule, so
731
+ // this branch is defensive against backend drift. Keep
732
+ // pre-3.0 behaviour: a rule that doesn't declare amount
733
+ // doesn't participate here.
734
+ return false;
735
+ }
736
+ // Bounds use the wire's inclusive 'gte' / 'lte' semantics, and
737
+ // either side may be absent for a one-sided 'greater_than' /
738
+ // 'less_than' rule.
739
+ const { min, max } = amountCriteria;
740
+ const matchesMin = min == null || billAmount >= min.amount;
741
+ const matchesMax = max == null || billAmount <= max.amount;
742
+ return matchesMin && matchesMax;
687
743
  });
688
744
  if (approvalRule != null) {
689
745
  const requireApprovalSteps = approvalRule.steps.filter((step) => step.action === 'require_approval');
@@ -38,7 +38,10 @@ export const fetchEditBillDetailPageEpic = (actions$, state$) => actions$.pipe(f
38
38
  else {
39
39
  billDetailActions.push(updateShowAutofill(true));
40
40
  }
41
- billDetailActions.push(fetchBillPaySetupApproverView(true));
41
+ // Side-fetch from the edit-bill page bootstrap. The triggering
42
+ // action doesn't carry the V3 flag, so we explicitly target v1
43
+ // here; tenants on v3 re-fetch through their own screen connector.
44
+ billDetailActions.push(fetchBillPaySetupApproverView(true, true, false));
42
45
  }
43
46
  else {
44
47
  if (state.ownerListState.fetchState !== 'In-Progress' &&
@@ -81,7 +84,10 @@ export const fetchEditBillDetailPageEpic = (actions$, state$) => actions$.pipe(f
81
84
  // While opening New Bill Refresh Approval Rules and Payment Accounts
82
85
  if (approvalViewFetchState !== 'In-Progress' &&
83
86
  approvalViewFetchState !== 'Completed') {
84
- billDetailActions.push(fetchBillPaySetupApproverView(true));
87
+ // Side-fetch from the edit-bill page bootstrap. The triggering
88
+ // action doesn't carry the V3 flag, so we explicitly target v1
89
+ // here; tenants on v3 re-fetch through their own screen connector.
90
+ billDetailActions.push(fetchBillPaySetupApproverView(true, true, false));
85
91
  }
86
92
  }
87
93
  return concat(from(billDetailActions));
@@ -0,0 +1,29 @@
1
+ import { toAmount } from '../../../../commonStateTypes/amount';
2
+ import { date } from '../../../../zeniDayJS';
3
+ import { toAutoSweepFrequency, } from './autoSweepFlowState';
4
+ export const toSaveAutoSweepSettingsBody = (state) => ({
5
+ frequency: state.frequency,
6
+ memo: state.memo,
7
+ minimum_buffer_usd: state.bufferAmount.amount,
8
+ });
9
+ /**
10
+ * Map a `GET /cash-management/settings` payload into the slice's writable
11
+ * fields. Defensive on the frequency (string-from-the-wire → union via
12
+ * `toAutoSweepFrequency`, falling back to `'weekly'` if the server returns
13
+ * something we don't model yet). Only the source account *id* is stored
14
+ * here — the full deposit-account payload is published to the entity bucket
15
+ * by the fetch epic.
16
+ */
17
+ export const toAutoSweepFlowStatePatch = (payload) => {
18
+ const currencyCode = payload.source_bank_account.balances?.currency_code;
19
+ const currencySymbol = payload.source_bank_account.balances?.currency_symbol;
20
+ return {
21
+ bufferAmount: toAmount(payload.minimum_buffer_usd, currencyCode ?? 'USD', currencySymbol ?? '$'),
22
+ frequency: toAutoSweepFrequency(payload.frequency) ?? 'weekly',
23
+ nextTransferDate: payload.next_run_date != null && payload.next_run_date !== ''
24
+ ? date(payload.next_run_date)
25
+ : undefined,
26
+ primaryFundingAccountId: payload.source_bank_account.deposit_account_id ?? undefined,
27
+ settingsId: payload.cash_management_settings_id ?? undefined,
28
+ };
29
+ };