@zeniai/client-epic-state 4.19.97-betaRR0 → 4.19.97

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 (156) hide show
  1. package/lib/entity/account/accountPayload.d.ts +0 -2
  2. package/lib/entity/account/accountPayload.js +0 -2
  3. package/lib/entity/account/accountState.d.ts +0 -2
  4. package/lib/entity/depositAccount/depositAccount.d.ts +1 -1
  5. package/lib/entity/depositAccount/depositAccount.js +1 -8
  6. package/lib/entity/reimbursement/reimbursementPayload.d.ts +0 -2
  7. package/lib/entity/reimbursement/reimbursementPayload.js +0 -7
  8. package/lib/entity/reimbursement/reimbursementState.d.ts +0 -2
  9. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  10. package/lib/entity/snackbar/snackbarTypes.js +0 -1
  11. package/lib/entity/task/taskPayload.d.ts +0 -1
  12. package/lib/entity/task/taskPayload.js +0 -1
  13. package/lib/entity/task/taskState.d.ts +0 -1
  14. package/lib/epic.d.ts +1 -17
  15. package/lib/epic.js +1 -17
  16. package/lib/esm/entity/account/accountPayload.js +0 -2
  17. package/lib/esm/entity/depositAccount/depositAccount.js +1 -8
  18. package/lib/esm/entity/reimbursement/reimbursementPayload.js +0 -7
  19. package/lib/esm/entity/snackbar/snackbarTypes.js +0 -1
  20. package/lib/esm/entity/task/taskPayload.js +0 -1
  21. package/lib/esm/epic.js +1 -17
  22. package/lib/esm/index.js +5 -14
  23. package/lib/esm/reducer.js +0 -9
  24. package/lib/esm/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +3 -8
  25. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +5 -7
  26. package/lib/esm/view/expenseAutomationView/payload/missingReceiptsPayload.js +1 -189
  27. package/lib/esm/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -433
  28. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +1 -23
  29. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +1 -244
  30. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -2
  31. package/lib/esm/view/expenseAutomationView/types/missingReceiptsViewState.js +0 -44
  32. package/lib/esm/view/expenseAutomationView/types/transactionsViewState.js +1 -2
  33. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.js +1 -14
  34. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  35. package/lib/esm/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +0 -1
  36. package/lib/esm/view/taskManager/taskListView/taskListSelector.js +1 -3
  37. package/lib/esm/view/userListView/fetchUserListByTypeEpic.js +0 -11
  38. package/lib/esm/zeniAPI.js +2 -0
  39. package/lib/index.d.ts +6 -14
  40. package/lib/index.js +32 -95
  41. package/lib/reducer.d.ts +0 -9
  42. package/lib/reducer.js +0 -9
  43. package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +3 -8
  44. package/lib/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +5 -7
  45. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  46. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.d.ts +0 -118
  47. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.js +0 -201
  48. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +3 -76
  49. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -434
  50. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +3 -11
  51. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +2 -24
  52. package/lib/view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes.d.ts +1 -69
  53. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +0 -1
  54. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.d.ts +1 -1
  55. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +0 -243
  56. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -2
  57. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +0 -142
  58. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.js +1 -54
  59. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -2
  60. package/lib/view/expenseAutomationView/types/transactionsViewState.js +1 -2
  61. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.d.ts +1 -4
  62. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.js +2 -15
  63. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  64. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.d.ts +0 -1
  65. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +0 -1
  66. package/lib/view/taskManager/taskListView/taskListSelector.d.ts +0 -2
  67. package/lib/view/taskManager/taskListView/taskListSelector.js +1 -3
  68. package/lib/view/userListView/fetchUserListByTypeEpic.d.ts +1 -3
  69. package/lib/view/userListView/fetchUserListByTypeEpic.js +0 -11
  70. package/lib/view/userListView/userListViewPayload.d.ts +0 -2
  71. package/lib/zeniAPI.js +2 -0
  72. package/package.json +2 -2
  73. package/lib/entity/userGroups/userGroupsPayload.d.ts +0 -7
  74. package/lib/entity/userGroups/userGroupsPayload.js +0 -10
  75. package/lib/entity/userGroups/userGroupsReducer.d.ts +0 -8
  76. package/lib/entity/userGroups/userGroupsReducer.js +0 -29
  77. package/lib/entity/userGroups/userGroupsSelector.d.ts +0 -4
  78. package/lib/entity/userGroups/userGroupsSelector.js +0 -12
  79. package/lib/entity/userGroups/userGroupsState.d.ts +0 -9
  80. package/lib/entity/userGroups/userGroupsState.js +0 -2
  81. package/lib/esm/entity/userGroups/userGroupsPayload.js +0 -7
  82. package/lib/esm/entity/userGroups/userGroupsReducer.js +0 -25
  83. package/lib/esm/entity/userGroups/userGroupsSelector.js +0 -8
  84. package/lib/esm/entity/userGroups/userGroupsState.js +0 -1
  85. package/lib/esm/view/expenseAutomationView/bulkUploadTiming.js +0 -10
  86. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +0 -29
  87. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +0 -49
  88. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +0 -40
  89. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +0 -47
  90. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +0 -61
  91. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +0 -33
  92. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +0 -56
  93. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +0 -77
  94. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +0 -79
  95. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +0 -24
  96. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingDataRequests.js +0 -58
  97. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingPayload.js +0 -1
  98. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingReducer.js +0 -103
  99. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingSelector.js +0 -63
  100. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingState.js +0 -5
  101. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/createAllAiRecommendedCardsEpic.js +0 -62
  102. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/fetchAiCardRecommendationEpic.js +0 -4
  103. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/fetchChainOfThoughtsForAiCardRecommendationEpic.js +0 -4
  104. package/lib/esm/view/spendManagement/chargeCards/cardsOnboarding/startAiCardAgentDrawerDataLoadEpic.js +0 -10
  105. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/fetchCardsOnboardingPageEpic.js +0 -36
  106. package/lib/esm/view/userGroupListView/userGroupListViewReducer.js +0 -65
  107. package/lib/esm/view/userGroupListView/userGroupListViewSelector.js +0 -16
  108. package/lib/esm/view/userGroupListView/userGroupListViewState.js +0 -1
  109. package/lib/view/expenseAutomationView/bulkUploadTiming.d.ts +0 -10
  110. package/lib/view/expenseAutomationView/bulkUploadTiming.js +0 -13
  111. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.d.ts +0 -18
  112. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +0 -33
  113. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.d.ts +0 -7
  114. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +0 -53
  115. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.d.ts +0 -8
  116. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +0 -44
  117. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.d.ts +0 -7
  118. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +0 -51
  119. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.d.ts +0 -8
  120. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +0 -65
  121. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.d.ts +0 -8
  122. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +0 -37
  123. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.d.ts +0 -9
  124. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +0 -61
  125. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.d.ts +0 -14
  126. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +0 -81
  127. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.d.ts +0 -25
  128. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +0 -85
  129. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.d.ts +0 -7
  130. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +0 -28
  131. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingDataRequests.d.ts +0 -7
  132. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingDataRequests.js +0 -62
  133. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingPayload.d.ts +0 -34
  134. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingPayload.js +0 -2
  135. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingReducer.d.ts +0 -7
  136. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingReducer.js +0 -107
  137. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingSelector.d.ts +0 -16
  138. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingSelector.js +0 -67
  139. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingState.d.ts +0 -63
  140. package/lib/view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingState.js +0 -8
  141. package/lib/view/spendManagement/chargeCards/cardsOnboarding/createAllAiRecommendedCardsEpic.d.ts +0 -20
  142. package/lib/view/spendManagement/chargeCards/cardsOnboarding/createAllAiRecommendedCardsEpic.js +0 -66
  143. package/lib/view/spendManagement/chargeCards/cardsOnboarding/fetchAiCardRecommendationEpic.d.ts +0 -8
  144. package/lib/view/spendManagement/chargeCards/cardsOnboarding/fetchAiCardRecommendationEpic.js +0 -8
  145. package/lib/view/spendManagement/chargeCards/cardsOnboarding/fetchChainOfThoughtsForAiCardRecommendationEpic.d.ts +0 -13
  146. package/lib/view/spendManagement/chargeCards/cardsOnboarding/fetchChainOfThoughtsForAiCardRecommendationEpic.js +0 -8
  147. package/lib/view/spendManagement/chargeCards/cardsOnboarding/startAiCardAgentDrawerDataLoadEpic.d.ts +0 -13
  148. package/lib/view/spendManagement/chargeCards/cardsOnboarding/startAiCardAgentDrawerDataLoadEpic.js +0 -14
  149. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchCardsOnboardingPageEpic.d.ts +0 -12
  150. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchCardsOnboardingPageEpic.js +0 -40
  151. package/lib/view/userGroupListView/userGroupListViewReducer.d.ts +0 -23
  152. package/lib/view/userGroupListView/userGroupListViewReducer.js +0 -69
  153. package/lib/view/userGroupListView/userGroupListViewSelector.d.ts +0 -7
  154. package/lib/view/userGroupListView/userGroupListViewSelector.js +0 -20
  155. package/lib/view/userGroupListView/userGroupListViewState.d.ts +0 -8
  156. package/lib/view/userGroupListView/userGroupListViewState.js +0 -2
