@zeniai/client-epic-state 4.20.4 → 4.20.6

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.
Files changed (168) hide show
  1. package/lib/commonStateTypes/coaBalance/additionalBalances/getSummationBalance.d.ts +1 -1
  2. package/lib/commonStateTypes/coaBalance/coaBalanceType.d.ts +0 -2
  3. package/lib/commonStateTypes/coaBalance/coaBalanceType.js +0 -6
  4. package/lib/commonStateTypes/currencyHelper.d.ts +0 -3
  5. package/lib/commonStateTypes/currencyHelper.js +1 -6
  6. package/lib/commonStateTypes/reduceFetchState.d.ts +0 -9
  7. package/lib/commonStateTypes/reduceFetchState.js +0 -26
  8. package/lib/entity/account/accountPayload.d.ts +0 -2
  9. package/lib/entity/account/accountPayload.js +0 -2
  10. package/lib/entity/account/accountState.d.ts +0 -2
  11. package/lib/entity/customer/customerState.d.ts +2 -0
  12. package/lib/entity/customer/customerState.js +5 -0
  13. package/lib/entity/depositAccount/depositAccount.d.ts +1 -1
  14. package/lib/entity/depositAccount/depositAccount.js +1 -8
  15. package/lib/entity/reimbursement/reimbursementPayload.d.ts +0 -2
  16. package/lib/entity/reimbursement/reimbursementPayload.js +0 -7
  17. package/lib/entity/reimbursement/reimbursementState.d.ts +0 -2
  18. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  19. package/lib/entity/snackbar/snackbarTypes.js +0 -1
  20. package/lib/entity/task/taskPayload.d.ts +0 -1
  21. package/lib/entity/task/taskPayload.js +0 -1
  22. package/lib/entity/task/taskState.d.ts +0 -1
  23. package/lib/epic.d.ts +1 -12
  24. package/lib/epic.js +1 -12
  25. package/lib/esm/commonStateTypes/coaBalance/coaBalanceType.js +0 -5
  26. package/lib/esm/commonStateTypes/currencyHelper.js +0 -5
  27. package/lib/esm/commonStateTypes/reduceFetchState.js +0 -25
  28. package/lib/esm/entity/account/accountPayload.js +0 -2
  29. package/lib/esm/entity/customer/customerState.js +4 -1
  30. package/lib/esm/entity/depositAccount/depositAccount.js +1 -8
  31. package/lib/esm/entity/reimbursement/reimbursementPayload.js +0 -7
  32. package/lib/esm/entity/snackbar/snackbarTypes.js +0 -1
  33. package/lib/esm/entity/task/taskPayload.js +0 -1
  34. package/lib/esm/epic.js +1 -12
  35. package/lib/esm/index.js +10 -19
  36. package/lib/esm/reducer.js +0 -6
  37. package/lib/esm/view/arAgingView/arAgingReport/arAgingReducer.js +1 -1
  38. package/lib/esm/view/arAgingView/arAgingReport/arAgingSelector.js +1 -1
  39. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +5 -7
  40. package/lib/esm/view/expenseAutomationView/payload/missingReceiptsPayload.js +1 -189
  41. package/lib/esm/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -433
  42. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +1 -23
  43. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +1 -244
  44. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -2
  45. package/lib/esm/view/expenseAutomationView/types/missingReceiptsViewState.js +0 -44
  46. package/lib/esm/view/expenseAutomationView/types/transactionsViewState.js +1 -2
  47. package/lib/esm/view/financeStatement/financeStatementReducer.js +8 -11
  48. package/lib/esm/view/financeStatement/financeStatementSelector.js +9 -24
  49. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +1 -6
  50. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewSelector.js +29 -2
  51. package/lib/esm/view/profitAndLossClassesView/profitAndLossForTimeframeClassesViewEpic.js +5 -7
  52. package/lib/esm/view/reportUIOptions/updateReportUIOptionCOABalancesRangeEpic.js +7 -9
  53. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  54. package/lib/esm/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +0 -1
  55. package/lib/esm/view/taskManager/taskListView/taskListSelector.js +1 -3
  56. package/lib/esm/view/twoFactorAuthentication/resendOtpEpic.js +16 -2
  57. package/lib/esm/view/userListView/fetchUserListByTypeEpic.js +0 -11
  58. package/lib/esm/zeniAPI.js +2 -0
  59. package/lib/index.d.ts +12 -20
  60. package/lib/index.js +34 -94
  61. package/lib/reducer.d.ts +0 -6
  62. package/lib/reducer.js +0 -6
  63. package/lib/view/arAgingView/arAgingReport/arAgingReducer.js +2 -2
  64. package/lib/view/arAgingView/arAgingReport/arAgingSelector.js +5 -5
  65. package/lib/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +5 -7
  66. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  67. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.d.ts +0 -118
  68. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.js +0 -201
  69. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +3 -76
  70. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -434
  71. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +3 -11
  72. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +2 -24
  73. package/lib/view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes.d.ts +1 -69
  74. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +0 -1
  75. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.d.ts +1 -1
  76. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +0 -243
  77. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -2
  78. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +0 -142
  79. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.js +1 -54
  80. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -2
  81. package/lib/view/expenseAutomationView/types/transactionsViewState.js +1 -2
  82. package/lib/view/financeStatement/financeStatementReducer.js +8 -11
  83. package/lib/view/financeStatement/financeStatementSelector.d.ts +0 -2
  84. package/lib/view/financeStatement/financeStatementSelector.js +9 -24
  85. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.d.ts +2 -4
  86. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +2 -7
  87. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewSelector.js +29 -2
  88. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewState.d.ts +0 -4
  89. package/lib/view/profitAndLossClassesView/profitAndLossForTimeframeClassesViewEpic.js +5 -7
  90. package/lib/view/reportUIOptions/updateReportUIOptionCOABalancesRangeEpic.js +6 -8
  91. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  92. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.d.ts +0 -1
  93. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +0 -1
  94. package/lib/view/taskManager/taskListView/taskListSelector.d.ts +0 -2
  95. package/lib/view/taskManager/taskListView/taskListSelector.js +1 -3
  96. package/lib/view/twoFactorAuthentication/resendOtpEpic.d.ts +1 -1
  97. package/lib/view/twoFactorAuthentication/resendOtpEpic.js +15 -1
  98. package/lib/view/userListView/fetchUserListByTypeEpic.d.ts +1 -3
  99. package/lib/view/userListView/fetchUserListByTypeEpic.js +0 -11
  100. package/lib/view/userListView/userListViewPayload.d.ts +0 -2
  101. package/lib/zeniAPI.js +2 -0
  102. package/package.json +3 -3
  103. package/lib/entity/userGroups/userGroupsPayload.d.ts +0 -7
  104. package/lib/entity/userGroups/userGroupsPayload.js +0 -10
  105. package/lib/entity/userGroups/userGroupsReducer.d.ts +0 -8
  106. package/lib/entity/userGroups/userGroupsReducer.js +0 -29
  107. package/lib/entity/userGroups/userGroupsSelector.d.ts +0 -4
  108. package/lib/entity/userGroups/userGroupsSelector.js +0 -12
  109. package/lib/entity/userGroups/userGroupsState.d.ts +0 -9
  110. package/lib/entity/userGroups/userGroupsState.js +0 -2
  111. package/lib/esm/entity/userGroups/userGroupsPayload.js +0 -7
  112. package/lib/esm/entity/userGroups/userGroupsReducer.js +0 -25
  113. package/lib/esm/entity/userGroups/userGroupsSelector.js +0 -8
  114. package/lib/esm/entity/userGroups/userGroupsState.js +0 -1
  115. package/lib/esm/view/expenseAutomationView/bulkUploadTiming.js +0 -10
  116. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +0 -29
  117. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +0 -49
  118. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +0 -40
  119. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +0 -47
  120. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +0 -61
  121. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +0 -33
  122. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +0 -56
  123. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +0 -77
  124. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +0 -79
  125. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +0 -24
  126. package/lib/esm/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.js +0 -17
  127. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +0 -331
  128. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +0 -9
  129. package/lib/esm/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +0 -262
  130. package/lib/esm/view/userGroupListView/userGroupListViewReducer.js +0 -65
  131. package/lib/esm/view/userGroupListView/userGroupListViewSelector.js +0 -16
  132. package/lib/esm/view/userGroupListView/userGroupListViewState.js +0 -1
  133. package/lib/view/expenseAutomationView/bulkUploadTiming.d.ts +0 -10
  134. package/lib/view/expenseAutomationView/bulkUploadTiming.js +0 -13
  135. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.d.ts +0 -18
  136. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +0 -33
  137. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.d.ts +0 -7
  138. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +0 -53
  139. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.d.ts +0 -8
  140. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +0 -44
  141. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.d.ts +0 -7
  142. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +0 -51
  143. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.d.ts +0 -8
  144. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +0 -65
  145. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.d.ts +0 -8
  146. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +0 -37
  147. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.d.ts +0 -9
  148. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +0 -61
  149. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.d.ts +0 -14
  150. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +0 -81
  151. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.d.ts +0 -25
  152. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +0 -85
  153. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.d.ts +0 -7
  154. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +0 -28
  155. package/lib/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.d.ts +0 -9
  156. package/lib/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.js +0 -20
  157. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.d.ts +0 -15
  158. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +0 -335
  159. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.d.ts +0 -111
  160. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +0 -13
  161. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.d.ts +0 -6
  162. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +0 -265
  163. package/lib/view/userGroupListView/userGroupListViewReducer.d.ts +0 -23
  164. package/lib/view/userGroupListView/userGroupListViewReducer.js +0 -69
  165. package/lib/view/userGroupListView/userGroupListViewSelector.d.ts +0 -7
  166. package/lib/view/userGroupListView/userGroupListViewSelector.js +0 -20
  167. package/lib/view/userGroupListView/userGroupListViewState.d.ts +0 -8
  168. package/lib/view/userGroupListView/userGroupListViewState.js +0 -2
