@zeniai/client-epic-state 5.1.0 → 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 (106) hide show
  1. package/lib/commonStateTypes/animations.d.ts +1 -1
  2. package/lib/commonStateTypes/animations.js +1 -0
  3. package/lib/entity/company/companyPayload.d.ts +4 -0
  4. package/lib/entity/company/companyPayload.js +4 -0
  5. package/lib/entity/company/companyStateTypes.d.ts +4 -0
  6. package/lib/entity/jeSchedules/jeSchedulesPayload.js +18 -6
  7. package/lib/entity/paymentAccount/paymentAccountSelector.d.ts +1 -0
  8. package/lib/entity/paymentAccount/paymentAccountSelector.js +9 -0
  9. package/lib/entity/tenant/clearAllEpic.d.ts +2 -2
  10. package/lib/entity/tenant/clearAllEpic.js +2 -2
  11. package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +1 -1
  12. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.d.ts +21 -0
  13. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.js +54 -0
  14. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +1 -1
  15. package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.d.ts +3 -3
  16. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +1 -1
  17. package/lib/entity/tenant/tenantPayload.d.ts +1 -0
  18. package/lib/entity/tenant/tenantReducer.d.ts +38 -25
  19. package/lib/entity/tenant/tenantReducer.js +70 -10
  20. package/lib/entity/tenant/tenantState.d.ts +1 -0
  21. package/lib/entity/transaction/payloadTypes/transactionPayload.js +4 -2
  22. package/lib/epic.d.ts +8 -3
  23. package/lib/epic.js +9 -3
  24. package/lib/esm/commonStateTypes/animations.js +1 -0
  25. package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +1 -1
  26. package/lib/esm/entity/company/companyPayload.js +4 -0
  27. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +18 -6
  28. package/lib/esm/entity/paymentAccount/paymentAccountSelector.js +8 -0
  29. package/lib/esm/entity/tenant/clearAllEpic.js +2 -2
  30. package/lib/esm/entity/tenant/epic/initEmailConnectOAuthEpic.js +50 -0
  31. package/lib/esm/entity/tenant/tenantReducer.js +68 -8
  32. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +4 -2
  33. package/lib/esm/epic.js +9 -3
  34. package/lib/esm/index.js +12 -9
  35. package/lib/esm/reducer.js +3 -3
  36. package/lib/esm/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.js +3 -3
  37. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
  38. package/lib/esm/view/fileView/epic/deleteFileEpic.js +2 -2
  39. package/lib/esm/view/fileView/epic/deleteFileListEpic.js +2 -2
  40. package/lib/esm/view/fileView/epic/updateFileNameEpic.js +2 -2
  41. package/lib/esm/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +40 -0
  42. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +29 -0
  43. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +40 -0
  44. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +218 -50
  45. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +12 -2
  46. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewState.js +12 -0
  47. package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +1 -1
  48. package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +1 -1
  49. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +1 -3
  50. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +1 -2
  51. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +1 -1
  52. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +58 -0
  53. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +77 -0
  54. package/lib/esm/view/spendManagement/commonSetup/kycKybAutofillActions.js +14 -0
  55. package/lib/esm/view/spendManagement/commonSetup/kycKybParseMapper.js +207 -0
  56. package/lib/esm/view/spendManagement/commonSetup/setupViewReducer.js +106 -52
  57. package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  58. package/lib/esm/view/spendManagement/commonSetup/types/kycKybAutofill.js +41 -0
  59. package/lib/index.d.ts +15 -11
  60. package/lib/index.js +64 -44
  61. package/lib/reducer.d.ts +3 -3
  62. package/lib/reducer.js +3 -3
  63. package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.d.ts +1 -1
  64. package/lib/view/companyView/epic/companyPassport/updateCapitalizationAccountThresholdEpic.js +2 -2
  65. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -1
  66. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -1
  67. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -1
  68. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -1
  69. package/lib/view/fileView/epic/deleteFileEpic.js +1 -1
  70. package/lib/view/fileView/epic/deleteFileListEpic.js +1 -1
  71. package/lib/view/fileView/epic/updateFileNameEpic.js +1 -1
  72. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.d.ts +7 -0
  73. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +44 -0
  74. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.d.ts +8 -0
  75. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +33 -0
  76. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.d.ts +9 -0
  77. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +44 -0
  78. package/lib/view/onboardingView/customerView/onboardingCustomerViewPayload.d.ts +3 -0
  79. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +41 -4
  80. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +220 -51
  81. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.d.ts +5 -1
  82. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +15 -2
  83. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +40 -0
  84. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.js +13 -1
  85. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +1 -1
  86. package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +1 -1
  87. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +1 -1
  88. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +1 -3
  89. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +1 -1
  90. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +1 -2
  91. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.d.ts +28 -0
  92. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +62 -0
  93. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.d.ts +9 -0
  94. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +81 -0
  95. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.d.ts +24 -0
  96. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.js +17 -0
  97. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.d.ts +29 -0
  98. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.js +215 -0
  99. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +28 -2
  100. package/lib/view/spendManagement/commonSetup/setupViewReducer.js +107 -53
  101. package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +7 -2
  102. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  103. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +19 -0
  104. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.d.ts +154 -0
  105. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.js +46 -0
  106. package/package.json +1 -1
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearOnboardingCustomerView = exports.clearOnboardingCustomerViewDataInLocalStore = exports.verifyOnboardingOfficerOtpFailure = exports.verifyOnboardingOfficerOtpSuccess = exports.verifyOnboardingOfficerOtp = exports.resendOnboardingOfficerOtp = exports.sendOnboardingOfficerOtpFailure = exports.sendOnboardingOfficerOtpSuccess = exports.sendOnboardingOfficerOtp = exports.updateOnboardingCustomerViewUIState = exports.saveOnboardingCompnayOfficerPhoneInLocalStore = exports.saveOnboardingCustomerViewDataInLocalStore = exports.updateOnboardingCustomerViewLocalStoreData = exports.updateOnboardingCustomerViewAccountDetails = exports.updateCurrentStep = exports.getOnboardingPlaidLinkTokenFailure = exports.getOnboardingPlaidLinkTokenSuccess = exports.getOnboardingPlaidLinkToken = exports.establishOnboardingPlaidConnectionFailure = exports.establishOnboardingPlaidConnectionSuccess = exports.establishOnboardingPlaidConnection = exports.updateOnboardingPaymentAccountLoginStatusFailure = exports.updateOnboardingPaymentAccountLoginStatusSuccess = exports.updateOnboardingPaymentAccountLoginStatus = exports.updateOnboardingPaymentAccountStatusFailure = exports.updateOnboardingPaymentAccountStatusSuccess = exports.updateOnboardingPaymentAccountStatus = exports.updateOnboardingCustomerViewFailure = exports.updateOnboardingCustomerViewSuccess = exports.updateOnboardingCustomerView = exports.updateOnboardingCustomerViewDashboardLoadedFailure = exports.updateOnboardingCustomerViewDashboardLoadedSuccess = exports.updateOnboardingCustomerViewDashboardLoaded = exports.updateOnboardingCustomerViewCompleteStatusFailure = exports.updateOnboardingCustomerViewCompleteStatusSuccess = exports.updateOnboardingCustomerViewCompleteStatus = exports.fetchOnboardingCustomerSetupViewFailure = exports.fetchOnboardingCustomerSetupViewSuccess = exports.fetchOnboardingCustomerSetupView = exports.fetchOnboardingCustomerView = exports.initialState = void 0;
4
+ exports.verifyOnboardingOfficerOtpFailure = exports.verifyOnboardingOfficerOtpSuccess = exports.verifyOnboardingOfficerOtp = exports.resendOnboardingOfficerOtp = exports.sendOnboardingOfficerOtpFailure = exports.sendOnboardingOfficerOtpSuccess = exports.sendOnboardingOfficerOtp = exports.updateOnboardingCustomerViewUIState = exports.saveOnboardingCompnayOfficerPhoneInLocalStore = exports.saveOnboardingCustomerViewDataInLocalStore = exports.updateOnboardingCustomerViewLocalStoreData = exports.updateOnboardingCustomerViewAccountDetails = exports.updateCurrentStep = exports.getOnboardingPlaidLinkTokenFailure = exports.getOnboardingPlaidLinkTokenSuccess = exports.getOnboardingPlaidLinkToken = exports.establishOnboardingPlaidConnectionFailure = exports.establishOnboardingPlaidConnectionSuccess = exports.establishOnboardingPlaidConnection = exports.updateOnboardingPaymentAccountLoginStatusFailure = exports.updateOnboardingPaymentAccountLoginStatusSuccess = exports.updateOnboardingPaymentAccountLoginStatus = exports.updateOnboardingPaymentAccountStatusFailure = exports.updateOnboardingPaymentAccountStatusSuccess = exports.updateOnboardingPaymentAccountStatus = exports.updateOnboardingCustomerViewFailure = exports.updateOnboardingCustomerViewSuccess = exports.updateOnboardingCustomerView = exports.updateOnboardingCustomerViewDashboardLoadedFailure = exports.updateOnboardingCustomerViewDashboardLoadedSuccess = exports.updateOnboardingCustomerViewDashboardLoaded = exports.aiAgentsActivationPhaseChanged = exports.aiAgentsActivationCountsUpdated = exports.fetchAiAgentsActivationStatusFailure = exports.fetchAiAgentsActivationStatusSuccess = exports.fetchAiAgentsActivationStatus = exports.acknowledgeOnboardingAiActivationViewedFailure = exports.acknowledgeOnboardingAiActivationViewedSuccess = exports.acknowledgeOnboardingAiActivationViewed = exports.acknowledgeOnboardingAiFinanceTeamFailure = exports.acknowledgeOnboardingAiFinanceTeamSuccess = exports.acknowledgeOnboardingAiFinanceTeam = exports.updateOnboardingCustomerViewCompleteStatusFailure = exports.updateOnboardingCustomerViewCompleteStatusSuccess = exports.updateOnboardingCustomerViewCompleteStatus = exports.fetchOnboardingCustomerSetupViewFailure = exports.fetchOnboardingCustomerSetupViewSuccess = exports.fetchOnboardingCustomerSetupView = exports.fetchOnboardingCustomerView = exports.initialState = void 0;
5
+ exports.clearKycKybAutofillForOnboarding = exports.applyKybDocumentAutofillForOnboarding = exports.applyKycDocumentAutofillForOnboarding = exports.clearOnboardingCustomerView = exports.clearOnboardingCustomerViewDataInLocalStore = void 0;
5
6
  const toolkit_1 = require("@reduxjs/toolkit");