@@ -1,11 +1,8 @@
1
1
  import orderBy from 'lodash/orderBy';
2
2
  import { toMonthYearPeriodId } from '../../../commonStateTypes/timePeriod';
3
3
  import { getCurrentTenant } from '../../../entity/tenant/tenantSelector';
4
- import { getSupportedTransactionById, getSupportedTransactionsByIds, } from '../../../entity/transaction/transactionSelector';
5
- import { isBatchListStatusCompleted } from '../payload/missingReceiptsPayload';
6
- import { getCompletedTransactionsCacheKey } from '../reducers/missingReceiptsViewReducer';
4
+ import { getSupportedTransactionsByIds } from '../../../entity/transaction/transactionSelector';
7
5
  import { getAllSteps } from '../selectorTypes/expenseAutomationViewSelectorTypes';
8
- import { isUnmatchedTabFileStatus, } from '../types/missingReceiptsViewState';
9
6
  export function getExpenseAutomationMissingReceiptsView(state) {
10
7
  const { expenseAutomationMissingReceiptsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, } = state;
11
8
  const currentTenant = getCurrentTenant(state);
@@ -50,131 +47,6 @@ export function getExpenseAutomationMissingReceiptsView(state) {
50
47
  const completionStatus = missingReceiptsCompletionStatus != null
51
48
  ? missingReceiptsCompletionStatus
52
49
  : 'incomplete';
53
- const { bulkUpload, pendingMissingReceiptsTabNavigation } = expenseAutomationMissingReceiptsViewState;
54
- const currentBatchStatus = bulkUpload.currentBatchId != null
55
- ? bulkUpload.batchStatusById[bulkUpload.currentBatchId]
56
- : undefined;
57
- const batchList = monthYearPeriodId != null
58
- ? (bulkUpload.batchListByPeriod[monthYearPeriodId] ?? [])
59
- : [];
60
- /**
61
- * Primary "Unmatched" batch = first completed batch in platform list order, preferring the
62
- * first batch that still has possible_matches/no_match work when any completed batch has such work.
63
- * Batches without details yet: wait if the list row still reports unmatched work; otherwise skip
64
- * so we do not block the whole tab while other rows are not fetched yet.
65
- */
66
- const primaryBatchIdFromDetailsOrder = getPrimaryBatchIdFromBatchListOrder(batchList, bulkUpload.batchDetailsById, bulkUpload.failedBatchDetailIds);
67
- /**
68
- * During upload/matching, prefer `currentBatchId` only when its batch details are loaded,
69
- * completed, and still have unmatched-tab work. Otherwise keep `primaryBatchIdFromDetailsOrder`.
70
- *
71
- * If we pinned to `currentBatchId` as soon as it was absent from the batch list (in-flight
72
- * upload), details are often not loaded yet — `unmatchedFiles` would empty while older batches
73
- * moved to "past", so the primary "Unmatched Receipts" section vanished during auto-matching.
74
- */
75
- const unmatchedSectionBatchId = (() => {
76
- const phase = bulkUpload.phase;
77
- if (phase !== 'matching' && phase !== 'uploading') {
78
- return primaryBatchIdFromDetailsOrder;
79
- }
80
- const currentId = bulkUpload.currentBatchId;
81
- if (currentId == null) {
82
- return primaryBatchIdFromDetailsOrder;
83
- }
84
- const currentDetails = bulkUpload.batchDetailsById[currentId];
85
- if (currentDetails != null &&
86
- currentDetails.status === 'completed' &&
87
- batchDetailsHasUnmatchedWork(currentDetails)) {
88
- return currentId;
89
- }
90
- return primaryBatchIdFromDetailsOrder;
91
- })();
92
- const completedBatchesInApiOrder = batchList.filter((batchListItem) => isBatchListStatusCompleted(batchListItem.status));
93
- const currentBatchDetails = unmatchedSectionBatchId != null
94
- ? bulkUpload.batchDetailsById[unmatchedSectionBatchId]
95
- : undefined;
96
- const resolvedFiles = currentBatchDetails?.files.map((file) => resolveBatchFile(file, currentBatchDetails.batchId, transactionState));
97
- const failedIds = new Set(bulkUpload.failedBatchDetailIds);
98
- const hasMoreBatchDetails = completedBatchesInApiOrder.some((batchListItem) => bulkUpload.batchDetailsById[batchListItem.batchId] == null &&
99
- !failedIds.has(batchListItem.batchId));
100
- const getSortValue = (file) => {
101
- const matchedTransaction = file.matchedTransaction;
102
- if (matchedTransaction == null) {
103
- return null;
104
- }
105
- switch (bulkUpload.sortKey) {
106
- case 'vendor':
107
- return ((matchedTransaction.vendorName ?? matchedTransaction.description)?.toLowerCase() ?? null);
108
- case 'category': {
109
- const line = matchedTransaction.lines?.[0];
110
- return line?.account?.accountName?.toLowerCase() ?? null;
111
- }
112
- case 'class': {
113
- const line = matchedTransaction.lines?.[0];
114
- return line?.class?.className?.toLowerCase() ?? null;
115
- }
116
- case 'date':
117
- return matchedTransaction.date.valueOf();
118
- case 'amount':
119
- return matchedTransaction.amount.amount;
120
- default:
121
- return null;
122
- }
123
- };
124
- const bulkUploadSortDirection = bulkUpload.sortOrder === 'ascending' ? 'asc' : 'desc';
125
- const matchedFiles = orderBy(resolvedFiles?.filter((resolvedFile) => resolvedFile.status === 'exact_match') ?? [], getSortValue, bulkUploadSortDirection);
126
- const unmatchedFiles = orderBy(resolvedFiles?.filter((resolvedFile) => isUnmatchedTabFileStatus(resolvedFile.status)) ?? [], getSortValue, bulkUploadSortDirection);
127
- const progress = currentBatchStatus != null
128
- ? {
129
- ...currentBatchStatus.progress,
130
- percentage: currentBatchStatus.progress.total > 0
131
- ? Math.round((currentBatchStatus.progress.processed /
132
- currentBatchStatus.progress.total) *
133
- 100)
134
- : 0,
135
- }
136
- : { total: 0, processed: 0, percentage: 0 };
137
- const batchListFetchState = bulkUpload.batchListFetchState;
138
- /**
139
- * When primary batch is not resolved yet, still aggregate unmatched files from every batch
140
- * that has details loaded (otherwise past is empty and receipts vanish from the UI).
141
- */
142
- const pastBatches = unmatchedSectionBatchId != null
143
- ? batchList.filter((batchListItem) => batchListItem.batchId !== unmatchedSectionBatchId)
144
- : batchList;
145
- const pastUnmatchedFiles = pastBatches.flatMap((pastBatch) => {
146
- const details = bulkUpload.batchDetailsById[pastBatch.batchId];
147
- if (details == null) {
148
- return [];
149
- }
150
- return details.files
151
- .filter((batchFile) => isUnmatchedTabFileStatus(batchFile.status))
152
- .map((batchFile) => resolveBatchFile(batchFile, pastBatch.batchId, transactionState));
153
- });
154
- const completedTransactionsCacheKey = monthYearPeriodId != null
155
- ? getCompletedTransactionsCacheKey(monthYearPeriodId, bulkUpload.sortKey, bulkUpload.sortOrder, bulkUpload.completedSubTab)
156
- : undefined;
157
- const completedTransactionsForPeriod = completedTransactionsCacheKey != null
158
- ? bulkUpload.completedTransactionsByPeriod[completedTransactionsCacheKey]
159
- : undefined;
160
- const completedTransactionIds = completedTransactionsForPeriod?.transactionIds ?? [];
161
- const resolvedCompletedTransactions = getSupportedTransactionsByIds(transactionState, completedTransactionIds);
162
- const resolvedBatchDetails = currentBatchDetails != null && resolvedFiles != null
163
- ? {
164
- batchId: currentBatchDetails.batchId,
165
- createdAt: currentBatchDetails.createdAt,
166
- files: resolvedFiles,
167
- status: currentBatchDetails.status,
168
- summary: currentBatchDetails.summary,
169
- }
170
- : undefined;
171
- const manualSearchResults = bulkUpload.manualSearch.results.map((result) => {
172
- const transaction = getSupportedTransactionById(transactionState, result.transactionId);
173
- return {
174
- ...result,
175
- vendorLogo: result.vendorLogo ?? transaction?.logo?.href,
176
- };
177
- });
178
50
  return {
179
51
  fetchState,
180
52
  error,
@@ -183,120 +55,5 @@ export function getExpenseAutomationMissingReceiptsView(state) {
183
55
  refreshStatus,
184
56
  transactions: sortedTransactions,
185
57
  completionStatus,
186
- pendingMissingReceiptsTabNavigation: pendingMissingReceiptsTabNavigation ?? null,
187
- bulkUpload: {
188
- phase: bulkUpload.phase,
189
- uploadStatus: bulkUpload.uploadStatus,
190
- batchStatus: currentBatchStatus,
191
- batchDetails: resolvedBatchDetails,
192
- completedSubTab: bulkUpload.completedSubTab,
193
- completedTransactions: {
194
- fetchState: completedTransactionsForPeriod?.fetchState ?? {
195
- fetchState: 'Not-Started',
196
- error: undefined,
197
- },
198
- nextPageToken: completedTransactionsForPeriod?.nextPageToken ?? null,
199
- totalCount: completedTransactionsForPeriod?.totalCount ?? 0,
200
- transactions: resolvedCompletedTransactions,
201
- },
202
- matchedFiles,
203
- unmatchedFiles,
204
- progress,
205
- currentResultsTab: bulkUpload.currentResultsTab,
206
- sortKey: bulkUpload.sortKey,
207
- sortOrder: bulkUpload.sortOrder,
208
- batchList,
209
- batchListFetchState,
210
- pastBatches,
211
- pastUnmatchedFiles,
212
- confirmMatchStatus: bulkUpload.confirmMatchStatus,
213
- manualSearchUiResetKey: bulkUpload.manualSearchUiResetKey,
214
- hasMoreBatchDetails,
215
- batchDetailsPaginationState: bulkUpload.batchDetailsPaginationState,
216
- manualSearch: {
217
- ...bulkUpload.manualSearch,
218
- results: manualSearchResults,
219
- },
220
- uploadProgress: bulkUpload.uploadProgress,
221
- },
222
- };
223
- }
224
- function batchDetailsHasUnmatchedWork(details) {
225
- return details.files.some((file) => isUnmatchedTabFileStatus(file.status));
226
- }
227
- /** List row summary before batch details load — aligns with unmatched / possible-match work. */
228
- function batchListItemHasUnmatchedWork(batch) {
229
- return batch.noMatchCount > 0 || batch.possibleMatchesCount > 0;
230
- }
231
- /**
232
- * `batchList` must match platform order (same sequence as the bulk-upload batches API). Picks the
233
- * primary batch for the top "Unmatched" section. Skips failed detail fetches.
234
- *
235
- * If details are not loaded for an earlier list row but that row reports no unmatched work, we
236
- * skip it so later rows with loaded details can be primary (avoids an empty tab when the first
237
- * fetch page only loaded later batches). If the list reports unmatched work but details are still
238
- * loading, we wait (undefined) so primary order stays correct once details arrive.
239
- */
240
- function getPrimaryBatchIdFromBatchListOrder(batchListInPlatformOrder, batchDetailsById, failedBatchDetailIds) {
241
- const failedIds = new Set(failedBatchDetailIds);
242
- const anyCompletedBatchHasUnmatchedWork = batchListInPlatformOrder.some((batch) => {
243
- if (failedIds.has(batch.batchId)) {
244
- return false;
245
- }
246
- const details = batchDetailsById[batch.batchId];
247
- if (details != null &&
248
- details.status === 'completed' &&
249
- batchDetailsHasUnmatchedWork(details)) {
250
- return true;
251
- }
252
- return details == null && batchListItemHasUnmatchedWork(batch);
253
- });
254
- for (const batch of batchListInPlatformOrder) {
255
- if (failedIds.has(batch.batchId)) {
256
- continue;
257
- }
258
- const details = batchDetailsById[batch.batchId];
259
- if (details == null) {
260
- if (batchListItemHasUnmatchedWork(batch)) {
261
- return undefined;
262
- }
263
- continue;
264
- }
265
- if (details.status !== 'completed') {
266
- continue;
267
- }
268
- if (anyCompletedBatchHasUnmatchedWork) {
269
- if (batchDetailsHasUnmatchedWork(details)) {
270
- return batch.batchId;
271
- }
272
- continue;
273
- }
274
- return batch.batchId;
275
- }
276
- return undefined;
277
- }
278
- function resolveBatchFile(file, batchId, transactionState) {
279
- const matchedTransaction = file.matchedTransactionId != null
280
- ? getSupportedTransactionById(transactionState, file.matchedTransactionId)
281
- : undefined;
282
- const candidates = file.candidates
283
- ?.map((ref) => {
284
- const transaction = getSupportedTransactionById(transactionState, ref.transactionId);
285
- return transaction != null
286
- ? { transaction, matchScore: ref.matchScore }
287
- : undefined;
288
- })
289
- .filter((candidate) => candidate != null);
290
- return {
291
- attachmentId: file.attachmentId,
292
- batchId,
293
- fileDownloadUrl: file.fileDownloadUrl,
294
- fileId: file.fileId,
295
- filename: file.filename,
296
- filePreviewUrl: file.filePreviewUrl,
297
- status: file.status,
298
- matchedTransaction,
299
- candidates: candidates != null && candidates.length > 0 ? candidates : undefined,
300
- matchSource: file.matchSource,
301
58
  };
302
59
  }
@@ -10,7 +10,7 @@ import { getAllSteps } from '../selectorTypes/expenseAutomationViewSelectorTypes
10
10
  export function getExpenseAutomationTransactionView(state) {
11
11
  const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, } = state;
12
12
  const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
13
- const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, uploadReceiptStatusById, selectedTransactionId, selectedTransactionLineId, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
13
+ const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, selectedTransactionId, selectedTransactionLineId, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
14
14
  const uncategorizedIncomeExpense = getUncategorizedAccounts(accountState, accountListState, 'accountList');
15
15
  const accountList = getAccountList(accountState, accountListState, 'accountList');
16
16
  const classList = getClassList(classState, classListState);
@@ -94,7 +94,6 @@ export function getExpenseAutomationTransactionView(state) {
94
94
  completionStatus,
95
95
  totalCountByTab,
96
96
  fetchStateByTransactionTabs: fetchStateByTab,
97
- uploadReceiptStatusById,
98
97
  selectedTransactionId,
99
98
  selectedTransactionLineId,
100
99
  };
@@ -7,47 +7,3 @@ const MISSING_RECEIPTS_SORT_KEYS = [
7
7
  'amount',
8
8
  ];
9
9
  export const toMissingReceiptsSortKey = (v) => stringToUnion(v, MISSING_RECEIPTS_SORT_KEYS);
10
- // -- Bulk Receipt Upload Types --
11
- /**
12
- * Minimum trimmed query length before manual-match search calls the expense-automation API.
13
- * Kept in sync with `ManualSearchInput` in web-components (fires search only when length ≥ this).
14
- */
15
- export const MIN_MANUAL_TRANSACTION_SEARCH_LENGTH = 2;
16
- const BATCH_STATUS_VALUES = ['pending', 'processing', 'completed'];
17
- export const toBatchStatusValue = (v) => stringToUnion(v.trim().toLowerCase(), BATCH_STATUS_VALUES);
18
- /** Canonical batch file statuses (API ingress may use aliases; see `parseBatchFileStatus`). */
19
- export const BATCH_FILE_STATUSES = [
20
- 'exact_match',
21
- 'possible_matches',
22
- 'no_match',
23
- 'failed',
24
- ];
25
- export const toBatchFileStatus = (v) => stringToUnion(v.trim().toLowerCase().replace(/-/g, '_'), BATCH_FILE_STATUSES);
26
- const UNMATCHED_TAB_FILE_STATUSES = ['possible_matches', 'no_match'];
27
- /** True for files that belong in the Unmatched tab (possible matches or no match). */
28
- export function isUnmatchedTabFileStatus(status) {
29
- return UNMATCHED_TAB_FILE_STATUSES.includes(status);
30
- }
31
- const BULK_UPLOAD_PHASES = [
32
- 'idle',
33
- 'uploading',
34
- 'matching',
35
- 'completed',
36
- ];
37
- export const toBulkUploadPhase = (v) => stringToUnion(v.trim().toLowerCase(), BULK_UPLOAD_PHASES);
38
- const BULK_UPLOAD_RESULTS_TABS = ['completed', 'unmatched'];
39
- export const toBulkUploadResultsTab = (v) => stringToUnion(v.trim().toLowerCase(), BULK_UPLOAD_RESULTS_TABS);
40
- const MISSING_RECEIPTS_TABS = ['missing', 'completed', 'unmatched'];
41
- export const toMissingReceiptsTab = (v) => stringToUnion(v.trim().toLowerCase(), MISSING_RECEIPTS_TABS);
42
- const COMPLETED_SUB_TABS = ['all', 'ai_accountant', 'manual'];
43
- export const toCompletedSubTab = (v) => stringToUnion(v.trim().toLowerCase(), COMPLETED_SUB_TABS);
44
- const MATCH_SOURCES = ['ai', 'manual'];
45
- export const toMatchSource = (v) => stringToUnion(v.trim().toLowerCase(), MATCH_SOURCES);
46
- const BULK_UPLOAD_SORT_KEYS = [
47
- 'amount',
48
- 'category',
49
- 'class',
50
- 'date',
51
- 'vendor',
52
- ];
53
- export const toBulkUploadSortKey = (v) => stringToUnion(v.trim().toLowerCase(), BULK_UPLOAD_SORT_KEYS);
@@ -4,11 +4,10 @@ const TRANSACTIONS_SORT_KEYS = [
4
4
  'vendor',
5
5
  'amount',
6
6
  'transaction_type',
7
- 'payment_account',
8
7
  'date',
9
8
  'category',
10
9
  'class',
11
- 'memo_and_receipt',
10
+ 'memo',
12
11
  ];
13
12
  export const toTransactionsSortKey = (v) => stringToUnion(v, TRANSACTIONS_SORT_KEYS);
14
13
  export const TRANSACTIONS_TABS = ['review', 'autoCategorized'];
@@ -62,19 +62,6 @@ const chargeCardList = createSlice({
62
62
  };
63
63
  },
64
64
  },
65
- fetchCardsOnboardingPage: {
66
- reducer() {
67
- //do nothing
68
- },
69
- prepare(isCreditCardEnabled, cacheOverride = false) {
70
- return {
71
- payload: {
72
- isCreditCardEnabled,
73
- cacheOverride,
74
- },
75
- };
76
- },
77
- },
78
65
  fetchCreditAccountRepayment(draft) {
79
66
  draft.creditAccountRepayment.fetchState = 'In-Progress';
80
67
  draft.creditAccountRepayment.error = undefined;
@@ -320,7 +307,7 @@ const chargeCardList = createSlice({
320
307
  },
321
308
  },
322
309
  });
