@zeniai/client-epic-state 4.15.29 → 4.15.30

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.
package/lib/index.d.ts CHANGED
@@ -478,6 +478,7 @@ import { ZeniAccountBusinessVerificationDetails, ZeniAccountSetupView, getZeniAc
478
478
  import { ZeniAccountSetupViewLocalData, ZeniAccountSetupViewState } from './view/spendManagement/zeniAccounts/zeniAccountSetUp/zeniAccountSetupViewState';
479
479
  import { fetchZeniAccountsConfig } from './view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigReducer';
480
480
  import { ZeniAccountsConfigSelectorView, getZeniAccountsConfigDetail } from './view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigSelector';
481
+ import { ZeniAccountPaymentMethod } from './view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigState';
481
482
  import { clearSubscriptionLocalData, clearSubscriptionUpdateViewDataByTenantId, clearSubscriptionView, fetchSubscriptionAddOns, fetchSubscriptionCoupons, fetchSubscriptionCreateEstimate, fetchSubscriptionDetails, fetchSubscriptionList, fetchSubscriptionPlans, fetchSubscriptionUpdateEstimate, initializeSubscriptionLocalData, saveSubscriptionLocalData, saveSubscriptionNotesUpdates, saveSubscriptionUpdates, updateSubscriptionListUIState } from './view/subscriptionView/subscriptionViewReducer';
482
483
  import { getSubscriptionEstimationData, getSubscriptionListView, getSubscriptionLocalStoreDataView, getSubscriptionsDetailView } from './view/subscriptionView/subscriptionViewSelector';
483
484
  import { SubscriptionDetails, SubscriptionEstimationData, SubscriptionListView, SubscriptionLocalStoreDataView, SubscriptionsDetailView } from './view/subscriptionView/subscriptionViewSelectorTypes';
@@ -755,7 +756,7 @@ export { ReimbursementCardReport };
755
756
  export { VendorListViewSortKey, VendorViewUIState, VendorListSelectorView, VendorListQuery, getVendorList, VendorListView, updateSortUiState, updatePageToken, updateYTDSelectionUIState, VendorListViewYTDSpendSortKey, isColumnYTDSpend, isVendorsTabVisible, VendorViewType, VendorReportIDType, toVendorReportIDType, VendorFiling1099ListSelectorView, getVendorFiling1099List, VendorFiling1099ListViewSortKey, VendorFiling1099ViewUIState, VendorFiling1099DownloadData, fetchVendorsFiling1099Download, Type1099Download, VendorFiling1099DownloadDataForType, };
756
757
  export { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
757
758
  export { fetchOwnerList };
758
- export { ZeniAccountsConfigSelectorView, getZeniAccountsConfigDetail, ZeniAccountListSelectorView, getZeniAccountList, fetchZeniAccountList, DepositAccount, createCheckingAccount, fetchPaymentAccountList, unlinkPaymentAccount, getDepositAccountDetail, DepositAccountDetailSelectorView, DepositAccountListSelectorView, getAllDepostAccounts, getDepositAccountDetailForPDF, DepositAccountDetailForPDF, fetchDepositAccount, fetchZeniAccountsConfig, AccountHistoryWithBalances, TransferDetailLocalData, ReviewTransferDetail, updateTransferMoneyLocalData, updateTransferToLocalData, updateDepositToLocalData, transferMoney, getTransferDetail, TransferDetailSelectorView, clearTransferDetail, clearReviewTransferDetail, fetchReviewTransferDetail, fetchDepositAccountDetail, DepositAccountTransaction, DepositTransactionStatusCode, DepositTransactionStatus, CheckDepositLocalData, depositCheck, updateCheckDepositLocalData, clearCheckDeposit, CheckDepositSelectorView, getCheckDepositDetail, updateDepositAccount, fetchDepositAccountHistorySuccess, fetchDepositAccountHistoryFailure, DepositAccountUpdateType, ZeniAccountSummaryWithBalance, fetchZeniAccStatementPage, getZeniAccStatements, ZeniAccStatementsSelectorView, };
759
+ export { ZeniAccountsConfigSelectorView, getZeniAccountsConfigDetail, ZeniAccountListSelectorView, getZeniAccountList, fetchZeniAccountList, DepositAccount, createCheckingAccount, fetchPaymentAccountList, unlinkPaymentAccount, getDepositAccountDetail, DepositAccountDetailSelectorView, DepositAccountListSelectorView, getAllDepostAccounts, getDepositAccountDetailForPDF, DepositAccountDetailForPDF, fetchDepositAccount, fetchZeniAccountsConfig, AccountHistoryWithBalances, TransferDetailLocalData, ReviewTransferDetail, updateTransferMoneyLocalData, updateTransferToLocalData, updateDepositToLocalData, transferMoney, getTransferDetail, TransferDetailSelectorView, clearTransferDetail, clearReviewTransferDetail, fetchReviewTransferDetail, fetchDepositAccountDetail, DepositAccountTransaction, DepositTransactionStatusCode, DepositTransactionStatus, CheckDepositLocalData, depositCheck, updateCheckDepositLocalData, clearCheckDeposit, CheckDepositSelectorView, getCheckDepositDetail, updateDepositAccount, fetchDepositAccountHistorySuccess, fetchDepositAccountHistoryFailure, DepositAccountUpdateType, ZeniAccountSummaryWithBalance, fetchZeniAccStatementPage, getZeniAccStatements, ZeniAccStatementsSelectorView, ZeniAccountPaymentMethod, };
759
760
  export { HistoricEvent, HistoricEventUpdate, ActivityHistorySelectorView };
760
761
  export { ActivityRealTimeApprovalSelectorView, Statement, fetchDepositAccountTransactionList, DepositAccountTransactionListSelectorView, getDepositAccountTransactionList, };
761
762
  export { TransactionVendorLocalData, TransactionVendorState, TransactionVendorViewState, };
@@ -3,7 +3,7 @@ import { Currency } from '../../../../commonStateTypes/amount';
3
3
  import { AccountBasePayload } from '../../../../entity/account/accountPayload';
4
4
  import { ClassBasePayload } from '../../../../entity/class/classPayload';
5
5
  import { ZeniAPIResponse } from '../../../../responsePayload';
6
- import { AccType, AccountTypeSubConfigCodeKeyType, BillPayConfig, BillPaymentConfigCodeType, BillPaymentOutsideZeniSubConfigCodeType, BillPaymentSubConfigCodeKeyType, BillPaymentSubConfigCodeType, BillPaymentWireSubConfigCodeKeyType, BillPaymentWireSubConfigCodeType, InternationalSubConfigCodeKeyType, InternationalSubConfigCodeType, InternationalWireMethodCodeKeyType, InternationalWireMethodCodeType, PaymentAchSubConfigCodeKeyType, PaymentAchSubConfigCodeType, VendorCurrency } from './billPayConfigState';
6
+ import { AccType, AccountTypeSubConfigCodeKeyType, BillPayConfig, BillPaymentConfigCodeType, BillPaymentOutsideZeniSubConfigCodeType, BillPaymentSubConfigCodeKeyType, BillPaymentSubConfigCodeType, BillPaymentWireSubConfigCodeKeyType, BillPaymentWireSubConfigCodeType, ConfigPeriod, InternationalSubConfigCodeKeyType, InternationalSubConfigCodeType, InternationalWireMethodCodeKeyType, InternationalWireMethodCodeType, PaymentAchSubConfigCodeKeyType, PaymentAchSubConfigCodeType, VendorCurrency } from './billPayConfigState';
7
7
  export interface BillPayConfigPayload {
8
8
  bill_pay_bot_email: string;
9
9
  is_us_domestic_wire_enabled: boolean;
@@ -106,6 +106,10 @@ export declare const getBillPaymentWireSubConfigCodeKey: (subCode: BillPaymentWi
106
106
  export declare const getInternationalSubConfigCodeKey: (subCode: InternationalSubConfigCodeType) => InternationalSubConfigCodeKeyType;
107
107
  export declare const getInternationalWireMethodCodeKey: (subCode: InternationalWireMethodCodeType) => InternationalWireMethodCodeKeyType;
108
108
  export declare const getAccountTypeSubConfigCodeKey: (subCode: AccType) => AccountTypeSubConfigCodeKeyType;
109
+ export interface TimelineDetail {
110
+ minPeriod: ConfigPeriod;
111
+ maxPeriod: ConfigPeriod;
112
+ }
109
113
  export declare const mapBillPayConfigPayloadToBillPayConfig: (paymentProcessor: BillPayConfigPaymentProcessorPayload, isEnabled: boolean, isVerified: boolean, code: BillPaymentConfigCodeType, subCode: BillPaymentSubConfigCodeType, accType?: AccType, internationalMethod?: InternationalWireMethodCodeType, internationalSubMethod?: InternationalSubConfigCodeType) => BillPayConfig;
110
114
  export declare const mapBillPayVendorConfigPayloadToBillPayVendorConfig: (payload: BillPayConfigPayload, code: BillPaymentConfigCodeType, subCode: BillPaymentSubConfigCodeType) => Currency[];
111
115
  export declare const toVendorCurrency: (payload: VendorCurrencyPayload) => VendorCurrency;
@@ -10,13 +10,14 @@ import { openSnackbar } from '../../../../../entity/snackbar/snackbarReducer';
10
10
  import { TransactionWithAccountAndClassLinePayload } from '../../../../../entity/transaction/payloadTypes/transactionLinePayload';
11
11
  import { RootState } from '../../../../../reducer';
12
12
  import { ZeniAPI } from '../../../../../zeniAPI';
13
+ import { ZeniAccountPaymentMethod } from '../../../zeniAccounts/zeniAccountsConfig/zeniAccountsConfigState';
13
14
  import { BillPayConfig, BillPaymentConfigCodeType, BillPaymentSubConfigCodeType } from '../../billPayConfig/billPayConfigState';
14
15
  import { saveBillDetail, saveBillSuccessOrFailure } from '../editBillViewReducer';
15
16
  import { EditBillDetail } from '../editBillViewState';
16
17
  export type ActionType = ReturnType<typeof saveBillDetail> | ReturnType<typeof updateBillTransaction> | ReturnType<typeof openSnackbar> | ReturnType<typeof saveBillSuccessOrFailure> | ReturnType<typeof updateRecurringBillConfigs> | ReturnType<typeof updateRecurringBills>;
17
18
  export declare const saveBillDetailEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<ActionType>;
18
19
  export declare function prepareSaveBillPayload(accountState: AccountState, billTransactionState: BillTransactionState, paymentAccountState: PaymentAccountState, recurringBillState: RecurringBillState, billDetail: EditBillDetail, billStageCode: BillStageCodeType, isForMarkAsPaid: boolean, isApproverMarkingAsPaid: boolean): Partial<SaveBillPayload>;
19
- export declare const getBillPaymentMethodTypePayload: (paymentType?: BillPayConfig) => BillPaymentMethodTypePayload;
20
+ export declare const getBillPaymentMethodTypePayload: (paymentType?: BillPayConfig | ZeniAccountPaymentMethod) => BillPaymentMethodTypePayload;
20
21
  interface BillPaymentMethodTypePayload {
21
22
  code: BillPaymentConfigCodeType | null;
22
23
  name: string;
@@ -2,8 +2,8 @@ import { ActionsObservable, StateObservable } from 'redux-observable';
2
2
  import { Observable } from 'rxjs';
3
3
  import { RootState } from '../../../../../reducer';
4
4
  import { fetchVendorTypeList } from '../../../../vendorTypeList/vendorTypeListReducer';
5
- import { fetchBillPayConfig } from '../../../billPay/billPayConfig/billPayConfigReducer';
6
5
  import { fetchDepositAccountList } from '../../depositAccountList/depositAccountListReducer';
6
+ import { fetchZeniAccountsConfig } from '../../zeniAccountsConfig/zeniAccountsConfigReducer';
7
7
  import { fetchExpressPayInitialDetails, updateExpressPayFetchState } from '../expressPayReducer';
8
- export type ActionType = ReturnType<typeof fetchExpressPayInitialDetails> | ReturnType<typeof fetchBillPayConfig> | ReturnType<typeof fetchVendorTypeList> | ReturnType<typeof fetchDepositAccountList> | ReturnType<typeof updateExpressPayFetchState>;
8
+ export type ActionType = ReturnType<typeof fetchExpressPayInitialDetails> | ReturnType<typeof fetchZeniAccountsConfig> | ReturnType<typeof fetchVendorTypeList> | ReturnType<typeof fetchDepositAccountList> | ReturnType<typeof updateExpressPayFetchState>;
9
9
  export declare const fetchExpressPayInitialDetailsEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
@@ -4,16 +4,16 @@ exports.fetchExpressPayInitialDetailsEpic = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const operators_1 = require("rxjs/operators");
6
6
  const vendorTypeListReducer_1 = require("../../../../vendorTypeList/vendorTypeListReducer");
7
- const billPayConfigReducer_1 = require("../../../billPay/billPayConfig/billPayConfigReducer");
8
7
  const depositAccountListReducer_1 = require("../../depositAccountList/depositAccountListReducer");
8
+ const zeniAccountsConfigReducer_1 = require("../../zeniAccountsConfig/zeniAccountsConfigReducer");
9
9
  const expressPayReducer_1 = require("../expressPayReducer");
10
10
  const fetchExpressPayInitialDetailsEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(expressPayReducer_1.fetchExpressPayInitialDetails.match), (0, operators_1.mergeMap)((action) => {
11
- const { cacheOverride, isInternationalWireEnabled } = action.payload;
11
+ const { cacheOverride } = action.payload;
12
12
  const state = state$.value;
13
13
  const fetchActions = [];
14
14
  if (cacheOverride === true) {
15
15
  fetchActions.push((0, vendorTypeListReducer_1.fetchVendorTypeList)());
16
- fetchActions.push((0, billPayConfigReducer_1.fetchBillPayConfig)(isInternationalWireEnabled));
16
+ fetchActions.push((0, zeniAccountsConfigReducer_1.fetchZeniAccountsConfig)());
17
17
  fetchActions.push((0, depositAccountListReducer_1.fetchDepositAccountList)());
18
18
  fetchActions.push((0, expressPayReducer_1.updateExpressPayFetchState)());
19
19
  }
@@ -22,10 +22,10 @@ const fetchExpressPayInitialDetailsEpic = (actions$, state$) => actions$.pipe((0
22
22
  state.vendorTypeListState.fetchState !== 'In-Progress') {
23
23
  fetchActions.push((0, vendorTypeListReducer_1.fetchVendorTypeList)());
24
24
  }
25
- const billPayConfigFetchState = state.billPayConfigState.fetchState;
26
- if (billPayConfigFetchState !== 'Completed' &&
27
- billPayConfigFetchState !== 'In-Progress') {
28
- fetchActions.push((0, billPayConfigReducer_1.fetchBillPayConfig)(isInternationalWireEnabled));
25
+ const zeniAccountsConfig = state.zeniAccountsConfigState;
26
+ if (zeniAccountsConfig.hasValidState() === false &&
27
+ zeniAccountsConfig.fetchState !== 'In-Progress') {
28
+ fetchActions.push((0, zeniAccountsConfigReducer_1.fetchZeniAccountsConfig)());
29
29
  }
30
30
  const depositAccounts = state.depositAccountListState;
31
31
  if (depositAccounts.fetchState !== 'In-Progress' &&
@@ -5,9 +5,9 @@ import { File } from '../../../../entity/file/fileState';
5
5
  import { RootState } from '../../../../reducer';
6
6
  import { VendorViewSelectorView } from '../../../commonVendorView/vendorView/vendorViewSelector';
7
7
  import { VendorType } from '../../../vendorTypeList/vendorTypeListPayload';
8
- import { BillPayConfig } from '../../billPay/billPayConfig/billPayConfigState';
9
8
  import { PaymentDetailsSectionView, PaymentToOption } from '../../billPay/editBillView/editBillViewSelector';
10
9
  import { FundingAccount } from '../../commonSetup/setupViewSelector';
10
+ import { ZeniAccountPaymentMethod } from '../zeniAccountsConfig/zeniAccountsConfigState';
11
11
  import { ExpressPayFormLocalData } from './expressPayState';
12
12
  export interface ExpressPayView extends SelectorView {
13
13
  vendorViewDetails: VendorViewSelectorView;
@@ -15,7 +15,7 @@ export interface ExpressPayView extends SelectorView {
15
15
  expressPayLocalData?: ExpressPayFormLocalData;
16
16
  paymentDetails?: PaymentDetailsSectionView;
17
17
  paymentToOptions: PaymentToOption[];
18
- allPaymentMethods: BillPayConfig[];
18
+ allPaymentMethods: ZeniAccountPaymentMethod[];
19
19
  withdrawFromList: FundingAccount[];
20
20
  receiptFile?: File;
21
21
  internationalWireOnboardingStatus?: AllowedValueWithCode;
@@ -11,18 +11,19 @@ const fileViewSelector_1 = require("../../../fileView/fileViewSelector");
11
11
  const editBillViewSelector_1 = require("../../billPay/editBillView/editBillViewSelector");
12
12
  const setupViewSelector_1 = require("../../commonSetup/setupViewSelector");
13
13
  const depositAccountListSelector_1 = require("../depositAccountList/depositAccountListSelector");
14
+ const zeniAccountsConfigSelector_1 = require("../zeniAccountsConfig/zeniAccountsConfigSelector");
14
15
  const getExpressPayView = (state) => {
15
16
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
16
17
  const deleteFileStatusById = {};
17
18
  const updateFileStatusById = {};
18
- const { tenantState, expressPayState, vendorTypeListState, bankAccountState, paymentInstrumentState, billPayConfigState, vendorViewState, depositAccountState, depositAccountListState, paymentAccountListState, } = state;
19
+ const { tenantState, expressPayState, vendorTypeListState, bankAccountState, paymentInstrumentState, vendorViewState, depositAccountState, depositAccountListState, paymentAccountListState, zeniAccountsConfigState, } = state;
19
20
  const { currentTenantId } = tenantState;
20
21
  const companyId = currentTenantId != null
21
22
  ? (_b = (_a = tenantState.tenantsById) === null || _a === void 0 ? void 0 : _a[currentTenantId]) === null || _b === void 0 ? void 0 : _b.companyId
22
23
  : undefined;
23
24
  const companyView = (0, getCompanyView_1.getCompanyView)(state, companyId !== null && companyId !== void 0 ? companyId : '', []);
24
25
  const vendorTypeList = vendorTypeListState.vendorTypes;
25
- const allPaymentMethods = (0, editBillViewSelector_1.getBillPayConfigList)(billPayConfigState);
26
+ const allPaymentMethods = (0, zeniAccountsConfigSelector_1.getZeniAccountsConfigDetail)(state).zeniAccountsConfigDetail.paymentMethods;
26
27
  const vendorId = (_c = expressPayState.formLocalData) === null || _c === void 0 ? void 0 : _c.vendorId;
27
28
  const vendorViewDetails = (0, vendorViewSelector_1.getVendorView)(state, vendorId);
28
29
  const vendorLocalData = vendorId != null
@@ -53,8 +54,8 @@ const getExpressPayView = (state) => {
53
54
  error: vendorTypeListState.error,
54
55
  },
55
56
  {
56
- fetchState: billPayConfigState.fetchState,
57
- error: billPayConfigState.error,
57
+ fetchState: zeniAccountsConfigState.fetchState,
58
+ error: zeniAccountsConfigState.error,
58
59
  },
59
60
  {
60
61
  fetchState: depositAccountListState.fetchState,
@@ -1,8 +1,8 @@
1
1
  import { Amount } from '../../../../commonStateTypes/amount';
2
2
  import { FetchStateAndError, ID } from '../../../../commonStateTypes/common';
3
3
  import { ZeniDate } from '../../../../zeniDayJS';
4
- import { BillPayConfig } from '../../billPay/billPayConfig/billPayConfigState';
5
4
  import { FundingAccount } from '../../commonSetup/setupViewSelector';
5
+ import { ZeniAccountPaymentMethod } from '../zeniAccountsConfig/zeniAccountsConfigState';
6
6
  export interface ExpressPayState extends FetchStateAndError {
7
7
  expressPayId?: ID;
8
8
  formLocalData?: ExpressPayFormLocalData;
@@ -12,7 +12,7 @@ export interface ExpressPayFormLocalData {
12
12
  vendorId?: ID;
13
13
  withdrawFrom?: FundingAccount;
14
14
  paymentToAccountId?: ID;
15
- paymentType?: BillPayConfig;
15
+ paymentType?: ZeniAccountPaymentMethod;
16
16
  amount: Amount;
17
17
  paymentDate: ZeniDate;
18
18
  receiptFileId?: ID;
@@ -1,5 +1,7 @@
1
1
  import { AddressPayload } from '../../../../entity/address/addressPayload';
2
2
  import { ZeniAPIResponse } from '../../../../responsePayload';
3
+ import { ConfigTimelinePayload, TimelineDetail } from '../../billPay/billPayConfig/billPayConfigPayload';
4
+ import { BillPaymentConfigCodeType, PaymentAchSubConfigCodeType } from '../../billPay/billPayConfig/billPayConfigState';
3
5
  import { ZeniAccountsConfig } from './zeniAccountsConfigState';
4
6
  export interface ZeniAccountsConfigPayload {
5
7
  apy: string | null;
@@ -7,7 +9,18 @@ export interface ZeniAccountsConfigPayload {
7
9
  deposit_product_config: DepositProductConfigPayload;
8
10
  mailing_address: AddressPayload;
9
11
  bank_address: AddressPayload;
12
+ payment_processor: PaymentProcessorPayload;
13
+ is_us_domestic_wire_enabled: boolean;
14
+ is_same_day_ach_enabled: boolean;
10
15
  }
16
+ export interface PaymentProcessorPayload {
17
+ payment_timeline: PaymentTimeline;
18
+ }
19
+ interface PaymentTimeline {
20
+ ach: Record<PaymentAchSubConfigCodeType, ConfigTimelineForAccTypePayload>;
21
+ wire: Record<'us-domestic', ConfigTimelineForAccTypePayload>;
22
+ }
23
+ export type ConfigTimelineForAccTypePayload = Record<'deposit_account', ConfigTimelinePayload>;
11
24
  export declare const mapZeniAccountsConfigPayloadToZeniAccountsConfigState: (payload: ZeniAccountsConfigPayload) => ZeniAccountsConfig;
12
25
  interface DepositProductConfigPayload {
13
26
  deposit_products: DepositProductsPayload[];
@@ -17,4 +30,5 @@ interface DepositProductsPayload {
17
30
  range: (number | null)[];
18
31
  }
19
32
  export type FetchZeniAccountsConfigResponse = ZeniAPIResponse<ZeniAccountsConfigPayload>;
33
+ export declare const getTimelineDetail: (paymentTimeline: PaymentTimeline, code: BillPaymentConfigCodeType, subCode: "standard" | "same-day" | "us-domestic") => TimelineDetail;
20
34
  export {};
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapZeniAccountsConfigPayloadToZeniAccountsConfigState = void 0;
3
+ exports.getTimelineDetail = exports.mapZeniAccountsConfigPayloadToZeniAccountsConfigState = void 0;
4
+ const billPayConfigPayload_1 = require("../../billPay/billPayConfig/billPayConfigPayload");
5
+ const billPayConfigState_1 = require("../../billPay/billPayConfig/billPayConfigState");
4
6
  const mapZeniAccountsConfigPayloadToZeniAccountsConfigState = (payload) => ({
5
7
  annualPercentageYield: payload.apy != null ? payload.apy : '',
6
8
  bankName: payload.bank_name,
7
9
  mailingAddressId: payload.mailing_address.address_id,
8
10
  bankAddressId: payload.bank_address.address_id,
9
11
  depositProductConfig: mapDepositProductConfigPayloadToDepositProductConfig(payload.deposit_product_config),
12
+ paymentMethods: mapZeniAccountConfigPayloadToPaymentMethods(payload.payment_processor, payload.is_same_day_ach_enabled, payload.is_us_domestic_wire_enabled),
10
13
  });
11
14
  exports.mapZeniAccountsConfigPayloadToZeniAccountsConfigState = mapZeniAccountsConfigPayloadToZeniAccountsConfigState;
12
15
  const mapDepositProductConfigPayloadToDepositProductConfig = (payload) => {
@@ -20,3 +23,77 @@ const mapDepositProductConfigPayloadToDepositProductConfig = (payload) => {
20
23
  depositProducts: array,
21
24
  };
22
25
  };
26
+ const mapZeniAccountConfigPayloadToPaymentMethods = (paymentProcessor, isSameDayAchEnabled, isDomesticWireEnabled) => {
27
+ const paymentMethods = [];
28
+ billPayConfigState_1.BILL_PAYMENT_METHOD_CODE.forEach((code) => {
29
+ switch (code) {
30
+ case 'ach': {
31
+ billPayConfigState_1.PAYMENT_ACH_SUB_CODES.forEach((subCode) => {
32
+ billPayConfigState_1.ACCOUNT_TYPE_CODES.forEach((accType) => {
33
+ paymentMethods.push(mapBillPayConfigPayloadToBillPayConfig(paymentProcessor, subCode === 'standard' ? true : isSameDayAchEnabled, true, code, subCode, accType));
34
+ });
35
+ });
36
+ break;
37
+ }
38
+ case 'wire': {
39
+ billPayConfigState_1.BILL_PAYMENT_WIRE_SUB_CODES.forEach((subCode) => {
40
+ if (subCode === 'us-domestic') {
41
+ billPayConfigState_1.ACCOUNT_TYPE_CODES.forEach((accType) => {
42
+ paymentMethods.push(mapBillPayConfigPayloadToBillPayConfig(paymentProcessor, isDomesticWireEnabled, true, code, subCode, accType));
43
+ });
44
+ }
45
+ });
46
+ break;
47
+ }
48
+ }
49
+ });
50
+ return paymentMethods;
51
+ };
52
+ const mapBillPayConfigPayloadToBillPayConfig = (paymentProcessor, isEnabled, isVerified, code, subCode, accType) => {
53
+ const { payment_timeline } = paymentProcessor;
54
+ const { minPeriod, maxPeriod } = (0, exports.getTimelineDetail)(payment_timeline, code, subCode);
55
+ return {
56
+ minPeriod: minPeriod,
57
+ maxPeriod: maxPeriod,
58
+ method: (0, billPayConfigState_1.getBillPayConfigMethodKey)(code, (0, billPayConfigState_1.toBillPaymentSubConfigCodeKeyType)((0, billPayConfigPayload_1.getBillPaymentSubConfigCodeKey)(subCode)), accType != null ? (0, billPayConfigPayload_1.getAccountTypeSubConfigCodeKey)(accType) : undefined),
59
+ isEnabled,
60
+ isVerified,
61
+ };
62
+ };
63
+ const getTimelineDetail = (paymentTimeline, code, subCode) => {
64
+ const accType = 'deposit_account';
65
+ let minPeriod = {
66
+ value: 0,
67
+ units: 'days',
68
+ };
69
+ let maxPeriod = {
70
+ value: 0,
71
+ units: 'days',
72
+ };
73
+ if (code === 'ach') {
74
+ minPeriod = {
75
+ value: paymentTimeline[code][(0, billPayConfigState_1.toPaymentAchSubMethodCodeType)(subCode)][accType]
76
+ .min.value,
77
+ units: paymentTimeline[code][(0, billPayConfigState_1.toPaymentAchSubMethodCodeType)(subCode)][accType]
78
+ .min.units,
79
+ };
80
+ maxPeriod = {
81
+ value: paymentTimeline[code][(0, billPayConfigState_1.toPaymentAchSubMethodCodeType)(subCode)][accType]
82
+ .max.value,
83
+ units: paymentTimeline[code][(0, billPayConfigState_1.toPaymentAchSubMethodCodeType)(subCode)][accType]
84
+ .max.units,
85
+ };
86
+ }
87
+ else if (code === 'wire') {
88
+ minPeriod = {
89
+ value: paymentTimeline[code]['us-domestic'][accType].min.value,
90
+ units: paymentTimeline[code]['us-domestic'][accType].min.units,
91
+ };
92
+ maxPeriod = {
93
+ value: paymentTimeline[code]['us-domestic'][accType].max.value,
94
+ units: paymentTimeline[code]['us-domestic'][accType].max.units,
95
+ };
96
+ }
97
+ return { minPeriod, maxPeriod };
98
+ };
99
+ exports.getTimelineDetail = getTimelineDetail;
@@ -13,6 +13,7 @@ exports.initialState = {
13
13
  depositProductConfig: {
14
14
  depositProducts: [{ annualPercentageYield: 0, range: [] }],
15
15
  },
16
+ paymentMethods: [],
16
17
  },
17
18
  hasValidState() {
18
19
  return this.fetchState == 'Completed';
@@ -29,13 +30,14 @@ const zeniAccountsConfig = (0, toolkit_1.createSlice)({
29
30
  draft.error = undefined;
30
31
  },
31
32
  updateZeniAccountsConfigSuccess(draft, action) {
32
- const { bankName, mailingAddressId, bankAddressId, depositProductConfig, annualPercentageYield, } = (0, zeniAccountsConfigPayload_1.mapZeniAccountsConfigPayloadToZeniAccountsConfigState)(action.payload);
33
+ const { bankName, mailingAddressId, bankAddressId, depositProductConfig, annualPercentageYield, paymentMethods, } = (0, zeniAccountsConfigPayload_1.mapZeniAccountsConfigPayloadToZeniAccountsConfigState)(action.payload);
33
34
  draft.zeniAccountsConfig = {
34
35
  annualPercentageYield,
35
36
  bankName,
36
37
  mailingAddressId,
37
38
  bankAddressId,
38
39
  depositProductConfig,
40
+ paymentMethods,
39
41
  };
40
42
  draft.fetchState = 'Completed';
41
43
  draft.error = undefined;
@@ -1,7 +1,7 @@
1
1
  import { SelectorView } from '../../../../commonStateTypes/viewAndReport/viewAndReport';
2
2
  import { Address } from '../../../../entity/address/addressState';
3
3
  import { RootState } from '../../../../reducer';
4
- import { DepositProductConfig } from './zeniAccountsConfigState';
4
+ import { DepositProductConfig, ZeniAccountPaymentMethod } from './zeniAccountsConfigState';
5
5
  export interface ZeniAccountsConfigSelectorView extends SelectorView {
6
6
  zeniAccountsConfigDetail: {
7
7
  annualPercentageYield: string;
@@ -9,6 +9,7 @@ export interface ZeniAccountsConfigSelectorView extends SelectorView {
9
9
  depositProductConfig: DepositProductConfig;
10
10
  mailingAddress?: Address;
11
11
  bankAddress?: Address;
12
+ paymentMethods: ZeniAccountPaymentMethod[];
12
13
  };
13
14
  }
14
15
  export declare const getZeniAccountsConfigDetail: (state: RootState) => ZeniAccountsConfigSelectorView;
@@ -4,7 +4,7 @@ exports.getZeniAccountsConfigDetail = void 0;
4
4
  const addressSelector_1 = require("../../../../entity/address/addressSelector");
5
5
  const getZeniAccountsConfigDetail = (state) => {
6
6
  const { zeniAccountsConfigState, addressState } = state;
7
- const { bankName, depositProductConfig, bankAddressId, mailingAddressId, annualPercentageYield, } = zeniAccountsConfigState.zeniAccountsConfig;
7
+ const { bankName, depositProductConfig, bankAddressId, mailingAddressId, annualPercentageYield, paymentMethods, } = zeniAccountsConfigState.zeniAccountsConfig;
8
8
  const mailingAddress = (0, addressSelector_1.getAddressByAddressId)(addressState, mailingAddressId);
9
9
  const bankAddress = (0, addressSelector_1.getAddressByAddressId)(addressState, bankAddressId);
10
10
  return {
@@ -14,6 +14,7 @@ const getZeniAccountsConfigDetail = (state) => {
14
14
  depositProductConfig: depositProductConfig,
15
15
  mailingAddress,
16
16
  bankAddress,
17
+ paymentMethods,
17
18
  },
18
19
  fetchState: zeniAccountsConfigState.fetchState,
19
20
  error: zeniAccountsConfigState.error,
@@ -1,4 +1,5 @@
1
1
  import { FetchedState, ID } from '../../../../commonStateTypes/common';
2
+ import { ConfigPeriod } from '../../billPay/billPayConfig/billPayConfigState';
2
3
  export interface ZeniAccountsConfigState extends FetchedState {
3
4
  zeniAccountsConfig: ZeniAccountsConfig;
4
5
  }
@@ -8,6 +9,14 @@ export interface ZeniAccountsConfig {
8
9
  mailingAddressId: ID;
9
10
  bankAddressId: ID;
10
11
  depositProductConfig: DepositProductConfig;
12
+ paymentMethods: ZeniAccountPaymentMethod[];
13
+ }
14
+ export interface ZeniAccountPaymentMethod {
15
+ minPeriod: ConfigPeriod;
16
+ maxPeriod: ConfigPeriod;
17
+ method: string;
18
+ isEnabled: boolean;
19
+ isVerified: boolean;
11
20
  }
12
21
  export interface DepositProductConfig {
13
22
  depositProducts: DepositProduct[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.15.29",
3
+ "version": "4.15.30",
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
  "types": "lib/index.d.ts",