@zeniai/client-epic-state 5.0.90-betaAS10 → 5.0.90-betaAS3

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 (28) hide show
  1. package/lib/commonPayloadTypes/commonPayload.d.ts +4 -25
  2. package/lib/esm/index.js +0 -2
  3. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/epics/fetchIntlVerificationFormEpic.js +3 -7
  4. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/epics/initializeIntlVerificationFormEpic.js +41 -33
  5. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationFieldConstants.js +0 -8
  6. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationPayload.js +1 -9
  7. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationReducer.js +0 -3
  8. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationSelector.js +7 -20
  9. package/lib/index.d.ts +0 -2
  10. package/lib/index.js +4 -8
  11. package/lib/view/spendManagement/billPay/internationalWireVerification/epics/fetchIntlVerificationFormEpic.d.ts +3 -3
  12. package/lib/view/spendManagement/billPay/internationalWireVerification/epics/fetchIntlVerificationFormEpic.js +2 -6
  13. package/lib/view/spendManagement/billPay/internationalWireVerification/epics/initializeIntlVerificationFormEpic.d.ts +1 -2
  14. package/lib/view/spendManagement/billPay/internationalWireVerification/epics/initializeIntlVerificationFormEpic.js +40 -32
  15. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationFieldConstants.d.ts +0 -3
  16. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationFieldConstants.js +1 -9
  17. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationPayload.d.ts +1 -2
  18. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationPayload.js +1 -10
  19. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationReducer.js +0 -3
  20. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationSelector.js +7 -20
  21. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationState.d.ts +0 -2
  22. package/package.json +1 -1
  23. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/internationalWireOnboardingDetailsToLocalData.js +0 -146
  24. package/lib/esm/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationLocalDataHelpers.js +0 -86
  25. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireOnboardingDetailsToLocalData.d.ts +0 -4
  26. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireOnboardingDetailsToLocalData.js +0 -150
  27. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationLocalDataHelpers.d.ts +0 -27
  28. package/lib/view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationLocalDataHelpers.js +0 -96