@@ -1,43 +1,10 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.fetchCompletedTransactionsFailure = exports.fetchCompletedTransactionsSuccess = exports.fetchCompletedTransactions = exports.acknowledgeBulkUploadConfirmMatchComplete = exports.clearManualSearchResults = exports.searchTransactionsForManualMatchFailure = exports.searchTransactionsForManualMatchSuccess = exports.searchTransactionsForManualMatch = exports.clearBulkUpload = exports.setBulkUploadSortConfig = exports.setBulkUploadCompletedSubTab = exports.setBulkUploadResultsTab = exports.confirmBulkUploadMatchFailure = exports.confirmBulkUploadMatchSuccess = exports.confirmBulkUploadMatch = exports.fetchBulkUploadBatchesFailure = exports.fetchBulkUploadBatchesSuccess = exports.fetchBulkUploadBatches = exports.fetchMoreBatchDetailsFailure = exports.fetchMoreBatchDetailsComplete = exports.fetchMoreBatchDetails = exports.setInitialBatchDetailsLoading = exports.batchDetailFetchFailed = exports.storeBatchDetails = exports.fetchBulkUploadBatchDetailsFailure = exports.fetchBulkUploadBatchDetailsSuccess = exports.clearMissingReceiptsTabNavigation = exports.requestMissingReceiptsTabNavigation = exports.pusherBatchStatusUpdate = exports.bulkUploadAutomatchingTimedOut = exports.bulkUploadReceiptsFailure = exports.bulkUploadReceiptsSuccess = exports.updateBulkUploadProgress = exports.bulkUploadReceipts = exports.clearExpenseAutomationMissingReceiptsView = exports.markMissingReceiptAsDone = exports.updateMissingReceiptsUIState = exports.updateMissingReceiptUploadState = exports.uploadMissingReceiptSuccess = exports.fetchMissingReceiptsFailure = exports.fetchMissingReceiptsSuccess = exports.fetchMissingReceipts = exports.fetchBulkUploadBatchDetails = exports.initialState = exports.initialBulkUploadState = exports.getCompletedTransactionsCacheKey = void 0;
4
+ exports.clearExpenseAutomationMissingReceiptsView = exports.markMissingReceiptAsDone = exports.updateMissingReceiptsUIState = exports.updateMissingReceiptUploadState = exports.uploadMissingReceiptSuccess = exports.fetchMissingReceiptsFailure = exports.fetchMissingReceiptsSuccess = exports.fetchMissingReceipts = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
7
- const missingReceiptsViewState_1 = require("../types/missingReceiptsViewState");
8
- const getCompletedTransactionsCacheKey = (periodId, sortKey, sortOrder, subTab) => `completed-${subTab}-${sortKey}-${sortOrder === 'ascending' ? 'asc' : 'desc'}-${periodId}`;
9
- exports.getCompletedTransactionsCacheKey = getCompletedTransactionsCacheKey;
10
- exports.initialBulkUploadState = {
11
- batchDetailsById: {},
12
- batchDetailsPaginationState: { fetchState: 'Not-Started', error: undefined },
13
- batchListByPeriod: {},
14
- batchListFetchState: { fetchState: 'Not-Started', error: undefined },
15
- batchStatusById: {},
16
- completedSubTab: 'all',
17
- completedTransactionsByPeriod: {},
18
- confirmMatchStatus: { fetchState: 'Not-Started', error: undefined },
19
- currentBatchId: undefined,
20
- currentResultsTab: 'unmatched',
21
- failedBatchDetailIds: [],
22
- manualSearchUiResetKey: 0,
23
- manualSearch: {
24
- fetchState: { fetchState: 'Not-Started', error: undefined },
25
- isLoadingMore: false,
26
- nextPageToken: null,
27
- pageSize: 25,
28
- results: [],
29
- searchQuery: '',
30
- totalCount: 0,
31
- },
32
- phase: 'idle',
33
- sortKey: 'date',
34
- sortOrder: 'descending',
35
- uploadProgress: 0,
36
- uploadStatus: { fetchState: 'Not-Started', error: undefined },
37
- };
38
7
  exports.initialState = {
39
- bulkUpload: exports.initialBulkUploadState,
40
- pendingMissingReceiptsTabNavigation: null,
41
8
  uploadReceiptStatusById: {},
42
9
  refreshStatus: {
43
10
  fetchState: 'Not-Started',
@@ -56,8 +23,6 @@ exports.initialState = {
56
23
  return this.fetchState == 'Completed';
57
24
  },
58
25
  };
59
- /** Epic trigger only; batch-details fetch is handled in epics. */
60
- exports.fetchBulkUploadBatchDetails = (0, toolkit_1.createAction)('expenseAutomationMissingReceiptsView/fetchBulkUploadBatchDetails');
61
26
  const expenseAutomationMissingReceiptsView = (0, toolkit_1.createSlice)({
62
27
  name: 'expenseAutomationMissingReceiptsView',
63
28
  initialState: exports.initialState,
@@ -159,404 +124,7 @@ const expenseAutomationMissingReceiptsView = (0, toolkit_1.createSlice)({
159
124
  clearExpenseAutomationMissingReceiptsView(draft) {
160
125
  Object.assign(draft, exports.initialState);
161
126
  },
162
- // -- Bulk Upload Actions --
163
- bulkUploadReceipts: {
164
- reducer(draft) {
165
- draft.bulkUpload.phase = 'uploading';
166
- draft.bulkUpload.uploadProgress = 0;
167
- draft.bulkUpload.uploadStatus = {
168
- fetchState: 'In-Progress',
169
- error: undefined,
170
- };
171
- },
172
- prepare(files) {
173
- return { payload: { files } };
174
- },
175
- },
176
- updateBulkUploadProgress(draft, action) {
177
- draft.bulkUpload.uploadProgress = action.payload;
178
- },
179
- bulkUploadReceiptsSuccess(draft, action) {
180
- draft.bulkUpload.currentBatchId = action.payload.batchId;
181
- draft.bulkUpload.uploadProgress = 100;
182
- draft.bulkUpload.uploadStatus = {
183
- fetchState: 'Completed',
184
- error: undefined,
185
- };
186
- draft.bulkUpload.phase = 'matching';
187
- },
188
- bulkUploadReceiptsFailure(draft, action) {
189
- draft.bulkUpload.uploadStatus = {
190
- fetchState: 'Error',
191
- error: action.payload.error,
192
- };
193
- draft.bulkUpload.phase = 'idle';
194
- },
195
- bulkUploadAutomatchingTimedOut: {
196
- reducer(draft, action) {
197
- if (draft.bulkUpload.phase !== 'matching' ||
198
- draft.bulkUpload.currentBatchId !== action.payload.batchId) {
199
- return;
200
- }
201
- draft.bulkUpload.phase = 'completed';
202
- },
203
- prepare(batchId) {
204
- return { payload: { batchId } };
205
- },
206
- },
207
- pusherBatchStatusUpdate(draft, action) {
208
- const batchStatus = action.payload;
209
- draft.bulkUpload.batchStatusById[batchStatus.batchId] = batchStatus;
210
- /**
211
- * Auto-matching banner (`phase === 'matching'`) must clear when the server reports this
212
- * upload batch is done — otherwise the Missing tab keeps MatchingProgressBanner until
213
- * batch-details APIs run; EmailUploadBanner should show again for the next upload.
214
- */
215
- if (batchStatus.status === 'completed' &&
216
- draft.bulkUpload.phase === 'matching' &&
217
- draft.bulkUpload.currentBatchId === batchStatus.batchId) {
218
- draft.bulkUpload.phase = 'completed';
219
- }
220
- },
221
- requestMissingReceiptsTabNavigation(draft, action) {
222
- draft.pendingMissingReceiptsTabNavigation = action.payload.tab;
223
- },
224
- clearMissingReceiptsTabNavigation(draft) {
225
- draft.pendingMissingReceiptsTabNavigation = null;
226
- },
227
- fetchBulkUploadBatchDetailsSuccess(draft, action) {
228
- const details = action.payload;
229
- draft.bulkUpload.batchDetailsById[details.batchId] = details;
230
- draft.bulkUpload.phase = 'completed';
231
- },
232
- fetchBulkUploadBatchDetailsFailure: {
233
- reducer(draft) {
234
- draft.bulkUpload.phase = 'completed';
235
- },
236
- prepare(payload) {
237
- return { payload };
238
- },
239
- },
240
- storeBatchDetails(draft, action) {
241
- const details = action.payload;
242
- draft.bulkUpload.batchDetailsById[details.batchId] = details;
243
- /**
244
- * Multi-batch fetch paths use `storeBatchDetails` (not `fetchBulkUploadBatchDetailsSuccess`).
245
- * Without this, `phase` stays `matching` after upload forever and the Unmatched tab keeps
246
- * showing the skeleton (`bulkUploadPhase === 'matching'` in web-components).
247
- */
248
- if (draft.bulkUpload.phase === 'matching' &&
249
- draft.bulkUpload.currentBatchId === details.batchId) {
250
- draft.bulkUpload.phase = 'completed';
251
- }
252
- },
253
- batchDetailFetchFailed(draft, action) {
254
- const { batchId } = action.payload;
255
- if (!draft.bulkUpload.failedBatchDetailIds.includes(batchId)) {
256
- draft.bulkUpload.failedBatchDetailIds.push(batchId);
257
- }
258
- if (draft.bulkUpload.phase === 'matching' &&
259
- draft.bulkUpload.currentBatchId === batchId) {
260
- draft.bulkUpload.phase = 'completed';
261
- }
262
- },
263
- setInitialBatchDetailsLoading(draft) {
264
- draft.bulkUpload.batchDetailsPaginationState = {
265
- fetchState: 'In-Progress',
266
- error: undefined,
267
- };
268
- },
269
- fetchMoreBatchDetails(draft) {
270
- draft.bulkUpload.batchDetailsPaginationState = {
271
- fetchState: 'In-Progress',
272
- error: undefined,
273
- };
274
- },
275
- fetchMoreBatchDetailsComplete(draft) {
276
- draft.bulkUpload.batchDetailsPaginationState = {
277
- fetchState: 'Completed',
278
- error: undefined,
279
- };
280
- const currentId = draft.bulkUpload.currentBatchId;
281
- const currentDetails = currentId != null
282
- ? draft.bulkUpload.batchDetailsById[currentId]
283
- : undefined;
284
- if (draft.bulkUpload.phase === 'matching' &&
285
- currentId != null &&
286
- currentDetails?.status === 'completed') {
287
- draft.bulkUpload.phase = 'completed';
288
- }
289
- },
290
- fetchMoreBatchDetailsFailure(draft, action) {
291
- draft.bulkUpload.batchDetailsPaginationState = {
292
- fetchState: 'Error',
293
- error: action.payload.error,
294
- };
295
- },
296
- fetchBulkUploadBatches: {
297
- reducer(draft, action) {
298
- if (action.payload.invalidateBatchDetailsCache === true) {
299
- draft.bulkUpload.batchDetailsById = {};
300
- draft.bulkUpload.failedBatchDetailIds = [];
301
- }
302
- draft.bulkUpload.batchListFetchState = {
303
- fetchState: 'In-Progress',
304
- error: undefined,
305
- };
306
- },
307
- prepare(input) {
308
- const fetchOptions = input ?? {};
309
- return {
310
- payload: {
311
- cacheOverride: fetchOptions.cacheOverride === true,
312
- invalidateBatchDetailsCache: fetchOptions.invalidateBatchDetailsCache === true,
313
- },
314
- };
315
- },
316
- },
317
- fetchBulkUploadBatchesSuccess(draft, action) {
318
- const periodId = (0, timePeriod_1.toMonthYearPeriodId)(action.payload.selectedPeriod);
319
- draft.bulkUpload.batchListByPeriod[periodId] = action.payload.batchList;
320
- draft.bulkUpload.batchListFetchState = {
321
- fetchState: 'Completed',
322
- error: undefined,
323
- };
324
- /**
325
- * When the multi-batch-details epic has nothing to fetch (e.g. list rows not `completed`
326
- * yet, or details already present), `phase` can stay `matching` even though we already
327
- * have completed details for `currentBatchId` (from polling / Pusher). Sync so the UI can
328
- * dismiss the Unmatched skeleton.
329
- */
330
- const currentId = draft.bulkUpload.currentBatchId;
331
- if (draft.bulkUpload.phase === 'matching' && currentId != null) {
332
- const existing = draft.bulkUpload.batchDetailsById[currentId];
333
- if (existing?.status === 'completed') {
334
- draft.bulkUpload.phase = 'completed';
335
- }
336
- }
337
- },
338
- fetchBulkUploadBatchesFailure(draft, action) {
339
- draft.bulkUpload.batchListFetchState = {
340
- fetchState: 'Error',
341
- error: action.payload.error,
342
- };
343
- },
344
- confirmBulkUploadMatch: {
345
- reducer(draft) {
346
- draft.bulkUpload.confirmMatchStatus = {
347
- fetchState: 'In-Progress',
348
- error: undefined,
349
- };
350
- },
351
- prepare(batchId, attachmentId, transactionId, transactionType, fileName) {
352
- return {
353
- payload: {
354
- batchId,
355
- attachmentId,
356
- transactionId,
357
- transactionType,
358
- fileName,
359
- },
360
- };
361
- },
362
- },
363
- confirmBulkUploadMatchSuccess(draft, action) {
364
- const { batchId, attachmentId, transactionId } = action.payload;
365
- draft.bulkUpload.confirmMatchStatus = {
366
- fetchState: 'Completed',
367
- error: undefined,
368
- };
369
- const details = draft.bulkUpload.batchDetailsById[batchId];
370
- if (details != null) {
371
- const file = details.files.find((batchFile) => batchFile.attachmentId === attachmentId);
372
- if (file != null) {
373
- const originalStatus = file.status;
374
- file.status = 'exact_match';
375
- file.matchedTransactionId = transactionId;
376
- file.candidates = undefined;
377
- details.summary.matched += 1;
378
- if (originalStatus === 'no_match') {
379
- details.summary.noMatch = Math.max(0, details.summary.noMatch - 1);
380
- }
381
- else if (originalStatus === 'possible_matches') {
382
- details.summary.possibleMatches = Math.max(0, details.summary.possibleMatches - 1);
383
- }
384
- }
385
- }
386
- draft.bulkUpload.manualSearch = exports.initialBulkUploadState.manualSearch;
387
- draft.bulkUpload.manualSearchUiResetKey += 1;
388
- },
389
- confirmBulkUploadMatchFailure(draft, action) {
390
- draft.bulkUpload.confirmMatchStatus = {
391
- fetchState: 'Error',
392
- error: action.payload.error,
393
- };
394
- },
395
- setBulkUploadResultsTab(draft, action) {
396
- draft.bulkUpload.currentResultsTab = action.payload;
397
- },
398
- setBulkUploadCompletedSubTab(draft, action) {
399
- draft.bulkUpload.completedSubTab = action.payload;
400
- },
401
- setBulkUploadSortConfig(draft, action) {
402
- draft.bulkUpload.sortKey = action.payload.sortKey;
403
- draft.bulkUpload.sortOrder = action.payload.sortOrder;
404
- },
405
- clearBulkUpload(draft) {
406
- Object.assign(draft.bulkUpload, exports.initialBulkUploadState);
407
- draft.pendingMissingReceiptsTabNavigation = null;
408
- },
409
- searchTransactionsForManualMatch: {
410
- reducer(draft, action) {
411
- const { query, pageToken } = action.payload;
412
- const isLoadMore = pageToken != null;
413
- const trimmed = query.trim();
414
- /**
415
- * Cleared or too-short query: no API (see epic). Reset fully (no In-Progress).
416
- * Only bump `manualSearchUiResetKey` when clearing a real search — not when the UI
417
- * dispatches `""` on every keystroke while length is below MIN (web-components always sends
418
- * `onSearch("")` in that case), or ReceiptCard remounts and the input loses focus.
419
- */
420
- if (!isLoadMore &&
421
- trimmed.length < missingReceiptsViewState_1.MIN_MANUAL_TRANSACTION_SEARCH_LENGTH) {
422
- const hadActiveSearch = draft.bulkUpload.manualSearch.searchQuery.trim().length >=
423
- missingReceiptsViewState_1.MIN_MANUAL_TRANSACTION_SEARCH_LENGTH ||
424
- draft.bulkUpload.manualSearch.results.length > 0;
425
- draft.bulkUpload.manualSearch = exports.initialBulkUploadState.manualSearch;
426
- if (hadActiveSearch) {
427
- draft.bulkUpload.manualSearchUiResetKey += 1;
428
- }
429
- return;
430
- }
431
- draft.bulkUpload.manualSearch.searchQuery = query;
432
- if (isLoadMore) {
433
- draft.bulkUpload.manualSearch.isLoadingMore = true;
434
- }
435
- else {
436
- draft.bulkUpload.manualSearch.isLoadingMore = false;
437
- draft.bulkUpload.manualSearch.results = [];
438
- draft.bulkUpload.manualSearch.nextPageToken = null;
439
- draft.bulkUpload.manualSearch.totalCount = 0;
440
- draft.bulkUpload.manualSearch.fetchState = {
441
- fetchState: 'In-Progress',
442
- error: undefined,
443
- };
444
- }
445
- },
446
- prepare(query, pageToken) {
447
- return { payload: { query, pageToken: pageToken ?? undefined } };
448
- },
449
- },
450
- searchTransactionsForManualMatchSuccess(draft, action) {
451
- const { append, nextPageToken, results, totalCount } = action.payload;
452
- if (append) {
453
- const merged = [...draft.bulkUpload.manualSearch.results, ...results];
454
- const byId = new Map(merged.map((result) => [result.transactionId, result]));
455
- draft.bulkUpload.manualSearch.results = Array.from(byId.values());
456
- }
457
- else {
458
- draft.bulkUpload.manualSearch.results = results;
459
- }
460
- draft.bulkUpload.manualSearch.nextPageToken = nextPageToken;
461
- draft.bulkUpload.manualSearch.totalCount = totalCount;
462
- draft.bulkUpload.manualSearch.isLoadingMore = false;
463
- draft.bulkUpload.manualSearch.fetchState = {
464
- fetchState: 'Completed',
465
- error: undefined,
466
- };
467
- },
468
- searchTransactionsForManualMatchFailure(draft, action) {
469
- draft.bulkUpload.manualSearch.isLoadingMore = false;
470
- draft.bulkUpload.manualSearch.fetchState = {
471
- fetchState: 'Error',
472
- error: action.payload.error,
473
- };
474
- },
475
- clearManualSearchResults(draft) {
476
- draft.bulkUpload.manualSearch = exports.initialBulkUploadState.manualSearch;
477
- draft.bulkUpload.manualSearchUiResetKey += 1;
478
- },
479
- acknowledgeBulkUploadConfirmMatchComplete(draft) {
480
- draft.bulkUpload.confirmMatchStatus = {
481
- fetchState: 'Not-Started',
482
- error: undefined,
483
- };
484
- },
485
- // -- Completed Transactions Actions --
486
- fetchCompletedTransactions: {
487
- reducer(draft, action) {
488
- const { pageToken } = action.payload;
489
- if (pageToken != null) {
490
- const periods = draft.bulkUpload.completedTransactionsByPeriod;
491
- for (const entry of Object.values(periods)) {
492
- if (entry.nextPageToken === pageToken) {
493
- entry.fetchState = {
494
- fetchState: 'In-Progress',
495
- error: undefined,
496
- };
497
- break;
498
- }
499
- }
500
- }
501
- },
502
- prepare(pageToken, cacheOverride) {
503
- return { payload: { pageToken, cacheOverride } };
504
- },
505
- },
506
- fetchCompletedTransactionsSuccess(draft, action) {
507
- const { transactionIds, nextPageToken, totalCount, selectedPeriod, isInitialLoad, } = action.payload;
508
- const periodId = (0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod);
509
- const cacheKey = (0, exports.getCompletedTransactionsCacheKey)(periodId, draft.bulkUpload.sortKey, draft.bulkUpload.sortOrder, draft.bulkUpload.completedSubTab);
510
- if (isInitialLoad) {
511
- draft.bulkUpload.completedTransactionsByPeriod[cacheKey] = {
512
- transactionIds,
513
- nextPageToken,
514
- totalCount,
515
- fetchState: { fetchState: 'Completed', error: undefined },
516
- };
517
- }
518
- else {
519
- const existing = draft.bulkUpload.completedTransactionsByPeriod[cacheKey];
520
- if (existing != null) {
521
- existing.transactionIds.push(...transactionIds);
522
- existing.nextPageToken = nextPageToken;
523
- existing.totalCount = totalCount;
524
- existing.fetchState = { fetchState: 'Completed', error: undefined };
525
- }
526
- else {
527
- draft.bulkUpload.completedTransactionsByPeriod[cacheKey] = {
528
- transactionIds,
529
- nextPageToken,
530
- totalCount,
531
- fetchState: { fetchState: 'Completed', error: undefined },
532
- };
533
- }
534
- }
535
- },
536
- fetchCompletedTransactionsFailure(draft, action) {
537
- const periodId = (0, timePeriod_1.toMonthYearPeriodId)(action.payload.selectedPeriod);
538
- const cacheKey = (0, exports.getCompletedTransactionsCacheKey)(periodId, draft.bulkUpload.sortKey, draft.bulkUpload.sortOrder, draft.bulkUpload.completedSubTab);
539
- const existing = draft.bulkUpload.completedTransactionsByPeriod[cacheKey];
540
- if (existing != null) {
541
- existing.fetchState = {
542
- fetchState: 'Error',
543
- error: action.payload.error,
544
- };
545
- }
546
- else {
547
- draft.bulkUpload.completedTransactionsByPeriod[cacheKey] = {
548
- fetchState: { fetchState: 'Error', error: action.payload.error },
549
- nextPageToken: null,
550
- totalCount: 0,
551
- transactionIds: [],
552
- };
553
- }
554
- },
555
127
  },
556
128
  });
557
- _a = expenseAutomationMissingReceiptsView.actions, exports.fetchMissingReceipts = _a.fetchMissingReceipts, exports.fetchMissingReceiptsSuccess = _a.fetchMissingReceiptsSuccess, exports.fetchMissingReceiptsFailure = _a.fetchMissingReceiptsFailure, exports.uploadMissingReceiptSuccess = _a.uploadMissingReceiptSuccess, exports.updateMissingReceiptUploadState = _a.updateMissingReceiptUploadState, exports.updateMissingReceiptsUIState = _a.updateMissingReceiptsUIState, exports.markMissingReceiptAsDone = _a.markMissingReceiptAsDone, exports.clearExpenseAutomationMissingReceiptsView = _a.clearExpenseAutomationMissingReceiptsView,
558
- // Bulk Upload
559
- exports.bulkUploadReceipts = _a.bulkUploadReceipts, exports.updateBulkUploadProgress = _a.updateBulkUploadProgress, exports.bulkUploadReceiptsSuccess = _a.bulkUploadReceiptsSuccess, exports.bulkUploadReceiptsFailure = _a.bulkUploadReceiptsFailure, exports.bulkUploadAutomatchingTimedOut = _a.bulkUploadAutomatchingTimedOut, exports.pusherBatchStatusUpdate = _a.pusherBatchStatusUpdate, exports.requestMissingReceiptsTabNavigation = _a.requestMissingReceiptsTabNavigation, exports.clearMissingReceiptsTabNavigation = _a.clearMissingReceiptsTabNavigation, exports.fetchBulkUploadBatchDetailsSuccess = _a.fetchBulkUploadBatchDetailsSuccess, exports.fetchBulkUploadBatchDetailsFailure = _a.fetchBulkUploadBatchDetailsFailure, exports.storeBatchDetails = _a.storeBatchDetails, exports.batchDetailFetchFailed = _a.batchDetailFetchFailed, exports.setInitialBatchDetailsLoading = _a.setInitialBatchDetailsLoading, exports.fetchMoreBatchDetails = _a.fetchMoreBatchDetails, exports.fetchMoreBatchDetailsComplete = _a.fetchMoreBatchDetailsComplete, exports.fetchMoreBatchDetailsFailure = _a.fetchMoreBatchDetailsFailure, exports.fetchBulkUploadBatches = _a.fetchBulkUploadBatches, exports.fetchBulkUploadBatchesSuccess = _a.fetchBulkUploadBatchesSuccess, exports.fetchBulkUploadBatchesFailure = _a.fetchBulkUploadBatchesFailure, exports.confirmBulkUploadMatch = _a.confirmBulkUploadMatch, exports.confirmBulkUploadMatchSuccess = _a.confirmBulkUploadMatchSuccess, exports.confirmBulkUploadMatchFailure = _a.confirmBulkUploadMatchFailure, exports.setBulkUploadResultsTab = _a.setBulkUploadResultsTab, exports.setBulkUploadCompletedSubTab = _a.setBulkUploadCompletedSubTab, exports.setBulkUploadSortConfig = _a.setBulkUploadSortConfig, exports.clearBulkUpload = _a.clearBulkUpload, exports.searchTransactionsForManualMatch = _a.searchTransactionsForManualMatch, exports.searchTransactionsForManualMatchSuccess = _a.searchTransactionsForManualMatchSuccess, exports.searchTransactionsForManualMatchFailure = _a.searchTransactionsForManualMatchFailure, exports.clearManualSearchResults = _a.clearManualSearchResults, exports.acknowledgeBulkUploadConfirmMatchComplete = _a.acknowledgeBulkUploadConfirmMatchComplete,
560
- // Completed Transactions
561
- exports.fetchCompletedTransactions = _a.fetchCompletedTransactions, exports.fetchCompletedTransactionsSuccess = _a.fetchCompletedTransactionsSuccess, exports.fetchCompletedTransactionsFailure = _a.fetchCompletedTransactionsFailure;
129
+ _a = expenseAutomationMissingReceiptsView.actions, exports.fetchMissingReceipts = _a.fetchMissingReceipts, exports.fetchMissingReceiptsSuccess = _a.fetchMissingReceiptsSuccess, exports.fetchMissingReceiptsFailure = _a.fetchMissingReceiptsFailure, exports.uploadMissingReceiptSuccess = _a.uploadMissingReceiptSuccess, exports.updateMissingReceiptUploadState = _a.updateMissingReceiptUploadState, exports.updateMissingReceiptsUIState = _a.updateMissingReceiptsUIState, exports.markMissingReceiptAsDone = _a.markMissingReceiptAsDone, exports.clearExpenseAutomationMissingReceiptsView = _a.clearExpenseAutomationMissingReceiptsView;
562
130
  exports.default = expenseAutomationMissingReceiptsView.reducer;
@@ -1,4 +1,4 @@
1
- import { FetchState, FetchStateAndError, ID, UpdateType } from '../../../commonStateTypes/common';
1
+ import { FetchState, ID } from '../../../commonStateTypes/common';
2
2
  import { COTTransactionTrackingByTransactionId, RecommendationWithCOT } from '../../../commonStateTypes/recommendationBase';
3
3
  import { MonthYearPeriod, TimePeriod } from '../../../commonStateTypes/timePeriod';
4
4
  import { PageToken } from '../../../commonStateTypes/viewAndReport/viewAndReport';
@@ -7,7 +7,7 @@ import { ClassBase } from '../../../entity/class/classState';
7
7
  import { CustomerBase } from '../../../entity/customer/customerState';
8
8
  import { Entity } from '../../../entity/genericEntity/entity';
9
9
  import { RecommendationWithCOTByLineId, TransactionID } from '../../../entity/transaction/stateTypes/transaction';
10
- import { SupportedTransaction, SupportedTransactionPayload, SupportedTransactionWithCOT } from '../../../entity/transaction/transactionState';
10
+ import { SupportedTransaction, SupportedTransactionWithCOT } from '../../../entity/transaction/transactionState';
11
11
  import { VendorBase } from '../../../entity/vendor/vendorState';
12
12
  import { ZeniAPIStatus } from '../../../responsePayload';
13
13
  import { UncategorizedAccounts } from '../../accountList/accountListSelector';
@@ -158,14 +158,6 @@ export declare const fetchTransactionCategorization: import("@reduxjs/toolkit").
158
158
  }, "expenseAutomationTransactionsView/syncTransactionCategorizationFromDetailSave", never, never>, backgroundRefetchReviewTab: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, isUncategorizedExpenseCategoryEnabled?: boolean | undefined], {
159
159
  period: TimePeriod;
160
160
  isUncategorizedExpenseCategoryEnabled: boolean | undefined;
161
- }, "expenseAutomationTransactionsView/backgroundRefetchReviewTab", never, never>, updateTransactionCategorizationUploadReceiptState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionId: string, fetchStatus: FetchStateAndError], {
162
- selectedTab: "review" | "autoCategorized";
163
- transactionId: string;
164
- fetchStatus: FetchStateAndError;
165
- }, "expenseAutomationTransactionsView/updateTransactionCategorizationUploadReceiptState", never, never>, uploadTransactionCategorizationReceiptSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedTab: "review" | "autoCategorized", transactionPayload: SupportedTransactionPayload, updateType?: UpdateType | undefined], {
166
- selectedTab: "review" | "autoCategorized";
167
- transactionPayload: SupportedTransactionPayload;
168
- updateType: UpdateType;
169
- }, "expenseAutomationTransactionsView/uploadTransactionCategorizationReceiptSuccess", never, never>;
161
+ }, "expenseAutomationTransactionsView/backgroundRefetchReviewTab", never, never>;
170
162
  declare const _default: import("redux").Reducer<TransactionsViewState>;
