@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
@@ -116,21 +116,3 @@ export declare const getAccountsOrdered: (filter: COABalancesFilter, accountStat
116
116
  export declare const getAccountsByType: (accountState: AccountState, accountTypes: AccountType[]) => Partial<Record<AccountType, Account[]>>;
117
117
  export declare const getAccountIdsForTypes: (accountState: AccountState, accountTypes: AccountType[]) => ID[];
118
118
  export declare const getAccountIdsForLabels: (accountState: AccountState, labels: string[]) => ID[];
119
- /**
120
- * Returns all accounts currently in state (single pass over accountsByKey).
121
- * Use for dropdowns that need account names and types; map to
122
- * { accountId, accountName, accountType } as needed.
123
- */
124
- export declare const getAllAccounts: (accountState: AccountState) => Account[];
125
- export interface AccountFilterOption {
126
- accountId: ID;
127
- accountName: string;
128
- }
129
- /**
130
- * Partitions accounts for transaction filter dropdowns: bank/credit_card → paymentAccountNames,
131
- * all other account types → categoryOptions. Use for payment_account_name and category filter options.
132
- */
133
- export declare const getTransactionFilterAccountOptions: (accountState: AccountState) => {
134
- categoryOptions: AccountFilterOption[];
135
- paymentAccountNames: AccountFilterOption[];
136
- };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getTransactionFilterAccountOptions = exports.getAllAccounts = exports.getAccountIdsForLabels = exports.getAccountIdsForTypes = exports.getAccountsByType = exports.getAccountsOrdered = exports.getAccountBase = void 0;
6
+ exports.getAccountIdsForLabels = exports.getAccountIdsForTypes = exports.getAccountsByType = exports.getAccountsOrdered = exports.getAccountBase = void 0;
7
7
  exports.getAccount = getAccount;
8
8
  exports.getAccountWithBalance = getAccountWithBalance;
9
9
  const flatMap_1 = __importDefault(require("lodash/flatMap"));
@@ -190,33 +190,3 @@ const getAccountIdsForLabels = (accountState, labels) => {
190
190
  return allAccountIdsForLabels;
191
191
  };
192
192
  exports.getAccountIdsForLabels = getAccountIdsForLabels;
193
- /**
194
- * Returns all accounts currently in state (single pass over accountsByKey).
195
- * Use for dropdowns that need account names and types; map to
196
- * { accountId, accountName, accountType } as needed.
197
- */
198
- const getAllAccounts = (accountState) => Object.values(accountState.accountsByKey);
199
- exports.getAllAccounts = getAllAccounts;
200
- /**
201
- * Partitions accounts for transaction filter dropdowns: bank/credit_card → paymentAccountNames,
202
- * all other account types → categoryOptions. Use for payment_account_name and category filter options.
203
- */
204
- const getTransactionFilterAccountOptions = (accountState) => {
205
- const accounts = (0, exports.getAllAccounts)(accountState);
206
- const paymentAccountNames = [];
207
- const categoryOptions = [];
208
- for (const account of accounts) {
209
- const option = {
210
- accountId: account.accountId,
211
- accountName: account.accountName,
212
- };
213
- if ((0, accountState_1.isPaymentAccountType)(account.accountType)) {
214
- paymentAccountNames.push(option);
215
- }
216
- else {
217
- categoryOptions.push(option);
218
- }
219
- }
220
- return { categoryOptions, paymentAccountNames };
221
- };
222
- exports.getTransactionFilterAccountOptions = getTransactionFilterAccountOptions;
@@ -7,14 +7,9 @@ import { RecommendationBase } from '../../commonStateTypes/recommendationBase';
7
7
  import { Status } from '../../commonStateTypes/status';
8
8
  import { ReportIDPlusForecastID } from '../../commonStateTypes/viewAndReport/viewAndReport';
9
9
  import { ZeniUrl } from '../../zeniUrl';
10
- export declare const ALL_ACCOUNT_TYPES: readonly ["bank", "credit_card", "expenses", "cogs", "income", "cash_in", "cash_out", "cash_position", "other_income", "other_expense", "accounts_receivable", "other_current_assets", "fixed_assets", "other_assets", "accounts_payable", "other_current_liabilities", "long_term_liabilities", "equity", "current_liabilities", "current_assets"];
11
10
  export declare const toAccountType: (v: string) => "cash_position" | "fixed_assets" | "bank" | "credit_card" | "expenses" | "cogs" | "income" | "cash_in" | "cash_out" | "other_income" | "other_expense" | "accounts_receivable" | "other_current_assets" | "other_assets" | "accounts_payable" | "other_current_liabilities" | "long_term_liabilities" | "equity" | "current_liabilities" | "current_assets";
12
11
  export type AccountType = ReturnType<typeof toAccountType>;
13
12
  export declare const toAccountTypeStrict: (v: string | null | undefined) => AccountType | undefined;
14
- /** Account types used for payment-account filters (e.g. transaction filter "payment account name"). */
15
- export declare const PAYMENT_ACCOUNT_TYPES: readonly ["bank", "credit_card"];
16
- export type PaymentAccountType = (typeof PAYMENT_ACCOUNT_TYPES)[number];
17
- export declare function isPaymentAccountType(accountType: AccountType | undefined): accountType is PaymentAccountType;
18
13
  export type UncategorizedAccountTypes = 'expense' | 'income';
19
14
  declare const toAccountLabel: (v: string) => "prepaid_expenses" | "fixed_assets" | "uncategorized_income" | "uncategorized_expense" | "bank_charges_and_fees" | "travel_transportation" | "accrued_expenses";
20
15
  export type AccountLabel = ReturnType<typeof toAccountLabel>;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toReconciliationAccountSourceStrict = exports.toReconciliationAccountSource = exports.toAccountLabelStrict = exports.PAYMENT_ACCOUNT_TYPES = exports.toAccountTypeStrict = exports.toAccountType = exports.ALL_ACCOUNT_TYPES = void 0;
4
- exports.isPaymentAccountType = isPaymentAccountType;
3
+ exports.toReconciliationAccountSourceStrict = exports.toReconciliationAccountSource = exports.toAccountLabelStrict = exports.toAccountTypeStrict = exports.toAccountType = void 0;
5
4
  exports.getAccountKey = getAccountKey;
6
5
  const nestedAccountID_1 = require("../../commonStateTypes/accountView/nestedAccountID");
7
6
  const nestedClassID_1 = require("../../commonStateTypes/classesView/nestedClassID");
8
7
  const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
9
- exports.ALL_ACCOUNT_TYPES = [
8
+ const ALL_ACCOUNT_TYPES = [
10
9
  'bank',
11
10
  'credit_card',
12
11
  'expenses',
@@ -28,16 +27,10 @@ exports.ALL_ACCOUNT_TYPES = [
28
27
  'current_liabilities',
29
28
  'current_assets',
30
29
  ];
31
- const toAccountType = (v) => (0, stringToUnion_1.stringToUnion)(v, exports.ALL_ACCOUNT_TYPES);
30
+ const toAccountType = (v) => (0, stringToUnion_1.stringToUnion)(v, ALL_ACCOUNT_TYPES);
32
31
  exports.toAccountType = toAccountType;
33
- const toAccountTypeStrict = (v) => (0, stringToUnion_1.stringToUnionStrict)(v ?? '', exports.ALL_ACCOUNT_TYPES);
32
+ const toAccountTypeStrict = (v) => (0, stringToUnion_1.stringToUnionStrict)(v ?? '', ALL_ACCOUNT_TYPES);
34
33
  exports.toAccountTypeStrict = toAccountTypeStrict;
35
- /** Account types used for payment-account filters (e.g. transaction filter "payment account name"). */
36
- exports.PAYMENT_ACCOUNT_TYPES = ['bank', 'credit_card'];
37
- function isPaymentAccountType(accountType) {
38
- return (accountType != null &&
39
- exports.PAYMENT_ACCOUNT_TYPES.includes(accountType));
40
- }
41
34
  const ALL_ACCOUNT_LABELS = [
42
35
  'uncategorized_income',
43
36
  'uncategorized_expense',
@@ -20,8 +20,3 @@ export declare function getClassReport(classState: ClassState, accountState: Acc
20
20
  reportId: ReportID;
21
21
  classesViewParentId?: ClassesViewParentID;
22
22
  }, filter: COABalancesFilter): ClassReport | undefined;
23
- /**
24
- * Returns all classes currently in state (single pass over classesByKey).
25
- * Use for dropdowns that need class names; map to { classId, className } as needed.
26
- */
27
- export declare function getAllClasses(classState: ClassState): Class[];
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getClassesByIds = getClassesByIds;
7
7
  exports.getClassById = getClassById;
8
8
  exports.getClassReport = getClassReport;
9
- exports.getAllClasses = getAllClasses;
10
9
  const get_1 = __importDefault(require("lodash/get"));
11
10
  const coaBalance_1 = require("../../commonStateTypes/coaBalance/coaBalance");
12
11
  const accountSelector_1 = require("../account/accountSelector");
@@ -59,10 +58,3 @@ function getClassReport(classState, accountState, id, filter) {
59
58
  accounts: accountReport,
60
59
  };
61
60
  }
62
- /**
63
- * Returns all classes currently in state (single pass over classesByKey).
64
- * Use for dropdowns that need class names; map to { classId, className } as needed.
65
- */
66
- function getAllClasses(classState) {
67
- return Object.values(classState.classesByKey);
68
- }
@@ -1,7 +1,7 @@
1
1
  import flatMap from 'lodash/flatMap';
2
2
  import { getCOABalances } from '../../commonStateTypes/coaBalance/coaBalance';
3
3
  import { sortComparator } from '../../commonStateTypes/coaBalance/sortBalancesByFreeRangeTotal';
4
- import { getAccountKey, isPaymentAccountType, } from './accountState';
4
+ import { getAccountKey, } from './accountState';
5
5
  function getCommonAccountFields(accountState, id) {
6
6
  const key = getAccountKey(id.reportId, id.accountId, id.classesViewParentId, id.accountsViewParentId);
7
7
  const account = accountState.accountsByKey[key];
@@ -177,31 +177,3 @@ export const getAccountIdsForLabels = (accountState, labels) => {
177
177
  });
178
178
  return allAccountIdsForLabels;
179
179
  };
180
- /**
181
- * Returns all accounts currently in state (single pass over accountsByKey).
182
- * Use for dropdowns that need account names and types; map to
183
- * { accountId, accountName, accountType } as needed.
184
- */
185
- export const getAllAccounts = (accountState) => Object.values(accountState.accountsByKey);
186
- /**
187
- * Partitions accounts for transaction filter dropdowns: bank/credit_card → paymentAccountNames,
188
- * all other account types → categoryOptions. Use for payment_account_name and category filter options.
189
- */
190
- export const getTransactionFilterAccountOptions = (accountState) => {
191
- const accounts = getAllAccounts(accountState);
192
- const paymentAccountNames = [];
193
- const categoryOptions = [];
194
- for (const account of accounts) {
195
- const option = {
196
- accountId: account.accountId,
197
- accountName: account.accountName,
198
- };
199
- if (isPaymentAccountType(account.accountType)) {
200
- paymentAccountNames.push(option);
201
- }
202
- else {
203
- categoryOptions.push(option);
204
- }
205
- }
206
- return { categoryOptions, paymentAccountNames };
207
- };
@@ -1,7 +1,7 @@
1
1
  import { getNestedAccountIDStr, } from '../../commonStateTypes/accountView/nestedAccountID';
2
2
  import { getNestedClassIDStr, } from '../../commonStateTypes/classesView/nestedClassID';
3
3
  import { stringToUnion, stringToUnionStrict, } from '../../commonStateTypes/stringToUnion';
4
- export const ALL_ACCOUNT_TYPES = [
4
+ const ALL_ACCOUNT_TYPES = [
5
5
  'bank',
6
6
  'credit_card',
7
7
  'expenses',
@@ -25,12 +25,6 @@ export const ALL_ACCOUNT_TYPES = [
25
25
  ];
26
26
  export const toAccountType = (v) => stringToUnion(v, ALL_ACCOUNT_TYPES);
27
27
  export const toAccountTypeStrict = (v) => stringToUnionStrict(v ?? '', ALL_ACCOUNT_TYPES);
28
- /** Account types used for payment-account filters (e.g. transaction filter "payment account name"). */
29
- export const PAYMENT_ACCOUNT_TYPES = ['bank', 'credit_card'];
30
- export function isPaymentAccountType(accountType) {
31
- return (accountType != null &&
32
- PAYMENT_ACCOUNT_TYPES.includes(accountType));
33
- }
34
28
  const ALL_ACCOUNT_LABELS = [
35
29
  'uncategorized_income',
36
30
  'uncategorized_expense',
@@ -50,10 +50,3 @@ export function getClassReport(classState, accountState, id, filter) {
50
50
  accounts: accountReport,
51
51
  };
52
52
  }
53
- /**
54
- * Returns all classes currently in state (single pass over classesByKey).
55
- * Use for dropdowns that need class names; map to { classId, className } as needed.
56
- */
57
- export function getAllClasses(classState) {
58
- return Object.values(classState.classesByKey);
59
- }
package/lib/esm/index.js CHANGED
@@ -22,8 +22,7 @@ import { mapTimePeriodtoTimeframeTick, toTimePeriod, toTimeframeTick, } from './
22
22
  import { isAgingReport, isCashFlowOrBalanceSheetReport, isDashboardClassesViewReport, isDashboardReport, isFluxAnalysisOpExReport, isOpExByVendorReport, isPAndLClassesViewReport, isPAndLReport, } from './commonStateTypes/viewAndReport/reportIDHelper';
23
23
  import { toReportFormatStrict, toReportID, } from './commonStateTypes/viewAndReport/viewAndReport';
24
24
  import { PAYMENT_BUSINESS_DAYS, filterDays, getNextNthWorkingDay, getPreviousNthWorkingDay, getYearsList, holidaysFormatted, isHoliday, isHolidayToday, } from './commonStateTypes/workingDayHelper';
25
- import { getAllAccounts, getTransactionFilterAccountOptions, } from './entity/account/accountSelector';
26
- import { ALL_ACCOUNT_TYPES, toAccountType, toReconciliationAccountSource, } from './entity/account/accountState';
25
+ import { toAccountType, toReconciliationAccountSource, } from './entity/account/accountState';
27
26
  import { getAccountGroupKey, toAccountGroupType, } from './entity/accountGroup/accountGroupState';
28
27
  /**
29
28
  * Expense Automation Exports starts
@@ -164,7 +163,7 @@ import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFl
164
163
  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';
165
164
  import { fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess, } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
166
165
  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';
167
- 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';
166
+ 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';
168
167
  import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
169
168
  import { getExpenseAutomationReconciliationView, isAccountReconReport, } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
170
169
  import { getExpenseAutomationTransactionView } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
@@ -317,7 +316,7 @@ import { acceptEmployeeRemiTerms, acceptRemiTerms, clearRemiSetupView, fetchRemi
317
316
  import { getRemiBusinessVerificationDetails, getRemiSetupViewDetails, } from './view/spendManagement/reimbursement/remiSetupView/remiSetupViewSelector';
318
317
  import { approveOrRejectRemisBulkAction, autoReviewPendingApprovalRemis, cancelOrDeleteRemisBulkAction, clearAllRemisFromBulkActionList, clearRemiBulkActionView, incrementRemiBulkActionProcessedCount, removeRemiFromBulkActionList, reviewDraftRemisBulkAction, submitDraftRemisBulkAction, updateRemisBulkActionList, } from './view/spendManagement/reimbursement/remisBulkActionView/remisBulkActionViewReducer';
319
318
  import { getRemisBulkOperationProgress, getRemisBulkReviewView, } from './view/spendManagement/reimbursement/remisBulkActionView/remisBulkActionViewSelector';
320
- import { TRANSACTION_FILTER_CATEGORIES, hideCreatedByFilter, } from './view/spendManagement/spendManagementFilterHelpers';
319
+ import { hideCreatedByFilter, } from './view/spendManagement/spendManagementFilterHelpers';
321
320
  import { acceptTreasuryTerms, clearTreasurySetupView, fetchPortfolioAllocation, fetchTreasuryFunds, fetchTreasurySetupView, updateFundAllocationLocalData, updatePortfolioAllocation, updateTreasuryVideoViewed, } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewReducer';
322
321
  import { getTreasuryBusinessVerificationDetails, getTreasurySetupViewDetails, } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewSelector';
323
322
  import { getTreasuryFundsMaximumYield, } from './view/spendManagement/treasury/treasurySetUp/treasurySetupViewState';
@@ -414,15 +413,15 @@ export { toCOABalanceTypeStrict, toCOABalanceType as toCOABlanaceType, isCalcula
414
413
  export { stringToUnion, stringToUnionStrict };
415
414
  export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, getMonthEndCloseChecksViewByTenantId, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, };
416
415
  export { getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, fetchExpenseAutomationMissingReceipts, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, getExpenseAutomationFluxAnalysisView, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, updateFluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, getExpenseAutomationReconciliationView, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, getAccountReconByAccountIdAndSelectedPeriod, toReconciliationTabsType, isAccountReconReport, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, toReconciliationAccountSource, deleteAccountStatement, uploadAccountStatement, updateStatementUploadChosen, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, };
417
- export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateTransactionFilters, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, toTransactionsSortKey, TRANSACTION_FILTER_CATEGORIES, };
416
+ export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateSelectedCheckboxTransactionIds, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, toTransactionsSortKey, };
418
417
  export { TOP_EX_TIME_PERIODS };
419
418
  export { toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsoluteDay, toMonthYearPeriodId, convertToPeriod, };
420
419
  export { toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
421
420
  export { getNumberOfPeriods };
422
421
  export { SCHEDULE_DAYS_OF_MONTH, toScheduleDaysOfMonth, toMonth, toMonthStrict, toQuarter, toQuarterStrict, };
423
422
  export { getTenantBaseById, getCurrentTenant, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut, resetSignInState, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
424
- export { ALL_ACCOUNT_TYPES, toAccountType, getAllAccounts, getTransactionFilterAccountOptions, toAccountGroupType, getAccountGroupKey, };
425
- export { getAllClasses, getClassById } from './entity/class/classSelector';
423
+ export { toAccountType, toAccountGroupType, getAccountGroupKey, };
424
+ export { getClassById } from './entity/class/classSelector';
426
425
  export { getForecast };
427
426
  export { getUserName, getUserByUserId, getUsersByUserIds, getAllZeniUsersFromState, } from './entity/user/userSelector';
428
427
  export { toUserRoleType, toUserRoleTypeStrict, isFinOpsUserRoleType, hasAdminLevelAccess, hasFullOrAdminLevelAccess, hasReimbursementUserAccess, hasEmployeeLevelAccess, hasBookKeepingAdminLevelAccess, hasBookKeepingUserLevelAccess, isNonZeniRole, hasInvestorBankerLevelAccess, getUserRoleMap, hasOnlyBillPayAccess, hasZeniRoleOrCompanyOfficerAccess, hasSuperAdminLevelAccess, hasBillPayFallbackAdminLevelAccess, hasRemiFallbackAdminLevelAccess, hasOnlyReimbursementAccess, hasOnlyChargeCardAccess, hasOnlyZeniAccountsAccess, isZeniSignedInUser, getUserRoleByUserId, getUserRoleByUserIds, hasChargeCardAccess, hasZeniAccountsAccess, hasTreasuryAccess, hasTreasuryAdminLevelAccess, hasBillPayAccess, hasReimbursementAccess, hasReimbursementAdminLevelAccess, hasBillPayAdminLevelAccess, hasChargeCardAdminLevelAccess, hasSpendManagementAccess, hasSpendManagementAdminLevelAccess, hasZeniAccountsAdminLevelAccess, hasAnyCompanyRole, hasAnyFinOpRole, hasBillPayAccessible, hasReimbursementAccessible, hasZeniAccountsAccessible, hasChargeCardAccessible, hasTreasuryAccessible, hasAICFOAccess, };
@@ -27,10 +27,6 @@ export const initialTransactionTabViewState = {
27
27
  totalCount: {},
28
28
  limit: 10,
29
29
  },
30
- filters: {
31
- categoryCombinationOperator: 'AND',
32
- categories: [],
33
- },
34
30
  fetchState: 'Not-Started',
35
31
  error: undefined,
36
32
  hasValidState() {
@@ -239,12 +235,6 @@ const expenseAutomationTransactionsView = createSlice({
239
235
  uiState.totalCount;
240
236
  }
241
237
  },
242
- updateTransactionFilters(draft, action) {
243
- const { selectedTab, filters } = action.payload;
244
- if (filters != null) {
245
- draft.transactionCategorizationView[selectedTab].filters = filters;
246
- }
247
- },
248
238
  saveTransactionCategorization: {
249
239
  prepare(selectedTab, transactionIds, cotTrackingByTransactionId, isUncategorizedExpenseCategoryEnabled) {
250
240
  return {
@@ -780,5 +770,5 @@ const expenseAutomationTransactionsView = createSlice({
780
770
  },
781
771
  },
782
772
  });
783
- export const { fetchTransactionCategorization, updateTransactionCategorizationUIState, updateTransactionFilters, initializeTransactionCategorizationViewLocalData, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateStatusForTransactionNotMiscategorizedUpdateForCategorization, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, setAllItemsToCategoryClassInLocalDataForCategorization, updateTotalCountForTransactionCategorization, fetchTransactionCategorizationSuccess, resetOtherTabsFetchState, fetchTransactionCategorizationView, updateSelectedCheckboxTransactionIds, clearExpenseAutomationTransactionsViewPerTabView, clearExpenseAutomationTransactionsView, setEntityRecommendationForLineIdsForCategorization, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, } = expenseAutomationTransactionsView.actions;
773
+ export const { fetchTransactionCategorization, updateTransactionCategorizationUIState, initializeTransactionCategorizationViewLocalData, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateStatusForTransactionNotMiscategorizedUpdateForCategorization, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, setAllItemsToCategoryClassInLocalDataForCategorization, updateTotalCountForTransactionCategorization, fetchTransactionCategorizationSuccess, resetOtherTabsFetchState, fetchTransactionCategorizationView, updateSelectedCheckboxTransactionIds, clearExpenseAutomationTransactionsViewPerTabView, clearExpenseAutomationTransactionsView, setEntityRecommendationForLineIdsForCategorization, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, } = expenseAutomationTransactionsView.actions;
784
774
  export default expenseAutomationTransactionsView.reducer;
@@ -4,32 +4,13 @@ import { toMonthYearPeriodId } from '../../../commonStateTypes/timePeriod';
4
4
  import { getCurrentTenant } from '../../../entity/tenant/tenantSelector';
5
5
  import { getTransactionWithCOT } from '../../../entity/transaction/transactionHelper';
6
6
  import { getSupportedTransactionsByIds } from '../../../entity/transaction/transactionSelector';
7
- import { applyAdvancedFiltersOnList, } from '../../spendManagement/spendManagementFilterHelpers';
8
7
  import { getAccountList, getNestedAccountListHierarchy, getUncategorizedAccounts, } from '../../accountList/accountListSelector';
9
8
  import { getClassList, getNestedClassListHierarchy, } from '../../classList/classListSelector';
10
9
  import { getAllSteps } from '../selectorTypes/expenseAutomationViewSelectorTypes';
11
- export const toTransactionView = (transaction, transactionLocalData) => {
12
- return {
13
- id: transaction.id,
14
- date: transaction.date,
15
- amount: transaction.amount,
16
- vendorName: transaction.vendorName,
17
- customerName: transaction.customerName,
18
- vendorId: transaction.vendorId,
19
- customerId: transaction.customerId,
20
- description: transaction.description,
21
- memo: transaction.memo,
22
- type: transaction.type,
23
- typeName: transaction.typeName,
24
- createTime: transaction.createTime,
25
- transaction: transaction,
26
- transactionLocalData,
27
- };
28
- };
29
10
  export function getExpenseAutomationTransactionView(state) {
30
11
  const { accountState, classState, classListState, accountListState, expenseAutomationTransactionsViewState, expenseAutomationViewState, transactionState, monthEndCloseChecksState, } = state;
31
12
  const { selectedTransactionCategorizationTab } = expenseAutomationTransactionsViewState;
32
- const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, selectedTransactionId, selectedTransactionLineId, filters, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
13
+ const { uiState, refreshStatus, saveStatus, markAsNotMiscategorizedStatus, transactionIdsBySelectedPeriod, transactionReviewLocalDataById, selectedCheckBoxTransactionIds, transactionIdsWithUnsavedData, selectedTransactionId, selectedTransactionLineId, } = expenseAutomationTransactionsViewState.transactionCategorizationView[selectedTransactionCategorizationTab];
33
14
  const uncategorizedIncomeExpense = getUncategorizedAccounts(accountState, accountListState, 'accountList');
34
15
  const accountList = getAccountList(accountState, accountListState, 'accountList');
35
16
  const classList = getClassList(classState, classListState);
@@ -46,42 +27,10 @@ export function getExpenseAutomationTransactionView(state) {
46
27
  ? transactionIdsBySelectedPeriod[monthYearPeriodId]
47
28
  : null;
48
29
  const transactionIds = transactionIdsForSelectedPeriod ?? [];
49
- const transactions = getSupportedTransactionsByIds(transactionState, transactionIds);
50
- const transactionsWithCOT = transactions.map((transaction) => getTransactionWithCOT(transaction));
51
- const transactionLocalDataMap = new Map();
52
- transactionIds.forEach((transactionId) => {
53
- const transactionData = transactionReviewLocalDataById[transactionId];
54
- if (transactionData != null) {
55
- transactionLocalDataMap.set(transactionId, {
56
- transactionId,
57
- transactionReviewLocalData: transactionData.transactionReviewLocalData,
58
- });
59
- }
60
- });
61
- // Step 2: Convert to TransactionView and apply advanced filters
62
- const transactionViews = transactionsWithCOT.map((transaction) => {
63
- const localData = transactionLocalDataMap.get(transaction.id);
64
- return toTransactionView(transaction, localData);
65
- });
66
- // Apply advanced filters if they exist
67
- const filteredTransactionViews = applyAdvancedFiltersOnList('transaction_categorization', transactionViews, filters);
68
- // Convert back to TransactionWithCOT for return
69
- const filteredTransactionsWithCOT = filteredTransactionViews.map((view) => view.transaction);
70
- // Get transactionLocalData for filtered transactions
71
- // Also include transactionLocalData for transactions that don't exist in transactionState
72
- // but have local data (to match original behavior)
73
- const filteredTransactionIds = new Set(filteredTransactionViews.map((view) => view.id));
74
- const filteredTransactionLocalData = transactionIds
30
+ const transactionLocalData = transactionIds
75
31
  .map((transactionId) => {
76
32
  const transactionData = transactionReviewLocalDataById[transactionId];
77
- if (transactionData == null) {
78
- return null;
79
- }
80
- // Include if transaction is in filtered results, or if transaction doesn't exist in state
81
- // (to maintain backward compatibility with tests)
82
- const transactionExists = transactions.some((t) => t.id === transactionId);
83
- if (filteredTransactionIds.has(transactionId) ||
84
- !transactionExists) {
33
+ if (transactionData != null) {
85
34
  return {
86
35
  transactionId,
87
36
  transactionReviewLocalData: transactionData.transactionReviewLocalData,
@@ -89,7 +38,9 @@ export function getExpenseAutomationTransactionView(state) {
89
38
  }
90
39
  return null;
91
40
  })
92
- .filter((data) => data != null);
41
+ .filter((transaction) => transaction != null);
42
+ const transactions = getSupportedTransactionsByIds(transactionState, transactionIds);
43
+ const transactionsWithCOT = transactions.map((transaction) => getTransactionWithCOT(transaction));
93
44
  const fetchStatus = reduceAllFetchState([
94
45
  accountList,
95
46
  classList,
@@ -126,7 +77,7 @@ export function getExpenseAutomationTransactionView(state) {
126
77
  version: 0,
127
78
  fetchState: fetchStatus.fetchState,
128
79
  error: fetchStatus.error,
129
- transactions: filteredTransactionsWithCOT,
80
+ transactions: transactionsWithCOT,
130
81
  selectedCheckBoxTransactionIds,
131
82
  transactionIdsWithUnsavedData,
132
83
  uncategorizedAccounts: uncategorizedIncomeExpense,
@@ -135,7 +86,7 @@ export function getExpenseAutomationTransactionView(state) {
135
86
  classList: allClasses,
136
87
  accountsHierarchyList,
137
88
  classHierarchyList,
138
- transactionLocalData: filteredTransactionLocalData,
89
+ transactionLocalData,
139
90
  uiState,
140
91
  refreshStatus,
141
92
  saveStatus,