323
- export const { fetchChargeCardListPage, fetchCardsOnboardingPage, fetchCreditAccountRepayment, updateCreditAccountRepayment, updateCreditAccountRepaymentFailure, updateCreditAccountRepaymentAmountAndDate, updateRowActionCardId, fetchCreditAccount, updateCreditAccount, updateCreditAccountFailure, fetchDebitCardSummary, updateDebitCardSummary, updateDebitCardSummaryFailure, fetchChargeCardList, updateChargeCardList, updateChargeCardListFailure, updateSearchText, updateBulkActionCardIds, updateChargeCardListUIState, clearChargeCardList, resendCardInvite, resendCardInviteSuccess, resendCardInviteFailure, revokeCardInvite, revokeCardInviteSuccess, revokeCardInviteFailure, updateChargeCardsSpendLimit, updateChargeCardsSpendLimitSuccessOrFailure, lockChargeCards, lockChargeCardsSuccessOrFailure, unlockChargeCards, unlockChargeCardsSuccessOrFailure, closeChargeCards, closeChargeCardsSuccessOrFailure, revokeChargeCardsInvite, revokeChargeCardsInviteSuccessOrFailure, } = chargeCardList.actions;
310
+ export const { fetchChargeCardListPage, fetchCreditAccountRepayment, updateCreditAccountRepayment, updateCreditAccountRepaymentFailure, updateCreditAccountRepaymentAmountAndDate, updateRowActionCardId, fetchCreditAccount, updateCreditAccount, updateCreditAccountFailure, fetchDebitCardSummary, updateDebitCardSummary, updateDebitCardSummaryFailure, fetchChargeCardList, updateChargeCardList, updateChargeCardListFailure, updateSearchText, updateBulkActionCardIds, updateChargeCardListUIState, clearChargeCardList, resendCardInvite, resendCardInviteSuccess, resendCardInviteFailure, revokeCardInvite, revokeCardInviteSuccess, revokeCardInviteFailure, updateChargeCardsSpendLimit, updateChargeCardsSpendLimitSuccessOrFailure, lockChargeCards, lockChargeCardsSuccessOrFailure, unlockChargeCards, unlockChargeCardsSuccessOrFailure, closeChargeCards, closeChargeCardsSuccessOrFailure, revokeChargeCardsInvite, revokeChargeCardsInviteSuccessOrFailure, } = chargeCardList.actions;
324
311
  export default chargeCardList.reducer;