6
7
  const zeniDayJS_1 = require("../../../zeniDayJS");
8
+ const kycKybAutofillActions_1 = require("../../spendManagement/commonSetup/kycKybAutofillActions");
9
+ const onboardingCustomerViewState_1 = require("./onboardingCustomerViewState");
7
10
  const initialStatus = {
8
11
  fetchState: 'Not-Started',
9
12
  error: undefined,
@@ -13,61 +16,31 @@ exports.initialState = {
13
16
  saveStatus: initialStatus,
14
17
  dashboardLoadedStatus: initialStatus,
15
18
  currentStep: 'link_payment_account',
19
+ parsingDocumentFileIds: [],
16
20
  companyDetails: {
21
+ autoFilledFields: [],
17
22
  localData: undefined,
18
23
  },
19
- companyOfficerUpdateStatus: {
20
- Officer_1: {
24
+ companyOfficerUpdateStatus: (() => {
25
+ const emptyOfficerSlot = {
26
+ autoFilledFields: [],
21
27
  localData: undefined,
22
28
  sendOtpStatus: initialStatus,
23
29
  otpverificationStatus: initialStatus,
24
- },
25
- Officer_2: {
26
- localData: undefined,
27
- sendOtpStatus: initialStatus,
28
- otpverificationStatus: initialStatus,
29
- },
30
- Officer_3: {
31
- localData: undefined,
32
- sendOtpStatus: initialStatus,
33
- otpverificationStatus: initialStatus,
34
- },
35
- Officer_4: {
36
- localData: undefined,
37
- sendOtpStatus: initialStatus,
38
- otpverificationStatus: initialStatus,
39
- },
40
- Officer_5: {
41
- localData: undefined,
42
- sendOtpStatus: initialStatus,
43
- otpverificationStatus: initialStatus,
44
- },
45
- Officer_6: {
46
- localData: undefined,
47
- sendOtpStatus: initialStatus,
48
- otpverificationStatus: initialStatus,
49
- },
50
- Officer_7: {
51
- localData: undefined,
52
- sendOtpStatus: initialStatus,
53
- otpverificationStatus: initialStatus,
54
- },
55
- Officer_8: {
56
- localData: undefined,
57
- sendOtpStatus: initialStatus,
58
- otpverificationStatus: initialStatus,
59
- },
60
- Officer_9: {
61
- localData: undefined,
62
- sendOtpStatus: initialStatus,
63
- otpverificationStatus: initialStatus,
64
- },
65
- Officer_10: {
66
- localData: undefined,
67
- sendOtpStatus: initialStatus,
68
- otpverificationStatus: initialStatus,
69
- },
70
- },
30
+ };
31
+ return {
32
+ Officer_1: { ...emptyOfficerSlot },
33
+ Officer_2: { ...emptyOfficerSlot },
34
+ Officer_3: { ...emptyOfficerSlot },
35
+ Officer_4: { ...emptyOfficerSlot },
36
+ Officer_5: { ...emptyOfficerSlot },
37
+ Officer_6: { ...emptyOfficerSlot },
38
+ Officer_7: { ...emptyOfficerSlot },
39
+ Officer_8: { ...emptyOfficerSlot },
40
+ Officer_9: { ...emptyOfficerSlot },
41
+ Officer_10: { ...emptyOfficerSlot },
42
+ };
43
+ })(),
71
44
  primaryContactDetails: {},
72
45
  paymentAccountDetails: {
73
46
  fetchStatus: initialStatus,
@@ -95,6 +68,7 @@ exports.initialState = {
95
68
  },
96
69
  fetchState: 'Not-Started',
97
70
  error: undefined,
71
+ aiAgentsActivation: { ...onboardingCustomerViewState_1.emptyAiAgentsActivationSubview },
98
72
  uiState: {
99
73
  isQBOPopupOpen: false,
100
74
  isCardPaymentPopupOpen: false,
@@ -184,6 +158,126 @@ const onboardingCustomerView = (0, toolkit_1.createSlice)({
184
158
  };
185
159
  },
186
160
  },
161
+ acknowledgeOnboardingAiFinanceTeam: {
162
+ reducer(draft) {
163
+ draft.aiFinanceTeamAcknowledgementStatus = {
164
+ fetchState: 'In-Progress',
165
+ error: undefined,
166
+ };
167
+ },
168
+ prepare(companyId) {
169
+ return {
170
+ payload: { companyId },
171
+ };
172
+ },
173
+ },
174
+ acknowledgeOnboardingAiFinanceTeamSuccess(draft) {
175
+ draft.aiFinanceTeamAcknowledgementStatus = {
176
+ fetchState: 'Completed',
177
+ error: undefined,
178
+ };
179
+ },
180
+ acknowledgeOnboardingAiFinanceTeamFailure: {
181
+ reducer(draft, action) {
182
+ draft.aiFinanceTeamAcknowledgementStatus = {
183
+ fetchState: 'Error',
184
+ error: action.payload,
185
+ };
186
+ },
187
+ prepare(error) {
188
+ return {
189
+ payload: error,
190
+ };
191
+ },
192
+ },
193
+ acknowledgeOnboardingAiActivationViewed: {
194
+ reducer(draft) {
195
+ draft.aiActivationViewedAcknowledgementStatus = {
196
+ fetchState: 'In-Progress',
197
+ error: undefined,
198
+ };
199
+ },
200
+ prepare(companyId) {
201
+ return {
202
+ payload: { companyId },
203
+ };
204
+ },
205
+ },
206
+ acknowledgeOnboardingAiActivationViewedSuccess(draft) {
207
+ draft.aiActivationViewedAcknowledgementStatus = {
208
+ fetchState: 'Completed',
209
+ error: undefined,
210
+ };
211
+ },
212
+ acknowledgeOnboardingAiActivationViewedFailure: {
213
+ reducer(draft, action) {
214
+ draft.aiActivationViewedAcknowledgementStatus = {
215
+ fetchState: 'Error',
216
+ error: action.payload,
217
+ };
218
+ },
219
+ prepare(error) {
220
+ return {
221
+ payload: error,
222
+ };
223
+ },
224
+ },
225
+ fetchAiAgentsActivationStatus(draft) {
226
+ draft.aiAgentsActivation.fetchStatus = {
227
+ fetchState: 'In-Progress',
228
+ error: undefined,
229
+ };
230
+ },
231
+ fetchAiAgentsActivationStatusSuccess: {
232
+ reducer(draft, action) {
233
+ draft.aiAgentsActivation.fetchStatus = {
234
+ fetchState: 'Completed',
235
+ error: undefined,
236
+ };
237
+ draft.aiAgentsActivation.phases = action.payload.phases;
238
+ draft.aiAgentsActivation.counts = action.payload.counts;
239
+ },
240
+ prepare(payload) {
241
+ return { payload };
242
+ },
243
+ },
244
+ fetchAiAgentsActivationStatusFailure: {
245
+ reducer(draft, action) {
246
+ draft.aiAgentsActivation.fetchStatus = {
247
+ fetchState: 'Error',
248
+ error: action.payload,
249
+ };
250
+ },
251
+ prepare(error) {
252
+ return { payload: error };
253
+ },
254
+ },
255
+ aiAgentsActivationCountsUpdated: {
256
+ reducer(draft, action) {
257
+ draft.aiAgentsActivation.counts = {
258
+ ...draft.aiAgentsActivation.counts,
259
+ ...action.payload,
260
+ };
261
+ },
262
+ prepare(payload) {
263
+ return { payload };
264
+ },
265
+ },
266
+ aiAgentsActivationPhaseChanged: {
267
+ reducer(draft, action) {
268
+ const target = draft.aiAgentsActivation.phases;
269
+ const index = target.findIndex((phase) => phase.key === action.payload.key);
270
+ if (index === -1) {
271
+ target.push(action.payload);
272
+ }
273
+ else {
274
+ target[index] = { ...target[index], ...action.payload };
275
+ }
276
+ },
277
+ prepare(payload) {
278
+ return { payload };
279
+ },
280
+ },
187
281
  updateOnboardingCustomerViewDashboardLoaded: {
188
282
  reducer(draft) {
189
283
  draft.dashboardLoadedStatus = {
@@ -596,7 +690,82 @@ const onboardingCustomerView = (0, toolkit_1.createSlice)({
596
690
  clearOnboardingCustomerView(draft) {
597
691
  Object.assign(draft, exports.initialState);
598
692
  },
693
+ /** Merge AI-parsed officer fields into the officer's onboarding localData. */
694
+ applyKycDocumentAutofillForOnboarding: {
695
+ reducer(draft, action) {
696
+ const { officerType, values, autoFilledFieldNames, fileId } = action.payload;
697
+ const slot = draft.companyOfficerUpdateStatus[officerType];
698
+ slot.localData = Object.assign({}, slot.localData, values);
699
+ slot.autoFilledFields = Array.from(new Set([...(slot.autoFilledFields ?? []), ...autoFilledFieldNames]));
700
+ draft.parsingDocumentFileIds = (draft.parsingDocumentFileIds ?? []).filter((id) => id !== fileId);
701
+ },
702
+ prepare(payload) {
703
+ return { payload };
704
+ },
705
+ },
706
+ /** Merge AI-parsed company fields into companyDetails onboarding localData. */
707
+ applyKybDocumentAutofillForOnboarding: {
708
+ reducer(draft, action) {
709
+ const { values, autoFilledFieldNames, fileId } = action.payload;
710
+ draft.companyDetails.localData = Object.assign({}, draft.companyDetails.localData, values);
711
+ const prev = draft.companyDetails.autoFilledFields ?? [];
712
+ draft.companyDetails.autoFilledFields = Array.from(new Set([...prev, ...autoFilledFieldNames]));
713
+ draft.parsingDocumentFileIds = (draft.parsingDocumentFileIds ?? []).filter((id) => id !== fileId);
714
+ },
715
+ prepare(payload) {
716
+ return { payload };
717
+ },
718
+ },
719
+ /** Wipe AI-autofill badges during onboarding. */
720
+ clearKycKybAutofillForOnboarding: {
721
+ reducer(draft, action) {
722
+ const { officerType } = action.payload;
723
+ if (officerType != null) {
724
+ draft.companyOfficerUpdateStatus[officerType].autoFilledFields = [];
725
+ }
726
+ else {
727
+ draft.companyDetails.autoFilledFields = [];
728
+ Object.keys(draft.companyOfficerUpdateStatus).forEach((key) => {
729
+ draft.companyOfficerUpdateStatus[key].autoFilledFields = [];
730
+ });
731
+ }
732
+ },
733
+ prepare(payload = {}) {
734
+ return { payload };
735
+ },
736
+ },
737
+ },
738
+ extraReducers: (builder) => {
739
+ const addParsingFileId = (draft, fileId) => {
740
+ draft.parsingDocumentFileIds = draft.parsingDocumentFileIds ?? [];
741
+ if (!draft.parsingDocumentFileIds.includes(fileId)) {
742
+ draft.parsingDocumentFileIds.push(fileId);
743
+ }
744
+ };
745
+ const removeParsingFileId = (draft, fileId) => {
746
+ draft.parsingDocumentFileIds = (draft.parsingDocumentFileIds ?? []).filter((id) => id !== fileId);
747
+ };
748
+ builder.addCase(kycKybAutofillActions_1.parseUploadedKycDocument, (draft, action) => {
749
+ if (action.payload.target === 'onboarding') {
750
+ addParsingFileId(draft, action.payload.fileId);
751
+ }
752
+ });
753
+ builder.addCase(kycKybAutofillActions_1.parseUploadedKybDocument, (draft, action) => {
754
+ if (action.payload.target === 'onboarding') {
755
+ addParsingFileId(draft, action.payload.fileId);
756
+ }
757
+ });
758
+ builder.addCase(kycKybAutofillActions_1.parseUploadedKycDocumentFailure, (draft, action) => {
759
+ if (action.payload.target === 'onboarding') {
760
+ removeParsingFileId(draft, action.payload.fileId);
761
+ }
762
+ });
763
+ builder.addCase(kycKybAutofillActions_1.parseUploadedKybDocumentFailure, (draft, action) => {
764
+ if (action.payload.target === 'onboarding') {
765
+ removeParsingFileId(draft, action.payload.fileId);
766
+ }
767
+ });
599
768
  },
600
769
  });
601
- _a = onboardingCustomerView.actions, exports.fetchOnboardingCustomerView = _a.fetchOnboardingCustomerView, exports.fetchOnboardingCustomerSetupView = _a.fetchOnboardingCustomerSetupView, exports.fetchOnboardingCustomerSetupViewSuccess = _a.fetchOnboardingCustomerSetupViewSuccess, exports.fetchOnboardingCustomerSetupViewFailure = _a.fetchOnboardingCustomerSetupViewFailure, exports.updateOnboardingCustomerViewCompleteStatus = _a.updateOnboardingCustomerViewCompleteStatus, exports.updateOnboardingCustomerViewCompleteStatusSuccess = _a.updateOnboardingCustomerViewCompleteStatusSuccess, exports.updateOnboardingCustomerViewCompleteStatusFailure = _a.updateOnboardingCustomerViewCompleteStatusFailure, exports.updateOnboardingCustomerViewDashboardLoaded = _a.updateOnboardingCustomerViewDashboardLoaded, exports.updateOnboardingCustomerViewDashboardLoadedSuccess = _a.updateOnboardingCustomerViewDashboardLoadedSuccess, exports.updateOnboardingCustomerViewDashboardLoadedFailure = _a.updateOnboardingCustomerViewDashboardLoadedFailure, exports.updateOnboardingCustomerView = _a.updateOnboardingCustomerView, exports.updateOnboardingCustomerViewSuccess = _a.updateOnboardingCustomerViewSuccess, exports.updateOnboardingCustomerViewFailure = _a.updateOnboardingCustomerViewFailure, exports.updateOnboardingPaymentAccountStatus = _a.updateOnboardingPaymentAccountStatus, exports.updateOnboardingPaymentAccountStatusSuccess = _a.updateOnboardingPaymentAccountStatusSuccess, exports.updateOnboardingPaymentAccountStatusFailure = _a.updateOnboardingPaymentAccountStatusFailure, exports.updateOnboardingPaymentAccountLoginStatus = _a.updateOnboardingPaymentAccountLoginStatus, exports.updateOnboardingPaymentAccountLoginStatusSuccess = _a.updateOnboardingPaymentAccountLoginStatusSuccess, exports.updateOnboardingPaymentAccountLoginStatusFailure = _a.updateOnboardingPaymentAccountLoginStatusFailure, exports.establishOnboardingPlaidConnection = _a.establishOnboardingPlaidConnection, exports.establishOnboardingPlaidConnectionSuccess = _a.establishOnboardingPlaidConnectionSuccess, exports.establishOnboardingPlaidConnectionFailure = _a.establishOnboardingPlaidConnectionFailure, exports.getOnboardingPlaidLinkToken = _a.getOnboardingPlaidLinkToken, exports.getOnboardingPlaidLinkTokenSuccess = _a.getOnboardingPlaidLinkTokenSuccess, exports.getOnboardingPlaidLinkTokenFailure = _a.getOnboardingPlaidLinkTokenFailure, exports.updateCurrentStep = _a.updateCurrentStep, exports.updateOnboardingCustomerViewAccountDetails = _a.updateOnboardingCustomerViewAccountDetails, exports.updateOnboardingCustomerViewLocalStoreData = _a.updateOnboardingCustomerViewLocalStoreData, exports.saveOnboardingCustomerViewDataInLocalStore = _a.saveOnboardingCustomerViewDataInLocalStore, exports.saveOnboardingCompnayOfficerPhoneInLocalStore = _a.saveOnboardingCompnayOfficerPhoneInLocalStore, exports.updateOnboardingCustomerViewUIState = _a.updateOnboardingCustomerViewUIState, exports.sendOnboardingOfficerOtp = _a.sendOnboardingOfficerOtp, exports.sendOnboardingOfficerOtpSuccess = _a.sendOnboardingOfficerOtpSuccess, exports.sendOnboardingOfficerOtpFailure = _a.sendOnboardingOfficerOtpFailure, exports.resendOnboardingOfficerOtp = _a.resendOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtp = _a.verifyOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtpSuccess = _a.verifyOnboardingOfficerOtpSuccess, exports.verifyOnboardingOfficerOtpFailure = _a.verifyOnboardingOfficerOtpFailure, exports.clearOnboardingCustomerViewDataInLocalStore = _a.clearOnboardingCustomerViewDataInLocalStore, exports.clearOnboardingCustomerView = _a.clearOnboardingCustomerView;
770
+ _a = onboardingCustomerView.actions, exports.fetchOnboardingCustomerView = _a.fetchOnboardingCustomerView, exports.fetchOnboardingCustomerSetupView = _a.fetchOnboardingCustomerSetupView, exports.fetchOnboardingCustomerSetupViewSuccess = _a.fetchOnboardingCustomerSetupViewSuccess, exports.fetchOnboardingCustomerSetupViewFailure = _a.fetchOnboardingCustomerSetupViewFailure, exports.updateOnboardingCustomerViewCompleteStatus = _a.updateOnboardingCustomerViewCompleteStatus, exports.updateOnboardingCustomerViewCompleteStatusSuccess = _a.updateOnboardingCustomerViewCompleteStatusSuccess, exports.updateOnboardingCustomerViewCompleteStatusFailure = _a.updateOnboardingCustomerViewCompleteStatusFailure, exports.acknowledgeOnboardingAiFinanceTeam = _a.acknowledgeOnboardingAiFinanceTeam, exports.acknowledgeOnboardingAiFinanceTeamSuccess = _a.acknowledgeOnboardingAiFinanceTeamSuccess, exports.acknowledgeOnboardingAiFinanceTeamFailure = _a.acknowledgeOnboardingAiFinanceTeamFailure, exports.acknowledgeOnboardingAiActivationViewed = _a.acknowledgeOnboardingAiActivationViewed, exports.acknowledgeOnboardingAiActivationViewedSuccess = _a.acknowledgeOnboardingAiActivationViewedSuccess, exports.acknowledgeOnboardingAiActivationViewedFailure = _a.acknowledgeOnboardingAiActivationViewedFailure, exports.fetchAiAgentsActivationStatus = _a.fetchAiAgentsActivationStatus, exports.fetchAiAgentsActivationStatusSuccess = _a.fetchAiAgentsActivationStatusSuccess, exports.fetchAiAgentsActivationStatusFailure = _a.fetchAiAgentsActivationStatusFailure, exports.aiAgentsActivationCountsUpdated = _a.aiAgentsActivationCountsUpdated, exports.aiAgentsActivationPhaseChanged = _a.aiAgentsActivationPhaseChanged, exports.updateOnboardingCustomerViewDashboardLoaded = _a.updateOnboardingCustomerViewDashboardLoaded, exports.updateOnboardingCustomerViewDashboardLoadedSuccess = _a.updateOnboardingCustomerViewDashboardLoadedSuccess, exports.updateOnboardingCustomerViewDashboardLoadedFailure = _a.updateOnboardingCustomerViewDashboardLoadedFailure, exports.updateOnboardingCustomerView = _a.updateOnboardingCustomerView, exports.updateOnboardingCustomerViewSuccess = _a.updateOnboardingCustomerViewSuccess, exports.updateOnboardingCustomerViewFailure = _a.updateOnboardingCustomerViewFailure, exports.updateOnboardingPaymentAccountStatus = _a.updateOnboardingPaymentAccountStatus, exports.updateOnboardingPaymentAccountStatusSuccess = _a.updateOnboardingPaymentAccountStatusSuccess, exports.updateOnboardingPaymentAccountStatusFailure = _a.updateOnboardingPaymentAccountStatusFailure, exports.updateOnboardingPaymentAccountLoginStatus = _a.updateOnboardingPaymentAccountLoginStatus, exports.updateOnboardingPaymentAccountLoginStatusSuccess = _a.updateOnboardingPaymentAccountLoginStatusSuccess, exports.updateOnboardingPaymentAccountLoginStatusFailure = _a.updateOnboardingPaymentAccountLoginStatusFailure, exports.establishOnboardingPlaidConnection = _a.establishOnboardingPlaidConnection, exports.establishOnboardingPlaidConnectionSuccess = _a.establishOnboardingPlaidConnectionSuccess, exports.establishOnboardingPlaidConnectionFailure = _a.establishOnboardingPlaidConnectionFailure, exports.getOnboardingPlaidLinkToken = _a.getOnboardingPlaidLinkToken, exports.getOnboardingPlaidLinkTokenSuccess = _a.getOnboardingPlaidLinkTokenSuccess, exports.getOnboardingPlaidLinkTokenFailure = _a.getOnboardingPlaidLinkTokenFailure, exports.updateCurrentStep = _a.updateCurrentStep, exports.updateOnboardingCustomerViewAccountDetails = _a.updateOnboardingCustomerViewAccountDetails, exports.updateOnboardingCustomerViewLocalStoreData = _a.updateOnboardingCustomerViewLocalStoreData, exports.saveOnboardingCustomerViewDataInLocalStore = _a.saveOnboardingCustomerViewDataInLocalStore, exports.saveOnboardingCompnayOfficerPhoneInLocalStore = _a.saveOnboardingCompnayOfficerPhoneInLocalStore, exports.updateOnboardingCustomerViewUIState = _a.updateOnboardingCustomerViewUIState, exports.sendOnboardingOfficerOtp = _a.sendOnboardingOfficerOtp, exports.sendOnboardingOfficerOtpSuccess = _a.sendOnboardingOfficerOtpSuccess, exports.sendOnboardingOfficerOtpFailure = _a.sendOnboardingOfficerOtpFailure, exports.resendOnboardingOfficerOtp = _a.resendOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtp = _a.verifyOnboardingOfficerOtp, exports.verifyOnboardingOfficerOtpSuccess = _a.verifyOnboardingOfficerOtpSuccess, exports.verifyOnboardingOfficerOtpFailure = _a.verifyOnboardingOfficerOtpFailure, exports.clearOnboardingCustomerViewDataInLocalStore = _a.clearOnboardingCustomerViewDataInLocalStore, exports.clearOnboardingCustomerView = _a.clearOnboardingCustomerView, exports.applyKycDocumentAutofillForOnboarding = _a.applyKycDocumentAutofillForOnboarding, exports.applyKybDocumentAutofillForOnboarding = _a.applyKybDocumentAutofillForOnboarding, exports.clearKycKybAutofillForOnboarding = _a.clearKycKybAutofillForOnboarding;
602
771
  exports.default = onboardingCustomerView.reducer;
@@ -15,7 +15,7 @@ import { CompanyView } from '../../companyView/types/companyView';
15
15
  import { CompanyDetails, CompanyOfficersDetails } from '../../spendManagement/commonSetup/setupViewSelector';
16
16
  import { CompanyOfficerLocalData } from '../../spendManagement/commonSetup/setupViewState';
17
17
  import { PlaidConnectionDetails } from '../../spendManagement/plaidAccount/plaidAccountViewState';
18
- import { OnboardingCustomerViewUIState, OnboardingStep } from './onboardingCustomerViewState';
18
+ import { AiAgentsActivationCounts, AiAgentsActivationPhase, AiAgentsActivationSubview, OnboardingCustomerViewUIState, OnboardingStep } from './onboardingCustomerViewState';
19
19
  export interface OnboardingCustomerView {
20
20
  allNationalityCountries: Country[];
21
21
  allRequiredStepsCompleted: boolean;
@@ -28,6 +28,7 @@ export interface OnboardingCustomerView {
28
28
  fetchStatus: FetchStateAndError;
29
29
  halfCompletedSteps: OnboardingStep[];
30
30
  isInterimEmailSent: boolean;
31
+ parsingDocumentFileIds: ID[];
31
32
  paymentAccountFetchStatus: FetchStateAndError;
32
33
  paymentAccountUpdateStatus: FetchStateAndError;
33
34
  pendingSaveDetails: {
@@ -55,3 +56,6 @@ export declare const onboardingStepsData: (isValidConnection: boolean, productSe
55
56
  };
56
57
  export declare function isCompanyDetailsSavePending(fileState: FileState, company?: CompanyView, primaryContact?: User, companyDetailsLocalData?: CompanyDetails): boolean;
57
58
  export declare const getProductSettingsString: (productSettings: TenantProductSettings | undefined) => string;
59
+ export declare const getAiAgentsActivationSubview: (state: RootState) => AiAgentsActivationSubview;
60
+ export declare const getAiAgentsActivationPhases: (state: RootState) => AiAgentsActivationPhase[];
61
+ export declare const getAiAgentsActivationCounts: (state: RootState) => AiAgentsActivationCounts;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProductSettingsString = exports.onboardingStepsData = void 0;
3
+ exports.getAiAgentsActivationCounts = exports.getAiAgentsActivationPhases = exports.getAiAgentsActivationSubview = exports.getProductSettingsString = exports.onboardingStepsData = void 0;
4
4
  exports.getOnboardingCustomerView = getOnboardingCustomerView;
5
5
  exports.isOfficerDetailsCompleted = isOfficerDetailsCompleted;
6
6
  exports.isCompanyDetailsSavePending = isCompanyDetailsSavePending;
@@ -17,7 +17,7 @@ const setupViewSelector_1 = require("../../spendManagement/commonSetup/setupView
17
17
  const onboardingCustomerViewState_1 = require("./onboardingCustomerViewState");
18
18
  function getOnboardingCustomerView(state, companyId) {
19
19
  const { fileState, paymentAccountState, onboardingCustomerViewState, userState, userRoleState, subscriptionPaymentAccountState, companyConfigState, cardPaymentViewState, countryListState, addressViewState, } = state;
20
- const { companyDetails, companyOfficerUpdateStatus, primaryContactDetails, subscriptionPaymentAccountIds, paymentAccountDetails, plaidConnectionDetails, updateStatus, saveStatus, currentStep, uiState, fetchState, error, } = onboardingCustomerViewState;
20
+ const { companyDetails, companyOfficerUpdateStatus, primaryContactDetails, subscriptionPaymentAccountIds, paymentAccountDetails, plaidConnectionDetails, parsingDocumentFileIds, updateStatus, saveStatus, currentStep, uiState, fetchState, error, } = onboardingCustomerViewState;
21
21
  const { paymentAccountIds } = paymentAccountDetails;
22
22
  let subscriptionPaymentAccount;
23
23
  let paymentAccount;
@@ -60,6 +60,7 @@ function getOnboardingCustomerView(state, companyId) {
60
60
  companyDetails,
61
61
  companyOfficerUpdateStatus,
62
62
  primaryContactDetails,
63
+ parsingDocumentFileIds,
63
64
  });
64
65
  const companyAddress = addressViewState.newAddressState?.company_address;
65
66
  if (companyAddress == null &&
@@ -125,6 +126,7 @@ function getOnboardingCustomerView(state, companyId) {
125
126
  return {
126
127
  companyDetailsLocalData,
127
128
  companyOfficerLocalData,
129
+ parsingDocumentFileIds,
128
130
  subscriptionBillingAddress: subscriptionBillingAddress?.addressToCreate,
129
131
  companyView,
130
132
  allNationalityCountries,
@@ -331,3 +333,14 @@ const getProductSettingsString = (productSettings) => {
331
333
  .join(',');
332
334
  };
333
335
  exports.getProductSettingsString = getProductSettingsString;
336
+ const fromActivationView = (state) =>
337
+ // Fall back to the empty subview so state hydrated from an older persisted
338
+ // version (before aiAgentsActivation existed) doesn't crash on .phases/.counts.
339
+ state.onboardingCustomerViewState.aiAgentsActivation ??
340
+ onboardingCustomerViewState_1.emptyAiAgentsActivationSubview;
341
+ const getAiAgentsActivationSubview = (state) => fromActivationView(state);
342
+ exports.getAiAgentsActivationSubview = getAiAgentsActivationSubview;
343
+ const getAiAgentsActivationPhases = (state) => fromActivationView(state).phases;
344
+ exports.getAiAgentsActivationPhases = getAiAgentsActivationPhases;
345
+ const getAiAgentsActivationCounts = (state) => fromActivationView(state).counts;
346
+ exports.getAiAgentsActivationCounts = getAiAgentsActivationCounts;
@@ -21,16 +21,32 @@ export interface OnboardingCustomerViewUIState {
21
21
  isQBOPopupOpen: boolean;
22
22
  }
23
23
  export interface OnboardingCustomerViewState extends FetchedState {
24
+ aiAgentsActivation: AiAgentsActivationSubview;
24
25
  companyDetails: {
26
+ /**
27
+ * Field names from {@link CompanyDetailsLocalData} populated by AI autofill
28
+ * from an uploaded KYB document during onboarding. Drives the ✦ sparkle.
29
+ */
30
+ autoFilledFields: string[];
25
31
  localData?: CompanyDetailsLocalData;
26
32
  };
27
33
  companyOfficerUpdateStatus: Record<CompanyOfficerType, {
34
+ /**
35
+ * Field names from {@link CompanyOfficerLocalData} populated by AI autofill
36
+ * from an uploaded KYC identity document during onboarding.
37
+ */
38
+ autoFilledFields: string[];
28
39
  otpverificationStatus: FetchStateAndError;
29
40
  sendOtpStatus: FetchStateAndError;
30
41
  localData?: CompanyOfficerLocalData;
31
42
  }>;
32
43
  currentStep: OnboardingStep;
33
44
  dashboardLoadedStatus: FetchStateAndError;
45
+ /**
46
+ * File IDs currently being parsed by the AI autofill epic for onboarding.
47
+ * Drives the "AI is reading your document" overlay on the upload field.
48
+ */
49
+ parsingDocumentFileIds: ID[];
34
50
  paymentAccountDetails: {
35
51
  fetchStatus: FetchStateAndError;
36
52
  paymentAccountIds: ID[];
@@ -44,5 +60,29 @@ export interface OnboardingCustomerViewState extends FetchedState {
44
60
  subscriptionPaymentAccountIds: ID[];
45
61
  uiState: OnboardingCustomerViewUIState;
46
62
  updateStatus: FetchStateAndError;
63
+ aiActivationViewedAcknowledgementStatus?: FetchStateAndError;
64
+ aiFinanceTeamAcknowledgementStatus?: FetchStateAndError;
47
65
  subscriptionBillingAddress?: Address;
48
66
  }
67
+ export type AiAgentsActivationPhaseStatus = 'idle' | 'starting' | 'building' | 'ready';
68
+ export interface AiAgentsActivationPhase {
69
+ key: string;
70
+ status: AiAgentsActivationPhaseStatus;
71
+ completedAt?: string;
72
+ startedAt?: string;
73
+ }
74
+ export interface AiAgentsActivationCounts {
75
+ customerCount: number;
76
+ glAccountCount: number;
77
+ targetTransactionCount: number;
78
+ transactionCount: number;
79
+ vendorCount: number;
80
+ asOf?: string;
81
+ }
82
+ export interface AiAgentsActivationSubview {
83
+ counts: AiAgentsActivationCounts;
84
+ fetchStatus: FetchStateAndError;
85
+ phases: AiAgentsActivationPhase[];
86
+ }
87
+ export declare const emptyAiAgentsActivationCounts: AiAgentsActivationCounts;
88
+ export declare const emptyAiAgentsActivationSubview: AiAgentsActivationSubview;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toOnboardingStepType = exports.ALL_ONBOARDING_STEPS = exports.ALL_CUSTOMER_ONBOARDING_STEPS_WITH_QBO = exports.ALL_ZENI_USER_ONBOARDING_STEPS = exports.ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT = exports.REQUIRED_ONBOARDING_STEPS = exports.CUSTOMER_REQUIRED_ONBOARDING_STEPS_WITH_QBO = exports.ZENI_USER_REQUIRED_ONBOARDING_STEPS = void 0;
3
+ exports.emptyAiAgentsActivationSubview = exports.emptyAiAgentsActivationCounts = exports.toOnboardingStepType = exports.ALL_ONBOARDING_STEPS = exports.ALL_CUSTOMER_ONBOARDING_STEPS_WITH_QBO = exports.ALL_ZENI_USER_ONBOARDING_STEPS = exports.ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT = exports.REQUIRED_ONBOARDING_STEPS = exports.CUSTOMER_REQUIRED_ONBOARDING_STEPS_WITH_QBO = exports.ZENI_USER_REQUIRED_ONBOARDING_STEPS = void 0;
4
4
  const stringToUnion_1 = require("../../../commonStateTypes/stringToUnion");
5
5
  exports.ZENI_USER_REQUIRED_ONBOARDING_STEPS = [
6
6
  'link_payment_account',
@@ -30,3 +30,15 @@ exports.ALL_ONBOARDING_STEPS = [
30
30
  ];
31
31
  const toOnboardingStepType = (v) => (0, stringToUnion_1.stringToUnion)(v, exports.ALL_ONBOARDING_STEPS);
32
32
  exports.toOnboardingStepType = toOnboardingStepType;
33
+ exports.emptyAiAgentsActivationCounts = {
34
+ customerCount: 0,
35
+ glAccountCount: 0,
36
+ targetTransactionCount: 0,
37
+ transactionCount: 0,
38
+ vendorCount: 0,
39
+ };
40
+ exports.emptyAiAgentsActivationSubview = {
41
+ counts: exports.emptyAiAgentsActivationCounts,
42
+ fetchStatus: { fetchState: 'Not-Started', error: undefined },
43
+ phases: [],
44
+ };
@@ -11,7 +11,7 @@ const setupViewSelector_1 = require("../commonSetup/setupViewSelector");
11
11
  const depositAccountListSelector_1 = require("../zeniAccounts/depositAccountList/depositAccountListSelector");
12
12
  const paymentAccountListSelector_1 = require("../zeniAccounts/paymentAccountList/paymentAccountListSelector");
13
13
  const buildCashManagementRule = (autoSweepFlowState, depositAccountState, treasuryDetailState) => {
14
- const { settingsId, bufferAmount, frequency, memo, primaryFundingAccountId, nextTransferDate } = autoSweepFlowState;
14
+ const { settingsId, bufferAmount, frequency, memo, primaryFundingAccountId, nextTransferDate, } = autoSweepFlowState;
15
15
  if (settingsId == null || primaryFundingAccountId == null) {
16
16
  return undefined;
17
17
  }
@@ -2,8 +2,8 @@ import { Amount } from '../../../commonStateTypes/amount';
2
2
  import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common';
3
3
  import { ZeniDate } from '../../../zeniDayJS';
4
4
  import { AutoSweepFrequency } from '../cashManagement/autoSweepFlow/autoSweepFlowState';
5
- import { FundingAccount } from '../commonSetup/setupViewSelector';
6
5
  import { CommonHistoryView } from '../commonHistoryView/commonHistory';
6
+ import { FundingAccount } from '../commonSetup/setupViewSelector';
7
7
  import { TreasurySummaryWithBalance } from '../treasury/treasuryList/treasuryDetailState';
8
8
  import { ReviewTransferDetail } from '../zeniAccounts/transferDetail/transferDetailState';
9
9
  import { AutoTransferRuleFrequency, AutoTransferRuleLocalData, AutoTransferRuleType } from './autoTransferRulesPayload';
@@ -9,8 +9,8 @@ exports.getPaymentSection = getPaymentSection;
9
9
  exports.toPaymentToOption = toPaymentToOption;
10
10
  const get_1 = __importDefault(require("lodash/get"));
11
11
  const has_1 = __importDefault(require("lodash/has"));
12
- const approvalRuleSelector_1 = require("../../../../entity/approvalRule/approvalRuleSelector");
13
12
  const reduceFetchState_1 = require("../../../../commonStateTypes/reduceFetchState");
13
+ const approvalRuleSelector_1 = require("../../../../entity/approvalRule/approvalRuleSelector");
14
14
  const bankAccountSelector_1 = require("../../../../entity/bankAccount/bankAccountSelector");
15
15
  const contactSelector_1 = require("../../../../entity/billPay/contact/contactSelector");
16
16
  const companySelector_1 = require("../../../../entity/company/companySelector");
@@ -14,9 +14,7 @@ const autoSweepFlowReducer_1 = require("../autoSweepFlowReducer");
14
14
  */
15
15
  const fetchCashManagementSettingsEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(autoSweepFlowReducer_1.fetchCashManagementSettings.match), (0, operators_1.switchMap)(() => {
16
16
  const endpoint = `${zeniAPI.apiEndPoints.cashManagementAgentBaseUrl}/1.0/cash-management/settings`;
17
- return zeniAPI
18
- .getJSON(endpoint)
19
- .pipe((0, operators_1.mergeMap)((response) => {
17
+ return zeniAPI.getJSON(endpoint).pipe((0, operators_1.mergeMap)((response) => {
20
18
  if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
21
19
  return (0, rxjs_1.of)(
22
20
  // Publish the source deposit account into the shared entity
@@ -1,5 +1,5 @@
1
1
  import { ZeniAPIResponse } from '../../../../responsePayload';
2
- import { CashManagementBannerData, CashManagementBankAccountType, CashManagementScenario, CashManagementSubMovementType, CashManagementTransfer, CashManagementTransferStatus, UpcomingPaymentEvent, UpcomingPaymentEventAccountType } from './cashManagementOverviewState';
2
+ import { CashManagementBankAccountType, CashManagementBannerData, CashManagementScenario, CashManagementSubMovementType, CashManagementTransfer, CashManagementTransferStatus, UpcomingPaymentEvent, UpcomingPaymentEventAccountType } from './cashManagementOverviewState';
3
3
  export interface CashAgentEventPayload {
4
4
  account_id: string;
5
5
  account_type: UpcomingPaymentEventAccountType;
@@ -214,8 +214,7 @@ const addAmounts = (a, b) => {
214
214
  const sumCashBalances = (paymentAccountIds, paymentAccountState, depositAccountIds, depositAccountState) => {
215
215
  let total = (0, amount_1.zeroAmount)();
216
216
  paymentAccountIds.forEach((id) => {
217
- const balance = paymentAccountState.paymentAccountByID[id]?.balances
218
- ?.available;
217
+ const balance = paymentAccountState.paymentAccountByID[id]?.balances?.available;
219
218
  if (balance != null) {
220
219
  total = addAmounts(total, balance);
221
220
  }
@@ -0,0 +1,28 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { RootState } from '../../../../../reducer';
3
+ import { ZeniAPI } from '../../../../../zeniAPI';
4
+ import { applyKybDocumentAutofillForOnboarding } from '../../../../onboardingView/customerView/onboardingCustomerViewReducer';
5
+ import { parseUploadedKybDocument, parseUploadedKybDocumentFailure } from '../../kycKybAutofillActions';
6
+ import { applyKybDocumentAutofillForSetup } from '../../setupViewReducer';
7
+ import { CompanyDetailsLocalData } from '../../setupViewState';
8
+ export type ActionType = ReturnType<typeof parseUploadedKybDocument | typeof parseUploadedKybDocumentFailure | typeof applyKybDocumentAutofillForSetup | typeof applyKybDocumentAutofillForOnboarding>;
9
+ export declare const parseUploadedKybDocumentEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<{
10
+ payload: import("../../kycKybAutofillActions").ParseUploadedDocumentFailurePayload;
11
+ type: string;
12
+ } | {
13
+ payload: {
14
+ autoFilledFieldNames: string[];
15
+ companyId: import("../../../../..").ID;
16
+ fileId: import("../../../../..").ID;
17
+ values: Partial<CompanyDetailsLocalData>;
18
+ };
19
+ type: "onboardingCustomerView/applyKybDocumentAutofillForOnboarding";
20
+ } | {
21
+ payload: {
22
+ autoFilledFieldNames: string[];
23
+ companyId: import("../../../../..").ID;
24
+ fileId: import("../../../../..").ID;
25
+ values: Partial<CompanyDetailsLocalData>;
26
+ };
27
+ type: "setupView/applyKybDocumentAutofillForSetup";
28
+ }>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseUploadedKybDocumentEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const responsePayload_1 = require("../../../../../responsePayload");
7
+ const onboardingCustomerViewReducer_1 = require("../../../../onboardingView/customerView/onboardingCustomerViewReducer");
8
+ const kycKybAutofillActions_1 = require("../../kycKybAutofillActions");
9
+ const kycKybParseMapper_1 = require("../../kycKybParseMapper");
10
+ const setupViewReducer_1 = require("../../setupViewReducer");
11
+ const PROCESS_DOCUMENT_SYNC_PATH = '/1.0/documents/process/sync';
12
+ const parseUploadedKybDocumentEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(kycKybAutofillActions_1.parseUploadedKybDocument.match), (0, operators_1.mergeMap)((action) => {
13
+ const { target, companyId, fileId, documentType } = action.payload;
14
+ const url = `${zeniAPI.apiEndPoints.communicationAgentMicroServiceBaseUrl}${PROCESS_DOCUMENT_SYNC_PATH}`;
15
+ const requestPayload = {
16
+ provided_document_type: documentType,
17
+ files: [{ file_id: fileId }],
18
+ processing_priority: 10,
19
+ metadata: { source: 'kyc_kyb_autofill' },
20
+ };
21
+ const failureAction = (0, kycKybAutofillActions_1.parseUploadedKybDocumentFailure)({ target, fileId });
22
+ return zeniAPI
23
+ .postAndGetJSON(url, requestPayload)
24
+ .pipe((0, operators_1.mergeMap)((response) => {
25
+ if (!(0, responsePayload_1.isSuccessResponse)(response) || response.data == null) {
26
+ return (0, rxjs_1.of)(failureAction);
27
+ }
28
+ // Sync API returns a batch envelope: `data.files[0].extracted_data`
29
+ // is the parser payload; `data` itself is the request-level wrapper.
30
+ const extracted = response.data.files?.[0]?.extracted_data;
31
+ if (extracted == null) {
32
+ return (0, rxjs_1.of)(failureAction);
33
+ }
34
+ let result;
35
+ switch (documentType) {
36
+ case 'certificate_of_incorporation':
37
+ result = (0, kycKybParseMapper_1.mapCoiToCompanyDetails)(extracted);
38
+ break;
39
+ case 'tax_ein':
40
+ result = (0, kycKybParseMapper_1.mapTaxEinToCompanyDetails)(extracted);
41
+ break;
42
+ }
43
+ if (result.autoFilledFieldNames.length === 0) {
44
+ return (0, rxjs_1.of)(failureAction);
45
+ }
46
+ const applyAction = target === 'setup'
47
+ ? (0, setupViewReducer_1.applyKybDocumentAutofillForSetup)({
48
+ companyId,
49
+ fileId,
50
+ values: result.values,
51
+ autoFilledFieldNames: result.autoFilledFieldNames,
52
+ })
53
+ : (0, onboardingCustomerViewReducer_1.applyKybDocumentAutofillForOnboarding)({
54
+ companyId,
55
+ fileId,
56
+ values: result.values,
57
+ autoFilledFieldNames: result.autoFilledFieldNames,
58
+ });
59
+ return (0, rxjs_1.of)(applyAction);
60
+ }), (0, operators_1.catchError)(() => (0, rxjs_1.of)(failureAction)));
61
+ }));
62
+ exports.parseUploadedKybDocumentEpic = parseUploadedKybDocumentEpic;