@zeniai/client-epic-state 4.20.9 → 4.20.11
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 +0 -1
- package/lib/epic.d.ts +1 -4
- package/lib/epic.js +1 -4
- package/lib/esm/entity/snackbar/snackbarTypes.js +0 -1
- package/lib/esm/epic.js +1 -4
- package/lib/esm/index.js +3 -3
- package/lib/esm/view/expenseAutomationView/{helpers/bulkUploadTiming.js → bulkUploadTiming.js} +0 -6
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +1 -1
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +4 -6
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +13 -7
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +5 -12
- package/lib/esm/view/expenseAutomationView/payload/missingReceiptsPayload.js +0 -9
- package/lib/esm/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +3 -26
- package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +0 -2
- package/lib/index.d.ts +3 -3
- package/lib/index.js +33 -36
- package/lib/view/expenseAutomationView/{helpers/bulkUploadTiming.d.ts → bulkUploadTiming.d.ts} +0 -6
- package/lib/view/expenseAutomationView/{helpers/bulkUploadTiming.js → bulkUploadTiming.js} +1 -7
- package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +1 -1
- package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +3 -5
- package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +13 -7
- package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +4 -11
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.d.ts +0 -5
- package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.js +0 -10
- package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +2 -12
- package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +4 -27
- package/lib/view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes.d.ts +0 -2
- package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +0 -2
- package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +0 -4
- package/package.json +1 -1
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/bulkUploadMatchResultToastEpic.js +0 -33
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/refetchCompletedTransactionsOnBulkUploadSortEpic.js +0 -12
- package/lib/esm/view/expenseAutomationView/epics/missingReceipts/restoreBulkUploadAutomatchingOnMountEpic.js +0 -98
- package/lib/esm/view/expenseAutomationView/helpers/rollingCalendarDateRangeInclusive.js +0 -13
- package/lib/tsconfig.typecheck.tsbuildinfo +0 -1
- package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadMatchResultToastEpic.d.ts +0 -13
- package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadMatchResultToastEpic.js +0 -37
- package/lib/view/expenseAutomationView/epics/missingReceipts/refetchCompletedTransactionsOnBulkUploadSortEpic.d.ts +0 -10
- package/lib/view/expenseAutomationView/epics/missingReceipts/refetchCompletedTransactionsOnBulkUploadSortEpic.js +0 -16
- package/lib/view/expenseAutomationView/epics/missingReceipts/restoreBulkUploadAutomatchingOnMountEpic.d.ts +0 -18
- package/lib/view/expenseAutomationView/epics/missingReceipts/restoreBulkUploadAutomatchingOnMountEpic.js +0 -102
- package/lib/view/expenseAutomationView/helpers/rollingCalendarDateRangeInclusive.d.ts +0 -7
- package/lib/view/expenseAutomationView/helpers/rollingCalendarDateRangeInclusive.js +0 -16
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { EMPTY, from, merge, of } from 'rxjs';
|
|
2
2
|
import { catchError, debounceTime, filter, mergeMap, switchMap, } from 'rxjs/operators';
|
|
3
|
+
import { convertToPeriod } from '../../../../commonStateTypes/timePeriod';
|
|
4
|
+
import { getCurrentTenant } from '../../../../entity/tenant/tenantSelector';
|
|
3
5
|
import { updateTransactions } from '../../../../entity/transaction/transactionReducer';
|
|
4
6
|
import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
|
|
5
7
|
import { supportedTransactionPayloadToManualSearchResult } from '../../payload/missingReceiptsPayload';
|
|
6
8
|
import { searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, } from '../../reducers/missingReceiptsViewReducer';
|
|
7
9
|
import { toTransactionsSortKey } from '../../types/transactionsViewState';
|
|
8
|
-
import { rollingCalendarDateRangeInclusive } from '../../helpers/rollingCalendarDateRangeInclusive';
|
|
9
10
|
/**
|
|
10
11
|
* `auto_categorized` for manual transaction search (Unmatched).
|
|
11
12
|
* Backend contract TBD — align with `fetchTransactionCategorizationEpic` (`selectedTab === 'autoCategorized'`)
|
|
12
13
|
* when the expense-automation API documents the intended filter for this flow.
|
|
13
14
|
*/
|
|
14
15
|
export const MANUAL_TRANSACTION_SEARCH_AUTO_CATEGORIZED = false;
|
|
15
|
-
/** Inclusive rolling window for manual match search (ignores accounting period picker). */
|
|
16
|
-
const MANUAL_SEARCH_TRANSACTION_DATE_RANGE_DAYS = 90;
|
|
17
16
|
export const searchTransactionsForManualMatchEpic = (actions$, state$, zeniAPI) => {
|
|
18
17
|
const searchActions$ = actions$.pipe(filter(searchTransactionsForManualMatch.match));
|
|
19
18
|
const pagination$ = searchActions$.pipe(filter((action) => action.payload.pageToken != null));
|
|
@@ -30,11 +29,18 @@ export const searchTransactionsForManualMatchEpic = (actions$, state$, zeniAPI)
|
|
|
30
29
|
return EMPTY;
|
|
31
30
|
}
|
|
32
31
|
const state = state$.value;
|
|
33
|
-
const { expenseAutomationMissingReceiptsViewState: { bulkUpload: { manualSearch, sortKey, sortOrder }, }, } = state;
|
|
34
|
-
const
|
|
32
|
+
const { expenseAutomationViewState: { selectedPeriodByTenantId }, expenseAutomationMissingReceiptsViewState: { bulkUpload: { manualSearch, sortKey, sortOrder }, }, } = state;
|
|
33
|
+
const currentTenant = getCurrentTenant(state);
|
|
34
|
+
const selectedPeriod = selectedPeriodByTenantId[currentTenant.tenantId];
|
|
35
|
+
if (selectedPeriod == null) {
|
|
36
|
+
return of(searchTransactionsForManualMatchFailure({
|
|
37
|
+
error: createZeniAPIStatus('Unexpected Error', 'Manual search requires a selected accounting period.'),
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
const period = convertToPeriod(selectedPeriod);
|
|
35
41
|
const queryParam = {
|
|
36
|
-
start_date: start,
|
|
37
|
-
end_date: end,
|
|
42
|
+
start_date: period.start,
|
|
43
|
+
end_date: period.end,
|
|
38
44
|
auto_categorized: MANUAL_TRANSACTION_SEARCH_AUTO_CATEGORIZED,
|
|
39
45
|
sort_by: toTransactionsSortKey(sortKey),
|
|
40
46
|
sort_order: sortOrder === 'ascending' ? 'asc' : 'desc',
|
package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js
CHANGED
|
@@ -3,13 +3,11 @@ import { catchError, debounceTime, filter, mergeMap, switchMap, takeUntil, } fro
|
|
|
3
3
|
import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
|
|
4
4
|
import { updateTransactions } from '../../../../entity/transaction/transactionReducer';
|
|
5
5
|
import { isSuccessResponse } from '../../../../responsePayload';
|
|
6
|
-
import { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS } from '../../
|
|
6
|
+
import { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS } from '../../bulkUploadTiming';
|
|
7
7
|
import { extractTransactionPayloadsFromBatchFiles, isBatchDetailsApiStatusCompleted, toBatchDetails, } from '../../payload/missingReceiptsPayload';
|
|
8
|
-
import { bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, clearBulkUpload, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation,
|
|
8
|
+
import { bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, clearBulkUpload, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, } from '../../reducers/missingReceiptsViewReducer';
|
|
9
9
|
/** First poll after upload; then interval while batch not resolved via Pusher or API. */
|
|
10
10
|
const FALLBACK_FIRST_DELAY_MS = 30000;
|
|
11
|
-
/** Shorter first poll for restored sessions — batch may already be near completion. */
|
|
12
|
-
const RESTORE_FIRST_DELAY_MS = 5000;
|
|
13
11
|
const FALLBACK_POLL_INTERVAL_MS = 10000;
|
|
14
12
|
/**
|
|
15
13
|
* On Pusher batch completion: refresh batch list (then fetchMultipleBatchDetailsEpic runs),
|
|
@@ -27,8 +25,7 @@ export const pusherBatchStatusCompletionEpic = (actions$) => actions$.pipe(filte
|
|
|
27
25
|
* force `phase` to `completed` (dismiss automatching banner) and refresh the batch list.
|
|
28
26
|
* Cancels when the batch completes normally, bulk state is cleared, or another upload supersedes.
|
|
29
27
|
*/
|
|
30
|
-
export const bulkUploadAutomatchingTimeoutEpic = (actions$, state$) => actions$.pipe(filter(
|
|
31
|
-
restoreBulkUploadMatchingState.match(action)), mergeMap((action) => {
|
|
28
|
+
export const bulkUploadAutomatchingTimeoutEpic = (actions$, state$) => actions$.pipe(filter(bulkUploadReceiptsSuccess.match), mergeMap((action) => {
|
|
32
29
|
const { batchId } = action.payload;
|
|
33
30
|
return timer(BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS).pipe(mergeMap(() => {
|
|
34
31
|
const bulk = state$.value.expenseAutomationMissingReceiptsViewState.bulkUpload;
|
|
@@ -47,14 +44,10 @@ export const bulkUploadAutomatchingTimeoutEpic = (actions$, state$) => actions$.
|
|
|
47
44
|
* error snackbar per upload session (first failure only) so the user is not spammed every
|
|
48
45
|
* interval; Pusher or a later successful poll still completes the flow.
|
|
49
46
|
*/
|
|
50
|
-
export const pollBulkUploadBatchStatusEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(
|
|
51
|
-
restoreBulkUploadMatchingState.match(action)), mergeMap((action) => {
|
|
47
|
+
export const pollBulkUploadBatchStatusEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(bulkUploadReceiptsSuccess.match), mergeMap((action) => {
|
|
52
48
|
const { batchId } = action.payload;
|
|
53
49
|
let pollErrorNotified = false;
|
|
54
|
-
|
|
55
|
-
? RESTORE_FIRST_DELAY_MS
|
|
56
|
-
: FALLBACK_FIRST_DELAY_MS;
|
|
57
|
-
return timer(firstDelay, FALLBACK_POLL_INTERVAL_MS).pipe(takeUntil(merge(actions$.pipe(filter(clearBulkUpload.match)), actions$.pipe(filter(pusherBatchStatusUpdate.match), filter((action) => action.payload.batchId === batchId)), actions$.pipe(filter(fetchBulkUploadBatchDetailsSuccess.match), filter((action) => action.payload.batchId === batchId)), actions$.pipe(filter(bulkUploadAutomatchingTimedOut.match), filter((action) => action.payload.batchId === batchId)))), switchMap(() => zeniAPI
|
|
50
|
+
return timer(FALLBACK_FIRST_DELAY_MS, FALLBACK_POLL_INTERVAL_MS).pipe(takeUntil(merge(actions$.pipe(filter(clearBulkUpload.match)), actions$.pipe(filter(pusherBatchStatusUpdate.match), filter((action) => action.payload.batchId === batchId)), actions$.pipe(filter(fetchBulkUploadBatchDetailsSuccess.match), filter((action) => action.payload.batchId === batchId)), actions$.pipe(filter(bulkUploadAutomatchingTimedOut.match), filter((action) => action.payload.batchId === batchId)))), switchMap(() => zeniAPI
|
|
58
51
|
.getJSON(`${zeniAPI.apiEndPoints.communicationAgentMicroServiceBaseUrl}/1.0/batches/${batchId}`)
|
|
59
52
|
.pipe(mergeMap((response) => {
|
|
60
53
|
/** Same batch-details URL; polls until `status` is completed (Pusher may win first). */
|
|
@@ -99,16 +99,8 @@ export function toBatchDetails(payload, filesEndPoint) {
|
|
|
99
99
|
files: payload.files.map((file) => toBatchFile(file, filesEndPoint)),
|
|
100
100
|
status: toBatchStatusValue(payload.status),
|
|
101
101
|
summary: toBatchSummary(payload.summary),
|
|
102
|
-
...(payload.user_id != null && payload.user_id !== ''
|
|
103
|
-
? { userId: payload.user_id }
|
|
104
|
-
: {}),
|
|
105
102
|
};
|
|
106
103
|
}
|
|
107
|
-
/** Batch is still in-flight for automatching (GET /batches/:id while not completed). */
|
|
108
|
-
export function isBatchDetailsStatusPendingOrProcessing(status) {
|
|
109
|
-
const s = status.toLowerCase();
|
|
110
|
-
return s === 'processing' || s === 'pending';
|
|
111
|
-
}
|
|
112
104
|
/** Batch list `status` is a string from the API — compare case-insensitively. */
|
|
113
105
|
export function isBatchListStatusCompleted(status) {
|
|
114
106
|
return status.toLowerCase() === 'completed';
|
|
@@ -166,7 +158,6 @@ export function toBatchListItem(payload) {
|
|
|
166
158
|
possibleMatchesCount: payload.possible_matches_count,
|
|
167
159
|
status: payload.status,
|
|
168
160
|
totalFiles: payload.total_files,
|
|
169
|
-
userId: payload.user_id,
|
|
170
161
|
};
|
|
171
162
|
}
|
|
172
163
|
/**
|
|
@@ -27,7 +27,6 @@ export const initialBulkUploadState = {
|
|
|
27
27
|
phase: 'idle',
|
|
28
28
|
sortKey: 'date',
|
|
29
29
|
sortOrder: 'descending',
|
|
30
|
-
uploadedFileCount: 0,
|
|
31
30
|
uploadProgress: 0,
|
|
32
31
|
uploadStatus: { fetchState: 'Not-Started', error: undefined },
|
|
33
32
|
};
|
|
@@ -54,12 +53,6 @@ export const initialState = {
|
|
|
54
53
|
};
|
|
55
54
|
/** Epic trigger only; batch-details fetch is handled in epics. */
|
|
56
55
|
export const fetchBulkUploadBatchDetails = createAction('expenseAutomationMissingReceiptsView/fetchBulkUploadBatchDetails');
|
|
57
|
-
/**
|
|
58
|
-
* Epic trigger only. Dispatched from the screen on missing-receipts entry / period switch so the
|
|
59
|
-
* automatching banner is restored for the logged-in user even when they sit on the Missing tab
|
|
60
|
-
* after a hard refresh. The epic owns the list + details API calls end-to-end.
|
|
61
|
-
*/
|
|
62
|
-
export const restoreBulkUploadAutomatchingOnMount = createAction('expenseAutomationMissingReceiptsView/restoreBulkUploadAutomatchingOnMount');
|
|
63
56
|
const expenseAutomationMissingReceiptsView = createSlice({
|
|
64
57
|
name: 'expenseAutomationMissingReceiptsView',
|
|
65
58
|
initialState,
|
|
@@ -163,29 +156,21 @@ const expenseAutomationMissingReceiptsView = createSlice({
|
|
|
163
156
|
},
|
|
164
157
|
// -- Bulk Upload Actions --
|
|
165
158
|
bulkUploadReceipts: {
|
|
166
|
-
reducer(draft
|
|
159
|
+
reducer(draft) {
|
|
167
160
|
draft.bulkUpload.phase = 'uploading';
|
|
168
161
|
draft.bulkUpload.uploadProgress = 0;
|
|
169
|
-
draft.bulkUpload.uploadedFileCount = action.payload.fileCount;
|
|
170
162
|
draft.bulkUpload.uploadStatus = {
|
|
171
163
|
fetchState: 'In-Progress',
|
|
172
164
|
error: undefined,
|
|
173
165
|
};
|
|
174
166
|
},
|
|
175
167
|
prepare(files) {
|
|
176
|
-
return { payload: { files
|
|
168
|
+
return { payload: { files } };
|
|
177
169
|
},
|
|
178
170
|
},
|
|
179
171
|
updateBulkUploadProgress(draft, action) {
|
|
180
172
|
draft.bulkUpload.uploadProgress = action.payload;
|
|
181
173
|
},
|
|
182
|
-
/**
|
|
183
|
-
* Sync file count when bulk upload uses direct HTTP (`bulkUploadReceipts` Redux action is not
|
|
184
|
-
* dispatched, so `bulkUploadReceipts` reducer never runs).
|
|
185
|
-
*/
|
|
186
|
-
setBulkUploadUploadedFileCount(draft, action) {
|
|
187
|
-
draft.bulkUpload.uploadedFileCount = action.payload;
|
|
188
|
-
},
|
|
189
174
|
bulkUploadReceiptsSuccess(draft, action) {
|
|
190
175
|
draft.bulkUpload.currentBatchId = action.payload.batchId;
|
|
191
176
|
draft.bulkUpload.uploadProgress = 100;
|
|
@@ -202,14 +187,6 @@ const expenseAutomationMissingReceiptsView = createSlice({
|
|
|
202
187
|
};
|
|
203
188
|
draft.bulkUpload.phase = 'idle';
|
|
204
189
|
},
|
|
205
|
-
restoreBulkUploadMatchingState(draft, action) {
|
|
206
|
-
if (draft.bulkUpload.phase !== 'idle') {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
draft.bulkUpload.currentBatchId = action.payload.batchId;
|
|
210
|
-
draft.bulkUpload.uploadedFileCount = action.payload.totalFiles;
|
|
211
|
-
draft.bulkUpload.phase = 'matching';
|
|
212
|
-
},
|
|
213
190
|
bulkUploadAutomatchingTimedOut: {
|
|
214
191
|
reducer(draft, action) {
|
|
215
192
|
if (draft.bulkUpload.phase !== 'matching' ||
|
|
@@ -574,7 +551,7 @@ const expenseAutomationMissingReceiptsView = createSlice({
|
|
|
574
551
|
});
|
|
575
552
|
export const { fetchMissingReceipts, fetchMissingReceiptsSuccess, fetchMissingReceiptsFailure, uploadMissingReceiptSuccess, updateMissingReceiptUploadState, updateMissingReceiptsUIState, markMissingReceiptAsDone, clearExpenseAutomationMissingReceiptsView,
|
|
576
553
|
// Bulk Upload
|
|
577
|
-
bulkUploadReceipts, updateBulkUploadProgress,
|
|
554
|
+
bulkUploadReceipts, updateBulkUploadProgress, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, bulkUploadAutomatchingTimedOut, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, batchDetailFetchFailed, setInitialBatchDetailsLoading, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete,
|
|
578
555
|
// Completed Transactions
|
|
579
556
|
fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, } = expenseAutomationMissingReceiptsView.actions;
|
|
580
557
|
export default expenseAutomationMissingReceiptsView.reducer;
|
|
@@ -190,7 +190,6 @@ export function getExpenseAutomationMissingReceiptsView(state) {
|
|
|
190
190
|
batchStatus: currentBatchStatus,
|
|
191
191
|
batchDetails: resolvedBatchDetails,
|
|
192
192
|
completedSubTab: bulkUpload.completedSubTab,
|
|
193
|
-
currentBatchId: bulkUpload.currentBatchId,
|
|
194
193
|
completedTransactions: {
|
|
195
194
|
fetchState: completedTransactionsForPeriod?.fetchState ?? {
|
|
196
195
|
fetchState: 'Not-Started',
|
|
@@ -218,7 +217,6 @@ export function getExpenseAutomationMissingReceiptsView(state) {
|
|
|
218
217
|
...bulkUpload.manualSearch,
|
|
219
218
|
results: manualSearchResults,
|
|
220
219
|
},
|
|
221
|
-
uploadedFileCount: bulkUpload.uploadedFileCount,
|
|
222
220
|
uploadProgress: bulkUpload.uploadProgress,
|
|
223
221
|
},
|
|
224
222
|
};
|
package/lib/index.d.ts
CHANGED
|
@@ -266,7 +266,7 @@ import { MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLine
|
|
|
266
266
|
import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } from './view/expenseAutomationView/payload/reconciliationPayload';
|
|
267
267
|
import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
|
|
268
268
|
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, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
|
|
269
|
-
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,
|
|
269
|
+
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';
|
|
270
270
|
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';
|
|
271
271
|
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';
|
|
272
272
|
import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
|
|
@@ -627,7 +627,7 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
|
|
|
627
627
|
export { ClassesViewSelectorReportV2 };
|
|
628
628
|
export { BalancesTimeseries, TrendTimeseries, BalanceKind };
|
|
629
629
|
export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
|
|
630
|
-
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, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure,
|
|
630
|
+
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, 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, };
|
|
631
631
|
export { JEScheduleLocalData };
|
|
632
632
|
export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
|
|
633
633
|
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, };
|
|
@@ -874,7 +874,7 @@ export { fetchTreasuryTaxLetterList } from './view/spendManagement/treasury/trea
|
|
|
874
874
|
export { TreasuryTaxLettersSelectorView, getTreasuryTaxLetters, } from './view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector';
|
|
875
875
|
export { TreasuryTransactionStatus } from './view/spendManagement/treasury/treasuryList/treasuryDetailPayload';
|
|
876
876
|
export type { TransactionActivityLog } from './entity/transactionActivityLog/transactionActivityLogState';
|
|
877
|
-
export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS, } from './view/expenseAutomationView/
|
|
877
|
+
export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS, } from './view/expenseAutomationView/bulkUploadTiming';
|
|
878
878
|
export { fetchTransactionActivityLog } from './view/transactionActivityLogView/transactionActivityLogViewReducer';
|
|
879
879
|
export { TransactionActivityLogViewSelectorView, getTransactionActivityLogView, } from './view/transactionActivityLogView/transactionActivityLogViewSelector';
|
|
880
880
|
export { UserGroup } from './entity/userGroups/userGroupsState';
|