@@ -10,31 +10,10 @@ export interface AllowedValueWithCodeOptionalPayload {
10
10
  export declare function isAllowedValueWithCodePayload(allowedValueWithCodePayload: any): allowedValueWithCodePayload is AllowedValueWithCodePayload;
11
11
  export declare function isAllowedValueWithCodeOptionalPayload(allowedValueWithCodePayload: any): allowedValueWithCodePayload is AllowedValueWithCodeOptionalPayload;
12
12
  export declare function toAllowedValueWithCode(allowedValueWithCodePayload: AllowedValueWithCodePayload): AllowedValueWithCode;
13
- export interface LabelValueCodeDescriptionPayload {
14
- code: string;
15
- description: string;
16
- }
17
- export interface LabelValueFileOptionPayload {
18
- file_id: string;
19
- option?: string;
20
- }
21
- export interface LabelValuePersonNamePayload {
22
- first_name?: string;
23
- last_name?: string;
24
- }
25
- export interface LabelValuePersonPayload {
26
- company_role?: string;
27
- date_of_birth?: string;
28
- email?: string;
29
- name?: LabelValuePersonNamePayload;
30
- nationality?: string;
31
- ownership_percentage?: number;
32
- proof_of_address?: LabelValueFileOptionPayload[];
33
- proof_of_identity?: LabelValueFileOptionPayload[];
34
- ssn?: string;
35
- }
36
- export type LabelValueCodesValuesPayload = string | string[] | LabelValueCodeDescriptionPayload | LabelValueCodeDescriptionPayload[] | LabelValueFileOptionPayload | LabelValueFileOptionPayload[] | LabelValuePersonPayload | LabelValuePersonPayload[];
37
13
  export interface LabelValueCodesPayload {
38
14
  label: string;
39
- values: LabelValueCodesValuesPayload;
15
+ values: {
16
+ code: string;
17
+ description: string;
18
+ }[] | string[];
40
19
  }
package/lib/esm/index.js CHANGED
@@ -639,8 +639,6 @@ export { fetchCompanyTaskManagerView, fetchTaskManagerMetrics, getCompanyTaskMan
639
639
  export { InternationalWireVerificationFormOrder, sortVerificationFormFields, fetchInternationalVerificationForm, submitInternationalVerificationForm, updateVerificationFormLocalData, getIntlWireVerificationView, };
640
640
  export { InternationalWireVerificationBooleanWithSubfieldsFieldNameList, InternationalWireVerificationBooleanWithSubfieldsFieldNames, InternationalWireVerificationControllingPersonFieldName, InternationalWireVerificationFormFieldNames, InternationalWireVerificationStakeHolderFieldName, InternationalWireVerificationSubfieldNames, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationFieldConstants';
641
641
  export { IntlWireVerificationLocalDataSuffix, toIntlWireVerificationFormDetails, toIntlWireVerificationSubmitPayload, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationSubmitPayload';
642
- export { getStakeHolderOwnerIndicesFromLocalData, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationLocalDataHelpers';
643
- export { toVerificationFormLocalDataFromOnboardingDetails, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireOnboardingDetailsToLocalData';
644
642
  export { fetchExpressPayInitialDetails, updateExpressPayFormLocalData, submitExpressPay, resetExpressPayLocalData, getExpressPayView, };
645
643
  export { acceptTreasuryTerms, fetchTreasurySetupView, clearTreasurySetupView, fetchTreasuryFunds, updatePortfolioAllocation, fetchPortfolioAllocation, updateFundAllocationLocalData, updateTreasuryPromoIntroClosedByOutsideClick, updateTreasuryPromoRemindMeLaterClicked, updateTreasuryVideoViewed, getTreasurySetupViewDetails, getTreasuryFundsMaximumYield, };
646
644
  // ── AI Accountant Entity ──
@@ -1,9 +1,8 @@
1
1
  import { from, of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
3
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../../responsePayload';
4
- import { toVerificationFormLocalDataFromOnboardingDetails } from '../internationalWireOnboardingDetailsToLocalData';
5
- import { fetchInternationalVerificationForm, updateInternationalVerificationForm, updateVerificationFormFailure, updateVerificationFormLocalData, } from '../internationalWireVerificationReducer';
6
- export const fetchIntlVerificationFormEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchInternationalVerificationForm.match), switchMap((action) => {
4
+ import { fetchInternationalVerificationForm, initializeIntlVerificationForm, updateInternationalVerificationForm, updateVerificationFormFailure, } from '../internationalWireVerificationReducer';
5
+ export const fetchIntlVerificationFormEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInternationalVerificationForm.match), switchMap((action) => {
7
6
  const query = {
8
7
  region: 'US',
9
8
  legal_type: 'BUSINESS',
@@ -12,14 +11,11 @@ export const fetchIntlVerificationFormEpic = (actions$, state$, zeniAPI) => acti
12
11
  .getJSON(`${zeniAPI.apiEndPoints.payMicroServiceBaseUrl}/1.0/international-wire/onboarding-fields?query=${encodeURIComponent(JSON.stringify(query))}`)
13
12
  .pipe(mergeMap((response) => {
14
13
  if (isSuccessResponse(response) && response.data != null) {
15
- const onboardingDataFromCompanyInfo = state$.value.companyState.companiesById[action.payload.companyId]
16
- ?.companyBillPayInfo?.internationalWireOnboardingDetails;
17
- const localData = toVerificationFormLocalDataFromOnboardingDetails(onboardingDataFromCompanyInfo, response.data.labels);
18
14
  return from([
19
15
  updateInternationalVerificationForm({
20
16
  internationalWireFormPayload: response.data.labels,
21
17
  }),
22
- updateVerificationFormLocalData(localData),
18
+ initializeIntlVerificationForm(action.payload.companyId, response.data.labels),
23
19
  ]);
24
20
  }
25
21
  else {
@@ -1,38 +1,46 @@
1
- import { empty, from } from 'rxjs';
1
+ import { from } from 'rxjs';
2
2
  import { filter, mergeMap } from 'rxjs/operators';
3
- import { getCurrentTenant } from '../../../../../entity/tenant/tenantSelector';
4
- import { fetchBillPaySetupViewSuccess } from '../../billPaySetupView/billPaySetupViewReducer';
5
- import { toVerificationFormLocalDataFromOnboardingDetails } from '../internationalWireOnboardingDetailsToLocalData';
6
3
  import { initializeIntlVerificationForm, updateVerificationFormLocalData, } from '../internationalWireVerificationReducer';
7
- const hasSavedPersonSubfieldData = (localData) => Object.keys(localData).some((key) => /^stake_holder_\d+_/.test(key) ||
8
- (key.startsWith('controlling_person_') && key !== 'controlling_person'));
9
- export const initializeIntlVerificationFormEpic = (actions$, state$) => actions$.pipe(filter((action) => initializeIntlVerificationForm.match(action) ||
10
- fetchBillPaySetupViewSuccess.match(action)), mergeMap((action) => {
4
+ export const initializeIntlVerificationFormEpic = (actions$, state$) => actions$.pipe(filter(initializeIntlVerificationForm.match), mergeMap((action) => {
5
+ const { companyId, internationalWireFormPayload } = action.payload;
6
+ const actions = [];
11
7
  const state = state$.value;
12
- const formFieldLabels = state.internationalWireVerificationState.verificationFormFieldLabels;
13
- if (Object.keys(formFieldLabels).length === 0) {
14
- return empty();
15
- }
16
- const companyId = initializeIntlVerificationForm.match(action) ?
17
- action.payload.companyId
18
- : getCurrentTenant(state)?.companyId;
19
- if (companyId == null) {
20
- return empty();
21
- }
22
- const onboardingDataFromCompanyInfo = state.companyState.companiesById[companyId]?.companyBillPayInfo
23
- ?.internationalWireOnboardingDetails;
24
- const localDataFromCompany = toVerificationFormLocalDataFromOnboardingDetails(onboardingDataFromCompanyInfo, formFieldLabels);
25
- const existingLocalData = state.internationalWireVerificationState.verificationFormLocalData;
26
- if (fetchBillPaySetupViewSuccess.match(action)) {
27
- if (!hasSavedPersonSubfieldData(localDataFromCompany) ||
28
- hasSavedPersonSubfieldData(existingLocalData)) {
29
- return empty();
8
+ const onboardingDataFromCompanyInfo = state.companyState.companiesById[companyId].companyBillPayInfo
9
+ .internationalWireOnboardingDetails;
10
+ const localData = {};
11
+ Object.keys(internationalWireFormPayload).forEach((formFieldKey) => {
12
+ const values = onboardingDataFromCompanyInfo != null
13
+ ? onboardingDataFromCompanyInfo[formFieldKey]?.values
14
+ : undefined;
15
+ if (values != null) {
16
+ const fieldPayload = internationalWireFormPayload[formFieldKey];
17
+ if (fieldPayload.type === 'enum') {
18
+ localData[formFieldKey] =
19
+ fieldPayload.is_multiple_values_allowed === false
20
+ ? typeof values[0] === 'object' && 'code' in values[0]
21
+ ? values[0].code
22
+ : ''
23
+ : values.map((value) => typeof value === 'object' && 'code' in value
24
+ ? value.code
25
+ : '');
26
+ }
27
+ else if (fieldPayload.type === 'file' &&
28
+ fieldPayload.is_multiple_values_allowed === true) {
29
+ localData[formFieldKey] = values.filter((value) => typeof value === 'string');
30
+ }
31
+ else {
32
+ localData[formFieldKey] = values[0] ?? '';
33
+ }
30
34
  }
31
- }
32
- return from([
33
- updateVerificationFormLocalData({
34
- ...existingLocalData,
35
- ...localDataFromCompany,
36
- }),
37
- ]);
35
+ else {
36
+ localData[formFieldKey] =
37
+ internationalWireFormPayload[formFieldKey].type === 'enum' &&
38
+ internationalWireFormPayload[formFieldKey]
39
+ .is_multiple_values_allowed === true
40
+ ? []
41
+ : '';
42
+ }
43
+ });
44
+ actions.push(updateVerificationFormLocalData(localData));
45
+ return from(actions);
38
46
  }));
@@ -30,11 +30,3 @@ export const InternationalWireVerificationSubfieldNames = {
30
30
  proofOfAddress: 'proof_of_address',
31
31
  ssn: 'ssn',
32
32
  };
33
- export const InternationalWireVerificationReadonlyHideableFieldNames = [
34
- InternationalWireVerificationFormFieldNames.stakeHolder,
35
- InternationalWireVerificationFormFieldNames.controllingPerson,
36
- InternationalWireVerificationFormFieldNames.businessOwnership,
37
- InternationalWireVerificationFormFieldNames.companyProofOfAddress,
38
- InternationalWireVerificationFormFieldNames.companyOfficerProofOfAddress,
39
- ];
40
- export const InternationalWireVerificationReadonlyVisibilityGateFieldName = InternationalWireVerificationFormFieldNames.businessOwnership;
@@ -1,5 +1,4 @@
1
- import { InternationalWireVerificationReadonlyHideableFieldNames, InternationalWireVerificationFormFieldNames, } from './internationalWireVerificationFieldConstants';
2
- import { hasBusinessOwnershipValueInLocalData } from './internationalWireVerificationLocalDataHelpers';
1
+ import { InternationalWireVerificationFormFieldNames } from './internationalWireVerificationFieldConstants';
3
2
  export const InternationalWireVerificationFormOrder = [
4
3
  InternationalWireVerificationFormFieldNames.certificateOfGoodStanding,
5
4
  InternationalWireVerificationFormFieldNames.businessOwnership,
@@ -41,13 +40,6 @@ export const toDynamicFormField = (key, payload) => ({
41
40
  ]))
42
41
  : undefined,
43
42
  });
44
- const readonlyHideableVerificationFormFieldNames = new Set(InternationalWireVerificationReadonlyHideableFieldNames);
45
- export const filterVerificationFormFieldsForReadonlyView = (fields, localData, isReadonly) => {
46
- if (!isReadonly || hasBusinessOwnershipValueInLocalData(localData)) {
47
- return fields;
48
- }
49
- return fields.filter((field) => !readonlyHideableVerificationFormFieldNames.has(field.name));
50
- };
51
43
  export const sortVerificationFormFields = (fields) => {
52
44
  const orderIndex = new Map(InternationalWireVerificationFormOrder.map((name, index) => [name, index]));
53
45
  return fields.slice().sort((a, b) => {
@@ -4,7 +4,6 @@ export const initialState = {
4
4
  verificationFormFetchState: {
5
5
  fetchState: 'Not-Started',
6
6
  },
7
- verificationFormFieldLabels: {},
8
7
  verificationFormFields: [],
9
8
  verificationFormLocalData: {},
10
9
  verificationFormSubmitState: {
@@ -32,7 +31,6 @@ const internationalWireVerification = createSlice({
32
31
  },
33
32
  updateInternationalVerificationForm(draft, action) {
34
33
  const { internationalWireFormPayload } = action.payload;
35
- draft.verificationFormFieldLabels = internationalWireFormPayload;
36
34
  draft.verificationFormFields = toVerificationFormFields(internationalWireFormPayload);
37
35
  draft.verificationFormFetchState.fetchState = 'Completed';
38
36
  },
@@ -43,7 +41,6 @@ const internationalWireVerification = createSlice({
43
41
  },
44
42
  updateVerificationFormLocalData(draft, action) {
45
43
  draft.verificationFormLocalData = {
46
- ...draft.verificationFormLocalData,
47
44
  ...action.payload,
48
45
  };
49
46
  },
@@ -1,8 +1,5 @@
1
- import { getCompanyByCompanyId } from '../../../../entity/company/companySelector';
2
1
  import { getFilesByFileIds } from '../../../../entity/file/fileSelector';
3
- import { getCurrentTenant } from '../../../../entity/tenant/tenantSelector';
4
2
  import { getFileDeleteStatusById, getFileUpdateNameStatusById, } from '../../../fileView/fileViewSelector';
5
- import { filterVerificationFormFieldsForReadonlyView } from './internationalWireVerificationPayload';
6
3
  const collectFileIdsFromLocalData = (localData) => {
7
4
  const fileIds = new Set();
8
5
  Object.values(localData).forEach((value) => {
@@ -23,28 +20,18 @@ const collectFileIdsFromLocalData = (localData) => {
23
20
  export const getIntlWireVerificationView = (state) => {
24
21
  const deleteFileStatusById = {};
25
22
  const updateFileStatusById = {};
26
- const { verificationFormFetchState, verificationFormFields, verificationFormLocalData, verificationFormSubmitState, } = state.internationalWireVerificationState;
27
- const fileIds = collectFileIdsFromLocalData(verificationFormLocalData);
23
+ const fileIds = collectFileIdsFromLocalData(state.internationalWireVerificationState.verificationFormLocalData);
28
24
  fileIds.forEach((fileId) => {
29
25
  deleteFileStatusById[fileId] = getFileDeleteStatusById(state, fileId);
30
26
  updateFileStatusById[fileId] = getFileUpdateNameStatusById(state, fileId);
31
27
  });
32
- const userFiles = fileIds.length > 0 ? getFilesByFileIds(state.fileState, fileIds) : [];
33
- const fetchState = verificationFormFetchState.fetchState;
34
- const currentTenant = getCurrentTenant(state);
35
- const company = currentTenant?.companyId != null
36
- ? getCompanyByCompanyId(state.companyState, currentTenant.companyId)
37
- ?.company
38
- : undefined;
39
- const onboardingStatusCode = company?.companyBillPayInfo?.internationalWireOnboardingStatus?.code;
40
- const isReadonly = onboardingStatusCode != null &&
41
- onboardingStatusCode !== 'onboarding_status_not_started';
42
- const visibleVerificationFormFields = filterVerificationFormFieldsForReadonlyView(verificationFormFields, verificationFormLocalData, isReadonly);
28
+ const userFiles = fileIds.length > 0
29
+ ? getFilesByFileIds(state.fileState, fileIds)
30
+ : [];
31
+ const fetchState = state.internationalWireVerificationState.verificationFormFetchState
32
+ .fetchState;
43
33
  return {
44
- verificationFormFetchState,
45
- verificationFormFields: visibleVerificationFormFields,
46
- verificationFormLocalData,
47
- verificationFormSubmitState,
34
+ ...state.internationalWireVerificationState,
48
35
  deleteFileStatusById,
49
36
  updateFileStatusById,
50
37
  userFiles,
package/lib/index.d.ts CHANGED
@@ -900,8 +900,6 @@ export { Country };
900
900
  export { InternationalWireVerificationState, VerificationFormField, VerificationFormFieldOption, VerificationFormLocalData, VerificationFormSubField, FieldValueType, InternationalWireVerificationFormOrder, sortVerificationFormFields, fetchInternationalVerificationForm, submitInternationalVerificationForm, updateVerificationFormLocalData, getIntlWireVerificationView, InternationalWireVerificationView, };
901
901
  export { InternationalWireVerificationBooleanWithSubfieldsFieldNameList, InternationalWireVerificationBooleanWithSubfieldsFieldNames, InternationalWireVerificationControllingPersonFieldName, InternationalWireVerificationFormFieldNames, InternationalWireVerificationStakeHolderFieldName, InternationalWireVerificationSubfieldNames, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationFieldConstants';
902
902
  export { IntlWireVerificationLocalDataSuffix, toIntlWireVerificationFormDetails, toIntlWireVerificationSubmitPayload, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationSubmitPayload';
903
- export { getStakeHolderOwnerIndicesFromLocalData, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationLocalDataHelpers';
904
- export { toVerificationFormLocalDataFromOnboardingDetails, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireOnboardingDetailsToLocalData';
905
903
  export type { InternationalWireVerificationBooleanWithSubfieldsFieldName, InternationalWireVerificationFormFieldName, InternationalWireVerificationSubfieldName, } from './view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationFieldConstants';
906
904
  export { fetchExpressPayInitialDetails, updateExpressPayFormLocalData, submitExpressPay, resetExpressPayLocalData, ExpressPayFormLocalData, ExpressPayView, getExpressPayView, };
907
905
  export { acceptTreasuryTerms, fetchTreasurySetupView, clearTreasurySetupView, fetchTreasuryFunds, updatePortfolioAllocation, fetchPortfolioAllocation, updateFundAllocationLocalData, updateTreasuryPromoIntroClosedByOutsideClick, updateTreasuryPromoRemindMeLaterClicked, updateTreasuryVideoViewed, FundAllocationOption, FundComposition, FundData, TreasurySetupView, getTreasurySetupViewDetails, getTreasuryFundsMaximumYield, };
package/lib/index.js CHANGED
@@ -69,10 +69,10 @@ exports.getDefaultSelectedTimeframeForScheduleType = exports.getFetchStateForSch
69
69
  exports.getTaskDetail = exports.fetchTaskListPage = exports.getAllTasks = exports.getTaskGroupById = exports.toRecurringBillFrequencyStrict = exports.toRecurringBillFrequency = exports.updateArAgingNodeCollapseState = exports.getArAgingDetailForCustomer = exports.getArAgingReport = exports.updateArAgingDetailUIState = exports.fetchArAgingDetail = exports.updateArAgingUIState = exports.fetchArAging = exports.updateVendorGlobalReviewViewLocalData = exports.toVendorGlobalReviewColumnSortKeyType = exports.getTenantMerchantByMerchantId = exports.getVendorGlobalReviewView = exports.updateVendorGlobalReviewViewUIState = exports.updateSelectedGlobalMerchant = exports.fetchVendorGlobalReviewView = exports.rejectVendorGlobalReview = exports.approveVendorGlobalReview = exports.getGlobalMerchantView = exports.clearGlobalMerchantView = exports.updateCreateGlobalMerchantLocalData = exports.createGlobalMerchant = exports.fetchGlobalMerchantRecommendation = exports.getVendorDetailSelectorView = exports.saveVendorDetailsView = exports.updateReviewVendorDetailLocalData = exports.clearGlobalMerchantAutoCompleteResults = exports.fetchGlobalMerchantAutoCompleteView = exports.updateVendorFirstReviewSortUiState = exports.updateVendorFirstReviewViewLocalData = exports.saveVendorFirstReviewView = exports.clearRecentlySavedErroredVendorData = exports.updateVendorFirstReviewViewPageToken = exports.resetVendorFirstReviewLocalData = exports.updateVendorFirstReviewViewScrollYOffset = exports.fetchVendorFirstReviewAttachments = exports.fetchVendorFirstReviewView = exports.getVendorFirstReviewAttachmentView = exports.getVendorFirstReviewView = exports.getGlobalMerchantAutoCompleteResults = exports.toVendorFirstReviewViewColumnKeyType = exports.getVendorTabView = exports.updateVendorTabViewTab = exports.fetchVendorTabView = exports.resetMarkAsCompleteStatus = exports.markAsCompleteScheduleDetail = void 0;
70
70
  exports.fetchPaymentSources = exports.addCardPaymentSource = exports.confirmCardSetupIntent = exports.createCardSetupIntent = exports.getAllCardsAndBankPaymentMethods = exports.deleteTag = exports.createTag = exports.fetchTagList = exports.getAllTags = exports.ALL_TASK_LIST_TABS = exports.initialTaskDetailLocalData = exports.convertHHMMStrToMinutes = exports.unsnoozeTask = exports.snoozeTask = exports.removeTaskFromList = exports.updateTaskListTab = exports.updateTaskFromListView = exports.toDueDateGroupKeyType = exports.toTaskStatusCodeType = exports.toPriorityCodeType = exports.getDueDateValueFromDueDateGroupId = exports.initialTaskDetail = exports.fetchAllTaskGroups = exports.getTaskUpdates = exports.toTaskListGroupByKeyTypeStrict = exports.toTaskListGroupByKeyType = exports.updateTaskGroupName = exports.dragNDropTasks = exports.updateTaskListLocalData = exports.deleteTaskGroup = exports.initiateTaskListLocalData = exports.createNewTaskGroup = exports.bulkUpdateTaskList = exports.discardTaskUpdatesInLocalStore = exports.deleteTask = exports.TASK_LIST_GROUP_BY_CATEGORIES = exports.TASK_LIST_FILTER_CATEGORIES = exports.updateTaskFilters = exports.allTaskPriority = exports.allTaskStatus = exports.updateTaskListUIState = exports.updateTaskListSearchText = exports.getCannedResponsesView = exports.deleteCannedResponse = exports.saveCannedResponse = exports.fetchCannedResponses = exports.archiveTask = exports.saveTaskDetail = exports.saveTaskUpdatesToLocalStore = exports.fetchTaskDetailPage = void 0;
71
71
  exports.getInviteFormView = exports.getReferralListView = exports.getNotifications = exports.getLastNotificationTime = exports.pushToastNotification = exports.isFeatureInterestRegistered = exports.getRegisteredInterestsByFeature = exports.getRegisteredInterests = exports.getFeatureNotificationView = exports.notifyMeForFeature = exports.fetchRegisteredInterests = exports.clearFeatureNotificationView = exports.getNotificationsForSelectedSubTab = exports.getExternalNotificationsForSelectedSubTab = exports.getNotificationView = exports.updateNotificationViewUIState = exports.updateNotificationViewSubTab = exports.updateNotificationViewCurrentTabAndSubTab = exports.updateNotificationViewTabState = exports.updateNotificationViewNotificationStatus = exports.updateNotificationViewAllNotificationsStatus = exports.fetchNotificationUnreadCountSuccess = exports.fetchNotificationUnreadCount = exports.fetchNotificationView = exports.toNotificationTabTypeStrict = exports.toNotificationSubTabTypeStrict = exports.updateCommentsNotificationsStatuses = exports.updateCommentsNotifications = exports.toNotificationModeStrict = exports.parseOAuthParams = exports.getZeniOAuthApproveRedirectUrl = exports.getZeniOAuthApproveFetchState = exports.getZeniOAuthApproveError = exports.clearZeniOAuthView = exports.approveOAuthConsentSuccess = exports.approveOAuthConsentFailure = exports.approveOAuthConsent = exports.fetchZeniAccountsPromoCard = exports.getZeniAccountsPromoCard = exports.getAuthenticationView = exports.fetchCollaborationAuthToken = exports.clearAuditReportGroupViewByCompanyId = exports.saveReasonForAuditRule = exports.fetchAuditReportGroupView = exports.fetchAuditRuleGroupView = exports.getUserFromAllUsers = exports.getAuditRuleGroupViewSelectorView = exports.getAuditReportGroupViewSelectorView = exports.clearCardPaymentView = exports.resetCardPaymentErrorStatuses = void 0;
72
- exports.fetchPortfolioAllocation = exports.updatePortfolioAllocation = exports.fetchTreasuryFunds = exports.clearTreasurySetupView = exports.fetchTreasurySetupView = exports.acceptTreasuryTerms = exports.getExpressPayView = exports.resetExpressPayLocalData = exports.submitExpressPay = exports.updateExpressPayFormLocalData = exports.fetchExpressPayInitialDetails = exports.toVerificationFormLocalDataFromOnboardingDetails = exports.getStakeHolderOwnerIndicesFromLocalData = exports.toIntlWireVerificationSubmitPayload = exports.toIntlWireVerificationFormDetails = exports.IntlWireVerificationLocalDataSuffix = exports.InternationalWireVerificationSubfieldNames = exports.InternationalWireVerificationStakeHolderFieldName = exports.InternationalWireVerificationFormFieldNames = exports.InternationalWireVerificationControllingPersonFieldName = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNames = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNameList = exports.getIntlWireVerificationView = exports.updateVerificationFormLocalData = exports.submitInternationalVerificationForm = exports.fetchInternationalVerificationForm = exports.sortVerificationFormFields = exports.InternationalWireVerificationFormOrder = exports.createTaskFromTaskGroupTemplate = exports.getCompanyTaskManagerView = exports.fetchTaskManagerMetrics = exports.fetchCompanyTaskManagerView = exports.toRecurringFrequency = exports.toDayOfWeek = exports.getRecurringEndDateFromCount = exports.getMinAllowedEndDate = exports.SEMI_WEEKLY_REQUIRED_DAYS_COUNT = exports.ALL_WEEK_DAYS = exports.updateReferViewed = exports.getRewardsPlanCard = exports.fetchRewardsPlan = exports.resendReferralInvite = exports.updateReferralListSortUiState = exports.saveReferralFormDataInLocalStore = exports.clearReferrals = exports.sendReferralInvite = exports.fetchReferrals = exports.AmountStatusTypes = exports.StatusTypes = exports.toReferralListViewSortKeyType = void 0;
73
- exports.applyAiCfoSidePanelHostPageTransition = exports.fetchSuggestedQuestionsFailure = exports.fetchSuggestedQuestionsSuccess = exports.fetchSuggestedQuestions = exports.updateResponseState = exports.deleteChatSession = exports.acceptMasterTOS = exports.fetchChatHistory = exports.stopSubmitQuestion = exports.stopSubmit = exports.createSessionAndSubmit = exports.clearLastContextMessage = exports.clearDeleteChatSessionStatus = exports.clearCurrentSessionId = exports.clearAiCfoView = exports.setSession = exports.clearInput = exports.updateCotCollapsedState = exports.updateCurrentInput = exports.updateAiCfoViewScrollPosition = exports.submitQuestion = exports.createSession = exports.fetchChatSessionsForUser = exports.getAiAccountantCockpitView = exports.updateAiAccountantUIState = exports.triggerAiAccountantJob = exports.setSelectedTenantIdsForJobTrigger = exports.fetchAiAccountantJobs = exports.fetchAiAccountantCustomers = exports.clearAiAccountantView = exports.cancelAiAccountantOnboarding = exports.getAiAccountantJobsByTenantId = exports.getAiAccountantCustomers = exports.updateAiAccountantJobs = exports.updateAiAccountantCustomer = exports.updateAiAccountantCustomers = exports.clearAllAiAccountantCustomers = exports.toAiAccountantJob = exports.toAiAccountantEnrollment = exports.toAiAccountantCustomer = exports.toAiAccountantOperationType = exports.toAiAccountantJobStatus = exports.toAiAccountantEnrollmentStatus = exports.getAllowedOperationsForStatus = exports.getTreasuryFundsMaximumYield = exports.getTreasurySetupViewDetails = exports.updateTreasuryVideoViewed = exports.updateTreasuryPromoRemindMeLaterClicked = exports.updateTreasuryPromoIntroClosedByOutsideClick = exports.updateFundAllocationLocalData = void 0;
74
- exports.getAutoTransferRules = exports.clearRuleUpdateLocalData = exports.updateRuleLocalData = exports.fetchAutoTransferReviewDetail = exports.fetchAutoTransferRuleHistory = exports.deleteAutoTransferRule = exports.updateAutoTransferRule = exports.createAutoTransferRule = exports.fetchAutoTransferRules = exports.getTreasuryTaxLetters = exports.fetchTreasuryTaxLetterList = exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryTransactionList = exports.fetchTreasuryOverviewDetail = exports.toMessageType = exports.toMessageSender = exports.toAiCfoAnswerResponseTypeStrict = exports.toAiCfoAnswerResponseType = exports.toAiCfoAnswerStateTypeStrict = exports.toAiCfoAnswerStateType = exports.toAiCfoChartTypeStrict = exports.toAiCfoChartType = exports.toAiCfoVisualizationTypeStrict = exports.toAiCfoVisualizationType = exports.ALL_AI_CFO_ANSWER_RESPONSE_TYPES = exports.ALL_AI_CFO_ANSWER_STATE_TYPES = exports.ALL_AI_CFO_VISUALIZATION_TYPES = exports.ALL_AI_CFO_CHARTS_TYPES = exports.getAiCfoSelectorView = exports.getAllQuestionsForChatSession = exports.getQuestionAnswerByIdForChatSession = exports.getAllQuestionAnswersForChatSession = exports.toAiCfoVisualization = exports.clearAiCfo = exports.clearSession = exports.addQuestionPayload = exports.upsertOrAddQuestionAnswerPayload = exports.upsertAnswerPayload = exports.setSessions = exports.setNewSession = exports.getSuggestedQuestionsForPageContext = exports.getAiCfoView = exports.clearAiCfoSidePanelHostPageContext = void 0;
75
- exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = exports.getTransactionActivityLogView = exports.fetchTransactionActivityLog = exports.BULK_UPLOAD_BAR_COMPLETE_HOLD_MS = exports.BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS = exports.getAutoTransferRuleHistory = exports.getAutoTransferRuleById = void 0;
72
+ exports.updateTreasuryPromoIntroClosedByOutsideClick = exports.updateFundAllocationLocalData = exports.fetchPortfolioAllocation = exports.updatePortfolioAllocation = exports.fetchTreasuryFunds = exports.clearTreasurySetupView = exports.fetchTreasurySetupView = exports.acceptTreasuryTerms = exports.getExpressPayView = exports.resetExpressPayLocalData = exports.submitExpressPay = exports.updateExpressPayFormLocalData = exports.fetchExpressPayInitialDetails = exports.toIntlWireVerificationSubmitPayload = exports.toIntlWireVerificationFormDetails = exports.IntlWireVerificationLocalDataSuffix = exports.InternationalWireVerificationSubfieldNames = exports.InternationalWireVerificationStakeHolderFieldName = exports.InternationalWireVerificationFormFieldNames = exports.InternationalWireVerificationControllingPersonFieldName = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNames = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNameList = exports.getIntlWireVerificationView = exports.updateVerificationFormLocalData = exports.submitInternationalVerificationForm = exports.fetchInternationalVerificationForm = exports.sortVerificationFormFields = exports.InternationalWireVerificationFormOrder = exports.createTaskFromTaskGroupTemplate = exports.getCompanyTaskManagerView = exports.fetchTaskManagerMetrics = exports.fetchCompanyTaskManagerView = exports.toRecurringFrequency = exports.toDayOfWeek = exports.getRecurringEndDateFromCount = exports.getMinAllowedEndDate = exports.SEMI_WEEKLY_REQUIRED_DAYS_COUNT = exports.ALL_WEEK_DAYS = exports.updateReferViewed = exports.getRewardsPlanCard = exports.fetchRewardsPlan = exports.resendReferralInvite = exports.updateReferralListSortUiState = exports.saveReferralFormDataInLocalStore = exports.clearReferrals = exports.sendReferralInvite = exports.fetchReferrals = exports.AmountStatusTypes = exports.StatusTypes = exports.toReferralListViewSortKeyType = void 0;
73
+ exports.getAiCfoView = exports.clearAiCfoSidePanelHostPageContext = exports.applyAiCfoSidePanelHostPageTransition = exports.fetchSuggestedQuestionsFailure = exports.fetchSuggestedQuestionsSuccess = exports.fetchSuggestedQuestions = exports.updateResponseState = exports.deleteChatSession = exports.acceptMasterTOS = exports.fetchChatHistory = exports.stopSubmitQuestion = exports.stopSubmit = exports.createSessionAndSubmit = exports.clearLastContextMessage = exports.clearDeleteChatSessionStatus = exports.clearCurrentSessionId = exports.clearAiCfoView = exports.setSession = exports.clearInput = exports.updateCotCollapsedState = exports.updateCurrentInput = exports.updateAiCfoViewScrollPosition = exports.submitQuestion = exports.createSession = exports.fetchChatSessionsForUser = exports.getAiAccountantCockpitView = exports.updateAiAccountantUIState = exports.triggerAiAccountantJob = exports.setSelectedTenantIdsForJobTrigger = exports.fetchAiAccountantJobs = exports.fetchAiAccountantCustomers = exports.clearAiAccountantView = exports.cancelAiAccountantOnboarding = exports.getAiAccountantJobsByTenantId = exports.getAiAccountantCustomers = exports.updateAiAccountantJobs = exports.updateAiAccountantCustomer = exports.updateAiAccountantCustomers = exports.clearAllAiAccountantCustomers = exports.toAiAccountantJob = exports.toAiAccountantEnrollment = exports.toAiAccountantCustomer = exports.toAiAccountantOperationType = exports.toAiAccountantJobStatus = exports.toAiAccountantEnrollmentStatus = exports.getAllowedOperationsForStatus = exports.getTreasuryFundsMaximumYield = exports.getTreasurySetupViewDetails = exports.updateTreasuryVideoViewed = exports.updateTreasuryPromoRemindMeLaterClicked = void 0;
74
+ exports.getAutoTransferRuleHistory = exports.getAutoTransferRuleById = exports.getAutoTransferRules = exports.clearRuleUpdateLocalData = exports.updateRuleLocalData = exports.fetchAutoTransferReviewDetail = exports.fetchAutoTransferRuleHistory = exports.deleteAutoTransferRule = exports.updateAutoTransferRule = exports.createAutoTransferRule = exports.fetchAutoTransferRules = exports.getTreasuryTaxLetters = exports.fetchTreasuryTaxLetterList = exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryTransactionList = exports.fetchTreasuryOverviewDetail = exports.toMessageType = exports.toMessageSender = exports.toAiCfoAnswerResponseTypeStrict = exports.toAiCfoAnswerResponseType = exports.toAiCfoAnswerStateTypeStrict = exports.toAiCfoAnswerStateType = exports.toAiCfoChartTypeStrict = exports.toAiCfoChartType = exports.toAiCfoVisualizationTypeStrict = exports.toAiCfoVisualizationType = exports.ALL_AI_CFO_ANSWER_RESPONSE_TYPES = exports.ALL_AI_CFO_ANSWER_STATE_TYPES = exports.ALL_AI_CFO_VISUALIZATION_TYPES = exports.ALL_AI_CFO_CHARTS_TYPES = exports.getAiCfoSelectorView = exports.getAllQuestionsForChatSession = exports.getQuestionAnswerByIdForChatSession = exports.getAllQuestionAnswersForChatSession = exports.toAiCfoVisualization = exports.clearAiCfo = exports.clearSession = exports.addQuestionPayload = exports.upsertOrAddQuestionAnswerPayload = exports.upsertAnswerPayload = exports.setSessions = exports.setNewSession = exports.getSuggestedQuestionsForPageContext = void 0;
75
+ exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = exports.getTransactionActivityLogView = exports.fetchTransactionActivityLog = exports.BULK_UPLOAD_BAR_COMPLETE_HOLD_MS = exports.BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS = void 0;
76
76
  const allowedValue_1 = require("./commonStateTypes/allowedValue");
77
77
  Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
78
78
  Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
@@ -2228,10 +2228,6 @@ var internationalWireVerificationSubmitPayload_1 = require("./view/spendManageme
2228
2228
  Object.defineProperty(exports, "IntlWireVerificationLocalDataSuffix", { enumerable: true, get: function () { return internationalWireVerificationSubmitPayload_1.IntlWireVerificationLocalDataSuffix; } });
2229
2229
  Object.defineProperty(exports, "toIntlWireVerificationFormDetails", { enumerable: true, get: function () { return internationalWireVerificationSubmitPayload_1.toIntlWireVerificationFormDetails; } });
2230
2230
  Object.defineProperty(exports, "toIntlWireVerificationSubmitPayload", { enumerable: true, get: function () { return internationalWireVerificationSubmitPayload_1.toIntlWireVerificationSubmitPayload; } });
2231
- var internationalWireVerificationLocalDataHelpers_1 = require("./view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationLocalDataHelpers");
2232
- Object.defineProperty(exports, "getStakeHolderOwnerIndicesFromLocalData", { enumerable: true, get: function () { return internationalWireVerificationLocalDataHelpers_1.getStakeHolderOwnerIndicesFromLocalData; } });
2233
- var internationalWireOnboardingDetailsToLocalData_1 = require("./view/spendManagement/billPay/internationalWireVerification/internationalWireOnboardingDetailsToLocalData");
2234
- Object.defineProperty(exports, "toVerificationFormLocalDataFromOnboardingDetails", { enumerable: true, get: function () { return internationalWireOnboardingDetailsToLocalData_1.toVerificationFormLocalDataFromOnboardingDetails; } });
2235
2231
  // ── AI Accountant Entity ──
2236
2232
  var aiAccountantCustomerState_1 = require("./entity/aiAccountantCustomer/aiAccountantCustomerState");
2237
2233
  Object.defineProperty(exports, "getAllowedOperationsForStatus", { enumerable: true, get: function () { return aiAccountantCustomerState_1.getAllowedOperationsForStatus; } });
@@ -2,6 +2,6 @@ import { ActionsObservable, StateObservable } from 'redux-observable';
2
2
  import { Observable } from 'rxjs';
3
3
  import { RootState } from '../../../../../reducer';
4
4
  import { ZeniAPI } from '../../../../../zeniAPI';
5
- import { fetchInternationalVerificationForm, updateInternationalVerificationForm, updateVerificationFormFailure, updateVerificationFormLocalData } from '../internationalWireVerificationReducer';
6
- export type ActionType = ReturnType<typeof fetchInternationalVerificationForm> | ReturnType<typeof updateInternationalVerificationForm> | ReturnType<typeof updateVerificationFormFailure> | ReturnType<typeof updateVerificationFormLocalData>;
7
- export declare const fetchIntlVerificationFormEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
5
+ import { fetchInternationalVerificationForm, initializeIntlVerificationForm, updateInternationalVerificationForm, updateVerificationFormFailure } from '../internationalWireVerificationReducer';
6
+ export type ActionType = ReturnType<typeof fetchInternationalVerificationForm> | ReturnType<typeof updateInternationalVerificationForm> | ReturnType<typeof updateVerificationFormFailure> | ReturnType<typeof initializeIntlVerificationForm>;
7
+ export declare const fetchIntlVerificationFormEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -4,9 +4,8 @@ exports.fetchIntlVerificationFormEpic = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const operators_1 = require("rxjs/operators");
6
6
  const responsePayload_1 = require("../../../../../responsePayload");
7
- const internationalWireOnboardingDetailsToLocalData_1 = require("../internationalWireOnboardingDetailsToLocalData");
8
7
  const internationalWireVerificationReducer_1 = require("../internationalWireVerificationReducer");
9
- const fetchIntlVerificationFormEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(internationalWireVerificationReducer_1.fetchInternationalVerificationForm.match), (0, operators_1.switchMap)((action) => {
8
+ const fetchIntlVerificationFormEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(internationalWireVerificationReducer_1.fetchInternationalVerificationForm.match), (0, operators_1.switchMap)((action) => {
10
9
  const query = {
11
10
  region: 'US',
12
11
  legal_type: 'BUSINESS',
@@ -15,14 +14,11 @@ const fetchIntlVerificationFormEpic = (actions$, state$, zeniAPI) => actions$.pi
15
14
  .getJSON(`${zeniAPI.apiEndPoints.payMicroServiceBaseUrl}/1.0/international-wire/onboarding-fields?query=${encodeURIComponent(JSON.stringify(query))}`)
16
15
  .pipe((0, operators_1.mergeMap)((response) => {
17
16
  if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
18
- const onboardingDataFromCompanyInfo = state$.value.companyState.companiesById[action.payload.companyId]
19
- ?.companyBillPayInfo?.internationalWireOnboardingDetails;
20
- const localData = (0, internationalWireOnboardingDetailsToLocalData_1.toVerificationFormLocalDataFromOnboardingDetails)(onboardingDataFromCompanyInfo, response.data.labels);
21
17
  return (0, rxjs_1.from)([
22
18
  (0, internationalWireVerificationReducer_1.updateInternationalVerificationForm)({
23
19
  internationalWireFormPayload: response.data.labels,
24
20
  }),
25
- (0, internationalWireVerificationReducer_1.updateVerificationFormLocalData)(localData),
21
+ (0, internationalWireVerificationReducer_1.initializeIntlVerificationForm)(action.payload.companyId, response.data.labels),
26
22
  ]);
27
23
  }
28
24
  else {
@@ -1,7 +1,6 @@
1
1
  import { ActionsObservable, StateObservable } from 'redux-observable';
2
2
  import { Observable } from 'rxjs';
3
3
  import { RootState } from '../../../../../reducer';
4
- import { fetchBillPaySetupViewSuccess } from '../../billPaySetupView/billPaySetupViewReducer';
5
4
  import { initializeIntlVerificationForm, updateVerificationFormLocalData } from '../internationalWireVerificationReducer';
6
5
  export type ActionType = ReturnType<typeof updateVerificationFormLocalData> | ReturnType<typeof initializeIntlVerificationForm>;
7
- export declare const initializeIntlVerificationFormEpic: (actions$: ActionsObservable<ActionType | ReturnType<typeof fetchBillPaySetupViewSuccess>>, state$: StateObservable<RootState>) => Observable<ActionType>;
6
+ export declare const initializeIntlVerificationFormEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
@@ -3,40 +3,48 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initializeIntlVerificationFormEpic = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const operators_1 = require("rxjs/operators");
6
- const tenantSelector_1 = require("../../../../../entity/tenant/tenantSelector");
7
- const billPaySetupViewReducer_1 = require("../../billPaySetupView/billPaySetupViewReducer");
8
- const internationalWireOnboardingDetailsToLocalData_1 = require("../internationalWireOnboardingDetailsToLocalData");
9
6
  const internationalWireVerificationReducer_1 = require("../internationalWireVerificationReducer");
10
- const hasSavedPersonSubfieldData = (localData) => Object.keys(localData).some((key) => /^stake_holder_\d+_/.test(key) ||
11
- (key.startsWith('controlling_person_') && key !== 'controlling_person'));
12
- const initializeIntlVerificationFormEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)((action) => internationalWireVerificationReducer_1.initializeIntlVerificationForm.match(action) ||
13
- billPaySetupViewReducer_1.fetchBillPaySetupViewSuccess.match(action)), (0, operators_1.mergeMap)((action) => {
7
+ const initializeIntlVerificationFormEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(internationalWireVerificationReducer_1.initializeIntlVerificationForm.match), (0, operators_1.mergeMap)((action) => {
8
+ const { companyId, internationalWireFormPayload } = action.payload;
9
+ const actions = [];
14
10
  const state = state$.value;
15
- const formFieldLabels = state.internationalWireVerificationState.verificationFormFieldLabels;
16
- if (Object.keys(formFieldLabels).length === 0) {
17
- return (0, rxjs_1.empty)();
18
- }
19
- const companyId = internationalWireVerificationReducer_1.initializeIntlVerificationForm.match(action) ?
20
- action.payload.companyId
21
- : (0, tenantSelector_1.getCurrentTenant)(state)?.companyId;
22
- if (companyId == null) {
23
- return (0, rxjs_1.empty)();
24
- }
25
- const onboardingDataFromCompanyInfo = state.companyState.companiesById[companyId]?.companyBillPayInfo
26
- ?.internationalWireOnboardingDetails;
27
- const localDataFromCompany = (0, internationalWireOnboardingDetailsToLocalData_1.toVerificationFormLocalDataFromOnboardingDetails)(onboardingDataFromCompanyInfo, formFieldLabels);
28
- const existingLocalData = state.internationalWireVerificationState.verificationFormLocalData;
29
- if (billPaySetupViewReducer_1.fetchBillPaySetupViewSuccess.match(action)) {
30
- if (!hasSavedPersonSubfieldData(localDataFromCompany) ||
31
- hasSavedPersonSubfieldData(existingLocalData)) {
32
- return (0, rxjs_1.empty)();
11
+ const onboardingDataFromCompanyInfo = state.companyState.companiesById[companyId].companyBillPayInfo
12
+ .internationalWireOnboardingDetails;
13
+ const localData = {};
14
+ Object.keys(internationalWireFormPayload).forEach((formFieldKey) => {
15
+ const values = onboardingDataFromCompanyInfo != null
16
+ ? onboardingDataFromCompanyInfo[formFieldKey]?.values
17
+ : undefined;
18
+ if (values != null) {
19
+ const fieldPayload = internationalWireFormPayload[formFieldKey];
20
+ if (fieldPayload.type === 'enum') {
21
+ localData[formFieldKey] =
22
+ fieldPayload.is_multiple_values_allowed === false
23
+ ? typeof values[0] === 'object' && 'code' in values[0]
24
+ ? values[0].code
25
+ : ''
26
+ : values.map((value) => typeof value === 'object' && 'code' in value
27
+ ? value.code
28
+ : '');
29
+ }
30
+ else if (fieldPayload.type === 'file' &&
31
+ fieldPayload.is_multiple_values_allowed === true) {
32
+ localData[formFieldKey] = values.filter((value) => typeof value === 'string');
33
+ }
34
+ else {
35
+ localData[formFieldKey] = values[0] ?? '';
36
+ }
33
37
  }
34
- }
35
- return (0, rxjs_1.from)([
36
- (0, internationalWireVerificationReducer_1.updateVerificationFormLocalData)({
37
- ...existingLocalData,
38
- ...localDataFromCompany,
39
- }),
40
- ]);
38
+ else {
39
+ localData[formFieldKey] =
40
+ internationalWireFormPayload[formFieldKey].type === 'enum' &&
41
+ internationalWireFormPayload[formFieldKey]
42
+ .is_multiple_values_allowed === true
43
+ ? []
44
+ : '';
45
+ }
46
+ });
47
+ actions.push((0, internationalWireVerificationReducer_1.updateVerificationFormLocalData)(localData));
48
+ return (0, rxjs_1.from)(actions);
41
49
  }));
42
50
  exports.initializeIntlVerificationFormEpic = initializeIntlVerificationFormEpic;
@@ -33,6 +33,3 @@ export declare const InternationalWireVerificationSubfieldNames: {
33
33
  readonly ssn: "ssn";
34
34
  };
35
35
  export type InternationalWireVerificationSubfieldName = (typeof InternationalWireVerificationSubfieldNames)[keyof typeof InternationalWireVerificationSubfieldNames];
36
- export declare const InternationalWireVerificationReadonlyHideableFieldNames: readonly ["stake_holder", "controlling_person", "business_ownership", "company_proof_of_address", "company_officer_proof_of_address"];
37
- export type InternationalWireVerificationReadonlyHideableFieldName = (typeof InternationalWireVerificationReadonlyHideableFieldNames)[number];
38
- export declare const InternationalWireVerificationReadonlyVisibilityGateFieldName: "business_ownership";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InternationalWireVerificationReadonlyVisibilityGateFieldName = exports.InternationalWireVerificationReadonlyHideableFieldNames = exports.InternationalWireVerificationSubfieldNames = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNameList = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNames = exports.InternationalWireVerificationControllingPersonFieldName = exports.InternationalWireVerificationStakeHolderFieldName = exports.InternationalWireVerificationFormFieldNames = void 0;
3
+ exports.InternationalWireVerificationSubfieldNames = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNameList = exports.InternationalWireVerificationBooleanWithSubfieldsFieldNames = exports.InternationalWireVerificationControllingPersonFieldName = exports.InternationalWireVerificationStakeHolderFieldName = exports.InternationalWireVerificationFormFieldNames = void 0;
4
4
  exports.InternationalWireVerificationFormFieldNames = {
5
5
  certificateOfGoodStanding: 'certificate_of_good_standing',
6
6
  businessOwnership: 'business_ownership',
@@ -33,11 +33,3 @@ exports.InternationalWireVerificationSubfieldNames = {
33
33
  proofOfAddress: 'proof_of_address',
34
34
  ssn: 'ssn',
35
35
  };
36
- exports.InternationalWireVerificationReadonlyHideableFieldNames = [
37
- exports.InternationalWireVerificationFormFieldNames.stakeHolder,
38
- exports.InternationalWireVerificationFormFieldNames.controllingPerson,
39
- exports.InternationalWireVerificationFormFieldNames.businessOwnership,
40
- exports.InternationalWireVerificationFormFieldNames.companyProofOfAddress,
41
- exports.InternationalWireVerificationFormFieldNames.companyOfficerProofOfAddress,
42
- ];
43
- exports.InternationalWireVerificationReadonlyVisibilityGateFieldName = exports.InternationalWireVerificationFormFieldNames.businessOwnership;
@@ -1,6 +1,6 @@
1
1
  import { AllowedValueWithCode } from '../../../../commonStateTypes/allowedValue';
2
2
  import { ZeniAPIResponse } from '../../../../responsePayload';
3
- import { VerificationFormField, VerificationFormLocalData } from './internationalWireVerificationState';
3
+ import { VerificationFormField } from './internationalWireVerificationState';
4
4
  export declare const InternationalWireVerificationFormOrder: readonly ["certificate_of_good_standing", "business_ownership", "company_proof_of_address", "company_officer_proof_of_address", "company_registration_date", "annual_turnover", "expected_transaction_volume", "employee_count", "intended_use_of_account", "transaction_countries", "stake_holder", "controlling_person"];
5
5
  export interface FieldOptionPayload {
6
6
  label: string;
@@ -32,7 +32,6 @@ export interface FieldPayload {
32
32
  subfields?: Record<string, SubFieldPayload>;
33
33
  }
34
34
  export declare const toDynamicFormField: (key: string, payload: FieldPayload) => VerificationFormField;
35
- export declare const filterVerificationFormFieldsForReadonlyView: (fields: VerificationFormField[], localData: VerificationFormLocalData, isReadonly: boolean) => VerificationFormField[];
36
35
  export declare const sortVerificationFormFields: (fields: VerificationFormField[]) => VerificationFormField[];
37
36
  export declare const toVerificationFormFields: (internationalWireFormPayload: Record<string, FieldPayload>) => VerificationFormField[];
38
37
  export type IntlVerificationFormResponse = ZeniAPIResponse<IntlVerificationFormPayload>;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toVerificationFormFields = exports.sortVerificationFormFields = exports.filterVerificationFormFieldsForReadonlyView = exports.toDynamicFormField = exports.InternationalWireVerificationFormOrder = void 0;
3
+ exports.toVerificationFormFields = exports.sortVerificationFormFields = exports.toDynamicFormField = exports.InternationalWireVerificationFormOrder = void 0;
4
4
  const internationalWireVerificationFieldConstants_1 = require("./internationalWireVerificationFieldConstants");
5
- const internationalWireVerificationLocalDataHelpers_1 = require("./internationalWireVerificationLocalDataHelpers");
6
5
  exports.InternationalWireVerificationFormOrder = [
7
6
  internationalWireVerificationFieldConstants_1.InternationalWireVerificationFormFieldNames.certificateOfGoodStanding,
8
7
  internationalWireVerificationFieldConstants_1.InternationalWireVerificationFormFieldNames.businessOwnership,
@@ -45,14 +44,6 @@ const toDynamicFormField = (key, payload) => ({
45
44
  : undefined,
46
45
  });
47
46
  exports.toDynamicFormField = toDynamicFormField;
48
- const readonlyHideableVerificationFormFieldNames = new Set(internationalWireVerificationFieldConstants_1.InternationalWireVerificationReadonlyHideableFieldNames);
49
- const filterVerificationFormFieldsForReadonlyView = (fields, localData, isReadonly) => {
50
- if (!isReadonly || (0, internationalWireVerificationLocalDataHelpers_1.hasBusinessOwnershipValueInLocalData)(localData)) {
51
- return fields;
52
- }
53
- return fields.filter((field) => !readonlyHideableVerificationFormFieldNames.has(field.name));
54
- };
55
- exports.filterVerificationFormFieldsForReadonlyView = filterVerificationFormFieldsForReadonlyView;
56
47
  const sortVerificationFormFields = (fields) => {
57
48
  const orderIndex = new Map(exports.InternationalWireVerificationFormOrder.map((name, index) => [name, index]));
58
49
  return fields.slice().sort((a, b) => {
@@ -8,7 +8,6 @@ exports.initialState = {
8
8
  verificationFormFetchState: {
9
9
  fetchState: 'Not-Started',
10
10
  },
11
- verificationFormFieldLabels: {},
12
11
  verificationFormFields: [],
13
12
  verificationFormLocalData: {},
14
13
  verificationFormSubmitState: {
@@ -36,7 +35,6 @@ const internationalWireVerification = (0, toolkit_1.createSlice)({
36
35
  },
37
36
  updateInternationalVerificationForm(draft, action) {
38
37
  const { internationalWireFormPayload } = action.payload;
39
- draft.verificationFormFieldLabels = internationalWireFormPayload;
40
38
  draft.verificationFormFields = (0, internationalWireVerificationPayload_1.toVerificationFormFields)(internationalWireFormPayload);
41
39
  draft.verificationFormFetchState.fetchState = 'Completed';
42
40
  },
@@ -47,7 +45,6 @@ const internationalWireVerification = (0, toolkit_1.createSlice)({
47
45
  },
48
46
  updateVerificationFormLocalData(draft, action) {
49
47
  draft.verificationFormLocalData = {
50
- ...draft.verificationFormLocalData,
51
48
  ...action.payload,
52
49
  };
53
50
  },
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getIntlWireVerificationView = void 0;
4
- const companySelector_1 = require("../../../../entity/company/companySelector");
5
4
  const fileSelector_1 = require("../../../../entity/file/fileSelector");
6
- const tenantSelector_1 = require("../../../../entity/tenant/tenantSelector");
7
5
  const fileViewSelector_1 = require("../../../fileView/fileViewSelector");
8
- const internationalWireVerificationPayload_1 = require("./internationalWireVerificationPayload");
9
6
  const collectFileIdsFromLocalData = (localData) => {
10
7
  const fileIds = new Set();
11
8
  Object.values(localData).forEach((value) => {
@@ -26,28 +23,18 @@ const collectFileIdsFromLocalData = (localData) => {
26
23
  const getIntlWireVerificationView = (state) => {
27
24
  const deleteFileStatusById = {};
28
25
  const updateFileStatusById = {};
29
- const { verificationFormFetchState, verificationFormFields, verificationFormLocalData, verificationFormSubmitState, } = state.internationalWireVerificationState;
30
- const fileIds = collectFileIdsFromLocalData(verificationFormLocalData);
26
+ const fileIds = collectFileIdsFromLocalData(state.internationalWireVerificationState.verificationFormLocalData);
31
27
  fileIds.forEach((fileId) => {
32
28
  deleteFileStatusById[fileId] = (0, fileViewSelector_1.getFileDeleteStatusById)(state, fileId);
33
29
  updateFileStatusById[fileId] = (0, fileViewSelector_1.getFileUpdateNameStatusById)(state, fileId);
34
30
  });
35
- const userFiles = fileIds.length > 0 ? (0, fileSelector_1.getFilesByFileIds)(state.fileState, fileIds) : [];
36
- const fetchState = verificationFormFetchState.fetchState;
37
- const currentTenant = (0, tenantSelector_1.getCurrentTenant)(state);
38
- const company = currentTenant?.companyId != null
39
- ? (0, companySelector_1.getCompanyByCompanyId)(state.companyState, currentTenant.companyId)
40
- ?.company
41
- : undefined;
42
- const onboardingStatusCode = company?.companyBillPayInfo?.internationalWireOnboardingStatus?.code;
43
- const isReadonly = onboardingStatusCode != null &&
44
- onboardingStatusCode !== 'onboarding_status_not_started';
45
- const visibleVerificationFormFields = (0, internationalWireVerificationPayload_1.filterVerificationFormFieldsForReadonlyView)(verificationFormFields, verificationFormLocalData, isReadonly);
31
+ const userFiles = fileIds.length > 0
32
+ ? (0, fileSelector_1.getFilesByFileIds)(state.fileState, fileIds)
33
+ : [];
34
+ const fetchState = state.internationalWireVerificationState.verificationFormFetchState
35
+ .fetchState;
46
36
  return {
47
- verificationFormFetchState,
48
- verificationFormFields: visibleVerificationFormFields,
49
- verificationFormLocalData,
50
- verificationFormSubmitState,
37
+ ...state.internationalWireVerificationState,
51
38
  deleteFileStatusById,
52
39
  updateFileStatusById,
53
40
  userFiles,
@@ -1,8 +1,6 @@
1
1
  import { FetchStateAndError } from '../../../../commonStateTypes/common';
2
- import { FieldPayload } from './internationalWireVerificationPayload';
3
2
  export interface InternationalWireVerificationState {
4
3
  verificationFormFetchState: FetchStateAndError;
5
- verificationFormFieldLabels: Record<string, FieldPayload>;
6
4
  verificationFormFields: VerificationFormField[];
7
5
  verificationFormLocalData: VerificationFormLocalData;
8
6
  verificationFormSubmitState: FetchStateAndError;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.0.90-betaAS10",
3
+ "version": "5.0.90-betaAS3",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -1,146 +0,0 @@
1
- import { InternationalWireVerificationBooleanWithSubfieldsFieldNames, InternationalWireVerificationFormFieldNames, } from './internationalWireVerificationFieldConstants';
2
- import { appendIntlWireFileOptionsToLocalData, appendIntlWirePersonToLocalData, isIntlWireFileOptionLike, isIntlWirePersonLike, toIntlWireFileOptionArray, } from './internationalWireVerificationLocalDataHelpers';
3
- const MULTI_OPTION_FILE_FIELD_NAMES = new Set([
4
- InternationalWireVerificationFormFieldNames.businessOwnership,
5
- InternationalWireVerificationFormFieldNames.companyProofOfAddress,
6
- InternationalWireVerificationFormFieldNames.companyOfficerProofOfAddress,
7
- ]);
8
- const toValuesArray = (values) => {
9
- if (values == null) {
10
- return [];
11
- }
12
- if (Array.isArray(values)) {
13
- return values;
14
- }
15
- return [values];
16
- };
17
- const getCodeFromValue = (value) => {
18
- if (typeof value === 'string') {
19
- return value;
20
- }
21
- if (typeof value === 'object' &&
22
- value != null &&
23
- 'code' in value &&
24
- typeof value.code === 'string') {
25
- return value.code;
26
- }
27
- return '';
28
- };
29
- const setEmptyFieldDefault = (localData, fieldKey, fieldPayload) => {
30
- if (fieldPayload.type === 'enum') {
31
- localData[fieldKey] =
32
- fieldPayload.is_multiple_values_allowed === true ? [] : '';
33
- return;
34
- }
35
- if (fieldPayload.type === 'boolean_with_subfields') {
36
- if (fieldKey ===
37
- InternationalWireVerificationBooleanWithSubfieldsFieldNames.stakeHolder) {
38
- localData[fieldKey] = 'false';
39
- return;
40
- }
41
- if (fieldKey ===
42
- InternationalWireVerificationBooleanWithSubfieldsFieldNames.controllingPerson) {
43
- localData[fieldKey] = fieldPayload.default === true ? 'true' : 'false';
44
- }
45
- }
46
- };
47
- const parseEnumValues = (localData, fieldKey, fieldPayload, values) => {
48
- if (fieldPayload.is_multiple_values_allowed === true) {
49
- localData[fieldKey] = values
50
- .map(getCodeFromValue)
51
- .filter((code) => code.length > 0);
52
- return;
53
- }
54
- localData[fieldKey] = getCodeFromValue(values[0]);
55
- };
56
- const parseFileValues = (localData, fieldKey, fieldPayload, values) => {
57
- if (values.length > 0 &&
58
- (isIntlWireFileOptionLike(values[0]) ||
59
- MULTI_OPTION_FILE_FIELD_NAMES.has(fieldKey))) {
60
- const fileOptions = toIntlWireFileOptionArray(values);
61
- if (fileOptions.length > 0) {
62
- appendIntlWireFileOptionsToLocalData(localData, fieldKey, fileOptions);
63
- }
64
- return;
65
- }
66
- const fileIds = values.filter((value) => typeof value === 'string' && value.length > 0);
67
- if (fieldPayload.is_multiple_values_allowed === true) {
68
- localData[fieldKey] = fileIds;
69
- return;
70
- }
71
- localData[fieldKey] = fileIds[0] ?? '';
72
- };
73
- const parseBooleanWithSubfieldsValues = (localData, fieldKey, fieldPayload, rawValues) => {
74
- if (fieldKey ===
75
- InternationalWireVerificationBooleanWithSubfieldsFieldNames.controllingPerson) {
76
- if (isIntlWirePersonLike(rawValues)) {
77
- localData[fieldKey] = 'false';
78
- appendIntlWirePersonToLocalData(localData, fieldKey, rawValues);
79
- return;
80
- }
81
- const values = toValuesArray(rawValues);
82
- if (values.length > 0 && isIntlWirePersonLike(values[0])) {
83
- localData[fieldKey] = 'false';
84
- appendIntlWirePersonToLocalData(localData, fieldKey, values[0]);
85
- return;
86
- }
87
- const selection = getCodeFromValue(values[0]);
88
- localData[fieldKey] =
89
- selection.length > 0
90
- ? selection
91
- : fieldPayload.default === true
92
- ? 'true'
93
- : 'false';
94
- return;
95
- }
96
- if (fieldKey ===
97
- InternationalWireVerificationBooleanWithSubfieldsFieldNames.stakeHolder) {
98
- const values = toValuesArray(rawValues);
99
- if (values.length > 0 && isIntlWirePersonLike(values[0])) {
100
- localData[fieldKey] = 'true';
101
- values.forEach((person, ownerIndex) => {
102
- if (isIntlWirePersonLike(person)) {
103
- appendIntlWirePersonToLocalData(localData, `${fieldKey}_${ownerIndex}`, person);
104
- }
105
- });
106
- return;
107
- }
108
- const selection = getCodeFromValue(values[0]);
109
- localData[fieldKey] = selection.length > 0 ? selection : 'false';
110
- }
111
- };
112
- export const toVerificationFormLocalDataFromOnboardingDetails = (onboardingDetails, internationalWireFormPayload) => {
113
- const localData = {};
114
- Object.keys(internationalWireFormPayload).forEach((fieldKey) => {
115
- const fieldPayload = internationalWireFormPayload[fieldKey];
116
- const rawValues = onboardingDetails?.[fieldKey]?.values;
117
- if (rawValues == null) {
118
- setEmptyFieldDefault(localData, fieldKey, fieldPayload);
119
- return;
120
- }
121
- if (fieldPayload.type === 'boolean_with_subfields') {
122
- parseBooleanWithSubfieldsValues(localData, fieldKey, fieldPayload, rawValues);
123
- return;
124
- }
125
- const values = toValuesArray(rawValues);
126
- if (values.length === 0) {
127
- setEmptyFieldDefault(localData, fieldKey, fieldPayload);
128
- return;
129
- }
130
- switch (fieldPayload.type) {
131
- case 'enum':
132
- parseEnumValues(localData, fieldKey, fieldPayload, values);
133
- break;
134
- case 'file':
135
- parseFileValues(localData, fieldKey, fieldPayload, values);
136
- break;
137
- case 'date':
138
- localData[fieldKey] = getCodeFromValue(values[0]);
139
- break;
140
- default:
141
- localData[fieldKey] = getCodeFromValue(values[0]);
142
- break;
143
- }
144
- });
145
- return localData;
146
- };
@@ -1,86 +0,0 @@
1
- import { InternationalWireVerificationFormFieldNames, InternationalWireVerificationSubfieldNames, } from './internationalWireVerificationFieldConstants';
2
- import { IntlWireVerificationLocalDataSuffix } from './internationalWireVerificationSubmitPayload';
3
- export const isIntlWireFileOptionLike = (value) => typeof value === 'object' &&
4
- value != null &&
5
- 'file_id' in value &&
6
- typeof value.file_id === 'string';
7
- export const isIntlWirePersonLike = (value) => {
8
- if (typeof value !== 'object' || value == null || Array.isArray(value)) {
9
- return false;
10
- }
11
- const person = value;
12
- return (person.name != null ||
13
- person.email != null ||
14
- person.nationality != null ||
15
- person.company_role != null ||
16
- person.ssn != null ||
17
- person.date_of_birth != null ||
18
- person.ownership_percentage != null ||
19
- person.proof_of_identity != null ||
20
- person.proof_of_address != null);
21
- };
22
- export const toIntlWireFileOptionArray = (items) => items.filter(isIntlWireFileOptionLike);
23
- export const appendIntlWireFileOptionsToLocalData = (localData, baseKey, fileOptions) => {
24
- const [front, back] = fileOptions;
25
- if (front?.file_id != null && front.file_id !== '') {
26
- localData[baseKey] = front.file_id;
27
- if (front.option != null && front.option !== '') {
28
- localData[`${baseKey}${IntlWireVerificationLocalDataSuffix.documentOption}`] = front.option;
29
- }
30
- }
31
- if (back?.file_id != null && back.file_id !== '') {
32
- localData[`${baseKey}${IntlWireVerificationLocalDataSuffix.documentBack}`] =
33
- back.file_id;
34
- }
35
- };
36
- export const appendIntlWirePersonToLocalData = (localData, keyPrefix, person) => {
37
- const nameBaseKey = `${keyPrefix}_${InternationalWireVerificationSubfieldNames.name}`;
38
- if (person.name?.first_name != null) {
39
- localData[`${nameBaseKey}${IntlWireVerificationLocalDataSuffix.nameFirst}`] = person.name.first_name;
40
- }
41
- if (person.name?.last_name != null) {
42
- localData[`${nameBaseKey}${IntlWireVerificationLocalDataSuffix.nameLast}`] = person.name.last_name;
43
- }
44
- const assignStringField = (subfieldName, fieldValue) => {
45
- if (fieldValue != null && fieldValue !== '') {
46
- localData[`${keyPrefix}_${subfieldName}`] = fieldValue;
47
- }
48
- };
49
- assignStringField(InternationalWireVerificationSubfieldNames.nationality, person.nationality);
50
- assignStringField(InternationalWireVerificationSubfieldNames.email, person.email);
51
- assignStringField(InternationalWireVerificationSubfieldNames.companyRole, person.company_role);
52
- assignStringField(InternationalWireVerificationSubfieldNames.ssn, person.ssn);
53
- assignStringField(InternationalWireVerificationSubfieldNames.dateOfBirth, person.date_of_birth);
54
- if (person.ownership_percentage != null) {
55
- localData[`${keyPrefix}_${InternationalWireVerificationSubfieldNames.ownershipPercentage}`] = person.ownership_percentage;
56
- }
57
- if (person.proof_of_identity != null) {
58
- appendIntlWireFileOptionsToLocalData(localData, `${keyPrefix}_${InternationalWireVerificationSubfieldNames.proofOfIdentity}`, toIntlWireFileOptionArray(person.proof_of_identity));
59
- }
60
- if (person.proof_of_address != null) {
61
- appendIntlWireFileOptionsToLocalData(localData, `${keyPrefix}_${InternationalWireVerificationSubfieldNames.proofOfAddress}`, toIntlWireFileOptionArray(person.proof_of_address));
62
- }
63
- };
64
- export const getStakeHolderOwnerIndicesFromLocalData = (localData) => {
65
- const indices = new Set();
66
- Object.keys(localData).forEach((key) => {
67
- const match = key.match(/^stake_holder_(\d+)_/);
68
- if (match != null) {
69
- indices.add(Number.parseInt(match[1], 10));
70
- }
71
- });
72
- return Array.from(indices).sort((a, b) => a - b);
73
- };
74
- export const hasBusinessOwnershipValueInLocalData = (localData) => {
75
- const baseKey = InternationalWireVerificationFormFieldNames.businessOwnership;
76
- const frontFileId = localData[baseKey];
77
- if (typeof frontFileId === 'string' && frontFileId !== '') {
78
- return true;
79
- }
80
- const backFileId = localData[`${baseKey}${IntlWireVerificationLocalDataSuffix.documentBack}`];
81
- if (typeof backFileId === 'string' && backFileId !== '') {
82
- return true;
83
- }
84
- const documentOption = localData[`${baseKey}${IntlWireVerificationLocalDataSuffix.documentOption}`];
85
- return typeof documentOption === 'string' && documentOption !== '';
86
- };
@@ -1,4 +0,0 @@
1
- import { LabelValueCodesPayload } from '../../../../commonPayloadTypes/commonPayload';
2
- import { FieldPayload } from './internationalWireVerificationPayload';
3
- import { VerificationFormLocalData } from './internationalWireVerificationState';
4
- export declare const toVerificationFormLocalDataFromOnboardingDetails: (onboardingDetails: Record<string, LabelValueCodesPayload> | undefined, internationalWireFormPayload: Record<string, FieldPayload>) => VerificationFormLocalData;
@@ -1,150 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toVerificationFormLocalDataFromOnboardingDetails = void 0;
4
- const internationalWireVerificationFieldConstants_1 = require("./internationalWireVerificationFieldConstants");
5
- const internationalWireVerificationLocalDataHelpers_1 = require("./internationalWireVerificationLocalDataHelpers");
6
- const MULTI_OPTION_FILE_FIELD_NAMES = new Set([
7
- internationalWireVerificationFieldConstants_1.InternationalWireVerificationFormFieldNames.businessOwnership,
8
- internationalWireVerificationFieldConstants_1.InternationalWireVerificationFormFieldNames.companyProofOfAddress,
9
- internationalWireVerificationFieldConstants_1.InternationalWireVerificationFormFieldNames.companyOfficerProofOfAddress,
10
- ]);
11
- const toValuesArray = (values) => {
12
- if (values == null) {
13
- return [];
14
- }
15
- if (Array.isArray(values)) {
16
- return values;
17
- }
18
- return [values];
19
- };
20
- const getCodeFromValue = (value) => {
21
- if (typeof value === 'string') {
22
- return value;
23
- }
24
- if (typeof value === 'object' &&
25
- value != null &&
26
- 'code' in value &&
27
- typeof value.code === 'string') {
28
- return value.code;
29
- }
30
- return '';
31
- };
32
- const setEmptyFieldDefault = (localData, fieldKey, fieldPayload) => {
33
- if (fieldPayload.type === 'enum') {
34
- localData[fieldKey] =
35
- fieldPayload.is_multiple_values_allowed === true ? [] : '';
36
- return;
37
- }
38
- if (fieldPayload.type === 'boolean_with_subfields') {
39
- if (fieldKey ===
40
- internationalWireVerificationFieldConstants_1.InternationalWireVerificationBooleanWithSubfieldsFieldNames.stakeHolder) {
41
- localData[fieldKey] = 'false';
42
- return;
43
- }
44
- if (fieldKey ===
45
- internationalWireVerificationFieldConstants_1.InternationalWireVerificationBooleanWithSubfieldsFieldNames.controllingPerson) {
46
- localData[fieldKey] = fieldPayload.default === true ? 'true' : 'false';
47
- }
48
- }
49
- };
50
- const parseEnumValues = (localData, fieldKey, fieldPayload, values) => {
51
- if (fieldPayload.is_multiple_values_allowed === true) {
52
- localData[fieldKey] = values
53
- .map(getCodeFromValue)
54
- .filter((code) => code.length > 0);
55
- return;
56
- }
57
- localData[fieldKey] = getCodeFromValue(values[0]);
58
- };
59
- const parseFileValues = (localData, fieldKey, fieldPayload, values) => {
60
- if (values.length > 0 &&
61
- ((0, internationalWireVerificationLocalDataHelpers_1.isIntlWireFileOptionLike)(values[0]) ||
62
- MULTI_OPTION_FILE_FIELD_NAMES.has(fieldKey))) {
63
- const fileOptions = (0, internationalWireVerificationLocalDataHelpers_1.toIntlWireFileOptionArray)(values);
64
- if (fileOptions.length > 0) {
65
- (0, internationalWireVerificationLocalDataHelpers_1.appendIntlWireFileOptionsToLocalData)(localData, fieldKey, fileOptions);
66
- }
67
- return;
68
- }
69
- const fileIds = values.filter((value) => typeof value === 'string' && value.length > 0);
70
- if (fieldPayload.is_multiple_values_allowed === true) {
71
- localData[fieldKey] = fileIds;
72
- return;
73
- }
74
- localData[fieldKey] = fileIds[0] ?? '';
75
- };
76
- const parseBooleanWithSubfieldsValues = (localData, fieldKey, fieldPayload, rawValues) => {
77
- if (fieldKey ===
78
- internationalWireVerificationFieldConstants_1.InternationalWireVerificationBooleanWithSubfieldsFieldNames.controllingPerson) {
79
- if ((0, internationalWireVerificationLocalDataHelpers_1.isIntlWirePersonLike)(rawValues)) {
80
- localData[fieldKey] = 'false';
81
- (0, internationalWireVerificationLocalDataHelpers_1.appendIntlWirePersonToLocalData)(localData, fieldKey, rawValues);
82
- return;
83
- }
84
- const values = toValuesArray(rawValues);
85
- if (values.length > 0 && (0, internationalWireVerificationLocalDataHelpers_1.isIntlWirePersonLike)(values[0])) {
86
- localData[fieldKey] = 'false';
87
- (0, internationalWireVerificationLocalDataHelpers_1.appendIntlWirePersonToLocalData)(localData, fieldKey, values[0]);
88
- return;
89
- }
90
- const selection = getCodeFromValue(values[0]);
91
- localData[fieldKey] =
92
- selection.length > 0
93
- ? selection
94
- : fieldPayload.default === true
95
- ? 'true'
96
- : 'false';
97
- return;
98
- }
99
- if (fieldKey ===
100
- internationalWireVerificationFieldConstants_1.InternationalWireVerificationBooleanWithSubfieldsFieldNames.stakeHolder) {
101
- const values = toValuesArray(rawValues);
102
- if (values.length > 0 && (0, internationalWireVerificationLocalDataHelpers_1.isIntlWirePersonLike)(values[0])) {
103
- localData[fieldKey] = 'true';
104
- values.forEach((person, ownerIndex) => {
105
- if ((0, internationalWireVerificationLocalDataHelpers_1.isIntlWirePersonLike)(person)) {
106
- (0, internationalWireVerificationLocalDataHelpers_1.appendIntlWirePersonToLocalData)(localData, `${fieldKey}_${ownerIndex}`, person);
107
- }
108
- });
109
- return;
110
- }
111
- const selection = getCodeFromValue(values[0]);
112
- localData[fieldKey] = selection.length > 0 ? selection : 'false';
113
- }
114
- };
115
- const toVerificationFormLocalDataFromOnboardingDetails = (onboardingDetails, internationalWireFormPayload) => {
116
- const localData = {};
117
- Object.keys(internationalWireFormPayload).forEach((fieldKey) => {
118
- const fieldPayload = internationalWireFormPayload[fieldKey];
119
- const rawValues = onboardingDetails?.[fieldKey]?.values;
120
- if (rawValues == null) {
121
- setEmptyFieldDefault(localData, fieldKey, fieldPayload);
122
- return;
123
- }
124
- if (fieldPayload.type === 'boolean_with_subfields') {
125
- parseBooleanWithSubfieldsValues(localData, fieldKey, fieldPayload, rawValues);
126
- return;
127
- }
128
- const values = toValuesArray(rawValues);
129
- if (values.length === 0) {
130
- setEmptyFieldDefault(localData, fieldKey, fieldPayload);
131
- return;
132
- }
133
- switch (fieldPayload.type) {
134
- case 'enum':
135
- parseEnumValues(localData, fieldKey, fieldPayload, values);
136
- break;
137
- case 'file':
138
- parseFileValues(localData, fieldKey, fieldPayload, values);
139
- break;
140
- case 'date':
141
- localData[fieldKey] = getCodeFromValue(values[0]);
142
- break;
143
- default:
144
- localData[fieldKey] = getCodeFromValue(values[0]);
145
- break;
146
- }
147
- });
148
- return localData;
149
- };
150
- exports.toVerificationFormLocalDataFromOnboardingDetails = toVerificationFormLocalDataFromOnboardingDetails;
@@ -1,27 +0,0 @@
1
- import { VerificationFormLocalData } from './internationalWireVerificationState';
2
- export type IntlWireFileOptionLike = {
3
- file_id: string;
4
- option?: string;
5
- };
6
- export type IntlWirePersonNameLike = {
7
- first_name?: string;
8
- last_name?: string;
9
- };
10
- export type IntlWirePersonLike = {
11
- company_role?: string;
12
- date_of_birth?: string;
13
- email?: string;
14
- name?: IntlWirePersonNameLike;
15
- nationality?: string;
16
- ownership_percentage?: number;
17
- proof_of_address?: IntlWireFileOptionLike[];
18
- proof_of_identity?: IntlWireFileOptionLike[];
19
- ssn?: string;
20
- };
21
- export declare const isIntlWireFileOptionLike: (value: unknown) => value is IntlWireFileOptionLike;
22
- export declare const isIntlWirePersonLike: (value: unknown) => value is IntlWirePersonLike;
23
- export declare const toIntlWireFileOptionArray: (items: unknown[]) => IntlWireFileOptionLike[];
24
- export declare const appendIntlWireFileOptionsToLocalData: (localData: VerificationFormLocalData, baseKey: string, fileOptions: IntlWireFileOptionLike[]) => void;
25
- export declare const appendIntlWirePersonToLocalData: (localData: VerificationFormLocalData, keyPrefix: string, person: IntlWirePersonLike) => void;
26
- export declare const getStakeHolderOwnerIndicesFromLocalData: (localData: VerificationFormLocalData) => number[];
27
- export declare const hasBusinessOwnershipValueInLocalData: (localData: VerificationFormLocalData) => boolean;
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasBusinessOwnershipValueInLocalData = exports.getStakeHolderOwnerIndicesFromLocalData = exports.appendIntlWirePersonToLocalData = exports.appendIntlWireFileOptionsToLocalData = exports.toIntlWireFileOptionArray = exports.isIntlWirePersonLike = exports.isIntlWireFileOptionLike = void 0;
4
- const internationalWireVerificationFieldConstants_1 = require("./internationalWireVerificationFieldConstants");
5
- const internationalWireVerificationSubmitPayload_1 = require("./internationalWireVerificationSubmitPayload");
6
- const isIntlWireFileOptionLike = (value) => typeof value === 'object' &&
7
- value != null &&
8
- 'file_id' in value &&
9
- typeof value.file_id === 'string';
10
- exports.isIntlWireFileOptionLike = isIntlWireFileOptionLike;
11
- const isIntlWirePersonLike = (value) => {
12
- if (typeof value !== 'object' || value == null || Array.isArray(value)) {
13
- return false;
14
- }
15
- const person = value;
16
- return (person.name != null ||
17
- person.email != null ||
18
- person.nationality != null ||
19
- person.company_role != null ||
20
- person.ssn != null ||
21
- person.date_of_birth != null ||
22
- person.ownership_percentage != null ||
23
- person.proof_of_identity != null ||
24
- person.proof_of_address != null);
25
- };
26
- exports.isIntlWirePersonLike = isIntlWirePersonLike;
27
- const toIntlWireFileOptionArray = (items) => items.filter(exports.isIntlWireFileOptionLike);
28
- exports.toIntlWireFileOptionArray = toIntlWireFileOptionArray;
29
- const appendIntlWireFileOptionsToLocalData = (localData, baseKey, fileOptions) => {
30
- const [front, back] = fileOptions;
31
- if (front?.file_id != null && front.file_id !== '') {
32
- localData[baseKey] = front.file_id;
33
- if (front.option != null && front.option !== '') {
34
- localData[`${baseKey}${internationalWireVerificationSubmitPayload_1.IntlWireVerificationLocalDataSuffix.documentOption}`] = front.option;
35
- }
36
- }
37
- if (back?.file_id != null && back.file_id !== '') {
38
- localData[`${baseKey}${internationalWireVerificationSubmitPayload_1.IntlWireVerificationLocalDataSuffix.documentBack}`] =
39
- back.file_id;
40
- }
41
- };
42
- exports.appendIntlWireFileOptionsToLocalData = appendIntlWireFileOptionsToLocalData;
43
- const appendIntlWirePersonToLocalData = (localData, keyPrefix, person) => {
44
- const nameBaseKey = `${keyPrefix}_${internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.name}`;
45
- if (person.name?.first_name != null) {
46
- localData[`${nameBaseKey}${internationalWireVerificationSubmitPayload_1.IntlWireVerificationLocalDataSuffix.nameFirst}`] = person.name.first_name;
47
- }
48
- if (person.name?.last_name != null) {
49
- localData[`${nameBaseKey}${internationalWireVerificationSubmitPayload_1.IntlWireVerificationLocalDataSuffix.nameLast}`] = person.name.last_name;
50
- }
51
- const assignStringField = (subfieldName, fieldValue) => {
52
- if (fieldValue != null && fieldValue !== '') {
53
- localData[`${keyPrefix}_${subfieldName}`] = fieldValue;
54
- }
55
- };
56
- assignStringField(internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.nationality, person.nationality);
57
- assignStringField(internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.email, person.email);
58
- assignStringField(internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.companyRole, person.company_role);
59
- assignStringField(internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.ssn, person.ssn);
60
- assignStringField(internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.dateOfBirth, person.date_of_birth);
61
- if (person.ownership_percentage != null) {
62
- localData[`${keyPrefix}_${internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.ownershipPercentage}`] = person.ownership_percentage;
63
- }
64
- if (person.proof_of_identity != null) {
65
- (0, exports.appendIntlWireFileOptionsToLocalData)(localData, `${keyPrefix}_${internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.proofOfIdentity}`, (0, exports.toIntlWireFileOptionArray)(person.proof_of_identity));
66
- }
67
- if (person.proof_of_address != null) {
68
- (0, exports.appendIntlWireFileOptionsToLocalData)(localData, `${keyPrefix}_${internationalWireVerificationFieldConstants_1.InternationalWireVerificationSubfieldNames.proofOfAddress}`, (0, exports.toIntlWireFileOptionArray)(person.proof_of_address));
69
- }
70
- };
71
- exports.appendIntlWirePersonToLocalData = appendIntlWirePersonToLocalData;
72
- const getStakeHolderOwnerIndicesFromLocalData = (localData) => {
73
- const indices = new Set();
74
- Object.keys(localData).forEach((key) => {
75
- const match = key.match(/^stake_holder_(\d+)_/);
76
- if (match != null) {
77
- indices.add(Number.parseInt(match[1], 10));
78
- }
79
- });
80
- return Array.from(indices).sort((a, b) => a - b);
81
- };
82
- exports.getStakeHolderOwnerIndicesFromLocalData = getStakeHolderOwnerIndicesFromLocalData;
83
- const hasBusinessOwnershipValueInLocalData = (localData) => {
84
- const baseKey = internationalWireVerificationFieldConstants_1.InternationalWireVerificationFormFieldNames.businessOwnership;
85
- const frontFileId = localData[baseKey];
86
- if (typeof frontFileId === 'string' && frontFileId !== '') {
87
- return true;
88
- }
89
- const backFileId = localData[`${baseKey}${internationalWireVerificationSubmitPayload_1.IntlWireVerificationLocalDataSuffix.documentBack}`];
90
- if (typeof backFileId === 'string' && backFileId !== '') {
91
- return true;
92
- }
93
- const documentOption = localData[`${baseKey}${internationalWireVerificationSubmitPayload_1.IntlWireVerificationLocalDataSuffix.documentOption}`];
94
- return typeof documentOption === 'string' && documentOption !== '';
95
- };
96
- exports.hasBusinessOwnershipValueInLocalData = hasBusinessOwnershipValueInLocalData;