@zeniai/client-epic-state 5.0.44-betaML3 → 5.0.44-betaRD2

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 (120) hide show
  1. package/lib/commonStateTypes/recommendationBase.d.ts +1 -1
  2. package/lib/commonStateTypes/viewAndReport/viewAndReport.d.ts +2 -2
  3. package/lib/commonStateTypes/viewAndReport/viewAndReport.js +1 -1
  4. package/lib/entity/account/accountSelector.d.ts +0 -5
  5. package/lib/entity/account/accountSelector.js +1 -8
  6. package/lib/entity/account/accountState.d.ts +1 -1
  7. package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
  8. package/lib/entity/class/classReducer.d.ts +4 -4
  9. package/lib/entity/class/classState.d.ts +1 -1
  10. package/lib/entity/forecast/forecastState.d.ts +1 -1
  11. package/lib/entity/project/projectPayload.d.ts +7 -0
  12. package/lib/entity/project/projectPayload.js +15 -1
  13. package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
  14. package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
  15. package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
  16. package/lib/entity/sectionProjectView/sectionProjectView.d.ts +1 -1
  17. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +2 -2
  18. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  19. package/lib/entity/snackbar/snackbarTypes.js +0 -2
  20. package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
  21. package/lib/entity/tenant/clearAllEpic.js +2 -0
  22. package/lib/entity/transaction/payloadTypes/transactionLinePayload.d.ts +2 -0
  23. package/lib/entity/transaction/payloadTypes/transactionLinePayload.js +9 -0
  24. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +0 -6
  25. package/lib/entity/transaction/payloadTypes/transactionPayload.js +0 -10
  26. package/lib/entity/transaction/stateTypes/transaction.d.ts +0 -3
  27. package/lib/entity/transaction/stateTypes/transactionLine.d.ts +2 -0
  28. package/lib/epic.d.ts +4 -3
  29. package/lib/epic.js +4 -3
  30. package/lib/esm/commonStateTypes/viewAndReport/viewAndReport.js +1 -1
  31. package/lib/esm/entity/account/accountSelector.js +0 -6
  32. package/lib/esm/entity/project/projectPayload.js +12 -0
  33. package/lib/esm/entity/snackbar/snackbarTypes.js +0 -2
  34. package/lib/esm/entity/tenant/clearAllEpic.js +2 -0
  35. package/lib/esm/entity/transaction/payloadTypes/transactionLinePayload.js +9 -0
  36. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +0 -10
  37. package/lib/esm/epic.js +4 -3
  38. package/lib/esm/index.js +11 -8
  39. package/lib/esm/reducer.js +3 -0
  40. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +1 -5
  41. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +1 -66
  42. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +0 -19
  43. package/lib/esm/view/projectList/fetchProjectListEpic.js +38 -0
  44. package/lib/esm/view/projectList/projectListPayload.js +1 -0
  45. package/lib/esm/view/projectList/projectListReducer.js +39 -0
  46. package/lib/esm/view/projectList/projectListSelector.js +9 -0
  47. package/lib/esm/view/projectList/projectListState.js +1 -0
  48. package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
  49. package/lib/esm/view/transactionDetail/epics/transactionDetailEpic.js +6 -6
  50. package/lib/esm/view/transactionDetail/epics/updateTransactionDetailEpic.js +3 -0
  51. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +14 -13
  52. package/lib/esm/view/transactionList/fetchTransactionListByProjectEpic.js +45 -0
  53. package/lib/esm/view/transactionList/parallelFetchProjectTransactionListEpic.js +32 -0
  54. package/lib/esm/view/transactionList/transactionListByProjectSelector.js +58 -0
  55. package/lib/esm/view/transactionList/transactionListReducer.js +83 -2
  56. package/lib/esm/view/transactionList/transactionListState.js +10 -0
  57. package/lib/index.d.ts +11 -8
  58. package/lib/index.js +43 -42
  59. package/lib/reducer.d.ts +3 -0
  60. package/lib/reducer.js +3 -0
  61. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  62. package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
  63. package/lib/view/billPayCard/billPayCardSelector.d.ts +1 -1
  64. package/lib/view/cardBalance/cardBalanceSelector.d.ts +1 -1
  65. package/lib/view/cashBalance/cashBalanceSelector.d.ts +1 -1
  66. package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +1 -1
  67. package/lib/view/cashPosition/cashPositionSelector.d.ts +1 -1
  68. package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
  69. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.d.ts +2 -2
  70. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +0 -4
  71. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  72. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -15
  73. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +2 -67
  74. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +1 -3
  75. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +0 -2
  76. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +0 -20
  77. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -13
  78. package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
  79. package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
  80. package/lib/view/projectList/fetchProjectListEpic.d.ts +8 -0
  81. package/lib/view/projectList/fetchProjectListEpic.js +42 -0
  82. package/lib/view/projectList/projectListPayload.d.ts +7 -0
  83. package/lib/view/projectList/projectListPayload.js +2 -0
  84. package/lib/view/projectList/projectListReducer.d.ts +9 -0
  85. package/lib/view/projectList/projectListReducer.js +43 -0
  86. package/lib/view/projectList/projectListSelector.d.ts +8 -0
  87. package/lib/view/projectList/projectListSelector.js +13 -0
  88. package/lib/view/projectList/projectListState.d.ts +4 -0
  89. package/lib/view/projectList/projectListState.js +2 -0
  90. package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +1 -1
  91. package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
  92. package/lib/view/tasksCard/tasksCardSelector.d.ts +1 -1
  93. package/lib/view/topEx/topExSelector.d.ts +1 -1
  94. package/lib/view/transactionDetail/epics/saveTransactionHelper.js +1 -0
  95. package/lib/view/transactionDetail/epics/transactionDetailEpic.d.ts +2 -2
  96. package/lib/view/transactionDetail/epics/transactionDetailEpic.js +6 -6
  97. package/lib/view/transactionDetail/epics/updateTransactionDetailEpic.js +3 -0
  98. package/lib/view/transactionDetail/transactionDetailPayload.d.ts +1 -1
  99. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +4 -4
  100. package/lib/view/transactionDetail/transactionDetailSelector.js +13 -12
  101. package/lib/view/transactionDetail/transactionDetailState.d.ts +2 -0
  102. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +2 -0
  103. package/lib/view/transactionList/fetchTransactionListByProjectEpic.d.ts +8 -0
  104. package/lib/view/transactionList/fetchTransactionListByProjectEpic.js +52 -0
  105. package/lib/view/transactionList/parallelFetchProjectTransactionListEpic.d.ts +6 -0
  106. package/lib/view/transactionList/parallelFetchProjectTransactionListEpic.js +36 -0
  107. package/lib/view/transactionList/transactionListByProjectSelector.d.ts +22 -0
  108. package/lib/view/transactionList/transactionListByProjectSelector.js +66 -0
  109. package/lib/view/transactionList/transactionListPayload.d.ts +15 -0
  110. package/lib/view/transactionList/transactionListReducer.d.ts +25 -2
  111. package/lib/view/transactionList/transactionListReducer.js +83 -2
  112. package/lib/view/transactionList/transactionListState.d.ts +15 -0
  113. package/lib/view/transactionList/transactionListState.js +13 -1
  114. package/package.json +1 -1
  115. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/createTransferEntryEpic.js +0 -81
  116. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransferAccountsEpic.js +0 -25
  117. package/lib/view/expenseAutomationView/epics/transactionCategorization/createTransferEntryEpic.d.ts +0 -9
  118. package/lib/view/expenseAutomationView/epics/transactionCategorization/createTransferEntryEpic.js +0 -85
  119. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransferAccountsEpic.d.ts +0 -8
  120. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransferAccountsEpic.js +0 -29
