@zeniai/client-epic-state 5.0.92 → 5.0.93-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 (260) hide show
  1. package/lib/common/aiCfo/aiCfoSuggestedQuestionsPageContext.d.ts +1 -1
  2. package/lib/commonStateTypes/animations.d.ts +1 -1
  3. package/lib/commonStateTypes/animations.js +1 -0
  4. package/lib/entity/aiCfo/aiCfoPayload.d.ts +63 -5
  5. package/lib/entity/aiCfo/aiCfoReducer.d.ts +23 -2
  6. package/lib/entity/aiCfo/aiCfoReducer.js +249 -9
  7. package/lib/entity/aiCfo/aiCfoSelector.d.ts +4 -1
  8. package/lib/entity/aiCfo/aiCfoSelector.js +19 -1
  9. package/lib/entity/aiCfo/aiCfoState.d.ts +97 -4
  10. package/lib/entity/aiCfo/aiCfoState.js +18 -1
  11. package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +277 -0
  12. package/lib/entity/cardPolicy/cardPolicyPayload.js +143 -0
  13. package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +19 -0
  14. package/lib/entity/cardPolicy/cardPolicyReducer.js +175 -0
  15. package/lib/entity/cardPolicy/cardPolicySelector.d.ts +32 -0
  16. package/lib/entity/cardPolicy/cardPolicySelector.js +99 -0
  17. package/lib/entity/cardPolicy/cardPolicyState.d.ts +205 -0
  18. package/lib/entity/cardPolicy/cardPolicyState.js +14 -0
  19. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +18 -0
  20. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +68 -0
  21. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +26 -0
  22. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +47 -0
  23. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +25 -0
  24. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +39 -0
  25. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +24 -0
  26. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +105 -0
  27. package/lib/entity/company/companyPayload.d.ts +4 -0
  28. package/lib/entity/company/companyPayload.js +4 -0
  29. package/lib/entity/company/companyStateTypes.d.ts +4 -0
  30. package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
  31. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -1
  32. package/lib/entity/paymentAccount/paymentAccountSelector.d.ts +1 -0
  33. package/lib/entity/paymentAccount/paymentAccountSelector.js +4 -0
  34. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  35. package/lib/entity/snackbar/snackbarTypes.js +3 -0
  36. package/lib/entity/tenant/clearAllEpic.d.ts +6 -2
  37. package/lib/entity/tenant/clearAllEpic.js +8 -0
  38. package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +1 -1
  39. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.d.ts +21 -0
  40. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.js +54 -0
  41. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +1 -1
  42. package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.d.ts +3 -3
  43. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +1 -1
  44. package/lib/entity/tenant/tenantPayload.d.ts +1 -0
  45. package/lib/entity/tenant/tenantReducer.d.ts +38 -25
  46. package/lib/entity/tenant/tenantReducer.js +65 -5
  47. package/lib/entity/tenant/tenantState.d.ts +1 -0
  48. package/lib/epic.d.ts +19 -1
  49. package/lib/epic.js +20 -1
  50. package/lib/esm/commonStateTypes/animations.js +1 -0
  51. package/lib/esm/entity/aiCfo/aiCfoReducer.js +249 -9
  52. package/lib/esm/entity/aiCfo/aiCfoSelector.js +17 -1
  53. package/lib/esm/entity/aiCfo/aiCfoState.js +15 -0
  54. package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +130 -0
  55. package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +171 -0
  56. package/lib/esm/entity/cardPolicy/cardPolicySelector.js +75 -0
  57. package/lib/esm/entity/cardPolicy/cardPolicyState.js +9 -0
  58. package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +64 -0
  59. package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +43 -0
  60. package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +35 -0
  61. package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +101 -0
  62. package/lib/esm/entity/company/companyPayload.js +4 -0
  63. package/lib/esm/entity/paymentAccount/paymentAccountSelector.js +3 -0
  64. package/lib/esm/entity/snackbar/snackbarTypes.js +3 -0
  65. package/lib/esm/entity/tenant/clearAllEpic.js +8 -0
  66. package/lib/esm/entity/tenant/epic/initEmailConnectOAuthEpic.js +50 -0
  67. package/lib/esm/entity/tenant/tenantReducer.js +63 -3
  68. package/lib/esm/epic.js +20 -1
  69. package/lib/esm/index.js +46 -13
  70. package/lib/esm/reducer.js +12 -0
  71. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +6 -3
  72. package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  73. package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +2 -1
  74. package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  75. package/lib/esm/view/fileView/epic/deleteFileEpic.js +2 -2
  76. package/lib/esm/view/fileView/epic/deleteFileListEpic.js +2 -2
  77. package/lib/esm/view/fileView/epic/updateFileNameEpic.js +2 -2
  78. package/lib/esm/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +42 -0
  79. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +29 -0
  80. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +40 -0
  81. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +217 -50
  82. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +7 -1
  83. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewState.js +12 -0
  84. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +52 -0
  85. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +22 -0
  86. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +1 -0
  87. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +36 -0
  88. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +39 -0
  89. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +34 -0
  90. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +58 -0
  91. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +21 -0
  92. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +1 -0
  93. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +38 -0
  94. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +289 -0
  95. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +109 -0
  96. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +44 -0
  97. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +111 -0
  98. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +25 -0
  99. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +363 -0
  100. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +36 -0
  101. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +19 -0
  102. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +6 -0
  103. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +119 -0
  104. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +154 -0
  105. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +22 -0
  106. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +1 -0
  107. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +39 -0
  108. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +140 -0
  109. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +20 -0
  110. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +100 -0
  111. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +96 -0
  112. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +59 -0
  113. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +24 -0
  114. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +25 -0
  115. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +1 -0
  116. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +34 -0
  117. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +57 -0
  118. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +35 -0
  119. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
  120. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +42 -4
  121. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +35 -0
  122. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +62 -0
  123. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +44 -0
  124. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +58 -0
  125. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +67 -0
  126. package/lib/esm/view/spendManagement/commonSetup/kycKybAutofillActions.js +14 -0
  127. package/lib/esm/view/spendManagement/commonSetup/kycKybParseMapper.js +205 -0
  128. package/lib/esm/view/spendManagement/commonSetup/setupViewReducer.js +105 -52
  129. package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  130. package/lib/esm/view/spendManagement/commonSetup/types/kycKybAutofill.js +28 -0
  131. package/lib/index.d.ts +52 -14
  132. package/lib/index.js +219 -31
  133. package/lib/reducer.d.ts +12 -0
  134. package/lib/reducer.js +12 -0
  135. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +11 -2
  136. package/lib/view/aiCfoView/aiCfoViewReducer.js +6 -3
  137. package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  138. package/lib/view/aiCfoView/epics/createSessionEpic.js +2 -1
  139. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +8 -1
  140. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  141. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  142. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
  143. package/lib/view/fileView/epic/deleteFileEpic.js +1 -1
  144. package/lib/view/fileView/epic/deleteFileListEpic.js +1 -1
  145. package/lib/view/fileView/epic/updateFileNameEpic.js +1 -1
  146. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.d.ts +7 -0
  147. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +46 -0
  148. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.d.ts +8 -0
  149. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +33 -0
  150. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.d.ts +9 -0
  151. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +44 -0
  152. package/lib/view/onboardingView/customerView/onboardingCustomerViewPayload.d.ts +3 -0
  153. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +41 -4
  154. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +219 -51
  155. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.d.ts +5 -1
  156. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +11 -2
  157. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +40 -0
  158. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.js +13 -1
  159. package/lib/view/people/peopleTypes.d.ts +1 -1
  160. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  161. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +14 -0
  162. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +56 -0
  163. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +15 -0
  164. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +28 -0
  165. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +8 -0
  166. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +2 -0
  167. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +8 -0
  168. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +40 -0
  169. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +8 -0
  170. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +43 -0
  171. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +8 -0
  172. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +38 -0
  173. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +15 -0
  174. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +62 -0
  175. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +15 -0
  176. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +27 -0
  177. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +7 -0
  178. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +2 -0
  179. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +8 -0
  180. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +42 -0
  181. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +8 -0
  182. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +294 -0
  183. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +8 -0
  184. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +113 -0
  185. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +9 -0
  186. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +48 -0
  187. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +8 -0
  188. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +115 -0
  189. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +13 -0
  190. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +29 -0
  191. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +14 -0
  192. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +369 -0
  193. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +6 -0
  194. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +40 -0
  195. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +7 -0
  196. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +26 -0
  197. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +116 -0
  198. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +10 -0
  199. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +33 -0
  200. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +126 -0
  201. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +52 -0
  202. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +158 -0
  203. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +11 -0
  204. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +31 -0
  205. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +12 -0
  206. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +2 -0
  207. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +8 -0
  208. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +43 -0
  209. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +10 -0
  210. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +144 -0
  211. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +7 -0
  212. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +24 -0
  213. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +11 -0
  214. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +104 -0
  215. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +22 -0
  216. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +100 -0
  217. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +8 -0
  218. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +63 -0
  219. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +3 -0
  220. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +28 -0
  221. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  222. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +14 -0
  223. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +27 -1
  224. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +34 -0
  225. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +2 -0
  226. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +7 -0
  227. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +38 -0
  228. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +12 -0
  229. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +61 -0
  230. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +9 -0
  231. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +39 -0
  232. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
  233. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
  234. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +12 -2
  235. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +43 -5
  236. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +7 -0
  237. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +42 -1
  238. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +5 -0
  239. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +11 -0
  240. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +66 -0
  241. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +3 -0
  242. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +48 -0
  243. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.d.ts +28 -0
  244. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +62 -0
  245. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.d.ts +30 -0
  246. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +71 -0
  247. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.d.ts +33 -0
  248. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.js +17 -0
  249. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.d.ts +24 -0
  250. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.js +213 -0
  251. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +28 -2
  252. package/lib/view/spendManagement/commonSetup/setupViewReducer.js +106 -53
  253. package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +7 -2
  254. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  255. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +19 -0
  256. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.d.ts +142 -0
  257. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.js +32 -0
  258. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
  259. package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
  260. package/package.json +1 -1
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildUploadReviewRows = exports.buildAiCardPolicyFormDraftSeed = exports.buildEmptyLimitRows = void 0;
4
+ const cardPolicyChipIds_1 = require("./cardPolicyChipIds");
5
+ const cardPolicyFormDraftTypes_1 = require("./cardPolicyFormDraftTypes");
6
+ const EMPTY_ALLOW_BLOCK = {
7
+ mode: 'allow',
8
+ allowItems: [],
9
+ blockItems: [],
10
+ };
11
+ const EMPTY_FORM_VALUES = {
12
+ vendorPolicy: EMPTY_ALLOW_BLOCK,
13
+ categoryPolicy: EMPTY_ALLOW_BLOCK,
14
+ cardSelections: [],
15
+ limits: [],
16
+ policiesReview: [],
17
+ };
18
+ const buildEmptyLimitRows = () => [
19
+ { id: cardPolicyFormDraftTypes_1.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION, isEnabled: false },
20
+ { id: cardPolicyFormDraftTypes_1.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT, isEnabled: false },
21
+ ];
22
+ exports.buildEmptyLimitRows = buildEmptyLimitRows;
23
+ // Build the initial draft + seed context per `policyKind`:
24
+ // - auto: 1-step review with chip groups built eagerly from `draftPolicies`.
25
+ // - guided: 5-step wizard; Steps 1–4 from `draftPolicies[0]`, review re-derived.
26
+ // - upload: empty scaffold pre-recommendation; post-recommendation seeds review.
27
+ const buildAiCardPolicyFormDraftSeed = ({ initialData, cardsMasterList = [], categorySearchOptions, suggestedAllowMerchants, suggestedBlockMerchants, suggestedAllowCategories, suggestedBlockCategories, }) => {
28
+ const suggestedPoliciesSeed = buildSuggestedPoliciesSeed(initialData);
29
+ const wizardPlan = 'wizardPlan' in initialData ? initialData.wizardPlan : undefined;
30
+ const source = initialData.policyKind === 'upload' ? initialData.source : undefined;
31
+ const context = {
32
+ policyKind: initialData.policyKind,
33
+ cardsMasterList,
34
+ categorySearchOptions: categorySearchOptions ?? [],
35
+ suggestedAllowMerchants,
36
+ suggestedBlockMerchants,
37
+ suggestedAllowCategories,
38
+ suggestedBlockCategories,
39
+ suggestedPoliciesSeed,
40
+ wizardPlan,
41
+ source,
42
+ };
43
+ const draft = buildDraftFromInitialData({
44
+ initialData,
45
+ cardsMasterList,
46
+ categorySearchOptions,
47
+ suggestedAllowMerchants,
48
+ suggestedBlockMerchants,
49
+ suggestedAllowCategories,
50
+ suggestedBlockCategories,
51
+ });
52
+ return { draft, context };
53
+ };
54
+ exports.buildAiCardPolicyFormDraftSeed = buildAiCardPolicyFormDraftSeed;
55
+ const buildDraftFromInitialData = ({ initialData, cardsMasterList, categorySearchOptions, suggestedAllowMerchants, suggestedBlockMerchants, suggestedAllowCategories, suggestedBlockCategories, }) => {
56
+ const vendorAllowSeed = merchantsToChips(suggestedAllowMerchants);
57
+ const vendorBlockSeed = merchantsToChips(suggestedBlockMerchants);
58
+ const categoryAllowSeed = categoriesToChips(suggestedAllowCategories);
59
+ const categoryBlockSeed = categoriesToChips(suggestedBlockCategories);
60
+ if (initialData.policyKind === 'auto') {
61
+ const autoDraftPolicies = initialData.wizardPlan?.step5Review?.draftPolicies ?? [];
62
+ return {
63
+ ...EMPTY_FORM_VALUES,
64
+ policyKind: 'auto',
65
+ policiesReview: buildAutoReviewRows(autoDraftPolicies, cardsMasterList, categorySearchOptions),
66
+ };
67
+ }
68
+ if (initialData.policyKind === 'upload') {
69
+ const uploadDraftPolicies = initialData.wizardPlan?.step5Review?.draftPolicies;
70
+ if (uploadDraftPolicies == null) {
71
+ return {
72
+ ...EMPTY_FORM_VALUES,
73
+ policyKind: 'upload',
74
+ cardSelections: cardsMasterList.map((row) => ({
75
+ ...row,
76
+ isChecked: false,
77
+ })),
78
+ limits: (0, exports.buildEmptyLimitRows)(),
79
+ };
80
+ }
81
+ return {
82
+ ...EMPTY_FORM_VALUES,
83
+ policyKind: 'upload',
84
+ cardSelections: cardsMasterList.map((row) => ({
85
+ ...row,
86
+ isChecked: false,
87
+ })),
88
+ limits: (0, exports.buildEmptyLimitRows)(),
89
+ policiesReview: (0, exports.buildUploadReviewRows)(uploadDraftPolicies, cardsMasterList, categorySearchOptions),
90
+ };
91
+ }
92
+ // Guided
93
+ const draftPolicies = initialData.wizardPlan?.step5Review?.draftPolicies ?? [];
94
+ const primary = draftPolicies[0];
95
+ if (primary == null) {
96
+ return {
97
+ policyKind: 'guided',
98
+ vendorPolicy: buildAllowBlockFromSeeds(vendorAllowSeed, vendorBlockSeed),
99
+ categoryPolicy: buildAllowBlockFromSeeds(categoryAllowSeed, categoryBlockSeed),
100
+ cardSelections: cardsMasterList.map((row) => ({
101
+ ...row,
102
+ isChecked: false,
103
+ })),
104
+ limits: (0, exports.buildEmptyLimitRows)(),
105
+ policiesReview: [],
106
+ };
107
+ }
108
+ const mccCodeToCategory = buildMccCodeToCategoryMap(categorySearchOptions);
109
+ const vendorMode = inferAllowBlockMode(primary.allowedEntity.merchantNames.length, primary.blockedEntity.merchantNames.length);
110
+ const aiVendorAllow = draftMerchantsToChips(primary.allowedEntity.merchantNames);
111
+ const aiVendorBlock = draftMerchantsToChips(primary.blockedEntity.merchantNames);
112
+ const vendorPolicy = {
113
+ mode: vendorMode,
114
+ allowItems: mergeAiAndSeedChips(aiVendorAllow, vendorAllowSeed),
115
+ blockItems: mergeAiAndSeedChips(aiVendorBlock, vendorBlockSeed),
116
+ };
117
+ const categoryMode = inferAllowBlockMode(primary.allowedEntity.categoryCodes.length, primary.blockedEntity.categoryCodes.length);
118
+ const aiCategoryAllow = draftCategoryCodesToChips(primary.allowedEntity.categoryCodes, mccCodeToCategory);
119
+ const aiCategoryBlock = draftCategoryCodesToChips(primary.blockedEntity.categoryCodes, mccCodeToCategory);
120
+ const categoryPolicy = {
121
+ mode: categoryMode,
122
+ allowItems: mergeAiAndSeedChips(aiCategoryAllow, categoryAllowSeed),
123
+ blockItems: mergeAiAndSeedChips(aiCategoryBlock, categoryBlockSeed),
124
+ };
125
+ const cardSelections = cardsMasterList.map((row) => ({
126
+ ...row,
127
+ isChecked: primary.applyToCards.includes(row.id),
128
+ }));
129
+ const limits = [
130
+ {
131
+ id: cardPolicyFormDraftTypes_1.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION,
132
+ isEnabled: primary.spendLimits.transaction > 0,
133
+ amount: primary.spendLimits.transaction > 0
134
+ ? primary.spendLimits.transaction
135
+ : undefined,
136
+ },
137
+ {
138
+ id: cardPolicyFormDraftTypes_1.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT,
139
+ isEnabled: primary.requiredReceiptThreshold > 0,
140
+ amount: primary.requiredReceiptThreshold > 0
141
+ ? primary.requiredReceiptThreshold
142
+ : undefined,
143
+ },
144
+ ];
145
+ return {
146
+ policyKind: 'guided',
147
+ vendorPolicy,
148
+ categoryPolicy,
149
+ cardSelections,
150
+ limits,
151
+ policiesReview: draftPolicies.map((p) => ({
152
+ id: p.id,
153
+ isChecked: true,
154
+ name: p.name,
155
+ chipGroups: [],
156
+ })),
157
+ };
158
+ };
159
+ const buildSuggestedPoliciesSeed = (initialData) => (initialData.wizardPlan?.step5Review?.draftPolicies ?? []).map((draft) => ({
160
+ id: draft.id,
161
+ name: draft.name,
162
+ isChecked: true,
163
+ }));
164
+ const merchantsToChips = (names) => (names ?? []).map((name) => (0, cardPolicyChipIds_1.toVendorChipFieldValue)(name, false));
165
+ const categoriesToChips = (categories) => (categories ?? []).map((category) => (0, cardPolicyChipIds_1.toMccCategoryChipFieldValue)(category, false));
166
+ const buildAllowBlockFromSeeds = (allowItems, blockItems) => {
167
+ if (allowItems.length === 0 && blockItems.length === 0) {
168
+ return EMPTY_ALLOW_BLOCK;
169
+ }
170
+ return { mode: 'allow', allowItems, blockItems };
171
+ };
172
+ const buildMccCodeToCategoryMap = (categories) => {
173
+ const map = new Map();
174
+ for (const category of categories ?? []) {
175
+ for (const code of category.mccCodes) {
176
+ if (!map.has(code)) {
177
+ map.set(code, category);
178
+ }
179
+ }
180
+ }
181
+ return map;
182
+ };
183
+ const buildOwnerSummaries = (cardIds, cardsMasterList) => {
184
+ const cardsById = new Map(cardsMasterList.map((card) => [card.id, card]));
185
+ const summaries = new Map();
186
+ for (const cardId of cardIds) {
187
+ const card = cardsById.get(cardId);
188
+ if (card == null) {
189
+ continue;
190
+ }
191
+ const existing = summaries.get(card.owner.userId);
192
+ if (existing != null) {
193
+ existing.cardIds.push(cardId);
194
+ continue;
195
+ }
196
+ summaries.set(card.owner.userId, {
197
+ userId: card.owner.userId,
198
+ displayName: card.owner.displayName,
199
+ cardIds: [cardId],
200
+ });
201
+ }
202
+ return Array.from(summaries.values());
203
+ };
204
+ const buildAutoReviewChipGroupsForDraft = (draft, cardsMasterList, mccCodeToCategory) => {
205
+ const groups = [];
206
+ if (draft.allowedEntity.merchantNames.length > 0) {
207
+ groups.push({
208
+ id: 'allowed-vendors',
209
+ label: 'Allowed Vendors',
210
+ chips: draft.allowedEntity.merchantNames.map((name) => ({
211
+ id: (0, cardPolicyChipIds_1.buildVendorChipId)(name),
212
+ label: name,
213
+ chipKind: 'positive',
214
+ isSelected: true,
215
+ })),
216
+ });
217
+ }
218
+ if (draft.blockedEntity.merchantNames.length > 0) {
219
+ groups.push({
220
+ id: 'blocked-vendors',
221
+ label: 'Blocked Vendors',
222
+ chips: draft.blockedEntity.merchantNames.map((name) => ({
223
+ id: (0, cardPolicyChipIds_1.buildVendorChipId)(name),
224
+ label: name,
225
+ chipKind: 'negative',
226
+ isSelected: true,
227
+ })),
228
+ });
229
+ }
230
+ if (draft.allowedEntity.categoryCodes.length > 0) {
231
+ groups.push({
232
+ id: 'allowed-categories',
233
+ label: 'Allowed Categories',
234
+ chips: draft.allowedEntity.categoryCodes.map((code) => {
235
+ const category = mccCodeToCategory.get(code);
236
+ const label = category != null ? `${category.name} (${code})` : code;
237
+ return {
238
+ id: code,
239
+ label,
240
+ chipKind: 'positive',
241
+ isSelected: true,
242
+ optionalCode: code,
243
+ };
244
+ }),
245
+ });
246
+ }
247
+ if (draft.blockedEntity.categoryCodes.length > 0) {
248
+ groups.push({
249
+ id: 'restricted-categories',
250
+ label: 'Restricted Categories',
251
+ chips: draft.blockedEntity.categoryCodes.map((code) => {
252
+ const category = mccCodeToCategory.get(code);
253
+ const label = category != null ? `${category.name} (${code})` : code;
254
+ return {
255
+ id: code,
256
+ label,
257
+ chipKind: 'negative',
258
+ isSelected: true,
259
+ optionalCode: code,
260
+ };
261
+ }),
262
+ });
263
+ }
264
+ if (draft.applyToCards.length > 0) {
265
+ const owners = buildOwnerSummaries(draft.applyToCards, cardsMasterList);
266
+ if (owners.length > 0) {
267
+ groups.push({
268
+ id: 'applied-to-cards',
269
+ label: 'Applied to Cards',
270
+ chips: owners.map((owner) => ({
271
+ id: owner.userId,
272
+ label: owner.displayName,
273
+ chipKind: 'avatar',
274
+ cardIds: owner.cardIds,
275
+ isSelected: true,
276
+ })),
277
+ });
278
+ }
279
+ }
280
+ return groups;
281
+ };
282
+ const buildAutoReviewRows = (draftPolicies, cardsMasterList, categorySearchOptions) => {
283
+ const mccCodeToCategory = buildMccCodeToCategoryMap(categorySearchOptions);
284
+ return draftPolicies.map((draft) => ({
285
+ id: draft.id,
286
+ isChecked: true,
287
+ name: draft.name,
288
+ chipGroups: buildAutoReviewChipGroupsForDraft(draft, cardsMasterList, mccCodeToCategory),
289
+ }));
290
+ };
291
+ // Numeric value stashed on `optionalCode` so the bulk-submit builder can
292
+ // recover it without re-parsing the label.
293
+ const buildUploadLimitsChipGroup = (draft) => {
294
+ const transactionEnabled = draft.spendLimits.transaction > 0;
295
+ const receiptEnabled = draft.requiredReceiptThreshold > 0;
296
+ return {
297
+ id: 'limits',
298
+ label: 'Limits',
299
+ kind: 'limits',
300
+ chips: [
301
+ {
302
+ id: 'limit-transaction',
303
+ label: 'Transaction Limit',
304
+ helperText: 'Maximum amount per single transaction',
305
+ placeholder: '$0',
306
+ chipKind: 'positive',
307
+ isSelected: transactionEnabled,
308
+ optionalCode: transactionEnabled
309
+ ? String(draft.spendLimits.transaction)
310
+ : undefined,
311
+ },
312
+ {
313
+ id: 'limit-receipt',
314
+ label: 'Require Receipt',
315
+ helperText: 'Require a receipt above this amount',
316
+ placeholder: '$0',
317
+ chipKind: 'positive',
318
+ isSelected: receiptEnabled,
319
+ optionalCode: receiptEnabled
320
+ ? String(draft.requiredReceiptThreshold)
321
+ : undefined,
322
+ },
323
+ ],
324
+ };
325
+ };
326
+ const buildUploadReviewRows = (draftPolicies, cardsMasterList, categorySearchOptions) => {
327
+ const mccCodeToCategory = buildMccCodeToCategoryMap(categorySearchOptions);
328
+ return draftPolicies.map((draft) => {
329
+ const chipGroups = buildAutoReviewChipGroupsForDraft(draft, cardsMasterList, mccCodeToCategory);
330
+ chipGroups.push(buildUploadLimitsChipGroup(draft));
331
+ return {
332
+ id: draft.id,
333
+ isChecked: true,
334
+ name: draft.name,
335
+ chipGroups,
336
+ };
337
+ });
338
+ };
339
+ exports.buildUploadReviewRows = buildUploadReviewRows;
340
+ // BE doesn't pre-select the radio: allow-wins when either side is populated,
341
+ // otherwise default to allow. Matches `applyExtractedPolicyTo*FormValues`.
342
+ const inferAllowBlockMode = (allowCount, blockCount) => {
343
+ if (allowCount > 0) {
344
+ return 'allow';
345
+ }
346
+ if (blockCount > 0) {
347
+ return 'block';
348
+ }
349
+ return 'allow';
350
+ };
351
+ const draftMerchantsToChips = (names) => names.map((name) => (0, cardPolicyChipIds_1.toVendorChipFieldValue)(name, true));
352
+ const draftCategoryCodesToChips = (codes, mccCodeToCategory) => codes.map((code) => {
353
+ const category = mccCodeToCategory.get(code);
354
+ if (category != null) {
355
+ return (0, cardPolicyChipIds_1.toMccCategoryChipFieldValue)(category, true);
356
+ }
357
+ return {
358
+ id: code,
359
+ label: code,
360
+ isSelected: true,
361
+ optionalCode: code,
362
+ optionalCodes: [code],
363
+ };
364
+ });
365
+ const mergeAiAndSeedChips = (aiChips, seedChips) => {
366
+ const seenIds = new Set(aiChips.map((chip) => chip.id));
367
+ const extraSeeds = seedChips.filter((chip) => !seenIds.has(chip.id));
368
+ return [...aiChips, ...extraSeeds];
369
+ };
@@ -0,0 +1,6 @@
1
+ import { CardPolicyCardSelectionRow, CardPolicyCreateFormDraft, CardPolicyDefaultSeedSuggestions } from './cardPolicyFormDraftTypes';
2
+ export interface BuildManualCardPolicyFormDraftSeedArgs extends CardPolicyDefaultSeedSuggestions {
3
+ cardsMasterList?: CardPolicyCardSelectionRow[];
4
+ defaultRequireReceiptAmount?: number;
5
+ }
6
+ export declare const buildManualCardPolicyFormDraftSeed: ({ cardsMasterList, defaultRequireReceiptAmount, suggestedAllowMerchants, suggestedBlockMerchants, suggestedAllowCategories, suggestedBlockCategories, }: BuildManualCardPolicyFormDraftSeedArgs) => CardPolicyCreateFormDraft;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildManualCardPolicyFormDraftSeed = void 0;
4
+ const buildAiCardPolicyFormDraftSeed_1 = require("./buildAiCardPolicyFormDraftSeed");
5
+ const cardPolicyChipIds_1 = require("./cardPolicyChipIds");
6
+ const cardPolicyFormDraftTypes_1 = require("./cardPolicyFormDraftTypes");
7
+ const EMPTY_ALLOW_BLOCK = {
8
+ mode: 'allow',
9
+ allowItems: [],
10
+ blockItems: [],
11
+ };
12
+ // Mirrors the AI guided seed minus the wizard plan: BE suggestions land
13
+ // `isSelected: false` so the user opts in explicitly.
14
+ const buildManualCardPolicyFormDraftSeed = ({ cardsMasterList = [], defaultRequireReceiptAmount, suggestedAllowMerchants, suggestedBlockMerchants, suggestedAllowCategories, suggestedBlockCategories, }) => {
15
+ const vendorAllow = (suggestedAllowMerchants ?? []).map((name) => (0, cardPolicyChipIds_1.toVendorChipFieldValue)(name, false));
16
+ const vendorBlock = (suggestedBlockMerchants ?? []).map((name) => (0, cardPolicyChipIds_1.toVendorChipFieldValue)(name, false));
17
+ const categoryAllow = (suggestedAllowCategories ?? []).map((category) => (0, cardPolicyChipIds_1.toMccCategoryChipFieldValue)(category, false));
18
+ const categoryBlock = (suggestedBlockCategories ?? []).map((category) => (0, cardPolicyChipIds_1.toMccCategoryChipFieldValue)(category, false));
19
+ const vendorPolicy = vendorAllow.length === 0 && vendorBlock.length === 0
20
+ ? EMPTY_ALLOW_BLOCK
21
+ : { mode: 'allow', allowItems: vendorAllow, blockItems: vendorBlock };
22
+ const categoryPolicy = categoryAllow.length === 0 && categoryBlock.length === 0
23
+ ? EMPTY_ALLOW_BLOCK
24
+ : { mode: 'allow', allowItems: categoryAllow, blockItems: categoryBlock };
25
+ const limits = (0, buildAiCardPolicyFormDraftSeed_1.buildEmptyLimitRows)().map((row) => row.id === cardPolicyFormDraftTypes_1.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT &&
26
+ defaultRequireReceiptAmount != null &&
27
+ defaultRequireReceiptAmount > 0
28
+ ? { ...row, amount: defaultRequireReceiptAmount }
29
+ : row);
30
+ return {
31
+ name: '',
32
+ description: '',
33
+ mode: 'strict',
34
+ vendorPolicy,
35
+ categoryPolicy,
36
+ cardSelections: cardsMasterList.map((row) => ({ ...row, isChecked: false })),
37
+ limits,
38
+ };
39
+ };
40
+ exports.buildManualCardPolicyFormDraftSeed = buildManualCardPolicyFormDraftSeed;
@@ -0,0 +1,7 @@
1
+ import type { CardPolicyChipFieldValue, MccCategoryLike } from './cardPolicyFormDraftTypes';
2
+ export declare const VENDOR_CHIP_ID_PREFIX = "vendor-";
3
+ export declare const MCC_CHIP_ID_PREFIX = "mcc-";
4
+ export declare const buildVendorChipId: (name: string) => string;
5
+ export declare const buildMccCategoryChipId: (name: string) => string;
6
+ export declare const toVendorChipFieldValue: (name: string, isSelected: boolean) => CardPolicyChipFieldValue;
7
+ export declare const toMccCategoryChipFieldValue: (category: MccCategoryLike, isSelected: boolean) => CardPolicyChipFieldValue;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toMccCategoryChipFieldValue = exports.toVendorChipFieldValue = exports.buildMccCategoryChipId = exports.buildVendorChipId = exports.MCC_CHIP_ID_PREFIX = exports.VENDOR_CHIP_ID_PREFIX = void 0;
4
+ // All chip-id producers MUST funnel through here — the picker's dedupe is content-blind
5
+ // (`existing.id === option.id`), so vendors collapse on display name and MCC ids must
6
+ // match the legacy convention saved templates use.
7
+ exports.VENDOR_CHIP_ID_PREFIX = 'vendor-';
8
+ exports.MCC_CHIP_ID_PREFIX = 'mcc-';
9
+ const buildVendorChipId = (name) => `${exports.VENDOR_CHIP_ID_PREFIX}${name.trim().toLowerCase()}`;
10
+ exports.buildVendorChipId = buildVendorChipId;
11
+ const buildMccCategoryChipId = (name) => `${exports.MCC_CHIP_ID_PREFIX}${name}`;
12
+ exports.buildMccCategoryChipId = buildMccCategoryChipId;
13
+ const toVendorChipFieldValue = (name, isSelected) => ({
14
+ id: (0, exports.buildVendorChipId)(name),
15
+ label: name,
16
+ isSelected,
17
+ });
18
+ exports.toVendorChipFieldValue = toVendorChipFieldValue;
19
+ const toMccCategoryChipFieldValue = (category, isSelected) => ({
20
+ id: (0, exports.buildMccCategoryChipId)(category.name),
21
+ label: category.name,
22
+ isSelected,
23
+ optionalCode: category.mccCodes[0],
24
+ optionalCodes: [...category.mccCodes],
25
+ });
26
+ exports.toMccCategoryChipFieldValue = toMccCategoryChipFieldValue;
@@ -0,0 +1,116 @@
1
+ import { ID } from '../../../../../commonStateTypes/common';
2
+ import { CardPolicyInitialData, CardPolicyUploadSource, CardPolicyWizardPlan } from '../../../../../entity/aiCfo/aiCfoState';
3
+ import { MccCategory } from '../../../../../entity/cardPolicy/cardPolicyState';
4
+ export type ChipKind = 'positive' | 'negative' | 'avatar';
5
+ export type CardPolicyModeValue = 'strict' | 'flexible';
6
+ export declare const CARD_POLICY_LIMIT_ROW_ID_TRANSACTION = "transactionLimit";
7
+ export declare const CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT = "requireReceipt";
8
+ export interface CardPolicyOwnerSeed {
9
+ displayName: string;
10
+ userId: ID;
11
+ roleLabel?: string;
12
+ }
13
+ export interface CardPolicyChipFieldValue {
14
+ id: string;
15
+ isSelected: boolean;
16
+ label: string;
17
+ optionalCode?: string;
18
+ optionalCodes?: string[];
19
+ }
20
+ export interface CardPolicyAllowBlockFieldValue {
21
+ allowItems: CardPolicyChipFieldValue[];
22
+ blockItems: CardPolicyChipFieldValue[];
23
+ mode: 'allow' | 'block';
24
+ }
25
+ export interface CardPolicyCardSelectionRow {
26
+ cardName: string;
27
+ id: ID;
28
+ isChecked: boolean;
29
+ last4: string;
30
+ limitAmount: number;
31
+ owner: CardPolicyOwnerSeed;
32
+ utilizationAmount: number;
33
+ limitCadence?: string;
34
+ }
35
+ export interface CardPolicyLimitFieldValue {
36
+ id: string;
37
+ isEnabled: boolean;
38
+ amount?: number;
39
+ }
40
+ export interface CardPolicyReviewChip {
41
+ chipKind: ChipKind;
42
+ id: string;
43
+ label: string;
44
+ cardIds?: ID[];
45
+ helperText?: string;
46
+ isSelected?: boolean;
47
+ optionalCode?: string;
48
+ placeholder?: string;
49
+ }
50
+ export interface CardPolicyReviewChipGroup {
51
+ chips: CardPolicyReviewChip[];
52
+ id: string;
53
+ label: string;
54
+ kind?: 'chips' | 'limits';
55
+ }
56
+ export interface CardPolicyReviewRow {
57
+ chipGroups: CardPolicyReviewChipGroup[];
58
+ id: string;
59
+ isChecked: boolean;
60
+ name: string;
61
+ }
62
+ export interface CardPolicyFormDraft {
63
+ cardSelections: CardPolicyCardSelectionRow[];
64
+ categoryPolicy: CardPolicyAllowBlockFieldValue;
65
+ limits: CardPolicyLimitFieldValue[];
66
+ policiesReview: CardPolicyReviewRow[];
67
+ policyKind: 'auto' | 'guided' | 'upload';
68
+ vendorPolicy: CardPolicyAllowBlockFieldValue;
69
+ }
70
+ export interface CardPolicyCreateFormDraft {
71
+ cardSelections: CardPolicyCardSelectionRow[];
72
+ categoryPolicy: CardPolicyAllowBlockFieldValue;
73
+ description: string;
74
+ limits: CardPolicyLimitFieldValue[];
75
+ mode: CardPolicyModeValue;
76
+ name: string;
77
+ vendorPolicy: CardPolicyAllowBlockFieldValue;
78
+ }
79
+ export interface CardPolicySuggestedPolicySeed {
80
+ id: string;
81
+ isChecked: boolean;
82
+ name: string;
83
+ }
84
+ export interface MccCategoryLike {
85
+ mccCodes: string[];
86
+ name: string;
87
+ }
88
+ export interface CardPolicyDefaultSeedSuggestions {
89
+ suggestedAllowCategories?: MccCategoryLike[];
90
+ suggestedAllowMerchants?: string[];
91
+ suggestedBlockCategories?: MccCategoryLike[];
92
+ suggestedBlockMerchants?: string[];
93
+ }
94
+ export interface AiCardPolicyFormDraftSeedContext extends CardPolicyDefaultSeedSuggestions {
95
+ cardsMasterList: CardPolicyCardSelectionRow[];
96
+ categorySearchOptions: MccCategoryLike[];
97
+ policyKind: CardPolicyInitialData['policyKind'];
98
+ suggestedPoliciesSeed: CardPolicySuggestedPolicySeed[];
99
+ source?: CardPolicyUploadSource;
100
+ wizardPlan?: CardPolicyWizardPlan;
101
+ }
102
+ export interface ExtractedCardPolicyDataView {
103
+ allowedEntity: {
104
+ categoryCodes: string[];
105
+ merchantNames: string[];
106
+ };
107
+ blockedEntity: {
108
+ categoryCodes: string[];
109
+ merchantNames: string[];
110
+ };
111
+ confidenceScore: number;
112
+ policyName: string;
113
+ requiredReceiptThreshold: number;
114
+ transactionLimit: number;
115
+ }
116
+ export declare const toMccCategoryLike: (category: MccCategory) => MccCategoryLike;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toMccCategoryLike = exports.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT = exports.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION = void 0;
4
+ exports.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION = 'transactionLimit';
5
+ exports.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT = 'requireReceipt';
6
+ const toMccCategoryLike = (category) => ({
7
+ name: category.name,
8
+ mccCodes: category.mccCodes,
9
+ });
10
+ exports.toMccCategoryLike = toMccCategoryLike;
@@ -0,0 +1,33 @@
1
+ import { ID } from '../../../../../commonStateTypes/common';
2
+ import { CardPolicyAllowBlockFieldValue, CardPolicyLimitFieldValue, CardPolicyReviewRow } from './cardPolicyFormDraftTypes';
3
+ export declare const collectMerchantNames: (field: CardPolicyAllowBlockFieldValue, forMode: "allow" | "block") => string[];
4
+ export declare const collectCategoryCodes: (field: CardPolicyAllowBlockFieldValue, forMode: "allow" | "block") => string[];
5
+ export declare const amountFromLimitRow: (limits: CardPolicyLimitFieldValue[], rowId: string) => number | null;
6
+ export interface CardPolicyReviewRowRequestParts {
7
+ allowedEntity: {
8
+ categoryCodes: string[];
9
+ merchantNames: string[];
10
+ };
11
+ applyToCards: ID[];
12
+ blockedEntity: {
13
+ categoryCodes: string[];
14
+ merchantNames: string[];
15
+ };
16
+ requiredReceiptThreshold: number | null;
17
+ spendLimits: {
18
+ transaction: number | null;
19
+ };
20
+ }
21
+ export declare const projectAutoReviewRowToCardPolicyRequestParts: (row: CardPolicyReviewRow) => CardPolicyReviewRowRequestParts;
22
+ export declare const REVIEW_GROUP_IDS: {
23
+ readonly allowedVendors: "allowed-vendors";
24
+ readonly blockedVendors: "blocked-vendors";
25
+ readonly allowedCategories: "allowed-categories";
26
+ readonly restrictedCategories: "restricted-categories";
27
+ readonly appliedToCards: "applied-to-cards";
28
+ readonly limits: "limits";
29
+ };
30
+ export declare const REVIEW_LIMIT_CHIP_IDS: {
31
+ readonly transaction: "limit-transaction";
32
+ readonly receipt: "limit-receipt";
33
+ };