325
312
  // helper
326
313
  const toCreditAccount = (payload) => ({
@@ -109,7 +109,7 @@ export const allTaskPriority = [
109
109
  },
110
110
  {
111
111
  code: 'medium',
112
- name: 'Medium',
112
+ name: 'Normal',
113
113
  },
114
114
  {
115
115
  code: 'low',
@@ -70,7 +70,6 @@ const toTaskPayload = (state, task) => {
70
70
  name: task.name,
71
71
  assignees: task.assignees,
72
72
  description: task.description,
73
- group_assignees: task.groupAssignees,
74
73
  due_date: task.dueDate != null ? task.dueDate.format(DEFAULT_DATE_FORMAT) : null,
75
74
  priority: task.priority.code,
76
75
  status: task.status.code,
@@ -11,7 +11,6 @@ import { getTaskGroupTemplateByIds } from '../../../entity/taskGroupTemplate/tas
11
11
  import { getUserName, getUsersByUserIds, } from '../../../entity/user/userSelector';
12
12
  import { getUserAndUserRole, } from '../../companyView/types/userAndRole';
13
13
  import { applyAdvancedFiltersOnList } from '../../spendManagement/spendManagementFilterHelpers';
14
- import { getUserGroupList } from '../../userGroupListView/userGroupListViewSelector';
15
14
  import { getUserList, } from '../../userListView/userListViewSelector';
16
15
  import { allTaskPriority, allTaskStatus, } from '../taskDetailView/taskDetailSelector';
17
16
  import { DUE_DATE_GROUP_KEYS, } from './taskList';
@@ -309,7 +308,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
309
308
  tagState,
310
309
  });
311
310
  };
312
- export const getAllTasks = createSelector((state) => state.taskListState, (state) => state.taskState, (state) => state.userState, (state) => state.userRoleState, (state) => state.userListViewState, (state) => state.addressState, (state) => state.taskGroupState, (state) => state.taskGroupViewState, (state) => state.tagViewState, (state) => state.tagState, (state) => state.taskGroupTemplateState, (state) => state.taskGroupTemplateViewState, (state) => state.userGroupsState, (state) => state.userGroupListViewState, (_state, isTaskTemplatesEnabled) => isTaskTemplatesEnabled, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState, userGroupsState, userGroupListViewState, isTaskTemplatesEnabled) => {
311
+ export const getAllTasks = createSelector((state) => state.taskListState, (state) => state.taskState, (state) => state.userState, (state) => state.userRoleState, (state) => state.userListViewState, (state) => state.addressState, (state) => state.taskGroupState, (state) => state.taskGroupViewState, (state) => state.tagViewState, (state) => state.tagState, (state) => state.taskGroupTemplateState, (state) => state.taskGroupTemplateViewState, (_state, isTaskTemplatesEnabled) => isTaskTemplatesEnabled, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState, isTaskTemplatesEnabled) => {
313
312
  const { localData } = taskListState;
314
313
  const taskGroupsWithTasksList = getTaskGroupsWithTaskList({
315
314
  taskListState,
@@ -337,7 +336,6 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
337
336
  taskGroupTemplates,
338
337
  fetchState: fetchState,
339
338
  userList: getUserList(userState, userRoleState, userListViewState, 'taskManagerCandidate'),
340
- userGroupList: getUserGroupList(userGroupsState, userGroupListViewState, 'taskManagerCandidate'),
341
339
  error: error,
342
340
  version: 0,
343
341
  taskGroupsWithTasksList,
@@ -3,11 +3,9 @@ import { catchError, filter, mergeMap } from 'rxjs/operators';
3
3
  import { updateAddresses } from '../../entity/address/addressReducer';
4
4
  import { getCurrentTenant, isZeniDomainTenant, } from '../../entity/tenant/tenantSelector';
5
5
  import { updateAllUsers } from '../../entity/user/userReducer';
6
- import { updateAllUserGroups } from '../../entity/userGroups/userGroupsReducer';
7
6
  import { updateUserRoles } from '../../entity/userRole/userRoleReducer';
8
7
  import { createZeniAPIStatus, isSuccessResponse } from '../../responsePayload';
9
8
  import { updateChargeCardCount, updateDebitCardCount, } from '../spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer';
10
- import { updateUserGroupIds } from '../userGroupListView/userGroupListViewReducer';
11
9
  import { fetchUserListByType, updateUserIds, updateUserListFetchFailure, } from './userListViewReducer';
12
10
  export const fetchUserListByTypeEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchUserListByType.match), mergeMap((action) => {
13
11
  const { userType, cacheOverride } = action.payload;
@@ -31,15 +29,6 @@ export const fetchUserListByTypeEpic = (actions$, state$, zeniAPI) => actions$.p
31
29
  usersPayload: response.data?.users ?? [],
32
30
  }),
33
31
  ];
34
- if (response.data?.user_groups != null) {
35
- userListAction.push(updateAllUserGroups({ userGroups: response.data.user_groups }));
36
- if (userType === 'taskManagerCandidate') {
37
- userListAction.push(updateUserGroupIds({
38
- userGroupType: userType,
39
- userGroupsPayload: response.data.user_groups,
40
- }));
41
- }
42
- }
43
32
  if (userType === 'cardHolderCandidate') {
44
33
  userListAction.push(updateChargeCardCount(response.data?.cards_count_by_user_id ?? []));
45
34
  userListAction.push(updateDebitCardCount(response.data?.debit_cards_count_by_deposit_account_id ?? {}));
@@ -79,6 +79,8 @@ export class ZeniAPIClient {
79
79
  return from(promise);
80
80
  }
81
81
  postFormData(restEndPoint, formData, signal) {
82
+ // Use apiHeaders for auth headers, then remove Content-Type
83
+ // so the browser sets multipart/form-data with the correct boundary
82
84
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
83
85
  const { 'Content-Type': _contentType, ...headers } = this.apiHeaders();
84
86
  const promise = fetch(restEndPoint, {
package/lib/index.d.ts CHANGED
@@ -265,15 +265,14 @@ import { MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLine
265
265
  import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } from './view/expenseAutomationView/payload/reconciliationPayload';
266
266
  import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
267
267
  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';
268
- 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';
268
+ import { fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
269
269
  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';
270
- 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';
270
+ import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState } from './view/expenseAutomationView/reducers/transactionsViewReducer';
271
271
  import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
272
272
  import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
273
273
  import { JEAccountSettingsView } from './view/expenseAutomationView/selectorTypes/jeAccountSettingsViewSelectorTypes';
274
274
  import { ExpenseAutomationJESchedulesViewSelector } from './view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes';
275
- import { BulkUploadSelectorData, ExpenseAutomationMissingReceiptsViewSelector } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
276
- import { CompletedTransactionsSelectorData, ResolvedBatchDetails, ResolvedBatchFile, ResolvedCandidate } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
275
+ import { ExpenseAutomationMissingReceiptsViewSelector } from './view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes';
277
276
  import { AccountReconSectionID, AccountReconciliationByAccount, AccountReconciliationBySection, ExpenseAutomationReconciliationViewSelector } from './view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes';
278
277
  import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView } from './view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes';
279
278
  import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
@@ -282,7 +281,6 @@ import { getExpenseAutomationReconciliationView, isAccountReconReport } from './
282
281
  import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
283
282
  import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey, FluxAnalysisViewUIState, FluxBalancesByMonth } from './view/expenseAutomationView/types/fluxAnalysisViewState';
284
283
  import { AccountSettingsLocalData, JEScheduleLocalData } from './view/expenseAutomationView/types/jeSchedulesViewState';
285
- import { BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, MatchCandidate, MatchSource, MissingReceiptsTab, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab } from './view/expenseAutomationView/types/missingReceiptsViewState';
286
284
  import { MissingReceiptsSortKey as ExpenseAutomationMissingReceiptsSortKey, MissingReceiptsViewState as ExpenseAutomationMissingReceiptsViewState, MissingReceiptsViewUIState as ExpenseAutomationMissingReceiptsViewUIState, toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey } from './view/expenseAutomationView/types/missingReceiptsViewState';
287
285
  import { AccountReconciliationLocalData, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
288
286
  import { TransactionsTab as ExpenseAutomationTransactionsTab, TransactionsViewState as ExpenseAutomationTransactionsViewState, TransactionsViewUIState as ExpenseAutomationTransactionsViewUIState, SupportedTransactionCategorization, TransactionCategorizationLineItemData, TransactionReviewLocalData, TransactionsSortKey, TransactionsTab, toTransactionsTabKey as toExpenseAutomationTransactionsTabKey, toTransactionsSortKey } from './view/expenseAutomationView/types/transactionsViewState';
@@ -426,10 +424,6 @@ import { getWiseRedirect } from './view/spendManagement/billPay/wiseRedirectView
426
424
  import { completeCardUserOnboardingActivationWait, initializeCardUserOnboardingLocalData, saveCardOnboardingUserDetails, setCurrentDisplayedCardId, setFirstViewAfterActivation, setFirstViewCompleteAfterActivation, startCardUserOnboardingActivationWait, updateCardUserOnboardingLocalData } from './view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingReducer';
427
425
  import { CardUserOnboardingView, getCardUserOnboardingView } from './view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingSelector';
428
426
  import { CardUserOnboardingLocalData } from './view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingState';
429
- import { CreateAiRecommendedCardDraft } from './view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingPayload';
430
- import { clearCardsOnboarding, createAllAiRecommendedCards, fetchAiCardRecommendation, fetchChainOfThoughtsForAiCardRecommendation, setChainOfThoughtsRevealPhase, startAiCardAgentDrawerDataLoad } from './view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingReducer';
431
- import { getAiCardAgentDrawerDisplayState, getAiCardRecommendationDisplayView } from './view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingSelector';
432
- import { AiCardAgentDrawerDisplayState, AiCardRecommendationCardItem, AiCardRecommendationCardRow, AiCardRecommendationDisplayView, AiCardRecommendationResponse, CREATE_ALL_AI_RECOMMENDED_CARDS_SUCCESS_APP_PATH, CardsOnboardingState, ChainOfThoughtsResponse, ChainOfThoughtsRevealPhase } from './view/spendManagement/chargeCards/cardsOnboarding/cardsOnboardingState';
433
427
  import { fetchCashbackDetail, updateCashbackDetailUIState } from './view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer';
434
428
  import { CashbackDetailSelectorView, getCashbackDetail, getZeniDateFromPeriod } from './view/spendManagement/chargeCards/cashbackDetail/cashbackDetailSelector';
435
429
  import { CashbackDetailUIState, CashbackPeriod, CashbackViewSortKey } from './view/spendManagement/chargeCards/cashbackDetail/cashbackDetailState';
@@ -439,7 +433,7 @@ import { ChargeCardDetailUiState, ChargeCardTransactionSortKey, RecurringExpense
439
433
  import { closeChargeCard, completeCVVActivationWait, completeDebitCardSetPinWait, fetchChargeCardDetail, fetchChargeCardDetailPage, fetchChargeCardTransactionAttachments, fetchChargeCardTransactionList, fetchChargeCardTransactionStatistics, fetchChargeCardsRecurringExpenses, fetchDepositAccountLimit, lockChargeCard, startCVVActivationWait, startDebitCardSetPinWait, unlockChargeCard, updateChargeCardDetail, updateChargeCardName, updateChargeCardSpendLimit, updateChargeCardSpendLimitSuccessOrFailure, updateChargeCardTransactionIsViewReceiptClicked, updateChargeCardTransactionReceiptsShowTickFetchStatus, updateChargeCardTransactionUploadReceiptsFetchStatus, updateDebitCardPinAttempt, updatePhysicalChargeCardAttempt } from './view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer';
440
434
  import { ChargeCardCVVActivateSelectorView, ChargeCardControlDetailView, ChargeCardDetailSelectorView, ChargeCardRecurringExpenses, ChargeCardTransactionAttachmentView, DebitCardPinSetSelectorView, getChargeCardCVVActivateView, getChargeCardControlDetailView, getChargeCardDetailView, getChargeCardRecurringExpensesView, getChargeCardTransactionAttachmentView, getDebitCardSetPinView, getDepositAccountLimitFetchStateByDepositAccountId } from './view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailSelector';
441
435
  import { ChargeCardListUIState, ChargeCardViewSortKey, CreditAccount, CreditAccountRepayment, DebitCardSummaries, toChargeCardSortKeyType } from './view/spendManagement/chargeCards/chargeCardList/chargeCardList';
442
- import { closeChargeCards, fetchCardsOnboardingPage, fetchChargeCardList, fetchChargeCardListPage, fetchCreditAccount, fetchCreditAccountRepayment, fetchDebitCardSummary, lockChargeCards, resendCardInvite, revokeCardInvite, revokeChargeCardsInvite, unlockChargeCards, updateBulkActionCardIds, updateSearchText as updateChargeCardListSearchText, updateChargeCardListUIState, updateChargeCardsSpendLimit, updateRowActionCardId } from './view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer';
436
+ import { closeChargeCards, fetchChargeCardList, fetchChargeCardListPage, fetchCreditAccount, fetchCreditAccountRepayment, fetchDebitCardSummary, lockChargeCards, resendCardInvite, revokeCardInvite, revokeChargeCardsInvite, unlockChargeCards, updateBulkActionCardIds, updateSearchText as updateChargeCardListSearchText, updateChargeCardListUIState, updateChargeCardsSpendLimit, updateRowActionCardId } from './view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer';
443
437
  import { ChargeCardBulkActionView, ChargeCardListSelectorView, ChargeCardListWithShippingAddressSelectorView, ChargeCardRecurringExpensesByCardIds, ChargeCardRowActionView, ChargeCardWithUser, ChargeCardWithUserAndShippingAddress, DebitCardListSelectorView, DepositAccountListWithDebitCardIssued, MyPendingActivationChargeCardListSelectorView, anyCardOnHold, getChargeCardBulkActionView, getChargeCardListView, getChargeCardRecurringExpensesByCardIds, getChargeCardRowActionView, getCreditAccountDetails, getDebitCardList, getDebitCardSummary, getDepositAccountListWithDebitCardIssued, getMyPendingActivationChargeCardListView, getMyRequestOnHoldChargeCardListWithShippingAddress } from './view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector';
444
438
  import { PAYMENT_HISTORY_FILTER_CATEGORIES, PaymentHistoryAccountInfo, PaymentHistoryFilterCategory, PaymentHistoryFilterCategoryDropdownOption, PaymentHistoryFilterCategoryField, PaymentHistoryFilters } from './view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistory';
445
439
  import { ChargeCardPaymentHistoryDownloadReport, getChargeCardPaymentHistoryDownloadReport } from './view/spendManagement/chargeCards/chargeCardPaymentHistory/chargeCardPaymentHistoryDownloadSelector';
@@ -627,7 +621,7 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
627
621
  export { ClassesViewSelectorReportV2 };
628
622
  export { BalancesTimeseries, TrendTimeseries, BalanceKind };
629
623
  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, 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, };
624
+ export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, 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
625
  export { JEScheduleLocalData };
632
626
  export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
633
627
  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, };
@@ -825,7 +819,7 @@ export { CompanyHealthMetricsLocalData, CompanyHealthViewUIState };
825
819
  export { getCompanyHealthMetricConfig, fetchCompanyHealthMetricConfig, CompanyHealthMetricConfigSelector, };
826
820
  export { CompanyHealthMetric, CompanyRunway, updateCompaniesHealth, updateCompanyHealth, VerticalProductServices, LastEngagement, AdditionalChurnFactors, AdditionalChurnFactor, };
827
821
  export { clearCompanyHealthMetricView, fetchCompanyHealthMetricView, initializeCompanyHealthMetricViewLocalData, removeSelectedCompanyId, saveCompanyHealthMetricById, updateCompanyHealthMetricLocalStore, updateCompanyHealthMetricViewErrorStatus, updateCompanyHealthMetricViewSuccessStatus, updateCompanyHealthViewUIState, };
828
- export { CardStatusCodeType, updateChargeCardTransactionAttachments, TransactionReceiptsPayload, attachmentFilePathToAttachment, ProductServices, ProductServiceKey, isCompanyRunwayInfinite, getCompanyHealthMetricView, hasCompanyHealthMetricFormFieldChanged, companyHealthMetricDropDownOptions, CompanyHealthMetricViewSelector, CompanyHealthMetricDropDownOption, CompanyDetailWithHealthMetric, ChargeCardBusinessVerificationDetails, getChargeCardBusinessVerificationDetails, fetchDebitCardSummary, fetchChargeCardList, fetchChargeCardListPage, fetchCardsOnboardingPage, fetchChainOfThoughtsForAiCardRecommendation, startAiCardAgentDrawerDataLoad, fetchAiCardRecommendation, createAllAiRecommendedCards, setChainOfThoughtsRevealPhase, clearCardsOnboarding, CardsOnboardingState, ChainOfThoughtsResponse, ChainOfThoughtsRevealPhase, AiCardAgentDrawerDisplayState, getAiCardAgentDrawerDisplayState, AiCardRecommendationResponse, AiCardRecommendationCardItem, AiCardRecommendationCardRow, AiCardRecommendationDisplayView, getAiCardRecommendationDisplayView, CreateAiRecommendedCardDraft, CREATE_ALL_AI_RECOMMENDED_CARDS_SUCCESS_APP_PATH, fetchChargeCardConfig, fetchCreditAccount, fetchCreditAccountRepayment, getChargeCardListView, getMyPendingActivationChargeCardListView, getMyRequestOnHoldChargeCardListWithShippingAddress, clearChargeCardRepaymentDetail, fetchChargeCardRepaymentDetail, initiateChargeCardRepayment, updateChargeCardRepaymentLocalStore, ChargeCardRepaymentDetailSelectorView, getChargeCardRepaymentDetail, ChargeCardRepaymentDetailLocalData, ChargeCardRepayment, ChargeCardRepaymentStatusCodeType, fetchChargeCardPaymentPage, fetchChargeCardPaymentHistory, updatePaymentHistoryDownloadUIState, updatePaymentHistoryFilters, updatePaymentHistorySearchText, updatePaymentHistoryUIState, ChargeCardPaymentHistoryDownloadReport, ChargeCardPaymentHistorySelectorView, ChargeCardRepaymentWithUser, getChargeCardPaymentHistoryDownloadReport, getChargeCardPaymentHistoryView, getPaymentHistorySourceAccountName, getPaymentStatusDisplayText, PAYMENT_HISTORY_FILTER_CATEGORIES, PaymentHistoryAccountInfo, PaymentHistoryFilterCategory, PaymentHistoryFilterCategoryDropdownOption, PaymentHistoryFilterCategoryField, PaymentHistoryFilters, getCreditAccountDetails, ChargeCardStatementsSelectorView, fetchChargeCardDetailPage, fetchChargeCardDetail, fetchChargeCardTransactionStatistics, fetchDepositAccountLimit, getChargeCardDetailView, getChargeCardControlDetailView, getDepositAccountLimitFetchStateByDepositAccountId, ChargeCardControlDetailView, ChargeCardTransactionAttachmentView, getChargeCardTransactionAttachmentView, DebitCardPinSetSelectorView, getDebitCardSetPinView, getChargeCardRecurringExpensesByCardIds, getChargeCardRecurringExpensesView, getChargeCardRowActionView, getChargeCardBulkActionView, ChargeCardCVVActivateSelectorView, getChargeCardCVVActivateView, fetchChargeCardTransactionList, fetchCashbackDetail, ChargeCard, ChargeCardWithUser, ChargeCardWithUserAndShippingAddress, ChargeCardViewSortKey, ChargeCardRecommendation, toChargeCardSortKeyType, CashbackPeriod, CashbackDetailUIState, CashbackViewSortKey, getCashbackDetail, getZeniDateFromPeriod, CashbackDetailSelectorView, toCreditLimitFrequencyCodeType, ChargeCardListSelectorView, ChargeCardListWithShippingAddressSelectorView, MyPendingActivationChargeCardListSelectorView, ChargeCardRecurringExpensesByCardIds, ChargeCardRecurringExpenses, ChargeCardBulkActionView, ChargeCardRowActionView, DebitCardListSelectorView, getDepositAccountListWithDebitCardIssued, DebitCardSummaries, DepositAccountListWithDebitCardIssued, ChargeCardDetailSelectorView, IssueChargeCardSelectorView, ActiveChargeCardCount, ActiveDebitCardCount, ActiveDebitCardCountByUserId, IssueChargeCardState, getIssueChargeCardView, ChargeCardConfigState, ChargeCardListUIState, CreditAccount, CreditAccountRepayment, ChargeCardTransaction, ChargeCardTransactionStatusCode, ChargeCardTransactionTypeCode, ChargeCardTransactionStatus, ChargeCardDetailUiState, ChargeCardTransactionSortKey, RecurringExpense, TransactionStatistics, getChargeCardSetupViewDetails, ChargeCardSetupView, fetchChargeCardStatementList, ChargeCardStatement, getChargeCardStatements, fetchChargeCardSetupView, enableChargeCardAutoPay, acceptChargeCardTerms, expressInterestInChargeCard, IssueChargeCardLocalData, PhysicalCreditCardData, PhysicalDebitCardData, VirtualDebitCardData, DepositAccountWithLimit, getDepositAccountLimitForChargeCardByDepositAccountId, VirtualCreditCardData, CreditLimitFrequencyCodeType, CardAddressType, toCardAddressType, ShippingAddressType, toShippingAddressType, ConnectedAccount, ChargeCardType, CreditCardCodeType, DebitCardCodeType, CardActivationOrPinUpdateEventCodeType, CreditLimitFrequency, CardCodeType, toCardType, issueChargeCards, fetchIssueCardPage, fetchDepositAccountListForCards, getDebitCardList, getDebitCardSummary, updateCustomAddressId, updateChargeCardsLocalStore, resetIssueChargeCardForm, updateBulkActionCardIds, updateChargeCardListSearchText, updateChargeCardListUIState, updateCashbackDetailUIState, updateChargeCardDetail, updatePhysicalChargeCardAttempt, lockChargeCard, unlockChargeCard, closeChargeCard, updateChargeCardName, CardUserOnboardingLocalData, getCardUserOnboardingView, initializeCardUserOnboardingLocalData, updateCardUserOnboardingLocalData, CardUserOnboardingView, saveCardOnboardingUserDetails, updateChargeCardTransactionUploadReceiptsFetchStatus, completeDebitCardSetPinWait, startDebitCardSetPinWait, updateDebitCardPinAttempt, updateChargeCardTransactionReceiptsShowTickFetchStatus, updateChargeCardTransactionIsViewReceiptClicked, fetchChargeCardTransactionAttachments, completeCVVActivationWait, startCVVActivationWait, updateChargeCardSpendLimit, updateChargeCardSpendLimitSuccessOrFailure, resendCardInvite, revokeCardInvite, updateRowActionCardId, revokeChargeCardsInvite, lockChargeCards, unlockChargeCards, closeChargeCards, updateChargeCardsSpendLimit, fetchChargeCardsRecurringExpenses, startCardUserOnboardingActivationWait, completeCardUserOnboardingActivationWait, setFirstViewAfterActivation, setFirstViewCompleteAfterActivation, setCurrentDisplayedCardId, getChargeCardById, anyCardOnHold, };
822
+ export { CardStatusCodeType, updateChargeCardTransactionAttachments, TransactionReceiptsPayload, attachmentFilePathToAttachment, ProductServices, ProductServiceKey, isCompanyRunwayInfinite, getCompanyHealthMetricView, hasCompanyHealthMetricFormFieldChanged, companyHealthMetricDropDownOptions, CompanyHealthMetricViewSelector, CompanyHealthMetricDropDownOption, CompanyDetailWithHealthMetric, ChargeCardBusinessVerificationDetails, getChargeCardBusinessVerificationDetails, fetchDebitCardSummary, fetchChargeCardList, fetchChargeCardListPage, fetchChargeCardConfig, fetchCreditAccount, fetchCreditAccountRepayment, getChargeCardListView, getMyPendingActivationChargeCardListView, getMyRequestOnHoldChargeCardListWithShippingAddress, clearChargeCardRepaymentDetail, fetchChargeCardRepaymentDetail, initiateChargeCardRepayment, updateChargeCardRepaymentLocalStore, ChargeCardRepaymentDetailSelectorView, getChargeCardRepaymentDetail, ChargeCardRepaymentDetailLocalData, ChargeCardRepayment, ChargeCardRepaymentStatusCodeType, fetchChargeCardPaymentPage, fetchChargeCardPaymentHistory, updatePaymentHistoryDownloadUIState, updatePaymentHistoryFilters, updatePaymentHistorySearchText, updatePaymentHistoryUIState, ChargeCardPaymentHistoryDownloadReport, ChargeCardPaymentHistorySelectorView, ChargeCardRepaymentWithUser, getChargeCardPaymentHistoryDownloadReport, getChargeCardPaymentHistoryView, getPaymentHistorySourceAccountName, getPaymentStatusDisplayText, PAYMENT_HISTORY_FILTER_CATEGORIES, PaymentHistoryAccountInfo, PaymentHistoryFilterCategory, PaymentHistoryFilterCategoryDropdownOption, PaymentHistoryFilterCategoryField, PaymentHistoryFilters, getCreditAccountDetails, ChargeCardStatementsSelectorView, fetchChargeCardDetailPage, fetchChargeCardDetail, fetchChargeCardTransactionStatistics, fetchDepositAccountLimit, getChargeCardDetailView, getChargeCardControlDetailView, getDepositAccountLimitFetchStateByDepositAccountId, ChargeCardControlDetailView, ChargeCardTransactionAttachmentView, getChargeCardTransactionAttachmentView, DebitCardPinSetSelectorView, getDebitCardSetPinView, getChargeCardRecurringExpensesByCardIds, getChargeCardRecurringExpensesView, getChargeCardRowActionView, getChargeCardBulkActionView, ChargeCardCVVActivateSelectorView, getChargeCardCVVActivateView, fetchChargeCardTransactionList, fetchCashbackDetail, ChargeCard, ChargeCardWithUser, ChargeCardWithUserAndShippingAddress, ChargeCardViewSortKey, ChargeCardRecommendation, toChargeCardSortKeyType, CashbackPeriod, CashbackDetailUIState, CashbackViewSortKey, getCashbackDetail, getZeniDateFromPeriod, CashbackDetailSelectorView, toCreditLimitFrequencyCodeType, ChargeCardListSelectorView, ChargeCardListWithShippingAddressSelectorView, MyPendingActivationChargeCardListSelectorView, ChargeCardRecurringExpensesByCardIds, ChargeCardRecurringExpenses, ChargeCardBulkActionView, ChargeCardRowActionView, DebitCardListSelectorView, getDepositAccountListWithDebitCardIssued, DebitCardSummaries, DepositAccountListWithDebitCardIssued, ChargeCardDetailSelectorView, IssueChargeCardSelectorView, ActiveChargeCardCount, ActiveDebitCardCount, ActiveDebitCardCountByUserId, IssueChargeCardState, getIssueChargeCardView, ChargeCardConfigState, ChargeCardListUIState, CreditAccount, CreditAccountRepayment, ChargeCardTransaction, ChargeCardTransactionStatusCode, ChargeCardTransactionTypeCode, ChargeCardTransactionStatus, ChargeCardDetailUiState, ChargeCardTransactionSortKey, RecurringExpense, TransactionStatistics, getChargeCardSetupViewDetails, ChargeCardSetupView, fetchChargeCardStatementList, ChargeCardStatement, getChargeCardStatements, fetchChargeCardSetupView, enableChargeCardAutoPay, acceptChargeCardTerms, expressInterestInChargeCard, IssueChargeCardLocalData, PhysicalCreditCardData, PhysicalDebitCardData, VirtualDebitCardData, DepositAccountWithLimit, getDepositAccountLimitForChargeCardByDepositAccountId, VirtualCreditCardData, CreditLimitFrequencyCodeType, CardAddressType, toCardAddressType, ShippingAddressType, toShippingAddressType, ConnectedAccount, ChargeCardType, CreditCardCodeType, DebitCardCodeType, CardActivationOrPinUpdateEventCodeType, CreditLimitFrequency, CardCodeType, toCardType, issueChargeCards, fetchIssueCardPage, fetchDepositAccountListForCards, getDebitCardList, getDebitCardSummary, updateCustomAddressId, updateChargeCardsLocalStore, resetIssueChargeCardForm, updateBulkActionCardIds, updateChargeCardListSearchText, updateChargeCardListUIState, updateCashbackDetailUIState, updateChargeCardDetail, updatePhysicalChargeCardAttempt, lockChargeCard, unlockChargeCard, closeChargeCard, updateChargeCardName, CardUserOnboardingLocalData, getCardUserOnboardingView, initializeCardUserOnboardingLocalData, updateCardUserOnboardingLocalData, CardUserOnboardingView, saveCardOnboardingUserDetails, updateChargeCardTransactionUploadReceiptsFetchStatus, completeDebitCardSetPinWait, startDebitCardSetPinWait, updateDebitCardPinAttempt, updateChargeCardTransactionReceiptsShowTickFetchStatus, updateChargeCardTransactionIsViewReceiptClicked, fetchChargeCardTransactionAttachments, completeCVVActivationWait, startCVVActivationWait, updateChargeCardSpendLimit, updateChargeCardSpendLimitSuccessOrFailure, resendCardInvite, revokeCardInvite, updateRowActionCardId, revokeChargeCardsInvite, lockChargeCards, unlockChargeCards, closeChargeCards, updateChargeCardsSpendLimit, fetchChargeCardsRecurringExpenses, startCardUserOnboardingActivationWait, completeCardUserOnboardingActivationWait, setFirstViewAfterActivation, setFirstViewCompleteAfterActivation, setCurrentDisplayedCardId, getChargeCardById, anyCardOnHold, };
829
823
  export { TIME_SERIES_DURATIONS, PerformanceReportKey, TimeSeriesDuration, convertToTimeSeriesSelectionRange, toTimeSeriesDuration, TimeSeriesRange, fetchAggregatedReport, aggregatedReportView, AggregatedReportType, AggregatedReportPersona, EventGroupType, MonthlySummaryType, PerformanceReportSummary, };
830
824
  export { fetchApAging, getApAgingReport, updateApAgingUIState, AgingReportId, ApAgingReport, AgingBalance, AgingPeriod, AgingReportSortKey, AgingBalancesByVendor, AgingReportUIState, AgingDetailReportUIState, AgingDetailReportInvoice, AgingDateSelectionType, };
831
825
  export { fetchApAgingDetail, AgingReportInvoice, ApAgingDetail, getApAgingDetailForVendor, updateApAgingDetailUIState, };
@@ -874,7 +868,5 @@ export { fetchTreasuryTaxLetterList } from './view/spendManagement/treasury/trea
874
868
  export { TreasuryTaxLettersSelectorView, getTreasuryTaxLetters, } from './view/spendManagement/treasury/treasuryTaxLetterList/treasuryTaxLetterListSelector';
875
869
  export { TreasuryTransactionStatus } from './view/spendManagement/treasury/treasuryList/treasuryDetailPayload';
876
870
  export type { TransactionActivityLog } from './entity/transactionActivityLog/transactionActivityLogState';
877
- export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS, } from './view/expenseAutomationView/bulkUploadTiming';
878
871
  export { fetchTransactionActivityLog } from './view/transactionActivityLogView/transactionActivityLogViewReducer';
879
872
  export { TransactionActivityLogViewSelectorView, getTransactionActivityLogView, } from './view/transactionActivityLogView/transactionActivityLogViewSelector';
880
- export { UserGroup } from './entity/userGroups/userGroupsState';