@@ -0,0 +1,58 @@
1
+ import flatMap from 'lodash/flatMap';
2
+ import recordGet from 'lodash/get';
3
+ import orderBy from 'lodash/orderBy';
4
+ import { getSupportedTransactionById } from '../../entity/transaction/transactionSelector';
5
+ import { splitPeriod } from './parallelFetchAccountTransactionListEpic';
6
+ import { isAnyFetchCompleted, reduceFetchState, } from './reduceTransactionListFetchState';
7
+ import { getProjectAcKey, getProjectAcTranKey, } from './transactionListState';
8
+ export const getTransactionListByProject = (transactionState, transactionListState, accountId, accountType, projectId, timeframe, filterByTimePeriod) => {
9
+ const timePeriods = splitPeriod(filterByTimePeriod); // Note: Split by months.
10
+ const accountTransactions = timePeriods
11
+ .map((thisTimePeriod) => {
12
+ const key = getProjectAcTranKey(accountId, accountType, projectId, thisTimePeriod);
13
+ return recordGet(transactionListState.byProject.transactionListByProjectKey, key, undefined);
14
+ })
15
+ .filter((acTransaction) => acTransaction != null);
16
+ let account = undefined;
17
+ if (accountTransactions.length > 0) {
18
+ account = accountTransactions[0].account;
19
+ }
20
+ const fetchState = reduceFetchState(accountTransactions);
21
+ let transactions = [];
22
+ if (isAnyFetchCompleted(accountTransactions)) {
23
+ const allTransactionIDs = flatMap(accountTransactions, (value) => value.transactionIDs);
24
+ const transactionsUnsorted = allTransactionIDs
25
+ .map((transactionId) => getSupportedTransactionById(transactionState, transactionId))
26
+ .filter((value) => {
27
+ if (value == null) {
28
+ console.error("Can't have null transaction at this stage!");
29
+ }
30
+ return value != null;
31
+ });
32
+ transactions = orderBy(transactionsUnsorted, (value) => value.date.valueOf(), 'desc');
33
+ }
34
+ const key = getProjectAcKey(accountId, accountType, projectId);
35
+ const uiState = recordGet(transactionListState.byProject.transactionListUIStateByProjectKey, key, {});
36
+ return {
37
+ reportId: 'transaction_list_of_account_by_project',
38
+ reportTitle: 'Transaction List of Account By Project',
39
+ version: 1,
40
+ status: undefined,
41
+ fetchState: fetchState.fetchState,
42
+ error: fetchState.error,
43
+ timeframe,
44
+ filterByTimePeriod,
45
+ accountId,
46
+ accountType,
47
+ projectId,
48
+ account,
49
+ transactionOrder: 'descending_transaction_date',
50
+ transactions,
51
+ uiState,
52
+ latestTransactionId: transactionListState.latestTransactionId,
53
+ };
54
+ };
55
+ export const getTransactionListUIStateByProjectKey = (transactionListState, accountId, accountType, projectId) => {
56
+ const key = getProjectAcKey(accountId, accountType, projectId);
57
+ return recordGet(transactionListState.byProject.transactionListUIStateByProjectKey, key, undefined);
58
+ };
@@ -2,7 +2,7 @@ import { createSlice } from '@reduxjs/toolkit';
2
2
  import { toAbsoluteDay } from '../../commonStateTypes/timePeriod';
