@zeniai/client-epic-state 4.20.2-betaJK4 → 4.20.2-betaNB2
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/commonStateTypes/viewAndReport/viewAndReport.d.ts +2 -2
- package/lib/commonStateTypes/viewAndReport/viewAndReport.js +0 -1
- package/lib/entity/account/accountPayload.d.ts +0 -2
- package/lib/entity/account/accountReducer.d.ts +2 -5
- package/lib/entity/account/accountReducer.js +2 -7
- package/lib/entity/account/accountState.d.ts +1 -1
- package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
- package/lib/entity/class/classReducer.d.ts +4 -4
- package/lib/entity/class/classState.d.ts +1 -1
- package/lib/entity/forecast/forecastState.d.ts +1 -1
- package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
- package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
- package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
- package/lib/entity/transaction/payloadTypes/transactionPayload.js +0 -1
- package/lib/epic.d.ts +1 -3
- package/lib/epic.js +1 -3
- package/lib/esm/commonStateTypes/viewAndReport/viewAndReport.js +0 -1
- package/lib/esm/entity/account/accountReducer.js +1 -6
- package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +0 -1
- package/lib/esm/epic.js +1 -3
- package/lib/esm/index.js +2 -2
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.js +9 -4
- package/lib/esm/view/expenseAutomationView/reducers/reconciliationViewReducer.js +3 -151
- package/lib/esm/view/expenseAutomationView/selectors/reconciliationViewSelector.js +0 -69
- package/lib/index.d.ts +4 -4
- package/lib/index.js +31 -33
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -0
- package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
- package/lib/view/billPayCard/billPayCardSelector.d.ts +1 -1
- package/lib/view/cardBalance/cardBalanceSelector.d.ts +1 -1
- package/lib/view/cashBalance/cashBalanceSelector.d.ts +1 -1
- package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +1 -1
- package/lib/view/cashPosition/cashPositionSelector.d.ts +1 -1
- package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.js +9 -4
- package/lib/view/expenseAutomationView/payload/reconciliationPayload.d.ts +0 -33
- package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.d.ts +3 -14
- package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.js +4 -152
- package/lib/view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes.d.ts +1 -11
- package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.js +0 -69
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +0 -12
- package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
- package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
- package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +1 -1
- package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
- package/lib/view/tasksCard/tasksCardSelector.d.ts +1 -1
- package/lib/view/topEx/topExSelector.d.ts +1 -1
- package/package.json +1 -1
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/excludeAccountFromReconciliationEpic.js +0 -44
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/includeAccountInReconciliationEpic.js +0 -44
- package/lib/view/expenseAutomationView/epics/accountRecon/excludeAccountFromReconciliationEpic.d.ts +0 -8
- package/lib/view/expenseAutomationView/epics/accountRecon/excludeAccountFromReconciliationEpic.js +0 -48
- package/lib/view/expenseAutomationView/epics/accountRecon/includeAccountInReconciliationEpic.d.ts +0 -9
- package/lib/view/expenseAutomationView/epics/accountRecon/includeAccountInReconciliationEpic.js +0 -48
package/lib/esm/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.js
CHANGED
|
@@ -53,17 +53,22 @@ export const fetchReconciliationViewEpic = (actions$, state$, zeniAPI) => action
|
|
|
53
53
|
return zeniAPI.getJSON(apiUrl).pipe(mergeMap((response) => {
|
|
54
54
|
if (isSuccessResponse(response) && response.data != null) {
|
|
55
55
|
const updateActions = [];
|
|
56
|
-
|
|
57
|
-
updateActions.push(
|
|
56
|
+
updateActions.push(updateAccounts(response.data.accounts, 'account_reconciliation'));
|
|
57
|
+
updateActions.push(updateAllUsers({
|
|
58
58
|
users: response.data.users ?? [],
|
|
59
59
|
updateType: 'merge',
|
|
60
|
-
})
|
|
60
|
+
}));
|
|
61
|
+
updateActions.push(updateFiles({ files: response.data.files ?? [] }));
|
|
62
|
+
const allTransactionsPerRecon = getAllReviewTransactionsFromReconcilePayload(response.data.reconciliation);
|
|
63
|
+
updateActions.push(updateMultipleReconcileTransactions(allTransactionsPerRecon, 'merge'));
|
|
64
|
+
updateActions.push(updateAccountRecon(selectedPeriod, response.data.reconciliation));
|
|
61
65
|
const reviewTabLocalData = prepareReviewTabLocalData(response.data.reconciliation[0]?.transactions?.review ?? []);
|
|
62
66
|
if (accountId != null) {
|
|
63
67
|
const selectedTransactionIds = getTransactionIdFromCheckedMatchedTransactionPayload(response.data.reconciliation[0].transactions.reconcile);
|
|
64
68
|
updateActions.push(updateReconcileTabLocalData({
|
|
65
69
|
selectedTransactionIds: selectedTransactionIds,
|
|
66
|
-
})
|
|
70
|
+
}));
|
|
71
|
+
updateActions.push(initializeReconciliationReviewTabLocalData(reviewTabLocalData));
|
|
67
72
|
}
|
|
68
73
|
updateActions.push(fetchReconciliationSuccess(selectedPeriod, response.data, refreshViewInBackground, accountId));
|
|
69
74
|
return from(updateActions);
|
|
@@ -37,15 +37,7 @@ export const initialReconciliationTabsState = {
|
|
|
37
37
|
},
|
|
38
38
|
};
|
|
39
39
|
export const initialActionFetchState = {
|
|
40
|
-
excludeAccountFetch: {
|
|
41
|
-
fetchState: 'Not-Started',
|
|
42
|
-
error: undefined,
|
|
43
|
-
},
|
|
44
40
|
excludeFetchById: {},
|
|
45
|
-
includeAccountFetch: {
|
|
46
|
-
fetchState: 'Not-Started',
|
|
47
|
-
error: undefined,
|
|
48
|
-
},
|
|
49
41
|
reconcileFetch: {
|
|
50
42
|
fetchState: 'Not-Started',
|
|
51
43
|
error: undefined,
|
|
@@ -59,7 +51,6 @@ export const initialActionFetchState = {
|
|
|
59
51
|
export const initialState = {
|
|
60
52
|
accountReconciliationRecordsBySelectedPeriod: {},
|
|
61
53
|
accountConnectionStatusByAccountID: {},
|
|
62
|
-
excludedAccountExclusionInfo: {},
|
|
63
54
|
fetchState: 'Not-Started',
|
|
64
55
|
error: undefined,
|
|
65
56
|
selectedTab: 'review',
|
|
@@ -73,7 +64,6 @@ export const initialState = {
|
|
|
73
64
|
scrollTop: 0,
|
|
74
65
|
},
|
|
75
66
|
},
|
|
76
|
-
excludedAccountIDs: [],
|
|
77
67
|
};
|
|
78
68
|
// Create slice with reducers
|
|
79
69
|
const expenseAutomationReconciliationView = createSlice({
|
|
@@ -142,7 +132,7 @@ const expenseAutomationReconciliationView = createSlice({
|
|
|
142
132
|
fetchReconciliationSuccess: {
|
|
143
133
|
reducer(draft, action) {
|
|
144
134
|
if (action.payload.accountId == null) {
|
|
145
|
-
updateAllReconciliation(draft, action.payload.reconciliation.accounts, action.payload.selectedPeriod, action.payload.reconciliation.reconciliation, action.payload.refreshViewInBackground
|
|
135
|
+
updateAllReconciliation(draft, action.payload.reconciliation.accounts, action.payload.selectedPeriod, action.payload.reconciliation.reconciliation, action.payload.refreshViewInBackground);
|
|
146
136
|
}
|
|
147
137
|
else if (action.payload.reconciliation.reconciliation.length > 0 &&
|
|
148
138
|
action.payload.reconciliation.accounts.length > 0) {
|
|
@@ -431,116 +421,6 @@ const expenseAutomationReconciliationView = createSlice({
|
|
|
431
421
|
...localData,
|
|
432
422
|
};
|
|
433
423
|
},
|
|
434
|
-
excludeAccountFromReconciliation: {
|
|
435
|
-
reducer(draft) {
|
|
436
|
-
draft.actionFetchState.excludeAccountFetch = {
|
|
437
|
-
fetchState: 'In-Progress',
|
|
438
|
-
error: undefined,
|
|
439
|
-
};
|
|
440
|
-
},
|
|
441
|
-
prepare(payload) {
|
|
442
|
-
return { payload };
|
|
443
|
-
},
|
|
444
|
-
},
|
|
445
|
-
excludeAccountFromReconciliationSuccess: (draft, action) => {
|
|
446
|
-
draft.actionFetchState.excludeAccountFetch = {
|
|
447
|
-
fetchState: 'Completed',
|
|
448
|
-
error: undefined,
|
|
449
|
-
};
|
|
450
|
-
const { account, selectedPeriod } = action.payload;
|
|
451
|
-
if (account != null) {
|
|
452
|
-
if (!draft.excludedAccountIDs.includes(account.account_id)) {
|
|
453
|
-
draft.excludedAccountIDs.push(account.account_id);
|
|
454
|
-
}
|
|
455
|
-
draft.excludedAccountExclusionInfo[account.account_id] = {
|
|
456
|
-
bankBalance: account.bank_balance != null
|
|
457
|
-
? {
|
|
458
|
-
amount: account.bank_balance,
|
|
459
|
-
currencyCode: account.currency_code ?? 'USD',
|
|
460
|
-
currencySymbol: account.currency_symbol ?? '$',
|
|
461
|
-
}
|
|
462
|
-
: undefined,
|
|
463
|
-
clearedBalance: account.cleared_balance != null
|
|
464
|
-
? {
|
|
465
|
-
amount: account.cleared_balance,
|
|
466
|
-
currencyCode: account.currency_code ?? 'USD',
|
|
467
|
-
currencySymbol: account.currency_symbol ?? '$',
|
|
468
|
-
}
|
|
469
|
-
: undefined,
|
|
470
|
-
variance: account.variance != null
|
|
471
|
-
? {
|
|
472
|
-
amount: account.variance,
|
|
473
|
-
currencyCode: account.currency_code ?? 'USD',
|
|
474
|
-
currencySymbol: account.currency_symbol ?? '$',
|
|
475
|
-
}
|
|
476
|
-
: undefined,
|
|
477
|
-
};
|
|
478
|
-
const monthYearPeriodId = toMonthYearPeriodId(selectedPeriod);
|
|
479
|
-
if (draft.accountReconciliationRecordsBySelectedPeriod[monthYearPeriodId]
|
|
480
|
-
?.accountIDs != null) {
|
|
481
|
-
draft.accountReconciliationRecordsBySelectedPeriod[monthYearPeriodId].accountIDs = draft.accountReconciliationRecordsBySelectedPeriod[monthYearPeriodId].accountIDs.filter((id) => id !== account.account_id);
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
},
|
|
485
|
-
excludeAccountFromReconciliationFailure: (draft, action) => {
|
|
486
|
-
draft.actionFetchState.excludeAccountFetch = {
|
|
487
|
-
fetchState: 'Error',
|
|
488
|
-
error: action.payload.error,
|
|
489
|
-
};
|
|
490
|
-
},
|
|
491
|
-
includeAccountInReconciliation: {
|
|
492
|
-
reducer(draft) {
|
|
493
|
-
draft.actionFetchState.includeAccountFetch = {
|
|
494
|
-
fetchState: 'In-Progress',
|
|
495
|
-
error: undefined,
|
|
496
|
-
};
|
|
497
|
-
},
|
|
498
|
-
prepare(payload) {
|
|
499
|
-
return { payload };
|
|
500
|
-
},
|
|
501
|
-
},
|
|
502
|
-
includeAccountInReconciliationSuccess: (draft, action) => {
|
|
503
|
-
draft.actionFetchState.includeAccountFetch = {
|
|
504
|
-
fetchState: 'Completed',
|
|
505
|
-
error: undefined,
|
|
506
|
-
};
|
|
507
|
-
const { reconciliation, selectedPeriod } = action.payload;
|
|
508
|
-
if (reconciliation == null) {
|
|
509
|
-
return;
|
|
510
|
-
}
|
|
511
|
-
const accountId = reconciliation.account_id;
|
|
512
|
-
draft.excludedAccountIDs = draft.excludedAccountIDs.filter((id) => id !== accountId);
|
|
513
|
-
delete draft.excludedAccountExclusionInfo[accountId];
|
|
514
|
-
const monthYearPeriodId = toMonthYearPeriodId(selectedPeriod);
|
|
515
|
-
const accountReconciliationRecords = draft.accountReconciliationRecordsBySelectedPeriod[monthYearPeriodId];
|
|
516
|
-
if (accountReconciliationRecords != null) {
|
|
517
|
-
if (!accountReconciliationRecords.accountIDs.includes(accountId)) {
|
|
518
|
-
accountReconciliationRecords.accountIDs.push(accountId);
|
|
519
|
-
}
|
|
520
|
-
accountReconciliationRecords.reconciliationByAccountID[accountId] = {
|
|
521
|
-
accountId,
|
|
522
|
-
reconciliationId: reconciliation.reconciliation_id ?? undefined,
|
|
523
|
-
transactionFetchState: { fetchState: 'Not-Started', error: undefined },
|
|
524
|
-
refreshStatus: { fetchState: 'Not-Started', error: undefined },
|
|
525
|
-
statementDeleteStatus: { fetchState: 'Not-Started', error: undefined },
|
|
526
|
-
statementUploadStatus: { fetchState: 'Not-Started', error: undefined },
|
|
527
|
-
statementUpdateStatus: { fetchState: 'Not-Started', error: undefined },
|
|
528
|
-
statementParseInProgress: reconciliation.bank_status.code === 'parsing',
|
|
529
|
-
localData: {},
|
|
530
|
-
};
|
|
531
|
-
}
|
|
532
|
-
draft.accountConnectionStatusByAccountID[accountId] = {
|
|
533
|
-
status: toBankStatusCodeType(reconciliation.bank_status.code),
|
|
534
|
-
connectionInProgress: false,
|
|
535
|
-
paymentAccountId: undefined,
|
|
536
|
-
};
|
|
537
|
-
},
|
|
538
|
-
includeAccountInReconciliationFailure: (draft, action) => {
|
|
539
|
-
draft.actionFetchState.includeAccountFetch = {
|
|
540
|
-
fetchState: 'Error',
|
|
541
|
-
error: action.payload.error,
|
|
542
|
-
};
|
|
543
|
-
},
|
|
544
424
|
updateStatementUploadChosen: (draft, action) => {
|
|
545
425
|
draft.statementUploadChosen = action.payload.statementUploadChosen;
|
|
546
426
|
},
|
|
@@ -550,38 +430,10 @@ const expenseAutomationReconciliationView = createSlice({
|
|
|
550
430
|
},
|
|
551
431
|
});
|
|
552
432
|
// Export actions
|
|
553
|
-
export const { fetchReconciliation, fetchReconciliationFailure, fetchReconciliationSuccess, saveReconciliationDetail, saveReconciliationDetailFailure, updateSelectedAccountId, setConnectionInProgressForAccount, setStatementParseInProgress, updateReconcileTabLocalData, updateReconcileTabListSortState, updateReconcileTabListScrollState, saveReconciliationDetailSuccess, updateSelectedTab, updateBalancesLocalData, initialiseLocalDataForSelectedAccountId, clearExpenseAutomationReconciliationView, updateSelectedDrawerAccountId, updateReviewTabSortState, initializeReconciliationReviewTabLocalData, updateReviewTabLocalData, saveReconciliationReview, updateSaveReconciliationReviewFetchStatus, updateReconListScrollPosition, updateAccountReconciliationLocalData, deleteAccountStatement, deleteAccountStatementSuccess, deleteAccountStatementFailure,
|
|
433
|
+
export const { fetchReconciliation, fetchReconciliationFailure, fetchReconciliationSuccess, saveReconciliationDetail, saveReconciliationDetailFailure, updateSelectedAccountId, setConnectionInProgressForAccount, setStatementParseInProgress, updateReconcileTabLocalData, updateReconcileTabListSortState, updateReconcileTabListScrollState, saveReconciliationDetailSuccess, updateSelectedTab, updateBalancesLocalData, initialiseLocalDataForSelectedAccountId, clearExpenseAutomationReconciliationView, updateSelectedDrawerAccountId, updateReviewTabSortState, initializeReconciliationReviewTabLocalData, updateReviewTabLocalData, saveReconciliationReview, updateSaveReconciliationReviewFetchStatus, updateReconListScrollPosition, updateAccountReconciliationLocalData, deleteAccountStatement, deleteAccountStatementSuccess, deleteAccountStatementFailure, uploadAccountStatement, uploadAccountStatementSuccess, uploadAccountStatementFailure, updateStatementUploadChosen, } = expenseAutomationReconciliationView.actions;
|
|
554
434
|
// Export reducer
|
|
555
435
|
export default expenseAutomationReconciliationView.reducer;
|
|
556
|
-
function updateAllReconciliation(draft, accounts, selectedPeriod, reconciliationData, refreshViewInBackground
|
|
557
|
-
draft.excludedAccountIDs = excludedAccounts.map((ea) => ea.account_id);
|
|
558
|
-
draft.excludedAccountExclusionInfo = {};
|
|
559
|
-
excludedAccounts.forEach((ea) => {
|
|
560
|
-
const { exclusion_info } = ea;
|
|
561
|
-
draft.excludedAccountExclusionInfo[ea.account_id] = {
|
|
562
|
-
bankBalance: exclusion_info.bank_balance != null
|
|
563
|
-
? {
|
|
564
|
-
amount: exclusion_info.bank_balance,
|
|
565
|
-
currencyCode: ea.currency_code ?? 'USD',
|
|
566
|
-
currencySymbol: ea.currency_symbol ?? '$',
|
|
567
|
-
}
|
|
568
|
-
: undefined,
|
|
569
|
-
clearedBalance: exclusion_info.cleared_balance != null
|
|
570
|
-
? {
|
|
571
|
-
amount: exclusion_info.cleared_balance,
|
|
572
|
-
currencyCode: ea.currency_code ?? 'USD',
|
|
573
|
-
currencySymbol: ea.currency_symbol ?? '$',
|
|
574
|
-
}
|
|
575
|
-
: undefined,
|
|
576
|
-
variance: exclusion_info.variance != null
|
|
577
|
-
? {
|
|
578
|
-
amount: exclusion_info.variance,
|
|
579
|
-
currencyCode: ea.currency_code ?? 'USD',
|
|
580
|
-
currencySymbol: ea.currency_symbol ?? '$',
|
|
581
|
-
}
|
|
582
|
-
: undefined,
|
|
583
|
-
};
|
|
584
|
-
});
|
|
436
|
+
function updateAllReconciliation(draft, accounts, selectedPeriod, reconciliationData, refreshViewInBackground) {
|
|
585
437
|
draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)] = {
|
|
586
438
|
accountIDs: [],
|
|
587
439
|
reconciliationByAccountID: {},
|
|
@@ -90,30 +90,6 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
|
|
|
90
90
|
totalVariancePercentage: undefined,
|
|
91
91
|
},
|
|
92
92
|
},
|
|
93
|
-
excludedAccountReconciliationByAccountID: {},
|
|
94
|
-
excludedAccountReconciliationBySectionID: {
|
|
95
|
-
assets: {
|
|
96
|
-
sectionId: 'assets',
|
|
97
|
-
accountIDs: [],
|
|
98
|
-
totalBankBalance: undefined,
|
|
99
|
-
totalClearedBalance: undefined,
|
|
100
|
-
totalReconciledBalance: undefined,
|
|
101
|
-
totalVariance: undefined,
|
|
102
|
-
totalVariancePercentage: undefined,
|
|
103
|
-
},
|
|
104
|
-
liabilities: {
|
|
105
|
-
sectionId: 'liabilities',
|
|
106
|
-
accountIDs: [],
|
|
107
|
-
totalBankBalance: undefined,
|
|
108
|
-
totalClearedBalance: undefined,
|
|
109
|
-
totalReconciledBalance: undefined,
|
|
110
|
-
totalVariance: undefined,
|
|
111
|
-
totalVariancePercentage: undefined,
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
excludeAccountFetchState: reconciliationViewState.actionFetchState.excludeAccountFetch,
|
|
115
|
-
includeAccountFetchState: reconciliationViewState.actionFetchState.includeAccountFetch,
|
|
116
|
-
excludedAccountIDs: reconciliationViewState.excludedAccountIDs,
|
|
117
93
|
};
|
|
118
94
|
}
|
|
119
95
|
const allAccountIDs = accountReconForMonthYearPeriod.accountIDs;
|
|
@@ -273,46 +249,6 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
|
|
|
273
249
|
totalVariancePercentage: liabilityTotals.variancePercentage,
|
|
274
250
|
},
|
|
275
251
|
};
|
|
276
|
-
const bankAccountIdSet = new Set(uniqueBankAccounts.map((a) => a.accountId));
|
|
277
|
-
const creditCardIdSet = new Set(uniqueCreditCards.map((a) => a.accountId));
|
|
278
|
-
const excludedAssetAccountIDs = [];
|
|
279
|
-
const excludedLiabilityAccountIDs = [];
|
|
280
|
-
reconciliationViewState.excludedAccountIDs.forEach((accountID) => {
|
|
281
|
-
const isAsset = bankAccountIdSet.has(accountID);
|
|
282
|
-
const isLiability = creditCardIdSet.has(accountID);
|
|
283
|
-
if (!isAsset && !isLiability) {
|
|
284
|
-
return;
|
|
285
|
-
}
|
|
286
|
-
if (isAsset) {
|
|
287
|
-
excludedAssetAccountIDs.push(accountID);
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
290
|
-
excludedLiabilityAccountIDs.push(accountID);
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
const excludedAccountReconciliationBySectionID = {
|
|
294
|
-
assets: {
|
|
295
|
-
sectionId: 'assets',
|
|
296
|
-
accountIDs: excludedAssetAccountIDs,
|
|
297
|
-
},
|
|
298
|
-
liabilities: {
|
|
299
|
-
sectionId: 'liabilities',
|
|
300
|
-
accountIDs: excludedLiabilityAccountIDs,
|
|
301
|
-
},
|
|
302
|
-
};
|
|
303
|
-
const excludedAccountReconciliationByAccountID = {};
|
|
304
|
-
const accountsInState = Object.values(accountState.accountsByKey);
|
|
305
|
-
const accountsInStateMap = new Map(accountsInState.map((a) => [a.accountId, a]));
|
|
306
|
-
reconciliationViewState.excludedAccountIDs.forEach((excludedAccountID) => {
|
|
307
|
-
const account = accountsInStateMap.get(excludedAccountID);
|
|
308
|
-
const exclusionInfo = reconciliationViewState.excludedAccountExclusionInfo[excludedAccountID];
|
|
309
|
-
if (account != null) {
|
|
310
|
-
excludedAccountReconciliationByAccountID[excludedAccountID] = {
|
|
311
|
-
...account,
|
|
312
|
-
...exclusionInfo,
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
252
|
const accountListNestedAccountHierarchy = getNestedAccountListHierarchy(accountListState, 'accountList');
|
|
317
253
|
const classListNestedAccountHierarchy = getNestedClassListHierarchy(classListState);
|
|
318
254
|
const accountsList = getAccountList(accountState, accountListState, 'accountList');
|
|
@@ -373,11 +309,6 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
|
|
|
373
309
|
allClassList: allClasses,
|
|
374
310
|
reviewTabSelectedVendorByTransactionId,
|
|
375
311
|
reconListUIState: reconciliationViewState.reconListUIState,
|
|
376
|
-
excludedAccountReconciliationBySectionID,
|
|
377
|
-
excludedAccountReconciliationByAccountID,
|
|
378
|
-
excludeAccountFetchState: reconciliationViewState.actionFetchState.excludeAccountFetch,
|
|
379
|
-
includeAccountFetchState: reconciliationViewState.actionFetchState.includeAccountFetch,
|
|
380
|
-
excludedAccountIDs: reconciliationViewState.excludedAccountIDs,
|
|
381
312
|
};
|
|
382
313
|
});
|
|
383
314
|
export const isAccountReconReport = (reportId) => {
|
package/lib/index.d.ts
CHANGED
|
@@ -268,7 +268,7 @@ import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } f
|
|
|
268
268
|
import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
|
|
269
269
|
import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
|
|
270
270
|
import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
|
|
271
|
-
import { deleteAccountStatement,
|
|
271
|
+
import { deleteAccountStatement, fetchReconciliation as fetchReconciliationView, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
|
|
272
272
|
import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
|
|
273
273
|
import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
|
|
274
274
|
import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
|
|
@@ -276,7 +276,7 @@ import { JEAccountSettingsView } from './view/expenseAutomationView/selectorType
|
|
|
276
276
|
import { ExpenseAutomationJESchedulesViewSelector } from './view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes';
|
|
277
277
|
import { BulkUploadSelectorData, ExpenseAutomationMissingReceiptsViewSelector } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
|
|
278
278
|
import { CompletedTransactionsSelectorData, ResolvedBatchDetails, ResolvedBatchFile, ResolvedCandidate } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
|
|
279
|
-
import { AccountReconSectionID, AccountReconciliationByAccount, AccountReconciliationBySection,
|
|
279
|
+
import { AccountReconSectionID, AccountReconciliationByAccount, AccountReconciliationBySection, ExpenseAutomationReconciliationViewSelector } from './view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes';
|
|
280
280
|
import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView } from './view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes';
|
|
281
281
|
import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
|
|
282
282
|
import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
|
|
@@ -286,7 +286,7 @@ import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey,
|
|
|
286
286
|
import { AccountSettingsLocalData, JEScheduleSortKey as ExpenseAutomationJEScheduleSortKey, JESchedulesViewUIState as ExpenseAutomationJESchedulesViewUIState, JEScheduleLocalData, toJEScheduleSortKey as toExpenseAutomationJEScheduleSortKey } from './view/expenseAutomationView/types/jeSchedulesViewState';
|
|
287
287
|
import { BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, MatchCandidate, MatchSource, MissingReceiptsTab, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab } from './view/expenseAutomationView/types/missingReceiptsViewState';
|
|
288
288
|
import { MissingReceiptsSortKey as ExpenseAutomationMissingReceiptsSortKey, MissingReceiptsViewState as ExpenseAutomationMissingReceiptsViewState, MissingReceiptsViewUIState as ExpenseAutomationMissingReceiptsViewUIState, toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey } from './view/expenseAutomationView/types/missingReceiptsViewState';
|
|
289
|
-
import { AccountReconciliationLocalData,
|
|
289
|
+
import { AccountReconciliationLocalData, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
|
|
290
290
|
import { TransactionsTab as ExpenseAutomationTransactionsTab, TransactionsViewState as ExpenseAutomationTransactionsViewState, TransactionsViewUIState as ExpenseAutomationTransactionsViewUIState, SupportedTransactionCategorization, TransactionCategorizationLineItemData, TransactionReviewLocalData, TransactionsSortKey, TransactionsTab, toTransactionsTabKey as toExpenseAutomationTransactionsTabKey, toTransactionsSortKey } from './view/expenseAutomationView/types/transactionsViewState';
|
|
291
291
|
import downloadFile from './view/fileView/fileDownloadHelpers';
|
|
292
292
|
import uploadFile, { AuthParams, AuthParamsPayload, FileMetadataPayload } from './view/fileView/fileUploadHelpers';
|
|
@@ -628,7 +628,7 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
|
|
|
628
628
|
export { ClassesViewSelectorReportV2 };
|
|
629
629
|
export { BalancesTimeseries, TrendTimeseries, BalanceKind };
|
|
630
630
|
export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
|
|
631
|
-
export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType,
|
|
631
|
+
export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
|
|
632
632
|
export { JEScheduleLocalData };
|
|
633
633
|
export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
|
|
634
634
|
export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
|