171
163
  export default _default;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  var _a;
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.uploadTransactionCategorizationReceiptSuccess = exports.updateTransactionCategorizationUploadReceiptState = exports.backgroundRefetchReviewTab = exports.syncTransactionCategorizationFromDetailSave = exports.updateSelectedTransactionId = exports.setEntityRecommendationForLineIdsForCategorization = exports.clearExpenseAutomationTransactionsView = exports.clearExpenseAutomationTransactionsViewPerTabView = exports.updateSelectedCheckboxTransactionIds = exports.fetchTransactionCategorizationView = exports.resetOtherTabsFetchState = exports.fetchTransactionCategorizationSuccess = exports.updateTotalCountForTransactionCategorization = exports.setAllItemsToCategoryClassInLocalDataForCategorization = exports.updateSelectedCustomerForTransaction = exports.updateSelectedVendorForTransaction = exports.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = exports.markTransactionAsNotMiscategorized = exports.updateTransactionCategorizationSaveStatus = exports.updateCurrentSelectedTransactionCategorizationTab = exports.updateTransactionCategorization = exports.saveTransactionCategorization = exports.fetchTransactionCategorizationFailure = exports.saveTransactionCategorizationLocalData = exports.initializeTransactionCategorizationViewLocalData = exports.updateTransactionCategorizationUIState = exports.fetchTransactionCategorization = exports.initialState = exports.initialTransactionTabViewState = void 0;
7
+ exports.backgroundRefetchReviewTab = exports.syncTransactionCategorizationFromDetailSave = exports.updateSelectedTransactionId = exports.setEntityRecommendationForLineIdsForCategorization = exports.clearExpenseAutomationTransactionsView = exports.clearExpenseAutomationTransactionsViewPerTabView = exports.updateSelectedCheckboxTransactionIds = exports.fetchTransactionCategorizationView = exports.resetOtherTabsFetchState = exports.fetchTransactionCategorizationSuccess = exports.updateTotalCountForTransactionCategorization = exports.setAllItemsToCategoryClassInLocalDataForCategorization = exports.updateSelectedCustomerForTransaction = exports.updateSelectedVendorForTransaction = exports.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = exports.markTransactionAsNotMiscategorized = exports.updateTransactionCategorizationSaveStatus = exports.updateCurrentSelectedTransactionCategorizationTab = exports.updateTransactionCategorization = exports.saveTransactionCategorization = exports.fetchTransactionCategorizationFailure = exports.saveTransactionCategorizationLocalData = exports.initializeTransactionCategorizationViewLocalData = exports.updateTransactionCategorizationUIState = exports.fetchTransactionCategorization = exports.initialState = exports.initialTransactionTabViewState = void 0;
8
8
  const toolkit_1 = require("@reduxjs/toolkit");
