@zeniai/client-epic-state 5.2.86 → 5.2.87

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 (71) hide show
  1. package/lib/entity/reconciliationReport/reconciliationReportPayload.d.ts +95 -0
  2. package/lib/entity/reconciliationReport/reconciliationReportPayload.js +2 -0
  3. package/lib/entity/reconciliationReport/reconciliationReportReducer.d.ts +7 -0
  4. package/lib/entity/reconciliationReport/reconciliationReportReducer.js +151 -0
  5. package/lib/entity/reconciliationReport/reconciliationReportSelector.d.ts +3 -0
  6. package/lib/entity/reconciliationReport/reconciliationReportSelector.js +10 -0
  7. package/lib/entity/reconciliationReport/reconciliationReportState.d.ts +107 -0
  8. package/lib/entity/reconciliationReport/reconciliationReportState.js +15 -0
  9. package/lib/epic.d.ts +2 -1
  10. package/lib/epic.js +2 -0
  11. package/lib/esm/entity/reconciliationReport/reconciliationReportPayload.js +1 -0
  12. package/lib/esm/entity/reconciliationReport/reconciliationReportReducer.js +146 -0
  13. package/lib/esm/entity/reconciliationReport/reconciliationReportSelector.js +4 -0
  14. package/lib/esm/entity/reconciliationReport/reconciliationReportState.js +10 -0
  15. package/lib/esm/epic.js +2 -0
  16. package/lib/esm/index.js +5 -2
  17. package/lib/esm/reducer.js +7 -1
  18. package/lib/esm/view/expenseAutomationView/selectors/reconciliationViewSelector.js +5 -1
  19. package/lib/esm/view/invoicing/createInvoice/epics/fetchCreateInvoiceFormPageEpic.js +19 -5
  20. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +57 -4
  21. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +3 -1
  22. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionDetailPageEpic.js +7 -4
  23. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionFormPageEpic.js +1 -0
  24. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.js +2 -0
  25. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +6 -2
  26. package/lib/esm/view/invoicing/invoicingCatalogListView/epics/fetchInvoicingCatalogPlanListEpic.js +14 -3
  27. package/lib/esm/view/invoicing/invoicingCatalogListView/epics/fetchInvoicingCatalogProductListEpic.js +14 -3
  28. package/lib/esm/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewReducer.js +2 -0
  29. package/lib/esm/view/invoicing/invoicingListTabCache.js +8 -0
  30. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNotePayload.js +24 -9
  31. package/lib/esm/view/reconciliationReportView/epic/fetchReconciliationReportEpic.js +29 -0
  32. package/lib/esm/view/reconciliationReportView/reconciliationReportViewPayload.js +1 -0
  33. package/lib/esm/view/reconciliationReportView/reconciliationReportViewReducer.js +44 -0
  34. package/lib/esm/view/reconciliationReportView/reconciliationReportViewSelector.js +10 -0
  35. package/lib/esm/view/reconciliationReportView/reconciliationReportViewState.js +1 -0
  36. package/lib/index.d.ts +7 -3
  37. package/lib/index.js +52 -47
  38. package/lib/reducer.d.ts +2 -0
  39. package/lib/reducer.js +7 -1
  40. package/lib/rootStateTypes.d.ts +5 -1
  41. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.d.ts +3 -0
  42. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.js +5 -0
  43. package/lib/view/invoicing/createInvoice/epics/fetchCreateInvoiceFormPageEpic.js +18 -4
  44. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.d.ts +11 -1
  45. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +57 -4
  46. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.d.ts +2 -0
  47. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +2 -0
  48. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewState.d.ts +13 -0
  49. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionDetailPageEpic.js +6 -3
  50. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionFormPageEpic.js +1 -0
  51. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.d.ts +2 -0
  52. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.js +4 -1
  53. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +5 -1
  54. package/lib/view/invoicing/invoicingCatalogListView/epics/fetchInvoicingCatalogPlanListEpic.js +14 -3
  55. package/lib/view/invoicing/invoicingCatalogListView/epics/fetchInvoicingCatalogProductListEpic.js +14 -3
  56. package/lib/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewReducer.d.ts +6 -0
  57. package/lib/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewReducer.js +2 -0
  58. package/lib/view/invoicing/invoicingListTabCache.d.ts +11 -1
  59. package/lib/view/invoicing/invoicingListTabCache.js +10 -1
  60. package/lib/view/invoicing/issueCreditNote/issueCreditNotePayload.js +24 -9
  61. package/lib/view/reconciliationReportView/epic/fetchReconciliationReportEpic.d.ts +19 -0
  62. package/lib/view/reconciliationReportView/epic/fetchReconciliationReportEpic.js +33 -0
  63. package/lib/view/reconciliationReportView/reconciliationReportViewPayload.d.ts +3 -0
  64. package/lib/view/reconciliationReportView/reconciliationReportViewPayload.js +2 -0
  65. package/lib/view/reconciliationReportView/reconciliationReportViewReducer.d.ts +13 -0
  66. package/lib/view/reconciliationReportView/reconciliationReportViewReducer.js +48 -0
  67. package/lib/view/reconciliationReportView/reconciliationReportViewSelector.d.ts +9 -0
  68. package/lib/view/reconciliationReportView/reconciliationReportViewSelector.js +13 -0
  69. package/lib/view/reconciliationReportView/reconciliationReportViewState.d.ts +4 -0
  70. package/lib/view/reconciliationReportView/reconciliationReportViewState.js +2 -0
  71. package/package.json +1 -1
