@zeniai/client-epic-state 5.1.37 → 5.1.38
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/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +2 -0
- package/lib/esm/entity/snackbar/snackbarTypes.js +2 -0
- package/lib/esm/index.js +3 -2
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic.js +5 -3
- package/lib/esm/view/expenseAutomationView/helpers/mapStatementUpdateLocalDataToRequestBody.js +32 -0
- package/lib/esm/view/expenseAutomationView/payload/reconciliationPayload.js +1 -0
- package/lib/esm/view/expenseAutomationView/reducers/reconciliationViewReducer.js +163 -21
- package/lib/esm/view/expenseAutomationView/selectors/reconciliationViewSelector.js +30 -26
- package/lib/esm/view/expenseAutomationView/selectors/statementParseViewSelector.js +295 -0
- package/lib/index.d.ts +4 -3
- package/lib/index.js +44 -38
- package/lib/view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic.js +4 -2
- package/lib/view/expenseAutomationView/helpers/mapStatementUpdateLocalDataToRequestBody.d.ts +2 -0
- package/lib/view/expenseAutomationView/helpers/mapStatementUpdateLocalDataToRequestBody.js +36 -0
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/payload/reconciliationPayload.js +1 -0
- package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.d.ts +14 -1
- package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.js +165 -23
- package/lib/view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes.d.ts +10 -2
- package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.js +30 -26
- package/lib/view/expenseAutomationView/selectors/statementParseViewSelector.d.ts +25 -0
- package/lib/view/expenseAutomationView/selectors/statementParseViewSelector.js +313 -0
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +52 -2
- package/package.json +1 -1
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { date } from '../../../zeniDayJS';
|
|
2
|
+
export const getEffectiveStatementPeriod = (parsedMeta, localMeta) => ({
|
|
3
|
+
statementStartDate: localMeta?.statementStartDate != null && localMeta.statementStartDate !== ''
|
|
4
|
+
? localMeta.statementStartDate
|
|
5
|
+
: parsedMeta.statementStartDate,
|
|
6
|
+
statementEndDate: localMeta?.statementEndDate != null && localMeta.statementEndDate !== ''
|
|
7
|
+
? localMeta.statementEndDate
|
|
8
|
+
: parsedMeta.statementEndDate,
|
|
9
|
+
});
|
|
10
|
+
export const isStatementTransactionInPeriod = (transactionDate, statementStartDate, statementEndDate) => {
|
|
11
|
+
if (statementStartDate === '' ||
|
|
12
|
+
statementEndDate === '' ||
|
|
13
|
+
transactionDate === '') {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
const txn = date(transactionDate).startOf('day');
|
|
17
|
+
const start = date(statementStartDate).startOf('day');
|
|
18
|
+
const end = date(statementEndDate).startOf('day');
|
|
19
|
+
return txn.isSameOrAfter(start, 'day') && txn.isSameOrBefore(end, 'day');
|
|
20
|
+
};
|
|
21
|
+
export const filterStatementTransactionsByPeriod = (transactions, statementPeriod) => {
|
|
22
|
+
const { statementStartDate, statementEndDate } = statementPeriod;
|
|
23
|
+
if (statementStartDate === '' || statementEndDate === '') {
|
|
24
|
+
return transactions;
|
|
25
|
+
}
|
|
26
|
+
return transactions.filter((transaction) => isStatementTransactionInPeriod(transaction.transactionDate, statementStartDate, statementEndDate));
|
|
27
|
+
};
|
|
28
|
+
export const getParsedStatementDataForView = (parsedStatementData, statementUpdateLocalData) => {
|
|
29
|
+
if (parsedStatementData == null) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const statementUpload = parsedStatementData.statementUpload;
|
|
33
|
+
if (statementUpload == null) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
const parsedMeta = statementUpload.statementMeta;
|
|
37
|
+
const localMeta = statementUpdateLocalData?.statementMeta;
|
|
38
|
+
const effectiveMeta = localMeta ?? parsedMeta;
|
|
39
|
+
const statementPeriod = getEffectiveStatementPeriod(parsedMeta, localMeta);
|
|
40
|
+
return {
|
|
41
|
+
statementUpload: {
|
|
42
|
+
...statementUpload,
|
|
43
|
+
statementMeta: effectiveMeta,
|
|
44
|
+
statementTransactions: filterStatementTransactionsByPeriod(statementUpload.statementTransactions, statementPeriod),
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export const getStatementTransactionPeriodById = (allParsedTransactions, parsedMeta, localMeta) => {
|
|
49
|
+
const statementPeriod = getEffectiveStatementPeriod(parsedMeta, localMeta);
|
|
50
|
+
return Object.fromEntries(allParsedTransactions
|
|
51
|
+
.filter((transaction) => transaction.statementTransactionId !== '')
|
|
52
|
+
.map((transaction) => [
|
|
53
|
+
transaction.statementTransactionId,
|
|
54
|
+
isStatementTransactionInPeriod(transaction.transactionDate, statementPeriod.statementStartDate, statementPeriod.statementEndDate),
|
|
55
|
+
]));
|
|
56
|
+
};
|
|
57
|
+
export const getDateFilteredDeletedTransactionIds = (allParsedTransactions, statementPeriod) => {
|
|
58
|
+
if (statementPeriod.statementStartDate === '' ||
|
|
59
|
+
statementPeriod.statementEndDate === '') {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
return allParsedTransactions
|
|
63
|
+
.filter((transaction) => transaction.statementTransactionId !== '' &&
|
|
64
|
+
!isStatementTransactionInPeriod(transaction.transactionDate, statementPeriod.statementStartDate, statementPeriod.statementEndDate))
|
|
65
|
+
.map((transaction) => transaction.statementTransactionId);
|
|
66
|
+
};
|
|
67
|
+
const roundCurrency = (value) => Math.round(value * 100) / 100;
|
|
68
|
+
const toApiDateString = (value) => {
|
|
69
|
+
if (value == null || value === '') {
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
return date(value).format('YYYY-MM-DD');
|
|
73
|
+
};
|
|
74
|
+
const computeStatementTransactionTotals = (transactions) => {
|
|
75
|
+
const totalDeposits = roundCurrency(transactions
|
|
76
|
+
.filter((txn) => txn.transactionDirection === 'credit')
|
|
77
|
+
.reduce((sum, txn) => sum + Math.abs(txn.amount ?? 0), 0));
|
|
78
|
+
const totalPayments = roundCurrency(transactions
|
|
79
|
+
.filter((txn) => txn.transactionDirection === 'debit')
|
|
80
|
+
.reduce((sum, txn) => sum + Math.abs(txn.amount ?? 0), 0));
|
|
81
|
+
return { totalDeposits, totalPayments };
|
|
82
|
+
};
|
|
83
|
+
const computeStatementClosingBalance = (openingBalance, totalDeposits, totalPayments) => roundCurrency(openingBalance + totalDeposits - totalPayments);
|
|
84
|
+
const filterFormTransactionsInPeriod = (transactions, statementStartDate, statementEndDate) => {
|
|
85
|
+
if (statementStartDate === '' || statementEndDate === '') {
|
|
86
|
+
return transactions;
|
|
87
|
+
}
|
|
88
|
+
const periodStart = date(statementStartDate).startOf('day');
|
|
89
|
+
const periodEnd = date(statementEndDate).startOf('day');
|
|
90
|
+
return transactions.filter((txn) => {
|
|
91
|
+
if (txn.transactionDate === '') {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
const txnDate = date(txn.transactionDate).startOf('day');
|
|
95
|
+
return (txnDate.isSameOrAfter(periodStart, 'day') &&
|
|
96
|
+
txnDate.isSameOrBefore(periodEnd, 'day'));
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
export const isStatementParseTransactionFieldChange = (changedField) => changedField === 'transactions' ||
|
|
100
|
+
changedField?.startsWith('transactions.') === true;
|
|
101
|
+
const isStatementParseBalanceAffectingTransactionFieldChange = (changedField) => {
|
|
102
|
+
if (changedField === 'transactions') {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
if (changedField?.startsWith('transactions.') !== true) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return !changedField.endsWith('.transactionMemo');
|
|
109
|
+
};
|
|
110
|
+
export const isStatementParseManualBalanceField = (field) => field === 'totalDeposits' ||
|
|
111
|
+
field === 'totalPayments' ||
|
|
112
|
+
field === 'closingBalance';
|
|
113
|
+
export const shouldRecalculateStatementParseBalances = (changedField) => isStatementParseBalanceAffectingTransactionFieldChange(changedField) ||
|
|
114
|
+
changedField === 'statementStartDate' ||
|
|
115
|
+
changedField === 'statementEndDate';
|
|
116
|
+
export const resolveStatementParseBalanceFields = (formView, changedField) => {
|
|
117
|
+
const inPeriodTransactions = filterFormTransactionsInPeriod(formView.transactions, formView.statementStartDate, formView.statementEndDate);
|
|
118
|
+
const { totalDeposits, totalPayments } = computeStatementTransactionTotals(inPeriodTransactions);
|
|
119
|
+
if (!shouldRecalculateStatementParseBalances(changedField)) {
|
|
120
|
+
return {
|
|
121
|
+
openingBalance: formView.openingBalance,
|
|
122
|
+
closingBalance: formView.closingBalance,
|
|
123
|
+
totalDeposits: formView.totalDeposits,
|
|
124
|
+
totalPayments: formView.totalPayments,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
openingBalance: formView.openingBalance,
|
|
129
|
+
totalDeposits,
|
|
130
|
+
totalPayments,
|
|
131
|
+
closingBalance: computeStatementClosingBalance(formView.openingBalance, totalDeposits, totalPayments),
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
export const areStatementParseBalancesConsistent = (formView) => {
|
|
135
|
+
const { totalDeposits, totalPayments } = computeStatementTransactionTotals(filterFormTransactionsInPeriod(formView.transactions, formView.statementStartDate, formView.statementEndDate));
|
|
136
|
+
return (roundCurrency(formView.closingBalance) ===
|
|
137
|
+
computeStatementClosingBalance(formView.openingBalance, totalDeposits, totalPayments));
|
|
138
|
+
};
|
|
139
|
+
const mapParsedTransactionToFormRow = (transaction, index) => ({
|
|
140
|
+
id: transaction.statementTransactionId || `parsed-${index}`,
|
|
141
|
+
transactionDate: toApiDateString(transaction.transactionDate),
|
|
142
|
+
transactionMemo: transaction.transactionMemo,
|
|
143
|
+
amount: transaction.amount,
|
|
144
|
+
transactionDirection: transaction.transactionDirection,
|
|
145
|
+
statementTransactionId: transaction.statementTransactionId,
|
|
146
|
+
});
|
|
147
|
+
const mapLocalTransactionToFormRow = (transaction, id) => ({
|
|
148
|
+
id,
|
|
149
|
+
transactionDate: toApiDateString(transaction.transactionDate),
|
|
150
|
+
transactionMemo: transaction.transactionMemo,
|
|
151
|
+
amount: transaction.amount,
|
|
152
|
+
transactionDirection: transaction.transactionDirection,
|
|
153
|
+
statementTransactionId: transaction.statementTransactionId,
|
|
154
|
+
});
|
|
155
|
+
const buildStatementParseFormTransactions = (originalTransactions, localData) => {
|
|
156
|
+
const deletedIdSet = new Set(localData.statementTransactions?.deletedIds ?? []);
|
|
157
|
+
const updatedById = new Map((localData.statementTransactions?.updated ?? [])
|
|
158
|
+
.filter((transaction) => transaction.statementTransactionId != null)
|
|
159
|
+
.map((transaction) => [
|
|
160
|
+
transaction.statementTransactionId,
|
|
161
|
+
transaction,
|
|
162
|
+
]));
|
|
163
|
+
const persistedTransactions = originalTransactions
|
|
164
|
+
.filter((transaction) => !deletedIdSet.has(transaction.statementTransactionId))
|
|
165
|
+
.map((transaction, index) => {
|
|
166
|
+
const updated = updatedById.get(transaction.statementTransactionId);
|
|
167
|
+
return updated != null
|
|
168
|
+
? mapLocalTransactionToFormRow(updated, transaction.statementTransactionId)
|
|
169
|
+
: mapParsedTransactionToFormRow(transaction, index);
|
|
170
|
+
});
|
|
171
|
+
const addedTransactions = (localData.statementTransactions?.added ?? []).map((transaction, index) => mapLocalTransactionToFormRow(transaction, `added-${index}`));
|
|
172
|
+
return [...persistedTransactions, ...addedTransactions];
|
|
173
|
+
};
|
|
174
|
+
export const mergeStatementParseDeletedTransactionIds = (originalTransactions, statementPeriod, currentTransactionIds) => {
|
|
175
|
+
const dateFilteredDeletedIds = getDateFilteredDeletedTransactionIds(originalTransactions, statementPeriod);
|
|
176
|
+
const dateFilteredDeletedIdSet = new Set(dateFilteredDeletedIds);
|
|
177
|
+
const userDeletedIds = originalTransactions
|
|
178
|
+
.filter((transaction) => transaction.statementTransactionId !== '' &&
|
|
179
|
+
!currentTransactionIds.has(transaction.statementTransactionId) &&
|
|
180
|
+
!dateFilteredDeletedIdSet.has(transaction.statementTransactionId))
|
|
181
|
+
.map((transaction) => transaction.statementTransactionId);
|
|
182
|
+
return [...new Set([...userDeletedIds, ...dateFilteredDeletedIds])];
|
|
183
|
+
};
|
|
184
|
+
const resolveStatementMetaDates = (parsedStatementMeta, localMeta) => ({
|
|
185
|
+
statementStartDate: localMeta?.statementStartDate != null && localMeta.statementStartDate !== ''
|
|
186
|
+
? localMeta.statementStartDate
|
|
187
|
+
: (parsedStatementMeta?.statementStartDate ?? ''),
|
|
188
|
+
statementEndDate: localMeta?.statementEndDate != null && localMeta.statementEndDate !== ''
|
|
189
|
+
? localMeta.statementEndDate
|
|
190
|
+
: (parsedStatementMeta?.statementEndDate ?? ''),
|
|
191
|
+
});
|
|
192
|
+
export const getStatementParseFormView = ({ parsedStatementMeta, originalTransactions, statementUpdateLocalData, }) => {
|
|
193
|
+
const transactions = statementUpdateLocalData != null
|
|
194
|
+
? buildStatementParseFormTransactions(originalTransactions, statementUpdateLocalData)
|
|
195
|
+
: originalTransactions.map(mapParsedTransactionToFormRow);
|
|
196
|
+
const localMeta = statementUpdateLocalData?.statementMeta;
|
|
197
|
+
const { statementStartDate, statementEndDate } = resolveStatementMetaDates(parsedStatementMeta, localMeta);
|
|
198
|
+
const { totalDeposits, totalPayments } = computeStatementTransactionTotals(filterFormTransactionsInPeriod(transactions, statementStartDate, statementEndDate));
|
|
199
|
+
const openingBalance = localMeta?.openingBalance ?? parsedStatementMeta?.openingBalance ?? 0;
|
|
200
|
+
const computedClosingBalance = computeStatementClosingBalance(openingBalance, totalDeposits, totalPayments);
|
|
201
|
+
return {
|
|
202
|
+
statementStartDate,
|
|
203
|
+
statementEndDate,
|
|
204
|
+
openingBalance,
|
|
205
|
+
closingBalance: localMeta?.closingBalance ?? computedClosingBalance,
|
|
206
|
+
totalDeposits: localMeta?.totalDeposits ?? totalDeposits,
|
|
207
|
+
totalPayments: localMeta?.totalPayments ?? totalPayments,
|
|
208
|
+
transactions: filterFormTransactionsInPeriod(transactions, statementStartDate, statementEndDate),
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
export const toStatementUpdateLocalDataFromFormView = ({ formView, parsedStatementMeta, originalTransactions, changedField, }) => {
|
|
212
|
+
const balanceFields = resolveStatementParseBalanceFields(formView, changedField);
|
|
213
|
+
const currentTransactionIds = new Set(formView.transactions
|
|
214
|
+
.map((transaction) => transaction.statementTransactionId)
|
|
215
|
+
.filter((id) => id != null && id !== ''));
|
|
216
|
+
const added = [];
|
|
217
|
+
const updated = [];
|
|
218
|
+
formView.transactions.forEach((transaction) => {
|
|
219
|
+
const transactionDate = toApiDateString(transaction.transactionDate);
|
|
220
|
+
if (transaction.statementTransactionId == null) {
|
|
221
|
+
if (transaction.transactionDirection != null) {
|
|
222
|
+
added.push({
|
|
223
|
+
amount: transaction.amount,
|
|
224
|
+
transactionDate,
|
|
225
|
+
transactionDirection: transaction.transactionDirection,
|
|
226
|
+
transactionMemo: transaction.transactionMemo,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
const original = originalTransactions.find((candidate) => candidate.statementTransactionId === transaction.statementTransactionId);
|
|
232
|
+
if (original != null &&
|
|
233
|
+
(original.amount !== transaction.amount ||
|
|
234
|
+
toApiDateString(original.transactionDate) !== transactionDate ||
|
|
235
|
+
original.transactionMemo !== transaction.transactionMemo)) {
|
|
236
|
+
updated.push({
|
|
237
|
+
amount: transaction.amount,
|
|
238
|
+
transactionDate,
|
|
239
|
+
transactionDirection: transaction.transactionDirection,
|
|
240
|
+
transactionMemo: transaction.transactionMemo,
|
|
241
|
+
statementTransactionId: transaction.statementTransactionId,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
const statementPeriod = {
|
|
246
|
+
statementStartDate: toApiDateString(formView.statementStartDate),
|
|
247
|
+
statementEndDate: toApiDateString(formView.statementEndDate),
|
|
248
|
+
};
|
|
249
|
+
const deletedIds = mergeStatementParseDeletedTransactionIds(originalTransactions, statementPeriod, currentTransactionIds);
|
|
250
|
+
const deletedIdSet = new Set(deletedIds);
|
|
251
|
+
const inPeriodAdded = filterFormTransactionsInPeriod(added, statementPeriod.statementStartDate, statementPeriod.statementEndDate);
|
|
252
|
+
const inPeriodUpdated = updated.filter((transaction) => transaction.statementTransactionId != null &&
|
|
253
|
+
!deletedIdSet.has(transaction.statementTransactionId));
|
|
254
|
+
return {
|
|
255
|
+
statementMeta: {
|
|
256
|
+
closingBalance: balanceFields.closingBalance,
|
|
257
|
+
openingBalance: balanceFields.openingBalance,
|
|
258
|
+
statementDataStatus: parsedStatementMeta?.statementDataStatus ?? {
|
|
259
|
+
code: '',
|
|
260
|
+
label: '',
|
|
261
|
+
},
|
|
262
|
+
statementEndDate: statementPeriod.statementEndDate,
|
|
263
|
+
statementStartDate: statementPeriod.statementStartDate,
|
|
264
|
+
statementStatus: parsedStatementMeta?.statementStatus ?? {
|
|
265
|
+
code: '',
|
|
266
|
+
label: '',
|
|
267
|
+
},
|
|
268
|
+
statementUploadId: parsedStatementMeta?.statementUploadId ?? '',
|
|
269
|
+
totalDeposits: balanceFields.totalDeposits,
|
|
270
|
+
totalPayments: balanceFields.totalPayments,
|
|
271
|
+
},
|
|
272
|
+
statementTransactions: {
|
|
273
|
+
added: inPeriodAdded,
|
|
274
|
+
deletedIds,
|
|
275
|
+
updated: inPeriodUpdated,
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
};
|
|
279
|
+
export const applyStatementParseFormChange = ({ formView, changedField, parsedStatementMeta, originalTransactions, }) => {
|
|
280
|
+
const balanceFields = resolveStatementParseBalanceFields(formView, changedField);
|
|
281
|
+
const shouldRecalculate = shouldRecalculateStatementParseBalances(changedField);
|
|
282
|
+
const mergedFormView = shouldRecalculate
|
|
283
|
+
? { ...formView, ...balanceFields }
|
|
284
|
+
: formView;
|
|
285
|
+
return {
|
|
286
|
+
didRecalculateBalances: shouldRecalculate,
|
|
287
|
+
formView: mergedFormView,
|
|
288
|
+
localData: toStatementUpdateLocalDataFromFormView({
|
|
289
|
+
formView: mergedFormView,
|
|
290
|
+
parsedStatementMeta,
|
|
291
|
+
originalTransactions,
|
|
292
|
+
changedField,
|
|
293
|
+
}),
|
|
294
|
+
};
|
|
295
|
+
};
|
package/lib/index.d.ts
CHANGED
|
@@ -279,7 +279,7 @@ import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } f
|
|
|
279
279
|
import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
|
|
280
280
|
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';
|
|
281
281
|
import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearBulkUploadBatchDetailsForScopeChange, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markBatchDetailRefreshAttempted, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, refreshBatchDetailsForBatchId, requestMissingReceiptsTabNavigation, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
|
|
282
|
-
import { clearStatementDateConflict, deleteAccountStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, parseStatement, parseStatementFailure, parseStatementSuccess, reparseStatement, reparseStatementFailure, reparseStatementSuccess, resetReparseStatementStatus, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, submitStatementUpdate, 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, updateNodeCollapseState, updateParsedStatementData, updateStatementProcessingFailed, updateStatementUpdateLocalData, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
|
|
282
|
+
import { clearStatementDateConflict, deleteAccountStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, parseStatement, parseStatementFailure, parseStatementSuccess, reparseStatement, reparseStatementFailure, reparseStatementSuccess, resetReparseStatementStatus, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, setStatementProcessingDismissedToBackground, submitStatementUpdate, 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, updateNodeCollapseState, updateParsedStatementData, updateStatementProcessingBackgroundCompletedSteps, updateStatementProcessingFailed, updateStatementUpdateLocalData, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
|
|
283
283
|
import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markCategoryClassRecommendationsFailureForCategorization, markTransactionAsNotMiscategorized, removeTransactionFromAllTabs, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationCompletedSubTab, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, updateTransactionFilters, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
|
|
284
284
|
import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
|
|
285
285
|
import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
|
|
@@ -292,6 +292,7 @@ import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSel
|
|
|
292
292
|
import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
|
|
293
293
|
import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
|
|
294
294
|
import { getExpenseAutomationReconciliationView, getReparseStatementStatusByAccountId, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
|
|
295
|
+
import { applyStatementParseFormChange, areStatementParseBalancesConsistent, getStatementParseFormView } from './view/expenseAutomationView/selectors/statementParseViewSelector';
|
|
295
296
|
import { getExpenseAutomationTransactionView, getLastTransferEntryReplacement } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
|
|
296
297
|
import { TRANSACTION_FILTER_CATEGORIES, TransactionFilterAmountMatchingOperator, TransactionFilterCategory, TransactionFilterCategoryDropdownOption, TransactionFilterCategoryField, TransactionFilterEntityType, TransactionFilters, applyTransactionFilters } from './view/expenseAutomationView/transactionFilterHelpers';
|
|
297
298
|
import { CompletedSubTab, DEFAULT_COMPLETED_SUB_TAB, toCompletedSubTab } from './view/expenseAutomationView/types/completedSubTab';
|
|
@@ -299,7 +300,7 @@ import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey,
|
|
|
299
300
|
import { AccountSettingsLocalData, JEScheduleMainTab as ExpenseAutomationJEScheduleMainTab, JEScheduleSortKey as ExpenseAutomationJEScheduleSortKey, JESchedulesViewUIState as ExpenseAutomationJESchedulesViewUIState, JEScheduleLocalData, toJEScheduleMainTab as toExpenseAutomationJEScheduleMainTab, toJEScheduleSortKey as toExpenseAutomationJEScheduleSortKey } from './view/expenseAutomationView/types/jeSchedulesViewState';
|
|
300
301
|
import { BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, MatchCandidate, MatchSource, MissingReceiptsTab, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toMatchSource, toMissingReceiptsTab } from './view/expenseAutomationView/types/missingReceiptsViewState';
|
|
301
302
|
import { MissingReceiptsSortKey as ExpenseAutomationMissingReceiptsSortKey, MissingReceiptsViewState as ExpenseAutomationMissingReceiptsViewState, MissingReceiptsViewUIState as ExpenseAutomationMissingReceiptsViewUIState, toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey } from './view/expenseAutomationView/types/missingReceiptsViewState';
|
|
302
|
-
import { AccountReconciliationLocalData, ExcludeAccountFromReconciliationPayload, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ParsedStatementData, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, StatementDateConflict, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, StatementUpdateLocalData, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
|
|
303
|
+
import { AccountReconciliationLocalData, ExcludeAccountFromReconciliationPayload, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ParsedStatementData, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, StatementDateConflict, StatementMeta, StatementParseFormView, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, StatementUpdateLocalData, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
|
|
303
304
|
import { TransactionsTab as ExpenseAutomationTransactionsTab, TransactionsViewState as ExpenseAutomationTransactionsViewState, TransactionsViewUIState as ExpenseAutomationTransactionsViewUIState, SupportedTransactionCategorization, TransactionCategorizationLineItemData, TransactionReviewLocalData, TransactionsSortKey, TransactionsTab, toTransactionsTabKey as toExpenseAutomationTransactionsTabKey, toTransactionsSortKey } from './view/expenseAutomationView/types/transactionsViewState';
|
|
304
305
|
import { clearFeatureNotificationView, fetchRegisteredInterests, notifyMeForFeature } from './view/featureNotificationView/featureNotificationViewReducer';
|
|
305
306
|
import { getFeatureNotificationView, getRegisteredInterests, getRegisteredInterestsByFeature, isFeatureInterestRegistered } from './view/featureNotificationView/featureNotificationViewSelector';
|
|
@@ -674,7 +675,7 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
|
|
|
674
675
|
export { ClassesViewSelectorReportV2 };
|
|
675
676
|
export { BalancesTimeseries, TrendTimeseries, BalanceKind };
|
|
676
677
|
export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, MonthCloseCheckProgressJson, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
|
|
677
|
-
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, DEFAULT_COMPLETED_SUB_TAB, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, clearBulkUploadBatchDetailsForScopeChange, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, 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, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, getReparseStatementStatusByAccountId, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, updateStatementProcessingFailed, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, parseStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, submitStatementUpdate, clearStatementDateConflict, StatementDateConflict, updateStatementUpdateLocalData, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, ParsedStatementData, StatementUpdateLocalData, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, };
|
|
678
|
+
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, DEFAULT_COMPLETED_SUB_TAB, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, clearBulkUploadBatchDetailsForScopeChange, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, 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, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, getReparseStatementStatusByAccountId, applyStatementParseFormChange, areStatementParseBalancesConsistent, getStatementParseFormView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, updateStatementProcessingFailed, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, parseStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, submitStatementUpdate, clearStatementDateConflict, StatementDateConflict, updateStatementUpdateLocalData, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, setStatementProcessingDismissedToBackground, updateStatementProcessingBackgroundCompletedSteps, ParsedStatementData, StatementUpdateLocalData, StatementParseFormView, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, };
|
|
678
679
|
export { JEScheduleLocalData };
|
|
679
680
|
export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
|
|
680
681
|
export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateTransactionFilters, updateSelectedCheckboxTransactionIds, markCategoryClassRecommendationsFailureForCategorization, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, createTransferEntry, createTransferEntryFailure, createTransferEntryReplacedTransaction, createTransferEntrySuccess, resetCreateTransferEntryStatus, clearTransferEntryRouteReplacement, fetchAccountsForTransferFlow, removeTransactionFromAllTabs, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
|