@zeniai/client-epic-state 4.15.42 → 4.15.43

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
@@ -471,6 +471,7 @@ import { ZeniAccountBusinessVerificationDetails, ZeniAccountSetupView, getZeniAc
471
471
  import { ZeniAccountSetupViewLocalData, ZeniAccountSetupViewState } from './view/spendManagement/zeniAccounts/zeniAccountSetUp/zeniAccountSetupViewState';
472
472
  import { fetchZeniAccountsConfig } from './view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigReducer';
473
473
  import { ZeniAccountsConfigSelectorView, getZeniAccountsConfigDetail } from './view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigSelector';
474
+ import { ZeniAccountPaymentMethod } from './view/spendManagement/zeniAccounts/zeniAccountsConfig/zeniAccountsConfigState';
474
475
  import { clearSubscriptionLocalData, clearSubscriptionUpdateViewDataByTenantId, clearSubscriptionView, fetchSubscriptionAddOns, fetchSubscriptionCoupons, fetchSubscriptionCreateEstimate, fetchSubscriptionDetails, fetchSubscriptionList, fetchSubscriptionPlans, fetchSubscriptionUpdateEstimate, initializeSubscriptionLocalData, saveSubscriptionLocalData, saveSubscriptionNotesUpdates, saveSubscriptionUpdates, updateSubscriptionListUIState } from './view/subscriptionView/subscriptionViewReducer';
475
476
  import { getSubscriptionEstimationData, getSubscriptionListView, getSubscriptionLocalStoreDataView, getSubscriptionsDetailView } from './view/subscriptionView/subscriptionViewSelector';
476
477
  import { SubscriptionDetails, SubscriptionEstimationData, SubscriptionListView, SubscriptionLocalStoreDataView, SubscriptionsDetailView } from './view/subscriptionView/subscriptionViewSelectorTypes';
@@ -747,7 +748,7 @@ export { ReimbursementCardReport };
747
748
  export { VendorListViewSortKey, VendorViewUIState, VendorListSelectorView, VendorListQuery, getVendorList, VendorListView, updateSortUiState, updatePageToken, updateYTDSelectionUIState, VendorListViewYTDSpendSortKey, isColumnYTDSpend, isVendorsTabVisible, VendorViewType, VendorReportIDType, toVendorReportIDType, VendorFiling1099ListSelectorView, getVendorFiling1099List, VendorFiling1099ListViewSortKey, VendorFiling1099ViewUIState, VendorFiling1099DownloadData, fetchVendorsFiling1099Download, Type1099Download, VendorFiling1099DownloadDataForType, };
748
749
  export { fetchEntityRecommendationsByTransactionId, fetchRecommendationByEntityId, fetchRecommendationByEntityName, };
749
750
  export { fetchOwnerList };
750
- 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, };
751
+ 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, };
751
752
  export { HistoricEvent, HistoricEventUpdate, ActivityHistorySelectorView };
752
753
  export { ActivityRealTimeApprovalSelectorView, Statement, fetchDepositAccountTransactionList, DepositAccountTransactionListSelectorView, getDepositAccountTransactionList, };
753
754
  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.42",
3
+ "version": "4.15.43",
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",
@@ -85,6 +85,7 @@
85
85
  "lint": "eslint . --ext .js,.jsx,.ts,.tsx --fix",
86
86
  "find-dead-code": "ts-prune | grep -v '(used in module)'",
87
87
  "find-unused-exports": "ts-unused-exports ./tsconfig.json",
88
+ "circular-dependency": "npx madge --circular --extensions ts ./src",
88
89
  "build": "concurrently --kill-others-on-fail \"eslint . --ext .js,.jsx,.ts,.tsx\" \"tsc\" \"jest --config jest.config.json\" && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
89
90
  "only-build": "concurrently --kill-others-on-fail \"eslint . --ext .js,.jsx,.ts,.tsx\" \"tsc\" && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
90
91
  "format": "prettier --write --ignore-unknown \"src/**/*\"",