@zeniai/client-epic-state 4.19.53-betaAR1 → 4.19.53

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 (24) hide show
  1. package/lib/entity/account/accountSelector.d.ts +0 -18
  2. package/lib/entity/account/accountSelector.js +1 -31
  3. package/lib/entity/account/accountState.d.ts +0 -5
  4. package/lib/entity/account/accountState.js +4 -11
  5. package/lib/entity/class/classSelector.d.ts +0 -5
  6. package/lib/entity/class/classSelector.js +0 -8
  7. package/lib/esm/entity/account/accountSelector.js +1 -29
  8. package/lib/esm/entity/account/accountState.js +1 -7
  9. package/lib/esm/entity/class/classSelector.js +0 -7
  10. package/lib/esm/index.js +6 -7
  11. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +1 -11
  12. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +8 -57
  13. package/lib/esm/view/spendManagement/spendManagementFilterHelpers.js +15 -198
  14. package/lib/index.d.ts +9 -9
  15. package/lib/index.js +30 -37
  16. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  17. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -5
  18. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +2 -12
  19. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +1 -4
  20. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +8 -59
  21. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +0 -2
  22. package/lib/view/spendManagement/spendManagementFilterHelpers.d.ts +4 -45
  23. package/lib/view/spendManagement/spendManagementFilterHelpers.js +16 -199
  24. package/package.json +1 -1
@@ -7,81 +7,28 @@ import { ALL_BILL_TABS, getBillListKey, } from './billPay/billList/billListState
7
7
  import { getActualPaymentDate } from './helpers';
8
8
  import { getApproversOrRejectors as getApproversOrRejectorsForReimbursement, } from './reimbursement/remiListView/remiListSelector';
9
9
  import { ALL_REMI_TABS, getRemiListKey, } from './reimbursement/remiListView/remiListState';
10
- export const TRANSACTION_FILTER_CATEGORIES = [
11
- { value: 'payment_account_name', type: 'dropdown' },
12
- { value: 'payment_account_type', type: 'dropdown' },
13
- { value: 'payee', type: 'searchAutocomplete' },
14
- { value: 'category', type: 'dropdown' },
15
- { value: 'class', type: 'dropdown' },
16
- { value: 'amount', type: 'numberRange' },
17
- ];
18
10
  //filters items against filter values representing a range. ex: date (from-to), amount(1k<-->5k)