@@ -23,19 +23,30 @@ const buildProductQuery = (filters, cursor, sort) => {
23
23
  return params;
24
24
  };
25
25
  export const fetchInvoicingCatalogProductListEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInvoicingCatalogProductList.match), switchMap((action) => {
26
- const { filters, cursor, keepExistingListItems, sort } = action.payload;
26
+ const { filters, cursor, fetchAll, keepExistingListItems, sort } = action.payload;
27
27
  const apiUrl = withQuery(`${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/catalog/plans`, buildProductQuery(filters, cursor, sort));
28
28
  return zeniAPI.getJSON(apiUrl).pipe(switchMap((response) => {
29
29
  if (isSuccessResponse(response)) {
30
30
  const items = response.data?.items ?? [];
31
- return [
31
+ const nextCursor = response.data?.next_cursor ?? null;
32
+ const pageActions = [
32
33
  updateInvoicingCatalogItems(items, 'merge'),
33
34
  updateInvoicingCatalogProductList({
34
35
  ids: items.map((item) => item.id),
35
- nextCursor: response.data?.next_cursor ?? null,
36
+ nextCursor,
36
37
  keepExistingListItems,
37
38
  }),
38
39
  ];
40
+ if (fetchAll && nextCursor != null && nextCursor !== cursor) {
41
+ pageActions.push(fetchInvoicingCatalogProductList({
42
+ cursor: nextCursor,
43
+ fetchAll,
44
+ filters,
45
+ keepExistingListItems: true,
46
+ sort,
47
+ }));
48
+ }
49
+ return pageActions;
39
50
  }
40
51
  return of(updateInvoicingCatalogProductListFailure(response.status));
41
52
  }), catchError((error) => of(updateInvoicingCatalogProductListFailure(createZeniAPIStatus('Unexpected Error', 'Fetch catalog product list REST API call errored out ' +
@@ -36,6 +36,7 @@ const invoicingCatalogListView = createSlice({
36
36
  payload: {
37
37
  filters: payload.filters ?? {},
38
38
  cursor: payload.cursor,
39
+ fetchAll: payload.fetchAll ?? false,
39
40
  keepExistingListItems: payload.keepExistingListItems ?? false,
40
41
  sort: payload.sort,
41
42
  },
@@ -70,6 +71,7 @@ const invoicingCatalogListView = createSlice({
70
71
  payload: {
71
72
  filters: payload.filters ?? {},
72
73
  cursor: payload.cursor,
74
+ fetchAll: payload.fetchAll ?? false,
73
75
  keepExistingListItems: payload.keepExistingListItems ?? false,
74
76
  sort: payload.sort,
75
77
  },
@@ -33,6 +33,14 @@ export const isSameInvoicingListQuery = (a, b) => {
33
33
  a.sort?.field === b.sort?.field &&
34
34
  a.sort?.dir === b.sort?.dir);
35
35
  };
36
+ /**
37
+ * For a picker that searches client-side: reuse only a complete list fetched
38
+ * with the picker's own query, else load every page of it.
39
+ */
40
+ export const shouldFetchFullInvoicingList = (list, pickerFilters, cacheOverride) => cacheOverride ||
41
+ list.fetchState !== 'Completed' ||
42
+ list.nextCursor != null ||
43
+ !isSameInvoicingListQuery({ filters: list.filters, sort: list.sort }, { filters: pickerFilters });
36
44
  /**
37
45
  * Fetch a tab that is empty or failed; top up one that holds less than a page
38
46
  * while the server says there is more; leave a full or complete one cached.
@@ -32,17 +32,32 @@ export const localDataToIssueCreditNotePayload = (localData) => {
32
32
  ...(type !== '' ? { type } : {}),
33
33
  };
34
34
  };
35
+ /**
36
+ * The rate a unit was actually billed at. A plan or add-on line covering
37
+ * several periods carries the per-period `unit_amount` but the full term in
38
+ * `amount`, so only `amount` / `quantity` lets crediting every unit reach what
39
+ * the line billed.
40
+ */
41
+ const billedUnitAmount = (lineItem) => lineItem.quantity > 0
42
+ ? {
43
+ ...lineItem.amount,
44
+ amount: Math.round((lineItem.amount.amount / lineItem.quantity) * 100) / 100,
45
+ }
46
+ : lineItem.unitAmount;
35
47
  export const initializeIssueCreditNoteDraftFromInvoice = (invoice) => ({
36
48
  invoiceId: invoice.id,
37
49
  reasonCode: '',
38
50
  type: '',
39
- lineItems: (invoice.lineItems ?? []).map((lineItem) => ({
40
- description: lineItem.description,
41
- id: lineItem.id,
42
- maxQuantity: lineItem.quantity,
43
- maxUnitAmount: lineItem.unitAmount,
44
- quantity: String(lineItem.quantity),
45
- selected: true,
46
- unitAmount: lineItem.unitAmount,
47
- })),
51
+ lineItems: (invoice.lineItems ?? []).map((lineItem) => {
52
+ const unitAmount = billedUnitAmount(lineItem);
53
+ return {
54
+ description: lineItem.description,
55
+ id: lineItem.id,
56
+ maxQuantity: lineItem.quantity,
57
+ maxUnitAmount: unitAmount,
58
+ quantity: String(lineItem.quantity),
59
+ selected: true,
60
+ unitAmount,
61
+ };
62
+ }),
48
63
  });
@@ -0,0 +1,29 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { updateReconciliationReport } from '../../../entity/reconciliationReport/reconciliationReportReducer';
4
+ import { getReconciliationReportByReconciliationId } from '../../../entity/reconciliationReport/reconciliationReportSelector';
5
+ import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
6
+ import { fetchReconciliationReport, fetchReconciliationReportFailure, fetchReconciliationReportSuccess, } from '../reconciliationReportViewReducer';
7
+ export const fetchReconciliationReportEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(fetchReconciliationReport.match), switchMap((action) => {
8
+ const { reconciliationId, cacheOverride } = action.payload;
9
+ const cachedReport = getReconciliationReportByReconciliationId(state$.value.reconciliationReportState, reconciliationId);
10
+ if (cacheOverride === true || cachedReport == null) {
11
+ return zeniAPI
12
+ .getJSON(`${zeniAPI.apiEndPoints.reconciliationMicroServiceBaseUrl}/2.0/reconciliation/${reconciliationId}/report`)
13
+ .pipe(mergeMap((response) => {
14
+ if (isSuccessResponse(response) === true &&
15
+ response.data != null) {
16
+ return of(updateReconciliationReport(response.data), fetchReconciliationReportSuccess(reconciliationId));
17
+ }
18
+ return of(fetchReconciliationReportFailure({
19
+ reconciliationId,
20
+ status: response.status,
21
+ }));
22
+ }), catchError((error) => of(fetchReconciliationReportFailure({
23
+ reconciliationId,
24
+ status: createZeniAPIStatus('Unexpected Error', 'Fetch Reconciliation Report REST API call errored out' +
25
+ JSON.stringify(error)),
26
+ }))));
27
+ }
28
+ return of(fetchReconciliationReportSuccess(reconciliationId));
29
+ }));
@@ -0,0 +1,44 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ import { clearAll } from '../../rootActions';
3
+ export const initialState = {
4
+ fetchReconciliationReportState: {},
5
+ };
6
+ const reconciliationReportView = createSlice({
7
+ name: 'reconciliationReportView',
8
+ initialState,
9
+ reducers: {
10
+ fetchReconciliationReport: {
11
+ prepare(reconciliationId, cacheOverride = false) {
12
+ return { payload: { reconciliationId, cacheOverride } };
13
+ },
14
+ reducer(draft, action) {
15
+ const { reconciliationId } = action.payload;
16
+ draft.fetchReconciliationReportState[reconciliationId] = {
17
+ fetchState: 'In-Progress',
18
+ error: undefined,
19
+ };
20
+ },
21
+ },
22
+ fetchReconciliationReportSuccess(draft, action) {
23
+ const reconciliationId = action.payload;
24
+ draft.fetchReconciliationReportState[reconciliationId] = {
25
+ fetchState: 'Completed',
26
+ error: undefined,
27
+ };
28
+ },
29
+ fetchReconciliationReportFailure(draft, action) {
30
+ const { reconciliationId, status } = action.payload;
31
+ draft.fetchReconciliationReportState[reconciliationId] = {
32
+ fetchState: 'Error',
33
+ error: status,
34
+ };
35
+ },
36
+ },
37
+ extraReducers: (builder) => {
38
+ builder.addCase(clearAll, (draft) => {
39
+ Object.assign(draft, initialState);
40
+ });
41
+ },
42
+ });
43
+ export const { fetchReconciliationReport, fetchReconciliationReportSuccess, fetchReconciliationReportFailure, } = reconciliationReportView.actions;
44
+ export default reconciliationReportView.reducer;
@@ -0,0 +1,10 @@
1
+ import { getReconciliationReportByReconciliationId } from '../../entity/reconciliationReport/reconciliationReportSelector';
2
+ export function getReconciliationReport(state, reconciliationId) {
3
+ const fetchReconciliationReportState = state.reconciliationReportViewState.fetchReconciliationReportState[reconciliationId];
4
+ const report = getReconciliationReportByReconciliationId(state.reconciliationReportState, reconciliationId);
5
+ return {
6
+ fetchState: fetchReconciliationReportState?.fetchState ?? 'Not-Started',
7
+ fetchError: fetchReconciliationReportState?.error,
8
+ report,
9
+ };
10
+ }
package/lib/index.d.ts CHANGED
@@ -123,6 +123,7 @@ import { Logo, PaymentAccount, VERIFIED_PAYMENT_ACCOUNT_PROVIDER_VERIFICATION_ST
123
123
  import { PaymentInstrument } from './entity/paymentInstrument/paymentInstrument';
124
124
  import { AccountingSummary, Runway } from './entity/portfolio/accountingSummary/accountingSummaryState';
125
125
  import { Project, ProjectBase } from './entity/project/projectState';
126
+ import { ReconciliationReport, ReconciliationReportBucket, ReconciliationReportCountAmount, ReconciliationReportMatchType, ReconciliationReportTransactionRow } from './entity/reconciliationReport/reconciliationReportState';
126
127
  import { MilageReimbursementLine, OutofPocketReimbursementLine, Reimbursement, ReimbursementLine, ReimbursementTypeCode } from './entity/reimbursement/reimbursementState';
127
128
  import { SectionAccountsViewReport } from './entity/sectionAccountsView/sectionAccountsViewSelector';
128
129
  import { SectionClassesView as SectionClassesViewV2 } from './entity/sectionClassesViewV2/sectionClassesView';
@@ -330,7 +331,7 @@ import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationVi
330
331
  import { getNewAccrualAccountsView as getJeNewAccrualAccountsView, getNewScheduleSearchTransactionsView as getJeNewScheduleSearchTransactionsView, getNewScheduleView as getJeNewScheduleView } from './view/expenseAutomationView/selectors/jeNewScheduleViewSelector';
331
332
  import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomationView/selectors/jeScheduledTransactionWithFailedEntries';
332
333
  import { ExpenseAutomationJEOneTimeAccrualDetailView } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
333
- import { getExpenseAutomationReconciliationView, getLedgerAccountIdsWithStatementOverrideWarning, getLedgerAccountsForCombinedStatementMapping, getReparseStatementStatusByAccountId, getUnavailableLedgerAccountIds, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
334
+ import { getAccountReconciliationRecordsBySelectedPeriod, getExpenseAutomationReconciliationView, getLedgerAccountIdsWithStatementOverrideWarning, getLedgerAccountsForCombinedStatementMapping, getReparseStatementStatusByAccountId, getUnavailableLedgerAccountIds, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
334
335
  import { getExpenseAutomationTransactionView, getLastTransferEntryReplacement } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
335
336
  import { applyTransactionFilters } from './view/expenseAutomationView/transactionFilterHelpers';
336
337
  import { TRANSACTION_FILTER_CATEGORIES, TransactionFilterAmountMatchingOperator, TransactionFilterCategory, TransactionFilterCategoryDropdownOption, TransactionFilterCategoryField, TransactionFilterEntityType, TransactionFilters } from './view/expenseAutomationView/transactionFilterTypes';
@@ -433,6 +434,8 @@ import { fetchProjectList } from './view/projectList/projectListReducer';
433
434
  import { ProjectListSelectorView, getProjectList } from './view/projectList/projectListSelector';
434
435
  import { fetchEntityRecommendationsByTransactionId, fetchEntityRecommendationsForLineUpdate, fetchRecommendationByEntityId, fetchRecommendationByEntityName, submitRecommendationFeedback } from './view/recommendation/recommendationReducer';
435
436
  import { getRecommendationFeedbackSubmitState } from './view/recommendation/recommendationSelector';
437
+ import { fetchReconciliationReport } from './view/reconciliationReportView/reconciliationReportViewReducer';
438
+ import { getReconciliationReport } from './view/reconciliationReportView/reconciliationReportViewSelector';
436
439
  import { DEFAULT_REFERRER_AMOUNT, clearReferrals, fetchReferrals, fetchRewardsPlan, resendReferralInvite, saveReferralFormDataInLocalStore, sendReferralInvite, updateReferViewed, updateReferralListSortUiState } from './view/referralView/referralReducer';
437
440
  import { ReferralListSelectorView, RewardsPlanCardReport, getInviteFormView, getReferralListView, getRewardsPlanCard } from './view/referralView/referralSelector';
438
441
  import { AmountStatusTypes, InviteCompanyLocalData, ReferralAmountStatus, ReferralInvitation, ReferralListViewSortKey, ReferralStatus, ReferralViewState, ReferralViewUIState, RewardsPlanData, StatusTypes, toReferralListViewSortKeyType } from './view/referralView/referralState';
@@ -737,7 +740,7 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
737
740
  export { ClassesViewSelectorReportV2 };
738
741
  export { BalancesTimeseries, TrendTimeseries, BalanceKind };
739
742
  export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, MonthCloseCheckProgressJson, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
740
- export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, DEFAULT_COMPLETED_SUB_TAB, DEFAULT_TRANSACTION_GROUP, TRANSACTION_GROUPS, TransactionGroup, toTransactionGroup, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, ExpenseAutomationActualMatchingViewSelector, ActualMatchingGroupedAccrual, ActualMatchingJournalEntryIds, ActualMatchingLeftoverAccrual, ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingMatchView, ActualMatchingRow, ActualMatchingRowKind, ExpenseAutomationActualMatchingSortKey, ExpenseAutomationActualMatchingStatusFilter, ExpenseAutomationActualMatchingViewUIState, ActualMatchingTransactionSearchResult, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, ALL_ACTUAL_MATCHING_IGNORE_REASONS, ActualMatchingIgnoreReasonType, IgnoreActualMatchingSuggestionParams, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, actualMatchingTransactionLineKey, JEKpiSummary, ALL_JE_PAGE_TABS, JEPageTab, MATCH_ACCRUAL_SEARCH_LIMIT, MATCH_SEARCH_DEBOUNCE_MS, MATCH_TRANSACTION_SEARCH_PAGE_SIZE, toExpenseAutomationJEScheduleSortKey, toExpenseAutomationActualMatchingSortKey, toExpenseAutomationActualMatchingStatusFilter, toActualMatchingIgnoreReasonType, toJEPageTab, toMatchAndReverseResultStatus, toUndoReversalResultStatus, toggleJECreatedGroupCollapsed, toggleJEFailedGroupCollapsed, toggleJEPendingGroupCollapsed, updateJEScheduleTypeFilter, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, toExpenseAutomationViewTypeStrict, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, updateTransactionGroup, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, clearBulkUploadBatchDetailsForScopeChange, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, getLedgerAccountIdsWithStatementOverrideWarning, getLedgerAccountsForCombinedStatementMapping, getReparseStatementStatusByAccountId, getUnavailableLedgerAccountIds, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, updateStatementProcessingFailed, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, CombinedStatementAccount, StatementAccountScope, StatementDataStatusCodeType, deleteAccountStatement, deleteCombinedStatement, uploadAccountStatement, parseCombinedStatement, parseStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, submitCombinedStatementUpdate, submitStatementUpdate, clearStatementDateConflict, confirmStatementMapping, StatementDateConflict, updateStatementUpdateLocalData, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, setStatementProcessingDismissedToBackground, updateStatementProcessingBackgroundCompletedSteps, ParsedStatementData, StatementUpdateLocalData, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, };
743
+ export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, DEFAULT_COMPLETED_SUB_TAB, DEFAULT_TRANSACTION_GROUP, TRANSACTION_GROUPS, TransactionGroup, toTransactionGroup, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, ExpenseAutomationActualMatchingViewSelector, ActualMatchingGroupedAccrual, ActualMatchingJournalEntryIds, ActualMatchingLeftoverAccrual, ActualMatchingKpiSummary, ActualMatchingMatchModalView, ActualMatchingMatchView, ActualMatchingRow, ActualMatchingRowKind, ExpenseAutomationActualMatchingSortKey, ExpenseAutomationActualMatchingStatusFilter, ExpenseAutomationActualMatchingViewUIState, ActualMatchingTransactionSearchResult, MatchAndReverseAccrualsParams, MatchAndReverseResult, MatchAndReverseResultStatus, ALL_ACTUAL_MATCHING_IGNORE_REASONS, ActualMatchingIgnoreReasonType, IgnoreActualMatchingSuggestionParams, UndoReversalAccrualsParams, UndoReversalResult, UndoReversalResultStatus, actualMatchingTransactionLineKey, JEKpiSummary, ALL_JE_PAGE_TABS, JEPageTab, MATCH_ACCRUAL_SEARCH_LIMIT, MATCH_SEARCH_DEBOUNCE_MS, MATCH_TRANSACTION_SEARCH_PAGE_SIZE, toExpenseAutomationJEScheduleSortKey, toExpenseAutomationActualMatchingSortKey, toExpenseAutomationActualMatchingStatusFilter, toActualMatchingIgnoreReasonType, toJEPageTab, toMatchAndReverseResultStatus, toUndoReversalResultStatus, toggleJECreatedGroupCollapsed, toggleJEFailedGroupCollapsed, toggleJEPendingGroupCollapsed, updateJEScheduleTypeFilter, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, toExpenseAutomationViewTypeStrict, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, updateTransactionGroup, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, clearBulkUploadBatchDetailsForScopeChange, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getAccountReconciliationRecordsBySelectedPeriod, getExpenseAutomationReconciliationView, getLedgerAccountIdsWithStatementOverrideWarning, getLedgerAccountsForCombinedStatementMapping, getReparseStatementStatusByAccountId, getUnavailableLedgerAccountIds, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, updateStatementProcessingFailed, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, CombinedStatementAccount, StatementAccountScope, StatementDataStatusCodeType, deleteAccountStatement, deleteCombinedStatement, uploadAccountStatement, parseCombinedStatement, parseStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, submitCombinedStatementUpdate, submitStatementUpdate, clearStatementDateConflict, confirmStatementMapping, StatementDateConflict, updateStatementUpdateLocalData, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, setStatementProcessingDismissedToBackground, updateStatementProcessingBackgroundCompletedSteps, ParsedStatementData, StatementUpdateLocalData, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, };
741
744
  export { JEScheduleLocalData };
742
745
  export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, ExpenseAutomationJEOneTimeAccrualDetailView, JEScheduleRow, JEScheduledTransactionWithFailedEntries, NewJeDetailLocalData, NewJeScheduleState, NewOneTimeAccrualLocalData, NewAccrualAccountsView, NewScheduleLocalData, NewScheduleLocalDataFixedAssets, NewScheduleSearchTransactionsView, NewScheduleView, SearchTransactionsState, computeNewScheduleJeDetails, createOneTimeAccrual, createOneTimeAccrualFailure, createOneTimeAccrualSuccess, fetchOneTimeAccrual, getJeNewAccrualAccountsView, ignoreOneTimeAccrual, promoteOneTimeAccrual, revertJeSchedule, revertOneTimeAccrual, getJeNewScheduleSearchTransactionsView, getJeNewScheduleView, };
743
746
  export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateTransactionFilters, updateSelectedCheckboxTransactionIds, markCategoryClassRecommendationsFailureForCategorization, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, createTransferEntry, createTransferEntryFailure, createTransferEntryReplacedTransaction, createTransferEntrySuccess, resetCreateTransferEntryStatus, clearTransferEntryRouteReplacement, fetchAccountsForTransferFlow, removeTransactionFromAllTabs, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
@@ -833,6 +836,7 @@ export { EntityAutoCompleteView, getEntityAutoCompleteResults };
833
836
  export { updateEntities };
834
837
  export { getEntityByEntityIDs };
835
838
  export { Address, getAddressByAddressId };
839
+ export { ReconciliationReport, ReconciliationReportBucket, ReconciliationReportCountAmount, ReconciliationReportMatchType, ReconciliationReportTransactionRow, fetchReconciliationReport, getReconciliationReport, };
836
840
  export { Subscription, SubscriptionSchemaKeys };
837
841
  export { SubscriptionAddOn, SubscriptionAddOnWithSchema, SubscriptionAddOnSchemaKeys, };
838
842
  export { SubscriptionCoupon, SubscriptionCouponSchemaKeys };
@@ -1130,7 +1134,7 @@ export { getInvoicingCustomerFormView } from './view/invoicing/editInvoicingCust
1130
1134
  export type { InvoicingCustomerFormView } from './view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector';
1131
1135
  export { clearInvoicingSubscriptionEstimate, fetchInvoicingSubscriptionEstimate, fetchInvoicingSubscriptionFormPage, initializeInvoicingSubscriptionAddress, resetEditInvoicingSubscriptionDetailView, submitInvoicingSubscriptionForm, updateInvoicingSubscriptionFormDraft, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer';
1132
1136
  export type { SubmitInvoicingSubscriptionFormPayload, UpdateInvoicingSubscriptionFormDraftPayload, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer';
1133
- export type { InvoicingSubscriptionEstimateLineItem, InvoicingSubscriptionFormLocalData, InvoicingSubscriptionInvoiceEstimate, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewState';
1137
+ export type { InvoicingSubscriptionEstimateCoupon, InvoicingSubscriptionEstimateLineItem, InvoicingSubscriptionFormLocalData, InvoicingSubscriptionInvoiceEstimate, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewState';
1134
1138
  export { INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE, entityToInvoicingSubscriptionFormLocalData, initialInvoicingSubscriptionFormLocalData, invoicingSubscriptionTodayIso, toInvoicingSubscriptionQuantity, } from './view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig';
1135
1139
  export { getEditInvoicingSubscriptionDetailViewState, getInvoicingSubscriptionFormView, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector';
1136
1140
  export type { EditInvoicingSubscriptionDetailView, InvoicingSubscriptionEstimateKind, InvoicingSubscriptionEstimateView, InvoicingSubscriptionFormView, InvoicingSubscriptionOption, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector';