@zeniai/client-epic-state 4.19.24-betaRR4 → 4.19.24-betaRR5

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.
@@ -22,6 +22,7 @@ export interface ChargeCardRepayment {
22
22
  updateTime: ZeniDate;
23
23
  zeniCreditAccountId: ID;
24
24
  isAutoPayEnabled?: boolean;
25
+ paymentAccountName?: string;
25
26
  providerCounterpartyAccountId?: ID;
26
27
  providerCounterpartyId?: ID;
27
28
  thirdPartyTransactionId?: string;
@@ -25,6 +25,7 @@ export interface ChargeCardRepaymentPayload {
25
25
  is_auto_pay_enabled?: boolean;
26
26
  is_deleted?: boolean;
27
27
  paid_by_user?: UserPayload | null;
28
+ payment_account_name?: string | null;
28
29
  provider_counterparty_account_id?: string | null;
29
30
  provider_counterparty_id?: string;
30
31
  }
@@ -5,7 +5,7 @@ const amount_1 = require("../../commonStateTypes/amount");
5
5
  const zeniDayJS_1 = require("../../zeniDayJS");
6
6
  const chargeCardRepayment_1 = require("./chargeCardRepayment");
7
7
  const mapChargeCardRepaymentPayloadToChargeCardRepayment = (payload) => {
8
- var _a, _b, _c, _d;
8
+ var _a, _b, _c, _d, _e;
9
9
  return ({
10
10
  amount: (0, amount_1.toAmount)(payload.amount, payload.currency_code, payload.currency_symbol),
11
11
  cardRepaymentId: payload.card_repayment_id,
@@ -16,7 +16,8 @@ const mapChargeCardRepaymentPayloadToChargeCardRepayment = (payload) => {
16
16
  isAutoPayEnabled: payload.is_auto_pay_enabled,
17
17
  paidById: payload.paid_by_user_id,
18
18
  paymentMethod: payload.payment_method,
19
- providerCounterpartyId: (_b = payload.provider_counterparty_id) !== null && _b !== void 0 ? _b : undefined,
19
+ paymentAccountName: (_b = payload.payment_account_name) !== null && _b !== void 0 ? _b : undefined,
20
+ providerCounterpartyId: (_c = payload.provider_counterparty_id) !== null && _c !== void 0 ? _c : undefined,
20
21
  providerCreditAccountId: payload.provider_credit_account_id,
21
22
  providerDepositAccountId: payload.provider_deposit_account_id,
22
23
  providerId: payload.provider_id,
@@ -28,8 +29,8 @@ const mapChargeCardRepaymentPayloadToChargeCardRepayment = (payload) => {
28
29
  updateTime: (0, zeniDayJS_1.date)(payload.update_time),
29
30
  zeniCreditAccountId: payload.zeni_credit_account_id,
30
31
  repaymentType: (0, chargeCardRepayment_1.toChargeCardRepaymentType)(payload.repayment_type),
31
- providerCounterpartyAccountId: (_c = payload.provider_counterparty_account_id) !== null && _c !== void 0 ? _c : undefined,
32
- thirdPartyTransactionId: (_d = payload.third_party_transaction_id) !== null && _d !== void 0 ? _d : undefined,
32
+ providerCounterpartyAccountId: (_d = payload.provider_counterparty_account_id) !== null && _d !== void 0 ? _d : undefined,
33
+ thirdPartyTransactionId: (_e = payload.third_party_transaction_id) !== null && _e !== void 0 ? _e : undefined,
33
34
  });
34
35
  };
35
36
  exports.mapChargeCardRepaymentPayloadToChargeCardRepayment = mapChargeCardRepaymentPayloadToChargeCardRepayment;
@@ -1,14 +1,8 @@
1
- import { ID } from '../../../../commonStateTypes/common';
2
1
  import { SelectorView } from '../../../../commonStateTypes/viewAndReport/viewAndReport';
3
2
  import { RootState } from '../../../../reducer';
4
3
  import { ChargeCardRepaymentWithUser } from './chargeCardPaymentHistorySelector';
5
4
  export interface ChargeCardPaymentHistoryDownloadReport extends SelectorView {
6
- accountInfoMap: Map<ID, {
7
- depositAccountName?: string;
8
- }>;
9
5
  reportTitle: string;
10
6
  transactions: ChargeCardRepaymentWithUser[];
11
7
  }
12
- export declare const getChargeCardPaymentHistoryDownloadReport: (state: RootState, accountInfoMap?: Map<ID, {
13
- depositAccountName?: string;
14
- }>) => ChargeCardPaymentHistoryDownloadReport;
8
+ export declare const getChargeCardPaymentHistoryDownloadReport: (state: RootState) => ChargeCardPaymentHistoryDownloadReport;
@@ -1,28 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getChargeCardPaymentHistoryDownloadReport = void 0;
4
- const chargeCardPaymentHistorySelector_1 = require("./chargeCardPaymentHistorySelector");
5
- const getChargeCardPaymentHistoryDownloadReport = (state, accountInfoMap) => {
6
- const view = (0, chargeCardPaymentHistorySelector_1.getChargeCardPaymentHistoryView)(state, accountInfoMap);
7
- const reportAccountInfoMap = accountInfoMap !== null && accountInfoMap !== void 0 ? accountInfoMap : new Map();
8
- if (accountInfoMap == null &&
9
- view.repaymentHistoryFundingAccounts.length > 0) {
10
- view.repaymentHistoryFundingAccounts.forEach((account) => {
11
- var _a, _b;
12
- const accountId = (_b = (_a = account.providerAccountId) !== null && _a !== void 0 ? _a : account.id) !== null && _b !== void 0 ? _b : account.zeniAccountId;
13
- if (accountId != null) {
14
- reportAccountInfoMap.set(accountId, {
15
- depositAccountName: account.label,
16
- });
17
- }
18
- });
19
- }
4
+ const chargeCardRepaymentSelector_1 = require("../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector");
5
+ const userSelector_1 = require("../../../../entity/user/userSelector");
6
+ const chargeCardPaymentHistoryHelpers_1 = require("./chargeCardPaymentHistoryHelpers");
7
+ const getChargeCardPaymentHistoryDownloadReport = (state) => {
8
+ const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState, } = state;
9
+ const { filters, repaymentHistoryIds, repaymentHistoryUserIds, searchText, uiState, fetchState, error, } = chargeCardPaymentHistoryState;
10
+ const repaymentHistory = (0, chargeCardRepaymentSelector_1.getChargeCardRepaymentByIds)(chargeCardRepaymentState, repaymentHistoryIds);
11
+ const repaymentHistoryUsers = (0, userSelector_1.getUsersByUserIds)(userState, repaymentHistoryUserIds);
12
+ const userMap = new Map(repaymentHistoryUsers.map((user) => [user.userId, user]));
13
+ const repaymentHistoryWithUsers = repaymentHistory.map((repayment) => (Object.assign(Object.assign({}, repayment), { paidByUser: userMap.get(repayment.paidById) })));
14
+ const transactions = (0, chargeCardPaymentHistoryHelpers_1.applyPaymentHistoryFiltersSearchAndSort)(repaymentHistoryWithUsers, filters, searchText, uiState);
20
15
  return {
21
16
  reportTitle: 'Card Payment History',
22
- fetchState: view.fetchState,
23
- error: view.error,
24
- transactions: view.repaymentHistory,
25
- accountInfoMap: reportAccountInfoMap,
17
+ fetchState,
18
+ error,
19
+ transactions,
26
20
  };
27
21
  };
28
22
  exports.getChargeCardPaymentHistoryDownloadReport = getChargeCardPaymentHistoryDownloadReport;
@@ -0,0 +1,9 @@
1
+ import { ID } from '../../../../commonStateTypes/common';
2
+ import type { ChargeCardRepaymentWithUser } from './chargeCardPaymentHistorySelector';
3
+ import { PaymentHistoryFilters, PaymentHistoryUIState } from './chargeCardPaymentHistory';
4
+ export declare function getPaymentHistorySourceAccountName(repayment: ChargeCardRepaymentWithUser, accountInfoMap?: Map<ID, {
5
+ depositAccountName?: string;
6
+ }>): string;
7
+ export declare function applyPaymentHistoryFiltersSearchAndSort(repayments: ChargeCardRepaymentWithUser[], filters: PaymentHistoryFilters, searchText: string, uiState: PaymentHistoryUIState, accountInfoMap?: Map<ID, {
8
+ depositAccountName?: string;
9
+ }>): ChargeCardRepaymentWithUser[];
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPaymentHistorySourceAccountName = getPaymentHistorySourceAccountName;
7
+ exports.applyPaymentHistoryFiltersSearchAndSort = applyPaymentHistoryFiltersSearchAndSort;
8
+ const orderBy_1 = __importDefault(require("lodash/orderBy"));
9
+ const userSelector_1 = require("../../../../entity/user/userSelector");
10
+ const spendManagementFilterHelpers_1 = require("../../spendManagementFilterHelpers");
11
+ function getPaymentHistorySourceAccountName(repayment, accountInfoMap) {
12
+ var _a, _b, _c;
13
+ return ((_c = (_b = (_a = accountInfoMap === null || accountInfoMap === void 0 ? void 0 : accountInfoMap.get(repayment.providerDepositAccountId)) === null || _a === void 0 ? void 0 : _a.depositAccountName) !== null && _b !== void 0 ? _b : repayment.paymentAccountName) !== null && _c !== void 0 ? _c : '');
14
+ }
15
+ function getPaymentHistorySortValue(repayment, sortKey, accountInfoMap) {
16
+ switch (sortKey) {
17
+ case 'paymentDate':
18
+ return repayment.repaymentDate.valueOf();
19
+ case 'amount':
20
+ return repayment.amount.amount;
21
+ case 'paymentStatus':
22
+ return repayment.status;
23
+ case 'initiatedBy':
24
+ return repayment.repaymentType === 'scheduled'
25
+ ? 'autopay'
26
+ : (0, userSelector_1.getUserName)(repayment.paidByUser);
27
+ case 'sourceAccount':
28
+ return getPaymentHistorySourceAccountName(repayment, accountInfoMap);
29
+ default:
30
+ return '';
31
+ }
32
+ }
33
+ function sortPaymentHistory(repayments, sortKey, sortOrder, accountInfoMap) {
34
+ const order = sortOrder === 'ascending' ? 'asc' : 'desc';
35
+ return (0, orderBy_1.default)(repayments, (repayment) => getPaymentHistorySortValue(repayment, sortKey, accountInfoMap), [order]);
36
+ }
37
+ function filterPaymentHistoryBySearchText(repayments, searchText, accountInfoMap) {
38
+ const loweredSearchText = searchText.trim().toLowerCase();
39
+ if (loweredSearchText.length === 0) {
40
+ return repayments;
41
+ }
42
+ return repayments.filter((repayment) => {
43
+ const amountString = repayment.amount.amount.toString();
44
+ const statusString = repayment.status.toLowerCase();
45
+ const initiatedByString = repayment.repaymentType === 'scheduled'
46
+ ? 'autopay'
47
+ : (0, userSelector_1.getUserName)(repayment.paidByUser);
48
+ const accountNameString = getPaymentHistorySourceAccountName(repayment, accountInfoMap).toLowerCase();
49
+ return (amountString.includes(loweredSearchText) ||
50
+ statusString.includes(loweredSearchText) ||
51
+ initiatedByString.toLowerCase().includes(loweredSearchText) ||
52
+ accountNameString.includes(loweredSearchText));
53
+ });
54
+ }
55
+ function applyPaymentHistoryFiltersSearchAndSort(repayments, filters, searchText, uiState, accountInfoMap) {
56
+ let result = (0, spendManagementFilterHelpers_1.applyAdvancedFiltersOnList)('charge_card_payment_history', repayments, filters);
57
+ result = filterPaymentHistoryBySearchText(result, searchText, accountInfoMap);
58
+ result = sortPaymentHistory(result, uiState.sortKey, uiState.sortOrder, accountInfoMap);
59
+ return result;
60
+ }
@@ -1,42 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.getChargeCardPaymentHistoryView = void 0;
7
- const orderBy_1 = __importDefault(require("lodash/orderBy"));
8
4
  const reduceFetchState_1 = require("../../../../commonStateTypes/reduceFetchState");
9
5
  const chargeCardRepaymentSelector_1 = require("../../../../entity/chargeCardRepayment/chargeCardRepaymentSelector");
10
6
  const userSelector_1 = require("../../../../entity/user/userSelector");
11
7
  const setupViewSelector_1 = require("../../commonSetup/setupViewSelector");
12
- const spendManagementFilterHelpers_1 = require("../../spendManagementFilterHelpers");
13
8
  const depositAccountListSelector_1 = require("../../zeniAccounts/depositAccountList/depositAccountListSelector");
14
9
  const paymentAccountListSelector_1 = require("../../zeniAccounts/paymentAccountList/paymentAccountListSelector");
15
- const getPaymentHistorySortValue = (repayment, sortKey, accountInfoMap) => {
16
- var _a;
17
- switch (sortKey) {
18
- case 'paymentDate':
19
- return repayment.repaymentDate.valueOf();
20
- case 'amount':
21
- return repayment.amount.amount;
22
- case 'paymentStatus':
23
- return repayment.status;
24
- case 'initiatedBy':
25
- return repayment.repaymentType === 'scheduled'
26
- ? 'autopay'
27
- : (0, userSelector_1.getUserName)(repayment.paidByUser);
28
- case 'sourceAccount': {
29
- const accountInfo = accountInfoMap === null || accountInfoMap === void 0 ? void 0 : accountInfoMap.get(repayment.providerDepositAccountId);
30
- return (_a = accountInfo === null || accountInfo === void 0 ? void 0 : accountInfo.depositAccountName) !== null && _a !== void 0 ? _a : '';
31
- }
32
- default:
33
- return '';
34
- }
35
- };
36
- const sortPaymentHistory = (repayments, sortKey, sortOrder, accountInfoMap) => {
37
- const order = sortOrder === 'ascending' ? 'asc' : 'desc';
38
- return (0, orderBy_1.default)(repayments, (repayment) => getPaymentHistorySortValue(repayment, sortKey, accountInfoMap), [order]);
39
- };
10
+ const chargeCardPaymentHistoryHelpers_1 = require("./chargeCardPaymentHistoryHelpers");
40
11
  const getChargeCardPaymentHistoryView = (state, accountInfoMap) => {
41
12
  const { chargeCardPaymentHistoryState, chargeCardRepaymentState, userState, depositAccountState, paymentAccountState, depositAccountListState, paymentAccountListState, } = state;
42
13
  const { creditAccountId, currencyCode, currencySymbol, filters, isAutoPayEnabled, repaymentHistoryIds, repaymentHistoryUserIds, searchText, totalRepayments, uiState, fetchState, error, } = chargeCardPaymentHistoryState;
@@ -51,28 +22,7 @@ const getChargeCardPaymentHistoryView = (state, accountInfoMap) => {
51
22
  });
52
23
  // Enrich repayments with paidByUser details
53
24
  let repaymentHistoryWithUsers = repaymentHistory.map((repayment) => (Object.assign(Object.assign({}, repayment), { paidByUser: userMap.get(repayment.paidById) })));
54
- // Apply filters
55
- repaymentHistoryWithUsers = (0, spendManagementFilterHelpers_1.applyAdvancedFiltersOnList)('charge_card_payment_history', repaymentHistoryWithUsers, filters);
56
- // Apply search text filtering
57
- const loweredSearchText = searchText.trim().toLowerCase();
58
- if (loweredSearchText.length > 0) {
59
- repaymentHistoryWithUsers = repaymentHistoryWithUsers.filter((repayment) => {
60
- var _a, _b;
61
- const amountString = repayment.amount.amount.toString();
62
- const statusString = repayment.status.toLowerCase();
63
- const initiatedByString = repayment.repaymentType === 'scheduled'
64
- ? 'autopay'
65
- : (0, userSelector_1.getUserName)(repayment.paidByUser);
66
- const accountInfo = accountInfoMap === null || accountInfoMap === void 0 ? void 0 : accountInfoMap.get(repayment.providerDepositAccountId);
67
- const accountNameString = (_b = (_a = accountInfo === null || accountInfo === void 0 ? void 0 : accountInfo.depositAccountName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
68
- return (amountString.includes(loweredSearchText) ||
69
- statusString.includes(loweredSearchText) ||
70
- initiatedByString.toLowerCase().includes(loweredSearchText) ||
71
- accountNameString.includes(loweredSearchText));
72
- });
73
- }
74
- // Apply sorting
75
- repaymentHistoryWithUsers = sortPaymentHistory(repaymentHistoryWithUsers, uiState.sortKey, uiState.sortOrder, accountInfoMap);
25
+ repaymentHistoryWithUsers = (0, chargeCardPaymentHistoryHelpers_1.applyPaymentHistoryFiltersSearchAndSort)(repaymentHistoryWithUsers, filters, searchText, uiState, accountInfoMap);
76
26
  // Extract unique funding account IDs from repayment history
77
27
  const repaymentHistoryFundingAccountIds = Array.from(new Set(repaymentHistoryWithUsers
78
28
  .map((repayment) => repayment.providerDepositAccountId)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.19.24-betaRR4",
3
+ "version": "4.19.24-betaRR5",
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",