19
- // For amount: supports new transaction_categorization operators (inBetween, lessThan, greaterThan) and
20
- // backward compatibility for old format values: ["1000<->5000"] with matchingOperator "equal".
21
- // Other entities (bill_pay, reimbursement, etc.) use only equal/not-equal and are unchanged.
22
11
  const filterItemOnRangeCategoryType = (valueForItem, currentFilter) => {
23
12
  let doesItemFallInValueRange = false;
24
13
  const filterField = currentFilter.field;
25
14
  if (filterField === 'amount') {
26
- const currentValue = Number(valueForItem);
27
- const op = currentFilter.matchingOperator;
28
- const values = currentFilter.values;
29
- if (op === 'inBetween') {
30
- // New format: values = [min, max] (expense automation transaction_categorization only)
31
- if (values.length >= 2) {
32
- const min = Number(values[0]);
33
- const max = Number(values[1]);
34
- doesItemFallInValueRange = currentValue >= min && currentValue <= max;
35
- }
36
- }
37
- else if (op === 'lessThan') {
38
- if (values.length >= 1) {
39
- const threshold = Number(values[0]);
40
- doesItemFallInValueRange = currentValue < threshold;
41
- }
42
- }
43
- else if (op === 'greaterThan') {
44
- if (values.length >= 1) {
45
- const threshold = Number(values[0]);
46
- doesItemFallInValueRange = currentValue > threshold;
47
- }
48
- }
49
- else if (op === 'equal' &&
50
- values.length === 1 &&
51
- String(values[0]).includes('<->')) {
52
- // Backward compatibility: old format ["1000<->5000"] with matchingOperator "equal"
53
- const parts = String(values[0]).split('<->');
54
- const lowerValue = Number(parts[0] ?? '');
55
- const higherValue = Number(parts[1] ?? '');
56
- doesItemFallInValueRange =
57
- currentValue >= lowerValue && currentValue <= higherValue;
58
- }
59
- else if (op === 'equal' && values.length === 1) {
60
- // New format: exact match on single value (expense automation)
61
- const val = Number(values[0]);
62
- doesItemFallInValueRange = currentValue === val;
63
- }
64
- else {
65
- // Existing logic for equal/not-equal (bill_pay, reimbursement, etc. or multiple range values)
66
- for (const filterValue of values) {
67
- const lowerValue = Number.parseInt(filterValue?.toString()?.split('<->')[0] ?? '', 10);
68
- const higherValue = Number.parseInt(filterValue?.toString()?.split('<->')[1] ?? '', 10);
69
- if (currentValue >= lowerValue && currentValue <= higherValue) {
70
- doesItemFallInValueRange = true;
71
- }
15
+ for (const filterValue of currentFilter.values) {
16
+ const currentValue = parseInt(valueForItem.toString());
17
+ const lowerValue = parseInt(filterValue?.toString()?.split('<->')[0] ?? '');
18
+ const higherValue = parseInt(filterValue?.toString()?.split('<->')[1] ?? '');
19
+ if (currentValue >= lowerValue && currentValue <= higherValue) {
20
+ doesItemFallInValueRange = true;
72
21
  }
73
22
  }
74
- return op === 'not-equal'
75
- ? !doesItemFallInValueRange
76
- : doesItemFallInValueRange;
77
23
  }
78
- // Date range and other range fields (unchanged for other entities)
79
- const currentValue = valueForItem;
80
- const lowerValue = currentFilter.values[0];
81
- const higherValue = currentFilter.values[1];
82
- if (currentValue.isSameOrAfter(lowerValue) &&
83
- currentValue.isSameOrBefore(higherValue)) {
84
- doesItemFallInValueRange = true;
24
+ else {
25
+ const currentValue = valueForItem;
26
+ const lowerValue = currentFilter.values[0];
27
+ const higherValue = currentFilter.values[1];
28
+ if (currentValue.isSameOrAfter(lowerValue) &&
29
+ currentValue.isSameOrBefore(higherValue)) {
30
+ doesItemFallInValueRange = true;
31
+ }
85
32
  }
86
33
  return currentFilter.matchingOperator === 'equal'
87
34
  ? doesItemFallInValueRange
@@ -166,11 +113,7 @@ export const applyAdvancedFiltersOnList = (entity, allItems, filters, filteredIt
166
113
  ? getCategoryValueForReimbursement(key, item)
167
114
  : entity === 'task_management'
168
115
  ? getCategoryValueForTaskList(key, item)
169
- : entity === 'transaction_categorization'
170
- ? getCategoryValueForTransaction(key, item)
171
- : entity === 'charge_card_payment_history'
172
- ? getCategoryValueForPaymentHistory(key, item)
173
- : undefined;
116
+ : getCategoryValueForPaymentHistory(key, item);
174
117
  if (categoryValue == null) {
175
118
  if (currentFilter.matchingOperator === 'not-equal') {
176
119
  return true;
@@ -291,132 +234,6 @@ const getCategoryValueForReimbursement = (key, reimbursement) => {
291
234
  return undefined;
292
235
  }
293
236
  };
294
- const getCategoryValueForTransaction = (key, transaction) => {
295
- switch (key) {
296
- case 'amount': {
297
- // Get from transactionLocalData line items (preferred) - sum all line item amounts
298
- const localDataForAmount = transaction.transactionLocalData?.transactionReviewLocalData;
299
- if (localDataForAmount?.lineItemById) {
300
- const lineItems = Object.values(localDataForAmount.lineItemById);
301
- if (lineItems.length > 0) {
302
- // Sum all line item amounts
303
- const totalAmount = lineItems.reduce((sum, lineItem) => sum + (lineItem.amount?.amount ?? 0), 0);
304
- return totalAmount;
305
- }
306
- }
307
- // Fallback to transaction-level amount or sum from transaction lines
308
- if (transaction.transaction.lines &&
309
- transaction.transaction.lines.length > 0) {
310
- const totalAmount = transaction.transaction.lines.reduce((sum, line) => sum + (line.amount?.amount ?? 0), 0);
311
- return totalAmount;
312
- }
313
- // Final fallback to transaction amount
314
- return transaction.amount.amount;
315
- }
316
- case 'payee': {
317
- // Priority: vendorName > customerName > from transactionLocalData
318
- if (transaction.vendorName) {
319
- return transaction.vendorName;
320
- }
321
- if (transaction.customerName) {
322
- return transaction.customerName;
323
- }
324
- // Check transactionLocalData for vendor/customer
325
- const localData = transaction.transactionLocalData?.transactionReviewLocalData;
326
- if (localData?.vendor?.name) {
327
- return localData.vendor.name;
328
- }
329
- if (localData?.customer?.name) {
330
- return localData.customer.name;
331
- }
332
- return undefined;
333
- }
334
- case 'payment_account_name': {
335
- // Get from transaction.account or from lines
336
- if (transaction.transaction.account?.accountName) {
337
- return transaction.transaction.account.accountName;
338
- }
339
- // Get from first line's account
340
- const firstLine = transaction.transaction.lines?.[0];
341
- if (firstLine?.type === 'transaction_with_account_and_class_line' ||
342
- firstLine?.type === 'transaction_with_product_or_service_line' ||
343
- firstLine?.type === 'journal_entry_transaction_line') {
344
- const accountLine = firstLine;
345
- return accountLine.account?.accountName;
346
- }
347
- return undefined;
348
- }
349
- case 'payment_account_type': {
350
- // Similar to payment_account_name but for type
351
- if (transaction.transaction.account?.accountType) {
352
- return transaction.transaction.account.accountType;
353
- }
354
- const firstLineForType = transaction.transaction.lines?.[0];
355
- if (firstLineForType?.type === 'transaction_with_account_and_class_line' ||
356
- firstLineForType?.type === 'transaction_with_product_or_service_line' ||
357
- firstLineForType?.type === 'journal_entry_transaction_line') {
358
- const accountLineForType = firstLineForType;
359
- return accountLineForType.account?.accountType;
360
- }
361
- return undefined;
362
- }
363
- case 'category': {
364
- // Get from transactionLocalData (preferred) or from transaction lines
365
- const localDataForCategory = transaction.transactionLocalData?.transactionReviewLocalData;
366
- if (localDataForCategory) {
367
- // Get category from first line item or most common
368
- const firstLineItem = Object.values(localDataForCategory.lineItemById)[0];
369
- if (firstLineItem?.account?.accountId) {
370
- return firstLineItem.account.accountId;
371
- }
372
- if (firstLineItem?.account?.qboId) {
373
- return firstLineItem.account.qboId;
374
- }
375
- if (firstLineItem?.account?.accountName) {
376
- return firstLineItem.account.accountName;
377
- }
378
- }
379
- // Fallback to transaction lines
380
- const firstLineForCategory = transaction.transaction.lines?.[0];
381
- if (firstLineForCategory?.type ===
382
- 'transaction_with_account_and_class_line' ||
383
- firstLineForCategory?.type ===
384
- 'transaction_with_product_or_service_line' ||
385
- firstLineForCategory?.type === 'journal_entry_transaction_line') {
386
- const account = firstLineForCategory.account;
387
- return account?.accountId ?? account?.qboId ?? account?.accountName;
388
- }
389
- return undefined;
390
- }
391
- case 'class': {
392
- // Similar to category but for class
393
- const localDataForClass = transaction.transactionLocalData?.transactionReviewLocalData;
394
- if (localDataForClass) {
395
- const firstLineItemForClass = Object.values(localDataForClass.lineItemById)[0];
396
- if (firstLineItemForClass?.class?.classId) {
397
- return firstLineItemForClass.class.classId;
398
- }
399
- if (firstLineItemForClass?.class?.qboId) {
400
- return firstLineItemForClass.class.qboId;
401
- }
402
- if (firstLineItemForClass?.class?.className) {
403
- return firstLineItemForClass.class.className;
404
- }
405
- }
406
- const firstLineForClass = transaction.transaction.lines?.[0];
407
- if (firstLineForClass?.type === 'transaction_with_account_and_class_line' ||
408
- firstLineForClass?.type ===
409
- 'transaction_with_product_or_service_line' ||
410
- firstLineForClass?.type === 'journal_entry_transaction_line') {
411
- const classData = firstLineForClass.class;
412
- return classData?.classId ?? classData?.qboId ?? classData?.className;
413
- }
414
- return undefined;
415
- }
416
- default:
417
- return undefined;
418
- }
419
- };
420
237
  const getCategoryValueForPaymentHistory = (key, repayment) => {
421
238
  switch (key) {
422
239
  case 'repaymentDate':
package/lib/index.d.ts CHANGED
@@ -37,8 +37,8 @@ import { AgingDateSelectionType, AgingDetailReportInvoice, AgingDetailReportUISt
37
37
  import { isAgingReport, isCashFlowOrBalanceSheetReport, isDashboardClassesViewReport, isDashboardReport, isFluxAnalysisOpExReport, isOpExByVendorReport, isPAndLClassesViewReport, isPAndLReport } from './commonStateTypes/viewAndReport/reportIDHelper';
38
38
  import { PageToken, Report, ReportFormat, ReportID, ReportIDPlusForecastID, SelectorReport, SelectorView, View, toReportFormatStrict, toReportID } from './commonStateTypes/viewAndReport/viewAndReport';
39
39
  import { PAYMENT_BUSINESS_DAYS, filterDays, getNextNthWorkingDay, getPreviousNthWorkingDay, getYearsList, holidaysFormatted, isHoliday, isHolidayToday } from './commonStateTypes/workingDayHelper';
40
- import { AccountReport, AccountWithBalanceReport, getAllAccounts, getTransactionFilterAccountOptions } from './entity/account/accountSelector';
41
- import { Account, AccountBase, ALL_ACCOUNT_TYPES, AccountType, RecommendedAccountBase, ReconciliationAccountSourceType, StatementCloseDay, toAccountType, toReconciliationAccountSource } from './entity/account/accountState';
40
+ import { AccountReport, AccountWithBalanceReport } from './entity/account/accountSelector';
41
+ import { Account, AccountBase, AccountType, RecommendedAccountBase, ReconciliationAccountSourceType, StatementCloseDay, toAccountType, toReconciliationAccountSource } from './entity/account/accountState';
42
42
  import { NestedAccountReport } from './entity/account/subAccountSelector';
43
43
  import { AccountGroupReport } from './entity/accountGroup/accountGroupSelector';
44
44
  import { AccountGroup, AccountGroupKey, AccountGroupType, getAccountGroupKey, toAccountGroupType } from './entity/accountGroup/accountGroupState';
@@ -266,7 +266,7 @@ import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFl
266
266
  import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
267
267
  import { fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
268
268
  import { deleteAccountStatement, fetchReconciliation as fetchReconciliationView, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
269
- import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionFilters } from './view/expenseAutomationView/reducers/transactionsViewReducer';
269
+ import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markTransactionAsNotMiscategorized, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState } from './view/expenseAutomationView/reducers/transactionsViewReducer';
270
270
  import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
271
271
  import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
272
272
  import { JEAccountSettingsView } from './view/expenseAutomationView/selectorTypes/jeAccountSettingsViewSelectorTypes';
@@ -482,7 +482,7 @@ import { RemiBusinessVerificationDetails, RemiSetupView, getRemiBusinessVerifica
482
482
  import { MileageDenomination, MileageDetailsLocalData, RemiSetupViewLocalData, RemiSetupViewState } from './view/spendManagement/reimbursement/remiSetupView/remiSetupViewState';
483
483
  import { approveOrRejectRemisBulkAction, autoReviewPendingApprovalRemis, cancelOrDeleteRemisBulkAction, clearAllRemisFromBulkActionList, clearRemiBulkActionView, incrementRemiBulkActionProcessedCount, removeRemiFromBulkActionList, reviewDraftRemisBulkAction, submitDraftRemisBulkAction, updateRemisBulkActionList } from './view/spendManagement/reimbursement/remisBulkActionView/remisBulkActionViewReducer';
484
484
  import { RemisBulkReviewView, getRemisBulkOperationProgress, getRemisBulkReviewView } from './view/spendManagement/reimbursement/remisBulkActionView/remisBulkActionViewSelector';
485
- import { BillPayFilterCategoryDropdownOption, CategoryCombinationOperator, FilterCategoryType, MatchingOperatorDropdownOption, ReimbursementFilterCategoryDropdownOption, SpendManagementFilterCategoryDropdownOption, SpendManagementFilterEntityType, SpendManagementFiltersType, TaskFilterCategoryDropdownOption, TRANSACTION_FILTER_CATEGORIES, TransactionFilterCategory, TransactionFilterCategoryDropdownOption, TransactionFilterCategoryField, TransactionFilterEntityType, TransactionFilters, hideCreatedByFilter } from './view/spendManagement/spendManagementFilterHelpers';
485
+ import { BillPayFilterCategoryDropdownOption, CategoryCombinationOperator, FilterCategoryType, MatchingOperatorDropdownOption, ReimbursementFilterCategoryDropdownOption, SpendManagementFilterCategoryDropdownOption, SpendManagementFilterEntityType, SpendManagementFiltersType, TaskFilterCategoryDropdownOption, hideCreatedByFilter } from './view/spendManagement/spendManagementFilterHelpers';
486
486
  import { acceptTreasuryTerms, clearTreasurySetupView, fetchPortfolioAllocation, fetchTreasuryFunds, fetchTreasurySetupView, updateFundAllocationLocalData, updatePortfolioAllocation, updateTreasuryVideoViewed } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewReducer';
487
487
  import { TreasuryBusinessVerificationDetails, TreasurySetupView, getTreasuryBusinessVerificationDetails, getTreasurySetupViewDetails } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewSelector';
488
488
  import { FundAllocationOption, FundComposition, FundData, getTreasuryFundsMaximumYield } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewState';
@@ -622,16 +622,16 @@ export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePe
622
622
  export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, UploadStatementDocumentAIPayload, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
623
623
  export { JEScheduleLocalData };
624
624
  export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
625
- export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateTransactionFilters, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionFilterCategoryField, TRANSACTION_FILTER_CATEGORIES, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
625
+ 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, };
626
626
  export { TopExpense, TopExTimePeriod, TOP_EX_TIME_PERIODS };
627
627
  export { TimeframeTick, TimeframeTickWithMetaData, toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsoluteDay, toMonthYearPeriodId, convertToPeriod, MonthYearPeriod, };
628
628
  export { VendorSpendTrendFilterTabType, toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
629
629
  export { getNumberOfPeriods };
630
630
  export { SCHEDULE_DAYS_OF_MONTH, ScheduleDaysOfMonth, toScheduleDaysOfMonth, Day, Month, toMonth, toMonthStrict, Quarter, toQuarter, toQuarterStrict, AbsoluteDay, TimePeriod, };
631
631
  export { Tenant, TenantView, LoggedInUser, TenantBaseView, CurrentTenant, TenantProductSettings, getTenantBaseById, getCurrentTenant, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, TenantsBaseOrdered, TenantsOrdered, TenantCoreDetailsView, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, DoSignInPayload, doSignOut, resetSignInState, RoleResource, Connection, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
632
- export { Account, ALL_ACCOUNT_TYPES, AccountType, AccountBase, StatementCloseDay, toAccountType, AccountReport, getAllAccounts, getTransactionFilterAccountOptions, NestedAccountReport, AccountWithBalanceReport, AccountGroup, AccountGroupReportV2, AccountGroupType, toAccountGroupType, AccountGroupReport, getAccountGroupKey, AccountGroupKey, RecommendedAccountBase, };
632
+ export { Account, AccountType, AccountBase, StatementCloseDay, toAccountType, AccountReport, NestedAccountReport, AccountWithBalanceReport, AccountGroup, AccountGroupReportV2, AccountGroupType, toAccountGroupType, AccountGroupReport, getAccountGroupKey, AccountGroupKey, RecommendedAccountBase, };
633
633
  export { Class, ClassBase, RecommendedClassBase, } from './entity/class/classState';
634
- export { getAllClasses, getClassById } from './entity/class/classSelector';
634
+ export { getClassById } from './entity/class/classSelector';
635
635
  export { ClassReport } from './entity/class/classSelectorTypes';
636
636
  export type { Forecast, ForecastType, toForecastType, } from './entity/forecast/forecastState';
637
637
  export { getForecast };
@@ -700,7 +700,7 @@ export { fetchIncomeTrend, fetchExpenseTrend, clearTrendData };
700
700
  export { getTrendForEntity, TrendView, getCurrentFiscalQuarterDateRange };
701
701
  export { CustomerIncomeTrend };
702
702
  export { VendorExpenseTrend, VendorExpenseState, VendorSpend };
703
- export { Entity, toEntityType, TransactionEntityType, TransactionFilterEntityType };
703
+ export { Entity, toEntityType, TransactionEntityType };
704
704
  export { fetchEntityAutoCompleteEpic };
705
705
  export { clearEntityAutoCompleteResults, clearAllEntityAutoCompleteResults, fetchEntityAutoCompleteResults, };
706
706
  export { EntityAutoCompleteView, getEntityAutoCompleteResults };
@@ -752,7 +752,7 @@ export { BillTransaction, BillPayInfo, BillStage, BillStageCodeType, BillTransac
752
752
  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, };
753
753
  export { AccountListSelectorView, ClassListSelectorView, getClassList, fetchClassList, };
754
754
  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, };
755
- export { SpendManagementFiltersType, SpendManagementFilterEntityType, FilterCategoryType, BillPayFilterCategoryDropdownOption, ReimbursementFilterCategoryDropdownOption, TaskFilterCategoryDropdownOption, SpendManagementFilterCategoryDropdownOption, TransactionFilterCategory, TransactionFilterCategoryDropdownOption, TransactionFilters, MatchingOperatorDropdownOption, CategoryCombinationOperator, hideCreatedByFilter, };
755
+ export { SpendManagementFiltersType, SpendManagementFilterEntityType, FilterCategoryType, BillPayFilterCategoryDropdownOption, ReimbursementFilterCategoryDropdownOption, TaskFilterCategoryDropdownOption, SpendManagementFilterCategoryDropdownOption, MatchingOperatorDropdownOption, CategoryCombinationOperator, hideCreatedByFilter, };
756
756
  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, };
757
757
  export { BankConnectionsSetupView, IntegrationsView, getApprovalRuleViewDetails, getBankConnectionsSetupViewDetails, getIntegrationsView, };
758
758
  export { fetchUserFinancialAccount };