3
3
  import { mapAccountBasePayloadToAccountBase } from '../../entity/account/accountPayload';
4
4
  import { toEntityType } from '../../entity/genericEntity/entity';
5
- import { accountTransactionsInitialState, getAcKey, getAcTranKey, getCategoryTypeTranKey, getClassAcKey, getClassAcTranKey, getEntityTranKey, initialClassTransactionState, initialEntityTransactionState, initialTransactionsStateByCategoryType, } from './transactionListState';
5
+ import { accountTransactionsInitialState, getAcKey, getAcTranKey, getCategoryTypeTranKey, getClassAcKey, getClassAcTranKey, getEntityTranKey, getProjectAcKey, getProjectAcTranKey, initialClassTransactionState, initialEntityTransactionState, initialProjectTransactionState, initialTransactionsStateByCategoryType, } from './transactionListState';
6
6
  export const initialState = {
7
7
  byAccount: {
8
8
  transactionListByAccountKey: {},
@@ -37,6 +37,10 @@ export const initialState = {
37
37
  transactionListByClassKey: {},
38
38
  transactionListUIStateByClassKey: {},
39
39
  },
40
+ byProject: {
41
+ transactionListByProjectKey: {},
42
+ transactionListUIStateByProjectKey: {},
43
+ },
40
44
  };
41
45
  const transactionList = createSlice({
42
46
  name: 'transactionList',
@@ -246,6 +250,64 @@ const transactionList = createSlice({
246
250
  return { payload: { accountId, accountType, classId, period, error } };
247
251
  },
248
252
  },
253
+ // Transaction list by project related reducers
254
+ //
255
+ // Mirrors the by-class set; the only behavioural difference is that the
256
+ // server query param is `zeni_project_id` (post-Ayon's accounting #3984
257
+ // rename) and there's no equivalent of `include_sub_class_transactions`
258
+ // — projects don't have a sub-project hierarchy in this layout yet.
259
+ parallelFetchProjectTransactionList: {
260
+ reducer() {
261
+ // Do nothing..
262
+ },
263
+ prepare(accountId, accountType, projectId, period, cacheOverride = false) {
264
+ return {
265
+ payload: { accountId, accountType, projectId, period, cacheOverride },
266
+ };
267
+ },
268
+ },
269
+ fetchProjectTransactionList: {
270
+ reducer(draft, action) {
271
+ const key = getProjectAcTranKey(action.payload.accountId, action.payload.accountType, action.payload.projectId, action.payload.period);
272
+ if (action.payload.cacheOverride === true ||
273
+ draft.byProject.transactionListByProjectKey[key] == null ||
274
+ (draft.byProject.transactionListByProjectKey[key]?.hasValidState() ===
275
+ false &&
276
+ draft.byProject.transactionListByProjectKey[key]?.fetchState !=
277
+ 'In-Progress')) {
278
+ draft.byProject.transactionListByProjectKey[key] = {
279
+ ...initialProjectTransactionState,
280
+ fetchState: 'In-Progress',
281
+ error: undefined,
282
+ };
283
+ }
284
+ },
285
+ prepare(accountId, accountType, projectId, period, cacheOverride = false) {
286
+ return {
287
+ payload: { accountId, accountType, projectId, period, cacheOverride },
288
+ };
289
+ },
290
+ },
291
+ updateTransactionListByProject(draft, action) {
292
+ doUpdateTransactionListByProject(draft.byProject.transactionListByProjectKey, action.payload);
293
+ },
294
+ updateTransactionListByProjectUIState(draft, action) {
295
+ const key = getProjectAcKey(action.payload.accountId, action.payload.accountType, action.payload.projectId);
296
+ draft.byProject.transactionListUIStateByProjectKey[key] = Object.assign({}, draft.byProject.transactionListUIStateByProjectKey[key], action.payload.uiState);
297
+ },
298
+ updateTransactionListByProjectFailure: {
299
+ reducer(draft, action) {
300
+ const key = getProjectAcTranKey(action.payload.accountId, action.payload.accountType, action.payload.projectId, action.payload.period);
301
+ draft.byProject.transactionListByProjectKey[key] = {
302
+ ...initialProjectTransactionState,
303
+ fetchState: 'Error',
304
+ error: action.payload.error,
305
+ };
306
+ },
307
+ prepare(accountId, accountType, projectId, period, error) {
308
+ return { payload: { accountId, accountType, projectId, period, error } };
309
+ },
310
+ },
249
311
  parallelFetchTransactionListByCategoryType: {
250
312
  reducer() {
251
313
  // Do nothing..
@@ -340,7 +402,7 @@ const transactionList = createSlice({
340
402
  },
341
403
  },
342
404
  });
343
- export const { parallelFetchAccountTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, parallelFetchEntityTransactionList, fetchEntityTransactionList, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, fetchClassTransactionList, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByClassFailure, parallelFetchTransactionListByCategoryType, fetchTransactionsListByCategoryType, updateTransactionListByCategoryType, updateTransactionsListByCategoryTypeFailure, updateTransactionListUIStateByCategoryType, clearTransactionList, updateLatestTransactionId, } = transactionList.actions;
405
+ export const { parallelFetchAccountTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, parallelFetchEntityTransactionList, fetchEntityTransactionList, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, fetchClassTransactionList, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByClassFailure, parallelFetchProjectTransactionList, fetchProjectTransactionList, updateTransactionListByProject, updateTransactionListByProjectUIState, updateTransactionListByProjectFailure, parallelFetchTransactionListByCategoryType, fetchTransactionsListByCategoryType, updateTransactionListByCategoryType, updateTransactionsListByCategoryTypeFailure, updateTransactionListUIStateByCategoryType, clearTransactionList, updateLatestTransactionId, } = transactionList.actions;
344
406
  export default transactionList.reducer;
345
407
  /**
346
408
  * Helper functions
@@ -390,3 +452,22 @@ function doUpdateTransactionListByClass(draft, payload) {
390
452
  transactionIDs,
391
453
  };
392
454
  }
455
+ function doUpdateTransactionListByProject(draft, payload) {
456
+ const transactionIDs = payload.account.transactions.map((transactionPaylod) => transactionPaylod.transaction_id);
457
+ const account = mapAccountBasePayloadToAccountBase(payload.account);
458
+ const projectId = payload.query.zeni_project_id;
459
+ const start = toAbsoluteDay(payload.query.start_date);
460
+ const end = toAbsoluteDay(payload.query.end_date);
461
+ const key = getProjectAcTranKey(account.accountId, account.accountType, projectId, {
462
+ start,
463
+ end,
464
+ });
465
+ draft[key] = {
466
+ ...initialProjectTransactionState,
467
+ fetchState: 'Completed',
468
+ error: undefined,
469
+ account: account,
470
+ projectId: projectId,
471
+ transactionIDs,
472
+ };
473
+ }
@@ -30,6 +30,16 @@ export const initialClassTransactionState = {
30
30
  return this.fetchState == 'Completed';
31
31
  },
32
32
  };
33
+ export const getProjectAcTranKey = (accountId, accountType, projectId, period) => `${accountId}-${accountType}-${projectId}-${period.start.day}_${period.start.month}_${period.start.year}_${period.end.day}_${period.end.month}_${period.end.year}`;
34
+ export const getProjectAcKey = (accountId, accountType, projectId) => `${accountId}-${accountType}-${projectId}`;
35
+ export const initialProjectTransactionState = {
36
+ transactionIDs: [],
37
+ fetchState: 'Not-Started',
38
+ error: undefined,
39
+ hasValidState() {
40
+ return this.fetchState == 'Completed';
41
+ },
42
+ };
33
43
  export const getCategoryTypeTranKey = (categoryType, period) => `${categoryType}_${period.start.day}_${period.start.month}_${period.start.year}_${period.end.day}_${period.end.month}_${period.end.year}`;
34
44
  export const initialTransactionsStateByCategoryType = {
35
45
  transactionIDs: [],
package/lib/index.d.ts CHANGED
@@ -215,6 +215,8 @@ import { getCashPosition, getCashPositionForHighlightedRange, getCashPositionFor
215
215
  import { CashPositionReport, CashPositionUIStateSelectorView } from './view/cashPosition/cashPositionSelectorTypes';
216
216
  import { fetchClassList } from './view/classList/classListReducer';
217
217
  import { ClassListSelectorView, getClassList } from './view/classList/classListSelector';
218
+ import { fetchProjectList } from './view/projectList/projectListReducer';
219
+ import { ProjectListSelectorView, getProjectList } from './view/projectList/projectListSelector';
218
220
  import { RecurringDatePickerOptions, RecurringFrequencyType, SEMI_WEEKLY_REQUIRED_DAYS_COUNT, getMinAllowedEndDate, getRecurringEndDateFromCount, toRecurringFrequency } from './view/common/recurringViewHelper';
219
221
  import { ZENI_CLEARING_ACCOUNT, isZeniClearingAccount, isZeniClearingAccountReport } from './view/common/zeniClearingAccountHelper';
220
222
  import { clearTransactionVendorSaveStatus, resetTransactionVendorLocalData, saveTransactionVendor, saveTransactionVendorSuccessOrFailure, updateTransactionVendorLocalData } from './view/commonVendorView/transactionVendorView/transactionVendorViewReducer';
@@ -271,7 +273,7 @@ import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFl
271
273
  import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
272
274
  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, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
273
275
  import { deleteAccountStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, 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, updateNodeCollapseState, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
274
- import { acknowledgeTransferEntryRouteReplacement, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, createTransferEntry, createTransferEntryFailure, createTransferEntryReplacedTransaction, createTransferEntrySuccess, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, fetchTransferAccounts, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, removeTransactionFromAllTabs, resetCreateTransferEntryStatus, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
276
+ 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';
275
277
  import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
276
278
  import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
277
279
  import { JEAccountSettingsView } from './view/expenseAutomationView/selectorTypes/jeAccountSettingsViewSelectorTypes';
@@ -283,7 +285,7 @@ import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSel
283
285
  import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
284
286
  import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
285
287
  import { getExpenseAutomationReconciliationView, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
286
- import { getExpenseAutomationTransactionView, getLastTransferEntryReplacement } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
288
+ import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
287
289
  import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey, FluxAnalysisViewUIState, FluxBalancesByMonth } from './view/expenseAutomationView/types/fluxAnalysisViewState';
288
290
  import { AccountSettingsLocalData, JEScheduleMainTab as ExpenseAutomationJEScheduleMainTab, JEScheduleSortKey as ExpenseAutomationJEScheduleSortKey, JESchedulesViewUIState as ExpenseAutomationJESchedulesViewUIState, JEScheduleLocalData, toJEScheduleMainTab as toExpenseAutomationJEScheduleMainTab, toJEScheduleSortKey as toExpenseAutomationJEScheduleSortKey } from './view/expenseAutomationView/types/jeSchedulesViewState';
289
291
  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';
@@ -569,8 +571,9 @@ import { TransactionDetailLineItemData, TransactionDetailLocalData, TransactionV
569
571
  import { TransactionListByAccountReport, getTransactionListByAccount, getTransactionListUIStateByAccountKey } from './view/transactionList/transactionListByAccountSelector';
570
572
  import { TransactionListByCategoryType, getTransactionListUIStateByCategoryType, getTransactionsListByCategoryType } from './view/transactionList/transactionListByCategoryTypeSelector';
571
573
  import { TransactionListByClassReport, getTransactionListByClass, getTransactionListUIStateByClassKey } from './view/transactionList/transactionListByClassSelector';
574
+ import { TransactionListByProjectReport, getTransactionListByProject, getTransactionListUIStateByProjectKey } from './view/transactionList/transactionListByProjectSelector';
572
575
  import { TransactionListByEntityView, getTransactionListByEntity, getTransactionListByEntityForSinglePeriod } from './view/transactionList/transactionListByEntitySelector';
573
- import { clearTransactionList, fetchAccountTransactionList, fetchEntityTransactionList, parallelFetchAccountTransactionList, parallelFetchClassTransactionList, parallelFetchEntityTransactionList, parallelFetchTransactionListByCategoryType, updateLatestTransactionId, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListUIStateByCategoryType } from './view/transactionList/transactionListReducer';
576
+ import { clearTransactionList, fetchAccountTransactionList, fetchEntityTransactionList, parallelFetchAccountTransactionList, parallelFetchClassTransactionList, parallelFetchProjectTransactionList, parallelFetchEntityTransactionList, parallelFetchTransactionListByCategoryType, updateLatestTransactionId, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, updateTransactionListByClass, updateTransactionListByClassUIState, updateTransactionListByProject, updateTransactionListByProjectUIState, updateTransactionListByEntity, updateTransactionListByEntityFailure, updateTransactionListUIStateByCategoryType } from './view/transactionList/transactionListReducer';
574
577
  import { TransactionCategoryType } from './view/transactionList/transactionListState';
575
578
  import { clearTrendData, fetchExpenseTrend, fetchIncomeTrend } from './view/trend/trendReducer';
576
579
  import { TrendView, getCurrentFiscalQuarterDateRange, getTrendForEntity } from './view/trend/trendSelector';
@@ -652,10 +655,10 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
652
655
  export { ClassesViewSelectorReportV2 };
653
656
  export { BalancesTimeseries, TrendTimeseries, BalanceKind };
654
657
  export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
655
- 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, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, 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, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
658
+ 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, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, 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, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
656
659
  export { JEScheduleLocalData };
657
660
  export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
658
- export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, createTransferEntry, createTransferEntryFailure, createTransferEntryReplacedTransaction, createTransferEntrySuccess, resetCreateTransferEntryStatus, acknowledgeTransferEntryRouteReplacement, fetchTransferAccounts, removeTransactionFromAllTabs, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
661
+ 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, };
659
662
  export { TopExpense, TopExTimePeriod, TOP_EX_TIME_PERIODS };
660
663
  export { TimeframeTick, TimeframeTickWithMetaData, toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsoluteDay, toMonthYearPeriodId, convertToPeriod, MonthYearPeriod, };
661
664
  export { VendorSpendTrendFilterTabType, toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
@@ -717,12 +720,12 @@ export { VendorTransaction, VendorTransactionWithCOT, isVendorTransaction, Vendo
717
720
  export { TransferTransaction, isTransferTransaction };
718
721
  export { MatchedTransaction };
719
722
  export { SupportedTransaction, SupportedTransactionWithCOT, SupportedTransactionPayload, getSupportedTransactionById, };
720
- export { clearTransactionList, updateLatestTransactionId, parallelFetchAccountTransactionList, parallelFetchEntityTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, updateTransactionListByClassUIState, updateTransactionListByClass, updateTransactionListUIStateByCategoryType, parallelFetchTransactionListByCategoryType, };
723
+ export { clearTransactionList, updateLatestTransactionId, parallelFetchAccountTransactionList, parallelFetchEntityTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, updateTransactionListByClassUIState, updateTransactionListByClass, parallelFetchProjectTransactionList, updateTransactionListByProjectUIState, updateTransactionListByProject, updateTransactionListUIStateByCategoryType, parallelFetchTransactionListByCategoryType, };
721
724
  export { TransactionListByAccountReport, getTransactionListByAccount, getTransactionListUIStateByAccountKey, };
722
725
  export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetSelectedCustomer, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, };
723
726
  export { TransactionUpdates, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetail, uploadMissingAttachmentSuccess, deleteTransactionAttachment, getThirdPartyIdFromTransactionId, };
724
727
  export { TransactionListByEntityView, getTransactionListByEntity };
725
- export { TransactionListByClassReport, getTransactionListByClass, getTransactionListUIStateByClassKey, getTransactionListByEntityForSinglePeriod, };
728
+ export { TransactionListByClassReport, getTransactionListByClass, getTransactionListUIStateByClassKey, TransactionListByProjectReport, getTransactionListByProject, getTransactionListUIStateByProjectKey, getTransactionListByEntityForSinglePeriod, };
726
729
  export { TransactionDetailReport, getTransactionDetail, getTransactionDetailForTransaction, VendorDetailsView, getInitialUpdatablePeriodsForTransactionRecommendations as getUpdatablePeriodsForTransactionRecommendations, };
727
730
  export { getInsights, fetchInsightsCard, updateSelectedInsightIndex, InsightsView, };
728
731
  export { fetchForecastList } from './view/forecastList/forecastListReducer';
@@ -786,7 +789,7 @@ export { fetchVendorsList, updateScrollYOffset, fetchVendorsFiling1099All, fetch
786
789
  export { W9FormProcessingPayload, W9Form, updateW9FormUploadFetchState, updateW9FormUploadFile, getVendorUploadDetailsByVendorId, VendorFiling1099UploadDetailsSelectorView, VendorFiling1099UploadDetailsState, vendorFiling1099UploadDetailsSave, vendorFiling1099UploadDetailsResetFormStatus, vendorFiling1099UploadDetailsResetLocalData, initializeVendorFiling1099UploadDetailsLocalState, updateVendor1099DetailsLocalData, updateW9FormOCRDataToLocalData, VendorsFiling1099UploadDetailsLocalData, };
787
790
  export { BillTransaction, BillPayInfo, BillStage, BillStageCodeType, BillTransactionView, InternationalTransferFeeBearerPaymentMethod, DeletionSourceType, BillBulkSelectExceptionInfoType, toOutsideZeniPaymentModeType, checkShowMarkAsPaidButton, };
788
791
  export { MilageReimbursementLine, OutofPocketReimbursementLine, ReimbursementLine, ReimbursementTypeCode, Reimbursement, RemiTabType, toRemiSubTabType, toRemiSubTabTypeStrict, toRemiTabType, toRemiTabTypeStrict, toReimbursementTypeCode, RemiSubTabType, ReimbursementViewSortKey, RemiListUIState, RemiListReport, RemiListDownloadReport, ReimbursementView, ReimbursementFilters, ReimbursementFilterCategory, RemiListViewFilterCategoryField, getRemiList, getRemiDownloadList, fetchRemiList, fetchRemiListPerTab, updateRemiListTab, updateRemiListSubTab, updateRemiDetailSaveRemiCode, updateRemiListUIState, updateRemiListSearchResult, updateBillListFilterResult, updateRemiListFilterResult, REIMBURSEMENT_FILTER_CATEGORIES, REIMBURSEMENT_FILTER_CATEGORIES_RESTRICTED, updateRemiListDownloadUIState, updateBillListDownloadUIState, updateBillsBulkActionList, removeBillFromBulkActionList, clearAllBillsFromBulkActionList, getBillsBulkReviewView, BillsBulkReviewView, validateBillsBulkAction, approveOrRejectBillsBulkAction, cancelOrDeleteBillsBulkAction, submitDraftBillsBulkAction, autoReviewPendingApprovalBills, incrementBulkActionProcessedCount, getBillsBulkOperationProgress, BulkOperationProgress, clearBillPayBulkActionView, isBillConditionallyValid, getRemisBulkReviewView, RemisBulkReviewView, getRemisBulkOperationProgress, updateRemisBulkActionList, removeRemiFromBulkActionList, clearAllRemisFromBulkActionList, reviewDraftRemisBulkAction, approveOrRejectRemisBulkAction, cancelOrDeleteRemisBulkAction, submitDraftRemisBulkAction, autoReviewPendingApprovalRemis, clearRemiBulkActionView, incrementRemiBulkActionProcessedCount, RemiBulkSelectExceptionInfoType, OutsideZeniPaymentLocalData, updateOutsideZeniPaymentLocalData, discardOutsideZeniPaymentLocalData, checkIfCreatorIsApprover, };
789
- export { AccountListSelectorView, ClassListSelectorView, getClassList, fetchClassList, };
792
+ export { AccountListSelectorView, ClassListSelectorView, getClassList, fetchClassList, ProjectListSelectorView, getProjectList, fetchProjectList, };
790
793
  export { BillTab, BillsSubTabType, SaveBillStageCode, BillPayReviewSelectorView, DuplicateBillsSelectorView, EditBillDetailSelectorView, LineItemRecommendationsLocalData, EditBillInitialDetails, BillableStatus, PaymentDetailsSection, BillListReport, BillListDownloadReport, WhatForSection, fetchBillList, fetchBillListPerTab, updateTab, updateSubTab, updateSelectedBillId, updateBillDetailSaveBillCode, fetchVendorByNameAndParseInvoice, saveBillUpdatesToLocalStore, discardBillUpdatesInLocalStore, saveBillDetail, approveOrRejectBill, updateApprovalStatusOnSuccess, deleteBill, cancelAndDeleteBill, retryOrRefundBill, getBillList, getBillDownloadList, BillDetailViewSelector, ActorActivityWithUser, BillActivity, StepWithStatus, getBillDetailView, checkApproveRejectBtnShowForBill, BillDetailView, getBillTransactionDetailKey, fetchBillDetail, fetchEditBillDetailPage, fetchAndUpdateVendorRecommendations, fetchDuplicateBill, clearBillPayReview, EditBillDetail, EditBillDetailViewState, getEditBillDetail, getReviewPageBillDetail, BillDetailLocalData, PaymentDetailsSectionView, fetchBillAndInitializeLocalStore, updateShowAutofill, saveVendorSuccessOrFailure, BillPaymentStatus, BillPaymentStatusCodeType, BillPaymentRefundStatus, BillPaymentRefundStatusCodeType, BillStatus, BillStatusCodeType, BillApprovalType, updateBillListUIState, BillListUIState, BillPayViewSortKey, BillPayFilters, BillPayFilterCategory, BillListViewFilterCategoryField, BILL_PAY_FILTER_CATEGORIES, updateVendorDetailLocalData, resetVendorDetailLocalData, resetVendorSaveStatus, updateContactsInVendorDetailLocalData, updateVendorTabDetailUIState, updateContactsInVendorTabDetailLocalData, updateBillUploadFetchState, updateBillListSearchResult, fetchUserDetails, verifyUser, updateVendorContact, PaymentToOption, toPaymentToOption, convertAmountToHomeCurrency, RecurringBillInstance, RecurringBillConfigLocalData, EditRecurringBillType, fetchVendorAndUpdateBillLocalData, markBillForRetry, updateWithdrawFromAccountId, removeBillFileFromLocalStore, replaceBillFileInLocalStore, updateShouldReplaceBillData, };
791
794
  export { SpendManagementFiltersType, SpendManagementFilterEntityType, FilterCategoryType, BillPayFilterCategoryDropdownOption, ReimbursementFilterCategoryDropdownOption, TaskFilterCategoryDropdownOption, SpendManagementFilterCategoryDropdownOption, MatchingOperatorDropdownOption, CategoryCombinationOperator, hideCreatedByFilter, };
792
795
  export { BillPaySetupViewState, ZeniAccountSetupViewState, BillPaySetupViewLocalData, ZeniAccountSetupViewLocalData, PlaidAccountState, fetchBillPaySetupView, fetchZeniAccountSetupView, enableSetup, getPaymentAccounts, getPlaidLinkToken, updateSelectedCompanyOfficer, updateSetupViewLocalStoreData, updateBusinessVerificationDetails, updatePaymentAccount, updatePaymentAccountLoginStatus, updatePaymentAccountStatus, establishPlaidConnection, updateMappedCashAccount, updatePrimaryFundingAccount, acceptBillPayTerms, acceptZeniAccountTerms, acceptBillPayUpdatedTerms, saveSetupViewDataInLocalStore, saveCompnayOfficerPhoneInLocalStore, saveCompnayOfficerAdditionalDocumentsInLocalStore, saveTreasuryAdditionalDocumentsInLocalStore, saveIndustryAndIncDateInLocalStore, clearSetupViewDataInLocalStore, clearBillPaySetupView, clearZeniAccountSetupView, sendOtp, resendOtp, verifyOtp, CompanyDetails, CompanyOfficersDetails, BillPaySetupView, ZeniAccountSetupView, BillPayBusinessVerificationDetails, ZeniAccountBusinessVerificationDetails, TreasuryBusinessVerificationDetails, SetupViewState, SetupViewLocalData, SetupView, BusinessVerificationDetails, getBillPaySetupViewDetails, getPlaidAccountDetails, getZeniAccountSetupViewDetails, getBusinessVerificationDetails, getBillPayBusinessVerificationDetails, getZeniAccountBusinessVerificationDetails, getTreasuryBusinessVerificationDetails, getCommonSetupViewDetails, PlaidConnectionDetails, PlaidLinkTokenType, PlaidAccountKeyType, Token, FundingAccount, getTwoFactorAuthenticationView, getTwoFactorAuthenticationViewForCardUserOnboarding, getTwoFactorAuthenticationViewForChargeCardHolder, TwoFactorAuthenticationView, };