@zeniai/client-epic-state 5.1.0-betaSS3 → 5.1.1-beta0ND

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 (514) 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/viewAndReport/viewAndReport.d.ts +2 -2
  7. package/lib/commonStateTypes/viewAndReport/viewAndReport.js +2 -0
  8. package/lib/commonStateTypes/workingDayHelper.d.ts +9 -0
  9. package/lib/commonStateTypes/workingDayHelper.js +28 -1
  10. package/lib/entity/account/accountSelector.d.ts +9 -0
  11. package/lib/entity/account/accountSelector.js +14 -1
  12. package/lib/entity/account/accountState.d.ts +1 -1
  13. package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
  14. package/lib/entity/aiCfo/aiCfoPayload.d.ts +64 -5
  15. package/lib/entity/aiCfo/aiCfoReducer.d.ts +23 -2
  16. package/lib/entity/aiCfo/aiCfoReducer.js +252 -10
  17. package/lib/entity/aiCfo/aiCfoSelector.d.ts +4 -1
  18. package/lib/entity/aiCfo/aiCfoSelector.js +19 -1
  19. package/lib/entity/aiCfo/aiCfoState.d.ts +98 -4
  20. package/lib/entity/aiCfo/aiCfoState.js +20 -1
  21. package/lib/entity/approvalRule/approvalRuleConflict.d.ts +56 -0
  22. package/lib/entity/approvalRule/approvalRuleConflict.js +77 -0
  23. package/lib/entity/approvalRule/approvalRulePayload.d.ts +34 -5
  24. package/lib/entity/approvalRule/approvalRulePayload.js +145 -10
  25. package/lib/entity/approvalRule/approvalRuleSelector.d.ts +25 -1
  26. package/lib/entity/approvalRule/approvalRuleSelector.js +40 -0
  27. package/lib/entity/approvalRule/approvalRuleState.d.ts +59 -7
  28. package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +277 -0
  29. package/lib/entity/cardPolicy/cardPolicyPayload.js +143 -0
  30. package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +19 -0
  31. package/lib/entity/cardPolicy/cardPolicyReducer.js +175 -0
  32. package/lib/entity/cardPolicy/cardPolicySelector.d.ts +32 -0
  33. package/lib/entity/cardPolicy/cardPolicySelector.js +99 -0
  34. package/lib/entity/cardPolicy/cardPolicyState.d.ts +205 -0
  35. package/lib/entity/cardPolicy/cardPolicyState.js +14 -0
  36. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +18 -0
  37. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +68 -0
  38. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +26 -0
  39. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +47 -0
  40. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +25 -0
  41. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +39 -0
  42. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +24 -0
  43. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +105 -0
  44. package/lib/entity/class/classReducer.d.ts +4 -4
  45. package/lib/entity/class/classState.d.ts +1 -1
  46. package/lib/entity/company/companyPayload.d.ts +4 -0
  47. package/lib/entity/company/companyPayload.js +4 -0
  48. package/lib/entity/company/companyStateTypes.d.ts +4 -0
  49. package/lib/entity/forecast/forecastState.d.ts +1 -1
  50. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +1 -0
  51. package/lib/entity/jeSchedules/jeSchedulesPayload.js +19 -0
  52. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +2 -0
  53. package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
  54. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -1
  55. package/lib/entity/paymentAccount/paymentAccountSelector.d.ts +1 -0
  56. package/lib/entity/paymentAccount/paymentAccountSelector.js +9 -0
  57. package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
  58. package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
  59. package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
  60. package/lib/entity/sectionProjectView/sectionProjectView.d.ts +1 -1
  61. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +2 -2
  62. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  63. package/lib/entity/snackbar/snackbarTypes.js +7 -0
  64. package/lib/entity/task/taskPayload.d.ts +3 -1
  65. package/lib/entity/task/taskPayload.js +2 -0
  66. package/lib/entity/task/taskState.d.ts +2 -0
  67. package/lib/entity/tenant/clearAllEpic.d.ts +9 -2
  68. package/lib/entity/tenant/clearAllEpic.js +14 -0
  69. package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +1 -1
  70. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.d.ts +21 -0
  71. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.js +54 -0
  72. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +1 -1
  73. package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.d.ts +3 -3
  74. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +1 -1
  75. package/lib/entity/tenant/tenantPayload.d.ts +22 -0
  76. package/lib/entity/tenant/tenantReducer.d.ts +52 -30
  77. package/lib/entity/tenant/tenantReducer.js +195 -11
  78. package/lib/entity/tenant/tenantState.d.ts +25 -1
  79. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +4 -0
  80. package/lib/entity/transaction/payloadTypes/transactionPayload.js +17 -7
  81. package/lib/entity/transaction/stateTypes/transaction.d.ts +3 -0
  82. package/lib/entity/transaction/stateTypes/transactionLine.d.ts +2 -1
  83. package/lib/entity/transaction/stateTypes/transactionLine.js +2 -1
  84. package/lib/epic.d.ts +36 -2
  85. package/lib/epic.js +37 -2
  86. package/lib/esm/commonStateTypes/amount.js +7 -0
  87. package/lib/esm/commonStateTypes/animations.js +1 -0
  88. package/lib/esm/commonStateTypes/viewAndReport/viewAndReport.js +2 -0
  89. package/lib/esm/commonStateTypes/workingDayHelper.js +26 -0
  90. package/lib/esm/entity/account/accountSelector.js +11 -0
  91. package/lib/esm/entity/aiCfo/aiCfoReducer.js +252 -10
  92. package/lib/esm/entity/aiCfo/aiCfoSelector.js +17 -1
  93. package/lib/esm/entity/aiCfo/aiCfoState.js +17 -0
  94. package/lib/esm/entity/approvalRule/approvalRuleConflict.js +74 -0
  95. package/lib/esm/entity/approvalRule/approvalRulePayload.js +145 -10
  96. package/lib/esm/entity/approvalRule/approvalRuleSelector.js +35 -0
  97. package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +130 -0
  98. package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +171 -0
  99. package/lib/esm/entity/cardPolicy/cardPolicySelector.js +75 -0
  100. package/lib/esm/entity/cardPolicy/cardPolicyState.js +9 -0
  101. package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +64 -0
  102. package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +43 -0
  103. package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +35 -0
  104. package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +101 -0
  105. package/lib/esm/entity/company/companyPayload.js +4 -0
  106. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +19 -0
  107. package/lib/esm/entity/paymentAccount/paymentAccountSelector.js +8 -0
  108. package/lib/esm/entity/snackbar/snackbarTypes.js +7 -0
  109. package/lib/esm/entity/task/taskPayload.js +2 -0
  110. package/lib/esm/entity/tenant/clearAllEpic.js +14 -0
  111. package/lib/esm/entity/tenant/epic/initEmailConnectOAuthEpic.js +50 -0
  112. package/lib/esm/entity/tenant/tenantReducer.js +192 -9
  113. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +17 -7
  114. package/lib/esm/entity/transaction/stateTypes/transactionLine.js +1 -0
  115. package/lib/esm/epic.js +37 -2
  116. package/lib/esm/index.js +77 -34
  117. package/lib/esm/reducer.js +21 -0
  118. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +6 -3
  119. package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  120. package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +2 -1
  121. package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  122. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewReducer.js +39 -11
  123. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +14 -4
  124. package/lib/esm/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +38 -0
  125. package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  126. package/lib/esm/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +16 -0
  127. package/lib/esm/view/companyView/companyViewReducer.js +46 -1
  128. package/lib/esm/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +25 -0
  129. package/lib/esm/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.js +98 -0
  130. package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  131. package/lib/esm/view/companyView/types/companyPassport/companyPassportViewState.js +4 -0
  132. package/lib/esm/view/createTransferEntry/createTransferEntryReducer.js +82 -0
  133. package/lib/esm/view/createTransferEntry/createTransferEntrySelector.js +64 -0
  134. package/lib/esm/view/createTransferEntry/createTransferEntryState.js +17 -0
  135. package/lib/esm/view/createTransferEntry/epics/createTransferEntryEpic.js +136 -0
  136. package/lib/esm/view/createTransferEntry/epics/fetchTransferAccountsEpic.js +36 -0
  137. package/lib/esm/view/dashboard/dashboardReducer.js +11 -1
  138. package/lib/esm/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +3 -3
  139. package/lib/esm/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +3 -4
  140. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +13 -9
  141. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/backgroundRefetchReviewTabEpic.js +3 -16
  142. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +9 -16
  143. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +2 -2
  144. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/markTransactionAsNotMiscategorizedEpic.js +2 -13
  145. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/saveTransactionCategorizationEpic.js +2 -6
  146. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +2 -2
  147. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +2 -6
  148. package/lib/esm/view/expenseAutomationView/expenseAutomationViewReducer.js +3 -20
  149. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +21 -49
  150. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +14 -7
  151. package/lib/esm/view/expenseAutomationView/transactionFilterHelpers.js +106 -18
  152. package/lib/esm/view/fileView/epic/deleteFileEpic.js +2 -2
  153. package/lib/esm/view/fileView/epic/deleteFileListEpic.js +2 -2
  154. package/lib/esm/view/fileView/epic/updateFileNameEpic.js +2 -2
  155. package/lib/esm/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +40 -0
  156. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +29 -0
  157. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +40 -0
  158. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +218 -50
  159. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +12 -2
  160. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewState.js +12 -0
  161. package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +22 -2
  162. package/lib/esm/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  163. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +109 -12
  164. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  165. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  166. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +11 -7
  167. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +54 -0
  168. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +13 -4
  169. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +140 -16
  170. package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  171. package/lib/esm/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  172. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +29 -0
  173. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +78 -0
  174. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +47 -0
  175. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +47 -0
  176. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +32 -0
  177. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +32 -0
  178. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +54 -0
  179. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +92 -0
  180. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +224 -0
  181. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +10 -0
  182. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +23 -0
  183. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +36 -0
  184. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +27 -0
  185. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +28 -0
  186. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +52 -0
  187. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +22 -0
  188. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +1 -0
  189. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +36 -0
  190. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +39 -0
  191. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +34 -0
  192. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +71 -0
  193. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +21 -0
  194. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +1 -0
  195. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +38 -0
  196. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +289 -0
  197. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +109 -0
  198. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +44 -0
  199. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +111 -0
  200. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +25 -0
  201. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +363 -0
  202. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +36 -0
  203. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +19 -0
  204. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +6 -0
  205. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +119 -0
  206. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +154 -0
  207. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +22 -0
  208. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +1 -0
  209. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +49 -0
  210. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +140 -0
  211. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +20 -0
  212. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +100 -0
  213. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +96 -0
  214. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +59 -0
  215. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +24 -0
  216. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +25 -0
  217. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +1 -0
  218. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +34 -0
  219. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +57 -0
  220. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +35 -0
  221. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
  222. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +42 -4
  223. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +35 -0
  224. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +62 -0
  225. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +44 -0
  226. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +58 -0
  227. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +77 -0
  228. package/lib/esm/view/spendManagement/commonSetup/kycKybAutofillActions.js +14 -0
  229. package/lib/esm/view/spendManagement/commonSetup/kycKybParseMapper.js +207 -0
  230. package/lib/esm/view/spendManagement/commonSetup/setupViewReducer.js +106 -52
  231. package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  232. package/lib/esm/view/spendManagement/commonSetup/types/kycKybAutofill.js +41 -0
  233. package/lib/esm/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  234. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  235. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  236. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +11 -7
  237. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +61 -0
  238. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +13 -4
  239. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +80 -11
  240. package/lib/esm/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryPromoIntroClosedByOutsideClickEpic.js +18 -0
  241. package/lib/esm/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryPromoRemindMeLaterClickedEpic.js +18 -0
  242. package/lib/esm/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryVideoViewedEpic.js +1 -1
  243. package/lib/esm/view/spendManagement/treasury/treasurySetUp/treasurySetupViewReducer.js +45 -1
  244. package/lib/esm/view/transactionDetail/journalEntryLinesViewModel.js +149 -0
  245. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +6 -1
  246. package/lib/index.d.ts +94 -40
  247. package/lib/index.js +281 -37
  248. package/lib/reducer.d.ts +21 -0
  249. package/lib/reducer.js +21 -0
  250. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +11 -2
  251. package/lib/view/aiCfoView/aiCfoViewReducer.js +6 -3
  252. package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  253. package/lib/view/aiCfoView/epics/createSessionEpic.js +2 -1
  254. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +8 -1
  255. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  256. package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
  257. package/lib/view/billPayCard/billPayCardSelector.d.ts +1 -1
  258. package/lib/view/cardBalance/cardBalanceSelector.d.ts +1 -1
  259. package/lib/view/cashBalance/cashBalanceSelector.d.ts +1 -1
  260. package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +1 -1
  261. package/lib/view/cashPosition/cashPositionSelector.d.ts +1 -1
  262. package/lib/view/companyTaskManagerView/companyTaskManagerViewPayload.d.ts +19 -11
  263. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +11 -5
  264. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.js +40 -12
  265. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +2 -0
  266. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +13 -3
  267. package/lib/view/companyTaskManagerView/companyTaskManagerViewState.d.ts +11 -3
  268. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.d.ts +10 -0
  269. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +42 -0
  270. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.d.ts +1 -3
  271. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  272. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.d.ts +6 -0
  273. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +20 -0
  274. package/lib/view/companyView/companyViewReducer.d.ts +12 -1
  275. package/lib/view/companyView/companyViewReducer.js +48 -3
  276. package/lib/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.d.ts +9 -0
  277. package/lib/view/companyView/epic/companyPassport/dismissCapitalizationOnboardingEpic.js +29 -0
  278. package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.d.ts +10 -0
  279. package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.js +102 -0
  280. package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  281. package/lib/view/companyView/types/cockpitTypes.d.ts +3 -2
  282. package/lib/view/companyView/types/companyPassport/companyPassportViewState.d.ts +1 -0
  283. package/lib/view/companyView/types/companyPassport/companyPassportViewState.js +4 -0
  284. package/lib/view/createTransferEntry/createTransferEntryReducer.d.ts +32 -0
  285. package/lib/view/createTransferEntry/createTransferEntryReducer.js +86 -0
  286. package/lib/view/createTransferEntry/createTransferEntrySelector.d.ts +39 -0
  287. package/lib/view/createTransferEntry/createTransferEntrySelector.js +69 -0
  288. package/lib/view/createTransferEntry/createTransferEntryState.d.ts +30 -0
  289. package/lib/view/createTransferEntry/createTransferEntryState.js +20 -0
  290. package/lib/view/createTransferEntry/epics/createTransferEntryEpic.d.ts +11 -0
  291. package/lib/view/createTransferEntry/epics/createTransferEntryEpic.js +140 -0
  292. package/lib/view/createTransferEntry/epics/fetchTransferAccountsEpic.d.ts +14 -0
  293. package/lib/view/createTransferEntry/epics/fetchTransferAccountsEpic.js +40 -0
  294. package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
  295. package/lib/view/dashboard/dashboardReducer.js +11 -1
  296. package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +3 -3
  297. package/lib/view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic.js +3 -4
  298. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.d.ts +6 -0
  299. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +14 -10
  300. package/lib/view/expenseAutomationView/epics/transactionCategorization/backgroundRefetchReviewTabEpic.js +3 -16
  301. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationEpic.js +9 -16
  302. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +2 -2
  303. package/lib/view/expenseAutomationView/epics/transactionCategorization/markTransactionAsNotMiscategorizedEpic.js +2 -13
  304. package/lib/view/expenseAutomationView/epics/transactionCategorization/saveTransactionCategorizationEpic.js +2 -6
  305. package/lib/view/expenseAutomationView/epics/transactionCategorization/triggerReviewTabRefetchEpic.js +2 -2
  306. package/lib/view/expenseAutomationView/epics/transactionCategorization/updateTransactionCategorizationEpic.js +2 -6
  307. package/lib/view/expenseAutomationView/expenseAutomationViewReducer.d.ts +2 -6
  308. package/lib/view/expenseAutomationView/expenseAutomationViewReducer.js +3 -20
  309. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  310. package/lib/view/expenseAutomationView/payload/transactionCategorizationPayload.d.ts +20 -9
  311. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +11 -18
  312. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +22 -50
  313. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +8 -6
  314. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +2 -1
  315. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +16 -8
  316. package/lib/view/expenseAutomationView/transactionFilterHelpers.js +106 -18
  317. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
  318. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +2 -3
  319. package/lib/view/fileView/epic/deleteFileEpic.js +1 -1
  320. package/lib/view/fileView/epic/deleteFileListEpic.js +1 -1
  321. package/lib/view/fileView/epic/updateFileNameEpic.js +1 -1
  322. package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
  323. package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
  324. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.d.ts +7 -0
  325. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +44 -0
  326. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.d.ts +8 -0
  327. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +33 -0
  328. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.d.ts +9 -0
  329. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +44 -0
  330. package/lib/view/onboardingView/customerView/onboardingCustomerViewPayload.d.ts +3 -0
  331. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +41 -4
  332. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +220 -51
  333. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.d.ts +5 -1
  334. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +15 -2
  335. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +40 -0
  336. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.js +13 -1
  337. package/lib/view/people/peopleTypes.d.ts +1 -1
  338. package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +1 -1
  339. package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
  340. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  341. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.d.ts +8 -1
  342. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +21 -1
  343. package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +22 -0
  344. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.d.ts +7 -0
  345. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  346. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.d.ts +14 -3
  347. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +110 -13
  348. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewState.d.ts +16 -0
  349. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  350. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  351. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +10 -6
  352. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.d.ts +23 -0
  353. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +58 -0
  354. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +12 -3
  355. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +59 -1
  356. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +142 -17
  357. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +31 -5
  358. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +8 -1
  359. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  360. package/lib/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  361. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.d.ts +47 -0
  362. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +34 -0
  363. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.d.ts +23 -0
  364. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +82 -0
  365. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.d.ts +40 -0
  366. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +51 -0
  367. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.d.ts +37 -0
  368. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +53 -0
  369. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.d.ts +14 -0
  370. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +36 -0
  371. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.d.ts +7 -0
  372. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +36 -0
  373. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +56 -0
  374. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +60 -0
  375. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +22 -0
  376. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +96 -0
  377. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +59 -0
  378. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +229 -0
  379. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +122 -0
  380. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +13 -0
  381. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +7 -0
  382. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +27 -0
  383. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +9 -0
  384. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +40 -0
  385. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.d.ts +7 -0
  386. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +31 -0
  387. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.d.ts +15 -0
  388. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +32 -0
  389. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +14 -0
  390. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +56 -0
  391. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +15 -0
  392. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +28 -0
  393. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +8 -0
  394. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +2 -0
  395. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +8 -0
  396. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +40 -0
  397. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +8 -0
  398. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +43 -0
  399. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +8 -0
  400. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +38 -0
  401. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +15 -0
  402. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +75 -0
  403. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +15 -0
  404. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +27 -0
  405. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +7 -0
  406. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +2 -0
  407. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +8 -0
  408. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +42 -0
  409. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +8 -0
  410. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +294 -0
  411. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +8 -0
  412. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +113 -0
  413. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +9 -0
  414. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +48 -0
  415. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +8 -0
  416. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +115 -0
  417. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +13 -0
  418. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +29 -0
  419. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +14 -0
  420. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +369 -0
  421. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +6 -0
  422. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +40 -0
  423. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +7 -0
  424. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +26 -0
  425. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +116 -0
  426. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +10 -0
  427. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +33 -0
  428. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +126 -0
  429. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +52 -0
  430. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +158 -0
  431. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +11 -0
  432. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +31 -0
  433. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +12 -0
  434. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +2 -0
  435. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +9 -0
  436. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +53 -0
  437. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +10 -0
  438. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +144 -0
  439. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +7 -0
  440. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +24 -0
  441. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +11 -0
  442. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +104 -0
  443. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +22 -0
  444. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +100 -0
  445. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +8 -0
  446. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +63 -0
  447. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +3 -0
  448. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +28 -0
  449. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  450. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +14 -0
  451. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +27 -1
  452. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +34 -0
  453. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +2 -0
  454. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +7 -0
  455. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +38 -0
  456. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +12 -0
  457. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +61 -0
  458. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +9 -0
  459. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +39 -0
  460. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
  461. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
  462. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +12 -2
  463. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +43 -5
  464. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +7 -0
  465. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +42 -1
  466. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +5 -0
  467. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +11 -0
  468. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +66 -0
  469. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +3 -0
  470. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +48 -0
  471. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.d.ts +28 -0
  472. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +62 -0
  473. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.d.ts +9 -0
  474. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +81 -0
  475. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.d.ts +24 -0
  476. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.js +17 -0
  477. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.d.ts +29 -0
  478. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.js +215 -0
  479. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +28 -2
  480. package/lib/view/spendManagement/commonSetup/setupViewReducer.js +107 -53
  481. package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +7 -2
  482. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  483. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +19 -0
  484. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.d.ts +154 -0
  485. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.js +46 -0
  486. package/lib/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  487. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  488. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  489. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +10 -6
  490. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.d.ts +14 -0
  491. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +65 -0
  492. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +12 -3
  493. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.d.ts +14 -3
  494. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +81 -12
  495. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts +12 -0
  496. package/lib/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryPromoIntroClosedByOutsideClickEpic.d.ts +8 -0
  497. package/lib/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryPromoIntroClosedByOutsideClickEpic.js +22 -0
  498. package/lib/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryPromoRemindMeLaterClickedEpic.d.ts +8 -0
  499. package/lib/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryPromoRemindMeLaterClickedEpic.js +22 -0
  500. package/lib/view/spendManagement/treasury/treasurySetUp/epic/updateTreasuryVideoViewedEpic.js +1 -1
  501. package/lib/view/spendManagement/treasury/treasurySetUp/treasurySetupViewReducer.d.ts +1 -1
  502. package/lib/view/spendManagement/treasury/treasurySetUp/treasurySetupViewReducer.js +46 -2
  503. package/lib/view/spendManagement/treasury/treasurySetUp/treasurySetupViewState.d.ts +2 -0
  504. package/lib/view/taskManager/taskListView/taskList.d.ts +3 -3
  505. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
  506. package/lib/view/tasksCard/tasksCardSelector.d.ts +1 -1
  507. package/lib/view/topEx/topExSelector.d.ts +1 -1
  508. package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +102 -0
  509. package/lib/view/transactionDetail/journalEntryLinesViewModel.js +160 -0
  510. package/lib/view/transactionDetail/transactionDetailPayload.d.ts +1 -1
  511. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +6 -1
  512. package/lib/view/transactionDetail/transactionDetailSelector.js +6 -1
  513. package/lib/zeniAPI.d.ts +1 -0
  514. package/package.json +1 -1