9
9
  const get_1 = __importDefault(require("lodash/get"));
10
10
  const uniq_1 = __importDefault(require("lodash/uniq"));
@@ -43,7 +43,6 @@ exports.initialTransactionTabViewState = {
43
43
  transactionIdsBySelectedPeriod: {},
44
44
  selectedCheckBoxTransactionIds: [],
45
45
  transactionIdsWithUnsavedData: [],
46
- uploadReceiptStatusById: {},
47
46
  selectedTransactionId: undefined,
48
47
  selectedTransactionLineId: undefined,
49
48
  };
@@ -707,27 +706,6 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
707
706
  clearExpenseAutomationTransactionsView(draft) {
708
707
  Object.assign(draft, exports.initialState);
709
708
  },
710
- updateTransactionCategorizationUploadReceiptState: {
711
- reducer(draft, action) {
712
- const { transactionId, fetchStatus, selectedTab } = action.payload;
713
- draft.transactionCategorizationView[selectedTab].uploadReceiptStatusById[transactionId] = fetchStatus;
714
- },
715
- prepare(selectedTab, transactionId, fetchStatus) {
716
- return { payload: { selectedTab, transactionId, fetchStatus } };
717
- },
718
- },
719
- uploadTransactionCategorizationReceiptSuccess: {
720
- reducer(draft, action) {
721
- const { transactionPayload, selectedTab } = action.payload;
722
- draft.transactionCategorizationView[selectedTab].uploadReceiptStatusById[transactionPayload.transaction_id] = {
723
- fetchState: 'Completed',
724
- error: undefined,
725
- };
726
- },
727
- prepare(selectedTab, transactionPayload, updateType = 'merge') {
728
- return { payload: { selectedTab, transactionPayload, updateType } };
729
- },
730
- },
731
709
  syncTransactionCategorizationFromDetailSave: {
732
710
  prepare(transactionId, updatedTransaction, pendingReviewLineIds, uncategorizedIncomeExpense, isUncategorizedExpenseCategoryEnabled) {
733
711
  return {
@@ -799,5 +777,5 @@ const expenseAutomationTransactionsView = (0, toolkit_1.createSlice)({
799
777
  },
800
778
  },
801
779
  });
802
- _a = expenseAutomationTransactionsView.actions, exports.fetchTransactionCategorization = _a.fetchTransactionCategorization, exports.updateTransactionCategorizationUIState = _a.updateTransactionCategorizationUIState, exports.initializeTransactionCategorizationViewLocalData = _a.initializeTransactionCategorizationViewLocalData, exports.saveTransactionCategorizationLocalData = _a.saveTransactionCategorizationLocalData, exports.fetchTransactionCategorizationFailure = _a.fetchTransactionCategorizationFailure, exports.saveTransactionCategorization = _a.saveTransactionCategorization, exports.updateTransactionCategorization = _a.updateTransactionCategorization, exports.updateCurrentSelectedTransactionCategorizationTab = _a.updateCurrentSelectedTransactionCategorizationTab, exports.updateTransactionCategorizationSaveStatus = _a.updateTransactionCategorizationSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = _a.updateStatusForTransactionNotMiscategorizedUpdateForCategorization, exports.updateSelectedVendorForTransaction = _a.updateSelectedVendorForTransaction, exports.updateSelectedCustomerForTransaction = _a.updateSelectedCustomerForTransaction, exports.setAllItemsToCategoryClassInLocalDataForCategorization = _a.setAllItemsToCategoryClassInLocalDataForCategorization, exports.updateTotalCountForTransactionCategorization = _a.updateTotalCountForTransactionCategorization, exports.fetchTransactionCategorizationSuccess = _a.fetchTransactionCategorizationSuccess, exports.resetOtherTabsFetchState = _a.resetOtherTabsFetchState, exports.fetchTransactionCategorizationView = _a.fetchTransactionCategorizationView, exports.updateSelectedCheckboxTransactionIds = _a.updateSelectedCheckboxTransactionIds, exports.clearExpenseAutomationTransactionsViewPerTabView = _a.clearExpenseAutomationTransactionsViewPerTabView, exports.clearExpenseAutomationTransactionsView = _a.clearExpenseAutomationTransactionsView, exports.setEntityRecommendationForLineIdsForCategorization = _a.setEntityRecommendationForLineIdsForCategorization, exports.updateSelectedTransactionId = _a.updateSelectedTransactionId, exports.syncTransactionCategorizationFromDetailSave = _a.syncTransactionCategorizationFromDetailSave, exports.backgroundRefetchReviewTab = _a.backgroundRefetchReviewTab, exports.updateTransactionCategorizationUploadReceiptState = _a.updateTransactionCategorizationUploadReceiptState, exports.uploadTransactionCategorizationReceiptSuccess = _a.uploadTransactionCategorizationReceiptSuccess;
780
+ _a = expenseAutomationTransactionsView.actions, exports.fetchTransactionCategorization = _a.fetchTransactionCategorization, exports.updateTransactionCategorizationUIState = _a.updateTransactionCategorizationUIState, exports.initializeTransactionCategorizationViewLocalData = _a.initializeTransactionCategorizationViewLocalData, exports.saveTransactionCategorizationLocalData = _a.saveTransactionCategorizationLocalData, exports.fetchTransactionCategorizationFailure = _a.fetchTransactionCategorizationFailure, exports.saveTransactionCategorization = _a.saveTransactionCategorization, exports.updateTransactionCategorization = _a.updateTransactionCategorization, exports.updateCurrentSelectedTransactionCategorizationTab = _a.updateCurrentSelectedTransactionCategorizationTab, exports.updateTransactionCategorizationSaveStatus = _a.updateTransactionCategorizationSaveStatus, exports.markTransactionAsNotMiscategorized = _a.markTransactionAsNotMiscategorized, exports.updateStatusForTransactionNotMiscategorizedUpdateForCategorization = _a.updateStatusForTransactionNotMiscategorizedUpdateForCategorization, exports.updateSelectedVendorForTransaction = _a.updateSelectedVendorForTransaction, exports.updateSelectedCustomerForTransaction = _a.updateSelectedCustomerForTransaction, exports.setAllItemsToCategoryClassInLocalDataForCategorization = _a.setAllItemsToCategoryClassInLocalDataForCategorization, exports.updateTotalCountForTransactionCategorization = _a.updateTotalCountForTransactionCategorization, exports.fetchTransactionCategorizationSuccess = _a.fetchTransactionCategorizationSuccess, exports.resetOtherTabsFetchState = _a.resetOtherTabsFetchState, exports.fetchTransactionCategorizationView = _a.fetchTransactionCategorizationView, exports.updateSelectedCheckboxTransactionIds = _a.updateSelectedCheckboxTransactionIds, exports.clearExpenseAutomationTransactionsViewPerTabView = _a.clearExpenseAutomationTransactionsViewPerTabView, exports.clearExpenseAutomationTransactionsView = _a.clearExpenseAutomationTransactionsView, exports.setEntityRecommendationForLineIdsForCategorization = _a.setEntityRecommendationForLineIdsForCategorization, exports.updateSelectedTransactionId = _a.updateSelectedTransactionId, exports.syncTransactionCategorizationFromDetailSave = _a.syncTransactionCategorizationFromDetailSave, exports.backgroundRefetchReviewTab = _a.backgroundRefetchReviewTab;
803
781
  exports.default = expenseAutomationTransactionsView.reducer;
@@ -1,77 +1,9 @@
1
1
  import { CompletionStatusType, FetchStateAndError, ID } from '../../../commonStateTypes/common';
2
- import { SortOrder } from '../../../commonStateTypes/selectorTypes/sortOrderTypes';
3
2
  import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
4
3
  import { SupportedTransaction } from '../../../entity/transaction/transactionState';
5
- import type { BatchFileStatus, BatchListItem, BatchStatus, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, CompletedSubTab, ManualSearchState, MatchSource, MissingReceiptsViewUIState } from '../types/missingReceiptsViewState';
6
- export interface CompletedTransactionsSelectorData {
7
- fetchState: FetchStateAndError;
8
- nextPageToken: string | null;
9
- totalCount: number;
10
- transactions: SupportedTransaction[];
11
- }
12
- export interface ResolvedCandidate {
13
- matchScore: number;
14
- transaction: SupportedTransaction;
15
- }
16
- export interface ResolvedBatchFile {
17
- attachmentId: ID;
18
- batchId: ID;
19
- fileDownloadUrl: string | null;
20
- fileId: ID;
21
- filename: string;
22
- filePreviewUrl: string | null;
23
- status: BatchFileStatus;
24
- candidates?: ResolvedCandidate[];
25
- matchedTransaction?: SupportedTransaction;
26
- matchSource?: MatchSource;
27
- }
28
- export interface BulkUploadSelectorData {
29
- batchDetails: ResolvedBatchDetails | undefined;
30
- batchDetailsPaginationState: FetchStateAndError;
31
- batchList: BatchListItem[];
32
- batchListFetchState: FetchStateAndError;
33
- batchStatus: BatchStatus | undefined;
34
- completedSubTab: CompletedSubTab;
35
- completedTransactions: CompletedTransactionsSelectorData;
36
- confirmMatchStatus: FetchStateAndError;
37
- currentResultsTab: BulkUploadResultsTab;
38
- hasMoreBatchDetails: boolean;
39
- manualSearch: ManualSearchState;
40
- /** Bumps when manual search state is cleared — remount manual search inputs. */
41
- manualSearchUiResetKey: number;
42
- matchedFiles: ResolvedBatchFile[];
43
- pastBatches: BatchListItem[];
44
- pastUnmatchedFiles: ResolvedBatchFile[];
45
- phase: BulkUploadPhase;
46
- progress: {
47
- percentage: number;
48
- processed: number;
49
- total: number;
50
- };
51
- sortKey: BulkUploadSortKey;
52
- sortOrder: SortOrder;
53
- unmatchedFiles: ResolvedBatchFile[];
54
- uploadProgress: number;
55
- uploadStatus: FetchStateAndError;
56
- }
57
- export interface ResolvedBatchDetails {
58
- batchId: ID;
59
- createdAt: string;
60
- files: ResolvedBatchFile[];
61
- status: string;
62
- summary: {
63
- failed: number;
64
- matched: number;
65
- noMatch: number;
66
- possibleMatches: number;
67
- total: number;
68
- };
69
- }
4
+ import { MissingReceiptsViewUIState } from '../types/missingReceiptsViewState';
70
5
  export interface ExpenseAutomationMissingReceiptsViewSelector extends SelectorView {
71
- bulkUpload: BulkUploadSelectorData;
72
6
  completionStatus: CompletionStatusType;
73
- /** When set, UI should switch bulk-upload sub-tab once (e.g. Unmatched on batch completion). */
74
- pendingMissingReceiptsTabNavigation: BulkUploadResultsTab | null;
75
7
  refreshStatus: FetchStateAndError;
76
8
  transactions: SupportedTransaction[];
77
9
  uiState: MissingReceiptsViewUIState;
@@ -28,7 +28,6 @@ export interface ExpenseAutomationTransactionViewSelector extends SelectorView {
28
28
  transactions: SupportedTransactionWithCOT[];
29
29
  uiState: TransactionsViewUIState;
30
30
  uncategorizedAccounts: UncategorizedAccounts;
31
- uploadReceiptStatusById: Record<ID, FetchStateAndError>;
32
31
  selectedTransactionId?: ID;
33
32
  selectedTransactionLineId?: ID;
34
33
  }
@@ -1,3 +1,3 @@
1
1
  import { RootState } from '../../../reducer';
2
- import type { ExpenseAutomationMissingReceiptsViewSelector } from '../selectorTypes/missingReceiptsSelectorTypes';
2
+ import { ExpenseAutomationMissingReceiptsViewSelector } from '../selectorTypes/missingReceiptsSelectorTypes';
3
3
  export declare function getExpenseAutomationMissingReceiptsView(state: RootState): ExpenseAutomationMissingReceiptsViewSelector;