@@ -328,7 +328,11 @@ const toCompanyOnboardingInfo = (payload) => ({
328
328
  onboardingUserIds: payload.onboarding_user_ids,
329
329
  isSubsidiary: payload.is_subsidiary,
330
330
  parentCompanyId: payload.parent_company_id != null ? payload.parent_company_id : undefined,
331
+ isOnboardingAiFinanceTeamAcknowledged: payload.is_onboarding_ai_finance_team_acknowledged ?? false,
332
+ isOnboardingAiActivationViewed: payload.is_onboarding_ai_activation_viewed ?? false,
331
333
  isOnboardingCompanyDetailsCompleted: payload.is_onboarding_company_details_step_completed,
334
+ onboardingAiFinanceTeamAcknowledgedBy: payload.onboarding_ai_finance_team_acknowledged_by ?? [],
335
+ onboardingAiActivationViewedBy: payload.onboarding_ai_activation_viewed_by ?? [],
332
336
  onboardingInfo: toOnboardingInfo(payload.onboarding_info),
333
337
  isOnboardingCompleted: payload.is_onboarding_completed,
334
338
  subscriptionBillingAddressId: payload.subscription_billing_address_id,
@@ -145,42 +145,61 @@ function toJEScheduleAISummaries(payload) {
145
145
  result.debitAccount = {
146
146
  confidence: payload.debit_account.confidence,
147
147
  reasoning: payload.debit_account.reasoning,
148
+ cot: Array.isArray(payload.debit_account.cot)
149
+ ? payload.debit_account.cot
150
+ : undefined,
148
151
  };
149
152
  }
150
153
  if (payload.credit_account != null) {
151
154
  result.creditAccount = {
152
155
  confidence: payload.credit_account.confidence,
153
156
  reasoning: payload.credit_account.reasoning,
157
+ cot: Array.isArray(payload.credit_account.cot)
158
+ ? payload.credit_account.cot
159
+ : undefined,
154
160
  };
155
161
  }
156
162
  if (payload.debit_accounting_class != null) {
157
163
  result.debitClass = {
158
164
  confidence: payload.debit_accounting_class.confidence,
159
165
  reasoning: payload.debit_accounting_class.reasoning,
166
+ cot: Array.isArray(payload.debit_accounting_class.cot)
167
+ ? payload.debit_accounting_class.cot
168
+ : undefined,
160
169
  };
161
170
  }
162
171
  if (payload.credit_accounting_class != null) {
163
172
  result.creditClass = {
164
173
  confidence: payload.credit_accounting_class.confidence,
165
174
  reasoning: payload.credit_accounting_class.reasoning,
175
+ cot: Array.isArray(payload.credit_accounting_class.cot)
176
+ ? payload.credit_accounting_class.cot
177
+ : undefined,
166
178
  };
167
179
  }
168
180
  if (payload.period != null) {
169
181
  result.period = {
170
182
  confidence: payload.period.confidence,
171
183
  reasoning: payload.period.reasoning,
184
+ cot: Array.isArray(payload.period.cot) ? payload.period.cot : undefined,
172
185
  };
173
186
  }
174
187
  if (payload.posting_date != null) {
175
188
  result.postingDate = {
176
189
  confidence: payload.posting_date.confidence,
177
190
  reasoning: payload.posting_date.reasoning,
191
+ cot: Array.isArray(payload.posting_date.cot)
192
+ ? payload.posting_date.cot
193
+ : undefined,
178
194
  };
179
195
  }
180
196
  if (payload.schedule_type != null) {
181
197
  result.scheduleType = {
182
198
  confidence: payload.schedule_type.confidence,
183
199
  reasoning: payload.schedule_type.reasoning,
200
+ cot: Array.isArray(payload.schedule_type.cot)
201
+ ? payload.schedule_type.cot
202
+ : undefined,
184
203
  };
185
204
  }
186
205
  return Object.keys(result).length > 0 ? result : undefined;
@@ -19,3 +19,11 @@ export function getPaymentAccountsByBankAccountIds(paymentAccountState, bankAcco
19
19
  .filter((value) => value != null);
20
20
  return paymentAccounts;
21
21
  }
22
+ export function getPlaidPaymentAccounts(paymentAccountState) {
23
+ if (paymentAccountState?.paymentAccountByID == null) {
24
+ return [];
25
+ }
26
+ return values(paymentAccountState.paymentAccountByID)
27
+ .filter((account) => account != null)
28
+ .filter((account) => account.provider === 'plaid');
29
+ }
@@ -32,6 +32,7 @@ const ALL_SNACKBAR_MESSAGE_SECTIONS = [
32
32
  'reimbursement_approval_update',
33
33
  'reimbursement_duplicate_approval_update',
34
34
  'reimbursement_approval_delete',
35
+ 'reimbursement_approval_reorder',
35
36
  'reimbursement_create_mileage',
36
37
  'reimbursement_update_mileage',
37
38
  'reimbursement_accept_term',
@@ -45,6 +46,7 @@ const ALL_SNACKBAR_MESSAGE_SECTIONS = [
45
46
  'bill_pay_approval_update',
46
47
  'bill_pay_duplicate_approval_update',
47
48
  'bill_pay_approval_delete',
49
+ 'bill_pay_approval_reorder',
48
50
  'bill_pay_updated',
49
51
  'bill_pay_deleted',
50
52
  'bill_pay_cancelled_deleted',
@@ -95,6 +97,9 @@ const ALL_SNACKBAR_MESSAGE_SECTIONS = [
95
97
  'charge_card_receipt_upload',
96
98
  'charge_card_resend_invite',
97
99
  'charge_card_revoke_invite',
100
+ 'card_policy_created',
101
+ 'card_policy_updated',
102
+ 'card_policy_deleted',
98
103
  'charge_card_update_limit',
99
104
  'charge_cards_update_limit',
100
105
  'close_charge_card',
@@ -179,6 +184,7 @@ const ALL_SNACKBAR_MESSAGE_SECTIONS = [
179
184
  'treasury_update_portfolio_allocation',
180
185
  'send_email_magic_link_to_user',
181
186
  'complete_profile_done',
187
+ 'create_transfer_entry',
182
188
  'reports_resync',
183
189
  'invalid_phone_number',
184
190
  'transactions_categorized_updated_failed',
@@ -204,6 +210,7 @@ const ALL_SNACKBAR_MESSAGE_SECTIONS = [
204
210
  'transactionCategorized_transactionUpdated_transactionsFailed',
205
211
  'transactionCategorized_transactionUpdated_transactionFailed',
206
212
  'accounting_classes_enabled_update',
213
+ 'capitalization_threshold_update',
207
214
  'account_excluded_from_reconciliation',
208
215
  'account_included_in_reconciliation',
209
216
  'ai_accountant_trigger_job',
@@ -41,6 +41,8 @@ export const mapTaskPayloadToTask = (payload) => ({
41
41
  dueDate: payload.due_date != null ? date(payload.due_date) : undefined,
42
42
  updateTime: payload.update_time != null ? date(payload.update_time) : undefined,
43
43
  companyId: payload.company_id,
44
+ companyName: payload.company_name,
45
+ parentTaskId: payload.parent_task_id ?? undefined,
44
46
  recurringSourceTaskId: payload.recurring_source_task_id != null
45
47
  ? payload.recurring_source_task_id
46
48
  : undefined,
@@ -40,6 +40,7 @@ import { clearCompanyHealthMetricView } from '../../view/companyHealthMetricView
40
40
  import { clearCompanyMonthEndReportView } from '../../view/companyMonthEndReportView/companyMonthEndReportViewReducer';
41
41
  import { clearCompanyTaskManagerView } from '../../view/companyTaskManagerView/companyTaskManagerViewReducer';
42
42
  import { clearCompanyView } from '../../view/companyView/companyViewReducer';
43
+ import { clearCreateTransferEntry } from '../../view/createTransferEntry/createTransferEntryReducer';
43
44
  import { clearCreditAgentView } from '../../view/creditAgentView/creditAgentViewReducer';
44
45
  import { clearDashboard } from '../../view/dashboard/dashboardReducer';
45
46
  import { clearDashboardLayout } from '../../view/dashboardLayout/dashboardLayoutReducer';
@@ -96,6 +97,11 @@ import { clearInternationalWire } from '../../view/spendManagement/billPay/inter
96
97
  import { clearInternationalVerificationView } from '../../view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationReducer';
97
98
  import { clearPreviousBills } from '../../view/spendManagement/billPay/previousBills/previousBillsReducer';
98
99
  import { clearWiseRedirectStatus } from '../../view/spendManagement/billPay/wiseRedirectView/wiseRedirectReducer';
100
+ import { clearAutoSweepFlow } from '../../view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer';
101
+ import { clearCashManagementOverview } from '../../view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer';
102
+ import { clearCardPolicyDetail } from '../../view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer';
103
+ import { clearCardPolicyList } from '../../view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer';
104
+ import { clearCreateCardPolicy } from '../../view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer';
99
105
  import { clearCardUserOnboarding } from '../../view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingReducer';
100
106
  import { clearCashbackDetail } from '../../view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer';
101
107
  import { clearChargeCardConfig } from '../../view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer';
@@ -167,6 +173,7 @@ import { clearAllBillTransactions } from '../billPay/billTransaction/billTransac
167
173
  import { clearContacts } from '../billPay/contact/contactReducer';
168
174
  import { clearAllRecurringBills } from '../billPay/recurringBills/recurringBillsReducer';
169
175
  import { clearAllCardPayments } from '../cardPayment/cardPaymentReducer';
176
+ import { clearCardPolicy } from '../cardPolicy/cardPolicyReducer';
170
177
  import { clearAllChargeCards } from '../chargeCard/chargeCardReducer';
171
178
  import { clearAllChargeCardRepayments } from '../chargeCardRepayment/chargeCardRepaymentReducer';
172
179
  import { clearAllChargeCardTransactions } from '../chargeCardTransaction/chargeCardTransactionReducer';
@@ -230,6 +237,7 @@ export const clearAllEpic = (actions$) => actions$.pipe(filter(clearAll.match),
230
237
  clearArAging(),
231
238
  clearArAgingDetail(),
232
239
  clearAuthenticationView(),
240
+ clearAutoSweepFlow(),
233
241
  clearAutoTransferRules(),
234
242
  clearBalanceSheet(),
235
243
  clearBankAccountView(),
@@ -243,11 +251,14 @@ export const clearAllEpic = (actions$) => actions$.pipe(filter(clearAll.match),
243
251
  clearBillPaySetupView(),
244
252
  clearCardBalance(),
245
253
  clearCardPaymentView(),
254
+ clearCardPolicyDetail(),
255
+ clearCardPolicyList(),
246
256
  clearCardUserOnboarding(),
247
257
  clearCashbackDetail(),
248
258
  clearCashBalance(),
249
259
  clearCashFlow(),
250
260
  clearCashInCashOut(),
261
+ clearCashManagementOverview(),
251
262
  clearCashPosition(),
252
263
  clearChargeCardConfig(),
253
264
  clearChargeCardDetail(),
@@ -262,6 +273,8 @@ export const clearAllEpic = (actions$) => actions$.pipe(filter(clearAll.match),
262
273
  clearCompanyMonthEndReportView(),
263
274
  clearCompanyTaskManagerView(),
264
275
  clearCompanyView(),
276
+ clearCreateCardPolicy(),
277
+ clearCreateTransferEntry(),
265
278
  clearAllCreditAgent(),
266
279
  clearCreditAgentView(),
267
280
  clearDashboard(),
@@ -422,6 +435,7 @@ export const clearAllEpic = (actions$) => actions$.pipe(filter(clearAll.match),
422
435
  clearAllVendorExpenseTrends(),
423
436
  clearAllVendors(),
424
437
  clearCannedResponses(),
438
+ clearCardPolicy(),
425
439
  clearClassList(),
426
440
  clearContacts(),
427
441
  clearCountryList(),
@@ -0,0 +1,50 @@
1
+ import { from } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
4
+ import { initEmailConnectOAuth, initEmailConnectOAuthFailure, initEmailConnectOAuthSuccess, } from '../tenantReducer';
5
+ const defaultNavigate = (url) => {
6
+ // Production path: full-page redirect. The user's session continues on the
7
+ // provider's consent screen and lands back on this app via auth's HTML
8
+ // callback page (which itself redirects to redirect_after_url with the
9
+ // result encoded as a query param).
10
+ if (typeof window !== 'undefined') {
11
+ window.location.href = url;
12
+ }
13
+ };
14
+ // Backs the new POST /1.0/connectors/email/<provider>/init endpoint on the
15
+ // auth service. The endpoint creates a CSRF state token in the auth NDB
16
+ // store and returns the provider's authorization_url; this epic then drives
17
+ // a full-page redirect so the user lands on Google's / Microsoft's consent
18
+ // screen. After consent the user lands on auth's callback, which writes the
19
+ // resulting tokens through to tenant and redirects the browser back to
20
+ // ``redirectAfterUrl`` with ``?email_connect_result=<json>`` for the
21
+ // integrations page to consume on mount.
22
+ export const initEmailConnectOAuthEpic = (actions$, _state$, zeniAPI,
23
+ // Test seam: callers can override to assert intended URL without actually
24
+ // navigating. Default is full-page redirect via window.location.
25
+ navigate = defaultNavigate) => actions$.pipe(filter(initEmailConnectOAuth.match), switchMap((action) => zeniAPI
26
+ .postAndGetJSON(`${zeniAPI.apiEndPoints.authMicroServiceBaseUrl}/1.0/connectors/email/${action.payload.provider}/init`, { redirect_after_url: action.payload.redirectAfterUrl }, { 'zeni-tenant-id': action.payload.tenantId })
27
+ .pipe(mergeMap((response) => {
28
+ if (isSuccessResponse(response) && response.data != null) {
29
+ // Fire-and-forget side effect — once the browser navigates,
30
+ // any further state we'd dispatch here is irrelevant. We still
31
+ // emit the success action so subscribers (tests, analytics)
32
+ // can observe the URL the epic decided to navigate to.
33
+ navigate(response.data.authorization_url);
34
+ return from([
35
+ initEmailConnectOAuthSuccess(action.payload.tenantId, action.payload.provider, response.data.authorization_url),
36
+ ]);
37
+ }
38
+ const status = response.status ??
39
+ createZeniAPIStatus(`Failed to start ${action.payload.provider} connection. Please try again.`);
40
+ return from([
41
+ initEmailConnectOAuthFailure(action.payload.tenantId, action.payload.provider, status),
42
+ ]);
43
+ }), catchError((error) => {
44
+ const message = error instanceof Error
45
+ ? error.message
46
+ : `Unexpected error starting ${action.payload.provider} connection.`;
47
+ return from([
48
+ initEmailConnectOAuthFailure(action.payload.tenantId, action.payload.provider, createZeniAPIStatus(message)),
49
+ ]);
50
+ }))));
@@ -9,7 +9,7 @@ import { toNumberOfMonthForAverage, toTimeSpanIdForAverage, } from '../../view/n
9
9
  import { date, dateNow } from '../../zeniDayJS';
10
10
  import { toSubscriptionSummary } from '../subscription/subscriptionSummary/subscriptionSummaryReducer';
11
11
  import { getInvitationStatus, getUserRoles, toMasterTOSInfo, toUserReimbursementInfo, } from '../userRole/userRolePayload';
12
- const EXTERNAL_INTEGRATION_TYPES = ['revenue', 'payments'];
12
+ const EXTERNAL_INTEGRATION_TYPES = ['revenue', 'payments', 'email'];
13
13
  export const toExternalIntegrationType = (v) => stringToUnion(v, EXTERNAL_INTEGRATION_TYPES);
14
14
  const EXTERNAL_SUPPORTED_TOOLS = [
15
15
  'chargebee',
@@ -17,6 +17,8 @@ const EXTERNAL_SUPPORTED_TOOLS = [
17
17
  'stripe',
18
18
  'mercury',
19
19
  'paypal',
20
+ 'gmail',
21
+ 'outlook',
20
22
  ];
21
23
  export const toExternalSupportedTool = (v) => stringToUnion(v, EXTERNAL_SUPPORTED_TOOLS);
22
24
  export const initialState = {
@@ -78,9 +80,20 @@ const tenant = createSlice({
78
80
  (newTenant != null && action.payload.tenantUpdated)) {
79
81
  // Note: If tenant data already exists, save it if the new data is the latest one.
80
82
  // we dont want to overwrite the user related data since that has not come in the output
81
- draft.tenantsById[tenantPayload.tenant_id] = {
83
+ const merged = applyTreasuryPromoUserFieldsFromPayload(tenantInStore, {
82
84
  ...newTenant,
83
85
  rewardsLastViewedTime: tenantInStore?.rewardsLastViewedTime,
86
+ }, action.payload.userTenantPayload ?? {
87
+ rewards_feature_last_viewed_time: null,
88
+ });
89
+ draft.tenantsById[tenantPayload.tenant_id] = {
90
+ ...merged,
91
+ capitalizableAccountOverrides: merged.capitalizableAccountOverrides ??
92
+ tenantInStore?.capitalizableAccountOverrides ??
93
+ null,
94
+ capitalizationOnboardingDismissedAccounts: merged.capitalizationOnboardingDismissedAccounts ??
95
+ tenantInStore?.capitalizationOnboardingDismissedAccounts ??
96
+ null,
84
97
  };
85
98
  }
86
99
  });
@@ -108,12 +121,16 @@ const tenant = createSlice({
108
121
  draft.fetchState = 'Completed';
109
122
  draft.error = undefined;
110
123
  const [tenantsbyId, tenantIds, firstUser] = mapTenantsPayloadToState(tenants, user);
111
- // Preserve existing isTreasuryVideoViewed values
112
124
  tenantIds.forEach((tenantId) => {
113
125
  const existingTenant = draft.tenantsById[tenantId];
126
+ tenantsbyId[tenantId] = applyTreasuryPromoUserFieldsFromPayload(existingTenant, tenantsbyId[tenantId], user);
114
127
  if (existingTenant != null) {
115
- tenantsbyId[tenantId].isTreasuryVideoViewed =
116
- existingTenant.isTreasuryVideoViewed;
128
+ tenantsbyId[tenantId].capitalizableAccountOverrides =
129
+ tenantsbyId[tenantId].capitalizableAccountOverrides ??
130
+ existingTenant.capitalizableAccountOverrides;
131
+ tenantsbyId[tenantId].capitalizationOnboardingDismissedAccounts =
132
+ tenantsbyId[tenantId].capitalizationOnboardingDismissedAccounts ??
133
+ existingTenant.capitalizationOnboardingDismissedAccounts;
117
134
  }
118
135
  });
119
136
  draft.tenantsById = tenantsbyId;
@@ -132,6 +149,17 @@ const tenant = createSlice({
132
149
  draft.activeTenantFetchState.fetchState = 'Completed';
133
150
  draft.activeTenantFetchState.error = undefined;
134
151
  const [tenantsbyId, tenantIds, firstUser] = mapTenantsPayloadToState(tenants, user);
152
+ tenantIds.forEach((tenantId) => {
153
+ const existingTenant = draft.tenantsById[tenantId];
154
+ if (existingTenant != null) {
155
+ tenantsbyId[tenantId].capitalizableAccountOverrides =
156
+ tenantsbyId[tenantId].capitalizableAccountOverrides ??
157
+ existingTenant.capitalizableAccountOverrides;
158
+ tenantsbyId[tenantId].capitalizationOnboardingDismissedAccounts =
159
+ tenantsbyId[tenantId].capitalizationOnboardingDismissedAccounts ??
160
+ existingTenant.capitalizationOnboardingDismissedAccounts;
161
+ }
162
+ });
135
163
  draft.tenantsById = { ...draft.tenantsById, ...tenantsbyId };
136
164
  draft.tenantIds = [...new Set([...draft.tenantIds, ...tenantIds])];
137
165
  draft.loggedInUser = assignWith(draft.loggedInUser ?? {}, firstUser, (objValue, srcValue) => srcValue ?? objValue);
@@ -142,6 +170,40 @@ const tenant = createSlice({
142
170
  draft.tenantsById[tenantId].isAccountingClassesEnabled = enabled;
143
171
  }
144
172
  },
173
+ // Optimistic per-key merge: assumes the backend PATCH merges
174
+ // capitalizable_account_overrides by key rather than replacing the whole field.
175
+ updateTenantCapitalizationAccountOverride(draft, action) {
176
+ const { tenantId, accountId, threshold, allOverrides } = action.payload;
177
+ if (draft.tenantsById[tenantId] != null) {
178
+ if (allOverrides !== undefined) {
179
+ draft.tenantsById[tenantId].capitalizableAccountOverrides =
180
+ allOverrides != null && Object.keys(allOverrides).length > 0
181
+ ? allOverrides
182
+ : null;
183
+ }
184
+ else {
185
+ const currentOverrides = draft.tenantsById[tenantId].capitalizableAccountOverrides ?? {};
186
+ if (threshold === null) {
187
+ delete currentOverrides[accountId];
188
+ }
189
+ else {
190
+ currentOverrides[accountId] = threshold;
191
+ }
192
+ draft.tenantsById[tenantId].capitalizableAccountOverrides =
193
+ Object.keys(currentOverrides).length > 0 ? currentOverrides : null;
194
+ }
195
+ }
196
+ },
197
+ updateTenantCapitalizationOnboardingDismissed(draft, action) {
198
+ const { tenantId, accountId } = action.payload;
199
+ if (draft.tenantsById[tenantId] != null) {
200
+ const existing = draft.tenantsById[tenantId]
201
+ .capitalizationOnboardingDismissedAccounts ?? {};
202
+ existing[accountId] = true;
203
+ draft.tenantsById[tenantId].capitalizationOnboardingDismissedAccounts =
204
+ existing;
205
+ }
206
+ },
145
207
  updateTenantMasterTOSInfo(draft, action) {
146
208
  const { tenant_id, user_role_id, master_tos_info } = action.payload;
147
209
  if (draft.tenantsById[tenant_id] != null &&
@@ -342,6 +404,7 @@ const tenant = createSlice({
342
404
  draft.externalConnectionsByTenant[action.payload.tenantId] = {
343
405
  fetchState: 'In-Progress',
344
406
  accounting: [],
407
+ email: [],
345
408
  payments: [],
346
409
  revenue: [],
347
410
  saveConnectionState: 'Not-Started',
@@ -359,10 +422,11 @@ const tenant = createSlice({
359
422
  return { payload: { tenantId, externalConnections } };
360
423
  },
361
424
  reducer(draft, action) {
362
- const { accounting, payments, revenue } = mapConnectionsPayloadToState(action.payload.externalConnections);
425
+ const { accounting, email, payments, revenue } = mapConnectionsPayloadToState(action.payload.externalConnections);
363
426
  draft.externalConnectionsByTenant[action.payload.tenantId] = {
364
427
  fetchState: 'Completed',
365
428
  accounting,
429
+ email,
366
430
  payments,
367
431
  revenue,
368
432
  saveConnectionState: 'Completed',
@@ -384,6 +448,7 @@ const tenant = createSlice({
384
448
  draft.externalConnectionsByTenant[tenantId] = {
385
449
  fetchState: 'Error',
386
450
  accounting: [],
451
+ email: [],
387
452
  payments: [],
388
453
  revenue: [],
389
454
  saveConnectionState: 'Error',
@@ -597,6 +662,56 @@ const tenant = createSlice({
597
662
  }
598
663
  },
599
664
  },
665
+ // Email-connect (Gmail / Outlook) OAuth init. Distinct from the other
666
+ // connector saves because the FE never sees the access_token — the
667
+ // user-facing redirect lands on the auth service's callback, auth
668
+ // exchanges code → tokens and posts them to tenant, then redirects the
669
+ // browser back to ``redirectAfterUrl`` with ``?email_connect_result=...``.
670
+ // The success action carries the provider's authorization_url so the
671
+ // epic can drive a full-page redirect, mirroring the legacy HubSpot
672
+ // flow in zeni-web-app-ui/IntegrationsScreen.
673
+ initEmailConnectOAuth: {
674
+ prepare(tenantId, provider, redirectAfterUrl) {
675
+ return { payload: { tenantId, provider, redirectAfterUrl } };
676
+ },
677
+ reducer(draft, action) {
678
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
679
+ if (existing != null) {
680
+ // Reuse the per-slug saveConnectorCredentialsStateBySlug bucket so
681
+ // the IntegrationsSettingsPage shows the same loading affordance
682
+ // it already uses for Stripe/Mercury/PayPal connect flows.
683
+ existing.saveConnectorCredentialsStateBySlug[action.payload.provider] = 'In-Progress';
684
+ delete existing.saveConnectorCredentialsErrorBySlug[action.payload.provider];
685
+ }
686
+ },
687
+ },
688
+ initEmailConnectOAuthSuccess: {
689
+ prepare(tenantId, provider, authorizationUrl) {
690
+ return { payload: { tenantId, provider, authorizationUrl } };
691
+ },
692
+ reducer(draft, action) {
693
+ // Intentionally leave state as 'In-Progress' — the epic is about to
694
+ // do a full-page redirect, so any UI state we set here would be
695
+ // overwritten by the navigation anyway. Setting Completed would
696
+ // briefly flash a success state before the redirect, which reads
697
+ // wrong because the connection isn't actually saved yet at this
698
+ // point (it lands after the OAuth round-trip).
699
+ void draft;
700
+ void action;
701
+ },
702
+ },
703
+ initEmailConnectOAuthFailure: {
704
+ prepare(tenantId, provider, status) {
705
+ return { payload: { tenantId, provider, status } };
706
+ },
707
+ reducer(draft, action) {
708
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
709
+ if (existing != null) {
710
+ existing.saveConnectorCredentialsStateBySlug[action.payload.provider] = 'Error';
711
+ existing.saveConnectorCredentialsErrorBySlug[action.payload.provider] = action.payload.status;
712
+ }
713
+ },
714
+ },
600
715
  deleteConnection: {
601
716
  prepare(tenantId, connectionId, connectionType) {
602
717
  return { payload: { tenantId, connectionId, connectionType } };
@@ -723,7 +838,18 @@ const tenant = createSlice({
723
838
  },
724
839
  updateTreasuryVideoViewedForLoggedInUser(draft) {
725
840
  if (draft.currentTenantId != null) {
726
- draft.tenantsById[draft.currentTenantId].isTreasuryVideoViewed = true;
841
+ draft.tenantsById[draft.currentTenantId].isTreasuryPromoVideoPlayed =
842
+ true;
843
+ }
844
+ },
845
+ updateTreasuryPromoRemindMeLaterClickedForLoggedInUser(draft) {
846
+ if (draft.currentTenantId != null) {
847
+ draft.tenantsById[draft.currentTenantId].isTreasuryPromoVideoRemindMeLaterClicked = true;
848
+ }
849
+ },
850
+ updateTreasuryPromoIntroClosedByOutsideClickForLoggedInUser(draft) {
851
+ if (draft.currentTenantId != null) {
852
+ draft.tenantsById[draft.currentTenantId].isTreasuryPromoIntroClosedByOutsideClick = true;
727
853
  }
728
854
  },
729
855
  trigger2FA: {
@@ -785,8 +911,29 @@ const tenant = createSlice({
785
911
  },
786
912
  },
787
913
  });
788
- export const { updateTenants, fetchAllTenants, updateTenantsSuccess, updateTenantsFailure, fetchActiveTenant, updateTenantSuccess, updateTenantFailure, updateCurrentTenant, fetchExcludedResources, updateExcludedResourcesSuccess, updateExcludedResourcesFailure, doSignIn, doMagicLinkSignIn, magicLinkSignInSuccess, magicLinkSignInFailure, sendEmailMagicLinkToUser, sendEmailMagicLinkToUserSuccess, sendEmailMagicLinkToUserFailure, updateSignInState, doSignOut, signOutSuccess, sendSessionHeartbeat, sessionHeartbeatSuccess, sessionHeartbeatFailure, updateLoggedInUser, fetchExternalConnections, saveExternalConnection, saveExternalConnectionSuccess, saveExternalConnectionFailure, fetchExternalConnectionsFailure, fetchExternalConnectionsSuccess, saveAPIKeyConnection, saveAPIKeyConnectionSuccess, saveAPIKeyConnectionFailure, saveOAuthConnection, saveOAuthConnectionSuccess, saveOAuthConnectionFailure, saveConnectorCredentials, saveConnectorCredentialsSuccess, saveConnectorCredentialsFailure, deleteConnection, deleteConnectionSuccess, deleteConnectionFailure, clearAll, fetchSubscriptionSummaryForTenant, updateSubscriptionSummaryForTenantSuccess, updateSubscriptionSummaryForTenantFailure, updateOnboardingTenants, removeOnboardingTenant, updateTenantReimbursementInfo, updateReferViewedForLoggedInUser, updateTreasuryVideoViewedForLoggedInUser, resetSignInState, trigger2FA, updateTenantAccountingClassesEnabled, updateTenantMasterTOSInfo, verifyDeviceWithTwoFA, verifyDeviceWithTwoFASuccess, verifyDeviceWithTwoFAFailure, resendVerifyDeviceOTP, resendVerifyDeviceOTPSuccess, resendVerifyDeviceOTPFailure, } = tenant.actions;
914
+ export const { updateTenants, fetchAllTenants, updateTenantsSuccess, updateTenantsFailure, fetchActiveTenant, updateTenantSuccess, updateTenantFailure, updateCurrentTenant, fetchExcludedResources, updateExcludedResourcesSuccess, updateExcludedResourcesFailure, doSignIn, doMagicLinkSignIn, magicLinkSignInSuccess, magicLinkSignInFailure, sendEmailMagicLinkToUser, sendEmailMagicLinkToUserSuccess, sendEmailMagicLinkToUserFailure, updateSignInState, doSignOut, signOutSuccess, sendSessionHeartbeat, sessionHeartbeatSuccess, sessionHeartbeatFailure, updateLoggedInUser, fetchExternalConnections, saveExternalConnection, saveExternalConnectionSuccess, saveExternalConnectionFailure, fetchExternalConnectionsFailure, fetchExternalConnectionsSuccess, saveAPIKeyConnection, saveAPIKeyConnectionSuccess, saveAPIKeyConnectionFailure, saveOAuthConnection, saveOAuthConnectionSuccess, saveOAuthConnectionFailure, saveConnectorCredentials, saveConnectorCredentialsSuccess, saveConnectorCredentialsFailure, initEmailConnectOAuth, initEmailConnectOAuthSuccess, initEmailConnectOAuthFailure, deleteConnection, deleteConnectionSuccess, deleteConnectionFailure, clearAll, fetchSubscriptionSummaryForTenant, updateSubscriptionSummaryForTenantSuccess, updateSubscriptionSummaryForTenantFailure, updateOnboardingTenants, removeOnboardingTenant, updateTenantReimbursementInfo, updateReferViewedForLoggedInUser, resetSignInState, trigger2FA, updateTenantAccountingClassesEnabled, updateTenantCapitalizationOnboardingDismissed, updateTenantCapitalizationAccountOverride, updateTenantMasterTOSInfo, verifyDeviceWithTwoFA, verifyDeviceWithTwoFASuccess, verifyDeviceWithTwoFAFailure, updateTreasuryVideoViewedForLoggedInUser, updateTreasuryPromoRemindMeLaterClickedForLoggedInUser, updateTreasuryPromoIntroClosedByOutsideClickForLoggedInUser, resendVerifyDeviceOTP, resendVerifyDeviceOTPSuccess, resendVerifyDeviceOTPFailure, } = tenant.actions;
789
915
  export default tenant.reducer;
916
+ /**
917
+ * Applies treasury promo user fields from the tenants API user block when present.
918
+ * When a field is omitted from the payload, keeps the existing tenant value so a
919
+ * later fetch-all-tenants call does not reset values already loaded by fetch-active-tenant.
920
+ */
921
+ function applyTreasuryPromoUserFieldsFromPayload(existingTenant, mappedTenant, userTenantPayload) {
922
+ if (existingTenant == null) {
923
+ return mappedTenant;
924
+ }
925
+ return {
926
+ ...mappedTenant,
927
+ isTreasuryPromoVideoPlayed: userTenantPayload.is_treasury_promo_video_played ??
928
+ existingTenant.isTreasuryPromoVideoPlayed,
929
+ isTreasuryPromoVideoRemindMeLaterClicked: userTenantPayload.is_treasury_promo_video_remind_me_later_clicked ??
930
+ existingTenant.isTreasuryPromoVideoRemindMeLaterClicked,
931
+ loginCounterForTreasuryPromoVideo: userTenantPayload.login_counter_for_treasury_promo_video ??
932
+ existingTenant.loginCounterForTreasuryPromoVideo,
933
+ isTreasuryPromoIntroClosedByOutsideClick: userTenantPayload.is_treasury_promo_intro_closed_by_outside_click ??
934
+ existingTenant.isTreasuryPromoIntroClosedByOutsideClick,
935
+ };
936
+ }
790
937
  /**
791
938
  * Converts tenants payload to Tenant and User State
792
939
  * @param payload tenants payload as received from backend API response
@@ -862,16 +1009,47 @@ function mapTenantPayloadToTenant(payload, userTenantPayload) {
862
1009
  rewardsLastViewedTime: userTenantPayload?.rewards_feature_last_viewed_time != null
863
1010
  ? date(userTenantPayload.rewards_feature_last_viewed_time)
864
1011
  : undefined,
865
- isTreasuryVideoViewed: userTenantPayload?.is_treasury_promo_video_played,
1012
+ isTreasuryPromoVideoPlayed: userTenantPayload?.is_treasury_promo_video_played ?? false,
1013
+ isTreasuryPromoVideoRemindMeLaterClicked: userTenantPayload?.is_treasury_promo_video_remind_me_later_clicked ??
1014
+ false,
1015
+ loginCounterForTreasuryPromoVideo: userTenantPayload?.login_counter_for_treasury_promo_video ?? 0,
1016
+ isTreasuryPromoIntroClosedByOutsideClick: userTenantPayload?.is_treasury_promo_intro_closed_by_outside_click ??
1017
+ false,
866
1018
  zeniBookCloseDate: payload.zeni_book_close_date != null
867
1019
  ? date(payload.zeni_book_close_date)
868
1020
  : undefined,
869
1021
  zeniBookCloseMonthAndYear: payload.zeni_book_close_month_and_year != null
870
1022
  ? toMonthYearPeriod(payload.zeni_book_close_month_and_year)
871
1023
  : undefined,
1024
+ capitalizableAccountOverrides: payload.capitalizable_account_overrides ?? null,
1025
+ capitalizableAccounts: payload.capitalizable_accounts != null
1026
+ ? mapCapitalizableAccountsPayload(payload.capitalizable_accounts)
1027
+ : null,
1028
+ capitalizationOnboardingDismissedAccounts: payload.capitalization_onboarding_dismissed_accounts ?? null,
1029
+ capitalizationOnboardingShownForPrepaid: payload.capitalization_onboarding_shown_for_prepaid ?? false,
1030
+ capitalizationOnboardingShownForFixedAsset: payload.capitalization_onboarding_shown_for_fixed_asset ?? false,
872
1031
  };
873
1032
  return tenant;
874
1033
  }
1034
+ // Exported for unit testing — the snake→camel + date() transform here is the
1035
+ // only place the wire format is reshaped, and Nikunj called out we need
1036
+ // coverage for the populated + null-accounts cases on this mapper specifically.
1037
+ export function mapCapitalizableAccountsPayload(payload) {
1038
+ return {
1039
+ computedAt: date(payload.computed_at),
1040
+ // Defensive `?? []` because the API has historically been generous with
1041
+ // `null` on nested fields; without this an `{accounts: null}` response
1042
+ // throws on `.map`.
1043
+ accounts: (payload.accounts ?? []).map((acc) => ({
1044
+ accountId: acc.account_id,
1045
+ classificationType: acc.classification_type,
1046
+ matchPattern: acc.match_pattern,
1047
+ thresholdValue: acc.threshold_value,
1048
+ thresholdSource: acc.threshold_source,
1049
+ sampleCount: acc.sample_count,
1050
+ })),
1051
+ };
1052
+ }
875
1053
  function mapTenantPayloadToUser(payload) {
876
1054
  const user = {
877
1055
  userId: payload.user_id,
@@ -912,6 +1090,11 @@ export function mapConnectionsPayloadToState(connectionsPayload) {
912
1090
  const { connections } = connectionsPayload;
913
1091
  return {
914
1092
  accounting: connections.accounting.map((payload) => toConnection(payload)),
1093
+ // Tenant materializes gmail/outlook under the `email` bucket via
1094
+ // _THIRD_PARTY_CONNECTORS_TO_MATERIALIZE when their slugs are enabled in
1095
+ // third_party_enabled_connectors Statsig config. Default to [] so older
1096
+ // tenant deploys (or disabled-everywhere envs) don't blow up here.
1097
+ email: (connections.email ?? []).map((payload) => toConnection(payload)),
915
1098
  payments: connections.payments.map((payload) => toConnection(payload)),
916
1099
  revenue: (connections.revenue ?? []).map((payload) => toConnection(payload)),
917
1100
  };
@@ -50,26 +50,26 @@ export const toTransaction = (payload) => {
50
50
  logo: toURL(payload.logo),
51
51
  attachments: payload.attachments?.map((attachmentPayload) => toAttachment(attachmentPayload)),
52
52
  qboId: payload.qbo_id,
53
- ...(payload.vendor_id !== null && payload.vendor_id !== ''
53
+ ...(payload.vendor_id != null && payload.vendor_id !== ''
54
54
  ? { vendorId: payload.vendor_id }
55
55
  : {}),
56
- ...(payload.vendor_name !== null && payload.vendor_name !== ''
56
+ ...(payload.vendor_name != null && payload.vendor_name !== ''
57
57
  ? { vendorName: payload.vendor_name }
58
58
  : {}),
59
- ...(payload.customer_id !== null && payload.customer_id !== ''
59
+ ...(payload.customer_id != null && payload.customer_id !== ''
60
60
  ? { customerId: payload.customer_id }
61
61
  : {}),
62
- ...(payload.customer_name !== null && payload.customer_name !== ''
62
+ ...(payload.customer_name != null && payload.customer_name !== ''
63
63
  ? { customerName: payload.customer_name }
64
64
  : {}),
65
- ...(payload.target_account_id !== null && payload.target_account_id !== ''
65
+ ...(payload.target_account_id != null && payload.target_account_id !== ''
66
66
  ? { targetAccountId: payload.target_account_id }
67
67
  : {}),
68
- ...(payload.target_account_integration_id !== null &&
68
+ ...(payload.target_account_integration_id != null &&
69
69
  payload.target_account_integration_id !== ''
70
70
  ? { targetAccountIntegrationId: payload.target_account_integration_id }
71
71
  : {}),
72
- ...(payload.target_account_name !== null &&
72
+ ...(payload.target_account_name != null &&
73
73
  payload.target_account_name !== ''
74
74
  ? { targetAccountName: payload.target_account_name }
75
75
  : {}),
@@ -108,6 +108,16 @@ export const toTransaction = (payload) => {
108
108
  ...(payload.category_name != null && payload.category_name !== ''
109
109
  ? { categoryName: payload.category_name }
110
110
  : {}),
111
+ ...(payload.account_integration_id != null &&
112
+ payload.account_integration_id !== ''
113
+ ? { accountIntegrationId: payload.account_integration_id }
114
+ : {}),
115
+ ...(payload.qbo_account_id != null && payload.qbo_account_id !== ''
116
+ ? { qboAccountId: payload.qbo_account_id }
117
+ : {}),
118
+ ...(payload.qbo_account_name != null && payload.qbo_account_name !== ''
119
+ ? { qboAccountName: payload.qbo_account_name }
120
+ : {}),
111
121
  linkedTransactions: payload.linked_transactions?.map((transactionIDPayload) => toTransactionID(transactionIDPayload)),
112
122
  lines,
113
123
  account: payloadHasAccountInfo(payload)
@@ -1,4 +1,5 @@
1
1
  import { stringToUnion } from '../../../commonStateTypes/stringToUnion';
2
+ export const LINE_TYPE_LINKED = 'linked_transaction_line';
2
3
  const PLATFORM_LINE_DETAIL_TYPES = [
3
4
  'sales_item_line_detail',
4
5
  'account_based_expense_line_detail',